mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
trabajando en servicios encuadernacion (init)
This commit is contained in:
@ -140,6 +140,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$this->viewData['clienteList'] = $this->getClienteListItems($presupuestoEntity->cliente_id ?? null);
|
||||
$this->viewData['incReiList'] = array('incidencia' => lang('Presupuestos.incidencia'), 'reimpresion' => lang('Presupuestos.reimpresion'), 'sin_cargo' => lang('Presupuestos.sinCargo'));
|
||||
$this->viewData['paisList'] = $this->getPaisListItems();
|
||||
$this->viewData['papelFormatoList'] = $this->getPapelFormatoListItems($presupuestoEntity->papel_formato_id ?? null);
|
||||
|
||||
$this->viewData['tipo_impresion_id'] = 4; // Cosido tapa blanda JJO
|
||||
|
||||
|
||||
@ -257,6 +257,7 @@ class Tarifaencuadernacionlineas extends \App\Controllers\GoBaseResourceControll
|
||||
Field::inst('updated_at'),
|
||||
Field::inst('is_deleted'),
|
||||
Field::inst('deleted_at'),
|
||||
Field::inst('dimensiones_id'),
|
||||
|
||||
)
|
||||
->validator(function ($editor, $action, $data) {
|
||||
@ -266,6 +267,7 @@ class Tarifaencuadernacionlineas extends \App\Controllers\GoBaseResourceControll
|
||||
if ($data['data'][$pkey]['is_deleted'] != 1) {
|
||||
$process_data['paginas_libro_min'] = $data['data'][$pkey]['paginas_libro_min'];
|
||||
$process_data['paginas_libro_max'] = $data['data'][$pkey]['paginas_libro_max'];
|
||||
$process_data['dimensiones_id'] = $data['data'][$pkey]['dimensiones_id'];
|
||||
$response = $this->model->checkIntervals($process_data, $pkey, $data['data'][$pkey]['tirada_encuadernacion_id']);
|
||||
// No se pueden duplicar valores al crear o al editar
|
||||
if (!empty($response)) {
|
||||
|
||||
@ -10,6 +10,7 @@ use App\Entities\Tarifas\TarifaEncuadernacionEntity;
|
||||
use App\Models\Tarifas\TarifaEncuadernacionModel;
|
||||
use App\Models\Compras\ProveedorModel;
|
||||
use App\Models\Compras\ProveedorTipoModel;
|
||||
use App\Models\Tarifas\TarifaEncuadernacionDimensionesModel;
|
||||
|
||||
|
||||
class Tarifasencuadernacion extends \App\Controllers\GoBaseResourceController
|
||||
@ -221,6 +222,7 @@ class Tarifasencuadernacion extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
//JJO
|
||||
$this->viewData['proveedores'] = $this->getProveedores();
|
||||
$this->viewData['dimensiones'] = $this->getDimensiones();
|
||||
|
||||
return $this->displayForm(__METHOD__, $id);
|
||||
} // end function edit(...)
|
||||
@ -311,4 +313,14 @@ class Tarifasencuadernacion extends \App\Controllers\GoBaseResourceController
|
||||
$tipoId = $provTipoModel->getTipoId("Encuadernacion");
|
||||
return $provModel->getProvList($tipoId);
|
||||
}
|
||||
|
||||
private function getDimensiones(){
|
||||
$dimensionModel = new TarifaEncuadernacionDimensionesModel();
|
||||
|
||||
$dimensiones = $dimensionModel->getDimensiones();
|
||||
foreach($dimensiones as $dim){
|
||||
$dim->label= lang("TarifaEncuadernacionLineas." . $dim->label);
|
||||
}
|
||||
return $dimensiones;
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,7 +17,20 @@ class Test extends BaseController
|
||||
|
||||
public function index()
|
||||
{
|
||||
var_dump($this->get_tarifas_encuadernacion(4, true));
|
||||
echo '<pre>';
|
||||
$this->get_dimensiones_enc();
|
||||
echo '</pre>';
|
||||
}
|
||||
|
||||
public function get_dimensiones_enc(){
|
||||
$dimensionModel = model('App\Models\Tarifas\TarifaEncuadernacionDimensionesModel');
|
||||
|
||||
$dimensiones = $dimensionModel->getDimensiones();
|
||||
var_dump($dimensiones);
|
||||
foreach($dimensiones as $dim){
|
||||
$dim->label= lang("TarifaEncuadernacionLineas." . $dim->label);
|
||||
}
|
||||
var_dump($dimensiones);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
namespace App\Entities\Tarifas;
|
||||
|
||||
use CodeIgniter\Entity;
|
||||
|
||||
class TarifaEncuadernacionDimensionesEntity extends \CodeIgniter\Entity\Entity
|
||||
{
|
||||
protected $attributes = [
|
||||
"id" => null,
|
||||
"keyword" => "",
|
||||
"descripcion" => "",
|
||||
"ancho_min" => 0,
|
||||
"ancho_max" => 0,
|
||||
"alto_min" => 0,
|
||||
"alto_max" => 0,
|
||||
];
|
||||
protected $casts = [
|
||||
"id" => "int",
|
||||
"ancho_min" => "float",
|
||||
"ancho_max" => "float",
|
||||
"alto_min" => "float",
|
||||
"alto_max" => "float",
|
||||
];
|
||||
}
|
||||
@ -142,6 +142,8 @@ return [
|
||||
|
||||
'addLineaPresupuesto' => 'Add line...',
|
||||
|
||||
'serviciosEncDefault' => 'Default binding services',
|
||||
|
||||
'validation' => [
|
||||
'decimal' => 'The {field} field must contain a decimal number.',
|
||||
'integer' => 'The {field} field must contain an integer.',
|
||||
|
||||
@ -11,6 +11,11 @@ return [
|
||||
'precioUnidad' => 'Price Unit',
|
||||
'paginasMax' => 'Max Pages',
|
||||
'paginasMin' => 'Min Pages',
|
||||
'dimensiones' => 'Dimensions',
|
||||
'menor_a5' =>'Less than A5',
|
||||
'entre_a5_a4' =>'Between A5 and A4',
|
||||
'mayor_a4' =>'Greater than A4',
|
||||
'por_defecto' =>'Generic',
|
||||
'moduleExplanation' => 'The number of pages indicated in this section refers per copy, not to the total of the order.',
|
||||
'margen' => 'Margin',
|
||||
'validation' => [
|
||||
|
||||
@ -167,6 +167,7 @@ return [
|
||||
// Servicios
|
||||
'precioUnidad' => 'Precio unitario',
|
||||
'precioTotal' => 'Precio total',
|
||||
'serviciosEncDefault' => 'Servicios Enc. por defecto',
|
||||
|
||||
|
||||
'validation' => [
|
||||
|
||||
@ -13,6 +13,11 @@ return [
|
||||
'precioUnidad' => 'Precio Unidad',
|
||||
'paginasMax' => 'Páginas Max',
|
||||
'paginasMin' => 'Páginas Min',
|
||||
'dimensiones' => 'Dimensiones',
|
||||
'menor_a5' =>'Menor A5',
|
||||
'entre_a5_a4' =>'Entre A5 y A4',
|
||||
'mayor_a4' =>'Mayor A4',
|
||||
'por_defecto' =>'Genérico',
|
||||
'moduleExplanation' => 'El número de páginas reflejado en este apartado se refiere por ejemplar, no al total del pedido',
|
||||
'margen' => 'Margen',
|
||||
'validation' => [
|
||||
|
||||
@ -46,10 +46,23 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel
|
||||
|
||||
|
||||
|
||||
public function initPresupuesto($tipoPresupuesto, $solapas){
|
||||
public function initPresupuesto($id_presupuesto,$tipoPresupuesto, $solapas){
|
||||
|
||||
$model = model('App\Models\Presupuestos\TipoPresupuestoTarifaEncuadernacionModel');
|
||||
$tarifas_ids = $model->get_tarifas($tipo_presupuesto,$solapas);
|
||||
|
||||
$modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel');
|
||||
|
||||
foreach($tarifas_ids as $tarifa){
|
||||
/* $data = [
|
||||
'id' => new RawSql('DEFAULT'),
|
||||
'title' => 'My title',
|
||||
'name' => 'My Name',
|
||||
'date' => '2022-01-01',
|
||||
'last_update' => new RawSql('CURRENT_TIMESTAMP()'),
|
||||
];
|
||||
$modelTarifa->getMejorPrecio($tirada, $paginas)*/
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($presupuesto_id){
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
namespace App\Models\Tarifas;
|
||||
|
||||
class TarifaEncuadernacionDimensionesModel extends \App\Models\GoBaseModel
|
||||
{
|
||||
protected $table = "tarifa_encuadernacion_dimensiones";
|
||||
|
||||
/**
|
||||
* Whether primary key uses auto increment.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $useAutoIncrement = true;
|
||||
|
||||
protected $allowedFields = [
|
||||
|
||||
];
|
||||
protected $returnType = "App\Entities\Tarifas\TarifaEncuadernacionDimensionesEntity";
|
||||
|
||||
public static $labelField = "descripcion";
|
||||
|
||||
protected $validationRules = [
|
||||
|
||||
];
|
||||
|
||||
protected $validationMessages = [
|
||||
|
||||
];
|
||||
|
||||
/**
|
||||
* Get resource data.
|
||||
*
|
||||
* @param string $search
|
||||
*
|
||||
* @return \CodeIgniter\Database\BaseBuilder
|
||||
*/
|
||||
public function getDimensiones(){
|
||||
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select("t1.id AS value, t1.keyword AS label")
|
||||
->orderBy('t1.id', 'asc');
|
||||
|
||||
return $builder->get()->getResultObject();
|
||||
}
|
||||
}
|
||||
@ -13,10 +13,11 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel
|
||||
protected $useAutoIncrement = true;
|
||||
|
||||
const SORTABLE = [
|
||||
0 => "t1.paginas_libro_min",
|
||||
1 => "t1.paginas_libro_max",
|
||||
2 => "t1.precio_min",
|
||||
3 => "t1.precio_max",
|
||||
0 => "t1.dimensiones_id",
|
||||
1 => "t1.paginas_libro_min",
|
||||
2 => "t1.paginas_libro_max",
|
||||
3 => "t1.precio_min",
|
||||
4 => "t1.precio_max",
|
||||
];
|
||||
|
||||
protected $allowedFields = [
|
||||
@ -117,13 +118,16 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
"t1.id AS id, t1.tirada_encuadernacion_id AS tirada_encuadernacion_id, t1.paginas_libro_min AS paginas_libro_min, t1.paginas_libro_max AS paginas_libro_max, t1.precio_min AS precio_min, t1.precio_max AS precio_max, t1.tirada_min AS tirada_min, t1.tirada_max AS tirada_max, t1.margen AS margen, t2.id AS tarifa_encuadernacion"
|
||||
"t1.id AS id, t1.tirada_encuadernacion_id AS tirada_encuadernacion_id, t1.paginas_libro_min AS paginas_libro_min, t1.paginas_libro_max AS paginas_libro_max, t1.precio_min AS precio_min, t1.precio_max AS precio_max, t1.tirada_min AS tirada_min,
|
||||
t1.tirada_max AS tirada_max, t1.margen AS margen, t2.id AS tarifa_encuadernacion, t3.id AS dimensiones_id, t3.ancho_min, t3.ancho_max, , t3.alto_min, t3.alto_max"
|
||||
);
|
||||
//JJO
|
||||
$builder->where('tirada_encuadernacion_id', $tirada_encuadernacion_id);
|
||||
$builder->where("t1.is_deleted", 0);
|
||||
|
||||
$builder->join("tarifa_encuadernacion_tiradas t2", "t1.tirada_encuadernacion_id = t2.id", "left");
|
||||
$builder->join("tarifa_encuadernacion_dimensiones t3", "t1.dimensiones_id = t3.id", "left");
|
||||
|
||||
|
||||
|
||||
return empty($search)
|
||||
@ -151,7 +155,7 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel
|
||||
|
||||
$rows = $this->db
|
||||
->table($this->table)
|
||||
->select("id, paginas_libro_min, paginas_libro_max")
|
||||
->select("id, paginas_libro_min, paginas_libro_max, dimensiones_id")
|
||||
->where("is_deleted", 0)
|
||||
->where("tirada_encuadernacion_id", $tirada_encuadernacion_id)
|
||||
->get()->getResultObject();
|
||||
@ -163,9 +167,11 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if(check_overlap(floatval($data["paginas_libro_min"]), floatval($data["paginas_libro_max"]),
|
||||
$row->paginas_libro_min, $row->paginas_libro_max)){
|
||||
return lang('TarifaEncuadernacionLineas.validation.error_paginas_overlap');
|
||||
if($data['dimensiones_id'] == $row->dimensiones_id){
|
||||
if(check_overlap(floatval($data["paginas_libro_min"]), floatval($data["paginas_libro_max"]),
|
||||
$row->paginas_libro_min, $row->paginas_libro_max)){
|
||||
return lang('TarifaEncuadernacionLineas.validation.error_paginas_overlap');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -95,7 +95,7 @@
|
||||
<label for="merma" class="form-label">
|
||||
<?= lang('Presupuestos.merma') ?>*
|
||||
</label>
|
||||
<input type="number" id="merma" name="merma" maxLength="8" tabindex="4" step="1" class="form-control" value="<?= old('merma', $presupuestoEntity->merma) ?>">
|
||||
<input type="number" id="merma" name="merma" maxLength="8" tabindex="4" step="1" placeholder="10" class="form-control" value="<?= old('merma', $presupuestoEntity->merma) ?>">
|
||||
</div><!--//.mb-3 -->
|
||||
</div><!--//.col -->
|
||||
|
||||
@ -136,6 +136,7 @@
|
||||
|
||||
|
||||
<!----------------------------------------------------------------------------->
|
||||
<?php if(str_contains($formAction,'edit')): ?>
|
||||
|
||||
<div class="divider divider-dark text-start mb-1">
|
||||
<div class="divider-text">
|
||||
@ -259,6 +260,7 @@
|
||||
</div><!--//.col -->
|
||||
|
||||
</div> <!--//.row -->
|
||||
<?php endif; ?>
|
||||
|
||||
</div> <!-- //.accordion-body -->
|
||||
</div> <!-- //.accordion-collapse -->
|
||||
@ -269,6 +271,10 @@
|
||||
<!-- Código JS comportamiento general pag. -->
|
||||
<!------------------------------------------->
|
||||
<?= $this->section("additionalInlineJs") ?>
|
||||
$('#papelFormatoId').select2({
|
||||
allowClear: false,
|
||||
});
|
||||
|
||||
$('#papelFormatoPersonalizado').on("click",function(){
|
||||
var checkbox = document.getElementById('papelFormatoPersonalizado');
|
||||
if(checkbox.checked == true){
|
||||
|
||||
@ -491,10 +491,6 @@
|
||||
minimumResultsForSearch: Infinity,
|
||||
});
|
||||
|
||||
$('#papelFormatoId').select2({
|
||||
allowClear: false,
|
||||
});
|
||||
|
||||
updatePapelesComparador();
|
||||
const paginasColor = document.getElementById('compCalPaginasColor');
|
||||
if (paginasColor.value.length > 0) {
|
||||
|
||||
@ -94,6 +94,11 @@
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade" id="servicios-encuadernacion" role="tabpanel">
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-4 px-4">
|
||||
<?= anchor(route_to(""), lang("Presupuestos.serviciosEncDefault"), ["class" => "btn btn-dark float-start me-sm-3 me-1",]) ?>
|
||||
</div>
|
||||
</div>
|
||||
<table id="tableOfServiciosEncuadernacion" class="table table-striped table-hover" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
@ -18,8 +18,8 @@
|
||||
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
|
||||
<input type="hidden" name="tipo_impresion_id" id="tipo_impresion_id" class="form-control" value="<?= $tipo_impresion_id ?>"></input>
|
||||
<?= view("themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoItems") ?>
|
||||
<?= view("themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems") ?>
|
||||
<?php if(str_contains($formAction,'edit')): ?>
|
||||
<?= view("themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems") ?>
|
||||
<?= view("themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems") ?>
|
||||
<?= view("themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems") ?>
|
||||
<?= view("themes/backend/vuexy/form/presupuestos/cosidotapablanda/_previewItems") ?>
|
||||
|
||||
@ -75,6 +75,8 @@
|
||||
<table id="tableOfTarifaencuadernacionlineas" class="table table-striped table-hover" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th><?= lang('TarifaEncuadernacionLineas.dimensiones') ?></th>
|
||||
<th><?= lang('TarifaEncuadernacionLineas.paginasMin') ?></th>
|
||||
<th><?= lang('TarifaEncuadernacionLineas.precioMax') ?></th>
|
||||
<th><?= lang('TarifaEncuadernacionLineas.paginasMax') ?></th>
|
||||
@ -171,7 +173,13 @@
|
||||
},
|
||||
table : "#tableOfTarifaencuadernacionlineas",
|
||||
idSrc: 'id',
|
||||
fields: [ {
|
||||
fields: [
|
||||
{name: "id"},
|
||||
{
|
||||
name: "dimensiones_id",
|
||||
"type": "select"
|
||||
},
|
||||
{
|
||||
name: "paginas_libro_min"
|
||||
}, {
|
||||
name: "precio_max"
|
||||
@ -194,6 +202,9 @@
|
||||
]
|
||||
} );
|
||||
|
||||
// Generación de la lista de proveedores (id, nombre) para encuadernación
|
||||
const dimensionesList = <?php echo json_encode($dimensiones); ?>;
|
||||
editor.field( 'dimensiones_id' ).update( dimensionesList );
|
||||
|
||||
editor.on( 'preSubmit', function ( e, d, type ) {
|
||||
if ( type === 'create'){
|
||||
@ -243,6 +254,13 @@
|
||||
async: true,
|
||||
}),
|
||||
columns: [
|
||||
{ 'data': 'id' },
|
||||
{ 'data': 'dimensiones_id',
|
||||
render: function(data, type, row, meta) {
|
||||
var value = dimensionesList.find(element => element.value === data);
|
||||
return value['label'];
|
||||
},
|
||||
},
|
||||
{ 'data': 'paginas_libro_min' },
|
||||
{ 'data': 'precio_max' },
|
||||
{ 'data': 'paginas_libro_max' },
|
||||
@ -401,6 +419,7 @@
|
||||
|
||||
// Tabla de tiradas
|
||||
var theTable2 = $('#tableOfTarifaencuadernaciontiradas').DataTable( {
|
||||
draw:1,
|
||||
serverSide: true,
|
||||
processing: true,
|
||||
autoWidth: true,
|
||||
|
||||
Reference in New Issue
Block a user