mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'dev/presupuestos3' into 'dev/fixes'
# Conflicts: # ci4/app/Controllers/Presupuestos/Cosidotapablanda.php # ci4/app/Language/es/Presupuestos.php # ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php # ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php
This commit is contained in:
@ -125,14 +125,25 @@ class Maquinaspapelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
$start = $reqData['start'] ?? 0;
|
||||
$length = $reqData['length'] ?? 5;
|
||||
$search = $reqData['search']['value'];
|
||||
$requestedOrder = $reqData['order']['0']['column'] ?? 1;
|
||||
$order = MaquinasPapelesImpresionModel::SORTABLE_2[$requestedOrder >= 0 ? $requestedOrder : 1];
|
||||
$requestedOrder = $reqData['order']['0']['column'] ?? 0;
|
||||
$requestedOrder2 = $reqData['order']['1']['column'] ?? $requestedOrder;
|
||||
$requestedOrder3 = $reqData['order']['2']['column'] ?? $requestedOrder;
|
||||
$requestedOrder4 = $reqData['order']['3']['column'] ?? $requestedOrder;
|
||||
$order = MaquinasPapelesImpresionModel::SORTABLE_2[$requestedOrder >= 0 ? $requestedOrder : 0];
|
||||
$order2 = MaquinasPapelesImpresionModel::SORTABLE_2[$requestedOrder2 >= 0 ? $requestedOrder2 : $requestedOrder];
|
||||
$order3 = MaquinasPapelesImpresionModel::SORTABLE_2[$requestedOrder3 >= 0 ? $requestedOrder3 : $requestedOrder];
|
||||
$order4 = MaquinasPapelesImpresionModel::SORTABLE_2[$requestedOrder4 >= 0 ? $requestedOrder4 : $requestedOrder];
|
||||
$dir = $reqData['order']['0']['dir'] ?? 'asc';
|
||||
$dir2 = $reqData['order']['1']['dir'] ?? $dir;
|
||||
$dir3 = $reqData['order']['2']['dir'] ?? $dir;
|
||||
$dir4= $reqData['order']['3']['dir'] ?? $dir;
|
||||
|
||||
|
||||
$papel_id = $reqData['papel_id'] ?? -1;
|
||||
$isRotativa = $reqData['isRotativa'] ?? -1;
|
||||
|
||||
$resourceData = $this->model->getResource_maquinas($search, $papel_id, $isRotativa)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject();
|
||||
$resourceData = $this->model->getResource_maquinas($search, $papel_id, $isRotativa)
|
||||
->orderBy($order, $dir)->orderBy($order2, $dir2)->orderBy($order3, $dir3)->orderBy($order4, $dir4)->limit($length, $start)->get()->getResultObject();
|
||||
|
||||
return $this->respond(Collection::datatable(
|
||||
$resourceData,
|
||||
|
||||
@ -158,35 +158,6 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
/*
|
||||
|
||||
$this->viewData['formaPagoList'] = $this->getFormaPagoListItems();
|
||||
$this->viewData['tiposImpresionList'] = $this->getTiposImpresionListItems($presupuestoEntity->tipo_impresion_id ?? null);
|
||||
$this->viewData['tipologiasLibroList'] = $this->getTipologiasLibroListItems($presupuestoEntity->tipologia_id ?? null);
|
||||
|
||||
$this->viewData['ubicacionLibroList'] = $this->getUbicacionLibroListItems($presupuestoEntity->ubicacion_id ?? null);
|
||||
$this->viewData['presupuestoEstadoList'] = $this->getPresupuestoEstadoListItems($presupuestoEntity->estado_id ?? null);
|
||||
|
||||
$this->viewData['papelGenericoList'] = $this->getPapelGenericoListItems($presupuestoEntity->paginas_negro_papel_id ?? null);
|
||||
$this->viewData['papelImpresionList'] = $this->getPapelImpresionListItems($presupuestoEntity->paginas_negro_papel_impresion_id ?? null);
|
||||
$this->viewData['maquinaList'] = $this->getMaquinaListItems($presupuestoEntity->paginas_negro_maquina_id ?? null);
|
||||
$this->viewData['maquinasTarifasImpresionList'] = $this->getMaquinasTarifasImpresionListItems($presupuestoEntity->paginas_negro_tarifa_impresion_id ?? null);
|
||||
$this->viewData['papelGenericoList2'] = $this->getPapelGenericoListItems2($presupuestoEntity->paginas_color_papel_id ?? null);
|
||||
$this->viewData['papelImpresionList2'] = $this->getPapelImpresionListItems2($presupuestoEntity->paginas_color_papel_impresion_id ?? null);
|
||||
$this->viewData['maquinaList2'] = $this->getMaquinaListItems2($presupuestoEntity->paginas_color_maquina_id ?? null);
|
||||
$this->viewData['maquinasTarifasImpresionList2'] = $this->getMaquinasTarifasImpresionListItems2($presupuestoEntity->paginas_color_tarifa_impresion_id ?? null);
|
||||
$this->viewData['papelGenericoList3'] = $this->getPapelGenericoListItems3($presupuestoEntity->paginas_portada_papel_id ?? null);
|
||||
$this->viewData['papelImpresionList3'] = $this->getPapelImpresionListItems3($presupuestoEntity->paginas_portada_papel_impresion_id ?? null);
|
||||
$this->viewData['maquinaList3'] = $this->getMaquinaListItems3($presupuestoEntity->paginas_portada_maquina_id ?? null);
|
||||
$this->viewData['maquinasTarifasImpresionList3'] = $this->getMaquinasTarifasImpresionListItems3($presupuestoEntity->paginas_portada_tarifa_impresion_id ?? null);
|
||||
$this->viewData['papelGenericoList4'] = $this->getPapelGenericoListItems4($presupuestoEntity->paginas_cubierta_papel_id ?? null);
|
||||
$this->viewData['papelImpresionList4'] = $this->getPapelImpresionListItems4($presupuestoEntity->paginas_cubierta_papel_impresion_id ?? null);
|
||||
$this->viewData['maquinaList4'] = $this->getMaquinaListItems4($presupuestoEntity->paginas_cubierta_maquina_id ?? null);
|
||||
$this->viewData['maquinasTarifasImpresionList4'] = $this->getMaquinasTarifasImpresionListItems4($presupuestoEntity->paginas_cubierta_tarifa_impresion_id ?? null);
|
||||
$this->viewData['userList'] = $this->getUserListItems($presupuestoEntity->total_confirmado_user_id ?? null);
|
||||
$this->viewData['userList2'] = $this->getUserListItems2($presupuestoEntity->aprobado_user_id ?? null);
|
||||
$this->viewData['userList3'] = $this->getUserListItems3($presupuestoEntity->pedido_espera_user_id ?? null);
|
||||
$this->viewData['paginasCubiertaList'] = $this->getPaginasCubiertaOptions();
|
||||
$this->viewData['paginasPortadaList'] = $this->getPaginasPortadaOptions();
|
||||
*/
|
||||
$this->viewData['formAction'] = route_to('createCosidotapablanda');
|
||||
|
||||
$this->viewData['boxTitle'] = lang('Basic.global.addNew') . ' ' . lang('Presupuestos.moduleTitleCosidoTB') . ' ' . lang('Basic.global.addNewSuffix');
|
||||
@ -397,9 +368,9 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
if ($this->request->isAJAX()) {
|
||||
$reqData = $this->request->getPost();
|
||||
|
||||
$table_type = $reqData['table_type'] ?? null;
|
||||
$type = $reqData['type'] ?? null;
|
||||
|
||||
if (is_null($table_type)) {
|
||||
if (is_null($type)) {
|
||||
if (!isset($reqData['draw']) || !isset($reqData['columns'])) {
|
||||
$errstr = 'No data available in response to this specific request.';
|
||||
$response = $this->respond(Collection::datatable([], 0, 0, $errstr), 400, $errstr);
|
||||
@ -417,7 +388,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
|
||||
|
||||
if (is_null($table_type)) {
|
||||
if (is_null($type)) {
|
||||
$resourceData = $this->model->getResource($search)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject();
|
||||
foreach ($resourceData as $item) :
|
||||
if (isset($item->comentarios_pdf) && strlen($item->comentarios_pdf) > 100) :
|
||||
@ -456,40 +427,74 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
endforeach;
|
||||
} else {
|
||||
|
||||
switch ($table_type) {
|
||||
case 'comp_int_bn':
|
||||
$isColor = $reqData['color'] ?? false;
|
||||
$isHq = $reqData['hq'] ?? false;
|
||||
|
||||
$datosPedido = (object)array(
|
||||
'paginas' => intval($reqData['paginas']) ?? 0,
|
||||
'tirada' => intval($reqData['tirada']) ?? 0,
|
||||
'merma' => intval($reqData['merma']) ?? 0,
|
||||
'ancho' => intval($reqData['ancho']) ?? 100000,
|
||||
'alto' => intval($reqData['alto']) ?? 100000,
|
||||
'isCosido' => true, // JJO esto es custom por cada tipo de presupuesto
|
||||
);
|
||||
|
||||
$datosPedido = (object)array(
|
||||
'paginas' => intval($reqData['paginas']) ?? 0,
|
||||
'tirada' => intval($reqData['tirada']) ?? 0,
|
||||
'merma' => intval($reqData['merma']) ?? 0,
|
||||
'ancho' => intval($reqData['alto']) ?? 100000,
|
||||
'alto' => intval($reqData['ancho']) ?? 100000,
|
||||
'isCosido' => true, // JJO esto es custom por cada tipo de presupuesto
|
||||
);
|
||||
$papel_generico = [
|
||||
'id' => $reqData['papel_generico_id'] ?? 0,
|
||||
'nombre' => $reqData['papel_generico'] ?? "",
|
||||
];
|
||||
|
||||
$gramaje = $reqData['gramaje'] ?? 0;
|
||||
|
||||
$papel_generico = [
|
||||
'id' => $reqData['papel_generico_id'] ?? 0,
|
||||
'nombre' => $reqData['papel_generico'] ?? "",
|
||||
];
|
||||
|
||||
$gramaje = $reqData['gramaje'] ?? 0;
|
||||
if ($type=='interior') {
|
||||
|
||||
$resourceData = $this->getCompBnData($datosPedido, $papel_generico, $gramaje);
|
||||
|
||||
$newTokenHash = csrf_hash();
|
||||
$csrfTokenName = csrf_token();
|
||||
$data = [
|
||||
'lineas' => $resourceData,
|
||||
$csrfTokenName => $newTokenHash
|
||||
];
|
||||
|
||||
return $this->respond($data);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq);
|
||||
|
||||
$newTokenHash = csrf_hash();
|
||||
$csrfTokenName = csrf_token();
|
||||
$data = [
|
||||
'lineas' => $resourceData,
|
||||
$csrfTokenName => $newTokenHash
|
||||
];
|
||||
|
||||
return $this->respond($data);
|
||||
}
|
||||
else if ($type=='interior_rot') {
|
||||
|
||||
$paginas = (object)array(
|
||||
'negro' => intval($reqData['paginas_negro']) ?? 0,
|
||||
'color' => intval($reqData['paginas_color']) ?? 0,
|
||||
);
|
||||
|
||||
$resourceData = $this->getCompIntRotData($datosPedido, $papel_generico, $gramaje, $paginas);
|
||||
|
||||
$newTokenHash = csrf_hash();
|
||||
$csrfTokenName = csrf_token();
|
||||
$data = [
|
||||
'lineas' => $resourceData,
|
||||
$csrfTokenName => $newTokenHash
|
||||
];
|
||||
|
||||
return $this->respond($data);
|
||||
}
|
||||
else if ($type=='cubierta') {
|
||||
|
||||
$datosPedido->solapas = $reqData['solapas'];
|
||||
$datosPedido->solapas_ancho = $reqData['solapas_ancho'];
|
||||
|
||||
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq);
|
||||
|
||||
$newTokenHash = csrf_hash();
|
||||
$csrfTokenName = csrf_token();
|
||||
$data = [
|
||||
'lineas' => $resourceData,
|
||||
$csrfTokenName => $newTokenHash
|
||||
];
|
||||
|
||||
return $this->respond($data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return $this->respond(Collection::datatable(
|
||||
@ -502,18 +507,37 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
}
|
||||
}
|
||||
|
||||
private function getCompBnData($datosPedido, $papel_generico, $gramaje)
|
||||
public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq)
|
||||
{
|
||||
$uso = 'interior';
|
||||
$tipo = 'negro';
|
||||
$tipo = $isColor? ($isHq?'colorhq':'color'): ($isHq?'negrohq':'negro');
|
||||
|
||||
$opciones_papel = array(
|
||||
'bn' => 1,
|
||||
'cubierta' => 0,
|
||||
'sobrecubierta' => 0,
|
||||
'rotativa' => 0,
|
||||
);
|
||||
if( $uso == 'cubierta' ){
|
||||
$opciones_papel = array(
|
||||
'cubierta' => 1,
|
||||
'rotativa' => 0,
|
||||
);
|
||||
}
|
||||
else if ( $uso == 'sobrecubierta' ){
|
||||
$opciones_papel = array(
|
||||
'sobrecubierta' => 1,
|
||||
'rotativa' => 0,
|
||||
);
|
||||
}
|
||||
else if( $isColor ){
|
||||
$opciones_papel = array(
|
||||
'color' => 1,
|
||||
'rotativa' => 0,
|
||||
);
|
||||
}
|
||||
else{
|
||||
$opciones_papel = array(
|
||||
'bn' => 1,
|
||||
'rotativa' => 0,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Se obtienen los papeles disponibles
|
||||
$papelimpresionmodel = new PapelImpresionModel();
|
||||
$papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
|
||||
@ -522,13 +546,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
options: $opciones_papel
|
||||
);
|
||||
|
||||
|
||||
$lineas = array();
|
||||
// Para cada papel, se obtienen las maquinas disponibles
|
||||
foreach ($papeles as $papel) {
|
||||
|
||||
$maquinamodel = new MaquinaModel();
|
||||
$maquinas = $maquinamodel->getMaquinaImpresionForPresupuesto(
|
||||
is_rotativa: $papel->rotativa,
|
||||
is_rotativa: 0,
|
||||
tarifa_tipo: $tipo,
|
||||
tirada: $datosPedido->tirada + $datosPedido->merma,
|
||||
papel_impresion_id: $papel->id,
|
||||
@ -536,8 +560,12 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
// Se recorren las máquinas y se calcula el coste de linea por cada una
|
||||
foreach ($maquinas as $maquina) {
|
||||
|
||||
$tarifamodel = new MaquinasTarifasImpresionModel();
|
||||
$tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, $tipo);
|
||||
if(!is_float($tarifa)){
|
||||
continue;
|
||||
}
|
||||
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
|
||||
$linea['fields']['maquina'] = $maquina->maquina;
|
||||
$linea['fields']['maquina_id'] = $maquina->maquina_id;
|
||||
@ -551,7 +579,123 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
array_push($lineas, $linea);
|
||||
}
|
||||
}
|
||||
return $lineas;
|
||||
}
|
||||
|
||||
public function getCompIntRotData($datosPedido, $papel_generico, $gramaje, $paginas)
|
||||
{
|
||||
|
||||
$uso = 'interior';
|
||||
|
||||
$tipo = $paginas->color>0? 'color': 'negro';
|
||||
|
||||
|
||||
$parametrosRotativa = (object)array(
|
||||
'a_favor_fibra' => 0, // este parametro se cambia para comprobar
|
||||
// en las dos direcciones (menos en rustica fresada que es siempre 1)
|
||||
'bnPages' => $paginas->negro,
|
||||
'colorPages' => $paginas->color,
|
||||
'rotativa_gota_negro' => 0,
|
||||
'rotativa_gota_color' => 0,
|
||||
);
|
||||
|
||||
$opciones_papel = array(
|
||||
'rotativa' => 1,
|
||||
);
|
||||
|
||||
$tipo = array();
|
||||
if( $paginas->color > 0 ){
|
||||
$tipo[] = 'color';
|
||||
$opciones_papel['color'] = 1;
|
||||
}
|
||||
if( $paginas->negro > 0 ){
|
||||
$opciones_papel['bn'] = 1;
|
||||
$tipo[] = 'negro';
|
||||
}
|
||||
|
||||
// Se obtienen los papeles disponibles
|
||||
$papelimpresionmodel = new PapelImpresionModel();
|
||||
$papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
|
||||
papel_generico_id: $papel_generico['id'],
|
||||
gramaje: $gramaje,
|
||||
options: $opciones_papel
|
||||
);
|
||||
|
||||
$lineas = array();
|
||||
// Para cada papel, se obtienen las maquinas disponibles
|
||||
foreach ($papeles as $papel) {
|
||||
|
||||
$papelImpresionTipologiaModel = new \App\Models\Configuracion\PapelImpresionTipologiaModel();
|
||||
$datosTipologias = $papelImpresionTipologiaModel
|
||||
->findTipologiasForPapelImpresion($papel->id, $parametrosRotativa->colorPages>0?'color':'negro')
|
||||
->get()->getResultObject();
|
||||
|
||||
$parametrosRotativa->rotativa_gota_negro = $datosTipologias[0]->gota_negro;
|
||||
$parametrosRotativa->rotativa_gota_color = $datosTipologias[0]->gota_color;
|
||||
$parametrosRotativa->rotativa_negro = $datosTipologias[0]->negro;
|
||||
$parametrosRotativa->rotativa_cyan = $datosTipologias[0]->cyan;
|
||||
$parametrosRotativa->rotativa_magenta = $datosTipologias[0]->magenta;
|
||||
$parametrosRotativa->rotativa_amarillo = $datosTipologias[0]->amarillo;
|
||||
|
||||
$maquinamodel = new MaquinaModel();
|
||||
|
||||
$maquinas = $maquinamodel->getMaquinaImpresionForPresupuesto(
|
||||
is_rotativa: 1,
|
||||
tarifa_tipo: $tipo,
|
||||
tirada: $datosPedido->tirada + $datosPedido->merma,
|
||||
papel_impresion_id: $papel->id,
|
||||
);
|
||||
|
||||
// Se recorren las máquinas y se calcula el coste de linea por cada una
|
||||
foreach ($maquinas as $maquina) {
|
||||
|
||||
for ($i = 0; $i <= 1; $i++) {
|
||||
|
||||
$parametrosRotativa->a_favor_fibra = $i;
|
||||
|
||||
$tarifamodel = new MaquinasTarifasImpresionModel();
|
||||
$tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, is_array($tipo)?'color':$tipo);
|
||||
if(!is_float($tarifa)){
|
||||
continue;
|
||||
}
|
||||
|
||||
// precio del pliego de impresion
|
||||
$linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa);
|
||||
|
||||
$precio_pliego_impresion = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas);
|
||||
$linea['fields']['precios_pliegos'] = $precio_pliego_impresion;
|
||||
|
||||
$linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $precio_pliego_impresion;
|
||||
// Precio papel pedido
|
||||
$linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma);
|
||||
|
||||
$linea['fields']['a_favor_fibra'] = $parametrosRotativa->a_favor_fibra;
|
||||
$linea['fields']['maquina'] = $maquina->maquina;
|
||||
$linea['fields']['maquina_id'] = $maquina->maquina_id;
|
||||
$linea['fields']['papel_impresion'] = $papel->nombre;
|
||||
$linea['fields']['papel_impresion_id'] = $papel->id;
|
||||
$linea['fields']['paginas'] = $datosPedido->paginas;
|
||||
$linea['fields']['gramaje'] = $gramaje;
|
||||
$linea['fields']['papel_generico_id'] = $papel_generico['id'];
|
||||
$linea['fields']['papel_generico'] = $papel_generico['nombre'];
|
||||
|
||||
$linea['fields']['posicion_formas'] = $parametrosRotativa->a_favor_fibra ? 'h' : 'v';
|
||||
$linea['fields']['num_formas_horizontales'] = floor($linea['fields']['factor_anchura']);
|
||||
$linea['fields']['num_formas_verticales'] = floor($linea['fields']['factor_altura']);
|
||||
|
||||
// impresion
|
||||
$linea['fields']['precio_click'] = $tarifa;
|
||||
$linea['fields']['precio_click_pedido'] = $linea['fields']['clicks_pedido'] * $linea['fields']['precio_click'];
|
||||
|
||||
|
||||
// total linea rotativa
|
||||
$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + $linea['fields']['precio_click_pedido'] + $linea['fields']['precio_tinta'] +
|
||||
$linea['fields']['total_corte'];
|
||||
|
||||
array_push($lineas, $linea);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $lineas;
|
||||
}
|
||||
|
||||
@ -585,14 +729,15 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$reqData = $this->request->getPost();
|
||||
|
||||
$tipo = $reqData['tipo'] ?? null;
|
||||
$uso = $reqData['uso'] ?? null;
|
||||
$datos = $reqData['datos'] ?? null;
|
||||
$searchStr = goSanitize($this->request->getPost('searchTerm'))[0];
|
||||
//$searchStr = goSanitize($this->request->getPost('searchTerm'))[0];
|
||||
|
||||
|
||||
if ($tipo == 'gramaje') {
|
||||
// En este caso contiene el nombre del papel generico
|
||||
$model = new PapelGenericoModel();
|
||||
$menu = $model->getGramajeComparador($datos, $searchStr);
|
||||
$menu = $model->getGramajeComparador($datos, $uso );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -3,11 +3,12 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Models\Configuracion\MaquinasTarifasImpresionModel;
|
||||
use App\Models\Configuracion\MaquinaModel;
|
||||
use App\Services\PresupuestoService;
|
||||
|
||||
class Test extends BaseController
|
||||
{
|
||||
|
||||
|
||||
function __construct()
|
||||
{
|
||||
|
||||
@ -15,21 +16,237 @@ class Test extends BaseController
|
||||
|
||||
public function index()
|
||||
{
|
||||
//PresupuestoService::test();
|
||||
return view('themes/backend/vuexy/form/test_js/viewTest');
|
||||
$this->testLineasIntPlanaCubierta();
|
||||
}
|
||||
|
||||
function test_js()
|
||||
public function testGetPrecioPliegoRotativa()
|
||||
{
|
||||
/*$this->response->setHeader('Content-Type', 'text/javascript');
|
||||
return view('themes/backend/vuexy/form/test_js/test_js.js');*/
|
||||
$paginas=240;
|
||||
|
||||
$papel_impresion = (object)array(
|
||||
'id' => 198,
|
||||
'gramaje' => 90,
|
||||
'precio_tonelada'=> 1600
|
||||
);
|
||||
|
||||
|
||||
$maquina = (object)array(
|
||||
//'id' => 48,
|
||||
'alto' => 800,
|
||||
'ancho' => 520,
|
||||
);
|
||||
|
||||
$precio = PresupuestoService::getPrecioPliego($maquina, $papel_impresion, $paginas);
|
||||
|
||||
var_dump($precio);
|
||||
|
||||
}
|
||||
|
||||
public function pruebaJJO()
|
||||
public function testGetMaquinasFromTarifas()
|
||||
{
|
||||
//PresupuestoService::test2();
|
||||
$maquinamodel = new MaquinaModel();
|
||||
|
||||
//$tarifa_tipo = ['negro', 'color'];
|
||||
//$tarifa_tipo = 'color';
|
||||
$tarifa_tipo = 'negro';
|
||||
$papel_impresion_id = 5;
|
||||
$maquina = $maquinamodel->getMaquinaImpresionForPresupuesto(1, $tarifa_tipo, 100, $papel_impresion_id);
|
||||
echo '<pre>';
|
||||
var_dump($maquina);
|
||||
echo '</pre>';
|
||||
}
|
||||
|
||||
public static function testLineasIntPlana()
|
||||
{
|
||||
$uso = 'negro';
|
||||
$tipo = 'color';
|
||||
$datosPedido = (object)array(
|
||||
'paginas' => 200,
|
||||
'tirada' => 500,
|
||||
'merma' => 10,
|
||||
'merma_portada' => 10,
|
||||
'ancho' => 165,
|
||||
'alto' => 148,
|
||||
'isCosido' => true,
|
||||
);
|
||||
|
||||
$maquina_model = new \App\Models\Configuracion\MaquinaModel();
|
||||
|
||||
$opciones_papel = array(
|
||||
'bn' => 1,
|
||||
'cubierta' => 0,
|
||||
'sobrecubierta' => 0,
|
||||
'rotativa' => 0,
|
||||
);
|
||||
$papelimpresionmodel = new \App\Models\Configuracion\PapelImpresionModel();
|
||||
$papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
|
||||
papel_generico_id: 4,
|
||||
gramaje: 90,
|
||||
options: $opciones_papel
|
||||
);
|
||||
foreach ($papeles as $papel) {
|
||||
echo '-------------------------------';
|
||||
$maquinas = $maquina_model->getMaquinaImpresionForPresupuesto(
|
||||
is_rotativa: $papel->rotativa,
|
||||
tarifa_tipo: 'negro',
|
||||
tirada: $datosPedido->tirada + $datosPedido->merma,
|
||||
papel_impresion_id: $papel->id,
|
||||
);
|
||||
|
||||
foreach ($maquinas as $maquina) {
|
||||
|
||||
echo '----------------------------<br>';
|
||||
var_dump($maquina->maquina);
|
||||
var_dump($papel->nombre);
|
||||
$tarifa = (new \App\Models\Configuracion\MaquinasTarifasImpresionModel())->getTarifa($maquina->maquina_id, $uso, $tipo);
|
||||
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
|
||||
echo '<pre>';
|
||||
var_dump($linea);
|
||||
echo '</pre>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static function testLineasIntPlanaCubierta()
|
||||
{
|
||||
echo '<pre>';
|
||||
$uso = 'cubierta';
|
||||
$tipo = 'color';
|
||||
$datosPedido = (object)array(
|
||||
'paginas' => 200,
|
||||
'tirada' => 500,
|
||||
'merma' => 10,
|
||||
'merma_portada' => 10,
|
||||
'ancho' => 165,
|
||||
'alto' => 148,
|
||||
'isCosido' => true,
|
||||
'solapas' => 0,
|
||||
'solapas_ancho' => 0,
|
||||
);
|
||||
|
||||
$maquina_model = new \App\Models\Configuracion\MaquinaModel();
|
||||
|
||||
$opciones_papel = array(
|
||||
'color' => 1,
|
||||
'cubierta' => 1,
|
||||
'sobrecubierta' => 0,
|
||||
'rotativa' => 0,
|
||||
);
|
||||
$papelimpresionmodel = new \App\Models\Configuracion\PapelImpresionModel();
|
||||
$papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
|
||||
papel_generico_id: 3,
|
||||
gramaje: 100,
|
||||
options: $opciones_papel
|
||||
);
|
||||
foreach ($papeles as $papel) {
|
||||
echo '-------------------------------';
|
||||
var_dump($papel);
|
||||
$maquinas = $maquina_model->getMaquinaImpresionForPresupuesto(
|
||||
is_rotativa: $papel->rotativa,
|
||||
tarifa_tipo: 'color',
|
||||
tirada: $datosPedido->tirada + $datosPedido->merma_portada,
|
||||
papel_impresion_id: $papel->id,
|
||||
);
|
||||
|
||||
foreach ($maquinas as $maquina) {
|
||||
|
||||
echo '----------------------------<br>';
|
||||
var_dump($maquina->maquina);
|
||||
var_dump($papel->nombre);
|
||||
$tarifa = (new \App\Models\Configuracion\MaquinasTarifasImpresionModel())->getTarifa($maquina->maquina_id, $uso, $tipo);
|
||||
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
|
||||
|
||||
var_dump($linea);
|
||||
|
||||
}
|
||||
}
|
||||
echo '</pre>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static function testLineasIntRotativa()
|
||||
{
|
||||
|
||||
$uso = 'interior';
|
||||
$tipo = 'negro';
|
||||
|
||||
|
||||
|
||||
$datosPedido = (object)array(
|
||||
'paginas' => 240,
|
||||
'tirada' => 100,
|
||||
'merma' => 10,
|
||||
'merma_portada' => 10,
|
||||
'ancho' => 150,
|
||||
'alto' => 210,
|
||||
'isCosido' => true,
|
||||
);
|
||||
|
||||
$parametrosRotativa = (object)array(
|
||||
'a_favor_fibra' => 0,
|
||||
'bnPages' => 240,
|
||||
'colorPages' => 0,
|
||||
'rotativa_gota_negro' => 0,
|
||||
'rotativa_gota_color' => 0,
|
||||
);
|
||||
|
||||
$maquina_model = new \App\Models\Configuracion\MaquinaModel();
|
||||
|
||||
$opciones_papel = array(
|
||||
'bn' => 1,
|
||||
'cubierta' => 0,
|
||||
'sobrecubierta' => 0,
|
||||
'rotativa' => 1,
|
||||
);
|
||||
$papelimpresionmodel = new \App\Models\Configuracion\PapelImpresionModel();
|
||||
$papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
|
||||
papel_generico_id: 4,
|
||||
gramaje: 90,
|
||||
options: $opciones_papel
|
||||
);
|
||||
|
||||
|
||||
foreach ($papeles as $papel) {
|
||||
|
||||
$papelImpresionTipologiaModel = new \App\Models\Configuracion\PapelImpresionTipologiaModel();
|
||||
$datosTipologias = $papelImpresionTipologiaModel
|
||||
->findTipologiasForPapelImpresion($papel->id, $parametrosRotativa->colorPages>0?'color':'negro')
|
||||
->get()->getResultObject();
|
||||
echo '<pre>';
|
||||
var_dump($papel->id);
|
||||
var_dump($datosTipologias);
|
||||
echo '</pre>';
|
||||
$parametrosRotativa->rotativa_gota_negro = $datosTipologias[0]->gota_negro;
|
||||
$parametrosRotativa->rotativa_gota_color = $datosTipologias[0]->gota_color;
|
||||
$parametrosRotativa->rotativa_negro = $datosTipologias[0]->negro;
|
||||
$parametrosRotativa->rotativa_cyan = $datosTipologias[0]->cyan;
|
||||
$parametrosRotativa->rotativa_magenta = $datosTipologias[0]->magenta;
|
||||
$parametrosRotativa->rotativa_amarillo = $datosTipologias[0]->amarillo;
|
||||
|
||||
echo '-------------------------------';
|
||||
$maquinas = $maquina_model->getMaquinaImpresionForPresupuesto(
|
||||
is_rotativa: $papel->rotativa,
|
||||
tarifa_tipo: 'negro',
|
||||
tirada: $datosPedido->tirada + $datosPedido->merma,
|
||||
papel_impresion_id: $papel->id,
|
||||
);
|
||||
|
||||
|
||||
|
||||
foreach ($maquinas as $maquina) {
|
||||
|
||||
echo '----------------------------<br>';
|
||||
var_dump($maquina->maquina);
|
||||
var_dump($papel->nombre);
|
||||
|
||||
//$linea = PresupuestoService::getCostesLineaRotativa($maquina, $datosPedido, $parametrosRotativa);
|
||||
echo '<pre>';
|
||||
var_dump($linea);
|
||||
echo '</pre>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,8 +28,8 @@ class Maquina extends \CodeIgniter\Entity\Entity
|
||||
"velocidad_corte" => 0.0,
|
||||
"precio_hora_corte" => 0.0,
|
||||
"metrosxminuto" => 0.0,
|
||||
"forzar_num_formas_horizontales_portada" => null,
|
||||
"forzar_num_formas_verticales_portada" => null,
|
||||
"forzar_num_formas_horizontales_cubierta" => null,
|
||||
"forzar_num_formas_verticales_cubierta" => null,
|
||||
"observaciones" => "",
|
||||
"is_deleted" => 0,
|
||||
"created_at" => null,
|
||||
@ -56,8 +56,8 @@ class Maquina extends \CodeIgniter\Entity\Entity
|
||||
"precio_tinta_color" => "float",
|
||||
"velocidad_corte" => "float",
|
||||
"precio_hora_corte" => "float",
|
||||
"forzar_num_formas_horizontales_portada" => "?int",
|
||||
"forzar_num_formas_verticales_portada" => "?int",
|
||||
"forzar_num_formas_horizontales_cubierta" => "?int",
|
||||
"forzar_num_formas_verticales_cubierta" => "?int",
|
||||
"is_deleted" => "int",
|
||||
"user_created_id" => "int",
|
||||
"user_updated_id" => "int",
|
||||
|
||||
@ -54,12 +54,12 @@ return [
|
||||
'greater_than' => 'The field {field} must be greater than {param}',
|
||||
],
|
||||
|
||||
'forzar_num_formas_horizontales_portada' => [
|
||||
'forzar_num_formas_horizontales_cubierta' => [
|
||||
'integer' => 'The {field} field must contain an integer.',
|
||||
|
||||
],
|
||||
|
||||
'forzar_num_formas_verticales_portada' => [
|
||||
'forzar_num_formas_verticales_cubierta' => [
|
||||
'integer' => 'The {field} field must contain an integer.',
|
||||
|
||||
],
|
||||
|
||||
@ -59,6 +59,27 @@ return [
|
||||
'retractilado5' => 'Shrink-wrapping in packs of 5',
|
||||
'Guardas' => 'Endpapers',
|
||||
'fajaColor' => 'Print color band ',
|
||||
'compInteriorPlana' => 'Interior in flat machine',
|
||||
'compInteriorRotativa' => 'Interior in rotary',
|
||||
'compCubiertaSobrecubierta' => 'Cover and dust jacket',
|
||||
'tipo' => 'Type',
|
||||
'marca' => 'Brand',
|
||||
'maquina' => 'Machine',
|
||||
'numeroPliegos' => 'Sheets No.',
|
||||
'pliegosPedido' => 'Sheets order',
|
||||
'precioPliego' => 'Sheets price',
|
||||
'libro' => 'Book',
|
||||
'totalPapelPedido' => 'Total paper order',
|
||||
'lomo' => 'Spine',
|
||||
'peso' => 'Weight',
|
||||
'click' => 'Click',
|
||||
'totalClicks' => 'Total clicks',
|
||||
'precioPagNegro' => 'Pages black price',
|
||||
'precioPagColor' => 'Pages color price',
|
||||
'totalTinta' => 'Total ink',
|
||||
'totalCorte' => 'Total cut',
|
||||
'total' => 'Total',
|
||||
'aFavorFibra' => 'In fiber direction',
|
||||
'cubierta' => 'Cover',
|
||||
'sobrecubierta' => 'Dust jacket',
|
||||
'encuadernacion' => 'Binding',
|
||||
@ -66,6 +87,13 @@ return [
|
||||
'solapasAnchoCubierta' => 'Cover dust jacket width',
|
||||
'1cara' => '1 side',
|
||||
'2caras' => '2 sides',
|
||||
'bn' => 'BW',
|
||||
'bnhq' => 'BWHQ',
|
||||
'color' => 'Colour',
|
||||
'colorhq' => 'ColourHQ',
|
||||
'rotativa' => 'Rotary',
|
||||
'si' => 'Yes',
|
||||
'no' => 'No',
|
||||
|
||||
/* '4x0' => '4x0',
|
||||
'4x4' => '4x4',
|
||||
|
||||
@ -54,12 +54,12 @@ return [
|
||||
'greater_than' => 'El campo {field} debe ser mayor que {param}',
|
||||
],
|
||||
|
||||
'forzar_num_formas_horizontales_portada' => [
|
||||
'forzar_num_formas_horizontales_cubierta' => [
|
||||
'integer' => 'El campo {field} debe contener un número entero.',
|
||||
|
||||
],
|
||||
|
||||
'forzar_num_formas_verticales_portada' => [
|
||||
'forzar_num_formas_verticales_cubierta' => [
|
||||
'integer' => 'El campo {field} debe contener un número entero.',
|
||||
|
||||
],
|
||||
|
||||
@ -70,21 +70,30 @@ return [
|
||||
'libro' => 'Libro',
|
||||
'totalPapelPedido' => 'Total papel pedido',
|
||||
'lomo' => 'Lomo',
|
||||
'peso' => 'Peso',
|
||||
'click' => 'Click',
|
||||
'totalClicks' => 'Total clicks',
|
||||
'precioPagNegro' => 'Precio pág. negro',
|
||||
'precioPagColor' => 'Precio pág. color',
|
||||
'totalTinta' => 'Total tinta',
|
||||
'totalCorte' => 'Total corte',
|
||||
'total' => 'Total',
|
||||
'cubierta' => 'Cubierta',
|
||||
'sobrecubierta' => 'Sobrecubierta',
|
||||
'encuadernacion' => 'Encuadernación',
|
||||
'solapasCubierta' => 'Solapas cubierta',
|
||||
'solapasAnchoCubierta' => 'Ancho solapas cubierta',
|
||||
'1cara' => '1 cara',
|
||||
'2caras' => '2 caras',
|
||||
'peso' => 'Peso',
|
||||
'click' => 'Click',
|
||||
'totalClicks' => 'Total clicks',
|
||||
'precioPagNegro' => 'Precio pág. negro',
|
||||
'precioPagColor' => 'Precio pág. color',
|
||||
'totalTinta' => 'Total tinta',
|
||||
'totalCorte' => 'Total corte',
|
||||
'total' => 'Total',
|
||||
'aFavorFibra' => 'A favor fibra',
|
||||
'cubierta' => 'Cubierta',
|
||||
'sobrecubierta' => 'Sobrecubierta',
|
||||
'encuadernacion' => 'Encuadernación',
|
||||
'solapasCubierta' => 'Solapas cubierta',
|
||||
'solapasAnchoCubierta' => 'Ancho solapas cubierta',
|
||||
'1cara' => '1 cara',
|
||||
'2caras' => '2 caras',
|
||||
'bn' => 'BN',
|
||||
'bnhq' => 'BNHQ',
|
||||
'color' => 'Color',
|
||||
'colorhq' => 'ColorHQ',
|
||||
'rotativa' => 'Rotativa',
|
||||
'si' => 'Si',
|
||||
'no' => 'No',
|
||||
|
||||
'servicioAcabado' => 'Servicio de acabado',
|
||||
'servicioPreimpresion' => 'Servicio de preimpresión',
|
||||
'servicioEncuadernado' => 'Servicio de encuadernado',
|
||||
@ -299,6 +308,200 @@ return [
|
||||
|
||||
],
|
||||
|
||||
|
||||
|
||||
/* '4x0' => '4x0',
|
||||
'4x4' => '4x4',
|
||||
'aprobadoAt' => 'Aprobado At',
|
||||
'aprobadoJsonData' => 'Aprobado Json Data',
|
||||
'aprobadoUserId' => 'Aprobado User',
|
||||
'autor' => 'Autor',
|
||||
'baseImponible' => 'Base Imponible',
|
||||
'catalogoId' => 'Catalogo ID',
|
||||
'causaCancelacion' => 'Causa Cancelacion',
|
||||
'coleccion' => 'Coleccion',
|
||||
'comentarios' => 'Comentarios',
|
||||
'comentariosPdf' => 'Comentarios Pdf',
|
||||
'comentariosSafekat' => 'Comentarios Safekat',
|
||||
'comentariosTarifa' => 'Comentarios Tarifa',
|
||||
'comparadorJsonData' => 'Comparador Json Data',
|
||||
'cosido' => 'Cosido',
|
||||
'createdAt' => 'Created At',
|
||||
'cubiertas' => 'Cubiertas',
|
||||
'cubiertasAncho' => 'Cubiertas Ancho',
|
||||
'deletedAt' => 'Deleted At',
|
||||
'descuento' => 'Descuento',
|
||||
'enEspera' => 'EN Espera',
|
||||
'enProduccion' => 'EN Produccion',
|
||||
'enviosRecogeCliente' => 'Envios Recoge Cliente',
|
||||
'estadoId' => 'Estado',
|
||||
'facturaId' => 'Factura ID',
|
||||
'fechaEncuardenadoAt' => 'Fecha Encuardenado At',
|
||||
'fechaEntregaRealAt' => 'Fecha Entrega Real At',
|
||||
'fechaEntregaRealWarning' => 'Fecha Entrega Real Warning',
|
||||
'fechaExternoAt' => 'Fecha Externo At',
|
||||
'fechaFerroSubidoAt' => 'Fecha Ferro Subido At',
|
||||
'fechaImpresionAt' => 'Fecha Impresion At',
|
||||
'ferro' => 'Ferro',
|
||||
'ferroDigital' => 'Ferro Digital',
|
||||
'formaPagoId' => 'Forma Pago',
|
||||
'forzarTotal' => 'Forzar Total',
|
||||
'imagenesBnInterior' => 'Imagenes Bn Interior',
|
||||
'isDeleted' => 'Is Deleted',
|
||||
'isbn' => 'Isbn',
|
||||
'isdig' => 'Isdig',
|
||||
'lomo' => 'Lomo',
|
||||
'marcapaginas' => 'Marcapaginas',
|
||||
'margen' => 'Margen',
|
||||
'margenExtra' => 'Margen Extra',
|
||||
'margenManual' => 'Margen Manual',
|
||||
'merma' => 'Merma',
|
||||
'mermaPortada' => 'Merma Portada',
|
||||
'modoComparador' => 'Modo Comparador',
|
||||
'moduleTitle' => 'Presupuestos',
|
||||
'numeroEdicion' => 'Numero Edicion',
|
||||
'paginasColor' => 'Paginas Color',
|
||||
'paginasColorCheckImpresionTotal' => 'Paginas Color Check Impresion Total',
|
||||
'paginasColorCheckPapelTotal' => 'Paginas Color Check Papel Total',
|
||||
'paginasColorClick' => 'Paginas Color Click',
|
||||
'paginasColorFormaId' => 'Paginas Color Forma ID',
|
||||
'paginasColorGramaje' => 'Paginas Color Gramaje',
|
||||
'paginasColorLibro' => 'Paginas Color Libro',
|
||||
'paginasColorMano' => 'Paginas Color Mano',
|
||||
'paginasColorMaquinaId' => 'Paginas Color Maquina',
|
||||
'paginasColorPapelId' => 'Paginas Color Papel',
|
||||
'paginasColorPapelImpresionId' => 'Paginas Color Papel Impresion',
|
||||
'paginasColorPedido' => 'Paginas Color Pedido',
|
||||
'paginasColorPeso' => 'Paginas Color Peso',
|
||||
'paginasColorPliegosLibro' => 'Paginas Color Pliegos Libro',
|
||||
'paginasColorPliegosPedido' => 'Paginas Color Pliegos Pedido',
|
||||
'paginasColorPliegosPrecio' => 'Paginas Color Pliegos Precio',
|
||||
'paginasColorPosicion' => 'Paginas Color Posicion',
|
||||
'paginasColorPrecio' => 'Paginas Color Precio',
|
||||
'paginasColorTarifaImpresionId' => 'Paginas Color Tarifa Impresion',
|
||||
'paginasCubierta' => 'Paginas Cubierta',
|
||||
'paginasCubiertaCheckImpresionTotal' => 'Paginas Cubierta Check Impresion Total',
|
||||
'paginasCubiertaCheckPapelTotal' => 'Paginas Cubierta Check Papel Total',
|
||||
'paginasCubiertaClick' => 'Paginas Cubierta Click',
|
||||
'paginasCubiertaFormaId' => 'Paginas Cubierta Forma ID',
|
||||
'paginasCubiertaGramaje' => 'Paginas Cubierta Gramaje',
|
||||
'paginasCubiertaLibro' => 'Paginas Cubierta Libro',
|
||||
'paginasCubiertaMano' => 'Paginas Cubierta Mano',
|
||||
'paginasCubiertaMaquinaId' => 'Paginas Cubierta Maquina',
|
||||
'paginasCubiertaPapelId' => 'Paginas Cubierta Papel',
|
||||
'paginasCubiertaPapelImpresionId' => 'Paginas Cubierta Papel Impresion',
|
||||
'paginasCubiertaPedido' => 'Paginas Cubierta Pedido',
|
||||
'paginasCubiertaPeso' => 'Paginas Cubierta Peso',
|
||||
'paginasCubiertaPliegosLibro' => 'Paginas Cubierta Pliegos Libro',
|
||||
'paginasCubiertaPliegosPedido' => 'Paginas Cubierta Pliegos Pedido',
|
||||
'paginasCubiertaPliegosPrecio' => 'Paginas Cubierta Pliegos Precio',
|
||||
'paginasCubiertaPrecio' => 'Paginas Cubierta Precio',
|
||||
'paginasCubiertaTarifaImpresionId' => 'Paginas Cubierta Tarifa Impresion',
|
||||
'paginasNegro' => 'Paginas Negro',
|
||||
'paginasNegroCheckImpresionTotal' => 'Paginas Negro Check Impresion Total',
|
||||
'paginasNegroCheckPapelTotal' => 'Paginas Negro Check Papel Total',
|
||||
'paginasNegroClick' => 'Paginas Negro Click',
|
||||
'paginasNegroFormaId' => 'Paginas Negro Forma ID',
|
||||
'paginasNegroGramaje' => 'Paginas Negro Gramaje',
|
||||
'paginasNegroHq' => 'Paginas Negro Hq',
|
||||
'paginasNegroLibro' => 'Paginas Negro Libro',
|
||||
'paginasNegroMano' => 'Paginas Negro Mano',
|
||||
'paginasNegroMaquinaId' => 'Paginas Negro Maquina',
|
||||
'paginasNegroPapelId' => 'Paginas Negro Papel',
|
||||
'paginasNegroPapelImpresionId' => 'Paginas Negro Papel Impresion',
|
||||
'paginasNegroPedido' => 'Paginas Negro Pedido',
|
||||
'paginasNegroPeso' => 'Paginas Negro Peso',
|
||||
'paginasNegroPliegosLibro' => 'Paginas Negro Pliegos Libro',
|
||||
'paginasNegroPliegosPedido' => 'Paginas Negro Pliegos Pedido',
|
||||
'paginasNegroPliegosPrecio' => 'Paginas Negro Pliegos Precio',
|
||||
'paginasNegroPrecio' => 'Paginas Negro Precio',
|
||||
'paginasNegroTarifaImpresionId' => 'Paginas Negro Tarifa Impresion',
|
||||
'paginasPortada' => 'Paginas Portada',
|
||||
'paginasPortadaCheckImpresionTotal' => 'Paginas Portada Check Impresion Total',
|
||||
'paginasPortadaCheckPapelTotal' => 'Paginas Portada Check Papel Total',
|
||||
'paginasPortadaClick' => 'Paginas Portada Click',
|
||||
'paginasPortadaFormaId' => 'Paginas Portada Forma ID',
|
||||
'paginasPortadaGramaje' => 'Paginas Portada Gramaje',
|
||||
'paginasPortadaLibro' => 'Paginas Portada Libro',
|
||||
'paginasPortadaMano' => 'Paginas Portada Mano',
|
||||
'paginasPortadaMaquinaId' => 'Paginas Portada Maquina',
|
||||
'paginasPortadaPapelId' => 'Paginas Portada Papel',
|
||||
'paginasPortadaPapelImpresionId' => 'Paginas Portada Papel Impresion',
|
||||
'paginasPortadaPedido' => 'Paginas Portada Pedido',
|
||||
'paginasPortadaPeso' => 'Paginas Portada Peso',
|
||||
'paginasPortadaPliegosLibro' => 'Paginas Portada Pliegos Libro',
|
||||
'paginasPortadaPliegosPedido' => 'Paginas Portada Pliegos Pedido',
|
||||
'paginasPortadaPliegosPrecio' => 'Paginas Portada Pliegos Precio',
|
||||
'paginasPortadaPrecio' => 'Paginas Portada Precio',
|
||||
'paginasPortadaTarifaImpresionId' => 'Paginas Portada Tarifa Impresion',
|
||||
'papelFormatoAlto' => 'Papel Formato Alto',
|
||||
'papelFormatoAncho' => 'Papel Formato Ancho',
|
||||
'papelFormatoId' => 'Papel Formato',
|
||||
'papelFormatoPersonalizado' => 'Papel Formato Personalizado',
|
||||
'pedidoEsperaFecha' => 'Pedido Espera Fecha',
|
||||
'pedidoEsperaUserId' => 'Pedido Espera User',
|
||||
'pedidoLibroConjuntoId' => 'Pedido Libro Conjunto ID',
|
||||
'presupuesto' => 'Presupuesto',
|
||||
'presupuestoList' => 'Presupuesto List',
|
||||
'presupuestos' => 'Presupuestos',
|
||||
'recogerEnTaller' => 'Recoger EN Taller',
|
||||
'referenciaCliente' => 'Referencia Cliente',
|
||||
'responsable' => 'Responsable',
|
||||
'serieId' => 'Serie ID',
|
||||
'solapas' => 'Solapas',
|
||||
'solapasAncho' => 'Solapas Ancho',
|
||||
'tarifaClienteId' => 'Tarifa Cliente ID',
|
||||
'tipoImpresionId' => 'Tipo Impresion',
|
||||
'tipologiaId' => 'Tipologia',
|
||||
'tiradaAlternativaJsonData' => 'Tirada Alternativa Json Data',
|
||||
'total' => 'Total',
|
||||
'totalAcabado' => 'Total Acabado',
|
||||
'totalCalculado' => 'Total Calculado',
|
||||
'totalClick' => 'Total Click',
|
||||
'totalConfirmado' => 'Total Confirmado',
|
||||
'totalConfirmadoUpdateAt' => 'Total Confirmado Update At',
|
||||
'totalConfirmadoUserId' => 'Total Confirmado User',
|
||||
'totalDescuento' => 'Total Descuento',
|
||||
'totalEnvios' => 'Total Envios',
|
||||
'totalManipulado' => 'Total Manipulado',
|
||||
'totalMargen' => 'Total Margen',
|
||||
'totalMargenExtra' => 'Total Margen Extra',
|
||||
'totalPeso' => 'Total Peso',
|
||||
'totalPreimpresion' => 'Total Preimpresion',
|
||||
'totalPreimpresionMargen' => 'Total Preimpresion Margen',
|
||||
'totalPresupuesto' => 'Total Presupuesto',
|
||||
'ubicacionId' => 'Ubicacion',
|
||||
'updatedAt' => 'Updated At',
|
||||
'userCreatedId' => 'User Created',
|
||||
'userUpdateId' => 'User Update',
|
||||
'version' => 'Version',
|
||||
'wsExternoJsonData' => 'Ws Externo Json Data',
|
||||
'validation' => [
|
||||
'aprobado_at' => [
|
||||
'valid_date' => 'The {field} field must contain a valid date.',
|
||||
|
||||
],
|
||||
|
||||
'aprobado_json_data' => [
|
||||
'max_length' => 'The {field} field cannot exceed {param} characters in length.',
|
||||
|
||||
],
|
||||
|
||||
'base_imponible' => [
|
||||
'decimal' => 'The {field} field must contain a decimal number.',
|
||||
|
||||
],
|
||||
|
||||
'catalogo_id' => [
|
||||
'integer' => 'The {field} field must contain an integer.',
|
||||
|
||||
],
|
||||
|
||||
'causa_cancelacion' => [
|
||||
'max_length' => 'The {field} field cannot exceed {param} characters in length.',
|
||||
|
||||
],
|
||||
|
||||
'coleccion' => [
|
||||
'max_length' => 'The {field} field cannot exceed {param} characters in length.',
|
||||
|
||||
|
||||
@ -53,8 +53,8 @@ class MaquinaModel extends \App\Models\GoBaseModel
|
||||
"velocidad_corte",
|
||||
"precio_hora_corte",
|
||||
"metrosxminuto",
|
||||
"forzar_num_formas_horizontales_portada",
|
||||
"forzar_num_formas_verticales_portada",
|
||||
"forzar_num_formas_horizontales_cubierta",
|
||||
"forzar_num_formas_verticales_cubierta",
|
||||
"observaciones",
|
||||
"deleted_at",
|
||||
"is_deleted",
|
||||
@ -95,11 +95,11 @@ class MaquinaModel extends \App\Models\GoBaseModel
|
||||
"label" => "Maquinas.duracionJornada",
|
||||
"rules" => "required|integer",
|
||||
],
|
||||
"forzar_num_formas_horizontales_portada" => [
|
||||
"forzar_num_formas_horizontales_cubierta" => [
|
||||
"label" => "Maquinas.forzarNumFormasHorizontalesPortada",
|
||||
"rules" => "integer|permit_empty",
|
||||
],
|
||||
"forzar_num_formas_verticales_portada" => [
|
||||
"forzar_num_formas_verticales_cubierta" => [
|
||||
"label" => "Maquinas.forzarNumFormasVerticalesPortada",
|
||||
"rules" => "integer|permit_empty",
|
||||
],
|
||||
@ -176,11 +176,11 @@ class MaquinaModel extends \App\Models\GoBaseModel
|
||||
"integer" => "Maquinas.validation.duracion_jornada.integer",
|
||||
"required" => "Maquinas.validation.duracion_jornada.required",
|
||||
],
|
||||
"forzar_num_formas_horizontales_portada" => [
|
||||
"integer" => "Maquinas.validation.forzar_num_formas_horizontales_portada.integer",
|
||||
"forzar_num_formas_horizontales_cubierta" => [
|
||||
"integer" => "Maquinas.validation.forzar_num_formas_horizontales_cubierta.integer",
|
||||
],
|
||||
"forzar_num_formas_verticales_portada" => [
|
||||
"integer" => "Maquinas.validation.forzar_num_formas_verticales_portada.integer",
|
||||
"forzar_num_formas_verticales_cubierta" => [
|
||||
"integer" => "Maquinas.validation.forzar_num_formas_verticales_cubierta.integer",
|
||||
],
|
||||
"max" => [
|
||||
"integer" => "Maquinas.validation.max.integer",
|
||||
@ -277,7 +277,7 @@ class MaquinaModel extends \App\Models\GoBaseModel
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
"t1.id AS id, t1.nombre AS nombre, t1.is_padre AS is_padre, t1.tipo AS tipo, t1.velocidad AS velocidad, t1.ancho AS ancho, t1.alto AS alto, t1.ancho_impresion AS ancho_impresion, t1.alto_impresion AS alto_impresion, t1.alto_click AS alto_click, t1.min AS min, t1.max AS max, t1.duracion_jornada AS duracion_jornada, t1.orden_planning AS orden_planning, t1.is_rotativa AS is_rotativa, t1.precio_tinta_negro AS precio_tinta_negro, t1.is_tinta AS is_tinta, t1.precio_tinta_color AS precio_tinta_color, t1.velocidad_corte AS velocidad_corte, t1.precio_hora_corte AS precio_hora_corte, t1.metrosxminuto AS metrosxminuto, t1.forzar_num_formas_horizontales_portada AS forzar_num_formas_horizontales_portada, t1.forzar_num_formas_verticales_portada AS forzar_num_formas_verticales_portada, t1.observaciones AS observaciones, t2.nombre AS padre"
|
||||
"t1.id AS id, t1.nombre AS nombre, t1.is_padre AS is_padre, t1.tipo AS tipo, t1.velocidad AS velocidad, t1.ancho AS ancho, t1.alto AS alto, t1.ancho_impresion AS ancho_impresion, t1.alto_impresion AS alto_impresion, t1.alto_click AS alto_click, t1.min AS min, t1.max AS max, t1.duracion_jornada AS duracion_jornada, t1.orden_planning AS orden_planning, t1.is_rotativa AS is_rotativa, t1.precio_tinta_negro AS precio_tinta_negro, t1.is_tinta AS is_tinta, t1.precio_tinta_color AS precio_tinta_color, t1.velocidad_corte AS velocidad_corte, t1.precio_hora_corte AS precio_hora_corte, t1.metrosxminuto AS metrosxminuto, t1.forzar_num_formas_horizontales_cubierta AS forzar_num_formas_horizontales_cubierta, t1.forzar_num_formas_verticales_cubierta AS forzar_num_formas_verticales_cubierta, t1.observaciones AS observaciones, t2.nombre AS padre"
|
||||
);
|
||||
$builder->join("lg_maquinas t2", "t1.padre_id = t2.id", "left");
|
||||
|
||||
@ -306,8 +306,8 @@ class MaquinaModel extends \App\Models\GoBaseModel
|
||||
->orLike("t1.velocidad_corte", $search)
|
||||
->orLike("t1.precio_hora_corte", $search)
|
||||
->orLike("t1.metrosxminuto", $search)
|
||||
->orLike("t1.forzar_num_formas_horizontales_portada", $search)
|
||||
->orLike("t1.forzar_num_formas_verticales_portada", $search)
|
||||
->orLike("t1.forzar_num_formas_horizontales_cubierta", $search)
|
||||
->orLike("t1.forzar_num_formas_verticales_cubierta", $search)
|
||||
->orLike("t1.observaciones", $search)
|
||||
->orLike("t2.id", $search)
|
||||
->orLike("t1.id", $search)
|
||||
@ -329,8 +329,8 @@ class MaquinaModel extends \App\Models\GoBaseModel
|
||||
->orLike("t1.velocidad_corte", $search)
|
||||
->orLike("t1.precio_hora_corte", $search)
|
||||
->orLike("t1.metrosxminuto", $search)
|
||||
->orLike("t1.forzar_num_formas_horizontales_portada", $search)
|
||||
->orLike("t1.forzar_num_formas_verticales_portada", $search)
|
||||
->orLike("t1.forzar_num_formas_horizontales_cubierta", $search)
|
||||
->orLike("t1.forzar_num_formas_verticales_cubierta", $search)
|
||||
->orLike("t1.observaciones", $search)
|
||||
->orLike("t2.nombre", $search)
|
||||
->groupEnd();
|
||||
@ -350,7 +350,11 @@ class MaquinaModel extends \App\Models\GoBaseModel
|
||||
->select(
|
||||
"t1.id AS maquina_id, t1.nombre AS maquina, t1.ancho_impresion AS ancho_impresion,
|
||||
t1.alto_impresion AS alto_impresion, t1.ancho AS ancho, t1.alto AS alto,
|
||||
t1.is_rotativa AS is rotativa, t1.alto_click AS alto_click"
|
||||
t1.is_rotativa AS is rotativa, t1.alto_click AS alto_click,
|
||||
t1.precio_tinta_negro AS precio_tinta_negro, t1.precio_tinta_color AS precio_tinta_color,
|
||||
t1.velocidad_corte AS velocidad_corte, t1.precio_hora_corte AS precio_hora_corte,
|
||||
t1.forzar_num_formas_horizontales_cubierta AS forzar_num_formas_horizontales_cubierta,
|
||||
t1.forzar_num_formas_verticales_cubierta AS forzar_num_formas_verticales_cubierta"
|
||||
)
|
||||
->join("lg_maquinas_tarifas_impresion t2", "t1.id = t2.maquina_id", "left")
|
||||
->join("lg_maquina_papel_impresion t3", "t1.id = t3.maquina_id", "left")
|
||||
@ -360,12 +364,20 @@ class MaquinaModel extends \App\Models\GoBaseModel
|
||||
->where("t1.tipo", "impresion")
|
||||
->where("t1.is_rotativa", $is_rotativa)
|
||||
->where("t2.is_deleted", 0)
|
||||
->where("t2.tipo", $tarifa_tipo)
|
||||
->where("t3.papel_impresion_id", $papel_impresion_id)
|
||||
->where("t3.active", 1)
|
||||
->where("t1.min <=", $tirada)
|
||||
->where("t1.max >=", $tirada);
|
||||
|
||||
if(is_array($tarifa_tipo)){
|
||||
foreach($tarifa_tipo as $tarifa){
|
||||
$builder->where("EXISTS (SELECT * FROM lg_maquinas_tarifas_impresion t2 WHERE t1.id=t2.maquina_id AND t2.tipo='{$tarifa}' AND t2.is_deleted=0)");
|
||||
}
|
||||
}
|
||||
else{
|
||||
$builder->where("t2.tipo", $tarifa_tipo);
|
||||
}
|
||||
|
||||
return $builder->orderBy("t1.id", "asc")->get()->getResultObject();
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,6 +29,11 @@ class MaquinasPapelesImpresionModel extends \App\Models\GoBaseModel
|
||||
const SORTABLE_2 = [
|
||||
0 => "t1.active",
|
||||
1 => "t2.nombre",
|
||||
2 => "t2.ancho",
|
||||
3 => "t2.alto",
|
||||
4 => "t2.ancho_impresion",
|
||||
5 => "t2.alto_impresion",
|
||||
|
||||
|
||||
];
|
||||
|
||||
|
||||
@ -130,7 +130,7 @@ class PapelGenericoModel extends \App\Models\GoBaseModel
|
||||
return $builder->orderBy("t1.nombre", "asc")->get()->getResultObject();
|
||||
}
|
||||
|
||||
public function getGramajeComparador(string $papel_generico_nombre="")
|
||||
public function getGramajeComparador(string $papel_generico_nombre="", $uso="")
|
||||
{
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
@ -141,8 +141,21 @@ class PapelGenericoModel extends \App\Models\GoBaseModel
|
||||
|
||||
->where("t1.is_deleted", 0)
|
||||
->where("t2.is_deleted", 0)
|
||||
->where("t2.isActivo", 1)
|
||||
->where("t1.nombre", $papel_generico_nombre);
|
||||
|
||||
if($uso == 'bn')
|
||||
$builder->where("t2.bn", 1);
|
||||
else if ($uso == 'color')
|
||||
$builder->where("t2.color", 1);
|
||||
else if ($uso == 'cubierta')
|
||||
$builder->where("t2.cubierta", 1);
|
||||
else if ($uso == 'sobrecubierta')
|
||||
$builder->where("t2.sobrecubierta", 1);
|
||||
|
||||
|
||||
|
||||
|
||||
$values = $builder->orderBy("t2.gramaje", "asc")->get()->getResultObject();
|
||||
$id = 1;
|
||||
foreach ($values as $value){
|
||||
|
||||
@ -109,18 +109,21 @@ class PapelImpresionTipologiaModel extends \App\Models\GoBaseModel
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function findTipologiasForPapelImpresion(int $papelImpresionID){
|
||||
public function findTipologiasForPapelImpresion(int $papelImpresionID, $tipo=null){
|
||||
|
||||
$builder = $this->db
|
||||
->table($this->table )
|
||||
->select("*")
|
||||
->where("papel_impresion_id", $papelImpresionID);
|
||||
|
||||
|
||||
if(!is_null($tipo)){
|
||||
$builder->where("tipo", $tipo);
|
||||
}
|
||||
|
||||
return $builder;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function removeForPapelImpresion($papel_impresion_id){
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
|
||||
@ -9,68 +9,11 @@ use CodeIgniter\Config\BaseService;
|
||||
|
||||
class PresupuestoService extends BaseService
|
||||
{
|
||||
/**
|
||||
* CONSTANTES USADAS PARA LOS CALCULOS
|
||||
*/
|
||||
|
||||
public static function test()
|
||||
{
|
||||
$tarifa = (new \App\Models\Configuracion\MaquinasTarifasImpresionModel())->getTarifa(8, "interior", "negro");
|
||||
var_dump($tarifa);
|
||||
}
|
||||
|
||||
|
||||
public static function test2()
|
||||
{
|
||||
|
||||
$uso = 'interior';
|
||||
$tipo = 'negro';
|
||||
$datosPedido = (object)array(
|
||||
'paginas' => 200,
|
||||
'tirada' => 500,
|
||||
'merma' => 10,
|
||||
'merma_portada' => 10,
|
||||
'ancho' => 165,
|
||||
'alto' => 148,
|
||||
'isCosido' => true,
|
||||
);
|
||||
|
||||
|
||||
$maquina_model = new \App\Models\Configuracion\MaquinaModel();
|
||||
|
||||
|
||||
$opciones_papel = array(
|
||||
'bn' => 1,
|
||||
'cubierta' => 0,
|
||||
'sobrecubierta' => 0,
|
||||
'rotativa' => 0,
|
||||
);
|
||||
$papelimpresionmodel = new \App\Models\Configuracion\PapelImpresionModel();
|
||||
$papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
|
||||
papel_generico_id: 4,
|
||||
gramaje: 90,
|
||||
options: $opciones_papel
|
||||
);
|
||||
foreach ($papeles as $papel) {
|
||||
echo '-------------------------------';
|
||||
$maquinas = $maquina_model->getMaquinaImpresionForPresupuesto(
|
||||
is_rotativa: $papel->rotativa,
|
||||
tarifa_tipo: 'negro',
|
||||
tirada: $datosPedido->tirada + $datosPedido->merma,
|
||||
papel_impresion_id: $papel->id,
|
||||
);
|
||||
|
||||
foreach ($maquinas as $maquina) {
|
||||
|
||||
echo '----------------------------<br>';
|
||||
var_dump($maquina->maquina);
|
||||
var_dump($papel->nombre);
|
||||
$tarifa = (new \App\Models\Configuracion\MaquinasTarifasImpresionModel())->getTarifa($maquina->maquina_id, $uso, $tipo);
|
||||
$linea = PresupuestoService::getCostesLinea($uso, $tipo, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
|
||||
echo '<pre>';
|
||||
var_dump($linea);
|
||||
echo '</pre>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const MARGEN_PAGINAS_ROTATIVA = 15.0;
|
||||
|
||||
|
||||
/**
|
||||
@ -83,7 +26,7 @@ class PresupuestoService extends BaseService
|
||||
* -> paginas: numero de paginas por libro
|
||||
* -> tirada: numero de unidades a imprimir
|
||||
* -> merma: unidades que se añaden a la tirada
|
||||
* -> merma_portada: unidades de merma para la portada
|
||||
*
|
||||
* @param mixed $maquina
|
||||
* objeto con la siguiente estructura:
|
||||
* -> id: el id de la maquina
|
||||
@ -99,19 +42,9 @@ class PresupuestoService extends BaseService
|
||||
{
|
||||
$response['fields'] = [];
|
||||
|
||||
switch ($uso) {
|
||||
case 'interior':
|
||||
$formas = PresupuestoService::getNumFormasPlanaInterior($maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido);
|
||||
$response['fields'] = $formas;
|
||||
break;
|
||||
|
||||
case 'cubierta':
|
||||
case 'sobrecubierta':
|
||||
break;
|
||||
|
||||
case 'rotativa':
|
||||
default:
|
||||
break;
|
||||
if ($uso!='rotativa') {
|
||||
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido);
|
||||
$response['fields'] = $formas;
|
||||
}
|
||||
|
||||
if ($response['fields']['num_formas']['posicion_formas'] == 'n/a') {
|
||||
@ -155,9 +88,23 @@ class PresupuestoService extends BaseService
|
||||
}
|
||||
// cubierta o sobrecubierta (siempre a color)
|
||||
else if (($cubierta == 1 || $sobrecubierta == 1) && $rotativa == 0) {
|
||||
}
|
||||
// rotativa
|
||||
else if ($rotativa == 1) {
|
||||
// precio papel
|
||||
$pliegos_libro = 1.0 / $response['fields']['num_formas']['value'];
|
||||
$pliegos_pedido = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$precio_libro = $pliegos_libro * $precio_pliego_impresion;
|
||||
$precio_pedido = $precio_libro * ($datosPedido->tirada + $datosPedido->merma);
|
||||
|
||||
$mano = PresupuestoService::computeLomoPortada($papel_impresion->espesor);
|
||||
|
||||
// peso
|
||||
$ancho_total = $datosPedido->solapas? $datosPedido->ancho + $datosPedido->solapas_ancho:$datosPedido->ancho;
|
||||
$peso = PresupuestoService::computePeso($ancho_total, $datosPedido->alto, $papel_impresion->gramaje);
|
||||
|
||||
// impresion
|
||||
if ($tarifa) {
|
||||
$precio_click = $tarifa;
|
||||
$precio_click_pedido = $pliegos_pedido * $precio_click;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -183,55 +130,179 @@ class PresupuestoService extends BaseService
|
||||
}
|
||||
|
||||
|
||||
private static function getNumFormasPlanaInterior($maquina, $ancho, $alto, $isCosido)
|
||||
/**
|
||||
* Devuelve los calculos para la linea de rotativa.
|
||||
*/
|
||||
public static function getCostesLineaRotativa($maquina, $papel_impresion, $datosPedido, $parametrosRotativa)
|
||||
{
|
||||
$anchoForCalculo = $isCosido ? $ancho * 2 : $ancho;
|
||||
$data = [];
|
||||
|
||||
// horizontales
|
||||
$h1 = floor($maquina->ancho_impresion / $anchoForCalculo);
|
||||
$v1 = floor($maquina->alto_impresion / $alto);
|
||||
$formas_h = $h1 * $v1; //p1
|
||||
$data['resolucion'] = 600;
|
||||
$data['pulgada'] = 1 / 1000000000000.0;
|
||||
$data['superficie'] = round((($datosPedido->ancho / 2.54) / 10) * (($datosPedido->alto / 2.54) / 10), 2);
|
||||
|
||||
// verticales
|
||||
$h2 = floor($maquina->ancho_impresion / $alto);
|
||||
$v2 = floor($maquina->alto_impresion / $anchoForCalculo);
|
||||
$formas_v = $h2 * $v2; //p2
|
||||
// posicionamos paginas en función de a favor de fibra o no
|
||||
|
||||
$anchoLibro = $datosPedido->ancho;
|
||||
$altoLibro = $datosPedido->alto;
|
||||
if (!$parametrosRotativa->a_favor_fibra) {
|
||||
$anchoLibro = $datosPedido->alto;
|
||||
$altoLibro = $datosPedido->ancho;
|
||||
}
|
||||
|
||||
$data['ancho'] = $anchoLibro;
|
||||
$data['alto'] = $altoLibro;
|
||||
|
||||
// si es cosido ancho x 2
|
||||
|
||||
if ($datosPedido->isCosido) {
|
||||
if (!$parametrosRotativa->a_favor_fibra) {
|
||||
$data['alto'] = $data['alto'] * 2;
|
||||
} else {
|
||||
$data['ancho'] = $data['ancho'] * 2;
|
||||
}
|
||||
}
|
||||
|
||||
// calculo de papel y clicks
|
||||
$factor_anchura = round($maquina->ancho_impresion / $data['ancho'], 2);
|
||||
$factor_altura = round($maquina->alto_impresion / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2);
|
||||
$factor_altura_click = round($maquina->alto_click / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2);
|
||||
|
||||
$multiplicador_pliego = $datosPedido->isCosido ? 4 : 2;
|
||||
$paginas_por_pliego = round(floor($factor_anchura) * $factor_altura * $multiplicador_pliego, 2);
|
||||
$pliegos_libro = round($paginas_por_pliego ? $datosPedido->paginas / $paginas_por_pliego : 0, 2);
|
||||
$metros_papel_libro = round($pliegos_libro * ($maquina->alto_impresion / 1000.0), 2);
|
||||
$metros_papel_total = round($metros_papel_libro * ($datosPedido->tirada + $datosPedido->merma), 2);
|
||||
|
||||
$paginas_por_pliego_click = round(floor($factor_anchura) * $factor_altura_click * $multiplicador_pliego, 2);
|
||||
$pliegos_libro_click = round($paginas_por_pliego_click ? $datosPedido->paginas / $paginas_por_pliego_click : 0, 2);
|
||||
$clicks_libro = round(ceil($pliegos_libro_click) * 2, 2);
|
||||
$clicks_pedido = round($clicks_libro * ($datosPedido->tirada + $datosPedido->merma), 2);
|
||||
|
||||
$data['factor_altura'] = $factor_altura;
|
||||
$data['factor_anchura'] = $factor_anchura;
|
||||
$data['paginas_por_pliego'] = $paginas_por_pliego;
|
||||
$data['pliegos_libro'] = $pliegos_libro;
|
||||
$data['pliegos_pedido'] = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['metros_papel_libro'] = $metros_papel_libro;
|
||||
$data['metros_papel_total'] = $metros_papel_total;
|
||||
$data['clicks_libro'] = $clicks_libro;
|
||||
$data['clicks_pedido'] = $clicks_pedido;
|
||||
|
||||
// calculo de tintas
|
||||
$data['num_gotas_negro'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_negro / 100.0), 0);
|
||||
$data['num_gotas_cyan'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_cyan / 100.0), 0);
|
||||
$data['num_gotas_magenta'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_magenta / 100.0), 0);
|
||||
$data['num_gotas_amarillo'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_amarillo / 100.0), 0);
|
||||
|
||||
$pag_negro = $parametrosRotativa->bnPages;
|
||||
$pag_color = 0;
|
||||
if ($parametrosRotativa->colorPages>0) {
|
||||
$pag_color = $parametrosRotativa->colorPages;
|
||||
}
|
||||
|
||||
// peso tintas
|
||||
$data['peso_gotas_negro'] = round((($data['num_gotas_negro'] * $parametrosRotativa->rotativa_gota_negro * $data['pulgada']) / (17.91 / 20.0)) * $pag_negro * 1000, 6);
|
||||
$data['peso_gotas_cyan'] = round((($data['num_gotas_cyan'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
$data['peso_gotas_magenta'] = round((($data['num_gotas_magenta'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
$data['peso_gotas_amarillo'] = round((($data['num_gotas_amarillo'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
|
||||
// costes de tintas
|
||||
$data['peso_gotas_negro_pedido'] = round($data['peso_gotas_negro'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_cyan_pedido'] = round($data['peso_gotas_cyan'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_magenta_pedido'] = round($data['peso_gotas_magenta'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_amarillo_pedido'] = round($data['peso_gotas_amarillo'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
|
||||
// precio tinta
|
||||
$data['precio_tinta'] = round(
|
||||
round(($data['peso_gotas_negro_pedido'] / 1000.0) * $maquina->precio_tinta_negro, 2) +
|
||||
round(($data['peso_gotas_cyan_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) +
|
||||
round(($data['peso_gotas_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) +
|
||||
round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2)
|
||||
, 2);
|
||||
|
||||
// precio pagina
|
||||
$data['precio_pagina_negro'] = round($pag_negro ? $data['precio_tinta'] / ($pag_negro * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6);
|
||||
$data['precio_pagina_color'] = round($pag_color ? $data['precio_tinta'] / ($pag_color * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6);
|
||||
|
||||
// calculo de corte
|
||||
$data['tiempo_corte'] = $maquina->velocidad_corte > 0 ? round($metros_papel_total / $maquina->velocidad_corte, 2) : 0;
|
||||
$data['total_corte'] = round(($data['tiempo_corte'] / 60.0) * $maquina->precio_hora_corte, 2);
|
||||
|
||||
$data['mano'] = PresupuestoService::computeLomoInterior($datosPedido->paginas, $papel_impresion->espesor);
|
||||
// ($paginas / 2.0) * (($gramaje / 1000.0) * $papel_compra->mano);
|
||||
|
||||
// peso
|
||||
$data['peso'] = PresupuestoService::computePeso(
|
||||
ancho: $datosPedido->isCosido ? $datosPedido->ancho / 2.0 : $datosPedido->ancho,
|
||||
alto: $datosPedido->alto,
|
||||
gramaje: $papel_impresion->gramaje,
|
||||
paginas: $datosPedido->paginas
|
||||
);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
private static function getNumFormasPlana($uso, $maquina, $ancho, $alto, $isCosido)
|
||||
{
|
||||
if($uso == 'cubierta' || $uso == 'sobrecubierta') {
|
||||
if(property_exists($maquina, 'forzar_num_formas_horizontales_cubierta') &&
|
||||
property_exists($maquina, 'forzar_num_formas_horizontales_cubierta')){
|
||||
|
||||
if($maquina->forzar_num_formas_horizontales_cubierta > 0 &&
|
||||
$maquina->forzar_num_formas_horizontales_cubierta > 0){
|
||||
|
||||
$h1 = $maquina->forzar_num_formas_horizontales_cubierta;
|
||||
$h2 = $maquina->forzar_num_formas_verticales_cubierta;
|
||||
$num_formas = $h1 * $h2;
|
||||
}
|
||||
else{
|
||||
$num_formas == 0;
|
||||
}
|
||||
}
|
||||
else{
|
||||
$num_formas == 0;
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
||||
if($uso != 'cubierta' && $uso != 'sobrecubierta'){
|
||||
$anchoForCalculo = $isCosido ? $ancho * 2 : $ancho;
|
||||
}
|
||||
else{
|
||||
$anchoForCalculo = $ancho;
|
||||
}
|
||||
|
||||
|
||||
// horizontales
|
||||
$h1_temp = floor($maquina->ancho_impresion / $anchoForCalculo);
|
||||
$calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h1_temp);
|
||||
// Si son mas de 2 formas
|
||||
if(count($calles)>0)
|
||||
$h1 = ($h1_temp * $anchoForCalculo + 2 * $calles[0]->externas + ($h1_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h1_temp : $h1_temp - 1;
|
||||
else
|
||||
$h1 = $h1_temp;
|
||||
|
||||
$v1 = floor($maquina->alto_impresion / $alto);
|
||||
$formas_h = $h1 * $v1; //p1
|
||||
|
||||
// verticales
|
||||
|
||||
$h2_temp = floor($maquina->ancho_impresion / $alto);
|
||||
$calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h2_temp);
|
||||
if(count($calles)>0)
|
||||
$h2 = ($h2_temp * $anchoForCalculo + 2 * $calles[0]->externas + ($h2_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h2_temp : $h2_temp - 1;
|
||||
else
|
||||
$h2 = $h2_temp;
|
||||
$v2 = floor($maquina->alto_impresion / $anchoForCalculo);
|
||||
$formas_v = $h2 * $v2; //p2
|
||||
|
||||
// hay que iterar hasta que las formas entren o el num_formas sean ==0
|
||||
// se checkea que entran en el numero de calles
|
||||
// se obtiene la configuracion de las calles para esa maquina
|
||||
$good_configuration = false;
|
||||
do {
|
||||
$num_formas = ($formas_h > $formas_v) ? $formas_h : $formas_v;
|
||||
$num_formas = $isCosido ? $num_formas * 2 : $num_formas;
|
||||
|
||||
// solo hay calles para 2 formas o mas
|
||||
if ((($formas_h > $formas_v) ? $h1 : $h2) > 1) {
|
||||
|
||||
$calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, ($formas_h > $formas_v) ? $h1 : $h2)[0];
|
||||
// se calcula el tamaño necesario para el numero de formas + el numero de calles internas
|
||||
$size_needed = (($formas_h > $formas_v) ? $anchoForCalculo : $alto) * (($formas_h > $formas_v) ? $h1 : $h2) +
|
||||
((($formas_h > $formas_v) ? $h1 : $h2) - 1) * $calles->internas;
|
||||
|
||||
// si el tamaño calculado entra en el area de impresion
|
||||
if ($size_needed <= $maquina->ancho_impresion)
|
||||
$good_configuration = true;
|
||||
// en caso contrario se resta una forma donde corresponda para iterar otra vez
|
||||
else {
|
||||
if ($formas_h > $formas_v) {
|
||||
$formas_h = ($formas_h - 1 > 0) ? $formas_h - 1 : 0;
|
||||
} else {
|
||||
$formas_v = ($formas_v - 1 > 0) ? $formas_v - 1 : 0;
|
||||
}
|
||||
}
|
||||
if($uso != 'cubierta' && $uso != 'sobrecubierta'){
|
||||
$num_formas = $isCosido ? $num_formas * 2 : $num_formas;
|
||||
}
|
||||
// Si solo hay una forma, tiene que entrar en el ancho de impresion
|
||||
else if ((($formas_h > $formas_v) ? $h1 : $h2) == 1) {
|
||||
if ((($formas_h > $formas_v) ? $h1 : $h2) < $maquina->ancho_impresion) {
|
||||
$good_configuration = true;
|
||||
}
|
||||
}
|
||||
} while ($num_formas != 0 && !$good_configuration);
|
||||
}
|
||||
|
||||
// si no hay formas se devuelve n/a
|
||||
if ($num_formas == 0) {
|
||||
@ -252,14 +323,14 @@ class PresupuestoService extends BaseService
|
||||
}
|
||||
|
||||
|
||||
private static function getPrecioPliego($maquina, $papel_impresion, $paginas)
|
||||
public static function getPrecioPliego($maquina, $papel_impresion, $paginas)
|
||||
{
|
||||
$margen = (new \App\Models\Configuracion\PapelImpresionMargenModel())->getMargenFormPags($papel_impresion->id, $paginas);
|
||||
if (count($margen) > 0) {
|
||||
$peso_por_pliego = $maquina->alto * $maquina->ancho * $papel_impresion->gramaje / 1000000;
|
||||
$precio_pliego = $papel_impresion->precio_tonelada * (1 + (floatval($margen[0]['margen']) / 100.0)) / 1000000 * $peso_por_pliego;
|
||||
$precio_pliego = ($peso_por_pliego * $papel_impresion->precio_tonelada / 1000000.0) * (1 + (floatval($margen[0]['margen']) / 100.0));
|
||||
|
||||
return round($precio_pliego*1.04, 6); // quitar el factor de 1.04 despues de los test
|
||||
return round($precio_pliego, 6);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
@ -279,6 +350,14 @@ class PresupuestoService extends BaseService
|
||||
return $lomo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calcula la dimensión del lomo para portada y cubierta
|
||||
*/
|
||||
private static function computeLomoPortada($espesor)
|
||||
{
|
||||
return ($espesor * 2.0) / 1000.0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Devuelve el peso de un pedido.
|
||||
*/
|
||||
|
||||
@ -101,16 +101,16 @@
|
||||
<?= lang('Maquinas.forzarNumFormasHorizontalesPortada') ?>
|
||||
</label>
|
||||
<input type="number" id="forzarNumFormasHorizontalesPortada"
|
||||
name="forzar_num_formas_horizontales_portada" maxLength="11" class="form-control"
|
||||
value="<?= old('forzar_num_formas_horizontales_portada', $maquina->forzar_num_formas_horizontales_portada) ?>">
|
||||
name="forzar_num_formas_horizontales_cubierta" maxLength="11" class="form-control"
|
||||
value="<?= old('forzar_num_formas_horizontales_cubierta', $maquina->forzar_num_formas_horizontales_cubierta) ?>">
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label for="forzarNumFormasVerticalesPortada" class="form-label">
|
||||
<?= lang('Maquinas.forzarNumFormasVerticalesPortada') ?>
|
||||
</label>
|
||||
<input type="number" id="forzarNumFormasVerticalesPortada"
|
||||
name="forzar_num_formas_verticales_portada" maxLength="11" class="form-control"
|
||||
value="<?= old('forzar_num_formas_verticales_portada', $maquina->forzar_num_formas_verticales_portada) ?>">
|
||||
name="forzar_num_formas_verticales_cubierta" maxLength="11" class="form-control"
|
||||
value="<?= old('forzar_num_formas_verticales_cubierta', $maquina->forzar_num_formas_verticales_cubierta) ?>">
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<label for="observaciones" class="form-label">
|
||||
|
||||
@ -69,21 +69,21 @@
|
||||
<p><?= lang('MaquinasTarifasImpresions.negro') ?></p>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-2 px-4">
|
||||
<input type="number" id="compPaginasNegro" name="comp_paginas_negro" placeholder="0" maxLength="5" class="form-control comp_negro_items" value="<?= isset($presupuestoEntity->comparador_json_data->negro) ? (old(0, $presupuestoEntity->comparador_json_data->negro->paginas)) : '0' ?>">
|
||||
<input type="text" id="compPaginasNegro" name="comp_paginas_negro" placeholder="0" maxLength="5" class="form-control comp_negro_items" value="<?= isset($presupuestoEntity->comparador_json_data->negro) ? (old(0, $presupuestoEntity->comparador_json_data->negro->paginas)) : '0' ?>">
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-6 px-4">
|
||||
<select id="compPapelNegro" name="comp_papel_negro" class="form-control select2bs2 comp_negro_items" style="width: 100%;">
|
||||
<select id="compPapelNegro" name="comp_papel_negro" class="form-control select2bs2" style="width: 100%;">
|
||||
<?php if (isset($papelGenericoNegroList) && is_array($papelGenericoNegroList) && !empty($papelGenericoNegroList)) :
|
||||
foreach ($papelGenericoNegroList as $k => $v) : ?>
|
||||
<option value="<?= $v->id ?>" >
|
||||
<?= $v->nombre ?>
|
||||
<option value="<?= $v->id ?>">
|
||||
<?= $v->nombre ?>
|
||||
</option>
|
||||
<?php endforeach;
|
||||
endif; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-2 px-4">
|
||||
<select id="compGramajeNegro" name="comp_gramaje_negro" class="form-control select2bs2 comp_negro_items" disabled style="width: 100%;">
|
||||
<select id="compGramajeNegro" name="comp_gramaje_negro" class="form-control select2bs2 comp_negro_items" disabled style="width: 100%;">
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
@ -97,21 +97,21 @@
|
||||
<p><?= lang('MaquinasTarifasImpresions.negrohq') ?></p>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-2 px-4">
|
||||
<input type="number" id="compPaginasNegrohq" name="comp_paginas_negrohq" placeholder="0" maxLength="5" class="form-control" value="<?= isset($presupuestoEntity->comparador_json_data->negro) ? (old(0, $presupuestoEntity->comparador_json_data->negro->paginas)) : '0' ?>">
|
||||
<input type="text" id="compPaginasNegrohq" name="comp_paginas_negrohq" placeholder="0" maxLength="5" class="form-control comp_negrohq_items" value="<?= isset($presupuestoEntity->comparador_json_data->negro) ? (old(0, $presupuestoEntity->comparador_json_data->negro->paginas)) : '0' ?>">
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-6 px-4">
|
||||
<select id="compPapelNegrohq" name="comp_papel_negrohq" class="form-control select2bs2" style="width: 100%;">
|
||||
<select id="compPapelNegrohq" name="comp_papel_negrohq" class="form-control select2bs2 comp_negrohq_items" style="width: 100%;">
|
||||
<?php if (isset($papelGenericoNegroHQList) && is_array($papelGenericoNegroHQList) && !empty($papelGenericoNegroHQList)) :
|
||||
foreach ($papelGenericoNegroHQList as $k => $v) : ?>
|
||||
<option value="<?= $v->id ?>" >
|
||||
<?= $v->nombre ?>
|
||||
<option value="<?= $v->id ?>">
|
||||
<?= $v->nombre ?>
|
||||
</option>
|
||||
<?php endforeach;
|
||||
endif; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-2 px-4">
|
||||
<select id="compGramajeNegrohq" name="comp_gramaje_negrohq" class="form-control select2bs2" disabled style="width: 100%;">
|
||||
<select id="compGramajeNegrohq" name="comp_gramaje_negrohq" class="form-control select2bs2 comp_negrohq_items" disabled style="width: 100%;">
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
@ -125,21 +125,21 @@
|
||||
<p><?= lang('MaquinasTarifasImpresions.color') ?></p>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-2 px-4">
|
||||
<input type="number" id="compPaginasColor" name="comp_paginas_color" placeholder="0" maxLength="5" class="form-control" value="<?= isset($presupuestoEntity->comparador_json_data->color) ? (old(0, $presupuestoEntity->comparador_json_data->color->paginas)) : '0' ?>">
|
||||
<input type="text" id="compPaginasColor" name="comp_paginas_color" placeholder="0" maxLength="5" class="form-control comp_color_items" value="<?= isset($presupuestoEntity->comparador_json_data->color) ? (old(0, $presupuestoEntity->comparador_json_data->color->paginas)) : '0' ?>">
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-6 px-4">
|
||||
<select id="compPapelColor" name="comp_papel_color" class="form-control select2bs2" style="width: 100%;">
|
||||
<select id="compPapelColor" name="comp_papel_color" class="form-control select2bs2 comp_color_items" style="width: 100%;">
|
||||
<?php if (isset($papelGenericoColorList) && is_array($papelGenericoColorList) && !empty($papelGenericoColorList)) :
|
||||
foreach ($papelGenericoColorList as $k => $v) : ?>
|
||||
<option value="<?= $v->id ?>" >
|
||||
<?= $v->nombre ?>
|
||||
<option value="<?= $v->id ?>">
|
||||
<?= $v->nombre ?>
|
||||
</option>
|
||||
<?php endforeach;
|
||||
endif; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-2 px-4">
|
||||
<select id="compGramajeColor" name="comp_gramaje_color" class="form-control select2bs2" disabled style="width: 100%;">
|
||||
<select id="compGramajeColor" name="comp_gramaje_color" class="form-control select2bs2 comp_color_items" disabled style="width: 100%;">
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
@ -153,21 +153,21 @@
|
||||
<p><?= lang('MaquinasTarifasImpresions.colorhq') ?></p>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-2 px-4">
|
||||
<input type="number" id="compPaginasColorhq" name="comp_paginas_colorhq" placeholder="0" maxLength="5" class="form-control" value="<?= isset($presupuestoEntity->comparador_json_data->color) ? (old(0, $presupuestoEntity->comparador_json_data->color->paginas)) : '0' ?>">
|
||||
<input type="text" id="compPaginasColorhq" name="comp_paginas_colorhq" placeholder="0" maxLength="5" class="form-control comp_colorhq_items" value="<?= isset($presupuestoEntity->comparador_json_data->color) ? (old(0, $presupuestoEntity->comparador_json_data->color->paginas)) : '0' ?>">
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-6 px-4">
|
||||
<select id="compPapelColorhq" name="comp_papel_colorhq" class="form-control select2bs2" style="width: 100%;">
|
||||
<select id="compPapelColorhq" name="comp_papel_colorhq" class="form-control select2bs2 comp_colorhq_items" style="width: 100%;">
|
||||
<?php if (isset($papelGenericoColorHQList) && is_array($papelGenericoColorHQList) && !empty($papelGenericoColorHQList)) :
|
||||
foreach ($papelGenericoColorHQList as $k => $v) : ?>
|
||||
<option value="<?= $v->id ?>" >
|
||||
<?= $v->nombre ?>
|
||||
<option value="<?= $v->id ?>">
|
||||
<?= $v->nombre ?>
|
||||
</option>
|
||||
<?php endforeach;
|
||||
endif; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-2 px-4">
|
||||
<select id="compGramajeColorhq" name="comp_gramaje_colorhq" class="form-control select2bs2" disabled style="width: 100%;">
|
||||
<select id="compGramajeColorhq" name="comp_gramaje_colorhq" class="form-control select2bs2 comp_colorhq_items" disabled style="width: 100%;">
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
@ -179,30 +179,30 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-2 px-4">
|
||||
<p><?= lang('PapelImpresion.cubierta') ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-2 px-4">
|
||||
<select id="compPaginasCubierta" name="comp_paginas_cubierta" class="form-control select2bs2" style="width: 100%;">
|
||||
<option value="1" >
|
||||
<select id="compCarasCubierta" name="comp_paginas_cubierta" class="form-control select2bs2 comp_cubierta_items" style="width: 100%;">
|
||||
<option value="2">
|
||||
<p><?= lang('Presupuestos.1cara') ?></p>
|
||||
</option>
|
||||
<option value="2" >
|
||||
<option value="4">
|
||||
<p><?= lang('Presupuestos.2caras') ?></p>
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-6 px-4">
|
||||
<select id="compPapelCubierta" name="comp_papel_cubierta" class="form-control select2bs2" style="width: 100%;">
|
||||
<?php if (isset($papelGenericoSobrecubiertaList) && is_array($papelGenericoSobrecubiertaList) && !empty($papelGenericoSobrecubiertaList)) :
|
||||
foreach ($papelGenericoSobrecubiertaList as $k => $v) : ?>
|
||||
<option value="<?= $v->id ?>" >
|
||||
<?= $v->nombre ?>
|
||||
<select id="compPapelCubierta" name="comp_papel_cubierta" class="form-control select2bs2 comp_cubierta_items" style="width: 100%;">
|
||||
<?php if (isset($papelGenericoCubiertaList) && is_array($papelGenericoCubiertaList) && !empty($papelGenericoCubiertaList)) :
|
||||
foreach ($papelGenericoCubiertaList 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">
|
||||
<select id="compGramajeCubierta" name="comp_gramaje_cubierta" class="form-control select2bs2" disabled style="width: 100%;">
|
||||
<select id="compGramajeCubierta" name="comp_gramaje_cubierta" class="form-control select2bs2 comp_cubierta_items" disabled style="width: 100%;">
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
@ -274,10 +274,6 @@
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.peso') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.click') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.totalClicks') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.precioPagNegro') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.precioPagColor') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.totalTinta') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.totalCorte') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.total') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -285,8 +281,8 @@
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td class="dt-result dt-result-text" colspan="18"><?= lang('Presupuestos.total') ?> <?= lang("Presupuestos.compInteriorPlana") ?>:</td>
|
||||
<td id="total_comp_negro" class="dt-result dt-result-value" colspan="2"> 0.00 </td>
|
||||
<td class="dt-result dt-result-text" colspan="14"><?= lang('Presupuestos.total') ?> <?= lang("Presupuestos.compInteriorPlana") ?>:</td>
|
||||
<td id="total_comp_plana" class="dt-result dt-result-value" colspan="2"> 0.00 </td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
@ -317,6 +313,7 @@
|
||||
<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.aFavorFibra') ?></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;"><?= lang('Presupuestos.pliegosPedido') ?></th>
|
||||
@ -338,8 +335,8 @@
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td class="dt-result dt-result-text" colspan="18"><?= lang('Presupuestos.total') ?> <?= lang("Presupuestos.compInteriorRotativa") ?>:</td>
|
||||
<td class="dt-result dt-result-value" colspan="2">0.00</td>
|
||||
<td class="dt-result dt-result-text" colspan="19"><?= lang('Presupuestos.total') ?> <?= lang("Presupuestos.compInteriorRotativa") ?>:</td>
|
||||
<td id="total_comp_rot" class="dt-result dt-result-value" colspan="2">0.00</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
@ -378,10 +375,6 @@
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.peso') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.click') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.totalClicks') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.precioPagNegro') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.precioPagColor') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.totalTinta') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.totalCorte') ?></th>
|
||||
<th style="padding-right: 0.75em;"><?= lang('Presupuestos.total') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -389,13 +382,13 @@
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td class="dt-result dt-result-text" colspan="18"><?= lang('Presupuestos.total') ?> <?= lang('Presupuestos.cubierta') ?>:</td>
|
||||
<td class="dt-result dt-result-value" colspan="2">0.00</td>
|
||||
<td class="dt-result dt-result-text" colspan="14"><?= lang('Presupuestos.total') ?> <?= lang("Presupuestos.compInteriorPlana") ?>:</td>
|
||||
<td id="total_comp_cubierta" class="dt-result dt-result-value" colspan="2"> 0.00 </td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,6 +1,81 @@
|
||||
/*******************************
|
||||
* Eventos asociados a elementos HTML
|
||||
*******************************/
|
||||
$('#compPaginasNegro').on("change", function () {
|
||||
var negro = parseInt(document.getElementById('compPaginasNegro').value);
|
||||
const paginas = parseInt(document.getElementById('paginas').value);
|
||||
if (paginas < negro) {
|
||||
document.getElementById('compPaginasNegro').value = paginas;
|
||||
negro = paginas;
|
||||
}
|
||||
var color = parseInt(document.getElementById('compPaginasColor').value);
|
||||
if ($('#tipoImpresion').select2('data')[0].id == 'color') {
|
||||
|
||||
var newValue = paginas - negro;
|
||||
if (newValue != color) {
|
||||
document.getElementById('compPaginasColor').value = newValue >= 0 ? newValue : 0;
|
||||
$('#compPaginasColor').change();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
$('#compPaginasColor').on("change", function () {
|
||||
const paginas = parseInt(document.getElementById('paginas').value);
|
||||
var color = parseInt(document.getElementById('compPaginasColor').value);
|
||||
var negro = parseInt(document.getElementById('compPaginasNegro').value);
|
||||
|
||||
if (paginas < color) {
|
||||
document.getElementById('compPaginasColor').value = paginas;
|
||||
color = paginas
|
||||
}
|
||||
var newValue = paginas - color;
|
||||
if (newValue != negro) {
|
||||
document.getElementById('compPaginasNegro').value = newValue >= 0 ? newValue : 0;
|
||||
$('#compPaginasNegro').change();
|
||||
}
|
||||
});
|
||||
|
||||
$('#compPaginasNegrohq').on("change", function () {
|
||||
if (document.getElementById('paginas').value < document.getElementById('compPaginasNegrohq').value) {
|
||||
document.getElementById('compPaginasNegrohq').value = document.getElementById('paginas').value;
|
||||
}
|
||||
|
||||
if ($('#tipoImpresion').select2('data')[0].id == 'color') {
|
||||
if (document.getElementById('compPaginasNegrohq').value + document.getElementById('compPaginasColorhq').value > document.getElementById('paginas').value) {
|
||||
var newValue = document.getElementById('paginas').value - document.getElementById('compPaginasNegrohq').value;
|
||||
document.getElementById('compPaginasColorhq').value = newValue >= 0 ? newValue : 0;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#compPaginasColorhq').on("change", function () {
|
||||
if (document.getElementById('paginas').value < document.getElementById('compPaginasColorhq').value) {
|
||||
document.getElementById('compPaginasColorhq').value = document.getElementById('paginas').value;
|
||||
}
|
||||
|
||||
if (document.getElementById('compPaginasNegrohq').value + document.getElementById('compPaginasColorhq').value > document.getElementById('paginas').value) {
|
||||
var newValue = document.getElementById('paginas').value - document.getElementById('compPaginasColorhq').value;
|
||||
document.getElementById('compPaginasNegrohq').value = newValue >= 0 ? newValue : 0;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$('#paginas').on("change", function () {
|
||||
// Si es negro o color
|
||||
if ($('#tipoImpresion').select2('data')[0].id == 'negro' ||
|
||||
$('#tipoImpresion').select2('data')[0].id == 'color') {
|
||||
document.getElementById('compPaginasNegro').value = document.getElementById('paginas').value;
|
||||
document.getElementById('compPaginasColor').value = 0;
|
||||
}
|
||||
// Si es negrohq o colorhq
|
||||
if ($('#tipoImpresion').select2('data')[0].id == 'negrohq' ||
|
||||
$('#tipoImpresion').select2('data')[0].id == 'colorhq') {
|
||||
document.getElementById('compPaginasNegrohq').value = document.getElementById('paginas').value;
|
||||
document.getElementById('compPaginasColorhq').value = 0;
|
||||
}
|
||||
});
|
||||
|
||||
$("#solapas").on("click", function () {
|
||||
var e = document.getElementById('div_solapas_ancho');
|
||||
if (document.getElementById('solapas').checked) {
|
||||
@ -13,11 +88,38 @@ $("#solapas").on("click", function () {
|
||||
|
||||
$('#tipoImpresion').on("change", function () {
|
||||
updatePapelesComparador();
|
||||
$('#paginas').change();
|
||||
|
||||
|
||||
if (($('#tipoImpresion').select2('data')[0].id == 'negro' ||
|
||||
$('#tipoImpresion').select2('data')[0].id == 'color')){
|
||||
|
||||
$('#tableCompIntRotativa').DataTable().clear().draw();
|
||||
$('#total_comp_rot').html("0.00");
|
||||
|
||||
if( $('#tableCompIntPlana').DataTable().rows().count() > 0 &&
|
||||
$('#tableCompIntPlana').DataTable().cell(0, 0).data().includes('hq')) {
|
||||
|
||||
$('#tableCompIntPlana').DataTable().clear().draw();
|
||||
$('#total_comp_plana').html("0.00");
|
||||
}
|
||||
|
||||
}
|
||||
else if (($('#tipoImpresion').select2('data')[0].id == 'negrohq' ||
|
||||
$('#tipoImpresion').select2('data')[0].id == 'colorhq')){
|
||||
|
||||
$('#tableCompIntRotativa').DataTable().clear().draw();
|
||||
$('#total_comp_rot').html("0.00");
|
||||
|
||||
if($('#tableCompIntPlana').DataTable().rows().count() > 0 &&
|
||||
!$('#tableCompIntPlana').DataTable().cell(0, 0).data().includes('hq')) {
|
||||
|
||||
$('#tableCompIntPlana').DataTable().clear().draw();
|
||||
$('#total_comp_plana').html("0.00");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#tipoImpresion').on("change", function () {
|
||||
updatePapelesComparador();
|
||||
});
|
||||
|
||||
$('#compRetractilado').on("change", function () {
|
||||
checkRetractiladoComparador(this);
|
||||
@ -61,38 +163,62 @@ $('.accordion-button').on('click', function (e) {
|
||||
/*******************************
|
||||
* Metodos
|
||||
*******************************/
|
||||
function getRowFromLinea(tipo, linea){
|
||||
function getRowFromLineaInt(tipo, linea) {
|
||||
|
||||
return {
|
||||
'tipo': tipo,
|
||||
'paginas': linea.fields.paginas,
|
||||
'papel': linea.fields.papel_generico_id,
|
||||
'papel': linea.fields.papel_generico,
|
||||
'gramaje': linea.fields.gramaje,
|
||||
'marca': linea.fields.papel_impresion,
|
||||
'maquina': linea.fields.maquina,
|
||||
'numeroPliegos': isNaN(parseFloat(linea.fields.pliegos_libro).toFixed(2)) ? "" : parseFloat(linea.fields.pliegos_libro).toFixed(2),
|
||||
'pliegosPedido': isNaN(parseFloat(linea.fields.pliegos_pedido).toFixed(2)) ? "" : parseFloat(linea.fields.pliegos_pedido).toFixed(2),
|
||||
'precioPliego': isNaN(parseFloat(linea.fields.precios_pliegos).toFixed(6)) ? "" : parseFloat(linea.fields.precios_pliegos).toFixed(6),
|
||||
'libro': isNaN(parseFloat(linea.fields.precio_libro).toFixed(2)) ? "" : parseFloat(linea.fields.precio_libro).toFixed(2),
|
||||
'totalPapelPedido': isNaN(parseFloat(linea.fields.precio_pedido).toFixed(2)) ? "" : parseFloat(linea.fields.precio_pedido).toFixed(2),
|
||||
'lomo': isNaN(parseFloat(linea.fields.mano).toFixed(2)) ? "" : parseFloat(linea.fields.mano).toFixed(2),
|
||||
'peso': isNaN(parseFloat(linea.fields.peso).toFixed(2)) ? "" : parseFloat(linea.fields.peso).toFixed(2),
|
||||
'click': isNaN(parseFloat(linea.fields.precio_click).toFixed(6)) ? "" : parseFloat(linea.fields.precio_click).toFixed(6),
|
||||
'totalClicks': isNaN(parseFloat(linea.fields.precio_click_pedido).toFixed(2)) ? "" : parseFloat(linea.fields.precio_click_pedido).toFixed(2),
|
||||
'precioPagNegro': isNaN(parseFloat(linea.fields.precioPagNegro).toFixed(6)) ? "" : parseFloat(linea.fields.precioPagNegro).toFixed(6),
|
||||
'precioPagColor': isNaN(parseFloat(linea.fields.precioPagColor).toFixed(6)) ? "" : parseFloat(linea.fields.precioPagColor).toFixed(6),
|
||||
'totalTinta': isNaN(parseFloat(linea.fields.totalTinta).toFixed(6)) ? "" : parseFloat(linea.fields.totalTinta).toFixed(6),
|
||||
'totalCorte': isNaN(parseFloat(linea.fields.totalCorte).toFixed(6)) ? "" : parseFloat(linea.fields.totalCorte).toFixed(6),
|
||||
'total': isNaN(parseFloat(linea.fields.precio_pedido+linea.fields.precio_click_pedido).toFixed(2)) ?
|
||||
"" : parseFloat(linea.fields.precio_pedido+linea.fields.precio_click_pedido).toFixed(2),
|
||||
'numeroPliegos': isNaN(parseFloat(linea.fields.pliegos_libro)) ? "" : parseFloat(linea.fields.pliegos_libro).toFixed(2),
|
||||
'pliegosPedido': isNaN(parseFloat(linea.fields.pliegos_pedido)) ? "" : parseFloat(linea.fields.pliegos_pedido).toFixed(2),
|
||||
'precioPliego': isNaN(parseFloat(linea.fields.precios_pliegos)) ? "" : parseFloat(linea.fields.precios_pliegos).toFixed(6),
|
||||
'libro': isNaN(parseFloat(linea.fields.precio_libro)) ? "" : parseFloat(linea.fields.precio_libro).toFixed(2),
|
||||
'totalPapelPedido': isNaN(parseFloat(linea.fields.precio_pedido)) ? "" : parseFloat(linea.fields.precio_pedido).toFixed(2),
|
||||
'lomo': isNaN(parseFloat(linea.fields.mano)) ? "" : parseFloat(linea.fields.mano).toFixed(2),
|
||||
'peso': isNaN(parseFloat(linea.fields.peso)) ? "" : parseFloat(linea.fields.peso).toFixed(2),
|
||||
'click': isNaN(parseFloat(linea.fields.precio_click)) ? "" : parseFloat(linea.fields.precio_click).toFixed(6),
|
||||
'totalClicks': isNaN(parseFloat(linea.fields.precio_click_pedido)) ? "" : parseFloat(linea.fields.precio_click_pedido).toFixed(2),
|
||||
'total': isNaN(parseFloat(linea.fields.precio_pedido) + parseFloat(linea.fields.precio_click_pedido)) ?
|
||||
"" : (parseFloat(linea.fields.precio_pedido) + parseFloat(linea.fields.precio_click_pedido)).toFixed(2),
|
||||
}
|
||||
}
|
||||
|
||||
function getRowFromLineaRot(linea) {
|
||||
|
||||
return {
|
||||
'tipo': 'rotativa',
|
||||
'paginas': linea.fields.paginas,
|
||||
'papel': linea.fields.papel_generico,
|
||||
'gramaje': linea.fields.gramaje,
|
||||
'marca': linea.fields.papel_impresion,
|
||||
'aFavorFibra':linea.fields.a_favor_fibra==1?'si':'no',
|
||||
'maquina': linea.fields.maquina,
|
||||
'numeroPliegos': isNaN(parseFloat(linea.fields.pliegos_libro)) ? "" : parseFloat(linea.fields.pliegos_libro).toFixed(2),
|
||||
'pliegosPedido': isNaN(parseFloat(linea.fields.pliegos_pedido)) ? "" : parseFloat(linea.fields.pliegos_pedido).toFixed(2),
|
||||
'precioPliego': isNaN(parseFloat(linea.fields.precios_pliegos)) ? "" : parseFloat(linea.fields.precios_pliegos).toFixed(6),
|
||||
'libro': isNaN(parseFloat(linea.fields.precio_libro)) ? "" : parseFloat(linea.fields.precio_libro).toFixed(2),
|
||||
'totalPapelPedido': isNaN(parseFloat(linea.fields.precio_pedido)) ? "" : parseFloat(linea.fields.precio_pedido).toFixed(2),
|
||||
'lomo': isNaN(parseFloat(linea.fields.mano)) ? "" : parseFloat(linea.fields.mano).toFixed(2),
|
||||
'peso': isNaN(parseFloat(linea.fields.peso)) ? "" : parseFloat(linea.fields.peso).toFixed(2),
|
||||
'click': isNaN(parseFloat(linea.fields.precio_click)) ? "" : parseFloat(linea.fields.precio_click).toFixed(6),
|
||||
'totalClicks': isNaN(parseFloat(linea.fields.precio_click_pedido)) ? "" : parseFloat(linea.fields.precio_click_pedido).toFixed(2),
|
||||
'precioPagNegro': isNaN(parseFloat(linea.fields.precio_pagina_negro)) ? "" : parseFloat(linea.fields.precio_pagina_negro).toFixed(6),
|
||||
'precioPagColor': isNaN(parseFloat(linea.fields.precio_pagina_color)) ? "" : parseFloat(linea.fields.precio_pagina_color).toFixed(6),
|
||||
'totalTinta':isNaN(parseFloat(linea.fields.precio_tinta)) ? "" : parseFloat(linea.fields.precio_tinta).toFixed(2),
|
||||
'totalCorte':isNaN(parseFloat(linea.fields.total_corte)) ? "" : parseFloat(linea.fields.total_corte).toFixed(2),
|
||||
'total': isNaN(parseFloat(linea.fields.total_impresion)) ? "" : (parseFloat(linea.fields.total_impresion)).toFixed(2),
|
||||
}
|
||||
}
|
||||
|
||||
function checkDatosPedidoForComp() {
|
||||
|
||||
if (parseInt(document.getElementById('paginas').value) > 0 &&
|
||||
parseInt(document.getElementById('tirada').value) > 0 &&
|
||||
if (parseInt($('#paginas').val()) > 0 &&
|
||||
parseInt($('#tirada').val()) > 0 &&
|
||||
($('#papelFormatoId').select2('data').length > 0 ||
|
||||
(parseInt(document.getElementById('papelFormatoAncho').value) > 0 && parseInt(document.getElementById('papelFormatoAlto').value) > 0)))
|
||||
(parseInt($('#papelFormatoAncho').val()) > 0 && parseInt($('#papelFormatoAlto').val()) > 0)))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
@ -177,11 +303,13 @@ function updatePapelesComparador() {
|
||||
Array.from(elements_colorhq).forEach(element => {
|
||||
element.style.display = "none";
|
||||
});
|
||||
clearNegro();
|
||||
break;
|
||||
|
||||
case "negrohq":
|
||||
Array.from(elements_color).forEach(element => {
|
||||
element.style.display = "none";
|
||||
|
||||
});
|
||||
Array.from(elements_negro).forEach(element => {
|
||||
element.style.display = "none";
|
||||
@ -227,8 +355,197 @@ function updatePapelesComparador() {
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
function clearNegro() {
|
||||
document.getElementById('compPaginasNegro').value = 0;
|
||||
$('#compGramajeNegro').val('').change();
|
||||
$('#compGramajeNegro').prop('disabled', true);
|
||||
$('#compPapelNegro').val('data', { id: '0' });
|
||||
}
|
||||
|
||||
function clearIntLineas(is_color){
|
||||
$("#tableCompIntPlana").DataTable().rows( '.selected' ).deselect();
|
||||
var tabla = $('#tableCompIntPlana').DataTable();
|
||||
tabla
|
||||
.rows( function ( idx, data, node ) {
|
||||
return data['tipo'].includes(is_color?'color':'bn');
|
||||
} )
|
||||
.remove()
|
||||
.draw();
|
||||
}
|
||||
|
||||
function clearCubierta(){
|
||||
|
||||
$('#tableCompCubierta').DataTable().clear().draw();
|
||||
}
|
||||
|
||||
function clearIntRot(){
|
||||
|
||||
$('#tableCompIntRotativa').DataTable().clear().draw();
|
||||
}
|
||||
|
||||
|
||||
function selectIntLineas(){
|
||||
var negro_selected = false;
|
||||
var color_selected = false;
|
||||
$("#tableCompIntPlana").DataTable().rows( '.selected' ).deselect();
|
||||
$("#tableCompIntPlana").DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) {
|
||||
if( !negro_selected && $('#tableCompIntPlana').DataTable().cell(rowIdx, 0).data().includes('bn') ){
|
||||
$("#tableCompIntPlana").DataTable().row( rowIdx ).nodes().to$().toggleClass( 'selected' );
|
||||
negro_selected = true;
|
||||
}
|
||||
if( !color_selected && $('#tableCompIntPlana').DataTable().cell(rowIdx, 0).data().includes('color') ){
|
||||
$("#tableCompIntPlana").DataTable().row( rowIdx ).nodes().to$().toggleClass( 'selected' );
|
||||
color_selected = true;
|
||||
}
|
||||
});
|
||||
|
||||
var table = $("#tableCompIntPlana").DataTable();
|
||||
var rows = table.rows( '.selected' ).indexes();
|
||||
var data = table.rows( rows ).data();
|
||||
|
||||
var value_total = 0.00;
|
||||
|
||||
for (let i = 0; i < data.length ; i++) {
|
||||
|
||||
value_total += parseFloat(data[i]['total'])
|
||||
}
|
||||
|
||||
$('#total_comp_plana').html(value_total.toFixed(2));
|
||||
}
|
||||
|
||||
function selectIntRotLineas(){
|
||||
|
||||
$("#tableCompIntRotativa").DataTable().rows( '.selected' ).deselect();
|
||||
|
||||
let value_total = 0.00;
|
||||
|
||||
if($("#tableCompIntRotativa").DataTable().rows().count()>0) {
|
||||
|
||||
$("#tableCompIntRotativa").DataTable().row( 0 ).nodes().to$().toggleClass( 'selected' );
|
||||
value_total = parseFloat($("#tableCompIntRotativa").DataTable().rows( 0 ).data()[0]['total'])
|
||||
};
|
||||
|
||||
|
||||
$('#total_comp_rot').html(value_total.toFixed(2));
|
||||
}
|
||||
|
||||
|
||||
function getIDsComparador(is_color, is_hq){
|
||||
|
||||
if(!is_color){
|
||||
if(is_hq){
|
||||
var papel = '#compPapelNegrohq';
|
||||
var gramaje = '#compGramajeNegrohq';
|
||||
var paginas = '#compPaginasNegrohq';
|
||||
}
|
||||
else{
|
||||
var papel = '#compPapelNegro';
|
||||
var gramaje = '#compGramajeNegro';
|
||||
var paginas = '#compPaginasNegro';
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(is_hq){
|
||||
var papel = '#compPapelColorhq';
|
||||
var gramaje = '#compGramajeColorhq';
|
||||
var paginas = '#compPaginasColorhq';
|
||||
}
|
||||
else{
|
||||
var papel = '#compPapelColor';
|
||||
var gramaje = '#compGramajeColor';
|
||||
var paginas = '#compPaginasColor';
|
||||
}
|
||||
}
|
||||
return{
|
||||
papel: papel,
|
||||
gramaje: gramaje,
|
||||
paginas: paginas,
|
||||
}
|
||||
}
|
||||
|
||||
function getDimensionLibro(){
|
||||
var ancho = 0;
|
||||
var alto = 0;
|
||||
|
||||
if($('#papelFormatoId').select2('data').length > 0){
|
||||
ancho = parseFloat($('#papelFormatoId').select2('data')[0].text.trim().split(" x ")[0]);
|
||||
alto = parseFloat($('#papelFormatoId').select2('data')[0].text.trim().split(" x ")[1]);
|
||||
}
|
||||
else{
|
||||
ancho = parseFloat(document.getElementById('papelFormatoAncho').value);
|
||||
alto = parseFloat(document.getElementById('papelFormatoAlto').value);
|
||||
}
|
||||
return {
|
||||
ancho: ancho,
|
||||
alto: alto
|
||||
}
|
||||
}
|
||||
|
||||
function checkInputsForRotativa(){
|
||||
|
||||
// Si es color, el gramaje y el papel tiene que ser el mismo
|
||||
try{
|
||||
|
||||
if ($('#tipoImpresion').select2('data')[0].id == 'color') {
|
||||
if($('#compPapelNegro').select2('data')[0].id == $('#compPapelColor').select2('data')[0].id &&
|
||||
$('#compGramajeNegro').select2('data')[0].text.trim() == $('#compGramajeColor').select2('data')[0].text.trim() ){
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if ($('#tipoImpresion').select2('data')[0].id == 'negro') {
|
||||
if($('#compPapelNegro').select2('data')[0].id.length>0 &&
|
||||
$('#compGramajeNegro').select2('data')[0].text.length>0){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
catch(error){
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function fillIntPlana(data, is_color, is_hq){
|
||||
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")
|
||||
$('#tableCompIntPlana').DataTable().row
|
||||
.add(getRowFromLineaInt(is_color?(is_hq?'colorhq':'color'):(is_hq?'bnhq':'bn'), linea))
|
||||
.draw()
|
||||
})
|
||||
}
|
||||
|
||||
function fillIntRot(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"){
|
||||
$('#tableCompIntRotativa').DataTable().row
|
||||
.add(getRowFromLineaRot(linea))
|
||||
.draw()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function fillCubierta(data, is_color, is_hq){
|
||||
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")
|
||||
$('#tableCompCubierta').DataTable().row
|
||||
.add(getRowFromLineaInt('cubierta', linea))
|
||||
.draw()
|
||||
})
|
||||
}
|
||||
|
||||
@ -68,6 +68,9 @@
|
||||
}
|
||||
});
|
||||
|
||||
/*******************************
|
||||
* Inicialización de los Select2
|
||||
*******************************/
|
||||
$('#incRei').select2({
|
||||
allowClear: false,
|
||||
});
|
||||
@ -99,7 +102,7 @@
|
||||
$('#compGramajeNegrohq').select2({
|
||||
allowClear: false,
|
||||
});
|
||||
|
||||
|
||||
$('#compPapelColor').select2({
|
||||
allowClear: false,
|
||||
});
|
||||
@ -107,7 +110,7 @@
|
||||
$('#compPapelColorhq').select2({
|
||||
allowClear: false,
|
||||
});
|
||||
|
||||
|
||||
$('#compGramajeColor').select2({
|
||||
allowClear: false,
|
||||
});
|
||||
@ -124,14 +127,11 @@
|
||||
allowClear: false,
|
||||
});
|
||||
|
||||
$('#compPaginasCubierta').select2({
|
||||
$('#compCarasCubierta').select2({
|
||||
allowClear: false,
|
||||
minimumResultsForSearch: Infinity,
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
|
||||
@ -142,8 +142,6 @@
|
||||
|
||||
autosize($('#compCalPaginasColor'));
|
||||
|
||||
|
||||
|
||||
$('#papelFormatoPersonalizado').on("click",function(){
|
||||
var checkbox = document.getElementById('papelFormatoPersonalizado');
|
||||
if(checkbox.checked == true){
|
||||
@ -177,15 +175,23 @@
|
||||
info: false,
|
||||
ordering: false,
|
||||
responsive: true,
|
||||
select: true,
|
||||
language: {
|
||||
url: "//cdn.datatables.net/plug-ins/1.13.4/i18n/<?= config('Basics')->i18n ?>.json"
|
||||
},
|
||||
order: [[19, 'asc']],
|
||||
"columnDefs": [
|
||||
{targets: 19, type: "num"}
|
||||
],
|
||||
columns: [
|
||||
{ 'data': 'tipo' },
|
||||
{ 'data': 'tipo',
|
||||
'render': function ( data, type, row, meta ) {
|
||||
if(data=='bn')
|
||||
return '<?= lang('Presupuestos.bn') ?>';
|
||||
else if(data=='bnhq')
|
||||
return '<?= lang('Presupuestos.bnhq') ?>';
|
||||
else if(data=='color')
|
||||
return '<?= lang('Presupuestos.color') ?>';
|
||||
else if(data=='colorhq')
|
||||
return '<?= lang('Presupuestos.colorhq') ?>';
|
||||
}
|
||||
},
|
||||
{ 'data': 'paginas' },
|
||||
{ 'data': 'papel' },
|
||||
{ 'data': 'gramaje' },
|
||||
@ -200,114 +206,223 @@
|
||||
{ 'data': 'peso' },
|
||||
{ 'data': 'click' },
|
||||
{ 'data': 'totalClicks' },
|
||||
{ 'data': 'total' },
|
||||
],
|
||||
});
|
||||
|
||||
|
||||
var tableCompIntRotativa = new DataTable('#tableCompIntRotativa',{
|
||||
scrollX: true,
|
||||
searching: false,
|
||||
paging: false,
|
||||
info: false,
|
||||
ordering: false,
|
||||
responsive: true,
|
||||
select: true,
|
||||
language: {
|
||||
url: "//cdn.datatables.net/plug-ins/1.13.4/i18n/<?= config('Basics')->i18n ?>.json"
|
||||
},
|
||||
columns: [
|
||||
{ 'data': 'tipo',
|
||||
'render': function ( data, type, row, meta ) {
|
||||
if(data=='rotativa')
|
||||
return '<?= lang('Presupuestos.rotativa') ?>';
|
||||
}
|
||||
},
|
||||
{ 'data': 'paginas' },
|
||||
{ 'data': 'papel' },
|
||||
{ 'data': 'gramaje' },
|
||||
{ 'data': 'marca' },
|
||||
{ 'data': 'aFavorFibra',
|
||||
'render': function(data, type, row, meta){
|
||||
if(data=='si')
|
||||
return '<?= lang('Presupuestos.si') ?>';
|
||||
else if(data=='no')
|
||||
return '<?= lang('Presupuestos.no') ?>';
|
||||
}
|
||||
},
|
||||
{ 'data': 'maquina' },
|
||||
{ 'data': 'numeroPliegos' },
|
||||
{ 'data': 'pliegosPedido' },
|
||||
{ 'data': 'precioPliego' },
|
||||
{ 'data': 'libro' },
|
||||
{ 'data': 'totalPapelPedido' },
|
||||
{ 'data': 'lomo' },
|
||||
{ 'data': 'peso' },
|
||||
{ 'data': 'click' },
|
||||
{ 'data': 'totalClicks' },
|
||||
{ 'data': 'precioPagNegro' },
|
||||
{ 'data': 'precioPagColor' },
|
||||
{ 'data': 'totalTinta' },
|
||||
{ 'data': 'totalCorte' },
|
||||
{ 'data': 'total' },
|
||||
|
||||
]
|
||||
],
|
||||
});
|
||||
|
||||
|
||||
var tableCompIntRotativa = new DataTable('#tableCompIntRotativa',{
|
||||
var tableCompCubierta = new DataTable('#tableCompCubierta',{
|
||||
scrollX: true,
|
||||
searching: false,
|
||||
paging: false,
|
||||
info: false,
|
||||
ordering: false,
|
||||
responsive: true,
|
||||
select: true,
|
||||
language: {
|
||||
url: "//cdn.datatables.net/plug-ins/1.13.4/i18n/<?= config('Basics')->i18n ?>.json"
|
||||
},
|
||||
columns: [
|
||||
{ 'data': 'tipo',
|
||||
'render': function ( data, type, row, meta ) {
|
||||
if(data=='bn')
|
||||
return '<?= lang('Presupuestos.bn') ?>';
|
||||
else if(data=='bnhq')
|
||||
return '<?= lang('Presupuestos.bnhq') ?>';
|
||||
else if(data=='color')
|
||||
return '<?= lang('Presupuestos.color') ?>';
|
||||
else if(data=='colorhq')
|
||||
return '<?= lang('Presupuestos.colorhq') ?>';
|
||||
}
|
||||
},
|
||||
{ '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': 'click' },
|
||||
{ 'data': 'totalClicks' },
|
||||
{ 'data': 'total' },
|
||||
],
|
||||
});
|
||||
|
||||
var tableCompIntCubierta = new DataTable('#tableCompCubierta',{
|
||||
scrollX: true,
|
||||
searching: false,
|
||||
paging: false,
|
||||
info: false,
|
||||
ordering: false,
|
||||
responsive: true,
|
||||
language: {
|
||||
url: "//cdn.datatables.net/plug-ins/1.13.4/i18n/<?= config('Basics')->i18n ?>.json"
|
||||
},
|
||||
});
|
||||
|
||||
var tableCompIntSobrecubierta = new DataTable('#tableCompSobrecubierta',{
|
||||
scrollX: true,
|
||||
searching: false,
|
||||
paging: false,
|
||||
info: false,
|
||||
ordering: false,
|
||||
responsive: true,
|
||||
language: {
|
||||
url: "//cdn.datatables.net/plug-ins/1.13.4/i18n/<?= config('Basics')->i18n ?>.json"
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
|
||||
$('#compPapelNegro').on('select2:select', function (e){
|
||||
|
||||
$('#compGramajeNegro').val(null).trigger('change')
|
||||
$('#compGramajeNegro').prop('disabled', false);
|
||||
$('#compPapelNegro').find('option[value="0"]').remove();
|
||||
$('#compGramajeNegro').select2({
|
||||
allowClear: true,
|
||||
minimumResultsForSearch: Infinity,
|
||||
ajax: {
|
||||
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
if($('#compPapelNegro').select2('data')[0].id=='0'){
|
||||
$('#compGramajeNegro').val('').change();
|
||||
$('#compGramajeNegro').prop('disabled', true);
|
||||
}
|
||||
|
||||
data: function (params) {
|
||||
return {
|
||||
tipo: 'gramaje',
|
||||
datos: $('#compPapelNegro').select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
},
|
||||
delay: 60,
|
||||
processResults: function (response) {
|
||||
yeniden(response.<?= csrf_token() ?>);
|
||||
return {
|
||||
results: response.menu
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
else{
|
||||
$('#compGramajeNegro').val('').change();
|
||||
$('#compGramajeNegro').empty().trigger("change");
|
||||
$('#compGramajeNegro').prop('disabled', false);
|
||||
$('#compGramajeNegro').select2({
|
||||
allowClear: true,
|
||||
minimumResultsForSearch: Infinity,
|
||||
ajax: {
|
||||
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
|
||||
data: function (params) {
|
||||
return {
|
||||
tipo: 'gramaje',
|
||||
uso: 'bn',
|
||||
datos: $('#compPapelNegro').select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
},
|
||||
delay: 60,
|
||||
processResults: function (response) {
|
||||
yeniden(response.<?= csrf_token() ?>);
|
||||
return {
|
||||
results: response.menu
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$('.comp_negro_items').on('change', function (e) {
|
||||
checkComparadorNegro();
|
||||
|
||||
checkComparadorInt(false,false);
|
||||
});
|
||||
|
||||
function checkComparadorNegro() {
|
||||
if (document.getElementById('compPaginasNegro').value &&
|
||||
$('#compPapelNegro').select2('data').length > 0 &&
|
||||
$('#compGramajeNegro').select2('data').length > 0) {
|
||||
$('.comp_negrohq_items').on('change', function (e) {
|
||||
|
||||
checkComparadorInt(false, true);
|
||||
});
|
||||
|
||||
if (parseInt(document.getElementById('compPaginasNegro').value) > 0 && checkDatosPedidoForComp()) {
|
||||
$('.comp_color_items').on('change', function (e) {
|
||||
|
||||
checkComparadorInt(true, false);
|
||||
});
|
||||
|
||||
if($('#papelFormatoId').select2('data').length > 0){
|
||||
ancho = parseFloat($('#papelFormatoId').select2('data')[0].text.trim().split(" x ")[0]);
|
||||
alto = parseFloat($('#papelFormatoId').select2('data')[0].text.trim().split(" x ")[1]);
|
||||
}
|
||||
else{
|
||||
ancho = parseFloat(document.getElementById('papelFormatoAncho').value);
|
||||
alto = parseFloat(document.getElementById('papelFormatoAlto').value);
|
||||
$('.comp_colorhq_items').on('change', function (e) {
|
||||
checkComparadorInt(true, true);
|
||||
});
|
||||
|
||||
async function getLineasIntPlana(is_color, is_hq){
|
||||
|
||||
const dimension = getDimensionLibro();
|
||||
|
||||
let datos = {
|
||||
type: 'interior',
|
||||
color: is_color?1:0,
|
||||
hq: is_hq?1:0,
|
||||
paginas: parseInt($(''+ elementos.paginas).val()),
|
||||
tirada: parseInt($('#tirada').val()),
|
||||
merma: parseInt($('#merma').val()),
|
||||
ancho: dimension.ancho,
|
||||
alto: dimension.alto,
|
||||
papel_generico_id: $(''+ elementos.papel).select2('data')[0].id,
|
||||
papel_generico: $(''+ elementos.papel).select2('data')[0].text.trim(),
|
||||
gramaje: $(''+ elementos.gramaje).select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/cosidotapablanda/datatable",
|
||||
data: datos,
|
||||
success: function (data) {
|
||||
|
||||
clearIntLineas(is_color);
|
||||
|
||||
if(data.lineas.length >0){
|
||||
|
||||
fillIntPlana(data, is_color, is_hq);
|
||||
selectIntLineas();
|
||||
$('#title_int_plana').html('<?= lang("Presupuestos.compInteriorPlana") ?>' + ' (' + tableCompIntPlana.rows().count() + ')');
|
||||
}
|
||||
yeniden(data.<?= csrf_token() ?>);
|
||||
return true;
|
||||
},
|
||||
error: function(e){
|
||||
return false;
|
||||
}
|
||||
})
|
||||
return false;
|
||||
}
|
||||
|
||||
async function getLineasIntRot(is_hq){
|
||||
|
||||
const dimension = getDimensionLibro();
|
||||
|
||||
// Rotativa solo negro o color (no hq)
|
||||
if ( is_hq==false){
|
||||
console.log('hola');
|
||||
if(checkInputsForRotativa()){
|
||||
|
||||
|
||||
let datos = {
|
||||
table_type: 'comp_int_bn',
|
||||
paginas: parseInt(document.getElementById('compPaginasNegro').value),
|
||||
tirada: parseInt(document.getElementById('tirada').value),
|
||||
merma: parseInt(document.getElementById('merma').value),
|
||||
ancho: ancho,
|
||||
alto: alto,
|
||||
type: 'interior_rot',
|
||||
paginas: parseInt($('#paginas').val()),
|
||||
paginas_negro: parseInt($('#compPaginasNegro').val()),
|
||||
paginas_color: parseInt($('#compPaginasColor').val()),
|
||||
tirada: parseInt($('#tirada').val()),
|
||||
merma: parseInt($('#merma').val()),
|
||||
ancho: dimension.ancho,
|
||||
alto: dimension.alto,
|
||||
// el papel y el gramaje se coge del negro (siempre estará)
|
||||
papel_generico_id: $('#compPapelNegro').select2('data')[0].id,
|
||||
papel_generico: $('#compPapelNegro').select2('data')[0].text.trim(),
|
||||
gramaje: $('#compGramajeNegro').select2('data')[0].text.trim() ,
|
||||
@ -319,163 +434,258 @@
|
||||
url: "/cosidotapablanda/datatable",
|
||||
data: datos,
|
||||
success: function (data) {
|
||||
|
||||
clearIntRot();
|
||||
|
||||
if(data.lineas.length >0){
|
||||
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) {
|
||||
console.log(linea);
|
||||
tableCompIntPlana.row
|
||||
.add(getRowFromLinea('BN', linea))
|
||||
.draw()
|
||||
})
|
||||
|
||||
$('#total_comp_negro').html(
|
||||
isNaN(parseFloat(data.lineas[0].fields.precio_pedido).toFixed(2)) ?
|
||||
"0.00" : parseFloat(data.lineas[0].fields.precio_pedido).toFixed(2))
|
||||
$("#tableCompIntPlana").DataTable().row( 0 ).nodes().to$().toggleClass( 'selected' );
|
||||
|
||||
fillIntRot(data);
|
||||
selectIntRotLineas();
|
||||
$('#title_int_rot').html('<?= lang("Presupuestos.compInteriorRotativa") ?>' + ' (' + tableCompIntRotativa.rows().count() + ')');
|
||||
}
|
||||
yeniden(data.<?= csrf_token() ?>);
|
||||
return true;
|
||||
},
|
||||
error: function(e){
|
||||
return false;
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$('.comp_cubierta_items').on('change', function (){
|
||||
|
||||
if ($('#compCarasCubierta').select2('data').length > 0 &&
|
||||
$('#compPapelCubierta').select2('data').length > 0 &&
|
||||
$('#compGramajeCubierta').select2('data').length > 0 ){
|
||||
|
||||
const dimension = getDimensionLibro();
|
||||
|
||||
let datos = {
|
||||
type: 'cubierta',
|
||||
paginas: parseInt($('#compCarasCubierta').select2('data')[0].id),
|
||||
tirada: parseInt($('#tirada').val()),
|
||||
merma: parseInt($('#mermacubierta').val()),
|
||||
color: 1,
|
||||
ancho: dimension.ancho,
|
||||
alto: dimension.alto,
|
||||
solapas: $('#solapas').is(':checked')?1:0,
|
||||
solapas_ancho: parseInt($('#solapas_ancho').val()),
|
||||
papel_generico_id: $('#compPapelCubierta').select2('data')[0].id,
|
||||
papel_generico: $('#compPapelCubierta').select2('data')[0].text.trim(),
|
||||
gramaje: $('#compGramajeCubierta').select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/cosidotapablanda/datatable",
|
||||
data: datos,
|
||||
success: function (data) {
|
||||
|
||||
clearCubierta();
|
||||
|
||||
if(data.lineas.length >0){
|
||||
console.log(data.lineas);
|
||||
|
||||
fillCubierta(data);
|
||||
//selectIntLineas();
|
||||
//$('#title_int_plana').html('<?= lang("Presupuestos.compInteriorPlana") ?>' + ' (' + tableCompIntPlana.rows().count() + ')');
|
||||
}
|
||||
yeniden(data.<?= csrf_token() ?>);
|
||||
return true;
|
||||
},
|
||||
error: function(e){
|
||||
return false;
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
else{
|
||||
clearCubierta();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function checkComparadorInt(is_color, is_hq) {
|
||||
|
||||
elementos = getIDsComparador(is_color, is_hq)
|
||||
|
||||
if ($('#compPaginasNegro').val() &&
|
||||
$(''+ elementos.papel).select2('data').length > 0 &&
|
||||
$(''+ elementos.gramaje).select2('data').length > 0 &&
|
||||
parseInt($(''+ elementos.paginas).val()) > 0 &&
|
||||
checkDatosPedidoForComp()) {
|
||||
|
||||
getLineasIntPlana(is_color, is_hq).then((result) =>{
|
||||
getLineasIntRot(is_hq);
|
||||
});
|
||||
}
|
||||
else{
|
||||
clearIntLineas(is_color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
$('#compPapelNegrohq').on('select2:select', function (e){
|
||||
|
||||
$('#compGramajeNegrohq').val(null).trigger('change');
|
||||
$('#compGramajeNegrohq').prop('disabled', false);
|
||||
$('#compPapelNegrohq').find('option[value="0"]').remove();
|
||||
$('#compGramajeNegrohq').select2({
|
||||
allowClear: true,
|
||||
minimumResultsForSearch: Infinity,
|
||||
ajax: {
|
||||
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
if($('#compPapelNegrohq').select2('data')[0].id=='0'){
|
||||
$('#compGramajeNegrohq').val('').change();
|
||||
$('#compGramajeNegrohq').prop('disabled', true);
|
||||
}
|
||||
else{
|
||||
$('#compGramajeNegrohq').empty().trigger("change");
|
||||
$('#compGramajeNegrohq').prop('disabled', false);
|
||||
$('#compGramajeNegrohq').select2({
|
||||
allowClear: true,
|
||||
minimumResultsForSearch: Infinity,
|
||||
ajax: {
|
||||
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
|
||||
data: function (params) {
|
||||
return {
|
||||
tipo: 'gramaje',
|
||||
datos: $('#compPapelNegrohq').select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
},
|
||||
delay: 60,
|
||||
processResults: function (response) {
|
||||
yeniden(response.<?= csrf_token() ?>);
|
||||
return {
|
||||
results: response.menu
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
data: function (params) {
|
||||
return {
|
||||
tipo: 'gramaje',
|
||||
uso: 'bn',
|
||||
datos: $('#compPapelNegrohq').select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
},
|
||||
delay: 60,
|
||||
processResults: function (response) {
|
||||
yeniden(response.<?= csrf_token() ?>);
|
||||
return {
|
||||
results: response.menu
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$('#compPapelColor').on('select2:select', function (e){
|
||||
|
||||
$('#compGramajeColor').val(null).trigger('change');
|
||||
$('#compGramajeColor').prop('disabled', false);
|
||||
$('#compPapelColor').find('option[value="0"]').remove();
|
||||
$('#compGramajeColor').select2({
|
||||
allowClear: true,
|
||||
minimumResultsForSearch: Infinity,
|
||||
ajax: {
|
||||
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
if($('#compPapelColor').select2('data')[0].id=='0'){
|
||||
$('#compGramajeColor').val('').change();
|
||||
$('#compGramajeColor').prop('disabled', true);
|
||||
}
|
||||
else{
|
||||
$('#compGramajeColor').empty().trigger("change");
|
||||
$('#compGramajeColor').prop('disabled', false);
|
||||
$('#compPapelColor').find('option[value="0"]').remove();
|
||||
$('#compGramajeColor').select2({
|
||||
allowClear: true,
|
||||
minimumResultsForSearch: Infinity,
|
||||
ajax: {
|
||||
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
|
||||
data: function (params) {
|
||||
return {
|
||||
tipo: 'gramaje',
|
||||
datos: $('#compPapelColor').select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
},
|
||||
delay: 60,
|
||||
processResults: function (response) {
|
||||
yeniden(response.<?= csrf_token() ?>);
|
||||
return {
|
||||
results: response.menu
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
data: function (params) {
|
||||
return {
|
||||
tipo: 'gramaje',
|
||||
uso: 'color',
|
||||
datos: $('#compPapelColor').select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
},
|
||||
delay: 60,
|
||||
processResults: function (response) {
|
||||
yeniden(response.<?= csrf_token() ?>);
|
||||
return {
|
||||
results: response.menu
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$('#compPapelColorhq').on('select2:select', function (e){
|
||||
|
||||
$('#compGramajeColorhq').val(null).trigger('change');
|
||||
$('#compGramajeColorhq').prop('disabled', false);
|
||||
$('#compPapelColorhq').find('option[value="0"]').remove();
|
||||
$('#compGramajeColorhq').select2({
|
||||
allowClear: true,
|
||||
minimumResultsForSearch: Infinity,
|
||||
ajax: {
|
||||
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
if($('#compPapelColorhq').select2('data')[0].id=='0'){
|
||||
$('#compGramajeColorhq').val('').change();
|
||||
$('#compGramajeColorhq').prop('disabled', true);
|
||||
}
|
||||
else{
|
||||
$('#compGramajeColorhq').empty().trigger("change");
|
||||
$('#compGramajeColorhq').prop('disabled', false);
|
||||
$('#compPapelColorhq').find('option[value="0"]').remove();
|
||||
$('#compGramajeColorhq').select2({
|
||||
allowClear: true,
|
||||
minimumResultsForSearch: Infinity,
|
||||
ajax: {
|
||||
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
|
||||
data: function (params) {
|
||||
return {
|
||||
tipo: 'gramaje',
|
||||
datos: $('#compPapelColorhq').select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
},
|
||||
delay: 60,
|
||||
processResults: function (response) {
|
||||
yeniden(response.<?= csrf_token() ?>);
|
||||
return {
|
||||
results: response.menu
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
data: function (params) {
|
||||
return {
|
||||
tipo: 'gramaje',
|
||||
uso: 'color',
|
||||
datos: $('#compPapelColorhq').select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
},
|
||||
delay: 60,
|
||||
processResults: function (response) {
|
||||
yeniden(response.<?= csrf_token() ?>);
|
||||
return {
|
||||
results: response.menu
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$('#compPapelCubierta').on('select2:select', function (e){
|
||||
if($('#compPapelCubierta').select2('data')[0].id=='0'){
|
||||
$('#compGramajeCubierta').val('').change();
|
||||
$('#compGramajeCubierta').prop('disabled', true);
|
||||
}
|
||||
else{
|
||||
$('#compGramajeCubierta').val('').trigger('change');
|
||||
$('#compGramajeCubierta').prop('disabled', false);
|
||||
$('#compPapelCubierta').find('option[value="0"]').remove();
|
||||
$('#compGramajeCubierta').select2({
|
||||
allowClear: true,
|
||||
minimumResultsForSearch: Infinity,
|
||||
ajax: {
|
||||
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
|
||||
$('#compGramajeCubierta').val(null).trigger('change');
|
||||
$('#compGramajeCubierta').prop('disabled', false);
|
||||
$('#compPapelCubierta').find('option[value="0"]').remove();
|
||||
$('#compGramajeCubierta').select2({
|
||||
allowClear: true,
|
||||
minimumResultsForSearch: Infinity,
|
||||
ajax: {
|
||||
url: '<?= route_to("menuItemsOfCosidotapablanda") ?>',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
|
||||
data: function (params) {
|
||||
return {
|
||||
tipo: 'gramaje',
|
||||
datos: $('#compPapelCubierta').select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
},
|
||||
delay: 60,
|
||||
processResults: function (response) {
|
||||
yeniden(response.<?= csrf_token() ?>);
|
||||
return {
|
||||
results: response.menu
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
data: function (params) {
|
||||
return {
|
||||
tipo: 'gramaje',
|
||||
datos: $('#compPapelCubierta').select2('data')[0].text.trim() ,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
},
|
||||
delay: 60,
|
||||
processResults: function (response) {
|
||||
yeniden(response.<?= csrf_token() ?>);
|
||||
return {
|
||||
results: response.menu
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?=$this->section('css') ?>
|
||||
@ -484,11 +694,6 @@
|
||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/sk-datatables.css') ?>">
|
||||
<?=$this->endSection() ?>
|
||||
|
||||
<?= $this->section('additionalExternalJs') ?>
|
||||
<script src="<?= site_url('themes/vuexy/vendor/libs/autosize/autosize.js') ?>"></script>
|
||||
<script src="<?= site_url('js_loader/comparadorCosidoTapaBlanda_js') ?>"></script>
|
||||
<?=$this->endSection() ?>
|
||||
|
||||
|
||||
<?= $this->section('additionalExternalJs') ?>
|
||||
<script src="https://cdn.datatables.net/buttons/2.2.3/js/dataTables.buttons.min.js"></script>
|
||||
@ -497,4 +702,9 @@
|
||||
<script src="https://cdn.datatables.net/buttons/2.2.3/js/buttons.html5.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/buttons/2.2.3/js/buttons.print.min.js"></script>
|
||||
<script src="<?= site_url('themes/vuexy/js/datatables-editor/dataTables.editor.min.js') ?>"></script>
|
||||
<?=$this->endSection() ?>
|
||||
<script src="https://cdn.datatables.net/select/1.7.0/js/dataTables.select.min.js"></script>
|
||||
|
||||
<script src="<?= site_url('themes/vuexy/vendor/libs/autosize/autosize.js') ?>"></script>
|
||||
<script src="<?= site_url('js_loader/comparadorCosidoTapaBlanda_js') ?>"></script>
|
||||
|
||||
<?=$this->endSection() ?>
|
||||
|
||||
Reference in New Issue
Block a user