Arreglado metodo para generar csv con totales de todos los barrios
This commit is contained in:
parent
07289b01e9
commit
88e3532418
|
@ -17,7 +17,34 @@ class GrupoDeCompra extends Model
|
|||
protected $table = 'grupos_de_compra';
|
||||
protected $hidden = ['password'];
|
||||
|
||||
public function toggleDevoluciones()
|
||||
/**
|
||||
* @param $gdcs
|
||||
* @param array $planilla
|
||||
* @return array
|
||||
*/
|
||||
public static function getPlanilla($gdcs, array $planilla): array
|
||||
{
|
||||
$barrios = [""];
|
||||
foreach ($gdcs as $i => $gdc) {
|
||||
$barrios[] = $gdc->nombre;
|
||||
$productos_en_pedido = DB::table('pedidos_aprobados')->where('grupo_de_compra_id', $gdc->id)->get()->keyBy('producto_id');
|
||||
$pedidos = $gdc->pedidosAprobados();
|
||||
foreach ($productos_en_pedido as $id => $producto_pedido) {
|
||||
$total = 0;
|
||||
// Poner cantidad de cada producto para cada núcleo
|
||||
foreach ($pedidos as $pedido) {
|
||||
list($_, $_, $cantidad) = $gdc->agregarCantidad($pedido, $id, [], 0, 0);
|
||||
$total = $total + $cantidad;
|
||||
}
|
||||
$fila = Producto::productosIdFila()[$id];
|
||||
$planilla[$fila][$i+1] = $total;
|
||||
}
|
||||
}
|
||||
array_splice($planilla, 0, 0, array($barrios));
|
||||
return $planilla;
|
||||
}
|
||||
|
||||
public function toggleDevoluciones()
|
||||
{
|
||||
$this->devoluciones_habilitadas = !$this->devoluciones_habilitadas;
|
||||
$this->save();
|
||||
|
@ -85,7 +112,7 @@ class GrupoDeCompra extends Model
|
|||
throw new Exception('No hay bono de transporte');
|
||||
}
|
||||
|
||||
private function totalPedidosSinBonos() {
|
||||
private function totalPedidosSinBonos() {
|
||||
$total = 0;
|
||||
foreach ($this->pedidosAprobados() as $pedido) {
|
||||
$total += ceil($pedido->totalSinBonos());
|
||||
|
@ -166,9 +193,7 @@ class GrupoDeCompra extends Model
|
|||
$i = 1;
|
||||
// Poner cantidad de cada producto para cada núcleo
|
||||
foreach ($pedidos as $pedido) {
|
||||
$producto = $pedido->productos()->find($id);
|
||||
$records[$fila][$i] = $producto == NULL ? 0 : $producto["pivot"]["cantidad"];
|
||||
$i++;
|
||||
list($records, $i, $_) = $this->agregarCantidad($pedido, $id, $records, $fila, $i);
|
||||
}
|
||||
}
|
||||
// Insertar lista de núcleos en la primera fila
|
||||
|
@ -189,16 +214,21 @@ class GrupoDeCompra extends Model
|
|||
}
|
||||
}
|
||||
|
||||
public function agregarCantidad($pedido, $id, array $records, $fila, int $i): array
|
||||
{
|
||||
$producto = $pedido->productos()->find($id);
|
||||
$cantidad = $producto == NULL ? 0 : $producto->pivot->cantidad;
|
||||
$records[$fila][$i] = $cantidad;
|
||||
$i++;
|
||||
return array($records, $i, $cantidad);
|
||||
}
|
||||
|
||||
public static function exportarTodosLosPedidosEnCSV(){
|
||||
$gdcs = GrupoDeCompra::all();
|
||||
$planilla = GrupoDeCompra::obtenerTemplateDeFilasVacias($gdcs->count());
|
||||
$barrios = [""];
|
||||
foreach ($gdcs as $gdc) {
|
||||
$barrios[] = $gdc->nombre;
|
||||
}
|
||||
array_splice($planilla, 0, 0, array($barrios));
|
||||
$planilla = self::getPlanilla($gdcs, $planilla);
|
||||
|
||||
// Guardar en un archivo .csv
|
||||
// Guardar en un archivo .csv
|
||||
try {
|
||||
$writer = Writer::createFromPath(resource_path('csv/exports/total-pedidos.csv'), 'w');
|
||||
$writer->insertAll($planilla);
|
||||
|
|
Loading…
Reference in New Issue