trabajando en servicios acabado

This commit is contained in:
2025-01-10 00:05:35 +01:00
parent 7e7c686f79
commit 7bb7b807a5
13 changed files with 82 additions and 1154 deletions

View File

@ -76,6 +76,8 @@ $routes->group('tarifas', ['namespace' => 'App\Controllers\Tarifas'], function (
$routes->get('delete/(:num)', 'TarifaAcabados::delete/$1', ['as' => 'tarifaAcabadoDelete']); $routes->get('delete/(:num)', 'TarifaAcabados::delete/$1', ['as' => 'tarifaAcabadoDelete']);
$routes->post('datatable', 'TarifaAcabados::datatable', ['as' => 'tarifaAcabadoDT']); $routes->post('datatable', 'TarifaAcabados::datatable', ['as' => 'tarifaAcabadoDT']);
$routes->get('select', 'TarifaAcabados::show_select', ["as" => "showSelectTarifaAcabado"]); $routes->get('select', 'TarifaAcabados::show_select', ["as" => "showSelectTarifaAcabado"]);
$routes->get('gettarifas', 'TarifaAcabados::getSelect2');
$routes->group('lineas', ['namespace' => 'App\Controllers\Tarifas\Acabados'], function ($routes) { $routes->group('lineas', ['namespace' => 'App\Controllers\Tarifas\Acabados'], function ($routes) {
$routes->post('datatable', 'TarifaAcabadosLineas::datatable', ['as' => 'tarifaAcabadoLineasDT']); $routes->post('datatable', 'TarifaAcabadosLineas::datatable', ['as' => 'tarifaAcabadoLineasDT']);
$routes->post('datatable_editor', 'TarifaAcabadosLineas::datatable_editor', ['as' => 'tarifaAcabadoLineasDTE']); $routes->post('datatable_editor', 'TarifaAcabadosLineas::datatable_editor', ['as' => 'tarifaAcabadoLineasDTE']);
@ -652,10 +654,10 @@ $routes->group('presupuestocliente', ['namespace' => 'App\Controllers\Presupuest
$routes->resource('presupuestocliente', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestocliente', 'except' => 'show,new,create,update']); $routes->resource('presupuestocliente', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestocliente', '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('getvalues', 'Presupuestoacabados::getRowValues');
$routes->post('menuitems', 'Presupuestoacabados::menuItems', ['as' => 'menuItemsOfPresupuestoAcabados']); $routes->post('menuitems', 'Presupuestoacabados::menuItems', ['as' => 'menuItemsOfPresupuestoAcabados']);
$routes->post('edit/(:num)', 'Presupuestoacabados::edit/$1', ['as' => 'updatePresupuestoacabados']); $routes->post('edit/(:num)', 'Presupuestoacabados::edit/$1', ['as' => 'updatePresupuestoacabados']);
$routes->get('getacabados', 'Presupuestoacabados::getAcabados'); $routes->get('cargar', 'Presupuestoacabados::cargar');
}); });
$routes->group('serviciosencuadernaciones', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) { $routes->group('serviciosencuadernaciones', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {

View File

@ -92,7 +92,27 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
return $this->respond($data); return $this->respond($data);
} }
public function datatable() public function cargar()
{
if($this->request->isAJAX()) {
$presupuesto_id = $this->request->getGet('presupuesto_id') ?? null;
$rows = $this->model->getResource($presupuesto_id)->get()->getResultObject();
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
'rows' => $rows,
$csrfTokenName => $newTokenHash
];
return $this->respond($data);
} else {
return $this->failUnauthorized('Invalid request', 403);
}
}
public function getRowValues()
{ {
if ($this->request->isAJAX()) { if ($this->request->isAJAX()) {
$reqData = $this->request->getPost(); $reqData = $this->request->getPost();
@ -100,7 +120,7 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
$tarifa_acabado_id = $reqData['tarifa_acabado_id'] ?? 0; $tarifa_acabado_id = $reqData['tarifa_acabado_id'] ?? 0;
$tirada = $reqData['tirada'] ?? 0; $tirada = $reqData['tirada'] ?? 0;
$proveedor_id = $reqData['proveedor_id'] ?? -1; $proveedor_id = $reqData['proveedor_id'] ?? -1;
$POD = $reqData['POD'] ?? 0; $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
$newTokenHash = csrf_hash(); $newTokenHash = csrf_hash();
$csrfTokenName = csrf_token(); $csrfTokenName = csrf_token();
@ -195,4 +215,6 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
return $this->failUnauthorized('Invalid request', 403); return $this->failUnauthorized('Invalid request', 403);
} }
} }
} }

View File

@ -336,4 +336,25 @@ class TarifaAcabados extends BaseResourceController
} }
return $this->response->setJSON($query->get()->getResultObject()); return $this->response->setJSON($query->get()->getResultObject());
} }
public function getSelect2()
{
if ($this->request->isAJAX()) {
$query = $this->model->builder()->select(
[
"id",
"nombre as name"
]
)->where("deleted_at", null);
if ($this->request->getGet("q")) {
$query->groupStart()
->orLike("lg_tarifas_acabado.nombre", $this->request->getGet("q"))
->groupEnd();
}
return $this->response->setJSON($query->get()->getResultObject());
} else {
return $this->failUnauthorized('Invalid request', 403);
}
}
} }

View File

@ -9,6 +9,7 @@ return [
'id' => 'ID', 'id' => 'ID',
'moduleTitle' => 'Tarifas Acabado', 'moduleTitle' => 'Tarifas Acabado',
'nombre' => 'Nombre', 'nombre' => 'Nombre',
'margen' => 'Margen',
'precioMin' => 'Precio Mínimo', 'precioMin' => 'Precio Mínimo',
'importeFijo' => 'Importe Fijo', 'importeFijo' => 'Importe Fijo',
'mostrar_en_presupuesto' => 'Mostrar en presupuesto', 'mostrar_en_presupuesto' => 'Mostrar en presupuesto',

View File

@ -76,8 +76,10 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
$ret_array[] = (object)[ $ret_array[] = (object)[
'tarifa_id'=> $tarifa_value[0]->tarifa_acabado_id, 'tarifa_id'=> $tarifa_value[0]->tarifa_acabado_id,
'tarifa_nombre'=> $tarifa_value[0]->tarifa_acabado_nombre, 'tarifa_nombre'=> $tarifa_value[0]->tarifa_acabado_nombre,
'precio_unidad'=> $result_data[0], 'nombre'=> $tarifa_value[0]->tarifa_acabado_nombre,
'total'=> $result_data[1], 'precio_unidad'=> round($result_data[0], 2),
'total'=> round($result_data[1], 2),
'precio_total'=> round($result_data[1], 2),
'margen'=> $result_data[2], 'margen'=> $result_data[2],
'proveedor' => $tarifa_value[0]->proveedor_nombre, 'proveedor' => $tarifa_value[0]->proveedor_nombre,
'proveedor_id' => $tarifa_value[0]->proveedor_id, 'proveedor_id' => $tarifa_value[0]->proveedor_id,
@ -88,9 +90,13 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
$ret_array[] = (object)[ $ret_array[] = (object)[
'tarifa_id'=> $tarifa_acabado_id, 'tarifa_id'=> $tarifa_acabado_id,
'tarifa_nombre'=> $modelTarifa->getNombreTarifaAcabado($tarifa_acabado_id)[0]->nombre, 'tarifa_nombre'=> $modelTarifa->getNombreTarifaAcabado($tarifa_acabado_id)[0]->nombre,
'nombre'=> $modelTarifa->getNombreTarifaAcabado($tarifa_acabado_id)[0]->nombre,
'precio_unidad' => 0, 'precio_unidad' => 0,
'total' => 0,
'precio_total' => 0,
'margen' => 0, 'margen' => 0,
'total'=> 0, 'proveedor' => '',
'proveedor_id' => 0,
]; ];
return $ret_array; return $ret_array;
} }
@ -194,7 +200,7 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
$builder = $this->db $builder = $this->db
->table($this->table . " t1") ->table($this->table . " t1")
->select( ->select(
"t1.id AS id, t1.tarifa_acabado_id AS tarifa_acabado_id, t1.precio_unidad AS precio_unidad, "t1.id AS id, t1.tarifa_acabado_id AS tarifa_acabado_id, t1.tarifa_acabado_id AS tarifa_id, t1.precio_unidad AS precio_unidad,
t1.precio_total AS precio_total, t1.margen AS margen, t2.nombre AS nombre, t1.cubierta AS cubierta, t1.sobrecubierta AS sobrecubierta, t1.precio_total AS precio_total, t1.margen AS margen, t2.nombre AS nombre, t1.cubierta AS cubierta, t1.sobrecubierta AS sobrecubierta,
t1.proveedor_id AS proveedor_id, t3.nombre AS proveedor," t1.proveedor_id AS proveedor_id, t3.nombre AS proveedor,"
); );

View File

@ -1,14 +1,8 @@
/**************************************************************************************** /****************************************************************************************
* Seccion para las funciones generales de la pagina * Seccion para las funciones generales de la pagina
***************************************************************************************/ ***************************************************************************************/
/*
$('.nav-servicios button').on('shown.bs.tab', function(){
$("#tableOfServiciosEncuadernacion").DataTable().columns.adjust();
$("#tableOfServiciosPreimpresion").DataTable().columns.adjust();
$("#tableOfServiciosManipulado").DataTable().columns.adjust();
$("#tableOfServiciosAcabado").DataTable().columns.adjust();
$("#tableOfServiciosExtra").DataTable().columns.adjust();
})
$('#serv_default').on('click', function(){ $('#serv_default').on('click', function(){
@ -159,12 +153,12 @@ function save_servicios(){
}) })
) )
} }
*/
/**************************************************************************************** /****************************************************************************************
* Seccion para los servicios de acabado * Seccion para los servicios de acabado
***************************************************************************************/ ***************************************************************************************/
var tableServiciosAcabado = new DataTable('#tableOfServiciosAcabado',{ /*var tableServiciosAcabado = new DataTable('#tableOfServiciosAcabado',{
scrollX: true, scrollX: true,
searching: false, searching: false,
paging: false, paging: false,
@ -625,7 +619,7 @@ async function get_servAcabados_tiradasAlternativas(tirada){
return serviciosAcabados; return serviciosAcabados;
} }
*/
/**************************************************************************************** /****************************************************************************************
* Seccion para los servicios de encuadernación * Seccion para los servicios de encuadernación
***************************************************************************************/ ***************************************************************************************/
@ -1116,6 +1110,7 @@ async function get_servEncuadernacion_tiradasAlternativas(tirada, paginas, ancho
/**************************************************************************************** /****************************************************************************************
* Seccion para los servicios de manipulado * Seccion para los servicios de manipulado
***************************************************************************************/ ***************************************************************************************/
/*
var tableServiciosManipulado = new DataTable('#tableOfServiciosManipulado',{ var tableServiciosManipulado = new DataTable('#tableOfServiciosManipulado',{
scrollX: true, scrollX: true,
searching: false, searching: false,
@ -1369,6 +1364,7 @@ async function get_servManipulado_tiradasAlternativas(tirada){
} }
return serviciosManipulado; return serviciosManipulado;
} }
*/
/**************************************************************************************** /****************************************************************************************
* Seccion para los servicios de preimpresión * Seccion para los servicios de preimpresión

View File

@ -93,7 +93,7 @@
<th><?= lang('Proveedores.proveedor') ?></th> <th><?= lang('Proveedores.proveedor') ?></th>
<th><?= lang('Presupuestos.precioUnidad') ?></th> <th><?= lang('Presupuestos.precioUnidad') ?></th>
<th><?= lang('Presupuestos.precioTotal') ?></th> <th><?= lang('Presupuestos.precioTotal') ?></th>
<th></th> <th><?= lang('Tarifaacabado.margen') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th> <th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr> </tr>
</thead> </thead>
@ -103,12 +103,6 @@
<div class="row mb-3 px-4"> <div class="row mb-3 px-4">
<div class="col-md-12 col-lg-4 py-4"> <div class="col-md-12 col-lg-4 py-4">
<select id="add_servicio_acabado_list" class="select2bs2" style="width: 100%;"> <select id="add_servicio_acabado_list" class="select2bs2" style="width: 100%;">
<option></option>
<?php foreach ($serviciosAcabado as $item) : ?>
<option value="<?= $item->value ?>" >
<?= $item->label ?>
</option>
<?php endforeach; ?>
</select> </select>
</div> </div>
<div class="col-md-12 col-lg-4 px-2 py-4"> <div class="col-md-12 col-lg-4 px-2 py-4">

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@
<?= $this->section("content") ?> <?= $this->section("content") ?>
<div class="row"> <div id="mainContainer" class="row">
<div class="col-12"> <div class="col-12">
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3> <h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
<form id="presupuestoForm" class="card-body" method="post" action="<?= $formAction ?>"> <form id="presupuestoForm" class="card-body" method="post" action="<?= $formAction ?>">
@ -302,16 +302,7 @@
<script src="<?= site_url("themes/vuexy/vendor/libs/datatables-sk/plugins/select/dataTables.select.min.js") ?>"></script> <script src="<?= site_url("themes/vuexy/vendor/libs/datatables-sk/plugins/select/dataTables.select.min.js") ?>"></script>
<script src="<?= site_url('themes/vuexy/js/datatables-editor/dataTables.editor.min.js') ?>"></script> <script src="<?= site_url('themes/vuexy/js/datatables-editor/dataTables.editor.min.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/autosize/autosize.js') ?>"></script> <script src="<?= site_url('themes/vuexy/vendor/libs/autosize/autosize.js') ?>"></script>
<script src="<?= site_url('js_loader/translate_js/Presupuestos') ?>"></script>
<?php if (str_contains($formAction, 'edit')): ?> <?php if (str_contains($formAction, 'edit')): ?>
<!---<script src="<?= site_url('js_loader/datosEnvios_js') ?>"></script>
<script src="<?= site_url('js_loader/resumenPresupuestos_js') ?>"></script>
<script src="<?= site_url('js_loader/presupuestos_js') ?>"></script>
<script src="<?= site_url('js_loader/comparadorPresupuestoAdmin_js') ?>"></script>
<script src="<?= site_url('js_loader/previsualizador_js') ?>"></script>
<script src="<?= site_url('js_loader/lineasPresupuesto_js') ?>"></script>
<script src="<?= site_url('js_loader/tiradasAlternativas_js') ?>"></script>
<script src="<?= site_url('js_loader/datosServicios_js') ?>"></script> -->
<script src="<?= site_url('themes/vuexy/vendor/libs/two/two.js') ?>"></script> <script src="<?= site_url('themes/vuexy/vendor/libs/two/two.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script> <script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>

View File

@ -6,6 +6,7 @@ import DatosLibro from './sections/datosLibro.js';
import Comparador from './sections/comparador.js'; import Comparador from './sections/comparador.js';
import LineasPresupuesto from './sections/lineasPresupuesto.js'; import LineasPresupuesto from './sections/lineasPresupuesto.js';
import PreviewFormasAdmin from './sections/previewFormasAdmin.js'; import PreviewFormasAdmin from './sections/previewFormasAdmin.js';
import Servicios from './sections/servicios.js';
class PresupuestoAdminEdit { class PresupuestoAdminEdit {
@ -38,6 +39,7 @@ class PresupuestoAdminEdit {
}); });
this.previewFormasAdmin = null; this.previewFormasAdmin = null;
this.servicios = new Servicios();
this.calcularPresupuesto = false; this.calcularPresupuesto = false;
} }
@ -80,6 +82,7 @@ class PresupuestoAdminEdit {
} }
); );
this.previewFormasAdmin.init(); this.previewFormasAdmin.init();
this.servicios.init();
if (window.location.href.includes("edit")) { if (window.location.href.includes("edit")) {
@ -121,6 +124,8 @@ class PresupuestoAdminEdit {
self.datosLibro.cargarDatos(response.data.datosLibro); self.datosLibro.cargarDatos(response.data.datosLibro);
self.comparador.cargarDatos(response.data.comparador); self.comparador.cargarDatos(response.data.comparador);
self.lineasPresupuesto.cargarDatos(response.data.lineasPresupuesto); self.lineasPresupuesto.cargarDatos(response.data.lineasPresupuesto);
self.servicios.cargar();
/*self.direcciones.handleChangeCliente(); /*self.direcciones.handleChangeCliente();
self.direcciones.cargarDatos(response.data.direcciones, response.data.datosGenerales); self.direcciones.cargarDatos(response.data.direcciones, response.data.datosGenerales);

View File

@ -244,6 +244,8 @@ class Comparador {
this.sobrecubierta.on('change', () => { this.sobrecubierta.on('change', () => {
if (this.sobrecubierta.val() == 1) { if (this.sobrecubierta.val() == 1) {
$('#solapas_sobrecubierta').prop('checked', true); $('#solapas_sobrecubierta').prop('checked', true);
$('#div_solapas_ancho_sobrecubierta').removeClass('d-none');
$('#solapas_ancho_sobrecubierta').val(60);
$('#compPapelSobrecubierta').prop('disabled', false); $('#compPapelSobrecubierta').prop('disabled', false);
$('#compGramajeSobrecubierta').prop('disabled', false); $('#compGramajeSobrecubierta').prop('disabled', false);
} }

View File

@ -172,8 +172,6 @@ class DatosLibro {
this.checkPaginasPresupuesto(); this.checkPaginasPresupuesto();
$('.tamanio-personalizado').addClass('d-none');
$(document).trigger('update-lineas-presupuesto'); $(document).trigger('update-lineas-presupuesto');
// TO-DO // TO-DO
@ -211,10 +209,10 @@ class DatosLibro {
changeSolapasCubierta() { changeSolapasCubierta() {
if (this.solapasCubierta.prop('checked')) { if (this.solapasCubierta.prop('checked')) {
this.divSolapasCubierta.removeClass('d-none'); $('#div_solapas_ancho_sobrecubierta').removeClass('d-none');
} }
else { else {
this.divSolapasCubierta.addClass('d-none'); $('#div_solapas_ancho_sobrecubierta').divSolapasCubierta.addClass('d-none');
this.anchoSolapasCubierta.val(0); this.anchoSolapasCubierta.val(0);
} }
$('#serv_default').trigger('click'); $('#serv_default').trigger('click');
@ -388,12 +386,12 @@ class DatosLibro {
if (datos.solapasCubierta) { if (datos.solapasCubierta) {
this.solapasCubierta.prop('checked', true); this.solapasCubierta.prop('checked', true);
this.anchoSolapasCubierta.val(datos.solapasCubiertaAncho); this.anchoSolapasCubierta.val(datos.solapasCubiertaAncho);
$('#div_solapas_ancho').removeClass('d-none'); this.divSolapasSobrecubierta.removeClass('d-none');
} }
else{ else{
this.solapasCubierta.prop('checked', false); this.solapasCubierta.prop('checked', false);
this.anchoSolapasCubierta.val(0); this.anchoSolapasCubierta.val(0);
$('#div_solapas_ancho').addClass('d-none'); this.divSolapasSobrecubierta.addClass('d-none');
} }
} }
if (datos.solapasSobrecubierta) { if (datos.solapasSobrecubierta) {
@ -403,7 +401,7 @@ class DatosLibro {
} }
else{ else{
this.solapasSobrecubierta.prop('checked', false); this.solapasSobrecubierta.prop('checked', false);
this.anchoSolapasSobrecubierta.val(0); this.anchoSolapasSobrecubierta.val(60);
$('#div_solapas_ancho_sobrecubierta').addClass('d-none'); $('#div_solapas_ancho_sobrecubierta').addClass('d-none');
} }

View File

@ -674,7 +674,7 @@ class LineasPresupuesto {
</span> </span>
<div class="d-flex flex-column ps-1"> <div class="d-flex flex-column ps-1">
<h5 class="alert-heading mb-2">` + <h5 class="alert-heading mb-2">` +
window.Presupuestos.errores.paginasLP + window.language.Presupuestos.errores.paginasLP +
`</h5> `</h5>
</div> </div>
</div>`; </div>`;
@ -1463,7 +1463,7 @@ class LineasPresupuesto {
cliente_id: $('#clienteId').find(":selected").val(), cliente_id: $('#clienteId').find(":selected").val(),
}; };
if(datos.ancho==0 || datos.alto==0){ if(datos.ancho==0 || datos.alto==0 || datos.ancho=='' || datos.alto=='' || isNaN(datos.ancho) || isNaN(datos.alto)){
return; return;
} }