Merge branch 'refactor/messages-view' into feat/ordenes-trabajo

This commit is contained in:
amazuecos
2024-11-30 17:10:26 +01:00
156 changed files with 6538 additions and 2643 deletions

View File

@ -0,0 +1,11 @@
<div class="alert alert-success d-flex align-items-baseline d-none" role="alert" id="<?= $id ?>">
<span class="alert-icon alert-icon-lg text-primary me-2">
<i class="ti ti-sm icon-alert"></i>
</span>
<div class="d-flex flex-column ps-1">
<h5 class="alert-heading mb-2"></h5>
<div class="alert-body">
</div>
</div>
</div>

View File

@ -0,0 +1,153 @@
<div class="col-md-12" id="chat-direct-message" data-id="<?= $modelId ?>" data-user-id="<?= $userId ?>">
<div class="app-chat card overflow-hidden">
<div class="row g-0">
<!-- Chat & Contacts -->
<div class="col app-chat-contacts app-sidebar flex-grow-0 overflow-hidden border-end"
id="app-chat-contacts">
<div class="sidebar-header">
<div class="d-flex align-items-center me-3 me-lg-0">
<?php if (auth()->user()->inGroup('admin')) { ?>
<div class="flex-shrink-0 avatar me-3">
<button title="<?= lang("Chat.new_participant") ?>" class="btn btn-primary btn-icon me-2 rounded-circle" id="btn-chat-add-participant"><span class="ti ti-sm ti-user-plus"></span></button>
</div>
<?php } ?>
<div class="flex-grow-1 input-group input-group-merge rounded-pill">
<span class="input-group-text" id="basic-addon-search31">
<i class="ti ti-search"></i>
</span>
<input type="text" class="form-control chat-search-input"
placeholder="Buscar..." aria-label="Buscar..."
aria-describedby="basic-addon-search31" />
</div>
</div>
<!-- <i class="ti ti-x cursor-pointer d-lg-none d-block position-absolute mt-2 me-1 top-0 end-0"
data-overlay data-bs-toggle="sidebar" data-target="#app-chat-contacts"></i> -->
</div>
<div class="sidebar-body">
<!-- CLIENTES -->
<ul class="list-unstyled chat-contact-list mb-0">
<li class="chat-contact-list-item chat-contact-list-item-title">
<h5 class="text-primary mb-0"><?= lang("Chat.participants") ?></h5>
</li>
</ul>
<ul class="list-unstyled chat-contact-list mb-0" id="contact-list">
<div class="d-flex justify-content-center chat-loader">
<div class="sk-wave sk-primary ">
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
</div>
</div>
<!-- <li class="chat-contact-list-item">
<a class="d-flex align-items-center">
<div class="avatar d-block flex-shrink-0">
<span class="avatar-initial rounded-circle bg-label-primary">JJ</span>
</div>
<div class="chat-contact-info flex-grow-1 ms-2">
<h6 class="chat-contact-name text-truncate m-0">Jaime Jimenez</h6>
</div>
</a>
</li> -->
</ul>
</div>
</div>
<!-- /Chat contacts -->
<!-- Chat History -->
<div class="col app-chat-history bg-body">
<div class="chat-history-wrapper ">
<div class="chat-history-header border-bottom">
<div class="d-flex justify-content-between align-items-center">
<div class="d-flex overflow-hidden align-items-center">
<i class="ti ti-menu-2 ti-sm cursor-pointer d-lg-none d-block me-2"
data-bs-toggle="sidebar" data-overlay
data-target="#app-chat-contacts"></i>
<h5 class="text-primary mb-0" id="chat-direct-title"><br></h5>
<div class="chat-contact-info flex-grow-1 ms-2">
<h6 class="m-0"></h6>
<small class="user-status text-muted"></small>
</div>
</div>
<div class="d-flex align-items-center">
<div class="dropdown d-flex align-self-center">
<button class="btn p-0" type="button" id="chat-header-actions"
data-bs-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
<i class="ti ti-dots-vertical"></i>
</button>
<div class="dropdown-menu dropdown-menu-end"
aria-labelledby="chat-header-actions">
<a class="dropdown-item" id="update-message-unviewed" href="javascript:void(0);"><?= lang("Chat.check_as_unviewed") ?></a>
</div>
</div>
</div>
</div>
</div>
<div class="chat-history-body bg-body ">
<div class="d-flex justify-content-center chat-loader">
<div class="sk-wave sk-primary ">
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
</div>
</div>
<ul class="list-unstyled chat-history" id="chat-conversation">
</ul>
</div>
<!-- Chat message form -->
<div class="chat-history-footer shadow-sm">
<div
class="form-send-message d-flex justify-content-between align-items-center">
<input class="form-control message-input border-0 me-3 shadow-none"
placeholder="<?= lang("Chat.write_message_placeholder") ?>" />
<div class="message-actions d-flex align-items-center">
<div class="message-actions d-flex align-items-center">
<a class="btn btn-primary d-flex send-msg-btn" style="color:white"
id="send-msg-btn-direct">
<i class="ti ti-send me-md-1 me-0"></i>
<span class="align-middle d-md-inline-block"><?= lang("Chat.modal.btn_send") ?></span>
</a>
</div>
</div>
</div>
</div>
</div>
<!-- /Chat History -->
<div class="app-overlay"></div>
</div>
</div>
</div>
<?= view("themes/vuexy/components/modals/modalAddNewChatParticipant") ?>
</div>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/spinkit/spinkit.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<?= $this->endSection() ?>
<!------------------------------------------------------->
<!-- Código JS logica -->
<!------------------------------------------------------->
<?= $this->section("additionalExternalJs") ?>
<script type="module" src="<?= site_url('assets/js/safekat/pages/messages/directMessagePage.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
<?= $this->endSection() ?>

View File

@ -1,4 +1,4 @@
<div class="container-xxl flex-grow-1 container-p-y" id="chat-factura" data-id="<?= $modelId ?>">
<div class="col-md-12" id="chat-factura" data-id="<?= $modelId ?>">
<div class="app-chat card overflow-hidden">
<div class="row g-0">
@ -30,9 +30,10 @@
</div>
<!-- Chats -->
<ul class="list-unstyled chat-contact-list" id="chat-list">
<li class="chat-contact-list-item chat-list-item-0 d-none">
<h6 class="text-muted mb-0">No Chats Found</h6>
</li>
<div class="d-flex justify-content-center chat-loader">
</div>
<!-- CHAT LIST -->
</ul>
@ -76,6 +77,15 @@
</div>
</div>
<div class="chat-history-body bg-body ">
<div class="d-flex justify-content-center chat-loader">
<div class="sk-wave sk-primary ">
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
</div>
</div>
<ul class="list-unstyled chat-history" id="chat-conversation">
@ -112,6 +122,7 @@
</div>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/spinkit/spinkit.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<?= $this->endSection() ?>
<!------------------------------------------------------->

View File

@ -37,14 +37,11 @@
<hr class="container-m-nx m-0" />
<div class="sidebar-body">
<!-- Contacts -->
<!-- CLIENTES -->
<ul class="list-unstyled chat-contact-list mb-0" id="contact-list">
<li class="chat-contact-list-item chat-contact-list-item-title">
<h5 class="text-primary mb-0">Contactos</h5>
</li>
<li class="chat-contact-list-item contact-list-item-0 ">
<h6 class="text-muted mb-0">No Contacts Found</h6>
</li>
<!-- <li class="chat-contact-list-item">
<a class="d-flex align-items-center">
<div class="avatar d-block flex-shrink-0">
@ -57,6 +54,7 @@
</li> -->
</ul>
</div>
</div>
<!-- /Chat contacts -->
@ -75,9 +73,8 @@
class="avatar-initial rounded-circle bg-label-primary">P</span>
</div>
<div class="chat-contact-info flex-grow-1 ms-2">
<h6 class="m-0">Departamento Producción</h6>
<small class="user-status text-muted">Consulta sobre el presupuesto
P001</small>
<h6 class="m-0"></h6>
<small class="user-status text-muted"></small>
</div>
</div>
<div class="d-flex align-items-center">
@ -87,13 +84,13 @@
aria-expanded="false">
<i class="ti ti-dots-vertical"></i>
</button>
<div class="dropdown-menu dropdown-menu-end"
<!-- <div class="dropdown-menu dropdown-menu-end"
aria-labelledby="chat-header-actions">
<a class="dropdown-item" href="javascript:void(0);">Silenciar
Conversacion</a>
<a class="dropdown-item" href="javascript:void(0);">Limpiar
Conversacion</a>
</div>
</div> -->
</div>
</div>
</div>
@ -140,6 +137,7 @@
</div>
</div>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/spinkit/spinkit.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<?= $this->endSection() ?>
<!------------------------------------------------------->

View File

@ -1,4 +1,4 @@
<div class="container-xxl flex-grow-1 container-p-y" id="chat-pedido" data-id="<?= $modelId ?>">
<div class="col-md-12" id="chat-pedido" data-id="<?= $modelId ?>">
<div class="app-chat card overflow-hidden">
<div class="row g-0">
@ -31,9 +31,8 @@
</div>
<!-- Chats -->
<ul class="list-unstyled chat-contact-list" id="chat-list">
<li class="chat-contact-list-item chat-list-item-0 d-none">
<h6 class="text-muted mb-0">No Chats Found</h6>
</li>
<!-- CHAT LIST -->
</ul>
@ -76,6 +75,15 @@
</div>
</div>
<div class="chat-history-body bg-body ">
<div class="d-flex justify-content-center chat-loader">
<div class="sk-wave sk-primary ">
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
</div>
</div>
<ul class="list-unstyled chat-history" id="chat-conversation">
@ -113,6 +121,7 @@
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/spinkit/spinkit.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<?= $this->endSection() ?>
<!------------------------------------------------------->

View File

@ -1,4 +1,4 @@
<div id="chat-presupuesto" data-id="<?= $modelId ?>">
<div class="col-md-12" id="chat-presupuesto" data-id="<?= $modelId ?>">
<div class="app-chat card overflow-hidden">
<div class="row g-0">
@ -30,9 +30,8 @@
</div>
<!-- Chats -->
<ul class="list-unstyled chat-contact-list" id="chat-list">
<li class="chat-contact-list-item chat-list-item-0 d-none">
<h6 class="text-muted mb-0">No Chats Found</h6>
</li>
<!-- CHAT LIST -->
</ul>
@ -76,9 +75,17 @@
</div>
</div>
<div class="chat-history-body bg-body ">
<div class="d-flex justify-content-center chat-loader">
<div class="sk-wave sk-primary ">
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
</div>
</div>
<ul class="list-unstyled chat-history" id="chat-conversation">
</ul>
</div>
<!-- Chat message form -->
@ -112,6 +119,7 @@
</div>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/spinkit/spinkit.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<?= $this->endSection() ?>
<!------------------------------------------------------->

View File

@ -0,0 +1,42 @@
<!-- Modal -->
<div class="modal fade" id="modalAddNewChatParticipant" tabindex="-1" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel1"><?= lang('Chat.modal.new_receivers') ?></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="col-12 mb-0">
<?= view("themes/vuexy/components/alerts/alert", ["id" => "alertNewParticipant"]) ?>
</div>
<form id="formNewParticipant">
<div class="form-group">
<div class="row">
<div class="col-12 mb-2">
<label for="select-users" class="required form-label"><?= lang('Chat.modal.new_receivers') ?></label>
<select id="select-users" name="users" class="select2 form-control" multiple required>
</select>
</div>
<div class="col-12 mb-2">
<div class="text-light small fw-medium mb-2"><?= lang("Chat.add_notification") ?></div>
<label class="switch">
<input type="checkbox" class="switch-input" name="notification" id="checkbox-notification-chat" checked />
<span class="switch-toggle-slider">
<span class="switch-on"></span>
<span class="switch-off"></span>
</span>
<span class="switch-label"><?= lang("Chat.add_notification_message") ?></span>
</label>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-label-secondary" data-bs-dismiss="modal"><?= lang('App.global_come_back') ?></button>
<button type="button" id="btn-chat-add-participant-submit" class="btn btn-primary d-none"><?= lang('App.global_save') ?></button>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,47 @@
<!-- Modal -->
<div class="modal fade" id="modalNewDirectMessage" tabindex="-1" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel1"><?= lang('Chat.modal.new_message') ?></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="col-12 mb-0">
<?= view("themes/vuexy/components/alerts/alert", ["id" => "alertDirectMessage"]) ?>
</div>
<form id="formNewDirectMessage">
<div class="form-group">
<div class="row">
<div class="col-12 mb-0">
<label for="new-direct-message-title" class="form-label"><?= lang('Chat.modal.title') ?></label>
<input type="input" rows="4" cols="10" id="new-direct-message-title" name="title" placeholder="Escriba un título" name="title" class="form-control" required />
</div>
<div class="col-12 mb-0">
<label for="description" class="required form-label"><?= lang('Chat.modal.new_message') ?></label>
<textarea type="input" rows="4" cols="10" id="new-direct-message-text" name="message" placeholder="Escribe el mensaje ..." name="message" class="form-control" required></textarea>
</div>
<div class="col-12 mb-0">
<label for="select-users" class="required form-label"><?= lang('Chat.modal.new_receivers') ?></label>
<select id="select-users" name="users" class="form-control" multiple required>
<option value="0"></option>
</select>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-label-secondary" data-bs-dismiss="modal"><?= lang('App.global_come_back') ?></button>
<?php if (auth()->user()->inGroup('admin')) { ?>
<button type="button" id="submit-new-direct-message" class="btn btn-primary"><?= lang('Chat.modal.btn_send') ?></button>
<?php } ?>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,15 @@
<table id="<?= $id ?>" class="table table-striped table-hover" style="width: 100%;">
<thead>
<tr>
<th><?= lang('Chat.datatable_messages.created_at') ?></th>
<th><?= lang('Chat.datatable_messages.updated_at') ?></th>
<th><?= lang('Chat.datatable_messages.title') ?></th>
<th><?= lang('Chat.datatable_messages.creator') ?></th>
<th><?= lang('Chat.datatable_messages.viewed') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr>
</thead>
<tbody>
</tbody>
</table>

View File

@ -158,11 +158,6 @@
<?= lang('Clientes.paisId') ?>
</label>
<select id="paisId" name="pais_id" class="form-control select2bs" style="width: 100%;" >
<?php foreach ($paisList as $item) : ?>
<option value="<?=$item->id ?>"<?=$item->id==$clienteEntity->pais_id ? ' selected':'' ?>>
<?=$item->nombre ?>
</option>
<?php endforeach; ?>
</select>
</div>

View File

@ -34,201 +34,6 @@
<?= $this->endSection() ?>
<?= $this->section("additionalInlineJs") ?>
$(document).keypress(function (e) {
var key = e.which;
if(key == 13) // the enter key code
{ e.preventDefault()
if($('#addressForm').hasClass('show')){
$("#saveAdd").click();
}
else if ($('#convert2Template').hasClass('show')){
$("#saveTemplate").click();
}
else{
$('#saveForm').click();
}
}
});
$('#soporteId').select2({
allowClear: false,
ajax: {
url: '<?= route_to("menuItemsComerciales") ?>',
type: 'post',
dataType: 'json',
data: function (params) {
return {
id: 'id_user',
text: 'first_name',
searchTerm: params.term,
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
},
delay: 60,
processResults: function (response) {
yeniden(response.<?= csrf_token() ?>);
return {
results: response.menu
};
},
cache: true
}
});
$('#formaPagoId').select2({
allowClear: false,
ajax: {
url: '<?= route_to("menuItemsOfFormasDePagos") ?>',
type: 'post',
dataType: 'json',
data: function (params) {
return {
id: 'id',
text: 'nombre',
searchTerm: params.term,
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
},
delay: 60,
processResults: function (response) {
yeniden(response.<?= csrf_token() ?>);
return {
results: response.menu
};
},
cache: true
}
});
$('#paisId').select2({
allowClear: false,
ajax: {
url: '<?= route_to("menuItemsOfPaises") ?>',
type: 'post',
dataType: 'json',
data: function (params) {
return {
id: 'id',
text: 'nombre',
searchTerm: params.term,
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
},
delay: 60,
processResults: function (response) {
yeniden(response.<?= csrf_token() ?>);
return {
results: response.menu
};
},
cache: true
}
});
$('#provinciaId').select2({
allowClear: false,
ajax: {
url: '<?= route_to("menuItemsOfProvincias") ?>',
type: 'post',
dataType: 'json',
data: function (params) {
return {
id: 'id',
text: 'nombre',
searchTerm: params.term,
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
},
delay: 60,
processResults: function (response) {
yeniden(response.<?= csrf_token() ?>);
return {
results: response.menu
};
},
cache: true
}
});
$('#comunidadAutonomaId').select2({
allowClear: false,
ajax: {
url: '<?= route_to("menuItemsOfComunidadesAutonomas") ?>',
type: 'post',
dataType: 'json',
data: function (params) {
return {
id: 'id',
text: 'nombre',
searchTerm: params.term,
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
},
delay: 60,
processResults: function (response) {
yeniden(response.<?= csrf_token() ?>);
return {
results: response.menu
};
},
cache: true
}
});
$('#comercialId').select2({
allowClear: false,
ajax: {
url: '<?= route_to("menuItemsComerciales") ?>',
type: 'post',
dataType: 'json',
data: function (params) {
return {
id: 'id',
text: 'text',
searchTerm: params.term,
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
},
delay: 60,
processResults: function (response) {
yeniden(response.<?= csrf_token() ?>);
return {
results: response.menu
};
},
cache: true
}
});
<?= $this->endSection() ?>
<?=$this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/datatables-editor/editor.dataTables.min.css') ?>">
<link rel="stylesheet" href="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.css") ?>">
@ -236,3 +41,7 @@
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/safekat.css') ?>">
<?=$this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script type="module" src="<?= site_url('assets/js/safekat/pages/cliente/cliente.js?'. 'token' . '='. (csrf_token() ?? "token")) ?>"></script>
<?= $this->endSection() ?>

View File

@ -278,14 +278,26 @@
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
buttons: [ {
className: 'btn btn-primary me-sm-3 me-1',
extend: "createInline",
editor: editor,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
}
buttons: [
{
extend: 'collection',
text: 'Exportar',
buttons:[
'copy', 'csv', 'excel', 'print', {
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4'
}
]
},
{
className: 'btn btn-primary me-sm-3 me-1',
extend: "createInline",
editor: editor,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
}
} ]
} );

View File

@ -1,36 +1,55 @@
<div class="row">
<div class="col-md-12 col-lg-12 px-4">
<div class="mb-3">
<label for="nombre" class="form-label">
<?=lang('PapelGenerico.nombre') ?>*
</label>
<input type="text" id="nombre" name="nombre" required maxLength="255" class="form-control" value="<?=old('nombre', $papelGenerico->nombre) ?>">
</div><!--//.mb-3 -->
<div class="row">
<div class="col-md-12 col-lg-12 px-4">
<div class="mb-3">
<label for="nombre" class="form-label">
<?= lang('PapelGenerico.nombre') ?>*
</label>
<input type="text" id="nombre" name="nombre" required maxLength="255" class="form-control"
value="<?= old('nombre', $papelGenerico->nombre) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="code" class="form-label">
<?=lang('PapelGenerico.code') ?>
</label>
<input type="text" id="code" name="code" maxLength="5" class="form-control" value="<?=old('code', $papelGenerico->code) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="code" class="form-label">
<?= lang('PapelGenerico.code') ?>
</label>
<input type="text" id="code" name="code" maxLength="5" class="form-control"
value="<?= old('code', $papelGenerico->code) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="codeOt" class="form-label">
<?=lang('PapelGenerico.codeOt') ?>
</label>
<input type="text" id="codeOt" name="code_ot" maxLength="5" class="form-control" value="<?=old('code_ot', $papelGenerico->code_ot) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="codeOt" class="form-label">
<?= lang('PapelGenerico.codeOt') ?>
</label>
<input type="text" id="codeOt" name="code_ot" maxLength="5" class="form-control"
value="<?= old('code_ot', $papelGenerico->code_ot) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<div class="mb-3">
<div class="form-check">
<label for="showInClient" class="form-check-label">
<input type="checkbox" id="showInClient" name="show_in_client" value="1" class="form-check-input"<?=$papelGenerico->show_in_client== true ? 'checked' : ''; ?>>
<?=lang('PapelGenerico.showInClient') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<label for="showInClient" class="form-check-label">
<?= lang('PapelGenerico.showInClient') ?>
</label>
<input type="checkbox" id="showInClient" name="show_in_client" value="1" class="form-check-input"
<?= $papelGenerico->show_in_client_special == true ? 'disabled' : ''; ?>
<?= $papelGenerico->show_in_client == true ? 'checked' : ''; ?>>
</div><!--//.col -->
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!-- //.row -->
<div class="mb-3">
<div class="form-check">
<label for="showInClientSpecial" class="form-check-label">
<?= lang('PapelGenerico.showInClientSpecial') ?>
</label>
<input type="checkbox" id="showInClientSpecial" name="show_in_client_special" value="1"
class="form-check-input" <?= $papelGenerico->show_in_client_special == true ? 'checked' : ''; ?>>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
</div><!-- //.row -->

View File

@ -1,165 +1,213 @@
<div class="row">
<div class="col-md-12 col-lg-6 px-4">
<div class="row">
<div class="col-md-12 col-lg-6 px-4">
<div class="mb-3">
<label for="nombre" class="form-label">
<?= lang('PapelImpresion.nombre') ?>*
</label>
<input type="text" id="nombre" name="nombre" required maxLength="255" class="form-control" value="<?= old('nombre', $papelImpresion->nombre) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="nombre" class="form-label">
<?= lang('PapelImpresion.nombre') ?>*
</label>
<input type="text" id="nombre" name="nombre" required maxLength="255" class="form-control"
value="<?= old('nombre', $papelImpresion->nombre) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="referencia" class="form-label">
<?= lang('PapelImpresion.referencia') ?>
</label>
<input type="text" id="referencia" name="referencia" maxLength="13" class="form-control" value="<?= old('referencia', $papelImpresion->referencia) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="referencia" class="form-label">
<?= lang('PapelImpresion.referencia') ?>
</label>
<input type="text" id="referencia" name="referencia" maxLength="13" class="form-control"
value="<?= old('referencia', $papelImpresion->referencia) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="mano" class="form-label">
<?= lang('PapelImpresion.mano') ?>*
</label>
<input type="number" id="mano" name="mano" required maxLength="8" step="0.01" class="form-control" value="<?= old('mano', $papelImpresion->mano) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="mano" class="form-label">
<?= lang('PapelImpresion.mano') ?>*
</label>
<input type="number" id="mano" name="mano" required maxLength="8" step="0.01" class="form-control"
value="<?= old('mano', $papelImpresion->mano) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="precioTonelada" class="form-label">
<?= lang('PapelImpresion.precioTonelada') ?>*
</label>
<input type="number" id="precioTonelada" name="precio_tonelada" required maxLength="31" step="0.01" class="form-control" value="<?= old('precio_tonelada', $papelImpresion->precio_tonelada) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="precioTonelada" class="form-label">
<?= lang('PapelImpresion.precioTonelada') ?>*
</label>
<input type="number" id="precioTonelada" name="precio_tonelada" required maxLength="31" step="0.01"
class="form-control" value="<?= old('precio_tonelada', $papelImpresion->precio_tonelada) ?>">
</div><!--//.mb-3 -->
</div><!--//.col -->
</div><!--//.col -->
<div class="col-md-12 col-lg-6 px-4">
<div class="mb-3">
<label for="papelGenericoId" class="form-label">
<?= lang('PapelImpresion.papelGenericoId') ?>*
</label>
<select id="papelGenericoId" name="papel_generico_id" required class="form-control select2" style="width: 100%;">
<div class="col-md-12 col-lg-6 px-4">
<div class="mb-3">
<label for="papelGenericoId" class="form-label">
<?= lang('PapelImpresion.papelGenericoId') ?>*
</label>
<select id="papelGenericoId" name="papel_generico_id" required class="form-control select2"
style="width: 100%;">
<?php if (isset($papelGenericoList) && is_array($papelGenericoList) && !empty($papelGenericoList)) :
foreach ($papelGenericoList as $k => $v) : ?>
<option value="<?= $k ?>" <?= $k == $papelImpresion->papel_generico_id ? ' selected' : '' ?>>
<?= $v ?>
</option>
<?php endforeach;
endif; ?>
</select>
</div><!--//.mb-3 -->
<?php if (isset($papelGenericoList) && is_array($papelGenericoList) && !empty($papelGenericoList)):
foreach ($papelGenericoList as $k => $v): ?>
<option value="<?= $k ?>" <?= $k == $papelImpresion->papel_generico_id ? ' selected' : '' ?>>
<?= $v ?>
</option>
<?php endforeach;
endif; ?>
</select>
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="gramaje" class="form-label">
<?= lang('PapelImpresion.gramaje') ?>*
</label>
<input type="number" id="gramaje" name="gramaje" required maxLength="31" step="0.01" class="form-control" value="<?= old('gramaje', $papelImpresion->gramaje) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="gramaje" class="form-label">
<?= lang('PapelImpresion.gramaje') ?>*
</label>
<input type="number" id="gramaje" name="gramaje" required maxLength="31" step="0.01" class="form-control"
value="<?= old('gramaje', $papelImpresion->gramaje) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="espesor" class="form-label">
<?= lang('PapelImpresion.espesor') ?>*
</label>
<input type="number" id="espesor" name="espesor" required placeholder="0.00" maxLength="8" step="0.01" class="form-control" value="<?= old('espesor', $papelImpresion->espesor) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="espesor" class="form-label">
<?= lang('PapelImpresion.espesor') ?>*
</label>
<input type="number" id="espesor" name="espesor" required placeholder="0.00" maxLength="8" step="0.01"
class="form-control" value="<?= old('espesor', $papelImpresion->espesor) ?>">
</div><!--//.mb-3 -->
</div><!--//.col -->
</div><!--//.col -->
</div><!-- //.row -->
</div><!-- //.row -->
<div class="row">
<div class="col-md-12 col-lg-6 px-4">
<div class="mb-3">
<div class="form-check">
<div class="row">
<div class="col-md-12 col-lg-6 px-4">
<div class="mb-3">
<div class="form-check">
<label for="bn" class="form-check-label">
<input type="checkbox" id="bn" name="bn" value="1" class="form-check-input" <?= $papelImpresion->bn == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.bn') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<label for="bn" class="form-check-label">
<input type="checkbox" id="bn" name="bn" value="1" class="form-check-input"
<?= $papelImpresion->bn == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.bn') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<div class="mb-3">
<div class="form-check">
<label for="cubierta" class="form-check-label">
<input type="checkbox" id="cubierta" name="cubierta" value="1" class="form-check-input" <?= $papelImpresion->cubierta == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.cubierta') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<label for="interior" class="form-check-label">
<input type="checkbox" id="interior" name="interior" value="1" class="form-check-input"
<?= $papelImpresion->interior == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.interior') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<div class="mb-3">
<div class="form-check">
<label for="guardas" class="form-check-label">
<input type="checkbox" id="guardas" name="guardas" value="1" class="form-check-input" <?= $papelImpresion->guardas == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.guardas') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<label for="use_for_tapa_dura" class="form-check-label">
<input <?= $papelImpresion->cubierta? ' ' : 'disabled ' ?> type="checkbox" id="useForTapaDura" name="use_for_tapa_dura" value="1" class="form-check-input"
<?= $papelImpresion->use_for_tapa_dura == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.use_for_tapa_dura') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<div class="mb-3">
<div class="form-check">
<label for="rotativa" class="form-check-label">
<input type="checkbox" id="rotativa" name="rotativa" value="1" class="form-check-input" <?= $papelImpresion->rotativa == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.rotativa') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<label for="guardas" class="form-check-label">
<input type="checkbox" id="guardas" name="guardas" value="1" class="form-check-input"
<?= $papelImpresion->guardas == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.guardas') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<div class="mb-3">
<div class="form-check">
<label for="isActivo" class="form-check-label">
<input type="checkbox" id="isActivo" name="isActivo" value="1" class="form-check-input" <?= $papelImpresion->isActivo == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.activo') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
<label for="rotativa" class="form-check-label">
<input type="checkbox" id="rotativa" name="rotativa" value="1" class="form-check-input"
<?= $papelImpresion->rotativa == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.rotativa') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="col-md-12 col-lg-6 px-4">
<div class="mb-3">
<div class="form-check">
<div class="mb-3">
<div class="form-check">
<label for="color" class="form-check-label">
<input type="checkbox" id="color" name="color" value="1" class="form-check-input" <?= $papelImpresion->color == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.color') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<label for="isActivo" class="form-check-label">
<input type="checkbox" id="isActivo" name="isActivo" value="1" class="form-check-input"
<?= $papelImpresion->isActivo == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.activo') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<div class="mb-3">
<div class="form-check">
<label for="useInClient" class="form-check-label">
<?= lang('PapelImpresion.useInClient') ?>
</label>
<input type="checkbox" id="useInClient" name="use_in_client" value="1" class="form-check-input"
<?= $papelImpresion->use_in_client == true ? 'checked' : ''; ?>>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
<label for="sobrecubierta" class="form-check-label">
<input type="checkbox" id="sobrecubierta" name="sobrecubierta" value="1" class="form-check-input" <?= $papelImpresion->sobrecubierta == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.sobrecubierta') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="col-md-12 col-lg-6 px-4">
<div class="mb-3">
<div class="form-check">
<div class="mb-3">
<div class="form-check">
<label for="color" class="form-check-label">
<input type="checkbox" id="color" name="color" value="1" class="form-check-input"
<?= $papelImpresion->color == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.color') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<label for="inkjet" class="form-check-label">
<input type="checkbox" id="inkjet" name="inkjet" value="1" class="form-check-input" <?= $papelImpresion->inkjet == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.inkjet') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<div class="mb-3">
<div class="form-check">
<label for="cubierta" class="form-check-label">
<input type="checkbox" id="cubierta" name="cubierta" value="1" class="form-check-input"
<?= $papelImpresion->cubierta == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.cubierta') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<label for="defecto" class="form-check-label">
<input type="checkbox" id="defecto" name="defecto" value="1" class="form-check-input" <?= $papelImpresion->defecto == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.defecto') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
</div><!-- //.row -->
<label for="sobrecubierta" class="form-check-label">
<input type="checkbox" id="sobrecubierta" name="sobrecubierta" value="1" class="form-check-input"
<?= $papelImpresion->sobrecubierta == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.sobrecubierta') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<label for="inkjet" class="form-check-label">
<input type="checkbox" id="inkjet" name="inkjet" value="1" class="form-check-input"
<?= $papelImpresion->inkjet == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.inkjet') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<label for="defecto" class="form-check-label">
<input type="checkbox" id="defecto" name="defecto" value="1" class="form-check-input"
<?= $papelImpresion->defecto == true ? 'checked' : ''; ?>>
<?= lang('PapelImpresion.defecto') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
</div><!-- //.row -->

View File

@ -134,6 +134,16 @@
window.location.href = `/configuracion/papelesimpresion/edit/${$(this).attr('data-id')}`;
});
$('#showInClientSpecial').on('change', function() {
if($(this).is(':checked')) {
$('#showInClient').prop('disabled', true);
$('#showInClient').prop('checked', true);
}
else{
$('#showInClient').prop('disabled', false);
}
});
<?=$this->endSection() ?>

View File

@ -20,6 +20,7 @@
<th><?= lang('PapelGenerico.code') ?></th>
<th><?= lang('PapelGenerico.codeOt') ?></th>
<th><?= lang('PapelGenerico.showInClient') ?></th>
<th><?= lang('PapelGenerico.showInClientSpecial') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr>
</thead>
@ -90,13 +91,14 @@
{ 'data': 'code' },
{ 'data': 'code_ot' },
{ 'data': 'show_in_client' },
{ 'data': 'show_in_client_special' },
{ 'data': actionBtns }
]
});
theTable.on( 'draw.dt', function () {
const boolCols = [3];
const boolCols = [3, 4];
for (let coln of boolCols) {
theTable.column(coln, { page: 'current' }).nodes().each( function (cell, i) {
cell.innerHTML = cell.innerHTML == '1' ? '<i class="ti ti-check"></i>' : '';

View File

@ -403,6 +403,16 @@
`;
};
$('#cubierta').on('change', function() {
if($(this).is(':checked')) {
$('#useForTapaDura').prop('disabled', false);
$('#useForTapaDura').prop('checked', false);
}
else{
$('#useForTapaDura').prop('disabled', true);
}
});
// Etiquetas para las tipologias
const tipoTypes = [
@ -757,7 +767,7 @@
}
})
<?= $this->endSection() ?>
<?= $this->endSection() ?>
<?php endif; ?>

View File

@ -21,14 +21,17 @@
<th><?= lang('PapelImpresion.nombre') ?></th>
<th><?= lang('PapelGenerico.papelGenerico') ?></th>
<th><?= lang('PapelImpresion.gramaje') ?></th>
<th><?= lang('PapelImpresion.interior') ?></th>
<th><?= lang('PapelImpresion.bn') ?></th>
<th><?= lang('PapelImpresion.color') ?></th>
<th><?= lang('PapelImpresion.cubierta') ?></th>
<th><?= lang('PapelImpresion.use_for_tapa_dura') ?></th>
<th><?= lang('PapelImpresion.sobrecubierta') ?></th>
<th><?= lang('PapelImpresion.guardas') ?></th>
<th><?= lang('PapelImpresion.inkjet') ?></th>
<th><?= lang('PapelImpresion.rotativa') ?></th>
<th><?= lang('PapelImpresion.activo') ?></th>
<th><?= lang('PapelImpresion.useInClient') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr>
</thead>
@ -98,21 +101,24 @@
{ 'data': 'nombre' },
{ 'data': 'papel_generico_id' },
{ 'data': 'gramaje' },
{ 'data': 'interior' },
{ 'data': 'bn' },
{ 'data': 'color' },
{ 'data': 'cubierta' },
{ 'data': 'use_for_tapa_dura'},
{ 'data': 'sobrecubierta' },
{ 'data': 'guardas' },
{ 'data': 'inkjet' },
{ 'data': 'rotativa' },
{ 'data': 'isActivo' },
{ 'data': 'use_in_client' },
{ 'data': actionBtns }
]
});
theTable.on( 'draw.dt', function () {
const boolCols = [3, 4, 5, 6, 7, 8, 9, 10];
const boolCols = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
for (let coln of boolCols) {
theTable.column(coln, { page: 'current' }).nodes().each( function (cell, i) {
cell.innerHTML = cell.innerHTML == '1' ? '<i class="ti ti-check"></i>' : '';

View File

@ -1,10 +1,73 @@
<?= $this->include("themes/_commonPartialsBs/select2bs5") ?>
<?= $this->include("themes/_commonPartialsBs/datatables") ?>
<?= $this->include('themes/_commonPartialsBs/select2bs5') ?>
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section('content'); ?>
<!--Content Body-->
<div class="container-xxl flex-grow-1 container-p-y">
<?= view("themes/vuexy/components/chat_general", data: ["modelId" => null]) ?>
<div class="row">
<div class="col-md-12">
<div class="nav-tabs-shadow nav-align-top">
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<button type="button" class="nav-link active" role="tab" id="navs-top-align-directos-tab" data-bs-toggle="tab" data-bs-target="#navs-top-align-directos">Directos</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" id="navs-top-align-presupuestos-tab" data-bs-toggle="tab" data-bs-target="#navs-top-align-presupuestos">Presupuestos</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" id="navs-top-align-pedidos-tab" data-bs-toggle="tab" data-bs-target="#navs-top-align-pedidos">Pedidos</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" id="navs-top-align-facturas-tab" data-bs-toggle="tab" data-bs-target="#navs-top-align-facturas">Facturas</button>
</li>
</ul>
<div class="tab-content" id="message-datatables-container">
<div class="tab-pane fade show active" id="navs-top-align-directos">
<?php if (auth()->user()->inGroup('admin')) { ?>
<div class="row">
<div class="col-md-12 d-flex justify-content-start">
<button class="btn btn-primary" id="btn-new-message"><span class="ti ti-md ti-plus"></span>Nuevo mensaje</button>
</div>
</div>
<?php } ?>
<?= view("themes/vuexy/components/tables/messages_table", ["id" => "tableMessages"]) ?>
</div>
<div class="tab-pane fade show" id="navs-top-align-presupuestos">
<?= view("themes/vuexy/components/tables/messages_table", ["id" => "tablePresupuestoMessages"]) ?>
</div>
<div class="tab-pane fade show" id="navs-top-align-pedidos">
<?= view("themes/vuexy/components/tables/messages_table", ["id" => "tablePedidoMessages"]) ?>
</div>
<div class="tab-pane fade show" id="navs-top-align-facturas">
<?= view("themes/vuexy/components/tables/messages_table", ["id" => "tableFacturaMessages"]) ?>
</div>
</div>
<!--//.card -->
</div>
</div>
<!--//.col -->
</div>
<?= view("themes/vuexy/components/modals/modalNewDirectMessage") ?>
<?= $this->endSection() ?>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/FormValidation.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/Bootstrap5.min.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/AutoFocus.min.js") ?>"></script>
<script type="module" src="<?= site_url('assets/js/safekat/pages/configuracion/messages/index.js') ?>">
</script>
<?= $this->endSection() ?>

View File

@ -0,0 +1,27 @@
<?= $this->include('themes/_commonPartialsBs/select2bs5') ?>
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section('content'); ?>
<!--Content Body-->
<div class="row">
<?= view("themes/vuexy/components/chat_direct",["modelId" => $chatId,"userId" => auth()->user()->id]) ?>
</div>
<?= $this->endSection() ?>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/FormValidation.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/Bootstrap5.min.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/AutoFocus.min.js") ?>"></script>
</script>
<?= $this->endSection() ?>

View File

@ -0,0 +1,30 @@
<?= $this->include('themes/_commonPartialsBs/select2bs5') ?>
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section('content'); ?>
<!--Content Body-->
<div class="row">
<?= view("themes/vuexy/components/chat_factura",["modelId" => $modelId]) ?>
</div>
<?= $this->endSection() ?>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/FormValidation.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/Bootstrap5.min.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/AutoFocus.min.js") ?>"></script>
</script>
<?= $this->endSection() ?>

View File

@ -0,0 +1,28 @@
<?= $this->include('themes/_commonPartialsBs/select2bs5') ?>
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section('content'); ?>
<!--Content Body-->
<div class="row">
<?= view("themes/vuexy/components/internal_messages", data: ["modelId" => $modelId, "type" => $type]) ?>
</div>
<?= $this->endSection() ?>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script type="module" src="<?= site_url("assets/js/safekat/pages/messages/internalMessagePage.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/FormValidation.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/Bootstrap5.min.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/AutoFocus.min.js") ?>"></script>
</script>
<?= $this->endSection() ?>

View File

@ -0,0 +1,27 @@
<?= $this->include('themes/_commonPartialsBs/select2bs5') ?>
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section('content'); ?>
<!--Content Body-->
<div class="row">
<?= view("themes/vuexy/components/chat_pedido",["modelId" => $modelId]) ?>
</div>
<?= $this->endSection() ?>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/FormValidation.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/Bootstrap5.min.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/AutoFocus.min.js") ?>"></script>
</script>
<?= $this->endSection() ?>

View File

@ -0,0 +1,27 @@
<?= $this->include('themes/_commonPartialsBs/select2bs5') ?>
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section('content'); ?>
<!--Content Body-->
<div class="row">
<?= view("themes/vuexy/components/chat_presupuesto", ["modelId" => $modelId]) ?>
</div>
<?= $this->endSection() ?>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/FormValidation.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/Bootstrap5.min.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/AutoFocus.min.js") ?>"></script>
</script>
<?= $this->endSection() ?>

View File

@ -125,7 +125,7 @@ var tableOfLineasPedido = new DataTable('#tableOfLineasPedido',{
$(document).on('click', '.btn-view', function(e) {
<?php if (auth()->user()->inGroup('admin') || auth()->user()->inGroup('beta')): ?>
var url = '<?= route_to('editarPresupuesto', ':id') ?>';
var url = '<?= route_to('editarPresupuestoAdmin', ':id') ?>';
<?php else: ?>
var url = '<?= route_to('editarPresupuestoCliente2', ':id') ?>';
<?php endif; ?>

View File

@ -9,7 +9,7 @@
<div id="accordionEnviosTip" class="accordion-collapse collapse show" data-bs-parent="#accordionEnvios">
<div class="accordion-body">
<div id='alert-envios'></div>
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_presupuestoDireccionesForm") ?>
<?= view("themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm") ?>
<div id='rowTable' class='row'>
<table id="tableOfDireccionesEnvio" class="table dt-responsive dataTable px-2 update-resumen-presupuesto" style="width: 95%;">
<thead>

View File

@ -45,7 +45,7 @@
<div class="divider divider-dark text-start mb-1">
<div class="divider-text">
<h5><?= lang("Presupuestos.papelesComparadorCosidoTapaBlanda") ?></h5>
<h5><?= lang("Presupuestos.papelesComparadorPresupuestoAdmin") ?></h5>
</div>
</div>
@ -587,7 +587,7 @@
allowClear: false,
minimumResultsForSearch: Infinity,
ajax: {
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
url: '<?= route_to("menuItemsOfPresupuestoAdmin") ?>',
type: 'post',
dataType: 'json',
@ -620,7 +620,7 @@
allowClear: false,
minimumResultsForSearch: Infinity,
ajax: {
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
url: '<?= route_to("menuItemsOfPresupuestoAdmin") ?>',
type: 'post',
dataType: 'json',
@ -658,7 +658,7 @@
allowClear: false,
minimumResultsForSearch: Infinity,
ajax: {
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
url: '<?= route_to("menuItemsOfPresupuestoAdmin") ?>',
type: 'post',
dataType: 'json',
@ -687,7 +687,7 @@
allowClear: false,
minimumResultsForSearch: Infinity,
ajax: {
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
url: '<?= route_to("menuItemsOfPresupuestoAdmin") ?>',
type: 'post',
data: function (params) {
@ -1104,7 +1104,7 @@
$.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -1173,7 +1173,7 @@
$.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -1252,7 +1252,7 @@
$.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -1331,7 +1331,7 @@
$.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -1412,7 +1412,7 @@
$.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -1609,7 +1609,7 @@
allowClear: false,
minimumResultsForSearch: Infinity,
ajax: {
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
url: '<?= route_to("menuItemsOfPresupuestoAdmin") ?>',
type: 'post',
dataType: 'json',
@ -1653,7 +1653,7 @@
allowClear: false,
minimumResultsForSearch: Infinity,
ajax: {
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
url: '<?= route_to("menuItemsOfPresupuestoAdmin") ?>',
type: 'post',
dataType: 'json',
@ -1699,7 +1699,7 @@
allowClear: false,
minimumResultsForSearch: Infinity,
ajax: {
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
url: '<?= route_to("menuItemsOfPresupuestoAdmin") ?>',
type: 'post',
dataType: 'json',
@ -1745,7 +1745,7 @@
allowClear: false,
minimumResultsForSearch: Infinity,
ajax: {
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
url: '<?= route_to("menuItemsOfPresupuestoAdmin") ?>',
type: 'post',
dataType: 'json',
@ -1787,7 +1787,7 @@
allowClear: false,
minimumResultsForSearch: Infinity,
ajax: {
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
url: '<?= route_to("menuItemsOfPresupuestoAdmin") ?>',
type: 'post',
dataType: 'json',
@ -1834,7 +1834,7 @@
allowClear: false,
minimumResultsForSearch: Infinity,
ajax: {
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
url: '<?= route_to("menuItemsOfPresupuestoAdmin") ?>',
type: 'post',
dataType: 'json',

View File

@ -777,7 +777,7 @@ function convertirTiempo(horas){
// se convierte a formato hh:mm:ss
const h = Math.floor(seconds / 3600);
const minutos = Math.floor((seconds % 3600) / 60);
const segundos = seconds % 60;
const segundos = Math.round(seconds % 60, 0);
return h + ':' + minutos + ':' + segundos;
}
else{

View File

@ -318,6 +318,8 @@
init_servicio_extra()
/* ELIMINADO PARA COMPROBAR EL MAXIMO DE SOLAPAS DESDE EL BACKEND
PENDIENTE
$('.solapas_cubierta').on('change', function(){
const ancho_libro = getDimensionLibro().ancho;
@ -337,6 +339,7 @@
}
$('#compGramajeCubierta').trigger('change')
})
@ -360,5 +363,7 @@
$('#compGramajeSobrecubierta').trigger('change')
})
*/
<?= $this->endSection() ?>

View File

@ -275,7 +275,7 @@ async function fill_bbdd_from_lp(presupuesto_id){
await $.ajax({
type: 'post',
url: window.routes_lp.updateDataOfCosidotapablanda,
url: window.routes_lp.updateDataOfPresupuestoAdmin,
data: datos,
dataType: 'json',
@ -1528,7 +1528,7 @@ async function set_lp_bn_gramaje(mantenerSeleccion = false){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_bn_gramaje').empty()
},
@ -1568,7 +1568,7 @@ async function set_lp_bn_papelImpresion(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_bn_papelImpresion').empty()
$('#lp_bn_maquina').empty()
@ -1604,7 +1604,7 @@ async function set_lp_bn_maquina(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_bn_maquina').empty()
clear_lp_bn(false)
@ -1676,7 +1676,7 @@ async function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){
await $.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -1903,7 +1903,7 @@ async function set_lp_color_gramaje(mantenerSeleccion = false){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_color_gramaje').empty()
},
@ -1941,7 +1941,7 @@ async function set_lp_color_papelImpresion(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_color_papelImpresion').empty()
$('#lp_color_maquina').empty()
@ -1977,7 +1977,7 @@ async function set_lp_color_maquina(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_color_maquina').empty()
clear_lp_color(false)
@ -2048,7 +2048,7 @@ async function calcularPresupuesto_color(input_data={}, updatedTipologias = fals
await $.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -2269,7 +2269,7 @@ async function set_lp_bnhq_gramaje(mantenerSeleccion = false){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_bnhq_gramaje').empty()
},
@ -2307,7 +2307,7 @@ async function set_lp_bnhq_papelImpresion(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_bnhq_papelImpresion').empty()
$('#lp_bnhq_maquina').empty()
@ -2343,7 +2343,7 @@ async function set_lp_bnhq_maquina(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_bnhq_maquina').empty()
clear_lp_bnhq(false)
@ -2484,7 +2484,7 @@ async function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false
await $.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -2633,7 +2633,7 @@ async function set_lp_colorhq_gramaje(mantenerSeleccion = false){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_colorhq_gramaje').empty()
},
@ -2671,7 +2671,7 @@ async function set_lp_colorhq_papelImpresion(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_colorhq_papelImpresion').empty()
$('#lp_colorhq_maquina').empty()
@ -2707,7 +2707,7 @@ async function set_lp_colorhq_maquina(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_colorhq_maquina').empty()
clear_lp_colorhq(false)
@ -2854,7 +2854,7 @@ async function calcularPresupuesto_colorhq(input_data={}, updatedTipologias = fa
await $.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -3004,7 +3004,7 @@ async function set_lp_rot_bn_gramaje(mantenerSeleccion = false){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_rot_bn_gramaje').empty()
},
@ -3042,7 +3042,7 @@ async function set_lp_rot_bn_papelImpresion(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_rot_bn_papelImpresion').empty()
$('#lp_rot_bn_maquina').empty()
@ -3077,7 +3077,7 @@ async function set_lp_rot_bn_maquina(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_rot_bn_maquina').empty()
clear_lp_rot_bn(false)
@ -3192,7 +3192,7 @@ async function calcularPresupuesto_rot_bn(fromComparador=false, updatedTipologia
await $.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -3376,7 +3376,7 @@ async function set_lp_rot_color_gramaje(mantenerSeleccion = false){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_rot_color_gramaje').empty()
},
@ -3414,7 +3414,7 @@ async function set_lp_rot_color_papelImpresion(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_rot_color_papelImpresion').empty()
$('#lp_rot_color_maquina').empty()
@ -3450,7 +3450,7 @@ async function set_lp_rot_color_maquina(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_rot_color_maquina').empty()
clear_lp_rot_color(false)
@ -3571,7 +3571,7 @@ async function calcularPresupuesto_rot_color(fromComparador=false, updatedTipolo
await $.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -3753,7 +3753,7 @@ async function set_lp_cubierta_gramaje(mantenerSeleccion = false){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_cubierta_gramaje').empty()
},
@ -3792,7 +3792,7 @@ async function set_lp_cubierta_papelImpresion(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_cubierta_papelImpresion').empty()
$('#lp_cubierta_maquina').empty()
@ -3829,7 +3829,7 @@ async function set_lp_cubierta_maquina(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_cubierta_maquina').empty()
clear_lp_cubierta(false)
@ -3919,7 +3919,7 @@ async function calcularPresupuesto_cubierta(fromComparador=false, input_data={})
await $.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -4066,7 +4066,7 @@ async function set_lp_sobrecubierta_gramaje(mantenerSeleccion = false){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_sobrecubierta_gramaje').empty()
},
@ -4105,7 +4105,7 @@ async function set_lp_sobrecubierta_papelImpresion(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_sobrecubierta_papelImpresion').empty()
$('#lp_sobrecubierta_maquina').empty()
@ -4142,7 +4142,7 @@ async function set_lp_sobrecubierta_maquina(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_sobrecubierta_maquina').empty()
clear_lp_sobrecubierta(false)
@ -4215,7 +4215,7 @@ async function calcularPresupuesto_sobrecubierta(fromComparador=false, input_dat
await $.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -4436,7 +4436,7 @@ async function calcularPresupuesto_guardas(fromComparador=false, input_data={}){
await $.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
@ -4609,7 +4609,7 @@ async function set_lp_guardas_maquina(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_guardas_maquina').empty()
clear_lp_guardas(false)
@ -4640,7 +4640,7 @@ async function set_lp_guardas_papelImpresion(){
await $.ajax({
type: 'post',
url: window.routes_lp.menuItemsOfCosidotapablanda,
url: window.routes_lp.menuItemsOfPresupuestoAdmin,
beforeSend: function() {
$('#lp_guardas_papelImpresion').empty()
$('#lp_guardas_maquina').empty()

View File

@ -90,8 +90,8 @@ window.papelGenericoRotativaColorList = <?php echo json_encode($papelGenericoRot
window.lineasPresupuestoList = <?php echo json_encode($lineasPresupuesto); ?>;
window.routes_lp = {
menuItemsOfCosidotapablanda: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
updateDataOfCosidotapablanda: '<?= route_to("updateDataOfCosidotapablanda") ?>',
menuItemsOfPresupuestoAdmin: '<?= route_to("menuItemsOfPresupuestoAdmin") ?>',
updateDataOfPresupuestoAdmin: '<?= route_to("updateDataOfPresupuestoAdmin") ?>',
}

View File

@ -10,7 +10,7 @@
<div class="card card-info">
<div class="card-header">
<h3 class="card-title"><?= $pageTitle ?></h3>
<?=anchor(route_to('newCosidotapablanda', $tipo_impresion_id), lang('Basic.global.addNew').' '.lang('Presupuestos.presupuesto'), ['class'=>'btn btn-primary ']); ?>
<?=anchor(route_to('newPresupuestoAdmin', $tipo_impresion_id), lang('Basic.global.addNew').' '.lang('Presupuestos.presupuesto'), ['class'=>'btn btn-primary ']); ?>
</div><!--//.card-header -->
<div class="card-body">
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
@ -164,7 +164,7 @@ theTable = $('#tableOfPresupuestos').DataTable({
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
ajax : $.fn.dataTable.pipeline( {
url: '<?= route_to('dataTableOfCosidotapablanda') ?>',
url: '<?= route_to('dataTableOfPresupuestoAdmin') ?>',
data: function (d) {
d.tipo_impresion_id = '<?php echo $tipo_impresion_id; ?>';
},
@ -231,7 +231,7 @@ theTable.on( 'draw.dt', function () {
$(document).on('click', '.btn-edit', function(e) {
window.location.href = `/presupuestos/cosidotapablanda/edit/${$(this).attr('data-id')}/`;
window.location.href = `/presupuestoadmin/edit/${$(this).attr('data-id')}/`;
});
@ -245,7 +245,7 @@ $(document).on('click', '.btn-remove', function(e) {
const row = $(this).closest('tr');
if ($.isNumeric(dataId)) {
$.ajax({
url: `/presupuestos/cosidotapablanda/delete/${dataId}`,
url: `/presupuestoadmin/delete/${dataId}`,
method: 'GET',
}).done((data, textStatus, jqXHR) => {
$('#confirm2delete').modal('toggle');

View File

@ -25,18 +25,18 @@
value="<?= $isCosido ?>"></input>
<input type="hidden" name="POD" id="POD" class="form-control"
value="<?= $POD ?>"></input>
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoItems") ?>
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems") ?>
<?= view("themes/vuexy/form/presupuestos/admin/_datosPresupuestoItems") ?>
<?= view("themes/vuexy/form/presupuestos/admin/_datosLibroItems") ?>
<?php if (str_contains($formAction, 'edit')): ?>
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems") ?>
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems") ?>
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_previewItems") ?>
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems") ?>
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios") ?>
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_comentariosItems") ?>
<?= view("themes/vuexy/form/presupuestos/admin/_datosPresupuestoClienteItems") ?>
<?= view("themes/vuexy/form/presupuestos/admin/_lineasPresupuestoItems") ?>
<?= view("themes/vuexy/form/presupuestos/admin/_previewItems") ?>
<?= view("themes/vuexy/form/presupuestos/admin/_datosServiciosItems") ?>
<?= view("themes/vuexy/form/presupuestos/admin/_datosEnvios") ?>
<?= view("themes/vuexy/form/presupuestos/admin/_comentariosItems") ?>
<?= view("themes/vuexy/components/chat_internal_presupuesto",data:["modelId" => $presupuestoId,"type" => "presupuesto"]) ?>
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_resumenPresupuestoItems") ?>
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_tiradasAlternativasItems") ?>
<?= view("themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems") ?>
<?= view("themes/vuexy/form/presupuestos/admin/_tiradasAlternativasItems") ?>
<?php else: ?>
<input type="hidden" name="total_presupuesto" id="total_presupuesto" class="form-control"
value="0.0"></input>
@ -57,7 +57,7 @@
value="<?= lang("Basic.global.Clone") ?>"
/>
<?php endif; ?>
<?= anchor(route_to("cosidotapablandaList", $tipo_impresion_id), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start",]) ?>
<?= anchor(route_to("presupuestoAdminList", $tipo_impresion_id), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start",]) ?>
</div>
</form>
@ -98,7 +98,7 @@
asyncMessageDialog('<?= lang("Basic.global.Warning") ?>', '<?= lang("Presupuestos.duplicarConTipologias") ?>', function() {
$.ajax({
type: 'post',
url: '<?= route_to("updateDataOfCosidotapablanda") ?>',
url: '<?= route_to("updateDataOfPresupuestoAdmin") ?>',
data: {
tipo: 'duplicar',
@ -111,7 +111,7 @@
token=response.<?= csrf_token() ?>;
yeniden(token);
// redirect
new_location = '<?= site_url("presupuestos/cosidotapablanda/edit/") ?>' + response.id
new_location = '<?= site_url("presupuestoadmin/edit/") ?>' + response.id
window.location.href = new_location;
}
}).fail(function (jqXHR, textStatus, error) {
@ -123,7 +123,7 @@
else{
$.ajax({
type: 'post',
url: '<?= route_to("updateDataOfCosidotapablanda") ?>',
url: '<?= route_to("updateDataOfPresupuestoAdmin") ?>',
data: {
tipo: 'duplicar',
@ -136,7 +136,7 @@
token=response.<?= csrf_token() ?>;
yeniden(token);
// redirect
new_location = '<?= site_url("presupuestos/cosidotapablanda/edit/") ?>' + response.id
new_location = '<?= site_url("presupuestoadmin/edit/") ?>' + response.id
window.location.href = new_location;
}
}).fail(function (jqXHR, textStatus, error) {
@ -386,7 +386,7 @@ $('#bc-save').on( "click", function() {
<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/comparadorCosidoTapaBlanda_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>

View File

@ -289,9 +289,15 @@ theTable.on( 'draw.dt', function () {
$(document).on('click', '.btn-edit', function(e) {
window.location.href = `/presupuestos/cosidotapablanda/edit/${$(this).attr('data-id')}/`;
window.location.href = `/presupuestoadmin/edit/${$(this).attr('data-id')}/`;
});
theTable.on('click', 'tr', function () {
var data = theTable.row(this).data();
console.log(data);
var url = '/presupuestoadmin/edit/' + data['id'];
window.location.href = url;
});
$(document).on('click', '.btn-delete', function(e) {
$(".btn-remove").attr('data-id', $(this).attr('data-id'));
@ -303,7 +309,7 @@ $(document).on('click', '.btn-remove', function(e) {
const row = $(this).closest('tr');
if ($.isNumeric(dataId)) {
$.ajax({
url: `/presupuestos/cosidotapablanda/delete/${dataId}`,
url: `/presupuestoadmin/delete/${dataId}`,
method: 'GET',
}).done((data, textStatus, jqXHR) => {
$('#confirm2delete').modal('toggle');

View File

@ -684,7 +684,7 @@ async function calcularPresupuesto() {
datos = Object.assign(datos, window.token_ajax)
$('#divTiradasPrecio').empty();
$('.divTiradasPrecio').empty();
$('#loader').show();
$.ajax({
@ -741,7 +741,7 @@ async function calcularPresupuesto() {
$('#loader').hide();
$('#divTiradasPrecio').empty();
$('.divTiradasPrecio').empty();
if(!error){
@ -768,7 +768,7 @@ async function calcularPresupuesto() {
html += '</a>';
html += '</div>';
$('#divTiradasPrecio').append(html);
$('.divTiradasPrecio').append(html);
}
}
@ -783,7 +783,7 @@ async function calcularPresupuesto() {
},
error: function (error) {
$('#loader').hide();
$('#divTiradasPrecio').empty();
$('.divTiradasPrecio').empty();
}
});
}

View File

@ -26,7 +26,7 @@
<span class="align-middle d-sm-inline-block d-none me-sm-1"></i><?= lang('App.global_confirm') ?></span>
</div>
<div id="btnSave" class="btn mt-3 btn-primary waves-effect waves-light ml-2">
<div id="btnSave" class="btn mt-3 btn-primary waves-effect waves-light ml-2 d-none">
<span class="align-middle d-sm-inline-block d-none me-sm-1"></i><?= lang('App.global_save') ?></span>
</div>
<?php endif; ?>

View File

@ -49,13 +49,12 @@
</div>
<div class="col-sm-5 mb-3 d-flex flex-column align-items-center">
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
id="label_clienteId" for="clienteId" class="form-label">
<div
class="col-sm-5 mb-3 d-flex flex-column align-items-center <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " d-none" : "" ?>">
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> id="label_clienteId" for="clienteId" class="form-label">
Cliente*
</label>
<select <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
id="clienteId" name="cliente_id" class="form-control select2bs2 calcular-presupuesto"
<select <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> id="clienteId" name="cliente_id" class="form-control select2bs2 calcular-presupuesto calcular-solapas"
style="width: 100%;">
<?php if (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')): ?>
<option value="<?= $clienteId ?>" selected>cliente</option>
@ -64,47 +63,46 @@
</div>
<div class="row col-sm-5 mb-3 d-flex flex-column align-items-center">
<div
class="col-sm-5 mb-3 d-flex flex-column align-items-center <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " d-none" : "" ?>">
<div class="form-check form-switch mb-2">
<input <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
class="calcular-presupuesto form-check-input" type="checkbox" id="excluirRotativa"
<input <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> class=" calcular-solapas calcular-presupuesto form-check-input" type="checkbox" id="excluirRotativa"
name="excluir_rotativa" value="1">
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
class="form-check-label" for="excluirRotativa">Excluir rotativa</label>
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> class="form-check-label" for="excluirRotativa">Excluir rotativa</label>
</div>
</div>
<div class="row col-sm-10 mb-3 justify-content-center">
<div class="col-sm-2 d-flex flex-column align-items-center mx-1">
<div class="col-sm-2 d-flex flex-column align-items-center mx-1 div-num-input">
<label for="tirada" class="form-label">
<?= lang('Presupuestos.tirada') ?> 1*
</label>
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada"
<input type="number" class="calcular-presupuesto calcular-solapas form-control text-center num-input" id="tirada"
name="tirada" step="1" value="50">
</div>
<div class="col-sm-2 d-flex flex-column align-items-center mx-1">
<div class="col-sm-2 d-flex flex-column align-items-center mx-1 div-num-input">
<label for="tirada2" class="form-label">
<?= lang('Presupuestos.tirada') ?> 2
</label>
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada2"
<input type="number" class="calcular-presupuesto calcular-solapas form-control text-center num-input" id="tirada2"
name="tirada2" step="1" value="">
</div>
<div class="col-sm-2 d-flex flex-column align-items-center mx-1">
<div class="col-sm-2 d-flex flex-column align-items-center mx-1 div-num-input">
<label for="tirada3" class="form-label">
<?= lang('Presupuestos.tirada') ?> 3
</label>
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada3"
<input type="number" class="calcular-presupuesto calcular-solapas form-control text-center num-input" id="tirada3"
name="tirada3" step="1" value="">
</div>
<div class="col-sm-2 d-flex flex-column align-items-center mx-1">
<div class="col-sm-2 d-flex flex-column align-items-center mx-1 div-num-input">
<label for="tirada4" class="form-label">
<?= lang('Presupuestos.tirada') ?> 4
</label>
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada4"
<input type="number" class="calcular-presupuesto calcular-solapas form-control text-center num-input" id="tirada4"
name="tirada4" step="1" value="">
</div>
</div> <!--//.row -->
@ -115,30 +113,30 @@
<label id="label_papelFormatoId" for="papelFormatoId" class="form-label">
Formato Libro*
</label>
<select id="papelFormatoId" name="papel_formato_id" class="form-control select2bs2 calcular-presupuesto"
<select id="papelFormatoId" name="papel_formato_id" class="form-control select2bs2 calcular-presupuesto calcular-solapas"
style="width: 100%;">
</select>
</div>
<div id="formatoPersonalizado" class="row col-sm-8 justify-content-center d-none">
<div class="col-sm-3 mb-1 mx-1">
<div class="col-sm-3 mb-1 mx-1 div-num-input">
<label class="form-label" for="papelFormatoAncho">Ancho Libro*</label>
<input type="number" id="papelFormatoAncho" name="papel_formato_ancho" step="1"
class="form-control formato_libro calcular-presupuesto num-input" min="60" value="60">
class="form-control formato_libro calcular-presupuesto calcular-solapas num-input" min="110" value="110">
</div>
<div class="col-sm-3 mb-1 mx-1">
<div class="col-sm-3 mb-1 mx-1 div-num-input">
<label class="form-label" for="papelFormatoAlto">Alto Libro*</label>
<input type="number" id="papelFormatoAlto" name="papel_formato_alto" step="1"
class="form-control formato_libro calcular-presupuesto num-input" min="60" value="60">
class="form-control formato_libro calcular-presupuesto calcular-solapas num-input" min="170" value="170">
</div>
</div>
<div class="row col-sm-4 mb-3 d-flex flex-column align-items-center">
<div class="form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="papelFormatoPersonalizado"
<input class="calcular-presupuesto calcular-solapas form-check-input" type="checkbox" id="papelFormatoPersonalizado"
name="papel_formato_personalizado" value="1">
<label class="form-check-label"
for="papelFormatoPersonalizado"><?= lang('Presupuestos.papelFormatoPersonalizado') ?></label>
@ -155,7 +153,7 @@
<label for="paginasColor" class="form-label">
<?= lang('Presupuestos.paginasColor') ?>
</label>
<input type="number" class="form-control calcular-presupuesto input-paginas num-input" id="paginasColor"
<input type="number" class="form-control calcular-presupuesto calcular-solapas input-paginas num-input" id="paginasColor"
name="paginasColor" step="1" value="0">
<div class="form-text">
@ -168,7 +166,7 @@
<label for="paginasNegro" class="form-label">
<?= lang('Presupuestos.paginasNegro') ?>
</label>
<input type="number" class="form-control calcular-presupuesto input-paginas num-input" id="paginasNegro"
<input type="number" class="form-control calcular-presupuesto calcular-solapas input-paginas num-input" id="paginasNegro"
name="paginasNegro" step="1" value="32">
<div class="form-text">
@ -181,7 +179,7 @@
<label for="paginas" class="form-label">
<?= lang('Presupuestos.totalPaginas') ?>
</label>
<input readonly class="form-control calcular-presupuesto" id="paginas" name="paginas" step="1"
<input disabled class="form-control" id="paginas" name="paginas" step="1"
value="32">
</div>
</div>
@ -236,28 +234,28 @@
<div id="divTipoLibro" name="div_tipo_libro" class="row col-sm-10 mb-3 justify-content-center">
<div id="fresado" class="tipo-libro calcular-presupuesto imagen-selector image-container">
<div id="fresado" class="tipo-libro calcular-solapas calcular-presupuesto imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/fresado.png") ?>"
alt="Fresado">
<div class="form-text text-center">
Fresado (a partir de 32 páginas)
</div>
</div>
<div id="grapado" class="tipo-libro calcular-presupuesto imagen-selector image-container">
<div id="grapado" class="tipo-libro calcular-solapas calcular-presupuesto imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/grapado.png") ?>"
alt="Grapado">
<div class="form-text text-center">
Grapado (entre 12 y 40 páginas)
</div>
</div>
<div id="espiral" class="tipo-libro calcular-presupuesto imagen-selector image-container">
<div id="espiral" class="tipo-libro calcular-solapas calcular-presupuesto imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/espiral.png") ?>"
alt="Espiral">
<div class="form-text text-center">
Espiral
</div>
</div>
<div id="cosido" class="tipo-libro calcular-presupuesto imagen-selector image-container">
<div id="cosido" class="tipo-libro calcular-solapas calcular-presupuesto imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/cosido.png") ?>"
alt="Cosido">
<div class="form-text text-center">
@ -271,10 +269,36 @@
</div>
<div class="row col-sm-9 mb-3 d-flex flex-column align-items-left">
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="prototipo" name="prototipo"
value="1">
<label class="form-check-label" for="prototipo">Prototipo</label>
<div class="row" >
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="prototipo" name="prototipo"
value="1">
<label class="form-check-label" for="prototipo">Prototipo</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="ferro" name="ferro" value="1">
<label class="form-check-label" for="ferro">Ferro</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="ferroDigital"
name="ferro_digital" value="1">
<label class="form-check-label" for="ferro">Ferro digital</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="marcapaginas"
name="marcapaginas" value="1">
<label class="form-check-label" for="ferro">Marcapáginas</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado"
name="retractilado" value="1">
<label class="form-check-label" for="ferro">Retractilado</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado5"
name="retractilado5" value="1">
<label class="form-check-label" for="ferro">Retractilado de 5</label>
</div>
</div>
</div>

View File

@ -36,7 +36,7 @@
<div id="tapaDuraLomoRedondo"
class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center tipo-cubierta imagen-selector image-container">
<img class="image-presupuesto"
src="<?= site_url("assets/img/presupuestoCliente/tapa-dura-lomo-redondo.png") ?>"
src="<?= site_url("assets/img/presupuestoCliente/tapa-dura-lomo-redondo.jpg") ?>"
alt="TapaDuraLomoRedondo">
<label class="form-label">
Tapa dura lomo redondo
@ -91,7 +91,7 @@
</label>
<input id="solapasCubierta" name="solapas_cubierta" type="number"
class="calcular-presupuesto form-control text-center num-input" min="60" max="120" step="1" value="60">
<div class="form-text">
<div id="textoSolapasCubierta" class="form-text">
Entre 60 y 120 mm
</div>
</div>
@ -138,101 +138,29 @@
</div>
</div>
<div class="col-sm-8 mb-3 d-flex flex-column align-items-center">
<div id="textoPapelCubierta" class="col-sm-8 mb-3 d-flex flex-column align-items-center d-none">
<h3 class="mb-1 fw-bold"> Papel cubierta </h3>
</div><!--//.mb-3 -->
<div id="divPapelCubierta" name="div_papel_cubierta" class="row col-sm-10 mb-5 justify-content-center">
<div id="cartulinaEstucada" cod="CAR1"
class="calcular-presupuesto min-width-fit d-flex flex-column align-items-center justify-content-center papel-cubierta imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/cartulina-grafica.png") ?>"
alt="Cartulina estucada">
<label class="form-label">
Cartulina gráfica estucada a una cara
</label>
</div>
<div id="estucadoMate" cod="EST2"
class="calcular-presupuesto min-width-fit d-flex flex-column align-items-center justify-content-center papel-cubierta imagen-selector image-container">
<img class="image-presupuesto"
src="<?= site_url("assets/img/presupuestoCliente/estucado-mate-cubierta.png") ?>" alt="Estucado mate">
<label class="form-label">
Estucado Mate
</label>
</div>
</div>
<div id="divPapelEspecialCubierta" name="div_papel_especial_cubierta"
class="row col-sm-10 mb-3 justify-content-center d-none">
<div class="col-sm-5 mb-0">
<label for="titulo" class="form-label">
Seleccione el papel especial
</label>
<select id="papelEspecialCubiertaSel" name="papel_especial_cubierta"
class="form-control select2bs2 calcular-presupuesto col-5 mb-0">
</select>
</div>
</div>
<div id="divGramajeCubierta" name="div_gramaje_cubierta" class="row col-sm-10 mb-3 justify-content-center d-none">
<div id="divGramaje170Cubierta" class="checkbox-presupuesto-container col-md mb-md-0 mb-2">
<div class="form-check custom-option custom-option-icon gramaje-cubierta">
<label class="form-check-label custom-option-content" for="gramaje170Cubierta">
<span class="custom-option-body">
<span class="custom-option-title"> 170 gr </span>
</span>
<input id="gramaje170Cubierta" name="gramajeCubiertaRadio" data-value="170"
class="check-gramaje-cubierta calcular-presupuesto form-check-input" type="radio" value="170" />
</label>
</div>
</div>
<div id="divGramaje250Cubierta" class="checkbox-presupuesto-container col-md mb-md-0 mb-2">
<div class="form-check custom-option custom-option-icon gramaje-cubierta">
<label class="form-check-label custom-option-content" for="gramaje250Cubierta">
<span class="custom-option-body">
<span class="custom-option-title"> 250 gr </span>
</span>
<input id="gramaje250Cubierta" name="gramajeCubiertaRadio" data-value="250"
class="check-gramaje-cubierta calcular-presupuesto form-check-input" type="radio" value="250" />
</label>
</div>
</div>
<div id="divGramaje270Cubierta" class="checkbox-presupuesto-container col-md mb-md-0 mb-2">
<div class="form-check custom-option custom-option-icon gramaje-cubierta">
<label class="form-check-label custom-option-content" for="gramaje270Cubierta">
<span class="custom-option-body">
<span class="custom-option-title"> 270 gr </span>
</span>
<input id="gramaje270Cubierta" name="gramajeCubiertaRadio" data-value="270"
class="check-gramaje-cubierta calcular-presupuesto form-check-input" type="radio" value="270" />
</label>
</div>
</div>
<div id="divGramaje300Cubierta" class="checkbox-presupuesto-container col-md mb-md-0 mb-2">
<div class="form-check custom-option custom-option-icon gramaje-cubierta">
<label class="form-check-label custom-option-content" for="gramaje300Cubierta">
<span class="custom-option-body">
<span class="custom-option-title"> 300 gr </span>
</span>
<input id="gramaje300Cubierta" name="gramajeCubiertaRadio" data-value="300"
class="check-gramaje-cubierta calcular-presupuesto form-check-input" type="radio" value="300" />
</label>
</div>
<div class="form-text">
Recomendado
</div>
</div>
<div id="divGramaje350Cubierta" class="checkbox-presupuesto-container col-md mb-md-0 mb-2">
<div class="form-check custom-option custom-option-icon gramaje-cubierta">
<label class="form-check-label custom-option-content" for="gramaje350Cubierta">
<span class="custom-option-body">
<span class="custom-option-title"> 350 gr </span>
</span>
<input id="gramaje350Cubierta" name="gramajeCubiertaRadio" data-value="350"
class="check-gramaje-cubierta calcular-presupuesto form-check-input" type="radio" value="350" />
</label>
</div>
</div>
</div>
<hr class="col-sm-10 my-10">
<div class="col-sm-8 mb-3 d-flex flex-column align-items-center">
@ -333,7 +261,7 @@
<input id="solapasSobrecubierta" name="solapas_sobrecubierta" type="number"
class="calcular-presupuesto form-control text-center num-input" min="60" max="120" step="1"
value="60">
<div class="form-text">
<div id="textoLimitesSolapasSobrecubierta" class="form-text">
Entre 60 y 120 mm
</div>
</div>
@ -344,7 +272,7 @@
</label>
<select class="form-select select2bs2 calcular-presupuesto" id="plastificadoSobrecubierta"
name="plastificado_sobrecubierta">
<option value="NONE"> - </option>
<option value="NONE">Sin plastificar </option>
<option value="BRIL"><?= lang('Presupuestos.brillo') ?></option>
<option value="MATE"><?= lang('Presupuestos.mate') ?></option>
<option value="ANTI"><?= lang('Presupuestos.antirrayado') ?></option>

View File

@ -11,29 +11,36 @@
<div id="divImpresionInterior" name="div_impresion_interior" class="row col-sm-10 mb-3 justify-content-center">
<div id="negroEstandar" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center disenio-interior imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/blancoYnegro.png") ?>" alt="Negro">
<div id="negroEstandar"
class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center disenio-interior imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/blancoYnegro.png") ?>"
alt="Negro">
<label for="titulo" class="form-label">
Blanco y Negro
</label>
</div>
<div id="negroPremium" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center disenio-interior imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/negroFoto.png") ?>" alt="NegroPremium">
<div id="negroPremium"
class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center disenio-interior imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/negroFoto.png") ?>"
alt="NegroPremium">
<label for="titulo" class="form-label">
Blanco y Negro Premium
</label>
</div>
<div id="colorEstandar" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center disenio-interior imagen-selector image-container">
<div id="colorEstandar"
class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center disenio-interior imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/color.png") ?>" alt="Color">
<label for="titulo" class="form-label">
Color
</label>
</div>
<div id="colorPremium" class="d-flex flex-column align-items-center justify-content-center disenio-interior imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/colorFoto.png") ?>" alt="ColorPremium">
<div id="colorPremium"
class="d-flex flex-column align-items-center justify-content-center disenio-interior imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/colorFoto.png") ?>"
alt="ColorPremium">
<label for="titulo" class="form-label">
Color Premium
</label>
@ -42,144 +49,28 @@
</div>
<div class="col-sm-8 mb-3 d-flex flex-column align-items-center">
<div id="textoPapelInterior" class="col-sm-8 mb-3 d-flex flex-column align-items-center d-none">
<h3 class="mb-1 fw-bold"> Papel interior </h3>
</div><!--//.mb-3 -->
<div id="divPapelInterior" name="div_papel_interior" class="row col-sm-10 mb-5 justify-content-center">
<div id="offsetBlanco" cod="OFF1" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center papel-interior imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/offset-blanco.png") ?>" alt="offsetBlanco">
<label for="titulo" class="form-label">
Offset Blanco
</label>
</div>
<div id="offsetAhuesado" cod="OFF2" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center papel-interior imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/offset-ahuesado.png") ?>" alt="offsetAhuesado">
<label for="titulo" class="form-label">
Offset Ahuesado
</label>
</div>
<div id="offsetAhuesadoVolumen" cod="OFF4" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center papel-interior imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/offset-ahuesado-volumen.png") ?>" alt="offsetAhuesadoVolumen">
<label for="titulo" class="form-label">
Offset Ahuesado Volumen
</label>
</div>
<div id="estucadoMate" cod="EST2" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center papel-interior imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/estucado-mate.png") ?>" alt="estucadoMate">
<label for="titulo" class="form-label">
Estucado Mate
</label>
</div>
<div id="divPapelInterior" name="div_papel_interior" class="row col-sm-10 mb-1 justify-content-center">
</div>
<div id="divPapelEspecialInterior" name="div_papel_especial_interior"
class="row col-sm-10 mb-3 justify-content-center d-none">
<div class="col-sm-5 mb-0">
<label for="titulo" class="form-label">
Seleccione el papel especial
</label>
<select id="papelEspecialInterior" name="papel_especial_interior"
class="form-control select2bs2 calcular-solapas calcular-presupuesto col-5 mb-0">
</select>
</div>
</div>
<div id="divGramajeInterior" name="div_gramaje_interior" class="row col-sm-10 mb-3 justify-content-center d-none">
<div id="interiorGramaje70" class="checkbox-presupuesto-container col-md mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior">
<label class="form-check-label custom-option-content" for="gramaje70">
<span class="custom-option-body">
<span class="custom-option-title"> 70 gr </span>
</span>
<input id="gramaje70" name="customRadioGramaje" data-value="70" class="check-interior-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje80" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior">
<label class="form-check-label custom-option-content" for="gramaje80">
<span class="custom-option-body">
<span class="custom-option-title"> 80 gr </span>
</span>
<input id="gramaje80" name="customRadioGramaje" data-value="80" class="check-interior-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje90" class="mb-md-0 mb-3 checkbox-presupuesto-container">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior">
<label class="form-check-label custom-option-content" for="gramaje90">
<span class="custom-option-body">
<span class="custom-option-title"> 90 gr </span>
</span>
<input id="gramaje90" name="customRadioGramaje" data-value="90" class="check-interior-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje100" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior">
<label class="form-check-label custom-option-content" for="gramaje100">
<span class="custom-option-body">
<span class="custom-option-title"> 100 gr </span>
</span>
<input id="gramaje100" name="customRadioGramaje" data-value="100" class="check-interior-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje115" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior">
<label class="form-check-label custom-option-content" for="gramaje115">
<span class="custom-option-body">
<span class="custom-option-title"> 115 gr </span>
</span>
<input id="gramaje115" name="customRadioGramaje" data-value="115" class="check-interior-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje120" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior">
<label class="form-check-label custom-option-content" for="gramaje120">
<span class="custom-option-body">
<span class="custom-option-title"> 120 gr </span>
</span>
<input id="gramaje120" name="customRadioGramaje" data-value="120" class="check-interior-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje135" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior">
<label class="form-check-label custom-option-content" for="gramaje135">
<span class="custom-option-body">
<span class="custom-option-title"> 135 gr </span>
</span>
<input id="gramaje135" name="customRadioGramaje" data-value="135" class="check-interior-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje150" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior">
<label class="form-check-label custom-option-content" for="gramaje150">
<span class="custom-option-body">
<span class="custom-option-title"> 150 gr </span>
</span>
<input id="gramaje150" name="customRadioGramaje" data-value="150" class="check-interior-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje170" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior">
<label class="form-check-label custom-option-content" for="gramaje170">
<span class="custom-option-body">
<span class="custom-option-title"> 170 gr </span>
</span>
<input id="gramaje170" name="customRadioGramaje" data-value="170" class="check-interior-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
</div>
@ -189,17 +80,21 @@
</div><!--//.mb-3 -->
<div id="divImpresionInteriorColor" name="div_impresion_interior_color" class="row col-sm-10 mb-3 justify-content-center interior-color d-none">
<div id="divImpresionInteriorColor" name="div_impresion_interior_color"
class="row col-sm-10 mb-3 justify-content-center interior-color d-none">
<div id="colorEstandarColor" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center disenio-interior-color imagen-selector image-container">
<div id="colorEstandarColor"
class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center disenio-interior-color imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/color.png") ?>" alt="Color">
<label for="titulo" class="form-label">
Color
</label>
</div>
<div id="colorPremiumColor" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center disenio-interior-color imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/colorFoto.png") ?>" alt="ColorPremium">
<div id="colorPremiumColor"
class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center disenio-interior-color imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/colorFoto.png") ?>"
alt="ColorPremium">
<label for="titulo" class="form-label">
Color Premium
</label>
@ -208,143 +103,32 @@
</div>
<div class="col-sm-8 mb-3 d-flex flex-column align-items-center interior-color d-none">
<div id="textoPapelInteriorColor" class="col-sm-8 mb-3 d-flex flex-column align-items-center interior-color d-none">
<h3 class="mb-1 fw-bold"> Papel interior color</h3>
</div><!--//.mb-3 -->
<div id="divPapelInteriorColor" name="div_papel_interior_color" class="row col-sm-10 mb-5 interior-color justify-content-center interior-color d-none">
<div id="offsetBlancoColor" cod="OFF1" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center papel-interior-color imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/offset-blanco.png") ?>" alt="offsetBlanco">
<label class="form-label">
Offset Blanco
</label>
</div>
<div id="offsetAhuesadoColor" cod="OFF2" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center papel-interior-color imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/offset-ahuesado.png") ?>" alt="offsetAhuesado">
<label for="titulo" class="form-label">
Offset Ahuesado
</label>
</div>
<div id="offsetAhuesadoVolumenColor" cod="OFF4" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center papel-interior-color imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/offset-ahuesado-volumen.png") ?>" alt="offsetAhuesadoVolumen">
<label class="form-label">
Offset Ahuesado Volumen
</label>
</div>
<div id="estucadoMateColor" cod="EST2" class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center papel-interior-color imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/estucado-mate.png") ?>" alt="estucadoMate">
<label class="form-label">
Estucado Mate
</label>
</div>
<div id="divPapelInteriorColor" name="div_papel_interior_color"
class="row col-sm-10 mb-5 interior-color justify-content-center interior-color d-none">
</div>
<div id="divGramajeInteriorColor" name="div_gramaje_interior_color" class="row col-sm-10 mb-3 justify-content-center d-none">
<div id="interiorGramaje70Color" class="checkbox-presupuesto-container col-md mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior-color">
<label class="form-check-label custom-option-content" for="gramaje70">
<span class="custom-option-body">
<span class="custom-option-title"> 70 gr </span>
</span>
<input id="gramaje70Color" name="customRadioGramajeColor" data-value="70" class="check-interior-color-gramaje form-check-input" type="radio" value="" />
</label>
</div>
<div id="divPapelEspecialInteriorColor" name="div_papel_especial_interior_color"
class="row col-sm-10 mb-3 justify-content-center d-none">
<div class="col-sm-5 mb-0">
<label for="titulo" class="form-label">
Seleccione el papel especial
</label>
<select id="papelEspecialInteriorColor" name="papel_especial_interior_color"
class="form-control select2bs2 calcular-solapas calcular-presupuesto col-5 mb-0">
</select>
</div>
</div>
<div id="interiorGramaje80Color" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior-color">
<label class="form-check-label custom-option-content" for="gramaje80">
<span class="custom-option-body">
<span class="custom-option-title"> 80 gr </span>
</span>
<input id="gramaje80Color" name="customRadioGramajeColor" data-value="80" class="check-interior-color-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="divGramajeInteriorColor" name="div_gramaje_interior_color"
class="row col-sm-10 mb-3 justify-content-center d-none">
<div id="interiorGramaje90Color" class="mb-md-0 mb-3 checkbox-presupuesto-container">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior-color">
<label class="form-check-label custom-option-content" for="gramaje90">
<span class="custom-option-body">
<span class="custom-option-title"> 90 gr </span>
</span>
<input id="gramaje90Color" name="customRadioGramajeColor" data-value="90" class="check-interior-color-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje100Color" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior-color">
<label class="form-check-label custom-option-content" for="gramaje100">
<span class="custom-option-body">
<span class="custom-option-title"> 100 gr </span>
</span>
<input id="gramaje100Color" name="customRadioGramajeColor" data-value="100" class="check-interior-color-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje115Color" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior-color">
<label class="form-check-label custom-option-content" for="gramaje115">
<span class="custom-option-body">
<span class="custom-option-title"> 115 gr </span>
</span>
<input id="gramaje115Color" name="customRadioGramajeColor" data-value="115" class="check-interior-color-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje120Color" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior-color">
<label class="form-check-label custom-option-content" for="gramaje120">
<span class="custom-option-body">
<span class="custom-option-title"> 120 gr </span>
</span>
<input id="gramaje120Color" name="customRadioGramajeColor" data-value="120" class="check-interior-color-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje135Color" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior-color">
<label class="form-check-label custom-option-content" for="gramaje135">
<span class="custom-option-body">
<span class="custom-option-title"> 135 gr </span>
</span>
<input id="gramaje135Color" name="customRadioGramajeColor" data-value="135" class="check-interior-color-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje150Color" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior-color">
<label class="form-check-label custom-option-content" for="gramaje150">
<span class="custom-option-body">
<span class="custom-option-title"> 150 gr </span>
</span>
<input id="gramaje150Color" name="customRadioGramajeColor" data-value="150" class="check-interior-color-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
<div id="interiorGramaje170Color" class="checkbox-presupuesto-container mb-md-0 mb-3">
<div class="form-check custom-option custom-option-icon calcular-presupuesto gramaje-interior-color">
<label class="form-check-label custom-option-content" for="gramaje170">
<span class="custom-option-body">
<span class="custom-option-title"> 170 gr </span>
</span>
<input id="gramaje170Color" name="customRadioGramajeColor" data-value="170" class="check-interior-color-gramaje form-check-input" type="radio" value="" />
</label>
</div>
</div>
</div>

View File

@ -202,5 +202,5 @@
</button>
</div>
<?php endif; ?>
</div>

View File

@ -62,7 +62,7 @@ const actionBtns = function(data) {
return `
<td class="text-right py-0 align-middle">
<div class="btn-group btn-group-sm">
<a href="javascript:void(0);"><i class="ti ti-pencil ti-sm btn-edit mx-2" data-id="${data.id}"></i></a>
<a href="javascript:void(0);"><i class="ti ti-eye ti-sm btn-edit mx-2" data-id="${data.id}"></i></a>
</div>
</td>`;
};
@ -292,7 +292,12 @@ theTable = $('#tableOfPresupuestos').DataTable({
]
});
theTable.on('click', 'tr', function () {
var data = theTable.row(this).data();
var url = '/presupuestos/presupuestocliente/edit/' + data['id'];
window.location.href = url;
});
theTable.on( 'draw.dt', function () {
const dateCols = [1];

View File

@ -11,10 +11,13 @@
<?= view("themes/_commonPartialsBs/_modalInput") ?>
<?= view("themes/vuexy/components/modals/modalDireccion") ?>
<div class="container-xxl flex-grow-1 container-p-y">
<div id="mainContainer" class="container-xxl flex-grow-1 container-p-y">
<div class="col-12">
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
<?php if ($state != 2): ?>
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
<?php endif; ?>
<?= csrf_field() ?>
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
@ -27,9 +30,27 @@
<!-- Create Deal Wizard -->
<div id="wizard-presupuesto-cliente" class="bs-stepper vertical mt-2 linear">
<div class="bs-stepper-header">
<div class="d-flex justify-content-start d-md-none mb-2">
<button class="btn" type="button" data-bs-toggle="offcanvas" data-bs-target="#menu-offcanvas"
aria-controls="menu-offcanvas" aria-label="Abrir menú">
<i class="ti ti-menu-2" style="font-size: 1.5rem;"></i> <!-- Icono de hamburguesa -->
</button>
</div>
<div <?= ($state == 2)? 'hidden': '' ?> class="step active titulos-menu" data-target="#datos-generales">
<!-- Menú Offcanvas -->
<div id="menu-offcanvas" class="offcanvas offcanvas-start d-md-none" tabindex="-1"
aria-labelledby="menuOffcanvasLabel">
<div class="offcanvas-header justify-content-end">
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
</div>
</div>
<div class="bs-stepper-header col-3">
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step active titulos-menu" data-target="#datos-generales">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-info-circle ti-sm"></i></span>
<span class="bs-stepper-label">
@ -38,7 +59,7 @@
</button>
</div>
<div <?= ($state == 2)? 'hidden': '' ?> class="step titulos-menu" data-target="#interior-libro">
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step titulos-menu" data-target="#interior-libro">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-book ti-sm"></i></span>
<span class="bs-stepper-label">
@ -47,7 +68,7 @@
</button>
</div>
<div <?= ($state == 2)? 'hidden': '' ?> class="step titulos-menu" data-target="#cubierta-libro">
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step titulos-menu" data-target="#cubierta-libro">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-books ti-sm"></i></span>
<span class="bs-stepper-label">
@ -56,7 +77,7 @@
</button>
</div>
<div <?= ($state == 2)? 'hidden': '' ?> class="step titulos-menu" data-target="#direcciones-libro">
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step titulos-menu" data-target="#direcciones-libro">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-map-pins ti-sm"></i></span>
<span class="bs-stepper-label">
@ -76,9 +97,119 @@
<div class="line"></div>
<div id='divTiradasPrecio'></div>
<div id='resumenLateral' class="container align-items-center">
<div class="rl-datos-generales rl-item d-none">
<div class="row">Libro</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_tipo" class="list-group-item list-group-timeline-primary texto-resumen-lateral">Rustica
Fresado</li>
<li id="rl_tipo_cubierta" class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Tapa
dura</li>
<li id="rl_tamanio" class="list-group-item list-group-timeline-primary texto-resumen-lateral">170.0
x
240.0</li>
<li id="rl_tiradas" class="list-group-item list-group-timeline-primary texto-resumen-lateral">10,
50,
100, 200</li>
<li id="rl_paginas" class="list-group-item list-group-timeline-primary texto-resumen-lateral">340
páginas</li>
</ul>
</div>
</div>
<div class="rl-interior rl-item d-none">
<div class="row">Interior</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_tipo_interior" class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Blanco y
negro estándar</li>
<li id="rl_papel_interior" class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Offset
blanco 90 gr.</li>
<li id="rl_papel_interior_color"
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">Offset
blanco 90 gr.</li>
</ul>
</div>
</div>
<div class="rl-cubierta rl-item d-none">
<div class="row">Cubierta</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_papel_cubierta" class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Estucado
Mate
300 gr.</li>
<li id="rl_caras_cubierta" class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Impresa
1
cara</li>
<li id="rl_acabado_cubierta" class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Plastificado brillo</li>
</ul>
</div>
</div>
<div class="rl-sobrecubierta rl-item d-none">
<div class="row">Sobrecubierta</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_no_sobrecubierta" class="list-group-item list-group-timeline-primary texto-resumen-lateral">
No</li>
<li id="rl_papel_sobrecubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">Estucado mate 170 gr
</li>
<li id="rl_tamanio_sobrecubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
60mm</li>
<li id="rl_acabado_sobrecubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Plastificado brillo</li>
</ul>
</div>
</div>
<div class="rl-servicios-extra rl-item d-none">
<div class="row">Servicios extra</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_prototipo" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Prototipo</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_ferro" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Ferro</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_ferroDigital" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Ferro digital</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_marcapaginas" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Marcapáginas</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_retractilado" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Retractilado</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_retractilado5" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Retractilado de 5</li>
</ul>
</div>
</div>
</div>
<div class='mt-2 divTiradasPrecio'></div>
</div> <!--//.bs-stepper-header -->
<div class="bs-stepper-content" style="position: relative;">

View File

@ -388,29 +388,42 @@
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
buttons: [ {
className: 'btn btn-primary float-end me-sm-3 me-1',
extend: "createInline",
editor: editor3,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
buttons: [
{
extend: 'collection',
text: 'Exportar',
buttons:[
'copy', 'csv', 'excel', 'print', {
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4'
}
]
},
action: function ( e, dt, node, config ) {
if(selected_tirada_id == -1){
popErrorAlert("<?= lang('TarifaEncuadernacionLineas.validation.error_seleccion_tiradas') ?>");
}
else{
formOptions= {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
};
editor3.inlineCreate(config.position, formOptions);
}
},
} ]
{
className: 'btn btn-primary float-end me-sm-3 me-1',
extend: "createInline",
editor: editor3,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
},
action: function ( e, dt, node, config ) {
if(selected_tirada_id == -1){
popErrorAlert("<?= lang('TarifaEncuadernacionLineas.validation.error_seleccion_tiradas') ?>");
}
else{
formOptions= {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
};
editor3.inlineCreate(config.position, formOptions);
}
},
}
]
} );
@ -581,29 +594,42 @@
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
buttons: [ {
className: 'btn btn-primary float-end me-sm-3 me-1',
extend: "createInline",
editor: editor,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
buttons: [
{
extend: 'collection',
text: 'Exportar',
buttons:[
'copy', 'csv', 'excel', 'print', {
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4'
}
]
},
action: function ( e, dt, node, config ) {
if(selected_tirada_id == -1){
popErrorAlert("<?= lang('TarifaEncuadernacionLineas.validation.error_seleccion_tiradas') ?>");
}
else{
formOptions= {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
};
editor.inlineCreate(config.position, formOptions);
}
},
} ]
{
className: 'btn btn-primary float-end me-sm-3 me-1',
extend: "createInline",
editor: editor,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
},
action: function ( e, dt, node, config ) {
if(selected_tirada_id == -1){
popErrorAlert("<?= lang('TarifaEncuadernacionLineas.validation.error_seleccion_tiradas') ?>");
}
else{
formOptions= {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
};
editor.inlineCreate(config.position, formOptions);
}
},
}
]
} );
@ -733,7 +759,7 @@
select: true,
info: false,
dom: '<"mt-4"><"float-end"B><"float-start"l><t><"mt-4 mb-3"p>',
ajax : $.fn.dataTable.pipeline( {
ajax : $.fn.dataTable.pipeline( {
url: '<?= route_to('dataTableOfTarifaEncuadernacionTiradas') ?>',
data: {
id_tarifaencuadernacion: id,
@ -768,13 +794,25 @@
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
buttons: [ {
className: 'btn btn-primary float-end me-sm-3 me-1',
extend: "createInline",
editor: editor2,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
buttons: [
{
extend: 'collection',
text: 'Exportar',
buttons:[
'copy', 'csv', 'excel', 'print', {
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4'
}
]
},
{
className: 'btn btn-primary float-end me-sm-3 me-1',
extend: "createInline",
editor: editor2,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
}
} ]
} );

View File

@ -186,14 +186,26 @@
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
buttons: [ {
className: 'btn btn-primary float-end me-sm-3 me-1',
extend: "createInline",
editor: editor,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
}
buttons: [
{
extend: 'collection',
text: 'Exportar',
buttons:[
'copy', 'csv', 'excel', 'print', {
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4'
}
]
},
{
className: 'btn btn-primary float-end me-sm-3 me-1',
extend: "createInline",
editor: editor,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
}
} ]
} );

View File

@ -3,7 +3,7 @@
/*
fetch("/presupuestos/cosidotapablanda/datatable", {
fetch("/presupuestoadmin/datatable", {
method: 'POST',
body: JSON.stringify(data),

View File

@ -21,7 +21,7 @@
$.ajax({
type:"POST",
url:"cosidotapablanda/datatable",
url:"presupuestoadmin/datatable",
data:datos, // data recive un objeto con la informacion que se enviara al servidor
success:function(data){ //success es una funcion que se utiliza si el servidor retorna informacion
console.log(data)

View File

@ -21,7 +21,7 @@
name="save"
value="<?= lang("Basic.global.Save") ?>"
>
<?= anchor(route_to("userIndex"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary"]) ?>
<?= anchor(route_to("userList"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary"]) ?>
</div>
</form>
</div><!-- /.card-body -->

View File

@ -1,122 +1,59 @@
<?=$this->include('themes/_commonPartialsBs/datatables') ?>
<?=$this->extend('themes/vuexy/main/defaultlayout') ?>
<?=$this->section('content'); ?>
<div class="row">
<div class="col-md-12">
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section('content'); ?>
<div class="row">
<div class="col-md-12">
<div class="card card-info">
<div class="card-header">
<h3 class="card-title"><?=lang('Users.userList') ?></h3>
<?=anchor(route_to('newUser'), lang('Basic.global.addNew').' '.lang('Users.user'), ['class'=>'btn btn-primary float-end']); ?>
</div><!--//.card-header -->
<div class="card-body">
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
<div class="card card-info">
<div class="card-header">
<h3 class="card-title"><?= lang('Users.userList') ?></h3>
<?= anchor(route_to('newUser'), lang('Basic.global.addNew') . ' ' . lang('Users.user'), ['class' => 'btn btn-primary float-end']); ?>
</div><!--//.card-header -->
<div class="card-body">
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
<table id="tableOfUsers" class="table table-striped table-hover using-data-table" style="width: 100%;">
<thead>
<tr>
<th><?= lang('Users.firstName') ?></th>
<th><?= lang('Users.lastName') ?></th>
<th><?= lang('Users.email') ?></th>
<th><?= lang('Users.lastAccess') ?></th>
<?php /*
<th><?= lang('Users.mobile') ?></th>
<th><?= lang('Users.email') ?></th>
<th><?= lang('Users.address') ?></th>
<th><?= lang('Users.city') ?></th>
<th><?= lang('Users.state') ?></th>
<th><?= lang('Users.country') ?></th>
<th><?= lang('Users.zipCode') ?></th>
<th><?= lang('Users.lastIp') ?></th>
<th><?= lang('Users.picture') ?></th>
<th><?= lang('Users.language') ?></th>
<th><?= lang('Users.blocked') ?></th>
<th><?= lang('Users.emailConfirmed') ?></th>
*/ ?>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($userList2 as $item ) : ?>
<tr>
<td class="align-middle">
<?= empty($item->first_name) || strlen($item->first_name) < 51 ? esc($item->first_name) : character_limiter(esc($item->first_name), 50) ?>
</td>
<td class="align-middle">
<?= empty($item->last_name) || strlen($item->last_name) < 51 ? esc($item->last_name) : character_limiter(esc($item->last_name), 50) ?>
</td>
<table id="tableOfUsers" class="table table-striped table-hover using-data-table"
style="width: 100%;">
<thead>
<tr>
<th><?= lang('Users.firstName') ?></th>
<th><?= lang('Users.lastName') ?></th>
<th><?= lang('Users.email') ?></th>
<th><?= lang('Users.lastAccess') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($userList2 as $item) : ?>
<tr>
<td class="align-middle">
<?= empty($item->email) ? "" : character_limiter(esc(lang($item->email)), 50) ?>
<?= empty($item->first_name) || strlen($item->first_name) < 51 ? esc($item->first_name) : character_limiter(esc($item->first_name), 50) ?>
</td>
<td class="align-middle text-nowrap">
<?= empty($item->last_active) ? '' : date('d/m/Y H:m:s', strtotime($item->last_active)) ?>
<td class="align-middle">
<?= empty($item->last_name) || strlen($item->last_name) < 51 ? esc($item->last_name) : character_limiter(esc($item->last_name), 50) ?>
</td>
<td class="align-middle">
<?= empty(auth()->getProvider()->findById($item->id)->email) ? "" : character_limiter(esc(auth()->getProvider()->findById($item->id)->email), 50) ?>
</td>
<td class="align-middle text-nowrap">
<?= empty($item->last_active) ? '' : date('d/m/Y H:m:s', strtotime($item->last_active)) ?>
</td>
<?php /*
<td class="align-middle">
<?= empty($user_model->getGroupsTitles($item->token)) || strlen($user_model->getGroupsTitles($item->token)) < 51 ? esc($user_model->getGroupsTitles($item->token)) : character_limiter($user_model->getGroupsTitles($item->token), 50) ?>
</td>
<td class="align-middle text-center text-nowrap">
<?= anchor(route_to('editUser', $item->id), "<i class='ti ti-pencil ti-sm mx-2'></i>", ['class' => 'text-body', 'data-id' => $item->id,]); ?>
<?= anchor('#confirm2delete', "<i class='ti ti-trash ti-sm mx-2'></i>", ['class' => 'text-body', 'data-href' => route_to('deleteUser', $item->id), 'data-bs-toggle' => 'modal', 'data-bs-target' => '#confirm2delete']); ?>
</td>
</tr>
<td class="align-middle">
<?= empty($item->mobile) || strlen($item->mobile) < 51 ? esc($item->mobile) : character_limiter(esc($item->mobile), 50) ?>
</td>
<td class="align-middle">
<?= esc($item->email) ?>
</td>
<?php endforeach; ?>
</tbody>
</table>
</div><!--//.card-body -->
<div class="card-footer">
<td class="align-middle">
<?= empty($item->address) || strlen($item->address) < 51 ? esc($item->address) : character_limiter(esc($item->address), 50) ?>
</td>
<td class="align-middle">
<?= empty($item->city) || strlen($item->city) < 51 ? esc($item->city) : character_limiter(esc($item->city), 50) ?>
</td>
<td class="align-middle">
<?= empty($item->state) || strlen($item->state) < 51 ? esc($item->state) : character_limiter(esc($item->state), 50) ?>
</td>
<td class="align-middle">
<?= esc($item->country) ?>
</td>
<td class="align-middle">
<?= empty($item->zip_code) || strlen($item->zip_code) < 51 ? esc($item->zip_code) : character_limiter(esc($item->zip_code), 50) ?>
</td>
<td class="align-middle">
<?= empty($item->last_ip) || strlen($item->last_ip) < 51 ? esc($item->last_ip) : character_limiter(esc($item->last_ip), 50) ?>
</td>
<td class="align-middle text-nowrap">
<?= empty($item->last_access) ? '' : date('d/m/Y H:m:s', strtotime($item->last_access)) ?>
</td>
<td class="align-middle">
<?= empty($item->picture) || strlen($item->picture) < 51 ? esc($item->picture) : character_limiter(esc($item->picture), 50) ?>
</td>
<td class="align-middle">
<?= esc($item->language) ?>
</td>
<td class="align-middle text-nowrap">
<?= empty($item->blocked) ? '' : date('d/m/Y H:m:s', strtotime($item->blocked)) ?>
</td>
<td class="align-middle">
<?= esc($item->email_confirmed) ?>
</td>
*/ ?>
</div><!--//.card-footer -->
</div><!--//.card -->
</div><!--//.col -->
</div><!--//.row -->
<td class="align-middle text-center text-nowrap">
<?=anchor(route_to('editUser', $item->id), "<i class='ti ti-pencil ti-sm mx-2'></i>", ['class'=>'text-body', 'data-id'=>$item->id,]); ?>
<?=anchor('#confirm2delete', "<i class='ti ti-trash ti-sm mx-2'></i>", ['class'=>'text-body', 'data-href'=>route_to('deleteUser', $item->id), 'data-bs-toggle'=>'modal', 'data-bs-target'=>'#confirm2delete']); ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div><!--//.card-body -->
<div class="card-footer">
</div><!--//.card-footer -->
</div><!--//.card -->
</div><!--//.col -->
</div><!--//.row -->
<?=$this->endSection() ?>
<?= $this->endSection() ?>

View File

@ -147,18 +147,6 @@ $picture = "/assets/img/default-user.png";
</div>
</li>
<!-- Notification -->
<li class="nav-item dropdown-notifications navbar-dropdown dropdown me-3 me-xl-1">
<a
class="nav-link dropdown-toggle hide-arrow"
href="javascript:void(0);"
data-bs-toggle="dropdown"
data-bs-auto-close="outside"
aria-expanded="false">
<i class="ti ti-bell ti-md"></i>
</a>
</li>
<!--/ Notification -->
<!-- Search Budgets -->
<li class="nav-item navbar-dropdown dropdown me-3 me-xl-1">

View File

@ -28,8 +28,6 @@
require "menus/pedidos_menu.php";
require "menus/pedidos_cliente_menu.php";
require "menus/produccion_menu.php";
require "menus/importacion_menu.php";

View File

@ -1,11 +1,12 @@
<?php
/**
* MENU CLIENTES
*/
if (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) {
if (auth()->user()->can('perfil.edit') || auth()->user()->can('direcciones.menu')) {
?>
?>
<!-- Clientes -->
<li class="menu-item">
<a href="javascript:void(0);" class="menu-link menu-toggle">
@ -27,14 +28,17 @@ if (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente
</a>
</li>
<?php } ?>
</ul>
</li>
<?php
<?php
}
} else {
if (auth()->user()->can('clientes.menu') ||
auth()->user()->can('plantilla-tarifa.menu')) {
?>
if (
auth()->user()->can('clientes.menu') ||
auth()->user()->can('plantilla-tarifa.menu')
) {
?>
<!-- Clientes -->
<li class="menu-item">
<a href="javascript:void(0);" class="menu-link menu-toggle">
@ -56,12 +60,10 @@ if (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente
</a>
</li>
<?php } ?>
</ul>
</li>
<?php
<?php
}
}
?>
?>

View File

@ -2,7 +2,7 @@
/**
* MENU MENSAJES
*/
if (auth()->user()->inGroup('beta')) {
if (auth()->user()->inGroup('beta') || auth()->user()->inGroup('cliente-editor')) {
?>
<!-- Messages -->
<li class="menu-item">

View File

@ -1,36 +0,0 @@
<?php
/**
* MENU PEDIDOS
*/
if (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) {
?>
<!-- Orders -->
<li class="menu-item">
<a href="javascript:void(0);" class="menu-link menu-toggle">
<i class="menu-icon tf-icons ti ti-file-description"></i>
<?= lang("App.menu_pedidos") ?>
</a>
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/activos") ?>" class="menu-link">
<?= lang("App.menu_pedidos_activos") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/finalizados") ?>" class="menu-link">
<?= lang("App.menu_pedidos_finalizados") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/cancelados") ?>" class="menu-link">
<?= lang("App.menu_pedidos_cancelados") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/todos") ?>" class="menu-link">
<?= lang("App.menu_pedidos_todos") ?>
</a>
</li>
</ul>
</li>
<?php } ?>

View File

@ -2,7 +2,12 @@
/**
* MENU PEDIDOS
*/
if (auth()->user()->inGroup('beta')) {
if (
auth()->user()->can('pedidos-activos.menu') ||
auth()->user()->can('pedidos-finalizados.menu') ||
auth()->user()->can('pedidos-cancelados.menu') ||
auth()->user()->can('pedidos-todos.menu')
) {
?>
<!-- Orders -->
<li class="menu-item">
@ -11,26 +16,34 @@ if (auth()->user()->inGroup('beta')) {
<?= lang("App.menu_pedidos") ?>
</a>
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/activos") ?>" class="menu-link">
<?= lang("App.menu_pedidos_activos") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/finalizados") ?>" class="menu-link">
<?= lang("App.menu_pedidos_finalizados") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/cancelados") ?>" class="menu-link">
<?= lang("App.menu_pedidos_cancelados") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/todos") ?>" class="menu-link">
<?= lang("App.menu_pedidos_todos") ?>
</a>
</li>
<?php if (auth()->user()->can('pedidos-activos.menu')) { ?>
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/activos") ?>" class="menu-link">
<?= lang("App.menu_pedidos_activos") ?>
</a>
</li>
<?php } ?>
<?php if (auth()->user()->can('pedidos-finalizados.menu')) { ?>
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/finalizados") ?>" class="menu-link">
<?= lang("App.menu_pedidos_finalizados") ?>
</a>
</li>
<?php } ?>
<?php if (auth()->user()->can('pedidos-cancelados.menu')) { ?>
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/cancelados") ?>" class="menu-link">
<?= lang("App.menu_pedidos_cancelados") ?>
</a>
</li>
<?php } ?>
<?php if (auth()->user()->can('pedidos-todos.menu')) { ?>
<li class="menu-item">
<a href="<?= site_url("pedidos/pedido/todos") ?>" class="menu-link">
<?= lang("App.menu_pedidos_todos") ?>
</a>
</li>
<?php } ?>
</ul>
</li>
<?php } ?>

View File

@ -20,6 +20,15 @@ if (auth()->user()->inGroup('cliente-admin')
);
?>
</a>
<?php if (auth()->user()->can('presupuesto-cliente.create')) { ?>
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= route_to('nuevoPresupuestoCliente') ?>" class="menu-link">
Nuevo presupuesto
</a>
</li>
</ul>
<?php } ?>
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= route_to("listaPresupuestos") ?>" class="menu-link">
@ -27,15 +36,6 @@ if (auth()->user()->inGroup('cliente-admin')
</a>
</li>
</ul>
<?php if (auth()->user()->can('presupuesto-cliente.create')) { ?>
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= route_to('nuevoPresupuestoCliente') ?>" class="menu-link">
Añadir
</a>
</li>
</ul>
<?php } ?>
</li>
<?php
}

View File

@ -23,55 +23,55 @@ if (auth()->user()->can('presupuesto.menu')) {
</a>
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= site_url("presupuestos/cosidotapablanda/list/1") ?>"
<a href="<?= site_url("presupuestoadmin/list/1") ?>"
class="menu-link">
<?= lang("App.menu_libros_fresasdo_tapa_dura") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/cosidotapablanda/list/2") ?>"
<a href="<?= site_url("presupuestoadmin/list/2") ?>"
class="menu-link">
<?= lang("App.menu_libros_fresasdo_tapa_blanda") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/cosidotapablanda/list/3") ?>"
<a href="<?= site_url("presupuestoadmin/list/3") ?>"
class="menu-link">
<?= lang("App.menu_libros_cosido_tapa_dura") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/cosidotapablanda/list/4") ?>"
<a href="<?= site_url("presupuestoadmin/list/4") ?>"
class="menu-link">
<?= lang("App.menu_libros_cosido_tapa_blanda") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/cosidotapablanda/list/21") ?>" class="menu-link">
<a href="<?= site_url("presupuestoadmin/list/21") ?>" class="menu-link">
<?= lang("App.menu_libros_grapados") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/cosidotapablanda/list/5") ?>" class="menu-link">
<a href="<?= site_url("presupuestoadmin/list/5") ?>" class="menu-link">
<?= lang("App.menu_libros_espiral_tapa_dura") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/cosidotapablanda/list/6") ?>"
<a href="<?= site_url("presupuestoadmin/list/6") ?>"
class="menu-link">
<?= lang("App.menu_libros_espiral_tapa_blanda") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/cosidotapablanda/list/7") ?>" class="menu-link">
<a href="<?= site_url("presupuestoadmin/list/7") ?>" class="menu-link">
<?= lang("App.menu_libros_wireo_tapa_dura") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/cosidotapablanda/list/8") ?>" class="menu-link">
<a href="<?= site_url("presupuestoadmin/list/8") ?>" class="menu-link">
<?= lang("App.menu_libros_wireo_tapa_blanda") ?>
</a>
</li>