OracleDocOrderPackingSummary.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace App;
  3. use Carbon\Carbon;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Support\Facades\DB;
  6. class OracleDocOrderPackingSummary extends Model
  7. {
  8. protected $connection="oracle";
  9. protected $primaryKey="traceid";
  10. protected $table = 'doc_order_packing_summary';
  11. protected $fillable = ['traceid','orderno','grossweight','addwho','addtime','editwho','edittime'];
  12. public $timestamps=false;
  13. public function getIncrementing(){ return false;}
  14. static public function saveOrUpdateWeightByBatch($batchNumber,$weight){
  15. $numbersesOfBatch=OracleDOCWaveDetails::select('picktotraceid as logistic_number','act_allocation_details.orderno')->where('doc_wave_details.waveno',$batchNumber)
  16. ->leftJoin('act_allocation_details','doc_wave_details.orderno','act_allocation_details.orderno')->get();
  17. $oneIdxAsrsReceive=OracleDocOrderPackingSummary::where('traceid',$numbersesOfBatch[0]['logistic_number'])->first();
  18. if(!$oneIdxAsrsReceive){
  19. $inserts='';
  20. $values=[];
  21. foreach($numbersesOfBatch as $numbers){
  22. $inserts .= " into doc_order_packing_summary (traceid,orderno,grossweight,addwho,addtime,editwho,edittime)values(?,?,?,?,?,?,?) ";
  23. $values[] = $numbers['logistic_number']??'';
  24. $values[] = $numbers['orderno']??'';
  25. $values[] = $weight;
  26. $values[] = 'WAS';
  27. $values[] = Carbon::now();
  28. $values[] = 'WAS';
  29. $values[] = Carbon::now();
  30. }
  31. DB::connection('oracle')->insert("insert all {$inserts} select * from dual",$values);
  32. }else{
  33. $logisticNumbers=$numbersesOfBatch->map(function($numbers){return $numbers['logistic_number'];});
  34. OracleDocOrderPackingSummary::whereIn('traceid',$logisticNumbers)->update(['grossweight'=>$weight]);
  35. }
  36. }
  37. }