Files
OMS/app/ome/controller/admin/serial.php
2025-12-28 23:13:25 +08:00

198 lines
7.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Copyright © ShopeX http://www.shopex.cn. All rights reserved.
* See LICENSE file for license details.
*/
class ome_ctl_admin_serial extends desktop_controller{
var $name = "收货";
var $workground = "aftersale_center";
function search(){
$this->pagedata['tag'] = false;
if($_POST['serial_number']){
$serial_number = $_POST['serial_number'];
$serial['merge'] = $this->app->getConf('ome.product.serial.merge');//false
$serial['separate'] = $this->app->getConf('ome.product.serial.separate');//null
if($serial['merge']=='true' && $pos = strpos($serial_number,$serial['separate'])){
$serial_number = substr($serial_number,$pos+1);
}
$userObj = app::get('desktop')->model('users');
$basicMaterialObj = app::get('material')->model('basic_material');
$branchObj = $this->app->model('branch');
$serialObj = $this->app->model('product_serial');
$serialLogObj = $this->app->model('product_serial_log');
$data = $serialObj->dump(array('serial_number'=>$serial_number));
if($data && $data['item_id']>0){
$product = $basicMaterialObj->dump(array('bm_id'=>$data['product_id']),'material_name');
$branch = $branchObj->dump($data['branch_id'],'name');
$data['product_name'] = $product['material_name'];
$data['branch_name'] = $branch['name'];
switch($data['status']){
case 0:
$data['status'] = '已入库';
break;
case 1:
$data['status'] = '已出库';
break;
case 2:
$result['serial_status'] = '无效';
break;
}
$logData = $serialLogObj->getList('*',array('item_id'=>$data['item_id']),0,-1,'act_time DESC');
foreach($logData as $key=>$val){
$logStatus = array();
$logStatus = $this->log_status($val);
$logData[$key]['act_type'] = $logStatus['act_type'];
$logData[$key]['bill_type'] = $logStatus['bill_type'];
$logData[$key]['bill_no'] = $logStatus['bill_no'];
$logData[$key]['orderBn'] = $logStatus['orderBn'];
$logData[$key]['serial_status'] = $logStatus['serial_status'];
if($val['act_owner'] == 16777215){
$logData[$key]['act_owner'] = 'system';
}else{
$user = $userObj->dump($val['act_owner'],'name');
$logData[$key]['act_owner'] = $user['name'];
}
}
}
$this->pagedata['serial_number'] = $_POST['serial_number'];
$this->pagedata['data'] = $data;
$this->pagedata['tag'] = true;
$this->pagedata['logData'] = $logData;
}
$this->page("admin/serial/search.html");
}
function log_status($data){
if($data['act_type']>=0){
switch($data['act_type']){
case 0:
$result['act_type'] = '出库效验';
break;
case 1:
$result['act_type'] = '入库效验';
break;
}
}
if($data['bill_type']>=0){
$orderObj = $this->app->model('orders');
switch($data['bill_type']){
case 0:
$result['bill_type'] = '发货单';
if($data['bill_no'] && $data['bill_no'] != ''){
$deliveryObj = app::get('ome')->model('delivery');
$wmsdeliveryObj = app::get('wms')->model('delivery');
$delivery = $wmsdeliveryObj->dump(array('delivery_bn'=>$data['bill_no']),'outer_delivery_bn,status');
$result['bill_no'] = $delivery['delivery_bn'];
if($delivery['status']=='3'){
$orderIds = $deliveryObj->getOrderIdByDeliveryId($delivery['outer_delivery_bn']);
$orders = $orderObj->getList('order_id,order_bn',array('order_id'=>$orderIds));
foreach($orders as $key=>$val){
$orderBn[$val['order_id']] = $val['order_bn'];
}
$result['orderBn'] = $orderBn;
}
}
break;
case 1:
$result['bill_type'] = '售后申请单';
if($data['bill_no'] && $data['bill_no'] != ''){
$processObj = $this->app->model('reship');
$process = $processObj->dump($data['bill_no'],'order_id,reship_bn');
$order = $orderObj->dump($process['order_id'],'order_bn');
$result['orderBn'] = $order['order_bn'];
$result['bill_no'] = $process['process'];
}
break;
}
}
if($data['serial_status']>=0){
switch($data['serial_status']){
case 0:
$result['serial_status'] = '入库';
break;
case 1:
$result['serial_status'] = '出库';
break;
case 2:
$result['serial_status'] = '无效';
break;
}
}
return $result;
}
function ajaxCheckSerial(){
$serialObj = $this->app->model('product_serial');
$filter['serial_number'] = $_POST['serial'];
//$filter['bn'] = $_POST['bn'];
$serialData = $serialObj->dump($filter);
if($serialData['item_id']>0 && $serialData['status']==1){
echo json_encode(array('result' => 'false', 'msg'=>'此唯一码的货品已经出库,无法通过效验'));
}else{
echo json_encode(array('result' => 'true', 'msg'=>'OK'));
}
}
function ajaxSerialData(){
$serialObj = $this->app->model('product_serial');
$serialLogObj = $this->app->model('product_serial_log');
$deliveryObj = $this->app->model('delivery');
$filter['serial_number'] = $_POST['serial'];
$order_id = $_POST['order_id'];
$serialData = $serialObj->dump($filter);
if($serialData['item_id']>0 && $serialData['status']==1){
$logData = $serialLogObj->getList('*',array('item_id'=>$serialData['item_id'],'act_type'=>0,'bill_type'=>0),0,1,'act_time DESC');
$deliveryIds = $deliveryObj->getDeliverIdByOrderId($order_id);
if($logData[0]['bill_no']>0 && count($deliveryIds)>0 && in_array($logData[0]['bill_no'],$deliveryIds)){
echo json_encode($serialData);
}else{
echo '';
}
}else{
echo '';
}
}
/**
* 唯一码列表
* @param type $varname description
* @return type description
* @access public
* @author cyyr24@sina.cn
*/
function serial_list()
{
$base_filter = array('serarch_like'=>'1');
$params = array(
'use_buildin_recycle'=>false,
'use_buildin_export'=>true,
'title'=>'唯一码列表',
'use_buildin_filter' => true,
'use_buildin_new_dialog' => false,
'use_buildin_set_tag'=>false,
'base_filter' => $base_filter,
);
$this->filter_use_like = true;
$this->finder('ome_mdl_product_serial',$params);
}
}