diff --git a/.gitignore b/.gitignore index f5b7047..a20ba83 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ Homestead.yaml npm-debug.log yarn-error.log .idea +/resources/csv/exports/*.csv diff --git a/app/GrupoDeCompra.php b/app/GrupoDeCompra.php index 7b41722..0d4fb66 100644 --- a/app/GrupoDeCompra.php +++ b/app/GrupoDeCompra.php @@ -4,11 +4,15 @@ namespace App; use Illuminate\Database\Eloquent\Model; use Mpdf\Mpdf; +use League\Csv\CannotInsertRecord; +use League\Csv\Writer; +use App\Producto; +use DB; class GrupoDeCompra extends Model { public $timestamps = false; - protected $fillable = [ "nombre","region","telefono","correo","referente_finanzas","cantidad_de_nucleos"]; + protected $fillable = [ "nombre","region","telefono","correo","referente_finanzas","cantidad_de_nucleos","fila"]; protected $table = 'grupos_de_compra'; protected $hidden = ['password']; @@ -30,4 +34,36 @@ class GrupoDeCompra extends Model $mpdf->Output(); } + public function exportarPedidoEnCSV(){ + $productos = Producto::pluck('id','fila')->all(); + $ultima_fila = end(array_keys($productos)); + $productos_en_pedido = DB::table('pedidos_aprobados')->where('grupo_de_compra_id',$this->id)->get()->keyBy('producto_id'); + + $records = []; + for ($i=1; $i <= $ultima_fila; $i++) { + if ($productos[$i]) { + if ($productos_en_pedido[$productos[$i]]){ + $producto_en_pedido = $productos_en_pedido[$productos[$i]]; + $records[] = [$producto_en_pedido->producto_nombre,$producto_en_pedido->cantidad_pedida]; + } else { + $records[] = ['producto no pedido',0]; + } + } else { + $records[] = ['','']; + } + } + + try { + $writer = Writer::createFromPath(resource_path('csv/exports/'.$this->nombre.'.csv'), 'w'); + $writer->insertAll($records); + } catch (CannotInsertRecord $e) { + var_export($e->getRecords()); + } + } + + public static function exportarTodosLosPedidosEnCSV(){ + $gdcs=GrupoDeCompra::all(); + foreach ($gdcs as $gdc){ $gdc->exportarPedidoEnCSV(); } + } + }