añadidas caracteristicas a tarifas acabados para cubierta y sobre cubierta. Añadido en el presupuesto

This commit is contained in:
Jaime Jiménez
2024-02-21 09:35:56 +01:00
parent 48921897be
commit 8be1086e4e
11 changed files with 163 additions and 19 deletions

View File

@ -344,6 +344,10 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$this->viewData['papelGenericoRotativaNegroList'] = $this->getPapelGenericoRotativaNegro();
$this->viewData['papelGenericoRotativaColorList'] = $this->getPapelGenericoRotativaColor();
// Acabados exteriores
$this->viewData['acabadosCubierta'] = $this->getAcabadosCubierta();
$this->viewData['acabadosSobrecubierta'] = $this->getAcabadosSobrecubierta();
// Lineas Presupuesto
$this->viewData['lineasPresupuesto'] = (new PresupuestoLineaModel())->getLineasPresupuesto($id);
@ -1223,15 +1227,26 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
}
protected function getPapelFormatoListItems($selId = null)
protected function getAcabadosCubierta()
{
$papelFormatoModel = model('App\Models\Configuracion\PapelFormatoModel');
$data = $papelFormatoModel->getElementsForMenu();
$model = model('App\Models\Tarifas\TarifaacabadoModel');
$data = $model->getServiciosAcabadoCubierta();
array_shift($data);
array_unshift($data, (object)['id' => '', 'tamanio' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papelFormatoId'))])]);
array_unshift($data, (object)['id' => '', 'label' => lang('Basic.global.None')]);
return $data;
}
protected function getAcabadosSobrecubierta()
{
$model = model('App\Models\Tarifas\TarifaacabadoModel');
$data = $model->getServiciosAcabadoSobrecubierta();
array_shift($data);
array_unshift($data, (object)['id' => '', 'label' => lang('Basic.global.None')]);
return $data;
}
protected function getPapelGenericoRotativaNegro()
{
@ -1347,10 +1362,15 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
{
$model = model('App\Models\Tarifas\TarifaEncuadernacionModel');
$data = $model->getServiciosEncuadernacionSelector();
/*array_unshift($data, (object)array(
"value" => 0,
"label" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.servicioEncuadernado'))])
));*/
return $data;
}
protected function getPapelFormatoListItems($selId = null)
{
$papelFormatoModel = model('App\Models\Configuracion\PapelFormatoModel');
$data = $papelFormatoModel->getElementsForMenu();
array_shift($data);
array_unshift($data, (object)['id' => '', 'tamanio' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papelFormatoId'))])]);
return $data;
}
@ -1358,10 +1378,6 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
{
$model = model('App\Models\Tarifas\TarifaacabadoModel');
$data = $model->getServiciosAcabadoSelector();
/*array_unshift($data, (object)array(
"value" => 0,
"label" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.servicioAcabado'))])
));*/
return $data;
}

View File

@ -84,10 +84,19 @@ class Tarifaacabado extends \App\Controllers\GoBaseResourceController
// JJO
$sanitizedData['user_created_id'] = $session->id_user;
if ($this->request->getPost('mostrar_en_presupuesto') == null) {
$sanitizedData['mostrar_en_presupuesto'] = false;
}
if ($this->request->getPost('acabado_cubierta') == null) {
$sanitizedData['acabado_cubierta'] = false;
}
if ($this->request->getPost('acabado_sobrecubierta') == null) {
$sanitizedData['acabado_sobrecubierta'] = false;
}
$noException = true;
if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) :
@ -166,9 +175,18 @@ class Tarifaacabado extends \App\Controllers\GoBaseResourceController
// JJO
$sanitizedData['user_updated_id'] = $session->id_user;
if ($this->request->getPost('mostrar_en_presupuesto') == null) {
$sanitizedData['mostrar_en_presupuesto'] = false;
}
if ($this->request->getPost('acabado_cubierta') == null) {
$sanitizedData['acabado_cubierta'] = false;
}
if ($this->request->getPost('acabado_sobrecubierta') == null) {
$sanitizedData['acabado_sobrecubierta'] = false;
}
$noException = true;

View File

@ -82,6 +82,8 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"total_descuentoPercent" => null,
"total_presupuesto" => null,
"total_precio_unidad" => null,
"acabado_cubierta_id" => null,
"acabado_sobrecubierta_id" => null,
];
protected $casts = [
"cliente_id" => "int",
@ -139,5 +141,7 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"total_descuentoPercent" => "?float",
"total_presupuesto" => "?float",
"total_precio_unidad" => "?float",
"acabado_cubierta_id" => "int",
"acabado_sobrecubierta_id" => "int",
];
}

View File

@ -11,6 +11,8 @@ class TarifaacabadoEntity extends \CodeIgniter\Entity\Entity
"precio_min" => 0,
"importe_fijo" => 0,
"mostrar_en_presupuesto" => 1,
"acabado_cubierta" => 0,
"acabado_sobrecubierta" => 0,
"user_created_id" => 0,
"user_updated_id" => 0,
"is_deleted" => 0,
@ -21,7 +23,6 @@ class TarifaacabadoEntity extends \CodeIgniter\Entity\Entity
protected $casts = [
"precio_min" => "float",
"importe_fijo" => "float",
"mostrar_en_presupuesto" => "int",
"user_created_id" => "int",
"user_updated_id" => "int",
"is_deleted" => "int",

View File

@ -44,6 +44,9 @@ return [
'papelFormatoPersonalizado' => 'Tamaño personalizado',
'papelFormatoAncho' => 'Ancho',
'papelFormatoAlto' => 'Alto',
'acabadosExteriores' => 'Acabados exteriores',
'acabadoCubierta' => 'Acabado Cubierta',
'acabadoSobrecubierta' => 'Acabado Sobrecubierta',
'cosido' => 'Cosido',
'ferro' => 'Ferro',
'ferroDigital' => 'Ferro Digital',

View File

@ -12,6 +12,8 @@ return [
'precioMin' => 'Precio Mínimo',
'importeFijo' => 'Importe Fijo',
'mostrar_en_presupuesto' => 'Mostrar en presupuesto',
"acabado_cubierta" => "Acabado cubierta",
"acabado_sobrecubierta" => "Acabado sobrecubierta",
'tarifaacabado' => 'Tarifa Acabado',
'tarifaacabadoList' => 'Lista Tarifas Acabado',
'tarifasacabado' => 'Tarifas Acabado',

View File

@ -100,6 +100,8 @@ class PresupuestoModel extends \App\Models\GoBaseModel
"total_descuentoPercent",
"total_presupuesto",
"total_precio_unidad",
"acabado_cubierta_id",
"acabado_sobrecubierta_id",
];
protected $returnType = "App\Entities\Presupuestos\PresupuestoEntity";

View File

@ -24,6 +24,8 @@ class TarifaacabadoModel extends \App\Models\GoBaseModel
"precio_min",
"importe_fijo",
"mostrar_en_presupuesto",
"acabado_cubierta",
"acabado_sobrecubierta",
"deleted_at",
"is_deleted",
"user_created_id",
@ -81,7 +83,8 @@ class TarifaacabadoModel extends \App\Models\GoBaseModel
public function getResource(string $search = "")
{
$builder = $this->db->table($this->table . " t1")->select(
"t1.id AS id, t1.nombre AS nombre, t1.precio_min AS precio_min, t1.importe_fijo AS importe_fijo, t1.mostrar_en_presupuesto AS mostrar_en_presupuesto"
"t1.id AS id, t1.nombre AS nombre, t1.precio_min AS precio_min, t1.importe_fijo AS importe_fijo,
t1.mostrar_en_presupuesto AS mostrar_en_presupuesto, t1.acabado_cubierta AS acabado_cubierta, t1.acabado_sobrecubierta AS acabado_sobrecubierta"
);
//JJO
@ -117,7 +120,7 @@ class TarifaacabadoModel extends \App\Models\GoBaseModel
->table($this->table . " t1")
->select(
"t1.id AS tarifa_acabado_id, t1.nombre AS tarifa_acabado_nombre, t1.precio_min AS tarifa_precio_min, t1.importe_fijo AS tarifa_importe_fijo,
t2.id AS tarifa_linea_id, t2.tirada_min AS tirada_min, t2.tirada_max AS tirada_max,
t1.acabado_cubierta AS acabado_cubierta, t1.acabado_sobrecubierta AS acabado_sobrecubierta, t2.id AS tarifa_linea_id, t2.tirada_min AS tirada_min, t2.tirada_max AS tirada_max,
t2.precio_min AS precio_min, t2.precio_max AS precio_max, t2.margen AS margen"
)
->join("tarifa_acabado_lineas t2", "t1.id = t2.tarifa_acabado_id", "left")
@ -148,4 +151,33 @@ class TarifaacabadoModel extends \App\Models\GoBaseModel
return $builder->orderBy("t1.nombre", "asc")->get()->getResultObject();
}
public function getServiciosAcabadoCubierta()
{
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.id as id, t1.nombre AS label"
)
->where("t1.is_deleted", 0)
->where("t1.mostrar_en_presupuesto", 1)
->where("t1.acabado_cubierta", 1);
return $builder->orderBy("t1.id", "asc")->get()->getResultObject();
}
public function getServiciosAcabadoSobrecubierta()
{
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.id as id, t1.nombre AS label"
)
->where("t1.is_deleted", 0)
->where("t1.mostrar_en_presupuesto", 1)
->where("t1.acabado_sobrecubierta", 1);
return $builder->orderBy("t1.id", "asc")->get()->getResultObject();
}
}

View File

@ -167,12 +167,57 @@
</div>
<!----------------------------------------------------------------------------->
<?php if(str_contains($formAction,'edit')): ?>
<div class="divider divider-dark text-start mb-1">
<div class="divider-text">
<h5><?= lang("Presupuestos.acabadosExteriores") ?></h5>
</div>
</div>
<div class="row">
<div class="col-md-12 col-lg-6 px-4">
<div class="row">
<div class="mb-1">
<label id="label_papelFormatoId" for="papelFormatoId" class="form-label">
<?= lang('Presupuestos.acabadoCubierta') ?>*
</label>
<select id="papelFormatoId" name="papel_formato_id" tabindex="3" class="form-control select2bs2" style="width: 100%;">
<?php if (isset($acabadosCubierta) && is_array($acabadosCubierta) && !empty($acabadosCubierta)) :
foreach ($acabadosCubierta as $acabado) : ?>
<option value="<?= $acabado->id ?>" <?= $acabado->id == $presupuestoEntity->acabado_cubierta_id ? ' selected' : '' ?>>
<?= $acabado->label ?>
</option>
<?php endforeach;
endif; ?>
</select>
</div>
</div>
</div>
<div class="col-md-12 col-lg-6 px-4">
<div class="row">
<div class="mb-1">
<label id="label_papelFormatoId" for="papelFormatoId" class="form-label">
<?= lang('Presupuestos.acabadoSobrecubierta') ?>*
</label>
<select id="papelFormatoId" name="papel_formato_id" tabindex="3" class="form-control select2bs2" style="width: 100%;">
<?php if (isset($acabadosSobrecubierta) && is_array($acabadosSobrecubierta) && !empty($acabadosSobrecubierta)) :
foreach ($acabadosSobrecubierta as $acabado) : ?>
<option value="<?= $acabado->id ?>" <?= $acabado->id == $presupuestoEntity->acabado_sobrecubierta_id ? ' selected' : '' ?>>
<?= $acabado->label ?>
</option>
<?php endforeach;
endif; ?>
</select>
</div>
</div>
</div>
</div>
<!----------------------------------------------------------------------------->
<?php if(str_contains($formAction,'edit')): ?>
<div class="divider divider-dark text-start mb-1">
<div class="divider-text">
<h5><?= lang("Presupuestos.opcionesPresupuesto") ?></h5>

View File

@ -26,7 +26,6 @@
<div class="mb-3">
<div class="form-check">
<label for="mostrar_en_presupuesto" class="form-check-label">
<input type="checkbox" id="mostrar_en_presupuesto" name="mostrar_en_presupuesto" value="1" class="form-check-input" <?= $tarifaacabadoEntity->mostrar_en_presupuesto == true ? 'checked' : ''; ?>>
<?= lang('Tarifaacabado.mostrar_en_presupuesto') ?>
@ -34,6 +33,24 @@
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<label for="acabado_cubierta" class="form-check-label">
<input type="checkbox" id="acabado_cubierta" name="acabado_cubierta" value="1" class="form-check-input" <?= $tarifaacabadoEntity->acabado_cubierta == true ? 'checked' : ''; ?>>
<?= lang('Tarifaacabado.acabado_cubierta') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<label for="acabado_sobrecubierta" class="form-check-label">
<input type="checkbox" id="acabado_sobrecubierta" name="acabado_sobrecubierta" value="1" class="form-check-input" <?= $tarifaacabadoEntity->acabado_sobrecubierta == true ? 'checked' : ''; ?>>
<?= lang('Tarifaacabado.acabado_sobrecubierta') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
</div><!-- //.row -->

View File

@ -20,6 +20,8 @@
<th><?= lang('Tarifaacabado.precioMin') ?></th>
<th><?= lang('Tarifaacabado.importeFijo') ?></th>
<th><?= lang('Tarifaacabado.mostrar_en_presupuesto') ?></th>
<th><?= lang('Tarifaacabado.acabado_cubierta') ?></th>
<th><?= lang('Tarifaacabado.acabado_sobrecubierta') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr>
</thead>
@ -91,12 +93,14 @@
{ 'data': 'precio_min' },
{ 'data': 'importe_fijo' },
{ 'data': 'mostrar_en_presupuesto' },
{ 'data': 'acabado_cubierta' },
{ 'data': 'acabado_sobrecubierta' },
{ 'data': actionBtns }
]
});
theTable.on( 'draw.dt', function () {
const boolCols = [3];
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>' : '';