mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'main' into feat/wiki
This commit is contained in:
@ -423,7 +423,7 @@
|
||||
decimalCharacter: ",",
|
||||
digitGroupSeparator: ".",
|
||||
allowDecimalPadding : 'floats',
|
||||
decimalPlaces: 2,
|
||||
decimalPlaces: 6,
|
||||
unformatOnSubmit: true,
|
||||
});
|
||||
})
|
||||
@ -543,7 +543,7 @@
|
||||
return '<?= lang('MaquinasTarifasImpresions.colorhq') ?>';
|
||||
}
|
||||
},
|
||||
{ 'data': 'precio',render : (d) => `<span class="autonumeric">${d}</span>` },
|
||||
{ 'data': 'precio',render : (d) => `<span class="autonumeric-decimal" data-decimal-places="6">${d}</span>` },
|
||||
{ 'data': 'margen',render : (d) => `<span class="autonumeric">${d}</span>` },
|
||||
{
|
||||
data: actionBtns,
|
||||
|
||||
@ -23,7 +23,15 @@
|
||||
<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">
|
||||
<label for="activo_papel_generico" class="form-check-label">
|
||||
<?= lang('PapelGenerico.activo') ?>
|
||||
</label>
|
||||
<input type="checkbox" id="activo_papel_generico" name="activo" value="1"
|
||||
class="form-check-input" <?= $papelGenerico->activo == true ? 'checked' : ''; ?>>
|
||||
</div><!--//.form-check -->
|
||||
</div><!--//.mb-3 -->
|
||||
<div class="mb-3">
|
||||
<div class="form-check">
|
||||
|
||||
|
||||
@ -144,6 +144,7 @@
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
<?=$this->endSection() ?>
|
||||
|
||||
|
||||
|
||||
@ -21,6 +21,7 @@
|
||||
<th><?= lang('PapelGenerico.codeOt') ?></th>
|
||||
<th><?= lang('PapelGenerico.showInClient') ?></th>
|
||||
<th><?= lang('PapelGenerico.showInClientSpecial') ?></th>
|
||||
<th><?= lang('PapelGenerico.activo') ?></th>
|
||||
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -92,13 +93,14 @@
|
||||
{ 'data': 'code_ot' },
|
||||
{ 'data': 'show_in_client' },
|
||||
{ 'data': 'show_in_client_special' },
|
||||
{ 'data': 'activo' },
|
||||
{ 'data': actionBtns }
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
theTable.on( 'draw.dt', function () {
|
||||
const boolCols = [3, 4];
|
||||
const boolCols = [3, 4, 5];
|
||||
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>' : '';
|
||||
|
||||
@ -64,7 +64,9 @@ const actionBtns = function(data) {
|
||||
<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-trash ti-sm btn-delete mx-2" data-id="${data.id}" data-bs-toggle="modal" data-bs-target="#confirm2delete"></i></a>
|
||||
<?php if(auth()->user()->can('presupuesto.delete')): ?>
|
||||
<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete mx-2" data-id="${data.id}" data-bs-toggle="modal" data-bs-target="#confirm2delete"></i></a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</td>`;
|
||||
}
|
||||
@ -240,7 +242,7 @@ $(document).on('click', '.btn-remove', function(e) {
|
||||
const row = $(this).closest('tr');
|
||||
if ($.isNumeric(dataId)) {
|
||||
$.ajax({
|
||||
url: `/presupuestoadmin/delete/${dataId}`,
|
||||
url: `/presupuestos/presupuestocliente/delete/${dataId}`,
|
||||
method: 'GET',
|
||||
}).done((data, textStatus, jqXHR) => {
|
||||
$('#confirm2delete').modal('toggle');
|
||||
|
||||
@ -55,7 +55,9 @@ const actionBtns = function(data) {
|
||||
<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-trash ti-sm btn-delete mx-2" data-id="${data.id}" data-bs-toggle="modal" data-bs-target="#confirm2delete"></i></a>
|
||||
<?php if(auth()->user()->can('presupuesto.delete')): ?>
|
||||
<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete mx-2" data-id="${data.id}" data-bs-toggle="modal" data-bs-target="#confirm2delete"></i></a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</td>`;
|
||||
};
|
||||
@ -287,13 +289,13 @@ $(document).on('click', '.btn-edit', function(e) {
|
||||
window.location.href = `/presupuestoadmin/edit/${$(this).attr('data-id')}/`;
|
||||
});
|
||||
|
||||
theTable.on('click', 'tr', function () {
|
||||
var data = theTable.row(this).data();
|
||||
console.log(data);
|
||||
theTable.on('click', 'tbody td:not(:last-child)', function () {
|
||||
var data = theTable.row($(this).closest('tr')).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'));
|
||||
});
|
||||
@ -304,7 +306,7 @@ $(document).on('click', '.btn-remove', function(e) {
|
||||
const row = $(this).closest('tr');
|
||||
if ($.isNumeric(dataId)) {
|
||||
$.ajax({
|
||||
url: `/presupuestoadmin/delete/${dataId}`,
|
||||
url: `/presupuestos/presupuestocliente/delete/${dataId}`,
|
||||
method: 'GET',
|
||||
}).done((data, textStatus, jqXHR) => {
|
||||
$('#confirm2delete').modal('toggle');
|
||||
|
||||
@ -50,21 +50,25 @@
|
||||
|
||||
const lastColNr = $('#tableOfPresupuestos').find("tr:first th").length - 1;
|
||||
const actionBtns = function(data) {
|
||||
if(data.estado == 'borrador')
|
||||
if(data.estado == 'borrador'){
|
||||
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-trash ti-sm btn-delete mx-2" data-id="${data.id}" data-bs-toggle="modal" data-bs-target="#confirm2delete"></i></a>
|
||||
<?php if(auth()->user()->can('presupuesto-cliente.delete')): ?>
|
||||
<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete mx-2" data-id="${data.id}" data-bs-toggle="modal" data-bs-target="#confirm2delete"></i></a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</td>`;
|
||||
else
|
||||
}
|
||||
else{
|
||||
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-eye ti-sm btn-edit mx-2" data-id="${data.id}"></i></a>
|
||||
</div>
|
||||
</td>`;
|
||||
}
|
||||
};
|
||||
|
||||
// Setup - add a text input to each footer cell
|
||||
@ -292,8 +296,8 @@ theTable = $('#tableOfPresupuestos').DataTable({
|
||||
]
|
||||
});
|
||||
|
||||
theTable.on('click', 'tr', function () {
|
||||
var data = theTable.row(this).data();
|
||||
theTable.on('click', 'tbody td:not(:last-child)', function () {
|
||||
var data = theTable.row($(this).closest('tr')).data();
|
||||
var url = '/presupuestos/presupuestocliente/edit/' + data['id'];
|
||||
window.location.href = url;
|
||||
});
|
||||
|
||||
192
ci4/app/Views/themes/vuexy/form/soporte/viewTicketForm.php
Normal file
192
ci4/app/Views/themes/vuexy/form/soporte/viewTicketForm.php
Normal file
@ -0,0 +1,192 @@
|
||||
<?= $this->include("themes/_commonPartialsBs/sweetalert") ?>
|
||||
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
|
||||
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
|
||||
<?= $this->section('content'); ?>
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="imageModal" tabindex="-1" aria-labelledby="imageModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="imageModalLabel">Vista Previa</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Cerrar"></button>
|
||||
</div>
|
||||
<div class="modal-body text-center">
|
||||
<img src="" id="modalImage" class="img-fluid rounded">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4><?= $boxTitle ?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form method="post" class="card-body" action="<?= $formAction ?>" enctype="multipart/form-data">
|
||||
<?= csrf_field(); ?>
|
||||
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
||||
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
|
||||
<div class="row">
|
||||
<div class="mb-3 col-9">
|
||||
<label class="form-label"><?= lang("Tickets.asunto") ?></label>
|
||||
<input type="text" name="titulo" class="form-control"
|
||||
<?= ($formAction !== route_to('NewTicket', $ticket->id)) ? "readonly" : "" ?>
|
||||
value="<?= old('titulo', $ticket->titulo) ?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-3 mb-3">
|
||||
<label class="form-label"><?= lang("Tickets.tipo") ?></label>
|
||||
<select id="categoria" name="categoria_id" class="form-control select2"
|
||||
<?= ($formAction !== route_to('NewTicket', $ticket->id) && !auth()->user()->can('tickets.edit')) ? "disabled" : "" ?>>
|
||||
<?php foreach ($categorias as $categoria): ?>
|
||||
<option value="<?= $categoria['id']; ?>" <?= $categoria['id'] == $ticket->categoria_id ? ' selected' : '' ?>> <?= $categoria['text']; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-3 mb-3">
|
||||
<label class="form-label"><?= lang("Tickets.seccion") ?></label>
|
||||
<select id="seccion" name="seccion_id" class="form-control select2"
|
||||
<?= ($formAction !== route_to('NewTicket', $ticket->id) && !auth()->user()->can('tickets.edit')) ? "disabled" : "" ?>>
|
||||
<?php foreach ($secciones as $seccion): ?>
|
||||
<option value="<?= $seccion['id']; ?>" <?= $seccion['id'] == $ticket->seccion_id ? ' selected' : '' ?>><?= $seccion['text']; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-3 mb-3">
|
||||
<label class="form-label"><?= lang("Tickets.estado") ?></label>
|
||||
<?php if ($formAction !== route_to('NewTicket') && auth()->user()->can('tickets.edit')): ?>
|
||||
<select id="estado" name="estado_id" class="form-control select2">
|
||||
<?php else: ?>
|
||||
<select id="estado" name="estado_id" class="form-control select2" disabled>
|
||||
<?php endif; ?>
|
||||
<?php foreach ($estados as $estado): ?>
|
||||
<option value="<?= $estado['id']; ?>" <?= $estado['id'] == $ticket->estado_id ? ' selected' : '' ?>><?= $estado['text']; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php if (auth()->user()->can('tickets.edit')): ?>
|
||||
|
||||
<div class="row">
|
||||
<div class="mb-3 col-3">
|
||||
<label class="form-label"><?= lang('Tickets.prioridad') ?></label>
|
||||
<select id="prioridad" name="prioridad" class="form-control">
|
||||
<option value="baja" <?= $ticket->prioridad == 'baja' ? ' selected' : '' ?>>
|
||||
<?= lang('Tickets.alta') ?>
|
||||
</option>
|
||||
<option value="media" <?= $ticket->prioridad == 'media' ? ' selected' : '' ?>>
|
||||
<?= lang('Tickets.media') ?>
|
||||
</option>
|
||||
<option value="alta" <?= $ticket->prioridad == 'alta' ? ' selected' : '' ?>>
|
||||
<?= lang('Tickets.baja') ?>
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3 col-3">
|
||||
<label class="form-label"><?= lang('Tickets.asignarTo') ?></label>
|
||||
<select id="user_soporte_id" name="user_soporte_id" class="form-control">
|
||||
<?php foreach ($supportUsers as $supportUser): ?>
|
||||
<option value="<?= $supportUser['id']; ?>" <?= $supportUser['id'] == $ticket->user_soporte_id ? ' selected' : '' ?>><?= $supportUser['name']; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label"><?= lang("Tickets.descripcion") ?></label>
|
||||
<textarea id="descripcion" name="descripcion" class="form-control"
|
||||
<?= ($formAction !== route_to('NewTicket', $ticket->id)) ? "readonly" : "" ?>
|
||||
rows="4"><?= old('descripcion', $ticket->descripcion) ?></textarea>
|
||||
</div>
|
||||
|
||||
<?php if (isset($respuesta) || ($formAction !== route_to('NewTicket') && auth()->user()->can('tickets.edit'))) : ?>
|
||||
|
||||
<h4><?= lang("Tickets.respuesta") ?></h4>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label"><?= lang("Tickets.respuesta") ?></label>
|
||||
<textarea id="respuestaMensaje" name="respuesta_mensaje" class="form-control"
|
||||
<?= !auth()->user()->can('tickets.edit') ? "readonly" : "" ?>
|
||||
rows="4"><?= isset($respuesta) ? old('respuestaMensaje', $respuesta->mensaje) : "" ?></textarea>
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($formAction === route_to('NewTicket') || ($formAction !== route_to('NewTicket') && auth()->user()->can('tickets.edit'))): ?>
|
||||
|
||||
<div class="row">
|
||||
<div class="mb-3">
|
||||
<label for="filesInput" class="form-label"><?= lang("Tickets.adjuntos") ?></label>
|
||||
<input name="files[]" class="form-control" type="file" id="filesInput" multiple
|
||||
accept="image/*">
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($formAction !== route_to('NewTicket')): ?>
|
||||
<h4><?= lang("Tickets.adjuntos_ticket") ?></h4>
|
||||
<div class="container">
|
||||
<?php foreach ($imagesTicket as $image): ?>
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-3">
|
||||
<img src="<?= esc($image['path']) ?>" class="img-thumbnail img-fluid gallery-img"
|
||||
data-bs-toggle="modal" data-bs-target="#imageModal" data-src="<?= esc($image['path']) ?>"
|
||||
style="cursor:pointer;">
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="pt-4">
|
||||
<?php if (
|
||||
$formAction === route_to('NewTicket') ||
|
||||
($formAction !== route_to('NewTicket') && auth()->user()->can('tickets.edit'))
|
||||
): ?>
|
||||
<input
|
||||
type="submit"
|
||||
class="btn btn-primary float-start me-sm-3 me-1"
|
||||
name="save"
|
||||
value="<?= lang("Basic.global.Save") ?>" />
|
||||
<?php endif; ?>
|
||||
<?= anchor(route_to("TicketIndex"), lang("Basic.global.back"), ["class" => "btn btn-secondary"]) ?>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?= $this->endSection(); ?>
|
||||
|
||||
<?= $this->section('css') ?>
|
||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/dropzone/dropzone.css') ?>" />
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
|
||||
<?= $this->section('additionalExternalJs') ?>
|
||||
<script src="<?= site_url("themes/vuexy/vendor/libs/dropzone/dropzone.js") ?>"></script>
|
||||
<script type="module" src="<?= site_url('assets/js/safekat/pages/soporte/tickets.js') ?>"></script>
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
76
ci4/app/Views/themes/vuexy/form/soporte/viewTicketList.php
Normal file
76
ci4/app/Views/themes/vuexy/form/soporte/viewTicketList.php
Normal file
@ -0,0 +1,76 @@
|
||||
<?= $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('Tickets.moduleTitle') ?></h3>
|
||||
<?= anchor(route_to('NewTicket'), lang('Basic.global.addNew') . ' ' . lang('Tickets.ticket'), ['class' => 'btn btn-primary float-end']); ?>
|
||||
</div><!--//.card-header -->
|
||||
<div class="card-body">
|
||||
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
|
||||
|
||||
<table id="tableOfTickets" class="table table-striped table-hover using-exportable-data-table"
|
||||
style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th><?= lang('Tickets.tipo') ?></th>
|
||||
<th><?= lang('Tickets.seccion') ?></th>
|
||||
<th><?= lang('Tickets.estado') ?></th>
|
||||
<?php if ($userType == 1) : ?>
|
||||
<th><?= lang('Tickets.prioridad') ?></th>
|
||||
<?php endif; ?>
|
||||
<th><?= lang('Tickets.asunto') ?></th>
|
||||
<?php if ($userType == 1) : ?>
|
||||
<th><?= lang('Tickets.usuario') ?></th>
|
||||
<th><?= lang('Tickets.asignarTo') ?></th>
|
||||
<?php endif; ?>
|
||||
<th><?= lang('Tickets.fechaCreacion') ?></th>
|
||||
<th class="text-nowrap noFilter"><?= lang('Basic.global.Action') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div><!--//.card-body -->
|
||||
<div class="card-footer">
|
||||
|
||||
</div><!--//.card-footer -->
|
||||
</div><!--//.card -->
|
||||
</div><!--//.col -->
|
||||
</div><!--//.row -->
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('css') ?>
|
||||
<link rel="stylesheet"
|
||||
href="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.css") ?>">
|
||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/bootstrap-daterangepicker/bootstrap-daterangepicker.css') ?>" />
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
|
||||
<?= $this->section('additionalExternalJs') ?>
|
||||
|
||||
<script>
|
||||
window.userType = <?= $userType ?>;
|
||||
</script>
|
||||
|
||||
<script
|
||||
src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/dataTables.buttons.min.js") ?>"></script>
|
||||
<script
|
||||
src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.html5.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.print.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/jszip/jszip.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/pdfmake/pdfmake.min.js") ?>"
|
||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/pdfmake/vfs_fonts.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.colVis.min.js") ?>"></script>
|
||||
<script src="<?= site_url('themes/vuexy/vendor/libs/bootstrap-daterangepicker/bootstrap-daterangepicker.js') ?>"></script>
|
||||
|
||||
<script type="module" src="<?= site_url('assets/js/safekat/pages/soporte/tickets.js') ?>"></script>
|
||||
<?= $this->endSection() ?>
|
||||
@ -54,7 +54,16 @@
|
||||
<?= lang('Tarifaacabado.mostrar_en_presupuesto') ?>
|
||||
</label>
|
||||
</div><!--//.form-check -->
|
||||
|
||||
</div><!--//.mb-3 -->
|
||||
<div class="mb-3">
|
||||
<div class="form-check">
|
||||
<label for="mostrar_en_presupuesto_cliente" class="form-check-label">
|
||||
<input type="checkbox" id="mostrar_en_presupuesto_cliente" name="mostrar_en_presupuesto_cliente" value="1" class="form-check-input" <?= $tarifaacabadoEntity->mostrar_en_presupuesto_cliente == true ? 'checked' : ''; ?>>
|
||||
<?= lang('Tarifaencuadernacion.mostrar_en_presupuesto_cliente') ?>
|
||||
</label>
|
||||
</div><!--//.form-check -->
|
||||
</div><!--//.mb-3 -->
|
||||
<div class="mb-3">
|
||||
<div class="form-check">
|
||||
<label for="acabado_cubierta" class="form-check-label">
|
||||
|
||||
@ -21,6 +21,7 @@
|
||||
<th><?= lang('Tarifaacabado.precioMin') ?></th>
|
||||
<th><?= lang('Tarifaacabado.importeFijo') ?></th>
|
||||
<th><?= lang('Tarifaacabado.mostrar_en_presupuesto') ?></th>
|
||||
<th><?= lang('Tarifaacabado.mostrar_en_presupuesto_cliente') ?></th>
|
||||
<th><?= lang('Tarifaacabado.acabado_cubierta') ?></th>
|
||||
<th><?= lang('Tarifaacabado.acabado_sobrecubierta') ?></th>
|
||||
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
|
||||
@ -95,6 +96,7 @@
|
||||
{ 'data': 'precio_min' },
|
||||
{ 'data': 'importe_fijo' },
|
||||
{ 'data': 'mostrar_en_presupuesto' },
|
||||
{ 'data': 'mostrar_en_presupuesto_cliente' },
|
||||
{ 'data': 'acabado_cubierta' },
|
||||
{ 'data': 'acabado_sobrecubierta' },
|
||||
{ 'data': actionBtns }
|
||||
@ -102,7 +104,7 @@
|
||||
});
|
||||
|
||||
theTable.on( 'draw.dt', function () {
|
||||
const boolCols = [3, 4, 5];
|
||||
const boolCols = [3, 4, 5,6,7];
|
||||
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>' : '';
|
||||
|
||||
@ -46,6 +46,14 @@
|
||||
</label>
|
||||
</div><!--//.form-check -->
|
||||
</div><!--//.mb-3 -->
|
||||
<div class="mb-3">
|
||||
<div class="form-check">
|
||||
<label for="mostrar_en_presupuesto_cliente" class="form-check-label">
|
||||
<input type="checkbox" id="mostrar_en_presupuesto_cliente" name="mostrar_en_presupuesto_cliente" value="1" class="form-check-input" <?= $tarifaEncuadernacionEntity->mostrar_en_presupuesto_cliente == true ? 'checked' : ''; ?>>
|
||||
<?= lang('Tarifaencuadernacion.mostrar_en_presupuesto_cliente') ?>
|
||||
</label>
|
||||
</div><!--//.form-check -->
|
||||
</div><!--//.mb-3 -->
|
||||
</div><!-- //.col -->
|
||||
|
||||
<div class="col-md-12 col-lg-4 px-4">
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
<th><?= lang('Tarifaencuadernacion.nombre') ?></th>
|
||||
<th><?= lang('Tarifaencuadernacion.code') ?></th>
|
||||
<th><?= lang('Tarifaencuadernacion.mostrar_en_presupuesto') ?></th>
|
||||
<th><?= lang('Tarifaencuadernacion.mostrar_en_presupuesto_cliente') ?></th>
|
||||
<th><?= lang('Tarifaencuadernacion.tipo_encuadernacion') ?></th>
|
||||
<th><?= lang('Tarifaencuadernacion.servicio_encuadernacion') ?></th>
|
||||
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
|
||||
@ -91,6 +92,7 @@
|
||||
{ 'data': 'nombre' },
|
||||
{ 'data': 'code' },
|
||||
{ 'data': 'mostrar_en_presupuesto' },
|
||||
{ 'data': 'mostrar_en_presupuesto_cliente' },
|
||||
{ 'data': 'tipo_encuadernacion' },
|
||||
{ 'data': 'servicio_encuadernacion' },
|
||||
{ 'data': actionBtns }
|
||||
@ -98,7 +100,7 @@
|
||||
});
|
||||
|
||||
theTable.on( 'draw.dt', function () {
|
||||
const boolCols = [1,2,3, 4];
|
||||
const boolCols = [1,2,3,4,5];
|
||||
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>' : '';
|
||||
|
||||
@ -81,7 +81,19 @@
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox"
|
||||
id="mostrar_en_presupuesto_cliente"
|
||||
name="mostrar_en_presupuesto_cliente"
|
||||
value="1"
|
||||
class="form-check-input"<?= $tarifaextraEntity->mostrar_en_presupuesto_cliente == true ? 'checked' : ''; ?>
|
||||
>
|
||||
<label for="mostrar_en_presupuesto_cliente" class="form-check-label">
|
||||
<?= lang('Tarifaextra.mostrar_en_presupuesto_cliente') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--//.col -->
|
||||
|
||||
</div><!-- //.row -->
|
||||
@ -1,6 +1,6 @@
|
||||
<?= $this->include("themes/_commonPartialsBs/select2bs5") ?>
|
||||
<?= $this->include("themes/_commonPartialsBs/sweetalert") ?>
|
||||
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
|
||||
<?= $this->extend('themes/vuexy/main/defaultlayout')?>
|
||||
<?= $this->section("content") ?>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?=$this->include('themes/_commonPartialsBs/datatables') ?>
|
||||
<?=$this->extend('themes/vuexy/main/defaultlayout') ?>
|
||||
<?=$this->section('content'); ?>
|
||||
<?=$this->section('content')?>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
<th><?= lang('Tarifaextra.precio') ?></th>
|
||||
<th><?= lang('Tarifaextra.margen') ?></th>
|
||||
<th><?= lang('Tarifaextra.mostrar_en_presupuesto') ?></th>
|
||||
<th><?= lang('Tarifaextra.mostrar_en_presupuesto_cliente') ?></th>
|
||||
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -46,6 +47,9 @@
|
||||
<td class="align-middle">
|
||||
<?= esc($item->mostrar_en_presupuesto)==1?'<i class="ti ti-check"></i>':"" ?>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<?= esc($item->mostrar_en_presupuesto_cliente)==1?'<i class="ti ti-check"></i>':"" ?>
|
||||
</td>
|
||||
<td class="align-middle text-center text-nowrap">
|
||||
<?=anchor(route_to('editTarifaextra', $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('deleteTarifaextra', $item->id), 'data-bs-toggle'=>'modal', 'data-bs-target'=>'#confirm2delete']); ?>
|
||||
|
||||
@ -52,7 +52,14 @@
|
||||
</label>
|
||||
</div><!--//.form-check -->
|
||||
</div><!--//.mb-3 -->
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="form-check">
|
||||
<label for="mostrar_en_presupuesto_cliente" class="form-check-label">
|
||||
<input type="checkbox" id="mostrar_en_presupuesto_cliente" name="mostrar_en_presupuesto_cliente" value="1" class="form-check-input" <?= $tarifaManipuladoEntity->mostrar_en_presupuesto_cliente == true ? 'checked' : ''; ?>>
|
||||
<?= lang('Tarifaencuadernacion.mostrar_en_presupuesto_cliente') ?>
|
||||
</label>
|
||||
</div><!--//.form-check -->
|
||||
</div><!--//.mb-3 -->
|
||||
</div><!--//.col -->
|
||||
|
||||
</div><!-- //.row -->
|
||||
@ -21,6 +21,7 @@
|
||||
<th><?= lang('Tarifamanipulado.importeMinimo') ?></th>
|
||||
<th><?= lang('Tarifamanipulado.importeFijo') ?></th>
|
||||
<th><?= lang('Tarifamanipulado.mostrar_en_presupuesto') ?></th>
|
||||
<th><?= lang('Tarifamanipulado.mostrar_en_presupuesto_cliente') ?></th>
|
||||
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -91,7 +92,8 @@
|
||||
{ 'data': 'code' },
|
||||
{ 'data': 'precio_min' },
|
||||
{ 'data': 'importe_fijo' },
|
||||
{ 'data': 'mostrar_en_presupuesto' },
|
||||
{ 'data': 'mostrar_en_presupuesto',render : (d) => d == true ? '<i class="ti ti-check"></i>' : "" },
|
||||
{ 'data': 'mostrar_en_presupuesto_cliente',render : (d) => d == true ? '<i class="ti ti-check"></i>' : "" },
|
||||
{ 'data': actionBtns }
|
||||
]
|
||||
});
|
||||
|
||||
@ -81,6 +81,19 @@
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox"
|
||||
id="mostrar_en_presupuesto_cliente"
|
||||
name="mostrar_en_presupuesto_cliente"
|
||||
value="1"
|
||||
class="form-check-input"<?= $tarifapreimpresionEntity->mostrar_en_presupuesto_cliente == true ? 'checked' : ''; ?>
|
||||
>
|
||||
<label for="mostrar_en_presupuesto_cliente" class="form-check-label">
|
||||
<?= lang('Tarifaextra.mostrar_en_presupuesto_cliente') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--//.col -->
|
||||
|
||||
</div><!-- //.row -->
|
||||
@ -20,6 +20,7 @@
|
||||
<th><?= lang('Tarifapreimpresion.precio') ?></th>
|
||||
<th><?= lang('Tarifapreimpresion.margen') ?></th>
|
||||
<th><?= lang('Tarifapreimpresion.mostrar_en_presupuesto') ?></th>
|
||||
<th><?= lang('Tarifapreimpresion.mostrar_en_presupuesto_cliente') ?></th>
|
||||
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -45,6 +46,9 @@
|
||||
<td class="align-middle">
|
||||
<?= esc($item->mostrar_en_presupuesto)==1?'<i class="ti ti-check"></i>':"" ?>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<?= esc($item->mostrar_en_presupuesto_cliente)==1?'<i class="ti ti-check"></i>':"" ?>
|
||||
</td>
|
||||
<td class="align-middle text-center text-nowrap">
|
||||
<?=anchor(route_to('editTarifapreimpresion', $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('deleteTarifapreimpresion', $item->id), 'data-bs-toggle'=>'modal', 'data-bs-target'=>'#confirm2delete']); ?>
|
||||
|
||||
@ -50,6 +50,8 @@
|
||||
|
||||
require "menus/wiki_menu.php";
|
||||
|
||||
require "menus/soporte_menu.php";
|
||||
|
||||
require "menus/sistema_menu.php";
|
||||
|
||||
|
||||
|
||||
@ -2,19 +2,16 @@
|
||||
/**
|
||||
* MENU PRESUPUESTOS VISTA CLIENTES
|
||||
*/
|
||||
if (auth()->user()->inGroup('cliente-admin')
|
||||
|| auth()->user()->inGroup('cliente-editor')
|
||||
|| auth()->user()->inGroup('admin')
|
||||
) {
|
||||
|
||||
if (auth()->user()->can('presupuesto-cliente.menu') || auth()->user()->inGroup('admin')) {
|
||||
if(auth()->user()->can('presupuesto-cliente.menu')){
|
||||
|
||||
?>
|
||||
<li class="menu-item">
|
||||
<a href="javascript:void(0);" class="menu-link menu-toggle">
|
||||
<i class="menu-icon tf-icons ti ti-currency-dollar"></i>
|
||||
<?php
|
||||
echo(
|
||||
auth()->user()->inGroup('admin') ?
|
||||
auth()->user()->can('presupuesto.menu') ?
|
||||
lang("App.menu_presupuestos_clientes") :
|
||||
lang("App.menu_presupuestos")
|
||||
);
|
||||
@ -38,6 +35,6 @@ if (auth()->user()->inGroup('cliente-admin')
|
||||
</ul>
|
||||
</li>
|
||||
<?php
|
||||
}
|
||||
|
||||
} ?>
|
||||
|
||||
|
||||
22
ci4/app/Views/themes/vuexy/main/menus/soporte_menu.php
Normal file
22
ci4/app/Views/themes/vuexy/main/menus/soporte_menu.php
Normal file
@ -0,0 +1,22 @@
|
||||
<!-- Soporte -->
|
||||
<li class="menu-item">
|
||||
<a href="javascript:void(0);" class="menu-link menu-toggle">
|
||||
<i class="menu-icon tf-icons ti ti-help"></i>
|
||||
<?= lang("App.menu_soporte") ?>
|
||||
</a>
|
||||
<ul class="menu-sub">
|
||||
|
||||
<li class="menu-item">
|
||||
<a href="<?= route_to("NewTicket") ?>" class="menu-link">
|
||||
<?= lang("App.menu_soporte_new_ticket") ?>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="menu-item">
|
||||
<a href="<?= route_to("TicketIndex") ?>" class="menu-link">
|
||||
<?= lang("App.menu_soporte_ticket_list") ?>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
Reference in New Issue
Block a user