column_iso_status = '入库状态'; $this->detail_basic = '入库单详情'; $this->detail_item = '入库单明细'; }else{ $this->column_iso_status = '出库状态'; $this->detail_basic = '出库单详情'; $this->detail_item = '出库单明细'; } if($_GET['act']=='allocate_iostocklist'){ unset($this->column_edit); } } var $detail_basic = "出库单详情"; var $detail_item = "出库单明细"; var $addon_cols ='iso_status,defective_status,iso_id,check_status,receive_status,product_cost,iso_price,source'; function column_iso_status($row){ if($_GET['io']){ $title = '入库'; }else{ $title = '出库'; } $iso_status = $row[$this->col_prefix.'iso_status']; if($iso_status == '1'){ $io_title = '未'.$title; }else if($iso_status == '2'){ $io_title = '部分'.$title; }else if($iso_status == '3'){ $io_title = '全部'.$title; }else if ($iso_status == '4'){ $io_title = '取消'.$title; } return $io_title; } public $column_applynum = '申请数量'; public $column_applynum_width = '100'; /** * column_applynum * @param mixed $row row * @param mixed $list list * @return mixed 返回值 */ public function column_applynum($row, $list){ $total = $this->_getTotal($row, $list); return $total['applynum']; } public $column_applymoney = '申请金额'; public $column_applymoney_width = '100'; /** * column_applymoney * @param mixed $row row * @param mixed $list list * @return mixed 返回值 */ public function column_applymoney($row, $list){ $total = $this->_getTotal($row, $list); if (!kernel::single('desktop_user')->has_permission('purchase_price')) { return '-'; } return '¥' . round($total['applymoney'], 2); } public $column_actualnum = '实际数量'; public $column_actualnum_width = '100'; /** * column_actualnum * @param mixed $row row * @param mixed $list list * @return mixed 返回值 */ public function column_actualnum($row, $list){ $total = $this->_getTotal($row, $list); return $total['actualnum']; } public $column_actualmoney = '实际金额'; public $column_actualmoney_width = '100'; /** * column_actualmoney * @param mixed $row row * @param mixed $list list * @return mixed 返回值 */ public function column_actualmoney($row, $list){ $total = $this->_getTotal($row, $list); if (!kernel::single('desktop_user')->has_permission('purchase_price')) { return '-'; } return '¥' . round($total['actualmoney'], 2); } var $column_edit = '操作'; var $column_edit_width = '180'; function column_edit($row){ $Oiso_items = app::get('taoguaniostockorder')->model('iso_items'); $string = array(); $iso_status = $row[$this->col_prefix.'iso_status']; $defective_status = $row[$this->col_prefix.'defective_status']; $iso_id = $row[$this->col_prefix.'iso_id']; $check_status = $row[$this->col_prefix.'check_status']; $io = $_GET['io']; $finder_id = $_GET['_finder']['finder_id']; $finder_vid = $_GET['finder_vid']; $filter_data = array(); $act = $_GET['act']; if($_GET['act'] == 'search_iostockorder'){ $id = $row['iso_id']; $button = <<打印 EOF; return $button; } if ($_isoST) foreach ($_isoST as $key=>$v){ if (preg_match("/^_+/i",$key)) continue; $filter_data[$key] = $v; } $filter = urlencode(serialize($filter_data)); $button = <<残损确认 EOF; $button1 = <<差异查看 EOF; $button2 = <<入库确认 EOF; $button3 = <<出库确认 EOF; $edit_button = <<编辑 EOF; $confirm_button = <<审核 EOF; $cancel_button = <<取消 EOF; $cancel_button = <<取消 EOF; $button4 = <<出库确认 EOF; $button5 = <<新建相似 EOF; //调拨入库 取消操作 生成入库单 打回原始仓库 if($io == '1' && $act == 'allocate_iostock'){ $cancel_button = <<取消 EOF; } if ($_GET['app'] == 'console'){ if($iso_status == '3'){ if($_GET['io'] && $defective_status=='1'){#残损确认 $string[]=$button; } #查看是否有差异 $items = $Oiso_items->db->select("SELECT * from sdb_taoguaniostockorder_iso_items where iso_id=".intval($iso_id)." and (`normal_num`!=`nums` || defective_num>0)"); if ($items){ $string[]=$button1; } } if ($check_status == '1' && $iso_status=='1'){ //调拨入库隐藏 编辑 并且查看是否进行过调拨取消入库操作 if($io == '1' && $act == 'allocate_iostock'){ //调拨入库页 获取是否已经进行过取消入库的操作 $taoguaniostockorder_iso_obj = app::get('taoguaniostockorder')->model('iso'); $iso_row = $taoguaniostockorder_iso_obj->dump(array("original_id"=>$iso_id,"type_id"=>11),"iso_bn"); $iso_bn_first_letter = substr($iso_row["iso_bn"],0,1); }else{ $string[]= $edit_button; } //在调拨入库处 已做调拨入库取消后不显示审核按钮 if($iso_row["iso_bn"] && $iso_bn_first_letter == "X"){ }else{ $string[]= $confirm_button; } } #取消 if ($iso_status<='1'){ $string[] = $cancel_button; } if (($row[$this->col_prefix.'receive_status'] & console_const::_FINISH_CODE) && $iso_status=='1'){ $string[]=$button4; } if ($_GET['act'] == 'other_iostock' && $row[$this->col_prefix.'source'] == 'local' && !$row['original_bn']) { $string[] = $button5; } } if ($check_status == '2' && $_GET['app'] == 'wms' && ($iso_status < '3')){ if($_GET['io']){ $string[]=$button2; }else{ $string[]=$button3; } } if($string) return ''.implode('|',$string).''; } function detail_basic($iso_id){ $render = app::get('console')->render(); $isoObj = app::get('taoguaniostockorder')->model('iso'); //备注追加 if($_POST){ $iso_id = $_POST['iso_id']; $memo = htmlspecialchars($_POST['memo']); //取出原备注信息 $oldmemo = $isoObj->dump(array('iso_id'=>$iso_id), 'memo'); $oldmemo= $oldmemo['memo']; if ($oldmemo) $memo = $oldmemo.$memo.';'; $iso['memo'] = $memo; $iso['iso_id'] = $iso_id; $isoObj->save($iso); } $suObj = app::get('purchase')->model('supplier'); $brObj = app::get('ome')->model('branch'); $iso = $isoObj->dump($iso_id,'*',array('iso_items'=>array('*'))); $oExtrabranch = app::get('ome')->model('extrabranch'); if($iso['type_id'] == 4 || $iso['type_id'] == 40){ $extrabranch_id = $iso['extrabranch_id']; //$extrabranch = $oExtrabranch->dump($extrabranch_id,'name'); }else{ $extrabranch_id = $iso['extrabranch_id']; $extrabranch = $oExtrabranch->dump($extrabranch_id,'name'); } $total_num=0; if ($iso['iso_items']) foreach($iso['iso_items'] as $k=>$v){ $total_num+=$v['nums']; } $su = $suObj->dump($iso['supplier_id'],'name'); $br = $brObj->dump($iso['branch_id'], 'name'); $iso['iso_id'] = $iso_id; $iso['branch_name'] = $br['name']; $iso['supplier_name'] = $su['name']; $iso['create_time'] = date("Y-m-d", $iso['create_time']); $iso['total_num'] = $total_num; $iso['memo'] = $iso['memo']; $iso['extrabranch_name'] = $extrabranch['name']; $amount = $iso['product_cost'] + $iso['iso_price']; $showPurchasePrice = true; if (!kernel::single('desktop_user')->has_permission('purchase_price')) { $showPurchasePrice = false; } $render->pagedata['show_purchase_price'] = $showPurchasePrice; $render->pagedata['iso'] = $iso; $render->pagedata['amount'] = $amount; if($_GET['io']){ return $render->fetch("admin/iostock/instock_detail.html"); }else{ return $render->fetch("admin/iostock/outstock_detail.html"); } } function detail_item($iso_id) { $basicMaterialLib = kernel::single('material_basic_material'); $render = app::get('console')->render(); $isoObj = app::get('taoguaniostockorder')->model('iso'); $isoItemsDetailObj = app::get('taoguaniostockorder')->model('iso_items_detail'); $iso = $isoObj->dump($iso_id,'iso_id',array('iso_items'=>array('*'))); $detailList = $isoItemsDetailObj->getList('product_id,nums,batch_code,product_date,expire_date,extendpro,box_no',['iso_id'=>$iso_id]); $newDetailList = []; $batch = false;//是否有批次 if($detailList){ foreach ($detailList as $k => $item) { if($item['extendpro']){ $item['extendpro'] = unserialize($item['extendpro']); } $newDetailList[$item['product_id']][] = $item; } $batch = true; } foreach($iso['iso_items'] as $k=>$order_item) { $product = $basicMaterialLib->getBasicMaterialExt($order_item['product_id']); $order_item['spec_info'] = $product['specifications']; $order_item['barcode'] = $product['barcode']; $order_item['product_name'] = $product['material_name']; $order_item['unit'] = isset($product['unit']) ? $product['unit'] : ''; $order_item['detail'] = isset($newDetailList[$order_item['product_id']]) ? $newDetailList[$order_item['product_id']] : []; $iso['iso_items'][$k] = $order_item; } $render->pagedata['batch'] = $batch; $render->pagedata['iso_items'] = $iso['iso_items']; if($_GET['io']){ return $render->fetch("admin/iostock/instock_item.html"); }else{ return $render->fetch("admin/iostock/outstock_item.html"); } } private $totalNumMoney; private function _getTotal($row, $list){ if(!$this->totalNumMoney) { $isoId = []; foreach ($list as $v) { $isoId[] = $v['iso_id']; } $sql = 'select iso_id, sum(nums) applynum, sum(nums * price) applymoney, sum(normal_num+defective_num) actualnum, sum((normal_num+defective_num) * price) actualmoney from sdb_taoguaniostockorder_iso_items where iso_id in ("'.implode('","', $isoId).'") group by iso_id'; $rows = kernel::database()->select($sql); $this->totalNumMoney = array_column($rows, null, 'iso_id'); } return $this->totalNumMoney[$row['iso_id']]; } var $column_product_cost = '商品总额'; var $column_product_cost_width = "75"; function column_product_cost($row) { $product_cost = '¥' . $row[$this->col_prefix . 'product_cost']; if (!kernel::single('desktop_user')->has_permission('purchase_price')) { $product_cost = '-'; } return $product_cost; } var $column_iso_price = '出入库费用'; var $column_iso_price_width = "75"; function column_iso_price($row) { $iso_price = '¥' . $row[$this->col_prefix . 'iso_price']; if (!kernel::single('desktop_user')->has_permission('purchase_price')) { $iso_price = '-'; } return $iso_price; } public $detail_oplog = "操作记录"; /** * detail_oplog * @param mixed $id ID * @return mixed 返回值 */ public function detail_oplog($id){ $render = app::get('console')->render(); $opObj = app::get('ome')->model('operation_log'); $logdata = $opObj->read_log(array('obj_id'=>$id,'obj_type'=>'iso@taoguaniostockorder'), 0, -1); $find_id = $_GET['_finder']['finder_id']; foreach($logdata as $k=>$v){ $logdata[$k]['operate_time'] = date('Y-m-d H:i:s',$v['operate_time']); $is_json = json_decode($v['memo']); $log_id = $v['log_id']; if($is_json === null){ $memo = $v['memo']; }else{ $memoData = json_decode($v['memo'],true); $button = <<点击查看 EOF; $memo = $memoData['title'].$button; } $logdata[$k]['memo'] = $memo; } $render->pagedata['log'] = $logdata; return $render->fetch('admin/oplog.html'); } public $detail_useful = "有效期记录"; /** * detail_useful * @param mixed $iso_id ID * @return mixed 返回值 */ public function detail_useful($iso_id){ $isoMdl = app::get('taoguaniostockorder')->model('iso'); $isos = $isoMdl->dump(array('iso_id'=>$iso_id,'iso_bn')); $render = app::get('console')->render(); $usefulMdl = app::get('console')->model('useful_life_log'); $usefuls = $usefulMdl->getlist('*',array('original_bn'=>$isos['iso_bn'])); $render->pagedata['usefuls'] = $usefuls; return $render->fetch("admin/useful/iso.html"); } }