Compare commits
4 Commits
59428f04b8
...
4c9ef3f782
Author | SHA1 | Date |
---|---|---|
Alejandro Tasistro | 4c9ef3f782 | |
Alejandro Tasistro | 554015a616 | |
Alejandro Tasistro | 830002b4cf | |
Alejandro Tasistro | 784b4d97f8 |
|
@ -33,14 +33,17 @@ public function pedidos(): HasMany
|
|||
return $this->hasMany(Pedido::class);
|
||||
}
|
||||
|
||||
function crearPedido(string $nombre) : Pedido {
|
||||
return $this->pedidos()->create(['name' => $name]);
|
||||
}
|
||||
|
||||
function pedidosConfirmados() {
|
||||
return $this->pedidos()->where('confirmed',true);
|
||||
}
|
||||
|
||||
private function calcularTotalConfirmados($closure = null) : float {
|
||||
private function calcularTotalConfirmados(Closure $closure = null) : float {
|
||||
if (!$closure)
|
||||
$closure = fn($p) => $p->totalChismosa();
|
||||
|
||||
return $this->pedidosConfirmados()->sum($closure);
|
||||
}
|
||||
|
||||
|
@ -49,7 +52,9 @@ function totalARecaudar() : float {
|
|||
}
|
||||
|
||||
function totalNoBarriales() : float {
|
||||
return $this->calcularTotalConfirmados(fn($p) => $p->total($p->productosNoBarriales()));
|
||||
return $this->calcularTotalConfirmados(
|
||||
fn($p) => $p->total($p->productosNoBarriales())
|
||||
);
|
||||
}
|
||||
|
||||
function totalTransporte() : float {
|
||||
|
|
|
@ -96,4 +96,24 @@ function totalTransporte() : int {
|
|||
function totalChismosa() : float {
|
||||
return $this->total() + $this->totalTransporte();
|
||||
}
|
||||
|
||||
function toggleConfirm() : bool {
|
||||
$this->confirmed = !$this->confirmed;
|
||||
$this->save();
|
||||
return $this->confirmed;
|
||||
}
|
||||
|
||||
function agregarProducto(Producto $producto, int $cantidad) {
|
||||
$productoEnChismosa = $this->productos()->where('id', $producto->id)->first();
|
||||
if ($productoEnChismosa) {
|
||||
$productoEnChismosa->pivot->cantidad += $cantidad;
|
||||
$productoEnChismosa->save();
|
||||
} else {
|
||||
$this->productos()->attach($producto, ['cantidad' => $cantidad]);
|
||||
}
|
||||
}
|
||||
|
||||
function quitarProducto(Producto $producto) {
|
||||
$this->productos()->detach($producto);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ public function up(): void
|
|||
$table->unsignedBigInteger('barrio_id');
|
||||
$table->timestamps();
|
||||
$table->foreign('barrio_id')->references('id')->on('barrios');
|
||||
$table->unique(['barrio_id','name']);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue