mirror of
https://gitee.com/ShopeX/OMS
synced 2026-04-18 19:25:32 +08:00
1. 【新增】售后单售后原因类型支持搜索
2. 【新增】手工创建订单折扣可输入正数 3. 【优化】盘点申请单确认 4. 【修复】采购退货单模拟出库失败问题 5. 【新增】订单金额客户实付与结算金额 6. 【优化】仓库发货统计报表物料名称显示 7. 【优化】自有仓储虚拟发货逻辑 8. 【修复】基础物料分类管理问题
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user