mirror of
https://gitee.com/ShopeX/OMS
synced 2026-03-23 02:45:33 +08:00
107 lines
4.0 KiB
PHP
107 lines
4.0 KiB
PHP
<?php
|
||
/**
|
||
* Copyright © ShopeX (http://www.shopex.cn). All rights reserved.
|
||
* See LICENSE file for license details.
|
||
*/
|
||
|
||
//退货差异
|
||
|
||
class console_reship_diff {
|
||
|
||
/**
|
||
* doCheck
|
||
* @param mixed $reship reship
|
||
* @return mixed 返回值
|
||
*/
|
||
public function doCheck($reship) {
|
||
$reship_id = $reship['reship_id'];
|
||
$rsTran = kernel::database()->beginTransaction();
|
||
$Oreship = app::get('ome')->model('reship');
|
||
if (!$Oreship->finish_aftersale($reship_id)) {
|
||
kernel::database()->rollBack();
|
||
return [false, ['msg'=>'入库单完成失败']];
|
||
}
|
||
$result = kernel::single('console_reship')->siso_iostockReship($reship_id);
|
||
if (!$result) {
|
||
kernel::database()->rollBack();
|
||
return [false, ['msg'=>'入库单入库失败']];
|
||
}
|
||
list($rs, $rsData) = $this->reshipStockout($reship_id);
|
||
if(!$rs) {
|
||
kernel::database()->rollBack();
|
||
return [false, $rsData];
|
||
}
|
||
kernel::database()->commit($rsTran);
|
||
return [true, ['msg'=>'操作成功']];
|
||
}
|
||
|
||
/**
|
||
* reshipStockout
|
||
* @param mixed $reship_id ID
|
||
* @return mixed 返回值
|
||
*/
|
||
public function reshipStockout($reship_id) {
|
||
$oReship = app::get('ome')->model('reship');
|
||
$reship = $oReship->dump(array('reship_id'=>$reship_id),'reship_id,reship_bn,branch_id,return_type');
|
||
$oReship_item = app::get('ome')->model('reship_items');
|
||
$normal_reship_item = $oReship_item->getList('product_id,bn,product_name,normal_num as number',array('reship_id'=>$reship_id,'normal_num|than'=>0));
|
||
$defective_reship_item = $oReship_item->getList('product_id,bn,product_name,defective_num as number',array('reship_id'=>$reship_id,'defective_num|than'=>0));
|
||
if (count($normal_reship_item)>0){
|
||
$main = $reship;
|
||
$main['memo'] = '差异退货入库,产生出库单';
|
||
$main['items'] = $normal_reship_item;
|
||
list($rs, $rsData) = $this->_dealOutItems($main);
|
||
if(!$rs) {
|
||
return [$rs, $rsData];
|
||
}
|
||
}
|
||
|
||
if (count($defective_reship_item)>0) {
|
||
$damaged = kernel::single('console_iostockdata')->getDamagedbranch($reship['branch_id']);
|
||
$main = $reship;
|
||
$main['branch_id'] = $damaged['branch_id'];
|
||
$main['memo'] = '差异退货入库,产生出库单';
|
||
$main['items'] = $defective_reship_item;
|
||
list($rs, $rsData) = $this->_dealOutItems($main);
|
||
if(!$rs) {
|
||
return [$rs, $rsData];
|
||
}
|
||
}
|
||
return [true, ['msg'=>'操作完成']];
|
||
}
|
||
|
||
private function _dealOutItems($main) {
|
||
$products = [];
|
||
foreach ($main['items'] as $v) {
|
||
$products[$v['product_id']] = [
|
||
'bn' => $v['bn'],
|
||
'name' => $v['product_name'],
|
||
'nums' => $v['number'],
|
||
'unit' => '',
|
||
'price' => 0,
|
||
];
|
||
}
|
||
$op = kernel::single('ome_func')->getDesktopUser();
|
||
$data = array(
|
||
'iostockorder_name' => date('Ymd') . '出库单',
|
||
'supplier' => '',
|
||
'supplier_id' => 0,
|
||
'branch' => $main['branch_id'],
|
||
'extrabranch_id' => 0,
|
||
'type_id' => ome_iostock::DIRECT_LIBRARAY,
|
||
'iso_price' => 0,
|
||
'memo' => $main['memo'],
|
||
'operator' => $op['op_name'],
|
||
'original_bn' => $main['reship_bn'],
|
||
'original_id' => $main['reship_id'],
|
||
'products' => $products,
|
||
'appropriation_no' => '',
|
||
'bill_type' => 'oms_reshipdiffout',
|
||
'confirm' => 'Y',
|
||
);
|
||
|
||
$iostockorder_instance = kernel::single('console_iostockorder');
|
||
$rs = $iostockorder_instance->save_iostockorder($data, $msg);
|
||
return [$rs, ['msg'=>$msg]];
|
||
}
|
||
} |