Añadidas lineas de presupuesto ByN y Color al presupuesto. Cambios esteticos

This commit is contained in:
imnavajas
2024-01-18 21:50:52 +01:00
parent bbea1465af
commit 7fc32a7840
6 changed files with 89 additions and 44 deletions

View File

@ -202,7 +202,7 @@ $routes->group('papelesimpresionmargenes', ['namespace' => 'App\Controllers\Conf
$routes->post('datatable_editor', 'Papelimpresionmargenes::datatable_editor', ['as' => 'editorOfPapelImpresionMargenes']); $routes->post('datatable_editor', 'Papelimpresionmargenes::datatable_editor', ['as' => 'editorOfPapelImpresionMargenes']);
$routes->get('delete/(:num)', 'Papelimpresionmargenes::delete/$1', ['as' => 'deletePapelImpresionMargen']); $routes->get('delete/(:num)', 'Papelimpresionmargenes::delete/$1', ['as' => 'deletePapelImpresionMargen']);
}); });
$routes->resource('papelesimpresionmargenes', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Papelimpresionmargenes', 'except' => 'show,new,create,update']); $routes->resource('papelesimpresionmargenes', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Papelimpresionmargenes', 'except' => 'show,new,create,update']);
$routes->group('tarifaacabadolineas', ['namespace' => 'App\Controllers\Tarifas'], function ($routes) { $routes->group('tarifaacabadolineas', ['namespace' => 'App\Controllers\Tarifas'], function ($routes) {
@ -453,21 +453,21 @@ $routes->group('tarifasenvios', ['namespace' => 'App\Controllers\Tarifas'], func
$routes->post('allmenuitems', 'Tarifasenvios::allItemsSelect', ['as' => 'select2ItemsOfTarifaEnvio']); $routes->post('allmenuitems', 'Tarifasenvios::allItemsSelect', ['as' => 'select2ItemsOfTarifaEnvio']);
$routes->post('menuitems', 'Tarifasenvios::menuItems', ['as' => 'menuItemsOfTarifaEnvio']); $routes->post('menuitems', 'Tarifasenvios::menuItems', ['as' => 'menuItemsOfTarifaEnvio']);
}); });
$routes->resource('tarifasenvios', ['namespace' => 'App\Controllers\Tarifas', 'controller' => 'Tarifasenvios', 'except' => 'show,new,create,update']); $routes->resource('tarifasenvios', ['namespace' => 'App\Controllers\Tarifas', 'controller' => 'Tarifasenvios', 'except' => 'show,new,create,update']);
$routes->group('tarifasenviosprecios', ['namespace' => 'App\Controllers\Tarifas'], function ($routes) { $routes->group('tarifasenviosprecios', ['namespace' => 'App\Controllers\Tarifas'], function ($routes) {
$routes->post('datatable', 'Tarifasenviosprecios::datatable', ['as' => 'dataTableOfTarifasEnvioPrecios']); $routes->post('datatable', 'Tarifasenviosprecios::datatable', ['as' => 'dataTableOfTarifasEnvioPrecios']);
$routes->post('datatable_editor', 'Tarifasenviosprecios::datatable_editor', ['as' => 'editorOfTarifasEnvioPrecios']); $routes->post('datatable_editor', 'Tarifasenviosprecios::datatable_editor', ['as' => 'editorOfTarifasEnvioPrecios']);
}); });
$routes->resource('tarifasenviosprecios', ['namespace' => 'App\Controllers\Tarifas', 'controller' => 'Tarifasenviosprecios', 'except' => 'show,new,create,update']); $routes->resource('tarifasenviosprecios', ['namespace' => 'App\Controllers\Tarifas', 'controller' => 'Tarifasenviosprecios', 'except' => 'show,new,create,update']);
$routes->group('tarifasenvioszonas', ['namespace' => 'App\Controllers\Tarifas'], function ($routes) { $routes->group('tarifasenvioszonas', ['namespace' => 'App\Controllers\Tarifas'], function ($routes) {
$routes->post('datatable', 'Tarifasenvioszonas::datatable', ['as' => 'dataTableOfTarifasEnvioZonas']); $routes->post('datatable', 'Tarifasenvioszonas::datatable', ['as' => 'dataTableOfTarifasEnvioZonas']);
$routes->post('datatable_editor', 'Tarifasenvioszonas::datatable_editor', ['as' => 'editorOfTarifasEnvioZonas']); $routes->post('datatable_editor', 'Tarifasenvioszonas::datatable_editor', ['as' => 'editorOfTarifasEnvioZonas']);
}); });
$routes->resource('tarifasenvioszonas', ['namespace' => 'App\Controllers\Tarifas', 'controller' => 'Tarifasenvioszonas', 'except' => 'show,new,create,update']); $routes->resource('tarifasenvioszonas', ['namespace' => 'App\Controllers\Tarifas', 'controller' => 'Tarifasenvioszonas', 'except' => 'show,new,create,update']);
$routes->group('proveedores', ['namespace' => 'App\Controllers\Compras'], function ($routes) { $routes->group('proveedores', ['namespace' => 'App\Controllers\Compras'], function ($routes) {
@ -513,7 +513,6 @@ $routes->group('clientedirecciones', ['namespace' => 'App\Controllers\Clientes']
$routes->resource('clientedirecciones', ['namespace' => 'App\Controllers\Clientes', 'controller' => 'Clientedirecciones', 'except' => 'show,new,create,update']); $routes->resource('clientedirecciones', ['namespace' => 'App\Controllers\Clientes', 'controller' => 'Clientedirecciones', 'except' => 'show,new,create,update']);
$routes->group('cosidotapablanda', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) { $routes->group('cosidotapablanda', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
$routes->get('', 'Cosidotapablanda::index', ['as' => 'cosidotapablandaList']); $routes->get('', 'Cosidotapablanda::index', ['as' => 'cosidotapablandaList']);
$routes->get('add', 'Cosidotapablanda::add', ['as' => 'newCosidotapablanda']); $routes->get('add', 'Cosidotapablanda::add', ['as' => 'newCosidotapablanda']);
@ -526,7 +525,7 @@ $routes->group('cosidotapablanda', ['namespace' => 'App\Controllers\Presupuestos
$routes->post('allmenuitems', 'Cosidotapablanda::allItemsSelect', ['as' => 'select2ItemsOfCosidotapablanda']); $routes->post('allmenuitems', 'Cosidotapablanda::allItemsSelect', ['as' => 'select2ItemsOfCosidotapablanda']);
$routes->post('menuitems', 'Cosidotapablanda::menuItems', ['as' => 'menuItemsOfCosidotapablanda']); $routes->post('menuitems', 'Cosidotapablanda::menuItems', ['as' => 'menuItemsOfCosidotapablanda']);
}); });
$routes->resource('cosidotapablanda', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Cosidotapablanda', 'except' => 'show,new,create,update']); $routes->resource('cosidotapablanda', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Cosidotapablanda', 'except' => 'show,new,create,update']);
$routes->group('serviciosacabados', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) { $routes->group('serviciosacabados', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
$routes->post('datatable', 'Presupuestoacabados::datatable', ['as' => 'dataTableOfPresupuestoAcabados']); $routes->post('datatable', 'Presupuestoacabados::datatable', ['as' => 'dataTableOfPresupuestoAcabados']);
@ -555,10 +554,13 @@ $routes->group('presupuestodirecciones', ['namespace' => 'App\Controllers\Presup
$routes->post('datatable', 'Presupuestodirecciones::datatable', ['as' => 'dataTableOfPresupuestoDirecciones']); $routes->post('datatable', 'Presupuestodirecciones::datatable', ['as' => 'dataTableOfPresupuestoDirecciones']);
}); });
$routes->group('printpresupuestos', ['namespace' => 'App\Controllers\Pdf'], function ($routes) { $routes->group(
$routes->get('', 'PrintPresupuestos::index', ['as' => 'viewPresupuesto']); 'printpresupuestos',
$routes->get('generar/(:num)', 'PrintPresupuestos::generar/$1', ['as' => 'presupuestoToPdf']); ['namespace' => 'App\Controllers\Pdf'],
}); function ($routes) {
$routes->get('index/(:num)', 'PrintPresupuestos::index/$1', ['as' => 'viewPresupuesto']);
$routes->get('generar/(:num)', 'PrintPresupuestos::generar/$1', ['as' => 'presupuestoToPdf']);
});
/* /*

View File

@ -12,8 +12,11 @@ class PrintPresupuestos extends BaseController
{ {
$presupuestoModel = model('App\Models\Presupuestos\PresupuestoModel'); $presupuestoModel = model('App\Models\Presupuestos\PresupuestoModel');
$lineasPresupuestoModel = model('App\Models\Presupuestos\PresupuestoLineaModel');
$data['presupuesto'] = $presupuestoModel->getResourceForPdf(8)->get()->getRow(); $data['presupuesto'] = $presupuestoModel->getResourceForPdf($id_presupuesto)->get()->getRow();
$data['lp_ByN'] = $lineasPresupuestoModel->getResourceByNForPdf($id_presupuesto)->get()->getRow();
$data['lp_Color'] = $lineasPresupuestoModel->getResourceColorForPdf($id_presupuesto)->get()->getRow();
return view(getenv('theme.path') . 'pdfs/presupuesto', $data); return view(getenv('theme.path') . 'pdfs/presupuesto', $data);
@ -24,9 +27,11 @@ class PrintPresupuestos extends BaseController
// Cargar modelos // Cargar modelos
$presupuestoModel = model('App\Models\Presupuestos\PresupuestoModel'); $presupuestoModel = model('App\Models\Presupuestos\PresupuestoModel');
$lineasPresupuestoModel = model('App\Models\Presupuestos\PresupuestoLineaModel');
// Get budget information // Informacion del presupuesto
$data['presupuesto'] = $presupuestoModel->getResourceForPdf($presupuesto_id)->get()->getRow(); $data['presupuesto'] = $presupuestoModel->getResourceForPdf($presupuesto_id)->get()->getRow();
$data['lp_ByN'] = $lineasPresupuestoModel->getResourceByNForPdf($presupuesto_id)->get()->getRow();
$data['lp_Color'] = $lineasPresupuestoModel->getResourceColorForPdf($presupuesto_id)->get()->getRow();
// Crear una instancia de Dompdf // Crear una instancia de Dompdf
$options = new \Dompdf\Options(); $options = new \Dompdf\Options();

View File

@ -1,4 +1,5 @@
<?php <?php
namespace App\Models\Presupuestos; namespace App\Models\Presupuestos;
class PresupuestoLineaModel extends \App\Models\GoBaseModel class PresupuestoLineaModel extends \App\Models\GoBaseModel
@ -307,15 +308,16 @@ class PresupuestoLineaModel extends \App\Models\GoBaseModel
return $result; return $result;
} }
public function createForPresupuesto($presupuesto_id){ public function createForPresupuesto($presupuesto_id)
{
$tipos = ['bn','bnhq','color','colorhq','cubierta','sobrecubierta','rot_bn','rot_color']; $tipos = ['bn', 'bnhq', 'color', 'colorhq', 'cubierta', 'sobrecubierta', 'rot_bn', 'rot_color'];
foreach($tipos as $tipo){ foreach ($tipos as $tipo) {
$builder = $this->db $builder = $this->db
->table($this->table . " t1"); ->table($this->table . " t1");
$data = [ $data = [
'presupuesto_id' => $presupuesto_id, 'presupuesto_id' => $presupuesto_id,
'tipo' => $tipo, 'tipo' => $tipo,
]; ];
$builder->insert($data); $builder->insert($data);
@ -334,18 +336,19 @@ class PresupuestoLineaModel extends \App\Models\GoBaseModel
return $builder->orderBy("t1.id", "asc")->get()->getResultObject(); return $builder->orderBy("t1.id", "asc")->get()->getResultObject();
} }
public function deleteLineasPresupuesto($presupuesto_id){ public function deleteLineasPresupuesto($presupuesto_id)
{
$this->db $this->db
->table($this->table . " t1") ->table($this->table . " t1")
->where("presupuesto_id", $presupuesto_id) ->where("presupuesto_id", $presupuesto_id)
->delete(); ->delete();
} }
public function insertLineasPresupuesto($presupuesto_id = -1, $datos=[]) public function insertLineasPresupuesto($presupuesto_id = -1, $datos = [])
{ {
$this->deleteLineasPresupuesto($presupuesto_id); $this->deleteLineasPresupuesto($presupuesto_id);
foreach($datos as $linea){ foreach ($datos as $linea) {
$this->db $this->db
->table($this->table . " t1") ->table($this->table . " t1")
@ -354,6 +357,33 @@ class PresupuestoLineaModel extends \App\Models\GoBaseModel
} }
} }
public function getResourceByNForPdf($presupuesto_id = -1)
{
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.paginas AS paginas, t1.papel_impresion AS papel, t1.gramaje AS gramaje"
)
->where("t1.presupuesto_id", $presupuesto_id)
->whereIn('t1.tipo', ['lp_bn', 'lp_bnhq', 'lp_rot_bn']);
return $builder;
}
public function getResourceColorForPdf($presupuesto_id = -1)
{
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.paginas AS paginas, t1.papel_impresion AS papel, t1.gramaje AS gramaje"
)
->where("t1.presupuesto_id", $presupuesto_id)
->whereIn('t1.tipo', ['lp_color', 'lp_colorhq', 'lp_rot_color']);
return $builder;
}
} }

View File

@ -347,7 +347,7 @@ class PresupuestoModel extends \App\Models\GoBaseModel
/** /**
* Get resource data. * Get resource data for creating PDFs.
* *
* @param string $search * @param string $search
* *
@ -364,20 +364,21 @@ class PresupuestoModel extends \App\Models\GoBaseModel
t1.retractilado AS retractilado, t1.guardas AS guardas, t1.marcapaginas AS marcapaginas, t1.retractilado AS retractilado, t1.guardas AS guardas, t1.marcapaginas AS marcapaginas,
t1.comentarios_pdf AS comentarios_pdf, t1.comentarios_pdf AS comentarios_pdf,
t1.total_presupuesto AS total_presupuesto, t1.total_precio_unidad AS total_precio_unidad, t1.total_presupuesto AS total_presupuesto, t1.total_precio_unidad AS total_precio_unidad,
t1.papel_formato_personalizado AS isPersonalizado,
CONCAT(t1.papel_formato_ancho, 'x', t1.papel_formato_alto) AS formatoPersonalizado,
t2.nombre AS cliente, t2.nombre AS cliente,
CONCAT(t3.first_name, ' ', t3.last_name) AS comercial, t3.email AS email_comercial, CONCAT(t3.first_name, ' ', t3.last_name) AS comercial, t3.email AS email_comercial,
t6.estado AS estado" CONCAT(t4.ancho, 'x', t4.alto) AS formato"
); );
$builder->join("clientes t2", "t1.cliente_id = t2.id", "left"); $builder->join("clientes t2", "t1.cliente_id = t2.id", "left");
$builder->join("auth_user t3", "t1.user_update_id = t3.id_user", "left"); $builder->join("auth_user t3", "t1.user_update_id = t3.id_user", "left");
$builder->join("presupuesto_estados t6", "t1.estado_id = t6.id", "left"); $builder->join("lg_papel_formato t4", "t1.papel_formato_id = t4.id", "left");
$builder->where("t1.is_deleted", 0); $builder->where("t1.is_deleted", 0);
$builder->where("t1.id", $presupuesto_id); $builder->where("t1.id", $presupuesto_id);
return $builder; return $builder;
} }
} }

View File

@ -91,28 +91,30 @@
<tr> <tr>
<td class="t">Formato</td> <td class="t">Formato</td>
<td class="v" colspan="5"> <td class="v" colspan="5">
<?= "obj->papel_formato->format()" ?> mm. <?= (($presupuesto->isPersonalizado) ? $presupuesto->formatoPersonalizado : $presupuesto->formato) ?> mm
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="t">Nº de páginas totales</td> <td class="t">Nº de páginas totales</td>
<td class="v" colspan="5"><?= $presupuesto->paginas ?></td> <td class="v" colspan="5"><?= $presupuesto->paginas ?></td>
</tr> </tr>
<tr> <tr>
<td class="t">Nº de páginas ByN</td> <td class="t">Nº de páginas ByN</td>
<td class="v"><?= "paginas_negro" ?></td> <td class="v"><?= $lp_ByN->paginas ?></td>
<td class="t-first">Papel</td> <td class="t-first">Papel</td>
<td class="v-first"><?= "papel_negro" ?></td> <td class="v-first"><?= $lp_ByN->papel ?></td>
<td class="t-second">Gramaje</td> <td class="t-second">Gramaje</td>
<td class="v-second"><?= "gramaje_negro" ?></td> <td class="v-second"><?= $lp_ByN->gramaje ?></td>
</tr> </tr>
<tr> <tr>
<td class="t">Nº de páginas Color</td> <td class="t">Nº de páginas Color</td>
<td class="v"><?= "paginas_color" ?></td> <td class="v"><?= $lp_Color->paginas ?></td>
<td class="t-first">Papel</td> <td class="t-first">Papel</td>
<td class="v-first"><?= "papel_color" ?></td> <td class="v-first"><?= $lp_Color->papel ?></td>
<td class="t-second">Gramaje</td> <td class="t-second">Gramaje</td>
<td class="v-second"><?= "gramaje_color" ?></td> <td class="v-second"><?= $lp_Color->gramaje ?></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -16,6 +16,7 @@ body table.logo td.logo img {
body table.presupuesto-data { body table.presupuesto-data {
width: 100%; width: 100%;
font-size: 12px; font-size: 12px;
margin-top: -22px;
} }
body table.presupuesto-data th { body table.presupuesto-data th {
@ -83,8 +84,8 @@ body table.presupuesto-data td.autor {
body table.impresion { body table.impresion {
width: 100%; width: 100%;
font-size: 11px; font-size: 11px;
margin-bottom: 9px; // IMN margin-bottom: 9px;
margin-top: 8px; // IMN margin-top: 8px;
} }
body table.impresion th { body table.impresion th {
@ -137,7 +138,8 @@ body table.impresion td.v-first {
body table.cubierta { body table.cubierta {
width: 100%; width: 100%;
font-size: 11px; font-size: 11px;
margin-bottom: 9px; margin-top: -2px;
// IMN margin-bottom: 9px;
} }
body table.cubierta th { body table.cubierta th {
@ -185,7 +187,8 @@ body table.cubierta td.v-first {
body table.encuadernacion { body table.encuadernacion {
width: 100%; width: 100%;
font-size: 11px; font-size: 11px;
margin-bottom: 9px; margin-top: -2px;
// IMN margin-bottom: 9px;
} }
body table.encuadernacion th { body table.encuadernacion th {
@ -240,7 +243,8 @@ body table.encuadernacion td.t-second {
body table.extras { body table.extras {
width: 100%; width: 100%;
font-size: 11px; font-size: 11px;
margin-bottom: 9px; margin-top: -2px;
// IMN margin-bottom: 9px;
} }
body table.extras th { body table.extras th {
@ -378,6 +382,7 @@ body table.totales td.iva {
border: none; border: none;
text-align: right; text-align: right;
font-size: 10px; font-size: 10px;
margin-top: 2px;
} }
body table.totales td.hidden { body table.totales td.hidden {