pedi2/app/GrupoDeCompra.php

70 lines
2.0 KiB
PHP
Raw Normal View History

2021-12-30 13:12:14 -03:00
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
2022-09-06 21:38:01 -03:00
use Mpdf\Mpdf;
use League\Csv\CannotInsertRecord;
use League\Csv\Writer;
use App\Producto;
use DB;
2021-12-30 13:12:14 -03:00
class GrupoDeCompra extends Model
{
public $timestamps = false;
protected $fillable = [ "nombre","region","telefono","correo","referente_finanzas","cantidad_de_nucleos","fila"];
2021-12-30 13:12:14 -03:00
protected $table = 'grupos_de_compra';
protected $hidden = ['password'];
public function subpedidos() {
return $this->hasMany('App\Subpedido');
}
2022-09-06 21:38:01 -03:00
public function exportarPlanillasAPdf() {
$subpedidos = $this->subpedidos;
//generar pdf
$mpdf = new Mpdf();;
foreach ($subpedidos as $subpedido) {
$tabla = $subpedido->generarHTML();
// agregar la tabla al pdf en una nueva página
$mpdf->WriteHTML($tabla);
$mpdf->AddPage();
}
// imprimir el pdf
$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(); }
}
2021-12-30 13:12:14 -03:00
}