shish 4 роки тому
батько
коміт
820fc581bb

+ 8 - 1
biz-ghs/order/classes/OrderClass.php

@@ -208,8 +208,15 @@ class OrderClass extends BaseClass
         //将当天日期+花店每天的总订单数作为编号
         $data['sendNum'] = date("j") . StatOrderCountClass::addOrder($shop);
 
-        $current = time() + 300;
+        //订单有效期
+        $currentTime = time();
+        $validTime = dict::getDict('sale_purchase_order_valid');
+        $current = $currentTime + $validTime;
         $data['deadline'] = isset($data['deadline']) ? $data['deadline'] : date("Y-m-d H:i:s", $current);
+        //订单自动记为欠款单时间
+        $localConfirmTime = dict::getDict('local_gys_kd_auto_confirm_time');
+        $currentSet = $currentTime + $localConfirmTime;
+        $data['autoSetTime'] = $data['autoSetTime'] ?? date("Y-m-d H:i:s", $currentSet);
         $return = self::add($data, true);
         return $return;
     }

+ 7 - 2
biz-hd/purchase/classes/PurchaseClass.php

@@ -150,7 +150,7 @@ class PurchaseClass extends BaseClass
                 $data['discountAmount'] = bcsub($prePrice, $modifyPrice, 2);
                 $data['discountType'] = dict::getDict('discountType', 'discount');
             }
-            if($modifyPrice > $prePrice){
+            if ($modifyPrice > $prePrice) {
                 //人工和资材费用
                 $data['labourCost'] = bcsub($modifyPrice, $prePrice, 2);
             }
@@ -197,9 +197,14 @@ class PurchaseClass extends BaseClass
         $data['discount'] = 1;
 
         //采购单有效期
+        $currentTime = time();
         $validTime = dict::getDict('sale_purchase_order_valid');
-        $current = time() + $validTime;
+        $current = $currentTime + $validTime;
         $data['deadline'] = $data['deadline'] ?? date("Y-m-d H:i:s", $current);
+        //采购单自动记为欠款单时间
+        $localConfirmTime = dict::getDict('local_gys_kd_auto_confirm_time');
+        $currentSet = $currentTime + $localConfirmTime;
+        $data['autoSetTime'] = $data['autoSetTime'] ?? date("Y-m-d H:i:s", $currentSet);
         $respond = self::add($data, true);
 
         foreach ($productList as $productKey => $productVal) {

+ 1 - 1
common/components/dict.php

@@ -50,7 +50,7 @@ class dict
 
         //----------------------------------------------------------------------------
         //商家开了待付款单未确认自动标记欠款单时间,必须小于下面的sale_purchase_order_valid--
-        'local_gys_kd_auto_confirm_time'=>1600,
+        'local_gys_kd_auto_confirm_time' => 1600,
         //商家开单或客户采购订单有效期是多少秒,有效期内可以支付-----------------------------
         'sale_purchase_order_valid' => 1900,
         //----------------------------------------------------------------------------

+ 63 - 18
console/controllers/PurchaseController.php

@@ -13,15 +13,16 @@ use Yii;
 class PurchaseController extends Controller
 {
 
-    //采购订单到期期变成记欠款或者取消,零售店下单变成取消,商家自己下单变成记欠款 shish 2021.5.14
+    //采购订单过期变更 shish 2021.5.14
     // ./yii purchase/expire-order
     // /usr/local/nginx/html/huahuibao/yii purchase/expire-order
     public function actionExpireOrder()
     {
+        $hdInvite = dict::getDict('cgStyle', 'ghs');
         $query = new \yii\db\Query();
         $query->from(Purchase::tableName());
         $date = date("Y-m-d H:i:s");
-        $query->where(['status' => PurchaseClass::STATUS_UN_PAY])->andWhere(['<=', 'deadline', $date]);
+        $query->where(['status' => PurchaseClass::STATUS_UN_PAY])->where(['cgStyle' => $hdInvite])->andWhere(['<=', 'deadline', $date]);
         $query->orderBy('deadline ASC');
 
         Yii::$app->params['ptStyle'] = dict::getDict('ptStyle', 'hd');
@@ -31,41 +32,85 @@ class PurchaseController extends Controller
 
         $arr = [];
         foreach ($query->batch() as $purchases) {
+
             foreach ($purchases as $purchase) {
-                $connection = Yii::$app->db;
+                $connection = Yii::$app->db;//事务处理
                 $transaction = $connection->beginTransaction();
                 $id = $purchase['id'] ?? 0;
                 $orderSn = $purchase['orderSn'] ?? '';
                 try {
+
                     $current = PurchaseClass::getById($id, true);
-                    $cgStyle = $current->cgStyle ?? dict::getDict('cgStyle', 'hd');
-                    $orderSn = $current->orderSn ?? '';
-                    if ($cgStyle == dict::getDict('cgStyle', 'hd')) {
-                        //花店采购的取消
-                        PurchaseService::expire($current);
-                        $transaction->commit();
-                        noticeUtil::push("采购单已经取消!订单号:{$orderSn}", '15280215347');
-                    } elseif ($cgStyle == dict::getDict('cgStyle', 'ghs')) {
-                        //供应商发起的记欠款
-                        PurchaseService::debt($current);
-                        $transaction->commit();
-                        noticeUtil::push("采购单已经记欠款!订单号:{$orderSn}", '15280215347');
-                    } else {
-                        noticeUtil::push("采购单类型没有找到 orderSn:" + $orderSn, '15280215347');
-                    }
+                    PurchaseService::expire($current);
+                    $transaction->commit();
+
+                    //noticeUtil::push("采购单已过期,库存已回滚 订单号:{$orderSn}", '15280215347');
+
                 } catch (\Exception $e) {
                     $transaction->rollBack();
                     $msg = $e->getMessage();
                     noticeUtil::push("采购单过期处理报错了!订单号:{$orderSn},错误信息:{$msg}", '15280215347');
                 }
+
                 $log = "过期的采购单:{$id} json:" . json_encode($purchase);
                 $arr[] = $log;
             }
         }
+
+        if (!empty($arr)) {
+            foreach ($arr as $item) {
+                Yii::info($item);
+            }
+        }
+
+    }
+
+    //待付款订单自动变成欠款订单
+    public function actionSetDebtOrder()
+    {
+        $ghsInvite = dict::getDict('cgStyle', 'ghs');
+        $query = new \yii\db\Query();
+        $query->from(Purchase::tableName());
+        $date = date("Y-m-d H:i:s");
+        $query->where(['status' => PurchaseClass::STATUS_UN_PAY])->where(['cgStyle' => $ghsInvite])->andWhere(['<=', 'autoSetTime', $date]);
+        $query->orderBy('autoSetTime ASC');
+
+        Yii::$app->params['ptStyle'] = dict::getDict('ptStyle', 'hd');
+
+        //如果有报错,抛出异常
+        Yii::$app->params['errorReport'] = 1;
+
+        $arr = [];
+        foreach ($query->batch() as $purchases) {
+
+            foreach ($purchases as $purchase) {
+                $connection = Yii::$app->db;//事务处理
+                $transaction = $connection->beginTransaction();
+                $id = $purchase['id'] ?? 0;
+                $orderSn = $purchase['orderSn'] ?? '';
+                try {
+                    $current = PurchaseClass::getById($id, true);
+                    //供应商发起的记欠款
+                    PurchaseService::debt($current);
+                    $transaction->commit();
+                    noticeUtil::push("采购单已经记欠款!订单号:{$orderSn}", '15280215347');
+                } catch (\Exception $e) {
+                    $transaction->rollBack();
+                    $msg = $e->getMessage();
+                    noticeUtil::push("待付款采购单设置为欠款单报错了!订单号:{$orderSn},错误信息:{$msg}", '15280215347');
+                }
+                $log = "待付款采购单设置为欠款单:{$id} json:" . json_encode($purchase);
+                $arr[] = $log;
+            }
+        }
+
         if (!empty($arr)) {
             foreach ($arr as $item) {
                 Yii::info($item);
             }
         }
+
     }
+
+
 }