trabajando en el form

This commit is contained in:
2024-06-13 19:23:50 +02:00
parent e491172b28
commit b1734e169b
7 changed files with 339 additions and 19 deletions

View File

@ -132,17 +132,15 @@ class Pedido extends \App\Controllers\BaseResourceController
private function obtenerDatosFormulario(&$pedidoEntity){
$pedidoLineaModel = model('\App\Models\Pedidos\PedidoLineaModel');
$clienteModel = model('\App\Models\Clientes\ClienteModel');
$presupuestoModel = model('\App\Models\Presupuestos\PresupuestoModel');
$datos = $this->model->obtenerDatosForm($pedidoEntity->id);
$linea = $pedidoLineaModel->where('pedido_id', $pedidoEntity->id)->first();
// los clientes son los mismos para todas las lineas de un mismo presupuesto
$presupuesto = $presupuestoModel->find($linea->presupuesto_id);
$cliente = $clienteModel->find($presupuesto->cliente_id);
$pedidoEntity->estadoText = lang('Pedidos.' . $pedidoEntity->estado);
$pedidoEntity->cliente = $cliente->nombre;
$pedidoEntity->cliente_id = $cliente->id;
if(count($datos) > 0){
$pedidoEntity->cliente = $datos[0]->cliente;
$pedidoEntity->cliente_id = $datos[0]->cliente_id;
$pedidoEntity->comercial = $datos[0]->comercial;
}
}
}

View File

@ -21,7 +21,21 @@ return [
'finalizado' => 'Finished',
'enviado' => 'Sent',
'cancelado' => 'Cancelled',
'datosPedido' => 'Order Details',
'totales' => 'Totales',
'total_precio' => 'Total price',
"total_tirada" => 'Total print',
'fechas' => "Dates",
'fecha_entrega_real' => 'Actual Delivery Date',
'fecha_impresion' => 'Printing Date',
'fecha_encuadernado' => 'Binding Date',
'fecha_entrega_externo' => 'External Delivery Date',
'lineas' => 'Lines',
'moduleTitle' => 'Orders',
'pedido' => 'Order',
'pedidos' => 'Orders',

View File

@ -21,6 +21,20 @@ return [
'enviado' => 'Enviado',
'cancelado' => 'Cancelado',
'datosPedido' => 'Datos del pedido',
'totales' => 'Totales',
'total_precio' => 'Total precio',
"total_tirada" => 'Total tirada',
'fechas' => "Fechas",
'fecha_entrega_real' => "Fecha entrega real",
'fecha_impresion' => "Fecha impresion",
'fecha_encuadernado' => "Fecha encuadernado",
'fecha_entrega_externo' => "Fecha entrega externo",
'lineas' => 'Líneas pedido',
'moduleTitle' => 'Pedidos',
'pedido' => 'Pedido',
'pedidos' => 'Pedidos',

View File

@ -53,4 +53,18 @@ class PedidoModel extends \App\Models\BaseModel
public static $labelField = "id";
public function obtenerDatosForm($pedido_id){
$builder = $this->db
->table($this->table . " t1")
->select(
"t4.id AS cliente_id, t4.nombre AS cliente, CONCAT(t5.first_name, ' ', t5.last_name) AS comercial");
$builder->join("pedidos_linea t2", "t2.pedido_id = t1.id", "left");
$builder->join("presupuestos t3", "t2.presupuesto_id = t3.id", "left");
$builder->join("clientes t4", "t4.id = t3.cliente_id", "left");
$builder->join("users t5", "t5.id = t4.comercial_id", "left");
return $builder->get()->getResultObject();
}
}

View File

@ -1,8 +1,9 @@
<div class="accordion accordion-bordered mt-3" id="cabeceraPedido">
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingOne">
<h2 class="accordion-header" id="headingPedido">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionPedidoTip" aria-expanded="false" aria-controls="accordionPedidoTip">
<h4><?= lang("Pedidos.pedido") ?></h4>
<h3><?= lang("Pedidos.datosPedido") ?></h3>
</button>
</h2>
@ -14,31 +15,196 @@
<div class="col-md-12 col-lg-2 px-4">
<div class="mb-1">
<label for="paginas" class="form-label">
<label for="id" class="form-label">
<?= lang('Pedidos.id') ?>
</label>
<input readonly id="id" name="id" tabindex="1" maxLength="11" class="form-control" value="<?= old('id', $pedidoEntity->id) ?>" >
</div>
</div><!--//.mb-3 -->
<div class="col-md-12 col-lg-3 px-4">
<div class="col-md-12 col-lg-4 px-4">
<div class="mb-1">
<label for="paginas" class="form-label">
<label for="cliente" class="form-label">
<?= lang('Pedidos.cliente') ?>
<div class="btn-group btn-group-sm">
<a href="<?= route_to('editarCliente', $pedidoEntity->cliente_id); ?>" target="_blank" ><i class="ti ti-eye ti-sm btn-edit mx-2" data-id="${data.id}"></i></a>
</div>
</label>
<input readonly id="cliente" name="cliente" tabindex="2" maxLength="11" class="form-control" value="<?= old('id', $pedidoEntity->cliente) ?>" >
<input readonly id="cliente" name="cliente" tabindex="2" maxLength="11" class="form-control" value="<?= old('cliente', $pedidoEntity->cliente) ?>" >
</div>
</div><!--//.mb-3 -->
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-1">
<label for="comercial" class="form-label">
<?= lang('Pedidos.comercial') ?>
</label>
<input readonly id="comercial" name="comercial" tabindex="1" maxLength="11" class="form-control" value="<?= old('comercial', $pedidoEntity->comercial) ?>" >
</div>
</div><!--//.mb-3 -->
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-1">
<label for="estadoText" class="form-label">
<?= lang('Pedidos.estado') ?>
</label>
<input readonly id="estadoText" name="estadoText" tabindex="1" maxLength="11" class="form-control" value="<?= old('estadoText', $pedidoEntity->estadoText) ?>" >
</div>
</div><!--//.mb-3 -->
<div class="accordion accordion mt-3 accordion-without-arrow" id="FechasPedido">
<div class="card accordion-item active mt-3 mx-2">
<h2 class="accordion-header" id="headingFechas">
<button type="button" class="accordion-button collapsed" data-bs-toggle="collapse" data-bs-target="#accordionIcon-1" aria-controls="accordionIcon-1">
<?= lang('Pedidos.totales') ?>
</button>
</h2>
<div id="accordionFechasTip" class="accordion show" data-bs-parent="#accordioFechas">
<div class="accordion-body">
<div class="row">
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-1">
<label for="total_precio" class="form-label">
<?= lang('Pedidos.total_precio') ?>
</label>
<input readonly id="total_precio" name="total_precio" tabindex="1" maxLength="11" class="form-control" value="<?= old('total_precio', $pedidoEntity->total_precio) ?>" >
</div>
</div><!--//.mb-3 -->
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-1">
<label for="total_tirada" class="form-label">
<?= lang('Pedidos.total_tirada') ?>
</label>
<input readonly id="total_tirada" name="total_tirada" tabindex="1" maxLength="11" class="form-control" value="<?= old('total_tirada', $pedidoEntity->total_tirada ) ?>" >
</div>
</div><!--//.mb-3 -->
</div>
</div> <!--//accordion-body -->
</div> <!--//accordionFechasTip-->
</div> <!--//card-->
</div>
<div class="accordion accordion mt-3 accordion-without-arrow" id="FechasPedido">
<div class="card accordion-item active mt-3 mx-2">
<h2 class="accordion-header" id="headingFechas">
<button type="button" class="accordion-button collapsed" data-bs-toggle="collapse" data-bs-target="#accordionIcon-1" aria-controls="accordionIcon-1">
<?= lang("Pedidos.fechas") ?>
</button>
</h2>
<div id="accordionFechasTip" class="accordion show" data-bs-parent="#accordioFechas">
<div class="accordion-body">
<div class="row">
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-1">
<label for="fecha_entrega_real" class="form-label">
<?= lang('Pedidos.fecha_entrega_real') ?>
</label>
<input type="text" value="" id="fecha_entrega_real" name="fecha_entrega_real" tabindex="1" maxLength="11" class="form-control" value="<?= old('fecha_entrega_real', $pedidoEntity->fecha_entrega_real) ?>" >
</div>
</div>
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-1">
<label for="fecha_impresion" class="form-label">
<?= lang('Pedidos.fecha_impresion') ?>
</label>
<input type="text" id="fecha_impresion" name="fecha_impresion" tabindex="1" maxLength="11" class="form-control" value="<?= old('fecha_impresion', $pedidoEntity->fecha_impresion) ?>" >
</div>
</div>
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-1">
<label for="fecha_encuadernado" class="form-label">
<?= lang('Pedidos.fecha_encuadernado') ?>
</label>
<input type="text" id="fecha_encuadernado" name="fecha_encuadernado" tabindex="1" maxLength="11" class="form-control" value="<?= old('fecha_encuadernado', $pedidoEntity->fecha_encuadernado) ?>" >
</div>
</div>
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-1">
<label for="fecha_entrega_externo" class="form-label">
<?= lang('Pedidos.fecha_entrega_externo') ?>
</label>
<input type="text" id="fecha_entrega_externo" name="fecha_entrega_externo" tabindex="1" maxLength="11" class="form-control" value="<?= old('fecha_entrega_externo', $pedidoEntity->fecha_entrega_externo) ?>" >
</div>
</div>
</div>
</div>
</div> <!--//accordionFechasTip-->
</div> <!--//card-->
</div>
</div>
</div>
</div>
</div>
</div>
<?=$this->section('additionalInlineJs') ?>
$("#fecha_entrega_real").flatpickr({
dateFormat: "d/m/Y",
locale: {
firstDayOfWeek: 1,
weekdays: {
shorthand: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
longhand: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
},
months: {
shorthand: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Оct', 'Nov', 'Dic'],
longhand: ['Enero', 'Febreo', 'Мarzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
},
},
});
$("#fecha_impresion").flatpickr({
dateFormat: "d/m/Y",
locale: {
firstDayOfWeek: 1,
weekdays: {
shorthand: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
longhand: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
},
months: {
shorthand: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Оct', 'Nov', 'Dic'],
longhand: ['Enero', 'Febreo', 'Мarzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
},
},
});
$("#fecha_encuadernado").flatpickr({
dateFormat: "d/m/Y",
locale: {
firstDayOfWeek: 1,
weekdays: {
shorthand: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
longhand: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
},
months: {
shorthand: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Оct', 'Nov', 'Dic'],
longhand: ['Enero', 'Febreo', 'Мarzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
},
},
});
$("#fecha_entrega_externo").flatpickr({
dateFormat: "d/m/Y",
locale: {
firstDayOfWeek: 1,
weekdays: {
shorthand: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
longhand: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
},
months: {
shorthand: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Оct', 'Nov', 'Dic'],
longhand: ['Enero', 'Febreo', 'Мarzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
},
},
});
<?=$this->endSection() ?>

View File

@ -0,0 +1,103 @@
<div class="accordion accordion-bordered mt-3" id="accordioLineas">
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingLineas">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionLineasTip" aria-expanded="false" aria-controls="accordionLineasTip">
<h3><?= lang("Pedidos.lineas") ?></h3>
</button>
</h2>
<div id="accordionLineasTip" class="accordion-collapse collapse show" data-bs-parent="#accordioLineas">
<div class="accordion-body">
<table id="tableOfLineasPedido" class="table table-striped table-hover" style="width: 100%;">
<thead>
<tr>
<th><?=lang('Presupuestos.id')?></th>
<th><?= lang('Presupuestos.created_at') ?></th>
<th><?= lang('Presupuestos.tipoPresupuesto') ?></th>
<th><?= lang('Clientes.cliente') ?></th>
<th><?= lang('Presupuestos.comercial') ?></th>
<th><?= lang('Presupuestos.titulo') ?></th>
<th><?= lang('Paises.pais') ?></th>
<th><?= lang('Presupuestos.incRei') ?></th>
<th class='noFilter'><?= lang('Presupuestos.paginas') ?></th>
<th class='noFilter'><?= lang('Presupuestos.tirada') ?></th>
<th class='noFilter'><?= lang('Presupuestos.totalPresupuesto') ?></th>
<th><?= lang('Presupuestos.presupuestoEstado') ?></th>
<th class="noFilter text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div> <!-- /.accordion-body -->
</div>
</div>
</div>
<?=$this->section('additionalInlineJs') ?>
$("#fecha_entrega_real").flatpickr({
dateFormat: "d/m/Y",
locale: {
firstDayOfWeek: 1,
weekdays: {
shorthand: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
longhand: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
},
months: {
shorthand: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Оct', 'Nov', 'Dic'],
longhand: ['Enero', 'Febreo', 'Мarzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
},
},
});
$("#fecha_impresion").flatpickr({
dateFormat: "d/m/Y",
locale: {
firstDayOfWeek: 1,
weekdays: {
shorthand: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
longhand: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
},
months: {
shorthand: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Оct', 'Nov', 'Dic'],
longhand: ['Enero', 'Febreo', 'Мarzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
},
},
});
$("#fecha_encuadernado").flatpickr({
dateFormat: "d/m/Y",
locale: {
firstDayOfWeek: 1,
weekdays: {
shorthand: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
longhand: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
},
months: {
shorthand: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Оct', 'Nov', 'Dic'],
longhand: ['Enero', 'Febreo', 'Мarzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
},
},
});
$("#fecha_entrega_externo").flatpickr({
dateFormat: "d/m/Y",
locale: {
firstDayOfWeek: 1,
weekdays: {
shorthand: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
longhand: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
},
months: {
shorthand: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Оct', 'Nov', 'Dic'],
longhand: ['Enero', 'Febreo', 'Мarzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
},
},
});
<?=$this->endSection() ?>

View File

@ -16,6 +16,7 @@
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
<?= view("themes/vuexy/form/pedidos/_cabeceraItems") ?>
<?= view("themes/vuexy/form/pedidos/_lineasItems") ?>
</div><!-- /.card-body -->
<div class="pt-4">
<?= anchor(route_to("listaPresupuestos"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start"]) ?>
@ -24,4 +25,14 @@
</div><!-- //.card -->
</div><!--//.col -->
</div><!--//.row -->
<?= $this->endSection() ?>
<?= $this->endSection() ?>
<?=$this->section('css') ?>
<link rel="stylesheet" href="<?= site_url("/themes/vuexy/vendor/libs/flatpickr/flatpickr.css") ?>">
<?=$this->endSection() ?>
<?= $this->section('additionalExternalJs') ?>
<script src="<?= site_url("/themes/vuexy/vendor/libs/flatpickr/flatpickr.js") ?>"></script>
<?=$this->endSection() ?>