|
|
@@ -15,6 +15,7 @@ use bizGhs\admin\classes\AdminClass;
|
|
|
use bizGhs\custom\classes\CustomClass;
|
|
|
use bizGhs\item\classes\CostChangeClass;
|
|
|
use bizGhs\order\classes\OrderClass;
|
|
|
+use bizGhs\order\classes\OrderMergeSnClass;
|
|
|
use bizGhs\order\traits\OrderTrait;
|
|
|
use bizGhs\product\classes\ProductClass;
|
|
|
use bizGhs\stock\classes\OnStockRecordClass;
|
|
|
@@ -33,6 +34,7 @@ use common\components\IntraCityExpress;
|
|
|
use common\components\mapUtil;
|
|
|
use common\components\noticeUtil;
|
|
|
use common\components\orderSn;
|
|
|
+use common\components\stringUtil;
|
|
|
use common\components\util;
|
|
|
use bizHd\base\classes\BaseClass;
|
|
|
use common\components\lakala\Lakala;
|
|
|
@@ -100,6 +102,7 @@ class PurchaseClass extends BaseClass
|
|
|
$cg->save();
|
|
|
CgMergeClass::add(['mergeId' => $hasMergeId, 'cgId' => $cgId, 'mergeDate' => $date, 'ghsId' => $ghsId, 'mainId' => $mainId]);
|
|
|
self::syncCgMergeNumForMergeId($hasMergeId);
|
|
|
+ self::syncMergeRelationByCgIds([$cgId]);
|
|
|
} else {
|
|
|
self::rebuildCgMergeGroupForDay($ids, $date, $ghsId, $mainId);
|
|
|
}
|
|
|
@@ -142,6 +145,7 @@ class PurchaseClass extends BaseClass
|
|
|
$cg->save();
|
|
|
CgMergeClass::add(['mergeId' => $newMergeId, 'cgId' => $cgId, 'mergeDate' => $date, 'ghsId' => $ghsId, 'mainId' => $mainId]);
|
|
|
self::syncCgMergeNumForMergeId($newMergeId);
|
|
|
+ self::syncMergeRelationByCgIds([$cgId]);
|
|
|
} else {
|
|
|
self::rebuildCgMergeGroupForDay($ids, $date, $ghsId, $mainId);
|
|
|
}
|
|
|
@@ -169,6 +173,70 @@ class PurchaseClass extends BaseClass
|
|
|
$addData[] = ['mergeId' => $mergeId, 'cgId' => $currentId, 'mergeDate' => $date, 'ghsId' => $ghsId, 'mainId' => $mainId];
|
|
|
}
|
|
|
CgMergeClass::batchAdd($addData);
|
|
|
+ self::syncMergeRelationByCgIds($ids);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function syncMergeRelationByOrderIds($orderIds)
|
|
|
+ {
|
|
|
+ if (empty($orderIds)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $orders = OrderClass::getByIds($orderIds, null, null, 'id,purchaseId');
|
|
|
+ if (empty($orders)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $cgIds = [];
|
|
|
+ foreach ($orders as $order) {
|
|
|
+ $purchaseId = $order['purchaseId'] ?? 0;
|
|
|
+ if (!empty($purchaseId)) {
|
|
|
+ $cgIds[] = $purchaseId;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return self::syncMergeRelationByCgIds($cgIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function syncMergeRelationByCgIds($cgIds)
|
|
|
+ {
|
|
|
+ if (empty($cgIds)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $cgIds = array_values(array_unique(array_filter($cgIds)));
|
|
|
+ if (empty($cgIds)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $cgs = self::getByIds($cgIds, null, null, 'id,saleId,mergeId');
|
|
|
+ if (empty($cgs)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ foreach ($cgs as $cg) {
|
|
|
+ $cgId = $cg['id'] ?? 0;
|
|
|
+ $orderId = $cg['saleId'] ?? 0;
|
|
|
+ $cgMergeId = $cg['mergeId'] ?? 0;
|
|
|
+ if (empty($cgId) || empty($orderId) || empty($cgMergeId)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $order = OrderClass::getById($orderId, false, 'id,mergeId');
|
|
|
+ $ghsMergeId = $order['mergeId'] ?? 0;
|
|
|
+ if (empty($ghsMergeId)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $cgMergeSn = CgMergeSnClass::getById($cgMergeId, false, 'id,salt');
|
|
|
+ $ghsMergeSn = OrderMergeSnClass::getById($ghsMergeId, false, 'id,salt');
|
|
|
+ $cgSalt = $cgMergeSn['salt'] ?? '';
|
|
|
+ $ghsSalt = $ghsMergeSn['salt'] ?? '';
|
|
|
+ if (empty($cgSalt) || empty($ghsSalt)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ CgMergeSnClass::updateById($cgMergeId, [
|
|
|
+ 'ghsMergeId' => $ghsMergeId,
|
|
|
+ 'ghsSalt' => $ghsSalt,
|
|
|
+ ]);
|
|
|
+ OrderMergeSnClass::updateById($ghsMergeId, [
|
|
|
+ 'cgMergeId' => $cgMergeId,
|
|
|
+ 'cgSalt' => $cgSalt,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
/** 按 xhCgMerge 明细数量,回写该合并组内所有采购单的 mergeNum */
|
|
|
@@ -1200,6 +1268,7 @@ class PurchaseClass extends BaseClass
|
|
|
$localConfirmTime = dict::getDict('local_gys_kd_auto_set_debt_time');
|
|
|
$currentSet = $currentTime + $localConfirmTime;
|
|
|
$data['autoSetTime'] = $data['autoSetTime'] ?? date("Y-m-d H:i:s", $currentSet);
|
|
|
+ $data['salt'] = $data['salt'] ?? stringUtil::charsShuffleLowerCase(10);
|
|
|
//保存订单
|
|
|
$respond = self::add($data, true);
|
|
|
|