Explorar o código

物料收发记录单位换算优化

zck hai 2 meses
pai
achega
0ce325bab0
Modificáronse 1 ficheiros con 59 adicións e 0 borrados
  1. 59 0
      application/api/controller/Synchronization.php

+ 59 - 0
application/api/controller/Synchronization.php

@@ -804,6 +804,35 @@ class Synchronization extends Api
                 'U8UID' => $value['U8_UID'],
                 'cpdh' => $value['产品编码'],
             ];
+             // 联表
+        $materialInfo = \db('物料_存货编码')
+        ->where('物料代码', $data['st_wlbh'])
+        ->field('yj_tlgg, yj_zzmc')
+        ->find();
+    
+    // 单位换算
+    if ($data['st_dw'] === '吨' && !empty($materialInfo)) {
+        $spec = $materialInfo['yj_tlgg'];  
+        $materialName = $materialInfo['yj_zzmc'];
+        
+        
+        if (!empty($spec) && strpos($spec, '×') !== false) {
+            $dimensions = explode('×', $spec);
+            $number1 = (int)trim($dimensions[0]);
+            $number2 = (int)trim($dimensions[1]);
+            
+            
+            if (!empty($materialName) && preg_match('/(\d+(\.\d+)?)g/', $materialName, $matches)) {
+
+                if ($number1 > 0 && $number2 > 0 && $matches[1] > 0) {
+                    $data['st_sl'] = round(($data['st_sl']*1000*1000)/$matches[1]/($number1*$number2)*1000000);
+                    $data['st_dw'] = '张';
+                    }
+                }
+            }
+        }
+    }
+
             $number = \db('物料_收发记录')
                 ->where('U8UID', $value['U8_UID'])
                 ->count();
@@ -1945,6 +1974,36 @@ class Synchronization extends Api
                 'U8UID' => $value['U8_UID'],
                 'cpdh' => $value['产品编码']
             ];
+
+        // 联表
+        $materialInfo = \db('物料_存货编码')
+        ->where('物料代码', $data['st_wlbh'])
+        ->field('yj_tlgg, yj_zzmc')
+        ->find();
+    
+    // 单位换算
+    if ($data['st_dw'] === '吨' && !empty($materialInfo)) {
+        $spec = $materialInfo['yj_tlgg'];  
+        $materialName = $materialInfo['yj_zzmc'];
+        
+        
+        if (!empty($spec) && strpos($spec, '×') !== false) {
+            $dimensions = explode('×', $spec);
+            $number1 = (int)trim($dimensions[0]);
+            $number2 = (int)trim($dimensions[1]);
+            
+            
+            if (!empty($materialName) && preg_match('/(\d+(\.\d+)?)g/', $materialName, $matches)) {
+
+                if ($number1 > 0 && $number2 > 0 && $matches[1] > 0) {
+                    $data['st_sl'] = round(($data['st_sl']*1000*1000)/$matches[1]/($number1*$number2)*1000000);
+                    $data['st_dw'] = '张';
+                    }
+                }
+            }
+        }
+    }
+
             $number = \db('物料_收发记录')
                 ->where('U8UID', $value['U8_UID'])
                 ->count();