belongsTo(EstadoMovimiento::class); } public function user() { return $this->belongsTo(User::class); } public function totalAbono() { return ((float)$this->pago_efectivo + (float)$this->pago_tarjeta + (float)$this->pago_vales + (float)$this->pago_transferencia + (float)$this->nota_credito); } public function cambio() { return ( ((float)$this->pago_efectivo + (float)$this->pago_tarjeta + (float)$this->pago_vales + (float)$this->nota_credito + (float)$this->pago_transferencia) - (float)$this->precio_venta ); } public function faltante() { return ( (float)$this->precio_venta - ((float)$this->pago_efectivo + (float)$this->pago_tarjeta + (float)$this->pago_vales + (float)$this->pago_transferencia + (float)$this->nota_credito) ); } public function ajusteCambio() { if(((float)$this->pago_efectivo) - $this->cambio()>=0) { $this->pago_efectivo-= $this->cambio(); } } /** * Create a new Eloquent model instance. * * @return void */ public function isTotalMayorCambio() : bool { return ($this->pago_tarjeta + $this->pago_vales + $this->pago_transferencia + $this->nota_credito)>$this->precio_venta; } public function getAbonos() { $collecion = collect($this->getFillable()); $elements = []; foreach ($collecion as $value) { if(str_contains($value,"pago_")) { if($this->{$value} > 0) { $elements[] = [$this->{$value},str_replace("pago_","",$value)]; } } else if(str_contains($value,"nota_credito")) { if($this->{$value} > 0) { $elements[] = [$this->{$value},str_replace("nota_","Nota de ",$value)]; } } } return $elements; } }