|
@@ -48,13 +48,6 @@ class SplitSale extends Command
|
|
|
->select()
|
|
|
->toArray();
|
|
|
|
|
|
- $all_orderCode = array_column($data, 'orderCode');
|
|
|
-
|
|
|
- //已经拆分过的原订单号
|
|
|
- $exist_sale_code = Db::name('sale_caixiao')
|
|
|
- ->whereIn('oldCode', $all_orderCode)
|
|
|
- ->column('id', 'oldCode');
|
|
|
-
|
|
|
foreach ($data as $sale) {
|
|
|
|
|
|
//补充商品信息
|
|
@@ -136,8 +129,8 @@ class SplitSale extends Command
|
|
|
//只处理销售单
|
|
|
|
|
|
//供应商事先覆盖
|
|
|
- $supplier = ['No' => $pay_rate['companyNo'], 'name' => $pay_rate['companyName']];
|
|
|
- if ($pay_rate['is_qrd'] == 1) $this->_handle_sale_caixiao($exist_sale_code, $sale, $orderCode, $cgdNo, $pay_rate, $sale_total, $customer, $supplier);
|
|
|
+ $supplier = ['No' => $sale['supplierNo'], 'name' => Db::name('business')->where('companyNo', $sale['supplierNo'])->value('company', '')];
|
|
|
+ if ($pay_rate['is_qrd'] == 1) $this->_handle_sale_caixiao($sale, $orderCode, $cgdNo, $sale_total, $customer, $supplier);
|
|
|
|
|
|
} else {
|
|
|
|
|
@@ -145,7 +138,7 @@ class SplitSale extends Command
|
|
|
$supplier = ['No' => $pay_rate['companyNo'], 'name' => $pay_rate['companyName']];
|
|
|
|
|
|
//需要生成销售单
|
|
|
- if ($pay_rate['is_qrd'] == 1) $this->_handle_sale_caixiao($exist_sale_code, $sale, $orderCode, $cgdNo, $pay_rate, $sale_total, $customer, $supplier);
|
|
|
+ if ($pay_rate['is_qrd'] == 1) $this->_handle_sale_caixiao($sale, $orderCode, $cgdNo, $sale_total, $customer, $supplier);
|
|
|
|
|
|
//需要生成采购单
|
|
|
if ($pay_rate['is_cgd'] == 1) $this->_handle_cgd_caixiao($cgd, $sale, $pay_rate, $cgdNo, $orderCode, $cgd_total);
|
|
@@ -160,8 +153,15 @@ class SplitSale extends Command
|
|
|
|
|
|
//把自己覆盖到上一个记录的供应商记录中
|
|
|
if (isset($this->cgd_insert[$this->cgd_key - 1])) {
|
|
|
+
|
|
|
+ $supplier = Db::name('supplier')
|
|
|
+ ->field('id,person,personid')
|
|
|
+ ->where('code', $pay_rate['companyNo'])
|
|
|
+ ->findOrEmpty();
|
|
|
$this->cgd_insert[$this->cgd_key - 1]['supplierNo'] = $pay_rate['companyNo'];
|
|
|
$this->cgd_insert[$this->cgd_key - 1]['supplier_name'] = $pay_rate['companyName'];
|
|
|
+ $this->cgd_insert[$this->cgd_key - 1]['supplier_persion'] = $supplier['person'] ?? '';
|
|
|
+ $this->cgd_insert[$this->cgd_key - 1]['supplier_persionid'] = $supplier['personid'] ?? 0;
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -187,7 +187,7 @@ class SplitSale extends Command
|
|
|
}
|
|
|
|
|
|
//构建销售单
|
|
|
- private function _handle_sale_caixiao(array $exist_sale_code = [], array $sale = [], string $orderCode = '', string $cgdNo = '', array $pay_rate = [], float $sale_total = 0.00, array $customer = [], array $supplier = [])
|
|
|
+ private function _handle_sale_caixiao(array $sale = [], string $orderCode = '', string $cgdNo = '', float $sale_total = 0.00, array $customer = [], array $supplier = [])
|
|
|
{
|
|
|
|
|
|
$tmp_sale = [
|
|
@@ -212,14 +212,16 @@ class SplitSale extends Command
|
|
|
'send_status' => $sale['send_status'] ?? 0,
|
|
|
];
|
|
|
|
|
|
- if (isset($exist_sale_code[$sale['orderCode']])) {
|
|
|
+ $tmp = Db::name('sale_caixiao')
|
|
|
+ ->field('id')
|
|
|
+ ->where(['oldCode' => $sale['orderCode'], 'customer_code' => $customer['No']])
|
|
|
+ ->findOrEmpty();
|
|
|
+
|
|
|
+ if (!empty($tmp)) {
|
|
|
Db::name('sale_caixiao')
|
|
|
- ->where('id', $exist_sale_code[$sale['orderCode']])
|
|
|
+ ->where('id', $tmp['id'])
|
|
|
->update($tmp_sale);
|
|
|
} else {
|
|
|
- $supplier_name = Db::name('business')
|
|
|
- ->where('companyNo', $sale['supplierNo'] ?? '')
|
|
|
- ->value('company', '');
|
|
|
$this->sale_insert[] = array_merge($tmp_sale, [
|
|
|
'orderCode' => $orderCode,
|
|
|
'apply_id' => $sale['apply_id'] ?? 0,
|
|
@@ -298,20 +300,16 @@ class SplitSale extends Command
|
|
|
'updatetime' => $this->date,
|
|
|
];
|
|
|
|
|
|
- if (isset($exist_sale_code[$sale['orderCode']])) {
|
|
|
+ $tmp = Db::name('cgd_caixiao')
|
|
|
+ ->field('id')
|
|
|
+ ->where(['oldCode' => $sale['orderCode'], 'companyNo' => $pay_rate['companyNo']])
|
|
|
+ ->findOrEmpty();
|
|
|
+
|
|
|
+ if (!empty($tmp)) {
|
|
|
Db::name('cgd_caixiao')
|
|
|
- ->where([
|
|
|
- 'oldCode' => $sale['orderCode'],
|
|
|
- 'companyNo' => $pay_rate['companyNo']
|
|
|
- ])
|
|
|
+ ->where('id', $tmp['id'])
|
|
|
->update($tmp_cgd);
|
|
|
} else {
|
|
|
-
|
|
|
- $supplier = Db::name('supplier')
|
|
|
- ->field('id,name,code,person,personid')
|
|
|
- ->where('code', $cgd['supplierNo'] ?? '')
|
|
|
- ->findOrEmpty();
|
|
|
-
|
|
|
$this->cgd_insert[$this->cgd_key] = array_merge($tmp_cgd, [
|
|
|
'cgdNo' => $cgdNo,
|
|
|
'bkcode' => $cgd['bkcode'] ?? '',
|
|
@@ -342,8 +340,8 @@ class SplitSale extends Command
|
|
|
'lead_time' => $sale['lead_time'] ?? 0,
|
|
|
'is_diff' => $sale['is_diff'],
|
|
|
'addtime' => $this->date,
|
|
|
- 'supplier_persion' => $supplier['person'],
|
|
|
- 'supplier_persionid' => $supplier['personid'],
|
|
|
+ 'supplier_persion' => '',
|
|
|
+ 'supplier_persionid' => '',
|
|
|
'pay_id' => $sale['pay_id'],
|
|
|
'oldCode' => $sale['orderCode']
|
|
|
]);
|