| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- namespace App;
- use Illuminate\Database\Eloquent\Model;
- class Package extends Model
- {
- protected $fillable=[
- 'owner_id','logistic_number','delivery_number','batch_number','batch_rule','recipient','recipient_mobile','logistic_id',
- 'measuring_machine_id','weight','length','width','height','bulk','paper_box_id','status'
- ];
- protected $appends=[
- 'owner_name',
- 'logistic_name',
- 'measuringMachine_name',
- 'paperBox_name',
- 'WMSReflectPackage_name'
- ];
- public function owner(){
- return $this->belongsTo('App\Owner','owner_id','id');
- }
- public function logistic(){
- return $this->belongsTo('App\Logistic','logistic_id','id');
- }
- public function measuringMachine(){
- return $this->belongsTo('App\MeasuringMachine','measuring_machine_id','id');
- }
- public function paperBox(){
- return $this->belongsTo('App\paperBox','paper_box_id','id');
- }
- public function WMSReflectPackage(){
- return $this->hasOne('App\WMSReflectPackage','SOReference5','logistic_number');
- }
- public function getOwnerNameAttribute()
- {
- return $this['owner']? $this['owner']['name']:null;
- }
- public function getLogisticNameAttribute(){
- return $this['logistic']? $this['logistic']['name']:null;
- }
- public function getMeasuringMachineNameAttribute(){
- return $this['measuringMachine']? $this['measuringMachine']['name']:null;
- }
- public function getPaperBoxNameAttribute(){
- return $this['paperBox']? $this['paperBox']['model']:null;
- }
- public function getWMSReflectPackageNameAttribute(){
- return $this['WMSReflectPackage']? $this['WMSReflectPackage']['TASKID']:null;
- }
- //寻找相近纸箱ID
- public function checkPaperBox($max,$centre,$min,$owner_id){
- $sumDiffer=0;
- $maxDiffer=0;
- $paperBox_id=null;
- $boxes=Owner::select('id')->with('paperBoxes')->find($owner_id);
- foreach ($boxes->paperBoxes as $i=>$paperBox){
- if ($paperBox->length==$max&&$paperBox->width==$centre&&$paperBox->height==$min){
- $paperBox_id=$paperBox->id;
- break;
- }
- $lengthDiffer=abs($paperBox->length-$max);
- $widthDiffer=abs($paperBox->width-$centre);
- $heightDiffer=abs($paperBox->height-$min);
- $thisMaxDiffer=($lengthDiffer>=($widthDiffer>=$heightDiffer?$widthDiffer:$heightDiffer)?$lengthDiffer:($widthDiffer>=$heightDiffer?$widthDiffer:$heightDiffer));
- if($i==0){
- $maxDiffer=$thisMaxDiffer;
- $sumDiffer=$lengthDiffer+$widthDiffer+$heightDiffer;
- $paperBox_id=$paperBox->id;
- }
- if ($thisMaxDiffer==$maxDiffer){
- if($sumDiffer>($lengthDiffer+$widthDiffer+$heightDiffer)){
- $sumDiffer=$lengthDiffer+$widthDiffer+$heightDiffer;
- $paperBox_id=$paperBox->id;
- }
- }
- if ($thisMaxDiffer<$maxDiffer){
- $sumDiffer=$lengthDiffer+$widthDiffer+$heightDiffer;
- $maxDiffer=$thisMaxDiffer;
- $paperBox_id=$paperBox->id;
- }
- }
- return $paperBox_id;
- }
- }
|