'新增',
'href' => $this->url.'&act=add',
'target' => '_blank',
);
/*$actions[] = array(
'label' => '确认',
'submit' => $this->url.'&act=confirm',
'target' => 'dialog::{width:550,height:250,title:\'批量确认\'}',
);
$actions[] = array(
'label' => '取消',
'submit' => $this->url.'&act=cancel&p[0]=0',
'confirm' => '确定取消选中单据?',
'target' => 'refresh',
);*/
$actions[] = array(
'label' => '导入模板',
'href' => $this->url.'&act=exportTemplate',
'target' => '_blank',
);
if($_GET['init'] == 'wms') {
$actions[] = array(
'label' => 'wms库存初始化',
'href' => $this->url.'&act=execlImportDailog&p[0]=adjust_init_wms',
'target' => 'dialog::{width:500,height:300,title:\'wms库存初始化\'}',
);
}
$base_filter = [];
$base_filter['adjust_channel'] = 'branchadjust';
$params = array(
'title'=>'库存调整单',
'use_buildin_set_tag'=>false,
'use_buildin_filter'=>true,
'use_buildin_export'=>true,
'use_buildin_import'=>true,
'use_buildin_importxls'=>true,
'use_buildin_recycle'=>false,
'actions'=>$actions,
'orderBy'=>'id desc',
'base_filter' => $base_filter,
);
$this->finder('console_mdl_adjust', $params);
}
/**
* exportTemplate
* @return mixed 返回值
*/
public function exportTemplate()
{
$row = app::get('console')->model('adjust')->getTemplateColumn();
$lib = kernel::single('omecsv_phpexcel');
$data = [
['增量/全量', '仓库编码','库存初始化/手工调账', '', '否','完成', '123456', 'code001', '1'],
['', '', '', '','','', '123456', 'code002', '-1'],
];
$lib->newExportExcel($data, '库存调整单模板-'.date('Y-m-d'), 'xls', $row);
}
/**
* 添加
* @return mixed 返回值
*/
public function add() {
$branchList = app::get('ome')->model('branch')->getList('branch_id,name', [
'b_type' => '1',
'is_ctrl_store'=>'1',
]);
$branchOptions = [];
foreach ($branchList as $branch) {
$branchOptions[$branch['branch_id']] = $branch['name'];
}
$this->pagedata['branchOptions'] = $branchOptions;
$this->singlepage('admin/adjust/add.html');
}
/**
* 保存
* @return mixed 返回操作结果
*/
public function save() {
$sn = [];
if($_POST['sn']) {
foreach($_POST['sn'] as $k => $val) {
if($val) {
$sn[$k] = explode(',', $val);
}
}
}
$data = [
'adjust_mode' => $_POST['adjust_mode'],
'is_check' => '0',//调整自动完成
'iso_status'=>'confirm',//调整自动完成
'branch_id' => $_POST['branch_id'],
'negative_branch_id' => [$_POST['branch_id']],
'memo' => $_POST['memo'],
'source'=>'手工新增',
'items' => $_POST['number'],
'sn' => $sn,
];
list($rs, $rsData) = kernel::single('console_adjust')->dealSave($data);
$this->splash(($rs?'success':'error'), null, $rsData['msg']);
}
/**
* confirm
* @return mixed 返回值
*/
public function confirm() {
$ids = $_POST['id'];
$finder_id = $_GET['finder_id'];
if(empty($ids)) {
echo "";
exit;
}
$list = app::get('console')->model('adjust')->getList('id, adjust_bn', ['id'=>$ids, 'bill_status'=>["1", "2"]]);
if(empty($list)) {
echo "";
exit;
}
$this->pagedata['data'] = $list;
$this->display('admin/adjust/confirm.html');
}
/**
* singleConfirm
* @param mixed $id ID
* @return mixed 返回值
*/
public function singleConfirm($id) {
$finder_id = $_GET['finder_id'];
$adjust = app::get('console')->model('adjust')->db_dump($id, 'id, adjust_bn, bill_status,source');
if(empty($adjust)) {
echo "";
exit;
}
if(!in_array($adjust['bill_status'], ['1','2'])) {
echo "";
exit;
}
$filter = array(
'adjust_id' => $id,
'adjust_status' => '0',
);
$list = app::get('console')->model('adjust_items')->getList('id', $filter);
if(empty($list)) {
app::get('console')->model('adjust')->update(['bill_status'=>'4'], ['id'=>$id]);
echo "";
exit;
}
$GroupList = array_column($list, 'id');
$this->pagedata['adjust'] = $adjust;
$this->pagedata['custom_html'] = $this->fetch('admin/adjust/single_confirm.html');
$this->pagedata['request_url'] = $this->url.'&act=doSingleConfirm';
$this->pagedata['itemCount'] = count($GroupList);
$this->pagedata['GroupList'] = json_encode($GroupList);
$this->pagedata['maxNum'] = 100000;
$this->pagedata['startNow'] = (int)$_GET['start'];
parent::dialog_batch();
}
/**
* doSingleConfirm
* @return mixed 返回值
*/
public function doSingleConfirm() {
$itemIds = explode(',',$_POST['primary_id']);
if (!$itemIds) { echo 'Error: 缺少调整单明细';exit;}
$retArr = array(
'itotal' => count($itemIds),
'isucc' => 0,
'ifail' => 0,
'err_msg' => array(),
);
$main = app::get('console')->model('adjust')->db_dump($_POST['adjust_id']);
$ckrs = true;
//需判断如果是门店
if($main['source'] == 'store'){
$main['iso_status'] = 'confirm';
}
if($ckrs){
list($rs, $rsData) = kernel::single('console_adjust')->confirmItems($itemIds, $main);
}
if($rs) {
$retArr['isucc'] += count($itemIds);
} else {
$retArr['ifail'] += $rsData['fail_num'];
$retArr['isucc'] += $retArr['itotal'] - $rsData['fail_num'];
$retArr['err_msg'][] = $rsData['msg'];
}
echo json_encode($retArr),'ok.';exit;
}
/**
* cancel
* @param mixed $id ID
* @return mixed 返回值
*/
public function cancel($id) {
$ids = $id ? [$id] : $_POST['id'];
if(empty($ids)) {
$this->splash('error', $this->url, '不支持全选');
}
$adjustMdl = app::get('console')->model('adjust');
$adjustItemsMdl = app::get('console')->model('adjust_items');
$list = $adjustMdl->getList('id, adjust_bn, branch_id,source', ['id'=>$ids, 'bill_status'=>["1", "2"]]);
foreach ($list as $key => $value) {
if($value['source'] == 'store'){
}
$rs = $adjustMdl->update(['bill_status'=>'3'], ['id'=>$value['id'], 'bill_status'=>['1','2']]);
if(!is_bool($rs)) {
app::get('ome')->model('operation_log')->write_log('adjust@console',$value['id'],"操作取消");
}
}
$this->splash('success', $this->url, '操作完成');
}
}