Merge branch 'dev/fresado_tapa_dura' into 'main'

Dev/fresado tapa dura

See merge request jjimenez/safekat!150
This commit is contained in:
2024-02-10 16:53:38 +00:00
19 changed files with 887 additions and 91 deletions

View File

@ -196,12 +196,15 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
if ($this->request->getPost('color') == null) {
$sanitizedData['color'] = false;
}
if ($this->request->getPost('portada') == null) {
$sanitizedData['portada'] = false;
}
if ($this->request->getPost('cubierta') == null) {
$sanitizedData['cubierta'] = false;
}
if ($this->request->getPost('sobrecubierta') == null) {
$sanitizedData['sobrecubierta'] = false;
}
if ($this->request->getPost('guardas') == null) {
$sanitizedData['guardas'] = false;
}
if ($this->request->getPost('rotativa') == null) {
$sanitizedData['rotativa'] = false;
}

View File

@ -322,6 +322,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$this->viewData['papelGenericoColorList'] = $this->getPapelGenericoColor();
$this->viewData['papelGenericoColorHQList'] = $this->getPapelGenericoColorHQ();
$this->viewData['papelGenericoCubiertaList'] = $this->getPapelGenericoCubierta();
$this->viewData['papelGenericoGuardasList'] = $this->getPapelGenericoGuardas();
$this->viewData['papelGenericoSobrecubiertaList'] = $this->getPapelGenericoSobreCubierta();
$this->viewData['papelGenericoRotativaNegroList'] = $this->getPapelGenericoRotativaNegro();
$this->viewData['papelGenericoRotativaColorList'] = $this->getPapelGenericoRotativaColor();
@ -344,13 +345,14 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$this->viewData['POD'] = $this->getPOD();
$this->viewData['serviciosCheckboxes'] = [
$this->viewData['serviciosAutomaticos'] = [
'retractilado' => 3,
'retractilado5' => 5,
'ferro' => 24,
'prototipo' => 9,
'fajaColor' => 16,
];
'plegadoGuardas' => 62,
];
$this->viewData['tipo_impresion_id'] = $presupuestoEntity->tipo_impresion_id; // Cosido tapa blanda JJO
@ -467,7 +469,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
if ($type=='interior') {
if ($type=='interior' || $type=='guardas') {
$datosTipolog = $reqData['negro'] ?? null;
if(!is_null($datosTipolog)){
@ -484,6 +486,19 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
array_push($datosTipolog, $data);
}
if ($type=='guardas') {
$datosPedido->paginas_impresion = intval($reqData['paginas_impresion']) ?? 0;
// Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
// y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
// o wire-o tapa dura, las guardas se imprimen como hojas sueltas
if($tipo_impresion_id == 1 || $tipo_impresion_id == 3){
$datosPedido->isCosido = true;
}else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7){
$datosPedido->isCosido = false;
}
}
$a_favor_fibra = $reqData['a_favor_fibra'] ?? false;
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog, $a_favor_fibra);
@ -538,7 +553,8 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
if($type=='sobrecubierta')
$datosPedido->lomo_cubierta = $reqData['lomo_cubierta'];
$datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($datosPedido);
$datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($tipo_impresion_id, $datosPedido);
$datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($tipo_impresion_id, $datosPedido);
// Cubierta y sobrecubierta siempre color HQ
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, 1, $cliente_id);
@ -675,6 +691,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
'rotativa' => 0,
);
}
else if ( $uso == 'guardas' ){
$opciones_papel = array(
'guardas' => 1,
//'color' => 1,
'rotativa' => 0,
);
}
else if( $isColor ){
$opciones_papel = array(
'color' => 1,
@ -704,7 +727,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$maquinas = $maquinamodel->getMaquinaImpresionForPresupuesto(
is_rotativa: 0,
tarifa_tipo: $tipo,
uso_tarifa: $uso,
uso_tarifa: ($uso=='guardas')?'interior':$uso,
tirada: $datosPedido->tirada + $datosPedido->merma,
papel_impresion_id: $papel->id,
);
@ -717,7 +740,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
'a_favor_fibra' => $a_favor_fibra, // este parametro se cambia para comprobar
// en las dos direcciones (menos en rustica fresada que es siempre 1)
'bnPages' => $isColor?0:$datosPedido->paginas,
'colorPages' => $isColor?$datosPedido->paginas:0,
'colorPages' => ($uso == 'guardas')?$datosPedido->paginas_impresion:($isColor?$datosPedido->paginas:0),
'rotativa_gota_negro' => 0,
'rotativa_gota_color' => 0,
);
@ -746,7 +769,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
}
$tarifamodel = new MaquinasTarifasImpresionModel();
[$tarifaId, $tarifa] = $tarifamodel->getTarifa($maquina->maquina_id, $uso, $tipo);
[$tarifaId, $tarifa] = $tarifamodel->getTarifa($maquina->maquina_id, ($uso=='guardas')?'interior':$uso, $tipo);
if(!is_float($tarifa)){
continue;
}
@ -784,7 +807,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$clientePreciosModel = new ClientePreciosModel();
$config = (object)[
"tipo" => $uso,
"tipo" => ($uso=='guardas')?'interior':$uso,
"tipo_maquina" => $maquina->is_inkjet?'inkjet':'toner',
"tipo_impresion" => $tipo
];
@ -805,11 +828,26 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$linea['fields']['precio_impresion_horas'] = $precio_hora*(1+$margen_precio_hora/100.0)*$tiempo;
$linea['fields']['margen_impresion_horas'] = $precio_hora*($margen_precio_hora/100.0)*$tiempo;
// para guardas
if(\property_exists($datosPedido, 'paginas_impresion')){
$linea['fields']['paginas_impresion'] = $datosPedido->paginas_impresion;
}
if($maquina->is_inkjet){
$linea['fields']['a_favor_fibra'] = $parametrosInkjet->a_favor_fibra;
$linea['fields']['paginas_color'] = $isColor?$datosPedido->paginas:0;
$linea['fields']['totalClicksPedido'] = $linea['fields']['precio_click_pedido'];
$linea['fields']['clicks_libro'] = round(ceil($linea['fields']['pliegos_libro']) * 2, 2);
if( $uso != 'guardas' ){
$linea['fields']['clicks_libro'] = round(ceil($linea['fields']['pliegos_libro']) * 2, 2);
}
else{
if($datosPedido->paginas_impresion == 4)
$linea['fields']['clicks_libro'] = round(ceil($linea['fields']['pliegos_libro']), 2);
else if($datosPedido->paginas_impresion == 8)
$linea['fields']['clicks_libro'] = round(ceil($linea['fields']['pliegos_libro'])*2, 2);
else
$linea['fields']['clicks_libro'] = 0;
}
$linea['fields']['clicks_pedido'] = round($linea['fields']['clicks_libro'] * ($datosPedido->tirada + $datosPedido->merma), 2);
[$ancho, $alto] = PresupuestoService::calculoDimForma($datosPedido, $parametrosInkjet);
$linea['fields']['factor_anchura'] = round($maquina->ancho_impresion / $ancho, 2);
@ -1247,6 +1285,17 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
return $data;
}
protected function getPapelGenericoGuardas()
{
$model = model('App\Models\Configuracion\PapelGenericoModel');
$data = $model->getPapelForComparador('colorhq', false, false, false, true);
array_unshift($data, (object)array(
"id" => 0,
"nombre" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papel'))])
));
return $data;
}
protected function getPapelGenericoSobreCubierta()
{
$model = model('App\Models\Configuracion\PapelGenericoModel');

View File

@ -18,15 +18,7 @@ class Test extends BaseController
public function index()
{
echo '<pre>';
$papelImpresionTipologiaModel = new \App\Models\Configuracion\PapelImpresionTipologiaModel();
$datosTipologias = $papelImpresionTipologiaModel
->findTipologiasForPapelImpresion(17, 'color')
->get()->getResultObject();
var_dump($datosTipologias);
var_dump($datosTipologias[0]->cg);
$this->getPapelesGuardas();
echo '</pre>';
/*
@ -187,6 +179,13 @@ class Test extends BaseController
var_dump($data);
}
public function getPapelesGuardas(){
$model = model('App\Models\Configuracion\PapelGenericoModel');
$data = $model->getPapelForComparador('color', false, false, false, true);
var_dump($data);
}
public function getGramaje(){
$model = new PapelGenericoModel();
$data = $model->getGramajeComparador("AHUESADO OFFSET", "bnhq" );

View File

@ -19,6 +19,7 @@ class PapelImpresion extends \CodeIgniter\Entity\Entity
"color" => true,
"cubierta" => false,
"sobrecubierta" => false,
"guardas" => false,
"inkjet" => false,
"rotativa" => false,
"is_deleted" => 0,
@ -36,6 +37,7 @@ class PapelImpresion extends \CodeIgniter\Entity\Entity
"color" => "boolean",
"cubierta" => "boolean",
"sobrecubierta" => "boolean",
"guardas" => "boolean",
"rotativa" => "boolean",
"is_deleted" => "int",
];

View File

@ -10,6 +10,7 @@ class PresupuestoLineaEntity extends \CodeIgniter\Entity\Entity
"presupuesto_id" => null,
"tipo" => null,
"paginas" => 0,
"paginas_impresion" => 0, //guardas
"paginas_color_posicion" => null,
"solapas_ancho" => 0.0,
"papel_id" => null,
@ -79,6 +80,7 @@ class PresupuestoLineaEntity extends \CodeIgniter\Entity\Entity
protected $casts = [
"presupuesto_id" => "int",
"paginas" => "int",
"paginas_impresion" => "int", // guardas
"solapas_ancho" => "float",
"papel_id" => "?int",
"papel_impresion_id" => "?int",
@ -140,3 +142,4 @@ class PresupuestoLineaEntity extends \CodeIgniter\Entity\Entity
"total_linea" => "double",
];
}

View File

@ -10,6 +10,7 @@ return [
'createdAt' => 'Creado en',
'cubierta' => 'Cubierta',
'sobrecubierta' => 'Sobrecubierta',
'guardas' => 'Guardas',
'defecto' => 'Por defecto',
'deletedAt' => 'Borrado en',
'espesor' => 'Espesor',

View File

@ -64,6 +64,7 @@ return [
'retractilado' => 'Retractilado individual',
'retractilado5' => 'Retractilado de 5',
'Guardas' => 'Guardas',
'imprimir_guardas' => 'Imprimir guardas',
'fajaColor' => 'Imprimir faja a color',
'compInteriorPlana' => 'Interior en plana',
'compInteriorRotativa' => 'Interior en rotativa',
@ -95,6 +96,7 @@ return [
'encuadernacion' => 'Encuadernación',
'solapasCubierta' => 'Solapas cubierta',
'solapasAnchoCubierta' => 'Ancho solapas cubierta',
'sinImpresion' => 'Sin impresion',
'1cara' => '1 cara',
'2caras' => '2 caras',
'bn' => 'BN',

View File

@ -93,7 +93,7 @@ class PapelGenericoModel extends \App\Models\GoBaseModel
}
public function getPapelForComparador($tipo, $is_cubierta = false, $is_sobrecubierta = false, $rotativa = false)
public function getPapelForComparador($tipo, $is_cubierta = false, $is_sobrecubierta = false, $rotativa = false, $is_guardas = false)
{
/*
1.-> Tipo impresion
@ -128,8 +128,9 @@ class PapelGenericoModel extends \App\Models\GoBaseModel
$builder->where("t5.uso", 'cubierta');
}
else{
$builder->where("t2.cubierta", 0);
$builder->where("t5.uso", 'interior');
if(!$is_guardas){
$builder->where("t2.cubierta", 0);
}
}
if($is_sobrecubierta==true){
@ -137,13 +138,19 @@ class PapelGenericoModel extends \App\Models\GoBaseModel
$builder->where("t5.uso", 'sobrecubierta');
}
else{
$builder->where("t2.sobrecubierta", 0);
if(!$is_guardas){
$builder->where("t2.sobrecubierta", 0);
}
}
if($is_cubierta==false && $is_sobrecubierta==false){
$builder->where("t5.uso", 'interior');
}
if($is_guardas==true){
$builder->where("t2.guardas", 1);
}
if($rotativa==true){
$builder->where("t2.rotativa", 1);
}

View File

@ -20,9 +20,10 @@ class PapelImpresionModel extends \App\Models\GoBaseModel
4 => "t1.color",
5 => "t1.cubierta",
6 => "t1.sobrecubierta",
7 => "t1.inkjet",
8 => "t1.rotativa",
9 => "t1.isActivo"
7 => "t1.guardas",
8 => "t1.inkjet",
9 => "t1.rotativa",
10 => "t1.isActivo"
];
@ -39,6 +40,7 @@ class PapelImpresionModel extends \App\Models\GoBaseModel
"color",
"cubierta",
"sobrecubierta",
"guardas",
"inkjet",
"rotativa",
"isActivo",
@ -146,7 +148,7 @@ class PapelImpresionModel extends \App\Models\GoBaseModel
->select(
"t1.id AS id, t1.nombre AS nombre, t1.defecto AS defecto, t1.referencia AS referencia, t1.mano AS mano,
t1.espesor AS espesor, t1.gramaje AS gramaje, t1.precio_tonelada AS precio_tonelada,
t1.bn AS bn, t1.color AS color, t1.cubierta AS cubierta, t1.sobrecubierta AS sobrecubierta,
t1.bn AS bn, t1.color AS color, t1.cubierta AS cubierta, t1.sobrecubierta AS sobrecubierta, t1.guardas AS guardas,
t1.inkjet AS inkjet, t1.rotativa AS rotativa,
t1.isActivo AS isActivo, t2.nombre AS papel_generico_id"
);
@ -227,6 +229,7 @@ class PapelImpresionModel extends \App\Models\GoBaseModel
$color = array_key_exists('color', $options)? $options['color'] : null;
$cubierta = array_key_exists('cubierta', $options)? $options['cubierta'] : null;
$sobrecubierta = array_key_exists('sobrecubierta', $options)? $options['sobrecubierta'] : null;
$guardas = array_key_exists('guardas', $options)? $options['guardas'] : null;
$rotativa = array_key_exists('rotativa', $options)? $options['rotativa'] : null;
$builder = $this->db
@ -254,6 +257,9 @@ class PapelImpresionModel extends \App\Models\GoBaseModel
if(!is_null($sobrecubierta)){
$builder->where("t1.sobrecubierta", $sobrecubierta);
}
if(!is_null($guardas)){
$builder->where("t1.guardas", $guardas);
}
if(!is_null($rotativa)){
$builder->where("t1.rotativa", $rotativa);
}
@ -290,6 +296,8 @@ class PapelImpresionModel extends \App\Models\GoBaseModel
$builder->where("t1.cubierta", 1);
else if ($uso == 'sobrecubierta')
$builder->where("t1.sobrecubierta", 1);
else if ($uso == 'guardas')
$builder->where("t1.guardas", 1);
else{
if($tipo == 'negro' || $tipo == 'negrohq')
$builder->where("t1.bn", 1);

View File

@ -12,11 +12,12 @@ class PresupuestoLineaModel extends \App\Models\GoBaseModel
* @var bool
*/
protected $useAutoIncrement = true;
protected $allowedFields = [
"presupuesto_id",
"tipo",
"paginas",
"paginas_impresion", //guardas
"paginas_color_posicion",
"solapas_ancho",
"papel_id",

View File

@ -45,7 +45,8 @@ class PresupuestoService extends BaseService
if ($uso!='rotativa') {
$ancho_calculo = ($uso=='cubierta' || $uso=='sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho;
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido, $forzar_a_favor_fibra);
$alto_calculo = ($uso=='cubierta' || $uso=='sobrecubierta') ? $datosPedido->altoExteriores : $datosPedido->ancho;
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $alto_calculo, $datosPedido->isCosido, $forzar_a_favor_fibra);
$response['fields'] = $formas;
}
@ -70,7 +71,9 @@ class PresupuestoService extends BaseService
//interior (bn o color)
if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0) {
// precio papel
$pliegos_libro = ($datosPedido->paginas / 2.0) / $response['fields']['num_formas']['value'];
$pliegos_libro = ceil(($datosPedido->paginas / 2.0) / $response['fields']['num_formas']['value']);
if($pliegos_libro<1)
$pliegos_libro = 1;
$pliegos_pedido = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma);
$precio_libro = $pliegos_libro * ($precio_pliego_impresion+$margen_pliego_impresion);
$margen_papel_pedido = $pliegos_libro * $margen_pliego_impresion * ($datosPedido->tirada + $datosPedido->merma);
@ -84,11 +87,18 @@ class PresupuestoService extends BaseService
alto: $datosPedido->alto,
gramaje: $papel_impresion->gramaje,
paginas: $datosPedido->paginas
);
);
// impresion
$precio_click = $tarifa;
$precio_click_pedido = $pliegos_pedido * 2 * $precio_click;
if($uso=='guardas'){
if(floatval($datosPedido->paginas_impresion)==0)
$precio_click_pedido = 0;
elseif (floatval($datosPedido->paginas_impresion)==4) // Una cara
$precio_click_pedido = $pliegos_pedido * $precio_click;
else // dos caras (impresion normal)
$precio_click_pedido = $pliegos_pedido * 2 * $precio_click;
}
}
// cubierta o sobrecubierta (siempre a color)
@ -375,13 +385,6 @@ class PresupuestoService extends BaseService
else{
$anchoForCalculo = $ancho;
}
// Generates a message like: User 123 logged into the system from 127.0.0.1
$info = [
'isCosido' => $forzar_a_favor_fibra,
];
log_message('error', 'isCosido en formas planas: {isCosido}', $info);
if($uso == 'cubierta' || $uso == 'sobrecubierta') {
if(property_exists($maquina, 'forzar_num_formas_horizontales_cubierta') &&
@ -521,23 +524,51 @@ class PresupuestoService extends BaseService
/**
* Devuelve el ancho de la cubierta/sobrecubierta, incluido el lomo.
*/
public static function getAnchoTotalExteriores($datosPedido=null)
public static function getAnchoTotalExteriores($tipo_impresion_id, $datosPedido=null)
{
$ancho_total = 0;
if ($datosPedido) {
$ancho_total = floatval($datosPedido->ancho)*2 + floatval($datosPedido->lomo);
$ancho_total += property_exists($datosPedido, 'lomo_cubierta')?$datosPedido->lomo_cubierta:0;
// Tapa blanda (cosido y fresado)
if($tipo_impresion_id == 2 || $tipo_impresion_id == 4){
$ancho_total = floatval($datosPedido->ancho)*2 + floatval($datosPedido->lomo);
$ancho_total += property_exists($datosPedido, 'lomo_cubierta')?$datosPedido->lomo_cubierta:0;
// añadimos ancho de las solapas
// si se añaden solapas hay que sumar 3mm de los dobleces
if ($datosPedido->solapas) {
$ancho_total += (floatval($datosPedido->solapas_ancho) * 2) + 6;
// añadimos ancho de las solapas
// si se añaden solapas hay que sumar 3mm de los dobleces
if ($datosPedido->solapas) {
$ancho_total += (floatval($datosPedido->solapas_ancho) * 2) + 6;
}
}
// Tapa dura cosido y fresado
else if($tipo_impresion_id == 1 || $tipo_impresion_id == 3){
$ancho_total = floatval($datosPedido->ancho)*2 + floatval($datosPedido->lomo);
$ancho_total += property_exists($datosPedido, 'lomo_cubierta')?$datosPedido->lomo_cubierta:0;
// Se añaden 20mm de sangre por cada lado + 2 * 0.6mm de portada y contraportada -> total 41.2
$ancho_total += 41.2;
}
}
return $ancho_total;
}
/**
* Devuelve el ancho de la cubierta/sobrecubierta, incluido el lomo.
*/
public static function getAltoTotalExteriores($tipo_impresion_id, $datosPedido=null)
{
$alto_total = 0;
if ($datosPedido) {
// Tapa blanda (cosido y fresado)
$alto_total = floatval($datosPedido->alto);
if($tipo_impresion_id == 1 || $tipo_impresion_id == 3){
// Se añaden 20mm de sangre por cada lado + 0.7mm extra que sobresale -> total 40.7
$alto_total += 40.7;
}
}
return $alto_total;
}
/**
* Devuelve la dimensión del lomo interior.
*/

View File

@ -90,6 +90,16 @@
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<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 -->
<div class="mb-3">
<div class="form-check">

View File

@ -25,6 +25,7 @@
<th><?= lang('PapelImpresion.color') ?></th>
<th><?= lang('PapelImpresion.cubierta') ?></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>
@ -101,6 +102,7 @@
{ 'data': 'color' },
{ 'data': 'cubierta' },
{ 'data': 'sobrecubierta' },
{ 'data': 'guardas' },
{ 'data': 'inkjet' },
{ 'data': 'rotativa' },
{ 'data': 'isActivo' },
@ -110,7 +112,7 @@
theTable.on( 'draw.dt', function () {
const boolCols = [3, 4, 5, 6, 7, 8, 9];
const boolCols = [3, 4, 5, 6, 7, 8, 9, 10];
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

@ -360,7 +360,7 @@ $('#papelFormatoPersonalizado').on("click",function(){
"<?=lang('Presupuestos.papelFormatoAncho') ?> x <?=lang('Presupuestos.papelFormatoAncho') ?>)*";
}
else{
document.getElementById("papelFormatoAncho").value= "";
document.getElementById("papelFormatoAncho").value= "";
document.getElementById("papelFormatoAlto").value= "";
document.getElementById("papelFormatoAncho").style.display = "none";
document.getElementById("papelFormatoAlto").style.display = "none";

View File

@ -215,6 +215,44 @@
</div>
</div>
<?php if($tipo_impresion_id == 1 || $tipo_impresion_id == 3 || $tipo_impresion_id == 5 || $tipo_impresion_id == 7): ?>
<div class="row">
<div class="col-md-12 col-lg-2 px-4">
<p><?= lang('PapelImpresion.guardas') ?></p>
</div>
<div class="col-md-12 col-lg-2 px-4">
<select id="compCarasGuardas" name="comp_paginas_guardas" class="form-control select2bs2 comp_guardas_items" style="width: 100%;">
<option value="0">
<p><?= lang('Presupuestos.sinImpresion') ?></p>
</option>
<option value="4">
<p><?= lang('Presupuestos.1cara') ?></p>
</option>
<option value="8">
<p><?= lang('Presupuestos.2caras') ?></p>
</option>
</select>
</div>
<div class="col-md-12 col-lg-6 px-4">
<select id="compPapelGuardas" name="comp_papel_guardas" class="form-control select2bs2 comp_guardas_items" style="width: 100%;">
<?php if (isset($papelGenericoGuardasList) && is_array($papelGenericoGuardasList) && !empty($papelGenericoGuardasList)) :
foreach ($papelGenericoGuardasList as $k => $v) : ?>
<option value="<?= $v->id ?>">
<?= $v->nombre ?>
</option>
<?php endforeach;
endif; ?>
</select>
</div>
<div class="col-md-12 col-lg-2 px-4">
<input readonly type="text" id="compGramajeGuardas" name="comp_gramaje_guardas" placeholder="0" maxLength="5" class="form-control comp_guardas_items" value='170'>
</div>
<div>
<hr class="my-1">
</div>
</div>
<?php endif; ?>
<!----------------------------------------------------------------------------->
<div class="divider divider-dark text-start mb-1 comp-color-selected">
@ -422,6 +460,66 @@
</div>
</div>
<!----------------------------------------------------------------------------->
<?php if($tipo_impresion_id == 1 || $tipo_impresion_id == 3 || $tipo_impresion_id == 5 || $tipo_impresion_id == 7): ?>
<div class="accordion mt-3" id="accordionCompGuardas">
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingOne">
<button id="accordion-button-int-guardas" type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionCompGuardasTip" aria-expanded="false" aria-controls="accordionCompGuardasTip">
<h6 id="title_guardas"><?= lang("Presupuestos.Guardas") ?></h6>
</button>
</h2>
<div id="accordionCompGuardasTip" class="accordion-collapse collapse" data-bs-parent="#accordionCompGuardasTip">
<div class="accordion-body">
<table id="tableCompGuardas" class="comparator-table table dt-responsive dataTable" style="width: 100%;">
<thead>
<tr>
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.tipo') ?></th>
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.paginas') ?></th>
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.papel') ?></th>
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.gramaje') ?></th>
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.marca') ?></th>
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.maquina') ?></th>
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.numeroPliegos') ?></th>
<th style="padding-right: 0.75em; max-width:80px"><?= lang('Presupuestos.pliegosPedido') ?></th>
<th style="padding-right: 0.75em; max-width:80px"><?= lang('Presupuestos.precioPliego') ?></th>
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.libro') ?></th>
<th style="padding-right: 0.75em; max-width:80px"><?= lang('Presupuestos.totalPapelPedido') ?></th>
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.lomo') ?></th>
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.peso') ?></th>
<th style="padding-right: 0.75em; max-width:80px"><?= lang('Presupuestos.horas') ?></th>
<th style="padding-right: 0.75em; max-width:80px"><?= lang('Presupuestos.precioImpresion') ?></th>
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.total') ?></th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
<tr>
<td class="dt-result dt-result-text" colspan="14"><?= lang('Presupuestos.total') ?> <?= lang("Presupuestos.Guardas") ?>:</td>
<td id="total_comp_guardas" class="dt-result dt-result-value" colspan="2"> 0.00 </td>
</tr>
</tfoot>
</table>
<div >
<button type="button" name="insertarGuardasBtn"
id="insertarGuardasBtn"
class="btn btn-primary float-end me-sm-3 me-1 mb-3 insertarLinea d-none">
<?= lang('Presupuestos.insertarLinea').' '.strtoupper(lang('Presupuestos.Guardas')) ?>
</button>
</div>
</div>
</div>
</div>
</div>
<?php endif;?>
</div> <!-- //.accordion-body -->
@ -580,11 +678,22 @@
allowClear: false,
});
<?php if($tipo_impresion_id == 1 || $tipo_impresion_id == 3 || $tipo_impresion_id == 5 || $tipo_impresion_id == 7): ?>
$('#compCarasCubierta').select2({
allowClear: false,
minimumResultsForSearch: Infinity,
});
$('#compPapelGuardas').select2({
allowClear: false,
});
$('#compCarasGuardas').select2({
allowClear: false,
minimumResultsForSearch: Infinity,
});
<?php endif; ?>
updatePapelesComparador();
const paginasColor = document.getElementById('compCalPaginasColor');
if (paginasColor.value.length > 0) {
@ -592,7 +701,6 @@
}
computarPaginasColor($('#compPosPaginasColor').val());
}
function init_lineas_comparador(){
@ -643,7 +751,7 @@
}catch(e){}
try{
$("#compCarasCubierta").val(parseInt(comp_data.cubierta.paginas)).trigger('select2:select');
$("#compCarasCubierta").val(parseInt(comp_data.cubierta.paginas)).change();
try{
$("#compPapelCubierta").val(parseInt(comp_data.cubierta.papel_id)).trigger('select2:select');
@ -656,6 +764,11 @@
}catch(e){}
}catch(e){}
try{
$("#compCarasGuardas").val(parseInt(comp_data.guardas.paginas_impresion)).change();
$("#compPapelGuardas").val(parseInt(comp_data.guardas.papel_id)).trigger('change');
}catch(e){}
}
var tableCompIntPlana = new DataTable('#tableCompIntPlana',{
@ -827,6 +940,128 @@
]
});
<?php if($tipo_impresion_id == 1 || $tipo_impresion_id == 3 || $tipo_impresion_id == 5 || $tipo_impresion_id == 7): ?>
var tableCompGuardas = new DataTable('#tableCompGuardas',{
scrollX: true,
searching: false,
paging: false,
info: false,
ordering: false,
responsive: true,
select: false,
language: {
url: "//cdn.datatables.net/plug-ins/1.13.4/i18n/<?= config('Basics')->i18n ?>.json"
},
columns: [
{ 'data': 'tipo',
'render': function ( data, type, row, meta ) {
return '<?= lang('Presupuestos.Guardas') ?>';
}
},
{ 'data': 'paginas' },
{ 'data': 'papel' },
{ 'data': 'gramaje' },
{ 'data': 'marca' },
{ 'data': 'maquina' },
{ 'data': 'numeroPliegos' },
{ 'data': 'pliegosPedido' },
{ 'data': 'precioPliego' },
{ 'data': 'libro' },
{ 'data': 'totalPapelPedido' },
{ 'data': 'lomo' },
{ 'data': 'peso' },
{ 'data': 'horasMaquina' },
{ 'data': 'precioImpresion' },
{ 'data': 'total' },
{ 'data': 'maquinaId'},
{ 'data': 'maquinaVelocidad'},
{ 'data': 'tiempoMaquina'},
{ 'data': 'papelGenericoId'},
{ 'data': 'papelImpresionId'},
{ 'data': 'tarifa_impresion_id'},
{ 'data': 'paginas_impresion'},
],
columnDefs: [
{
target: [16,17,18,19,20,21,22],
visible: false,
searchable: false
},
]
});
function checkComparadorGuardas(actualizarLinea = false){
if ($('#compPapelGuardas').select2('data')[0].id > 0 ){
const dimension = getDimensionLibro();
let datos = {
tipo_impresion_id: <?php echo $tipo_impresion_id ?>,
type: 'guardas',
paginas: 8,
paginas_impresion: parseInt($('#compCarasGuardas').select2('data')[0].id),
tirada: parseInt($('#tirada').val()),
merma: parseInt($('#mermacubierta').val()),
color: 1,
hq: 1,
ancho: dimension.ancho,
alto: dimension.alto,
papel_generico_id: $('#compPapelGuardas').select2('data')[0].id,
papel_generico: $('#compPapelGuardas').select2('data')[0].text.trim(),
gramaje: parseInt($('#compGramajeGuardas').val()),
cliente_id: $('#clienteId').find(":selected").val(),
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
$.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
data: datos,
success: function (data) {
clearGuardas();
if(data.lineas.length >0){
fillGuardas(data);
selectGuardasLineas();
$('#title_guardas').html('<?= lang("Presupuestos.Guardas") ?>' + ' (' + tableCompGuardas.rows().count() + ')');
$('#insertarGuardasBtn').removeClass('d-none')
if(actualizarLinea){
var rows = $("#tableCompCubierta").DataTable().rows( '.selected' ).data().toArray();
for(row of rows){
fill_lp_guardas(row, true);
}
}
}
else{
$('#title_guardas').html('<?= lang("Presupuestos.Guardas") ?>');
$('#insertarGuardasBtn').addClass('d-none')
$('#total_comp_guardas').html('0.00')
}
yeniden(data.<?= csrf_token() ?>);
return true;
},
error: function(e){
return false;
}
})
}
else{
clearGuardas();
}
}
$('.comp_guardas_items').on('change', function (e) {
checkComparadorGuardas(false);
});
<?php endif; ?>
async function getLineasIntPlana(is_color, is_hq, actualizarLinea){
@ -983,7 +1218,7 @@
function checkComparadorCubierta(actualizarLinea = false){
if ($('#compCarasCubierta').select2('data').length > 0 &&
if ($('#compCarasCubierta option:selected').val().length > 0 &&
$('#compPapelCubierta').select2('data').length > 0 &&
$('#compGramajeCubierta').select2('data').length > 0 ){
@ -992,7 +1227,7 @@
let datos = {
tipo_impresion_id: <?php echo $tipo_impresion_id ?>,
type: 'cubierta',
paginas: parseInt($('#compCarasCubierta').select2('data')[0].id),
paginas: parseInt($('#compCarasCubierta option:selected').val()),
tirada: parseInt($('#tirada').val()),
merma: parseInt($('#mermacubierta').val()),
color: 1,
@ -1049,6 +1284,8 @@
}
}
$('.comp_negro_items').on('change', function (e) {
checkComparadorInt(false,false);
@ -1422,6 +1659,6 @@
}
init_comparador()
init_lineas_comparador()
init_lineas_comparador()
<?= $this->endSection() ?>

View File

@ -609,12 +609,12 @@
function servicioRetractilado(){
if($('#retractilado').prop('checked')){
$('#add_servicio_acabado_list').val(<?php echo $serviciosCheckboxes['retractilado'] ?>)
$('#add_servicio_acabado_list').val(<?php echo $serviciosAutomaticos['retractilado'] ?>)
$('#insertar_serv_acabado').click()
}
else{
var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) {
return tableServiciosAcabado.cell( rowIdx, 0 ).data() == <?php echo $serviciosCheckboxes['retractilado'] ?> ? true : false;
return tableServiciosAcabado.cell( rowIdx, 0 ).data() == <?php echo $serviciosAutomaticos['retractilado'] ?> ? true : false;
} );
if(row_indexes.length > 0){
tableServiciosAcabado.row(row_indexes[0]).remove().draw()
@ -625,12 +625,12 @@
function servicioRetractilado5(){
if($('#retractilado5').prop('checked')){
$('#add_servicio_acabado_list').val(<?php echo $serviciosCheckboxes['retractilado5'] ?>)
$('#add_servicio_acabado_list').val(<?php echo $serviciosAutomaticos['retractilado5'] ?>)
$('#insertar_serv_acabado').click()
}
else{
var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) {
return tableServiciosAcabado.cell( rowIdx, 0 ).data() == <?php echo $serviciosCheckboxes['retractilado5'] ?> ? true : false;
return tableServiciosAcabado.cell( rowIdx, 0 ).data() == <?php echo $serviciosAutomaticos['retractilado5'] ?> ? true : false;
} );
if(row_indexes.length > 0){
tableServiciosAcabado.row(row_indexes[0]).remove().draw()
@ -641,16 +641,16 @@
function servicioFajaColor(){
if($('#fajaColor').prop('checked')){
$('#add_servicio_acabado_list').val(<?php echo $serviciosCheckboxes['fajaColor'] ?>)
$('#add_servicio_acabado_list').val(<?php echo $serviciosAutomaticos['fajaColor'] ?>)
$('#insertar_serv_acabado').click()
}
else{
var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) {
return tableServiciosAcabado.cell( rowIdx, 0 ).data() == <?php echo $serviciosCheckboxes['fajaColor'] ?> ? true : false;
return tableServiciosAcabado.cell( rowIdx, 0 ).data() == <?php echo $serviciosAutomaticos['fajaColor'] ?> ? true : false;
} );
if(row_indexes.length > 0){
tableServiciosAcabado.row(row_indexes[0]).remove().draw()
check_serv_acabado_error()
check_serv_acabado_error()
}
}
}
@ -1180,6 +1180,22 @@
return datosManipulado
}
function servicioGuardas(add_service = false){
if(add_service){
$('#add_servicio_manipulado_list').val(<?php echo $serviciosAutomaticos['plegadoGuardas'] ?>)
$('#insertar_serv_manipulado').click()
}
else{
var row_indexes = tableServiciosManipulado.rows().eq( 0 ).filter( function (rowIdx) {
return tableServiciosManipulado.cell( rowIdx, 0 ).data() == <?php echo $serviciosAutomaticos['plegadoGuardas'] ?> ? true : false;
} );
if(row_indexes.length > 0){
tableServiciosManipulado.row(row_indexes[0]).remove().draw()
check_serv_manipulado_error()
}
}
}
init_servicio_manipulado()
<?= $this->endSection() ?>
@ -1290,12 +1306,12 @@
function servicioPrototipo(){
if($('#prototipo').prop('checked')){
$('#add_servicio_preimpresion_list').val(<?php echo $serviciosCheckboxes['prototipo'] ?>)
$('#add_servicio_preimpresion_list').val(<?php echo $serviciosAutomaticos['prototipo'] ?>)
$('#insertar_serv_preimpresion').click()
}
else{
var row_indexes = tableServiciosPreimpresion.rows().eq( 0 ).filter( function (rowIdx) {
return tableServiciosPreimpresion.cell( rowIdx, 0 ).data() == <?php echo $serviciosCheckboxes['prototipo'] ?> ? true : false;
return tableServiciosPreimpresion.cell( rowIdx, 0 ).data() == <?php echo $serviciosAutomaticos['prototipo'] ?> ? true : false;
} );
if(row_indexes.length > 0){
tableServiciosPreimpresion.row(row_indexes[0]).remove().draw()
@ -1306,11 +1322,11 @@
function servicioFerro(){
var row_indexes = tableServiciosPreimpresion.rows().eq( 0 ).filter( function (rowIdx) {
return tableServiciosPreimpresion.cell( rowIdx, 0 ).data() == <?php echo $serviciosCheckboxes['ferro'] ?> ? true : false;
return tableServiciosPreimpresion.cell( rowIdx, 0 ).data() == <?php echo $serviciosAutomaticos['ferro'] ?> ? true : false;
} );
if($('#ferro').prop('checked')){
if(row_indexes.length == 0){
$('#add_servicio_preimpresion_list').val(<?php echo $serviciosCheckboxes['ferro'] ?>)
$('#add_servicio_preimpresion_list').val(<?php echo $serviciosAutomaticos['ferro'] ?>)
$('#insertar_serv_preimpresion').click()
}
}

View File

@ -49,9 +49,8 @@
<div class='col-md-12 col-lg-9 px-4'></div>
<div class='col-md-12 col-lg-3 px-4'>
<div class="input-group">
<label class="input-group-text" for="addLineasPresupuesto"><?= lang('Presupuestos.addLineaPresupuesto') ?></label>
<label id="btn_addLinea" class="btn btn-outline-primary waves-effect" ><?= lang('Presupuestos.addLineaPresupuesto') ?></label>
<select class="form-select" id="addLineasPresupuesto" data-native-menu="false">
<option></option>
<option value="lp_bn"><?= lang('Presupuestos.bn') ?></option>
<option value="lp_bnhq"><?= lang('Presupuestos.bnhq') ?></option>
<option value="lp_color"><?= lang('Presupuestos.color') ?></option>
@ -59,6 +58,7 @@
<option value="lp_rot_bn"><?= lang('Presupuestos.rotativa_bn') ?></option>
<option value="lp_rot_color"><?= lang('Presupuestos.rotativa_color') ?></option>
<option value="lp_cubierta"><?= lang('Presupuestos.cubierta') ?></option>
<option value="lp_guardas"><?= lang('Presupuestos.Guardas') ?></option>
</select>
</div>
</div>
@ -81,6 +81,9 @@ const papelGenericoCubiertaList = <?php echo json_encode($papelGenericoCubiertaL
const papelGenericoSobrecubiertaList = <?php echo json_encode($papelGenericoSobrecubiertaList); ?>;
const papelGenericoRotativaNegroList = <?php echo json_encode($papelGenericoRotativaNegroList); ?>;
const papelGenericoRotativaColorList = <?php echo json_encode($papelGenericoRotativaColorList); ?>;
<?php if($tipo_impresion_id == 1 || $tipo_impresion_id == 3 || $tipo_impresion_id == 5 || $tipo_impresion_id == 7): ?>
const papelGenericoGuardasList = <?php echo json_encode($papelGenericoGuardasList); ?>;
<?php endif; ?>
// Formatting function for row details - modify as you need
@ -409,7 +412,7 @@ const actionBtns_lp = function(data) {
`;
};
var tableLineasPresupuesto = new DataTable('#tableLineasPresupuesto',{
var tableLineasPresupuesto = new DataTable('#tableLineasPresupuesto',{
scrollX: true,
searching: false,
paging: false,
@ -475,6 +478,9 @@ const actionBtns_lp = function(data) {
else if(row.row_id.includes('_sobrecubierta')){
return 3;
}
else if(row.row_id.includes('_guardas')){
return 4;
}
}
},
{data: 'icon',
@ -484,19 +490,60 @@ const actionBtns_lp = function(data) {
},
{data: 'paginas',
render: function ( data, type, row, meta ) {
if(row.row_id != "lp_cubierta" && row.row_id != "lp_sobrecubierta")
if(row.row_id != "lp_cubierta" && row.row_id != "lp_sobrecubierta" && row.row_id != "lp_guardas")
return '<td class="lp-td"><input id="' + row.row_id + '_paginas" name="' + row.row_id + '_paginas" class="lp-cell lp-input paginas-lp" type="text" value="' + data + '"></td>';
else if(row.row_id == "lp_cubierta"){
return ' \
<select id="lp_cubierta_paginas" name="comp_paginas_cubierta" class="form-control form-select-sm lp-cell lp-select" style="min-width:50px;"> \
<option value="2"> \
<p><?= lang('Presupuestos.1cara') ?></p> \
</option> \
<option value="4"> \
<p><?= lang('Presupuestos.2caras') ?></p> \
</option> \
</select> \
';
select = '<select id="lp_cubierta_paginas" name="comp_paginas_cubierta" class="form-control form-select-sm lp-cell lp-select" style="min-width:50px;">'
if(data==2){
select += '<option value="2" selected >'
}
else{
select += '<option value="2">'
}
select +='<p><?= lang('Presupuestos.1cara') ?></p>'
select += '</option>'
if(data==4){
select += '<option value="4" selected >'
}
else{
select += '<option value="4">'
}
select +='<p><?= lang('Presupuestos.2caras') ?></p>'
select += '</option>'
select += '</select>'
return select;
}
else if(row.row_id == "lp_guardas"){
select = '<select id="lp_guardas_paginas" name="comp_paginas_guardas" class="form-control form-select-sm lp-cell lp-select" style="min-width:50px;">'
if(row.paginas_impresion==0){
select += '<option value="0" selected >'
}
else{
select += '<option value="0">'
}
select +='<p><?= lang('Presupuestos.sinImpresion') ?></p>'
select += '</option>'
if(row.paginas_impresion==4){
select += '<option value="4" selected >'
}
else{
select += '<option value="4">'
}
select +='<p><?= lang('Presupuestos.1cara') ?></p>'
select += '</option>'
if(row.paginas_impresion==8){
select += '<option value="8" selected >'
}
else{
select += '<option value="8">'
}
select +='<p><?= lang('Presupuestos.2caras') ?></p>'
select += '</option>'
select += '</select>'
return select;
}
}
},
@ -527,6 +574,9 @@ const actionBtns_lp = function(data) {
else if (row.row_id == 'lp_sobrecubierta'){
papelList = papelGenericoSobrecubiertaList
}
else if (row.row_id == 'lp_guardas'){
papelList = papelGenericoGuardasList
}
else if (row.row_id == 'lp_rot_bn'){
papelList = papelGenericoRotativaNegroList
}
@ -625,12 +675,16 @@ tableLineasPresupuesto.on( 'draw.dt', function () {
$(document).on('click', '.btn-delete-lp', function(e) {
const row = $(this).closest('tr');
data = tableLineasPresupuesto.row( row ).data()
tableLineasPresupuesto.row( row )
.remove()
.draw();
updateTotales(true, false, false)
updateTablaEnvios()
if(data.row_id == 'lp_guardas')
servicioGuardas(false)
// Si existe cubierta, hay que actualizar con el valor del lomo
check_update_cubierta()
})
@ -686,6 +740,8 @@ function processRowData(row, rowId, rowClass){
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_cubierta.png") ?>'
else if(rowId=='lp_sobrecubierta')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_sobrecubierta.png") ?>'
else if(rowId=='lp_guardas')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_guardas.png") ?>'
else if(rowId=='lp_rot_bn')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_rotativa_bn.png") ?>'
else if(rowId=='lp_rot_color')
@ -708,6 +764,7 @@ function processRowData(row, rowId, rowClass){
'icon': icon,
'paginas': blank_line?0:row.paginas,
'paginas_impresion': rowId=='lp_guardas'?row.paginas_impresion:0,
'papel': blank_line?"":row.papel_generico_id,
'gramaje': blank_line?"":row.gramaje,
'papel_impresion': blank_line?"":row.papel_impresion,
@ -721,8 +778,8 @@ function processRowData(row, rowId, rowClass){
'total_linea': isNaN(parseFloat(row.total_impresion)) ? "" : parseFloat(row.total_impresion).toFixed(2),
'numeroPliegos':isNaN(parseFloat(row.pliegos_libro)) ? "" : parseFloat(row.pliegos_libro).toFixed(2),
'pliegosPedido': isNaN(parseFloat(row.pliegos_pedido)) ? "" : parseFloat(row.pliegos_pedido).toFixed(2),
'numeroPliegos':isNaN(parseFloat(row.pliegos_libro)) ? "" : parseFloat(row.pliegos_libro).toFixed(0),
'pliegosPedido': isNaN(parseFloat(row.pliegos_pedido)) ? "" : parseFloat(row.pliegos_pedido).toFixed(0),
'precioPliego': isNaN(parseFloat(row.precios_pliegos)) ? "" : parseFloat(row.precios_pliegos).toFixed(6),
'libro': isNaN(parseFloat(row.precio_libro)) ? "" : parseFloat(row.precio_libro).toFixed(2),
'totalPapelPedido': isNaN(parseFloat(row.precio_pedido)) ? "" : parseFloat(row.precio_pedido).toFixed(2),
@ -806,7 +863,6 @@ function processRowData(row, rowId, rowClass){
}
$('#addLineasPresupuesto').val('');
$('.paginas-lp').on('change', function(){
checkPaginasPresupuesto()
@ -892,6 +948,7 @@ function clear_cubierta(){
}
$('.insertarLinea').on("click", function (e) {
if(e.target.id.includes("Plana")){
@ -941,11 +998,22 @@ $('.insertarLinea').on("click", function (e) {
fill_lp_cubierta(row, true);
}
}
if(e.target.id.includes("Guardas")){
clear_guardas();
var rows = $("#tableCompGuardas").DataTable().rows( '.selected' ).data().toArray();
for(row of rows){
fill_lp_guardas(row, true);
}
servicioGuardas(true)
}
});
$('#addLineasPresupuesto').on("change", function (e) {
$('#btn_addLinea').on("click", function (e) {
var dataRows = tableLineasPresupuesto
.rows()
@ -1099,6 +1167,29 @@ $('#addLineasPresupuesto').on("change", function (e) {
tableLineasPresupuesto.row.add(data).draw()
eventos_lp_cubierta()
break
case 'lp_guardas':
var hayLinea = false
for(let number=0;number<dataRows.length;number++){
if(dataRows[number].row_id == 'lp_guardas'){
hayLinea = true
continue
}
}
if(hayLinea){
popErrorAlert('<?=lang('Presupuestos.errores.lineaDuplicada') ?>', 'divAlarmasLineasPresupuesto');
break
}
var data = processRowData({tipo_maquina: 'toner'}, 'lp_guardas', 'lp-guardas');
tableLineasPresupuesto.row.add(data).draw()
$('#lp_guardas_gramaje').empty()
var o = new Option("170", "170");
$('#lp_guardas_gramaje').append(o)
eventos_lp_guardas()
servicioGuardas(true)
break
default:
break
}
@ -3403,7 +3494,7 @@ function getLomoLineasPresupuesto(){
var rowData = this.data();
lomoTotal += parseFloat(rowData.lomo)
})
}
}
catch(error){
lomoTotal = 0
}
@ -3411,10 +3502,280 @@ function getLomoLineasPresupuesto(){
}
/********************************
***************************** */
<?php if($tipo_impresion_id == 1 || $tipo_impresion_id == 3 || $tipo_impresion_id == 5 || $tipo_impresion_id == 7): ?>
function clear_lp_guardas(clear_selectors){
let pags = $("#lp_guardas_paginas option:selected" ).val()
$(".lp-guardas-input" ).val("0")
$("#lp_guardas_paginas" ).val(pags)
if(clear_selectors){
$( "#lp_guardas_maquina").empty()
$( "#lp_guardas_papelImpresion").empty()
}
}
function clear_guardas(){
clear_lp_guardas(true);
}
function calcularPresupuesto_guardas(fromComparador=false, input_data={}){
const dimension = getDimensionLibro();
if(Object.keys(input_data).length == 0){
input_data = {
paginas: <?php echo ($tipo_impresion_id == 1 || $tipo_impresion_id == 3)?8:4 ?>,
paginas_impresion: parseInt($('#lp_guardas_paginas option:selected').val()),
papel_generico_id: $('#lp_guardas_papel option:selected').val(),
papel_generico: $('#lp_guardas_papel option:selected').text().trim(),
gramaje: 170,
maquina_id: $('#lp_guardas_maquina option:selected').val(),
papel_impresion_id: $('#lp_guardas_papelImpresion option:selected').val()
}
}
var datos = {
tipo_impresion_id: <?php echo $tipo_impresion_id ?>,
type: 'guardas',
color: 1,
hq: 1,
paginas: <?php echo ($tipo_impresion_id == 1 || $tipo_impresion_id == 3)?8:4 ?>,
paginas_impresion: input_data.paginas_impresion,
tirada: parseInt($('#tirada').val()),
merma: parseInt($('#merma').val()),
ancho: dimension.ancho,
alto: dimension.alto,
papel_generico_id: input_data.papel_generico_id,
papel_generico: input_data.papel_generico,
gramaje: input_data.gramaje,
cliente_id: $('#clienteId').find(":selected").val(),
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
$.ajax({
type: "POST",
url: "/cosidotapablanda/datatable",
data: datos,
success: function (data) {
if(data.lineas.length >0){
// Se cogen los valores de la linea con los datos correspondientes
$.each(data.lineas, function(key, value) {
if(value.fields.maquina_id === input_data.maquina_id &&
value.fields.papel_generico_id === input_data.papel_generico_id &&
value.fields.papel_impresion_id === input_data.papel_impresion_id) {
if(Object.keys(input_data).length == 0){
value.fields.check_papel_total = $('#lp_guardas' + '_checkPapel').is(":checked")?1:0
value.fields.check_impresion_total = $('#lp_guardas' + '_checkClicks').is(":checked")?1:0
}
else{
value.fields.check_papel_total = 1
value.fields.check_impresion_total = 1
}
fill_lp_guardas(value.fields);
return false;
}
clear_lp_guardas(false);
});
}
else{
}
yeniden(data.<?= csrf_token() ?>);
},
error: function(e){
}
})
}
function fill_lp_guardas(row, fromComparador=false){
if(fromComparador){
var input_data = {
paginas: row.paginas,
paginas_impresion: row.paginas_impresion,
papel_generico_id: row.papelGenericoId,
gramaje: row.gramaje,
papel_impresion_id: row.papelImpresionId,
maquina_id: row.maquinaId,
}
calcularPresupuesto_guardas(false, input_data);
}
else{
// Se guarda el estado de "ver calculos"
mostrar_calculos = ($( ".calculos_lp_guardas").css('display') == 'table-row')
// Si viene de hacerlo a mano...
data = processRowData(row, 'lp_guardas', 'lp-guardas');
var row = tableLineasPresupuesto.row('#lp_guardas');
if(row.length>0)
tableLineasPresupuesto.row('#lp_guardas').data(data).draw()
else{
tableLineasPresupuesto.row.add(data).draw()
row = tableLineasPresupuesto.row('#lp_guardas');
}
row.child(format(row.data())).show();
eventos_lp_guardas(data.maquinaTipo=='inkjet'?true:false)
$('#lp_guardas_checkPapel').change()
calcular_mermas()
updateTotales(true, false, false)
updateTablaEnvios()
// Si existe cubierta, hay que actualizar con el valor del lomo
check_update_cubierta()
if(mostrar_calculos){
$( ".calculos_lp_guardas").css('display','table-row')
}
}
$("#tableLineasPresupuesto").DataTable().columns.adjust();
}
function eventos_lp_guardas(isInkjet = false){
$('#lp_guardas_papel').bind("focus", {clear_selectors: true}, clear_lp_guardas);
$('#lp_guardas_papelImpresion').focus("focus", set_lp_guardas_papelImpresion);
$('#lp_guardas_maquina').bind("focus", set_lp_guardas_maquina);
$('#lp_guardas_maquina').bind("change", calcularPresupuesto_guardas);
$('#lp_guardas_paginas').bind("change", change_lp_guardas_paginas);
$('#lp_guardas_checkPapel').bind("change", {id_linea: 'lp_guardas'}, update_total_linea);
$('#lp_guardas_checkClicks').bind("change", {id_linea: 'lp_guardas'}, update_total_linea);
if(isInkjet){
$('#lp_guardas_vercalculos').bind("click", {rowId: 'lp_guardas'}, verCalculosInkjet);
$('.lp-guardas-tipologia').bind("change", change_lp_guardas_tipologia);
$('#lp_guardas_defecto').bind("click", por_defecto_lp_guardas);
$('#lp_guardas_aFavorFibra').bind("change", change_lp_guardas_aFavorFibra);
}
}
function change_lp_guardas_tipologia(){
if( parseInt($('#lp_guardas_papel option:selected').val())>0 &&
parseInt($('#lp_guardas_papelImpresion option:selected').val())>0
){
calcularPresupuesto_guardas({},true);
}
}
function por_defecto_lp_guardas(){
if( parseInt($('#lp_guardas_papel option:selected').val())>0 &&
parseInt($('#lp_guardas_papelImpresion option:selected').val())>0
){
calcularPresupuesto_guardas();
}
}
function change_lp_guardas_aFavorFibra(){
if( parseInt($('#lp_guardas_papel option:selected').val())>0 &&
parseInt($('#lp_guardas_papelImpresion option:selected').val())>0
){
var rowData = tableLineasPresupuesto.row('#lp_guardas').data()
rowData.aFavorFibra = $('#lp_guardas_aFavorFibra').prop('checked')
tableLineasPresupuesto.row('#lp_guardas').data(rowData).draw(false)
calcularPresupuesto_guardas(false, true);
}
}
function change_lp_guardas_paginas(){
if( parseInt($('#lp_guardas_papel option:selected').val())>0 &&
parseInt($('#lp_guardas_papelImpresion option:selected').val())>0
){
calcularPresupuesto_guardas();
}
}
async function set_lp_guardas_maquina(){
await $.ajax({
type: 'post',
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
beforeSend: function() {
$('#lp_guardas_maquina').empty()
clear_lp_guardas(false)
},
data: {
tipo: 'maquina',
uso: 'colorhq',
tipoLinea: "guardas",
is_rotativa: 0,
ancho: getDimensionLibro().ancho,
alto: getDimensionLibro().alto,
datos: parseInt($('#tirada').val()) + parseInt($('#merma').val()),
papel_impresion: $('#lp_guardas_papelImpresion option:selected').val() ,
<?= csrf_token() ?? "token" ?>: <?= csrf_token() ?>v
},
dataType: 'json',
success: function (data) {
yeniden(data.<?= csrf_token() ?>);
$.each(data.menu, function(item){
var option = $('<option/>', {'value':data.menu[item].maquina_id, 'text':data.menu[item].maquina})
$('#lp_guardas_maquina').append(option);
});
$('#lp_guardas_maquina').val('')
}
});
}
async function set_lp_guardas_papelImpresion(){
await $.ajax({
type: 'post',
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
beforeSend: function() {
$('#lp_guardas_papelImpresion').empty()
$('#lp_guardas_maquina').empty()
clear_lp_guardas(false)
},
data: {
tipo: 'papelImpresion',
uso: 'guardas',
datos: $('#lp_guardas_papel option:selected').val() ,
gramaje: 170 ,
tipoLinea: "colorhq",
<?= csrf_token() ?? "token" ?>: <?= csrf_token() ?>v
},
dataType: 'json',
success: function (data) {
yeniden(data.<?= csrf_token() ?>);
$.each(data.menu, function(item){
var option = $('<option/>', {'value':data.menu[item].id, 'text':data.menu[item].text})
$('#lp_guardas_papelImpresion').append(option);
});
$('#lp_guardas_papelImpresion').val('')
}
});
}
<?php endif; ?>
fill_lp_from_bbdd()
@ -3543,7 +3904,12 @@ function fill_lp_from_bbdd(){
case 'lp_cubierta':
eventos_lp_cubierta()
break
case 'lp_guardas':
eventos_lp_guardas()
lp['paginas_impresion'] = lp.paginas_impresion
break
}
})
}
@ -3575,7 +3941,7 @@ async function fill_bbdd_from_lp(presupuesto_id){
linea_data = {
presupuesto_id: presupuesto_id,
tipo: rowData.row_id,
paginas: rowData.paginas,
paginas: (rowData.row_id=='lp_guardas')?(<?php echo ($tipo_impresion_id == 1 || $tipo_impresion_id == 3)?8:4 ?>):rowData.paginas,
papel_id: rowData.papel,
gramaje: rowData.gramaje,
papel_impresion_id: rowData.papel_impresion_id,
@ -3606,6 +3972,9 @@ async function fill_bbdd_from_lp(presupuesto_id){
total_linea: rowData.total_linea,
}
if(rowData.row_id=='lp_guardas')
linea_data.paginas_impresion = rowData.paginas_impresion
// maquina rotativa o inkjet
if(linea_data.maquina_tipo=='inkjet'){
@ -3730,7 +4099,7 @@ function checkPaginasPresupuesto(){
tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
var rowData = this.data();
if(rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta')
if(rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta' && rowData.row_id != 'lp_guardas')
cantidad_total += parseInt(rowData.paginas)
})
htmlString = ''

View File

@ -97,6 +97,9 @@ $('.accordion-button').on('click', function (e) {
else if (e.target.id.includes("cubierta")) {
$("#tableCompCubierta").DataTable().columns.adjust();
}
else if (e.target.id.includes("guardas")) {
$("#tableCompGuardas").DataTable().columns.adjust();
}
else if (e.target.id.includes("LineasPresupuesto")) {
$("#tableLineasPresupuesto").DataTable().columns.adjust();
}
@ -116,7 +119,7 @@ function getRowFromLineaInt(tipo, linea) {
parseFloat(linea.fields.precio_impresion_horas + linea.fields.margen_impresion_horas + linea.fields.precio_click_pedido).toFixed(2);
return {
data = {
'tipo': tipo,
'paginas': linea.fields.paginas,
'papel': linea.fields.papel_generico,
@ -140,6 +143,9 @@ function getRowFromLineaInt(tipo, linea) {
'papelImpresionId': linea.fields.papel_impresion_id,
'tarifa_impresion_id': linea.fields.tarifa_impresion_id,
}
if(data['tipo']=='guardas')
data['paginas_impresion'] = linea.fields.paginas_impresion;
return data;
}
function getRowFromLineaRot(linea) {
@ -328,6 +334,12 @@ function clearCubierta() {
}
function clearGuardas() {
$('#tableCompGuardas').DataTable().clear().draw();
$('#insertarGuardasBtn').css('display', 'none');
}
function clearIntRot() {
$('#errorComRot').html('');
@ -397,6 +409,22 @@ function selectCubiertaLineas() {
$('#total_comp_cubierta').html(value_total.toFixed(2));
}
function selectGuardasLineas() {
$("#tableCompGuardas").DataTable().rows('.selected').deselect();
let value_total = 0.00;
if ($("#tableCompGuardas").DataTable().rows().count() > 0) {
$("#tableCompGuardas").DataTable().row(0).nodes().to$().toggleClass('selected');
value_total = parseFloat($("#tableCompGuardas").DataTable().rows(0).data()[0]['total'])
};
$('#total_comp_guardas').html(value_total.toFixed(2));
}
function getIDsComparador(is_color, is_hq) {
if (!is_color) {
@ -511,7 +539,7 @@ function fillIntRot(data) {
})
}
function fillCubierta(data, is_color, is_hq) {
function fillCubierta(data) {
let sorted = data.lineas.sort(
(p1, p2) => ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) < (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ?
@ -524,6 +552,19 @@ function fillCubierta(data, is_color, is_hq) {
})
}
function fillGuardas(data) {
let sorted = data.lineas.sort(
(p1, p2) => ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) < (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ?
-1 : ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) > (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ? 1 : 0);
sorted.forEach(function (linea) {
if (typeof linea.error == "undefined")
$('#tableCompGuardas').DataTable().row
.add(getRowFromLineaInt('guardas', linea))
.draw()
})
}
function clearCompTable() {
$('#insertarPlanaBtn').addClass('d-none')
@ -606,7 +647,7 @@ function generateCompJSON() {
try {
cubierta_obj = {
"cubierta": {
'paginas': $('#compCarasCubierta').select2('data')[0].id,
'paginas': $('#compCarasCubierta option:selected').val(),
'papel_id': $('#compPapelCubierta').select2('data')[0].id,
'gramaje': $('#compGramajeCubierta').select2('data')[0].text.trim(),
},
@ -615,9 +656,24 @@ function generateCompJSON() {
catch (e) {
cubierta_obj = {}
}
$.extend(data, cubierta_obj);
if($('#compCarasGuardas').length>0){
try {
guardas_obj = {
"guardas": {
'paginas_impresion': $('#compCarasGuardas option:selected').val(),
'papel_id': $('#compPapelGuardas').select2('data')[0].id,
},
}
}
catch (e) {
guardas_obj = {}
}
$.extend(data, guardas_obj);
}
data_str = JSON.stringify(data)
$('#comparador_json_data').val(data_str)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB