Prechádzať zdrojové kódy

上架判断笕尚货主类型,满足生成异动数据

eric2h 4 rokov pred
rodič
commit
a3633b3272

+ 11 - 2
app/Http/Controllers/HandInStorageController.php

@@ -213,9 +213,18 @@ class HandInStorageController extends Controller
             }else{
                 Cache::put($key,true, $ttl);
             }
-
             $result = $handInStorageService->fluxHandPa($info, $checkData);
-            if ($result===true)$this->success("上架成功");
+            if ($result===true){
+                if ($checkData['customerid']=="JIANSHANG"){
+                    $asn=OracleDOCASNHeader::query()
+                        ->where('asnno',$checkData['docno'])
+                        ->where('asnstatus','99')
+                        ->whereIn('asntype',['F10','F21','F31','F32'])
+                        ->first();
+                    if ($asn){$handInStorageService->verifyAsnStatusAndInsert($asn);}
+                }
+                $this->success("上架成功");
+            }
             if ($result===false) $this->error("上架失败");
             if ($result===1)$this->error("拣货区找到效期更新的同样货品,不能上架至存储区");
         } catch (\Exception $e) {

+ 39 - 0
app/Services/HandInStorageService.php

@@ -469,6 +469,45 @@ sql;
             return true; //上架成功
         });
     }
+
+    /**
+     * ASN关闭后  针对JIANSHANG货主,订单关闭后将数据写入临时表CUS_ADJ_H
+     */
+    public function verifyAsnStatusAndInsert($asn)
+    {
+        $who = 'WAS' . (Auth::user() ? '-' . Auth::user()["name"] : '');
+        $host = config('database.connections.oracle.host');
+        $serviceName = config('database.connections.oracle.service_name');
+        $user = config('database.connections.oracle.username');
+        $password = config('database.connections.oracle.password');
+        $conn = oci_connect($user, $password, $host . '/' . $serviceName, 'utf8');
+        $IN_WarehouseID = '';
+        $IN_Parameter1 = 'ASNCLOSE_AFTER';
+        $IN_Parameter2 = $asn->asnno;
+        $IN_Parameter3 = $asn->asnstatus;
+        $IN_Parameter4 = '';
+        $IN_Language = '';
+        $IN_UserID = $who;
+        $OUT_Return_Code = '';
+        $sql_sp = "begin SPUDF_ProcessA(:IN_WarehouseID,:IN_Parameter1,:IN_Parameter2,:IN_Parameter3,:IN_Parameter4,:IN_Language,:IN_UserID,:OUT_Return_Code); end;";
+        $stmt = oci_parse($conn, $sql_sp);
+        oci_bind_by_name($stmt, ':IN_WarehouseID', $IN_WarehouseID);
+        oci_bind_by_name($stmt, ':IN_Parameter1', $IN_Parameter1);
+        oci_bind_by_name($stmt, ':IN_Parameter2', $IN_Parameter2);
+        oci_bind_by_name($stmt, ':IN_Parameter3', $IN_Parameter3);
+        oci_bind_by_name($stmt, ':IN_Parameter4', $IN_Parameter4);
+        oci_bind_by_name($stmt, ':IN_Language', $IN_Language);
+        oci_bind_by_name($stmt, ':IN_UserID', $IN_UserID);
+        oci_bind_by_name($stmt, ':OUT_Return_Code', $OUT_Return_Code, 300);
+        oci_execute($stmt);
+
+        if (substr($OUT_Return_Code, 0, 3) != '000') {
+            app('LogService')->log(__METHOD__, '上架调用sp生成异动数据失败' . __FUNCTION__, "asn:" . $asn . "ERROR:" . $OUT_Return_Code);
+            return false;
+        }
+        oci_close($conn);
+        return true;
+    }
     /**
      * @param $task
      * @param $location