mirror of
https://gitee.com/ShopeX/OMS
synced 2026-04-23 21:05:35 +08:00
1. 【新增】售后单售后原因类型支持搜索
2. 【新增】手工创建订单折扣可输入正数 3. 【优化】盘点申请单确认 4. 【修复】采购退货单模拟出库失败问题 5. 【新增】订单金额客户实付与结算金额 6. 【优化】仓库发货统计报表物料名称显示 7. 【优化】自有仓储虚拟发货逻辑 8. 【修复】基础物料分类管理问题
This commit is contained in:
@@ -54,6 +54,7 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
'xiaomi' => 'XMYP',
|
||||
'dewu' => 'DW',
|
||||
'wxshipin' => 'WXSPHXD',
|
||||
'aikucun' => 'AKC',
|
||||
);
|
||||
|
||||
public function delivery_cancel($sdf){
|
||||
@@ -189,7 +190,9 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
}
|
||||
|
||||
//订单来源标识
|
||||
if ($sdf['shop_type'] == 'taobao' && $sdf['shop_id'] && $sdf['createway'] == 'matrix') {
|
||||
if (($sdf['shop_type'] == 'taobao' && $sdf['shop_id'] && $sdf['createway'] == 'matrix') || ($sdf['order_source'] == 'platformexchange' && $order_source)) {
|
||||
//矩阵下发的淘宝订单 或 平台换货生成的新订单
|
||||
$params['order_source'] = $order_source;
|
||||
//判断是不是天猫
|
||||
$shopInfo = $shopObj->dump(array('shop_id'=>$sdf['shop_id'],'tbbusiness_type'=>'B'));
|
||||
if ($shopInfo) {
|
||||
@@ -198,9 +201,6 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
}elseif ($sdf['platform_encrypt'] == true && $order_source){
|
||||
//平台加密订单
|
||||
$params['order_source'] = $order_source;
|
||||
}elseif($sdf['order_source'] == 'platformexchange' && $order_source){
|
||||
//平台换货生成的新订单
|
||||
$params['order_source'] = $order_source;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,8 +301,29 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
if (in_array(kernel::single('ome_bill_label')->isExpressMust(), (array)$labelCode)) {
|
||||
$order_flag[] = 'MODIFYTRANSPORT';
|
||||
}
|
||||
|
||||
// 国补订单(京东平台国补拍照信息:gov_photo_check)
|
||||
if(in_array($sdf['shop_type'], ['360buy', 'jd'])){
|
||||
$guoBuLabelInfo = [];
|
||||
$tempOrderBns = explode('|', $sdf['order_bn']);
|
||||
$order_bn = $tempOrderBns[0];
|
||||
$orderInfo = app::get('ome')->model('orders')->dump(array('order_bn'=>$order_bn), 'order_id,order_bn');
|
||||
if($orderInfo){
|
||||
$guoBuLabelInfo = kernel::single('ome_bill_label')->getBillLabelInfo($orderInfo['order_id'], 'order', 'SOMS_GB');
|
||||
}
|
||||
|
||||
// 国补订单拍照信息
|
||||
if($guoBuLabelInfo && $guoBuLabelInfo['label_value'] & 0x0400){
|
||||
$extend_props['gov_photo_check'] = '国补拍照';
|
||||
|
||||
// flag
|
||||
$params['remark'] = '[国补拍照]'. $params['remark'];
|
||||
}
|
||||
}
|
||||
|
||||
$params['extendProps'] = json_encode($extend_props);
|
||||
$params['order_flag'] = implode(',', $order_flag);
|
||||
|
||||
// 如果三级区不存在,直接使用二级市
|
||||
$params['receiver_state'] = $this->_formate_receiver_province($params['receiver_state'],$params['receiver_district']);
|
||||
|
||||
@@ -336,6 +357,10 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
$params['tid'] = explode('|', $sdf['order_bn']);
|
||||
$params['tid'] = $params['tid'][0];
|
||||
}
|
||||
}elseif(in_array($sdf['shop_type'], ['weimobr', 'weimobv'])){
|
||||
//@todo:必须传tid给美诺WMS侧;当微盟订单没有oaid时,必须传tid给美诺WMS侧;
|
||||
$tempOrders = explode('|', $sdf['order_bn']);
|
||||
$params['tid'] = $tempOrders[0];
|
||||
}
|
||||
|
||||
// 唯品会,判断是否有优先发货的标签
|
||||
@@ -372,6 +397,16 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
$params = $this->_get_wms_cross_shop_waybill($params, $sdf);
|
||||
|
||||
$params['seller_message'] = $sdf['memo'];
|
||||
|
||||
//@todo:美诺WMS最多允许传255个字符(一个汉字为3个字符),超出部分需要截取,否则推送报错;
|
||||
if(strlen($params['seller_message']) > 255){
|
||||
$params['seller_message'] = kernel::single('ome_func')->substrStringSafe($params['seller_message'], 255);
|
||||
}
|
||||
|
||||
if(strlen($params['remark']) > 255){
|
||||
$params['remark'] = kernel::single('ome_func')->substrStringSafe($params['remark'], 255);
|
||||
}
|
||||
|
||||
$params['buyer_message'] = $sdf['custom_mark'];
|
||||
|
||||
$receiver_name = $params['receiver_name'];
|
||||
@@ -419,18 +454,57 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
|
||||
$params['operate_time'] = date('Y-m-d H:i:s');
|
||||
|
||||
// 发货单明细详情
|
||||
$detailItems = [];
|
||||
$detailItemBns = [];
|
||||
$dlyDetailMdl = app::get('ome')->model('delivery_items_detail');
|
||||
$tempItems = $dlyDetailMdl->getList('item_detail_id,delivery_id,delivery_item_id,order_item_id,price,actually_amount,bn,number', array('delivery_id'=>$sdf['delivery_id']));
|
||||
foreach ($tempItems as $tempItemVal)
|
||||
{
|
||||
$product_bn = $tempItemVal['bn'];
|
||||
$detail_delivery_id = $tempItemVal['delivery_id'];
|
||||
$delivery_item_id = $tempItemVal['delivery_item_id'];
|
||||
$actually_amount = is_null($tempItemVal['actually_amount']) ? 0 : $tempItemVal['actually_amount'];
|
||||
|
||||
// items
|
||||
$detailItems[$detail_delivery_id][$delivery_item_id] = $tempItemVal;
|
||||
|
||||
// 按货号纬度累加:客户实付
|
||||
if(!isset($detailItemBns[$product_bn])){
|
||||
$detailItemBns[$product_bn] = [
|
||||
'bn' => $product_bn,
|
||||
'number' => 0,
|
||||
'actually_amount' => 0,
|
||||
];
|
||||
}
|
||||
|
||||
$detailItemBns[$product_bn]['number'] += $tempItemVal['number'];
|
||||
$detailItemBns[$product_bn]['actually_amount'] += $actually_amount;
|
||||
}
|
||||
|
||||
$items = array('item'=>array()); $delivery_items = $sdf['delivery_items'];
|
||||
|
||||
if ($delivery_items){
|
||||
sort($delivery_items);
|
||||
foreach ($delivery_items as $k => $v){
|
||||
foreach ($delivery_items as $k => $v)
|
||||
{
|
||||
$product_bn = $v['bn'];
|
||||
$qimen_delivery_id = $v['qimen_delivery_id'];
|
||||
$delivery_item_id = $v['delivery_items_id'];
|
||||
|
||||
// 客户实付(合并发货单,按货号纬度累加后的金额)
|
||||
$actually_amount = $detailItemBns[$product_bn]['actually_amount'];
|
||||
|
||||
// foreign_sku
|
||||
$foreignsku = app::get('console')->model('foreign_sku')->dump(array('wms_id'=>$this->__channelObj->wms['channel_id'],'inner_sku'=>$v['bn']));
|
||||
|
||||
//订单拆单后,回传奇门平台单号要唯一
|
||||
|
||||
$productInfo = $arrProductData[$v['product_id']];
|
||||
|
||||
//取明细order_item_id
|
||||
$items_detail = $shopObj->db->selectrow("SELECT order_item_id FROM sdb_ome_delivery_items_detail WHERE delivery_id=".$v['qimen_delivery_id']." AND delivery_item_id=".$v['delivery_items_id']);
|
||||
//$items_detail = $shopObj->db->selectrow("SELECT order_item_id FROM sdb_ome_delivery_items_detail WHERE delivery_id=".$v['qimen_delivery_id']." AND delivery_item_id=".$v['delivery_items_id']);
|
||||
$items_detail = $detailItems[$qimen_delivery_id][$delivery_item_id];
|
||||
|
||||
//[兼容]合并发货单超过50个字符需要截取
|
||||
if($appkey && in_array($appkey,array('31417025'))){
|
||||
$trade_code = $sdf['order_bn'];
|
||||
@@ -443,6 +517,7 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
{
|
||||
//$sub_trade_code .= '_'. $v['qimen_delivery_id'];
|
||||
}
|
||||
|
||||
$_item = array(
|
||||
'item_code' => $foreignsku['oms_sku'] ? $foreignsku['oms_sku'] : $v['bn'],
|
||||
'item_name' => $v['product_name'],
|
||||
@@ -458,7 +533,9 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
'item_sale_price' => (float)$v['sale_price'],//成交额
|
||||
'sub_source_order_code' => $sub_trade_code,
|
||||
'ownerCode' => $sdf['owner_code'],
|
||||
'item_actually_amount' => $actually_amount, // 客户实付
|
||||
);
|
||||
|
||||
// 唯品会,判断是否有重点检查
|
||||
if ($quality_check_itemcode && in_array($_item['item_code'], $quality_check_itemcode)) {
|
||||
$_item['extendProps'] = ['quality_check_itemcode'=>true];
|
||||
@@ -559,12 +636,11 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
/**
|
||||
* 合并订单发货时,format格式化明细
|
||||
* @todo:items明细中第一个订单号必须与receiver_address加密订单一致,否则第三方WMS无法解密;
|
||||
*
|
||||
*
|
||||
* @param $sdf
|
||||
* @param $items
|
||||
* @return void
|
||||
*/
|
||||
|
||||
public function _formatMergeItems($sdf, $items)
|
||||
{
|
||||
$first_order_bn = current(explode('|', $sdf['order_bn']));
|
||||
@@ -588,7 +664,7 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
|
||||
/**
|
||||
* 预售付尾款通知wms接口
|
||||
*
|
||||
*
|
||||
* @param $sdf
|
||||
* @return string
|
||||
*/
|
||||
@@ -599,7 +675,7 @@ class erpapi_wms_matrix_qimen_request_delivery extends erpapi_wms_request_delive
|
||||
|
||||
/**
|
||||
* 预售付尾款通知wms参数
|
||||
*
|
||||
*
|
||||
* @param $sdf
|
||||
* @return array
|
||||
*/
|
||||
|
||||
@@ -17,19 +17,13 @@
|
||||
/**
|
||||
* 退货单推送
|
||||
*
|
||||
* @category
|
||||
* @package
|
||||
* @category
|
||||
* @package
|
||||
* @author chenping<chenping@shopex.cn>
|
||||
* @version $Id: Z
|
||||
*/
|
||||
class erpapi_wms_matrix_qimen_request_reship extends erpapi_wms_request_reship
|
||||
{
|
||||
/**
|
||||
* reship_cancel
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
|
||||
public function reship_cancel($sdf){
|
||||
$title = $this->__channelObj->wms['channel_name'].'退货单取消';
|
||||
|
||||
@@ -96,6 +90,7 @@ class erpapi_wms_matrix_qimen_request_reship extends erpapi_wms_request_reship
|
||||
'item_remark' => '',// TODO: 商品备注
|
||||
'inventory_type' => $sdf['branch_type'] == 'damaged' ? '101' : '1',// TODO: 库存类型1可销售库存101类型用来定义残次品201冻结类型库存301在途库存
|
||||
'ownerCode' => $sdf['owner_code'],
|
||||
'sn' => $v['sn'] ? ['sn' => $v['sn']] : '',
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -121,4 +116,4 @@ class erpapi_wms_matrix_qimen_request_reship extends erpapi_wms_request_reship
|
||||
|
||||
return $params;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,30 +17,18 @@
|
||||
/**
|
||||
* 入库单推送
|
||||
*
|
||||
* @category
|
||||
* @package
|
||||
* @category
|
||||
* @package
|
||||
* @author chenping<chenping@shopex.cn>
|
||||
* @version $Id: Z
|
||||
*/
|
||||
class erpapi_wms_matrix_qimen_request_stockin extends erpapi_wms_request_stockin
|
||||
{
|
||||
/**
|
||||
* stockin_cancel
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
|
||||
public function stockin_cancel($sdf){
|
||||
$stockin_bn = $sdf['io_bn'];
|
||||
|
||||
$title = $this->__channelObj->wms['channel_name'] . '入库单取消';
|
||||
|
||||
$params = array(
|
||||
'order_type' => $this->transfer_stockin_type($sdf['io_type']),
|
||||
'out_order_code' => $stockin_bn,
|
||||
'warehouse_code' => $this->get_warehouse_code($this->__channelObj->wms['channel_id'],$sdf['branch_bn']),
|
||||
'order_id' => $sdf['out_iso_bn'],
|
||||
);
|
||||
protected function _format_stockin_cancel_params($sdf)
|
||||
{
|
||||
$params = parent::_format_stockin_cancel_params($sdf);
|
||||
$params['warehouse_code'] = $this->get_warehouse_code($this->__channelObj->wms['channel_id'],$sdf['branch_bn']);
|
||||
$params['order_id'] = $sdf['out_iso_bn'];
|
||||
if (isset($sdf['owner_code'])) {
|
||||
$params['ownerCode'] = $sdf['owner_code'];
|
||||
}
|
||||
@@ -50,7 +38,7 @@ class erpapi_wms_matrix_qimen_request_stockin extends erpapi_wms_request_stockin
|
||||
$params['order_type'] = $this->transfer_stockin_type('PURCHASE');
|
||||
}
|
||||
|
||||
return $this->__caller->call(WMS_ORDER_CANCEL, $params, null, $title, 10, $stockin_bn);
|
||||
return $params;
|
||||
}
|
||||
|
||||
protected function _format_stockin_create_params($sdf)
|
||||
@@ -171,4 +159,4 @@ class erpapi_wms_matrix_qimen_request_stockin extends erpapi_wms_request_stockin
|
||||
|
||||
return $params;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,19 +17,13 @@
|
||||
/**
|
||||
* 出库单推送
|
||||
*
|
||||
* @category
|
||||
* @package
|
||||
* @category
|
||||
* @package
|
||||
* @author chenping<chenping@shopex.cn>
|
||||
* @version $Id: Z
|
||||
*/
|
||||
class erpapi_wms_matrix_qimen_request_stockout extends erpapi_wms_request_stockout
|
||||
{
|
||||
/**
|
||||
* stockout_cancel
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
|
||||
public function stockout_cancel($sdf){
|
||||
$stockout_bn = $sdf['io_bn'];
|
||||
|
||||
@@ -210,8 +204,15 @@ class erpapi_wms_matrix_qimen_request_stockout extends erpapi_wms_request_stocko
|
||||
// $params['extendProps'] = $extendProps;
|
||||
|
||||
}
|
||||
|
||||
// 仓库自定义字段-活动号
|
||||
$extend_props = [];
|
||||
if (isset($sdf['activity_no'])) {
|
||||
$extend_props['activity_no'] = $sdf['activity_no'];
|
||||
}
|
||||
if ($extend_props) {
|
||||
$params['extendProps'] = json_encode($extend_props);
|
||||
}
|
||||
|
||||
return $params;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,20 +29,19 @@ class erpapi_wms_request_delivery extends erpapi_wms_request_abstract
|
||||
|
||||
/**
|
||||
* 发货单暂停
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
|
||||
**/
|
||||
public function delivery_pause($sdf)
|
||||
{}
|
||||
|
||||
/**
|
||||
* 发货单暂停恢复
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function delivery_renew($sdf)
|
||||
{}
|
||||
|
||||
@@ -88,14 +87,15 @@ class erpapi_wms_request_delivery extends erpapi_wms_request_abstract
|
||||
}
|
||||
/**
|
||||
* 发货单创建
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function delivery_create($sdf)
|
||||
{
|
||||
$delivery_bn = $sdf['outer_delivery_bn'];
|
||||
|
||||
$channel_id = $this->__channelObj->wms['channel_id'];
|
||||
|
||||
$iscancel = kernel::single('ome_interface_delivery')->iscancel($delivery_bn);
|
||||
if ($iscancel) {
|
||||
return $this->succ('发货单已取消,终止同步');
|
||||
@@ -107,13 +107,54 @@ class erpapi_wms_request_delivery extends erpapi_wms_request_abstract
|
||||
if ($sdf['member']['name'] && $encrytPos = strpos($sdf['member']['name'] , '>>')){
|
||||
$sdf['member']['name'] = substr($sdf['member']['name'] , 0, $encrytPos);
|
||||
}
|
||||
|
||||
// 自发货标记:调用selfwms渠道自动完成发货
|
||||
//@todo:发货单明细里都是虚拟商品,则打标记为虚拟发货单,并推送selfwms接口,自动完成发货
|
||||
if(isset($sdf['is_self_shipment']) && $sdf['is_self_shipment'] === true){
|
||||
// params
|
||||
$responseData = [
|
||||
'delivery_bn' => $delivery_bn, // 发货单号
|
||||
'status' => 'delivery',
|
||||
'logi_id' => $sdf['logi_id'], // 物流公司ID:直接使用发货单上的物流公司ID
|
||||
'logistics' => $sdf['logi_id'], // 物流公司ID:直接使用发货单上的物流公司ID
|
||||
'logi_no' => $delivery_bn, // 物流单号:直接使用发货单号作为虚拟物流单号
|
||||
];
|
||||
|
||||
// delivery_items
|
||||
if($sdf['delivery_items']){
|
||||
$itemList = [];
|
||||
foreach($sdf['delivery_items'] as $itemVal)
|
||||
{
|
||||
$itemList[] = array(
|
||||
'product_bn' => $itemVal['bn'],
|
||||
'num' => $itemVal['number'],
|
||||
);
|
||||
}
|
||||
|
||||
$responseData['item'] = json_encode($itemList);
|
||||
}
|
||||
|
||||
return kernel::single('erpapi_router_response')->set_channel_id($channel_id)->set_api_name('wms.delivery.status_update')->dispatch($responseData);
|
||||
}
|
||||
|
||||
// 加密推送
|
||||
if ($this->_needEncryptOriginData($sdf)) {
|
||||
$this->_getEncryptOriginData($sdf);
|
||||
}
|
||||
$title = $this->__channelObj->wms['channel_name'] . '发货单添加';
|
||||
|
||||
// 通过 service 处理不同 APP 的参数格式化
|
||||
$params = $this->_format_delivery_create_params($sdf);
|
||||
|
||||
// 调用 service 进行参数扩展或修改
|
||||
if ($service = kernel::servicelist('erpapi.service.wms.delivery.params.format')) {
|
||||
foreach ($service as $object => $instance) {
|
||||
if (method_exists($instance, 'format_delivery_create_params')) {
|
||||
$params = $instance->format_delivery_create_params($sdf, $params, $this->__channelObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$params) {
|
||||
return $this->error('参数为空,终止同步');
|
||||
}
|
||||
@@ -163,7 +204,7 @@ class erpapi_wms_request_delivery extends erpapi_wms_request_abstract
|
||||
|
||||
/**
|
||||
* 发货单创建接口名
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
*/
|
||||
@@ -352,12 +393,6 @@ class erpapi_wms_request_delivery extends erpapi_wms_request_abstract
|
||||
return $params;
|
||||
}
|
||||
|
||||
/**
|
||||
* delivery_create_callback
|
||||
* @param mixed $response response
|
||||
* @param mixed $callback_params 参数
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function delivery_create_callback($response, $callback_params)
|
||||
{
|
||||
$deliveryObj = app::get('ome')->model('delivery');
|
||||
@@ -418,10 +453,10 @@ class erpapi_wms_request_delivery extends erpapi_wms_request_abstract
|
||||
|
||||
/**
|
||||
* 发货单取消
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function delivery_cancel($sdf)
|
||||
{
|
||||
$delivery_bn = $sdf['outer_delivery_bn'];
|
||||
@@ -445,10 +480,10 @@ class erpapi_wms_request_delivery extends erpapi_wms_request_abstract
|
||||
|
||||
/**
|
||||
* 发货单查询
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function delivery_search($sdf)
|
||||
{
|
||||
$delivery_bn = $sdf['delivery_bn'];
|
||||
@@ -532,11 +567,6 @@ class erpapi_wms_request_delivery extends erpapi_wms_request_abstract
|
||||
}
|
||||
|
||||
# 发货单截单
|
||||
/**
|
||||
* delivery_cut
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function delivery_cut($sdf){
|
||||
$deliveryBn = $sdf['outer_delivery_bn'];
|
||||
$title = $this->__channelObj->channel['channel_name'] . '发货单截单';
|
||||
@@ -568,9 +598,9 @@ class erpapi_wms_request_delivery extends erpapi_wms_request_abstract
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* 预售付尾款通知wms接口
|
||||
*
|
||||
*
|
||||
* @param $sdf
|
||||
* @return string
|
||||
*/
|
||||
@@ -607,12 +637,6 @@ class erpapi_wms_request_delivery extends erpapi_wms_request_abstract
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* delivery_notify_callback
|
||||
* @param mixed $response response
|
||||
* @param mixed $callback_params 参数
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function delivery_notify_callback($response, $callback_params)
|
||||
{
|
||||
$rsp = $response['rsp'];
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
/**
|
||||
* 商品分配推送
|
||||
*
|
||||
* @category
|
||||
* @package
|
||||
* @category
|
||||
* @package
|
||||
* @author chenping<chenping@shopex.cn>
|
||||
* @version $Id: Z
|
||||
*/
|
||||
@@ -27,11 +27,10 @@ class erpapi_wms_request_goods extends erpapi_wms_request_abstract
|
||||
|
||||
/**
|
||||
* 商品添加
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
|
||||
**/
|
||||
public function goods_add($sdf){
|
||||
$title = $this->__channelObj->wms['channel_name'] . '商品添加';
|
||||
|
||||
@@ -57,12 +56,6 @@ class erpapi_wms_request_goods extends erpapi_wms_request_abstract
|
||||
return $this->__caller->call(WMS_ITEM_ADD, $params, $callback, $title,10);
|
||||
}
|
||||
|
||||
/**
|
||||
* goods_callback
|
||||
* @param mixed $response response
|
||||
* @param mixed $callback_params 参数
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function goods_callback($response, $callback_params)
|
||||
{
|
||||
$rsp = $response['rsp'];
|
||||
@@ -143,10 +136,10 @@ class erpapi_wms_request_goods extends erpapi_wms_request_abstract
|
||||
|
||||
/**
|
||||
* 商品编辑
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function goods_update($sdf){
|
||||
$title = $this->__channelObj->wms['channel_name'] . '商品编辑';
|
||||
|
||||
@@ -223,27 +216,17 @@ class erpapi_wms_request_goods extends erpapi_wms_request_abstract
|
||||
return $params;
|
||||
}
|
||||
|
||||
/**
|
||||
* goods_addCombination
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function goods_addCombination($sdf) {
|
||||
return $this->error('没有该接口');
|
||||
}
|
||||
|
||||
/**
|
||||
* goods_syncMap
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function goods_syncMap($sdf) {
|
||||
return $this->error('没有该接口');
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步库存
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
*/
|
||||
@@ -287,9 +270,16 @@ class erpapi_wms_request_goods extends erpapi_wms_request_abstract
|
||||
$rs = $this->__caller->call(WMS_STOCK_QUERY, $params, [],$title,10,$sdf['wms_branch_bn']);
|
||||
if(isset($rs['data'])) {
|
||||
$data = @json_decode($rs['data'], 1);
|
||||
$rs['total_count'] = $data['succ'][0]['total_count'];
|
||||
$data = $data['succ'][0]['item_list'] ? : [];
|
||||
|
||||
// total_count
|
||||
$rs['total_count'] = isset($data['succ'][0]['total_count']) ? intval($data['succ'][0]['total_count']) : 0;
|
||||
$data = isset($data['succ'][0]['item_list']) ? $data['succ'][0]['item_list'] : [];
|
||||
$rs['data'] = [];
|
||||
|
||||
// check
|
||||
if(empty($data)){
|
||||
return $rs;
|
||||
}
|
||||
|
||||
foreach ($data as $v) {
|
||||
$rs['data'][] = [
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* 退货单推送
|
||||
*
|
||||
@@ -45,6 +44,19 @@ class erpapi_wms_request_reship extends erpapi_wms_request_abstract
|
||||
$title = $this->__channelObj->wms['channel_name'] . '退货单添加';
|
||||
|
||||
$params = $this->_format_reship_create_params($sdf);
|
||||
|
||||
// 调用 service 进行参数扩展或修改
|
||||
if ($service = kernel::servicelist('erpapi.service.wms.reship.params.format')) {
|
||||
foreach ($service as $object => $instance) {
|
||||
if (method_exists($instance, 'format_reship_create_params')) {
|
||||
$params = $instance->format_reship_create_params($sdf, $params, $this->__channelObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$params) {
|
||||
return $this->error('参数为空,终止同步');
|
||||
}
|
||||
|
||||
$callback = array(
|
||||
'class' => get_class($this),
|
||||
@@ -173,6 +185,7 @@ class erpapi_wms_request_reship extends erpapi_wms_request_abstract
|
||||
'is_gift' => '0', // TODO: 判断是否为赠品0:不是1:是
|
||||
'item_remark' => '', // TODO: 商品备注
|
||||
'inventory_type' => $sdf['branch_type'] == 'damaged' ? '101' : '1', // TODO: 库存类型1可销售库存101类型用来定义残次品201冻结类型库存301在途库存
|
||||
'sn' => $v['sn'] ? ['sn' => $v['sn']] : '',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,11 +43,10 @@ class erpapi_wms_request_stockin extends erpapi_wms_request_abstract
|
||||
|
||||
/**
|
||||
* 入库单创建
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
|
||||
**/
|
||||
public function stockin_create($sdf){
|
||||
$stockin_bn = $sdf['io_bn'];
|
||||
|
||||
@@ -90,6 +89,12 @@ class erpapi_wms_request_stockin extends erpapi_wms_request_abstract
|
||||
$params['item_total_num'] = $total;
|
||||
$params['line_total_count'] = $total;
|
||||
|
||||
// 增加service
|
||||
foreach(kernel::servicelist('erpapi.service.wms.stockin.create.params') as $service){
|
||||
if(method_exists($service, 'format_stockin_create_params')){
|
||||
$params = $service->format_stockin_create_params($sdf, $params);
|
||||
}
|
||||
}
|
||||
|
||||
$callback = array(
|
||||
'class' => get_class($this),
|
||||
@@ -109,12 +114,6 @@ class erpapi_wms_request_stockin extends erpapi_wms_request_abstract
|
||||
} while (true);
|
||||
}
|
||||
|
||||
/**
|
||||
* stockin_create_callback
|
||||
* @param mixed $response response
|
||||
* @param mixed $callback_params 参数
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function stockin_create_callback($response, $callback_params)
|
||||
{
|
||||
// 更新外部编码
|
||||
@@ -244,7 +243,14 @@ class erpapi_wms_request_stockin extends erpapi_wms_request_abstract
|
||||
|
||||
$params = $this->_format_stockin_cancel_params($sdf);
|
||||
|
||||
return $this->__caller->call(WMS_INORDER_CANCEL, $params, null, $title, 10, $stockin_bn);
|
||||
// 增加service
|
||||
foreach(kernel::servicelist('erpapi.service.wms.stockin.cancel.params') as $service){
|
||||
if(method_exists($service, 'format_stockin_cancel_params')){
|
||||
$params = $service->format_stockin_cancel_params($sdf, $params);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->__caller->call(WMS_ORDER_CANCEL, $params, null, $title, 10, $stockin_bn);
|
||||
}
|
||||
|
||||
protected function _format_stockin_cancel_params($sdf)
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* WMS 发货单
|
||||
*
|
||||
@@ -40,7 +39,7 @@ class erpapi_wms_response_delivery extends erpapi_wms_response_abstract
|
||||
$batch_logi_no = array_filter(explode(';', $batch_logi_no));
|
||||
$logi_no = array_pop($batch_logi_no);
|
||||
|
||||
if ($this->__channelObj->wms['adapter'] != 'selfwms' && $params['status'] == 'DELIVERY' && !$logi_no) {
|
||||
if ($this->__channelObj->wms['adapter'] != 'selfwms' && $params['status'] == 'DELIVERY' && $params['logistics'] && !$logi_no) {
|
||||
$this->__apilog['result']['msg'] = '缺少运单号';
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* 发货
|
||||
*
|
||||
@@ -99,6 +98,30 @@ class erpapi_wms_response_process_delivery
|
||||
}
|
||||
}
|
||||
|
||||
// WMS 回传无物流公司、无运单号时:非大件物流须报错(大件在 OMS 内会用发货单号兜底运单号)
|
||||
if ($params['status'] == 'delivery') {
|
||||
$logiIdEmpty = empty($params['logi_id']);
|
||||
$logiNoEmpty = trim((string)($params['logi_no'] ?? '')) === '';
|
||||
$billHasLogi = !empty($params['bill_logi_no']) && is_array($params['bill_logi_no'])
|
||||
&& array_filter(array_map('trim', $params['bill_logi_no']));
|
||||
if ($logiIdEmpty && $logiNoEmpty && !$billHasLogi) {
|
||||
$deliveryRow = app::get('ome')->model('delivery')->dump(
|
||||
array('delivery_bn' => $params['delivery_bn']),
|
||||
'logi_id'
|
||||
);
|
||||
if (empty($deliveryRow['logi_id'])) {
|
||||
return array('rsp' => 'fail', 'msg' => '缺少物流公司');
|
||||
}
|
||||
$corpRow = app::get('ome')->model('dly_corp')->dump(
|
||||
array('corp_id' => $deliveryRow['logi_id']),
|
||||
'corp_model'
|
||||
);
|
||||
if (empty($corpRow['corp_model']) || $corpRow['corp_model'] != 'heavy') {
|
||||
return array('rsp' => 'fail', 'msg' => '缺少物流公司运单号');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 如果发货提前触发AG
|
||||
if ($params['status'] == 'delivery' && $params['node_type'] == 'yjdf') {
|
||||
$this->delivery_refundAg($params['delivery_bn'], $params['status']);
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* 库存对账
|
||||
*
|
||||
@@ -47,7 +46,7 @@ class erpapi_wms_response_process_stock
|
||||
$isFail = false;
|
||||
$msg = [];
|
||||
foreach ($items as $item) {
|
||||
$uniqueBn = sha1($item['order_code'].'-|-'.$item['order_type'].'-|-'.$item['batch_code'].'-|-'.$item['warehouse'].'-|-'.$item['product_bn'].'-|-'.$item['wms_node_id'].'-|-'.$item['normal_num'].'-|-'.$item['defective_num']);
|
||||
$uniqueBn = sha1($item['order_code'].'-|-'.$item['order_type'].'-|-'.$item['batch_code'].'-|-'.$item['warehouse'].'-|-'.$item['product_bn'].'-|-'.$item['wms_node_id'].'-|-'.$item['normal_num'].'-|-'.$item['defective_num'].'-|-'.$item['out_biz_code']);
|
||||
$item['unique_bn'] = $uniqueBn;
|
||||
|
||||
if (!$item['change_time']){
|
||||
|
||||
@@ -43,6 +43,7 @@ class erpapi_wms_response_process_storeprocess {
|
||||
}
|
||||
|
||||
private function _dealStatus($sdf){
|
||||
|
||||
$tmp = $this->tmp_dealStatus($sdf);
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
/**
|
||||
* 退货单
|
||||
*
|
||||
* @category
|
||||
* @package
|
||||
* @category
|
||||
* @package
|
||||
* @author chenping<chenping@shopex.cn>
|
||||
* @version $Id: Z
|
||||
*/
|
||||
@@ -26,9 +26,8 @@ class erpapi_wms_response_reship extends erpapi_wms_response_abstract
|
||||
{
|
||||
/**
|
||||
* wms.reship.status_update
|
||||
*
|
||||
* */
|
||||
|
||||
*
|
||||
**/
|
||||
public function status_update($params){
|
||||
|
||||
$this->__apilog['title'] = $this->__channelObj->wms['channel_name'] . '退货单' . $params['reship_bn'];
|
||||
@@ -73,14 +72,32 @@ class erpapi_wms_response_reship extends erpapi_wms_response_abstract
|
||||
if($items){
|
||||
foreach($items as $key=>$val){
|
||||
if (!$val['product_bn']) continue;
|
||||
|
||||
$reship_items[$val['product_bn']]['bn'] = $val['product_bn'];
|
||||
$reship_items[$val['product_bn']]['normal_num'] = (int)$reship_items[$val['product_bn']]['normal_num'] + (int)$val['normal_num'];
|
||||
$reship_items[$val['product_bn']]['defective_num'] = (int)$reship_items[$val['product_bn']]['defective_num'] + (int)$val['defective_num'];
|
||||
$key = trim($val['product_bn']);
|
||||
if(app::get('ome')->getConf('wms.goods.type.branch') == 1) {
|
||||
if(empty($val['inventoryType'])) {
|
||||
$this->__apilog['result']['msg'] = '缺少商品库位';
|
||||
return false;
|
||||
}
|
||||
$arrTypeBranch = [];
|
||||
if(!$arrTypeBranch[$val['inventoryType']]) {
|
||||
$arrTypeBranch[$val['inventoryType']] = kernel::single('ome_branch_type')->getBranchByTypeWms($val['inventoryType'], $this->__channelObj->wms['channel_id'], $params['warehouse']);
|
||||
}
|
||||
if(!$arrTypeBranch[$val['inventoryType']]) {
|
||||
$this->__apilog['result']['msg'] = '商品库位对应的仓库不存在';
|
||||
return false;
|
||||
}
|
||||
$key = $key . '-|-' . $arrTypeBranch[$val['inventoryType']]['branch_id'];
|
||||
$reship_items[$key]['branch_id'] = $arrTypeBranch[$val['inventoryType']]['branch_id'];
|
||||
$val['normal_num'] = (int)$val['normal_num'] + (int)$val['defective_num'];
|
||||
$val['defective_num'] = 0;
|
||||
}
|
||||
$reship_items[$key]['bn'] = $val['product_bn'];
|
||||
$reship_items[$key]['normal_num'] = (int)$reship_items[$key]['normal_num'] + (int)$val['normal_num'];
|
||||
$reship_items[$key]['defective_num'] = (int)$reship_items[$key]['defective_num'] + (int)$val['defective_num'];
|
||||
|
||||
if(is_array($val['sn_list']) && $val['sn_list']['sn']) {
|
||||
$sn_list = is_array($val['sn_list']['sn']) ? $val['sn_list']['sn'] : [$val['sn_list']['sn']];
|
||||
$reship_items[$val['product_bn']]['sn_list'] = $reship_items[$val['product_bn']]['sn_list'] ? array_merge($reship_items[$val['product_bn']]['sn_list'], $sn_list) : $sn_list;
|
||||
$reship_items[$key]['sn_list'] = $reship_items[$key]['sn_list'] ? array_merge($reship_items[$key]['sn_list'], $sn_list) : $sn_list;
|
||||
}
|
||||
if($val['batch']) {
|
||||
$v = $val['batch'];
|
||||
@@ -89,7 +106,7 @@ class erpapi_wms_response_reship extends erpapi_wms_response_abstract
|
||||
foreach ($v as $vv) {
|
||||
if ($vv['actualQty'] == 0) continue;
|
||||
|
||||
$reship_items[$val['product_bn']]['batch'][] = array(
|
||||
$reship_items[$key]['batch'][] = array(
|
||||
'purchase_code' => $vv['batchCode'],
|
||||
'produce_code' => $vv['produceCode'],
|
||||
'product_time' => strtotime($vv['productDate']),
|
||||
@@ -101,7 +118,7 @@ class erpapi_wms_response_reship extends erpapi_wms_response_abstract
|
||||
} else {
|
||||
if ($v['actualQty'] == 0) continue;
|
||||
|
||||
$reship_items[$val['product_bn']]['batch'][] = array(
|
||||
$reship_items[$key]['batch'][] = array(
|
||||
'purchase_code' => $v['batchCode'],
|
||||
'produce_code' => $v['produceCode'],
|
||||
'product_time' => strtotime($v['productDate']),
|
||||
@@ -113,11 +130,69 @@ class erpapi_wms_response_reship extends erpapi_wms_response_abstract
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$virtualItems = $this->_getVirtualItems($data['reship_bn']);
|
||||
if(!empty($virtualItems)) {
|
||||
$reship_items = array_merge($reship_items, $virtualItems);
|
||||
}
|
||||
$data['items'] = $reship_items;
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function _getVirtualItems($reship_bn) {
|
||||
// 获取退货单信息
|
||||
$reshipMdl = app::get('ome')->model('reship');
|
||||
$reshipInfo = $reshipMdl->db_dump(array('reship_bn' => $reship_bn), 'reship_id');
|
||||
|
||||
if (empty($reshipInfo)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
// 获取退货明细
|
||||
$reshipItemMdl = app::get('ome')->model('reship_items');
|
||||
$reshipItems = $reshipItemMdl->getList('bn, num', array(
|
||||
'reship_id' => $reshipInfo['reship_id'],
|
||||
'is_del' => 'false'
|
||||
));
|
||||
|
||||
if (empty($reshipItems)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
// 提取所有bn
|
||||
$bns = array_column($reshipItems, 'bn');
|
||||
if (empty($bns)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
// 查询虚拟类型的基础物料
|
||||
$basicMaterialMdl = app::get('material')->model('basic_material');
|
||||
$virtualMaterials = $basicMaterialMdl->getList('material_bn', array(
|
||||
'material_bn' => $bns,
|
||||
'type' => 5, // 虚拟类型
|
||||
'disabled' => 'false'
|
||||
));
|
||||
|
||||
if (empty($virtualMaterials)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
// 获取虚拟物料的bn列表
|
||||
$virtualBns = array_column($virtualMaterials, 'material_bn');
|
||||
|
||||
// 组装结果数据
|
||||
$result = array();
|
||||
foreach ($reshipItems as $item) {
|
||||
if (in_array($item['bn'], $virtualBns)) {
|
||||
$result[] = array(
|
||||
'bn' => $item['bn'],
|
||||
'normal_num' => (int)$item['num']
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function _dealWMSParams($params) {
|
||||
if(empty($params['reship_bn']) && empty($params['return_order_id'])) {
|
||||
return [false, ['msg'=>'缺少参数']];
|
||||
@@ -150,7 +225,7 @@ class erpapi_wms_response_reship extends erpapi_wms_response_abstract
|
||||
$inData['logistics'] = $params['logistics'];
|
||||
$inData['logi_no'] = $params['logi_no'];
|
||||
$inData['remark'] = $params['remark'];
|
||||
$inData['extend_props'] = $params['extend_props'];
|
||||
$inData['extend_props'] = $params['extendProps'];
|
||||
$inData['order_type'] = $params['order_type'];
|
||||
$inData['warehouse'] = $params['warehouse'];
|
||||
$id = $wrMdl->insert($inData);
|
||||
@@ -164,12 +239,13 @@ class erpapi_wms_response_reship extends erpapi_wms_response_abstract
|
||||
$inItems[] = [
|
||||
'wr_id' => $id,
|
||||
'product_bn' => $val['product_bn'],
|
||||
'inventory_type' => $val['inventoryType'],
|
||||
'normal_num' => $val['normal_num'],
|
||||
'defective_num' => $val['defective_num'],
|
||||
'sn_list' => $val['sn_list'] ? json_encode($val['sn_list'], JSON_UNESCAPED_UNICODE) : '',
|
||||
'batch' => $val['batch'] ? json_encode($val['batch'], JSON_UNESCAPED_UNICODE) : '',
|
||||
'wms_item_id' => $val['item_id'],
|
||||
'extend_props' => $val['extend_props'],
|
||||
'extend_props' => $val['extendProps'],
|
||||
];
|
||||
}
|
||||
$wriMdl = app::get('console')->model('wms_reship_items');
|
||||
@@ -181,11 +257,6 @@ class erpapi_wms_response_reship extends erpapi_wms_response_abstract
|
||||
}
|
||||
|
||||
#wms.reship.add_complete
|
||||
/**
|
||||
* 添加_complete
|
||||
* @param mixed $params 参数
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function add_complete($params) {
|
||||
$this->__apilog['title'] = $this->__channelObj->channel['channel_name'] . '新建与完成退货单';
|
||||
$this->__apilog['original_bn'] = $params['returnOrderId'];
|
||||
|
||||
@@ -14,8 +14,12 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 库存对账
|
||||
*
|
||||
* @copyright shopex.cn 2013.04.08
|
||||
* @author dongqiujing<123517746@qq.com>
|
||||
*/
|
||||
class erpapi_wms_response_stock extends erpapi_wms_response_abstract
|
||||
{
|
||||
/**
|
||||
@@ -87,6 +91,7 @@ class erpapi_wms_response_stock extends erpapi_wms_response_abstract
|
||||
'produce_code' => $val['produceCode'],
|
||||
'expire_date' => $val['expireDate'],
|
||||
'change_time' => $val['changeTime'],
|
||||
'out_biz_code' => $val['outBizCode'],
|
||||
'sn_list' => $val['sn_list'] ? json_encode($val['sn_list'], JSON_UNESCAPED_UNICODE) : '',
|
||||
'wms_node_id' => $this->__channelObj->wms['node_id'],
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* 入库单
|
||||
*
|
||||
@@ -194,6 +193,7 @@ class erpapi_wms_response_stockin extends erpapi_wms_response_abstract
|
||||
'sn_list' => $val['sn_list'] ? json_encode($val['sn_list'], JSON_UNESCAPED_UNICODE) : '',
|
||||
'batch' => $val['batch'] ? json_encode($val['batch'], JSON_UNESCAPED_UNICODE) : '',
|
||||
'wms_item_id' => $val['item_id'],
|
||||
'inventoryType' => $val['inventoryType'] ? $val['inventoryType'] : '',
|
||||
];
|
||||
}
|
||||
$wriMdl = app::get('console')->model('wms_stockin_items');
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
/**
|
||||
* 供应商推送
|
||||
*
|
||||
* @category
|
||||
* @package
|
||||
* @category
|
||||
* @package
|
||||
* @author chenping<chenping@shopex.cn>
|
||||
* @version $Id: Z
|
||||
*/
|
||||
@@ -31,12 +31,6 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
public $__apilog;
|
||||
|
||||
/**
|
||||
* 初始化
|
||||
* @param erpapi_channel_abstract $channel channel
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
|
||||
public function init(erpapi_channel_abstract $channel)
|
||||
{
|
||||
$this->__channelObj = $channel;
|
||||
@@ -45,37 +39,33 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
}
|
||||
|
||||
/**
|
||||
* succ
|
||||
* @param mixed $msg msg
|
||||
* @param mixed $msgcode msgcode
|
||||
* @param mixed $data 数据
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
* 成功输出
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
**/
|
||||
final public function succ($msg='', $msgcode='', $data=null)
|
||||
{
|
||||
return array('rsp'=>'succ', 'msg'=>$msg, 'msg_code'=>$msgcode, 'data'=>$data);
|
||||
}
|
||||
|
||||
/**
|
||||
* error
|
||||
* @param mixed $msg msg
|
||||
* @param mixed $msgcode msgcode
|
||||
* @param mixed $data 数据
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
* 失败输出
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
**/
|
||||
final public function error($msg, $msgcode, $data=null)
|
||||
{
|
||||
return array('rsp'=>'fail','msg'=>$msg,'msg_code'=>$msgcode,'data'=>$data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存_api_fail
|
||||
* @param mixed $obj_bn obj_bn
|
||||
* @param mixed $obj_type obj_type
|
||||
* @param mixed $method method
|
||||
* @param mixed $err_msg err_msg
|
||||
* @return mixed 返回操作结果
|
||||
*/
|
||||
* 失败日志
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
**/
|
||||
final public function save_api_fail($obj_bn,$obj_type,$method,$err_msg)
|
||||
{
|
||||
$failApiModel = app::get('erpapi')->model('api_fail');
|
||||
@@ -96,10 +86,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* undocumented function
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
private function request($wms_class,$wms_method,$wms_params)
|
||||
{
|
||||
try {
|
||||
@@ -148,10 +138,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 发货单创建
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function delivery_create($sdf){
|
||||
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '发货单添加';
|
||||
@@ -179,6 +169,35 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
}elseif($rs['rsp'] == 'succ'){
|
||||
$failApiModel->delete(array('obj_bn'=>$sdf['outer_delivery_bn'],'obj_type'=>'delivery'));
|
||||
$consoleDlyLib->update_sync_status($deliverys['delivery_id'], 'send_succ', $msg);
|
||||
|
||||
// 自发货标记(selfwms自有仓储自动完成发货)
|
||||
if($sdf['is_self_shipment'] === true){
|
||||
$wms_id = $this->__channelObj->wms['channel_id'];
|
||||
$delivery_bn = $sdf['delivery_bn'];
|
||||
|
||||
// params
|
||||
$data = [];
|
||||
$data['delivery_bn'] = $delivery_bn; // 发货单号
|
||||
$data['status'] = 'delivery';
|
||||
$data['logi_id'] = $sdf['logi_id']; // 物流公司ID:直接使用发货单上的物流公司ID
|
||||
$data['logi_no'] = $delivery_bn; // 物流单号:直接使用发货单号作为虚拟物流单号
|
||||
|
||||
// delivery_items
|
||||
if($sdf['delivery_items']){
|
||||
$itemList = [];
|
||||
foreach($sdf['delivery_items'] as $itemVal)
|
||||
{
|
||||
$itemList[] = array(
|
||||
'product_bn' => $itemVal['bn'],
|
||||
'num' => $itemVal['number'],
|
||||
);
|
||||
}
|
||||
$data['item'] = json_encode($itemList);
|
||||
}
|
||||
|
||||
return kernel::single('erpapi_router_response')->set_channel_id($wms_id)->set_api_name('wms.delivery.status_update')->dispatch($data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $rs;
|
||||
@@ -186,10 +205,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 发货单暂停
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function delivery_pause($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '发货单暂停';
|
||||
$this->original_bn = $sdf['outer_delivery_bn'];
|
||||
@@ -199,10 +218,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 发货单暂停恢复
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function delivery_renew($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '发货单恢复';
|
||||
$this->original_bn = $sdf['outer_delivery_bn'];
|
||||
@@ -212,10 +231,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 发货单取消
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function delivery_cancel($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '发货单撤销';
|
||||
$this->original_bn = $sdf['outer_delivery_bn'];
|
||||
@@ -225,10 +244,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 商品添加
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function goods_add($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '添加物料';
|
||||
|
||||
@@ -237,10 +256,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 商品编辑
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function goods_update($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '更新物料';
|
||||
|
||||
@@ -249,10 +268,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 退货单创建
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function reship_create($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '退货单创建';
|
||||
$this->original_bn = $sdf['reship_bn'];
|
||||
@@ -262,10 +281,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 退货单创建取消
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function reship_cancel($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '退货单取消';
|
||||
$this->original_bn = $sdf['reship_bn'];
|
||||
@@ -275,10 +294,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 转储单创建
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function stockdump_create($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '转储单创建';
|
||||
$this->original_bn = $sdf['stockdump_bn'];
|
||||
@@ -288,10 +307,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 转储单取消
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function stockdump_cancel($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '转储单取消';
|
||||
$this->original_bn = $sdf['stockdump_bn'];
|
||||
@@ -301,10 +320,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 入库单创建
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function stockin_create($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '入库单创建';
|
||||
$this->original_bn = $sdf['io_bn'];
|
||||
@@ -340,10 +359,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 入库单取消
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function stockin_cancel($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '入库单取消';
|
||||
$this->original_bn = $sdf['io_bn'];
|
||||
@@ -373,10 +392,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 出库单创建
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function stockout_create($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '出库单创建';
|
||||
$this->original_bn = $sdf['io_bn'];
|
||||
@@ -407,10 +426,10 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
|
||||
/**
|
||||
* 出库单取消
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @author
|
||||
* */
|
||||
**/
|
||||
public function stockout_cancel($sdf){
|
||||
$this->title = $this->__channelObj->wms['channel_name'] . '出库单取消';
|
||||
$this->original_bn = $sdf['io_bn'];
|
||||
@@ -437,83 +456,43 @@ abstract class erpapi_wms_selfwms_request_abstract
|
||||
return $this->request($wms_class,$wms_method,$sdf);
|
||||
}
|
||||
|
||||
/**
|
||||
* supplier_create
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function supplier_create($sdf)
|
||||
{
|
||||
return $this->error('接口方法不存在','w402');
|
||||
}
|
||||
|
||||
/**
|
||||
* branch_getlist
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function branch_getlist($sdf)
|
||||
{
|
||||
return $this->error('接口方法不存在','w402');
|
||||
}
|
||||
|
||||
/**
|
||||
* logistics_getlist
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function logistics_getlist($sdf)
|
||||
{
|
||||
return $this->error('接口方法不存在','w402');
|
||||
}
|
||||
|
||||
/**
|
||||
* delivery_search
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function delivery_search($sdf)
|
||||
{
|
||||
return $this->error('接口方法不存在','w402');
|
||||
}
|
||||
|
||||
/**
|
||||
* reship_search
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function reship_search($sdf)
|
||||
{
|
||||
return $this->error('接口方法不存在','w402');
|
||||
}
|
||||
|
||||
/**
|
||||
* stockin_search
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function stockin_search($sdf)
|
||||
{
|
||||
return $this->error('接口方法不存在','w402');
|
||||
}
|
||||
|
||||
/**
|
||||
* stockout_search
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function stockout_search($sdf)
|
||||
{
|
||||
return $this->error('接口方法不存在','w402');
|
||||
}
|
||||
|
||||
/**
|
||||
* delivery_cut
|
||||
* @param mixed $sdf sdf
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function delivery_cut($sdf)
|
||||
{
|
||||
return $this->error('接口方法不存在','w402');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* 发货单推送
|
||||
*
|
||||
@@ -25,4 +24,5 @@
|
||||
*/
|
||||
class erpapi_wms_selfwms_request_delivery extends erpapi_wms_selfwms_request_abstract
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user