Compare commits
2 Commits
9f93a17053
...
30eb822201
Author | SHA1 | Date |
---|---|---|
Alejandro Tasistro | 30eb822201 | |
Alejandro Tasistro | 76f2af2ef9 |
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Helpers;
|
||||
|
||||
use App\Producto;
|
||||
use App\Proveedor;
|
||||
use App\CanastaLog;
|
||||
use DatabaseSeeder;
|
||||
|
@ -28,6 +29,8 @@ class CanastaHelper
|
|||
}
|
||||
|
||||
public static function cargarCanasta($archivo) {
|
||||
self::limpiarTablas();
|
||||
|
||||
$csv = Reader::createFromPath(resource_path($archivo), 'r');
|
||||
$csv->setDelimiter("|");
|
||||
$iHeader = self::obtenerIndiceDeHeader($csv);
|
||||
|
@ -82,6 +85,8 @@ class CanastaHelper
|
|||
DB::table('productos')->insert($chunk);
|
||||
}
|
||||
|
||||
self::agregarBonoBarrial();
|
||||
|
||||
self::log($archivo, self::CANASTA_CARGADA);
|
||||
}
|
||||
|
||||
|
@ -122,4 +127,25 @@ class CanastaHelper
|
|||
]);
|
||||
$log->save();
|
||||
}
|
||||
|
||||
private static function limpiarTablas()
|
||||
{
|
||||
DB::delete('delete from producto_subpedido');
|
||||
DB::delete('delete from productos');
|
||||
DB::delete('delete from subpedidos');
|
||||
}
|
||||
|
||||
private static function agregarBonoBarrial()
|
||||
{
|
||||
$categoria = Producto::all()->pluck('categoria')->unique()->flatten()->first(function ($c) { return Str::contains($c, 'BONO'); });
|
||||
DB::table('productos')->insert([
|
||||
'fila' => 420,
|
||||
'nombre' => "Bono barrial",
|
||||
'precio' => 20,
|
||||
'categoria' => $categoria,
|
||||
'bono' => 1,
|
||||
'proveedor_id' => null,
|
||||
'requiere_notas'=> false,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,14 +20,21 @@
|
|||
La planilla de la canasta tiene que tener el siguiente formato para que la aplicación la lea correctamente:
|
||||
<ul>
|
||||
<li> Los precios deben usar punto y no coma decimal </li>
|
||||
<li> Después del último producto, en la primera celda, debe estar la palabra "TOTAL", para indicar el final de la lista </li>
|
||||
<li> Después del último producto, en la primera columna, debe estar la palabra "TOTAL" para indicar el final de la lista </li>
|
||||
<li> El nombre de la columna de precios debe ser "Precio" </li>
|
||||
<li> Las columnas deben separarse con '|' </li>
|
||||
<li> No puede haber "enters" en ningún campo de la planilla </li>
|
||||
<li> Las celdas deben separarse con '|' </li>
|
||||
<li> No puede haber "enters" en ninguna celda </li>
|
||||
<li> Todos los bonos deben tener tipo 'B' para evitar que paguen transporte </li>
|
||||
<li> El bono de transporte debe tener tipo 'T' </li>
|
||||
</ul>
|
||||
<a class="has-text-info" href="/compras/canasta/ejemplo">Planilla de ejemplo.</a>
|
||||
<article class="message is-danger mt-2">
|
||||
<div class="message-body">
|
||||
<div class="content">
|
||||
Cuidado! Cargar una nueva canasta elimina todos los pedidos de la aplicación.
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
|
|
@ -13,10 +13,10 @@
|
|||
<i class="fas fa-cloud-upload-alt"></i>
|
||||
</span>
|
||||
<span class="file-label">Subir canasta</span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="file-name" v-if="archivo">
|
||||
{{ archivo.nombre }}
|
||||
</span>
|
||||
{{ archivo.nombre }}
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue