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->post('datatable', 'TarifaAcabados::datatable', ['as' => 'tarifaAcabadoDT']);
$routes->get('select', 'TarifaAcabados::show_select', ["as" => "showSelectTarifaAcabado"]);
$routes->get('gettarifas', 'TarifaAcabados::getSelect2');
$routes->group('lineas', ['namespace' => 'App\Controllers\Tarifas\Acabados'], function ($routes) {
$routes->post('datatable', 'TarifaAcabadosLineas::datatable', ['as' => 'tarifaAcabadoLineasDT']);
$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->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('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) {

View File

@ -92,7 +92,27 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
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()) {
$reqData = $this->request->getPost();
@ -100,7 +120,7 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
$tarifa_acabado_id = $reqData['tarifa_acabado_id'] ?? 0;
$tirada = $reqData['tirada'] ?? 0;
$proveedor_id = $reqData['proveedor_id'] ?? -1;
$POD = $reqData['POD'] ?? 0;
$POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
@ -195,4 +215,6 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
return $this->failUnauthorized('Invalid request', 403);
}
}
}

View File

@ -336,4 +336,25 @@ class TarifaAcabados extends BaseResourceController
}
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',
'moduleTitle' => 'Tarifas Acabado',
'nombre' => 'Nombre',
'margen' => 'Margen',
'precioMin' => 'Precio Mínimo',
'importeFijo' => 'Importe Fijo',
'mostrar_en_presupuesto' => 'Mostrar en presupuesto',

View File

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

View File

@ -1,14 +1,8 @@
/****************************************************************************************
* 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(){
@ -159,12 +153,12 @@ function save_servicios(){
})
)
}
*/
/****************************************************************************************
* Seccion para los servicios de acabado
***************************************************************************************/
var tableServiciosAcabado = new DataTable('#tableOfServiciosAcabado',{
/*var tableServiciosAcabado = new DataTable('#tableOfServiciosAcabado',{
scrollX: true,
searching: false,
paging: false,
@ -625,7 +619,7 @@ async function get_servAcabados_tiradasAlternativas(tirada){
return serviciosAcabados;
}
*/
/****************************************************************************************
* 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
***************************************************************************************/
/*
var tableServiciosManipulado = new DataTable('#tableOfServiciosManipulado',{
scrollX: true,
searching: false,
@ -1369,6 +1364,7 @@ async function get_servManipulado_tiradasAlternativas(tirada){
}
return serviciosManipulado;
}
*/
/****************************************************************************************
* Seccion para los servicios de preimpresión

View File

@ -93,7 +93,7 @@
<th><?= lang('Proveedores.proveedor') ?></th>
<th><?= lang('Presupuestos.precioUnidad') ?></th>
<th><?= lang('Presupuestos.precioTotal') ?></th>
<th></th>
<th><?= lang('Tarifaacabado.margen') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr>
</thead>
@ -103,12 +103,6 @@
<div class="row mb-3 px-4">
<div class="col-md-12 col-lg-4 py-4">
<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>
</div>
<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") ?>
<div class="row">
<div id="mainContainer" class="row">
<div class="col-12">
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
<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/js/datatables-editor/dataTables.editor.min.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')): ?>
<!---<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/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 LineasPresupuesto from './sections/lineasPresupuesto.js';
import PreviewFormasAdmin from './sections/previewFormasAdmin.js';
import Servicios from './sections/servicios.js';
class PresupuestoAdminEdit {
@ -38,6 +39,7 @@ class PresupuestoAdminEdit {
});
this.previewFormasAdmin = null;
this.servicios = new Servicios();
this.calcularPresupuesto = false;
}
@ -80,6 +82,7 @@ class PresupuestoAdminEdit {
}
);
this.previewFormasAdmin.init();
this.servicios.init();
if (window.location.href.includes("edit")) {
@ -121,6 +124,8 @@ class PresupuestoAdminEdit {
self.datosLibro.cargarDatos(response.data.datosLibro);
self.comparador.cargarDatos(response.data.comparador);
self.lineasPresupuesto.cargarDatos(response.data.lineasPresupuesto);
self.servicios.cargar();
/*self.direcciones.handleChangeCliente();
self.direcciones.cargarDatos(response.data.direcciones, response.data.datosGenerales);

View File

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

View File

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

View File

@ -674,7 +674,7 @@ class LineasPresupuesto {
</span>
<div class="d-flex flex-column ps-1">
<h5 class="alert-heading mb-2">` +
window.Presupuestos.errores.paginasLP +
window.language.Presupuestos.errores.paginasLP +
`</h5>
</div>
</div>`;
@ -1463,7 +1463,7 @@ class LineasPresupuesto {
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;
}