Batch.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace App;
  3. use Illuminate\Database\Eloquent\Model;
  4. use App\Traits\ModelLogChanging;
  5. use Illuminate\Database\Eloquent\Relations\HasOne;
  6. class Batch extends Model
  7. {
  8. use ModelLogChanging;
  9. protected $fillable = [
  10. 'id','code','type', 'wms_type', 'status', 'wms_status', 'wms_created_at',"remark","owner_id",
  11. ];
  12. public function orders(){
  13. return $this->hasMany('App\Order','batch_id','id');
  14. }
  15. public function setProcessed(){
  16. $this['status'] = '已处理';
  17. $this->orders()->each(function (Order $order){
  18. $order->setProcessed();
  19. });
  20. $this->update();
  21. }
  22. public function assignBins(){
  23. $this->orders()->each(function (Order $order,$i){
  24. $bin=new OrderBin(['order_id'=>$order['id'],'number'=>($i+1)]);
  25. $bin->save();
  26. });
  27. return $this->orders()->count();
  28. }
  29. public function delete()
  30. {
  31. $this->orders()->each(function(Order $order){
  32. $order->delete();
  33. });
  34. return parent::delete();
  35. }
  36. public function owner()
  37. {
  38. return $this->hasOne(Owner::class,"id","owner_id");
  39. }
  40. public function stationTaskBatch(): HasOne
  41. {
  42. return $this->hasOne(StationTaskBatch::class);
  43. }
  44. public function stationTask()
  45. {
  46. return $this->stationTaskBatch?
  47. $this->stationTaskBatch->belongsTo(StationTask::class):
  48. null;
  49. }
  50. }