mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
falta sumar envios
This commit is contained in:
@ -105,5 +105,11 @@ class Js_loader extends BaseController
|
|||||||
$this->response->setHeader('Content-Type', 'text/javascript');
|
$this->response->setHeader('Content-Type', 'text/javascript');
|
||||||
return view('themes/vuexy/form/presupuestos/cliente/direcciones.js');
|
return view('themes/vuexy/form/presupuestos/cliente/direcciones.js');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function presupuestoClienteResumen_js()
|
||||||
|
{
|
||||||
|
$this->response->setHeader('Content-Type', 'text/javascript');
|
||||||
|
return view('themes/vuexy/form/presupuestos/cliente/resumen.js');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -607,30 +607,31 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$newTokenHash = csrf_hash();
|
$newTokenHash = csrf_hash();
|
||||||
$csrfTokenName = csrf_token();
|
$csrfTokenName = csrf_token();
|
||||||
|
|
||||||
$error =(object)[
|
$error = (object)[
|
||||||
'interior' => "",
|
'interior' => "",
|
||||||
'cubierta' => "",
|
'cubierta' => "",
|
||||||
'sobrecubierta' => "",
|
'sobrecubierta' => "",
|
||||||
'guardas' => "",
|
'guardas' => "",
|
||||||
'servicios' => "",
|
'servicios' => "",
|
||||||
'serviciosDefecto' => "",
|
'serviciosDefecto' => "",
|
||||||
];
|
];
|
||||||
$coste_servicios = 0.0;
|
$coste_servicios = 0.0;
|
||||||
|
|
||||||
$POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD();
|
$POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD();
|
||||||
|
|
||||||
|
|
||||||
$tirada = $reqData['tirada'] ?? 0;
|
$tirada = $reqData['tirada'] ?? 0;
|
||||||
$tamanio = $reqData['tamanio'];
|
$tamanio = $reqData['tamanio'];
|
||||||
$tipo_impresion_id = $this->getTipoImpresion($reqData['tipo'], $reqData['tapa']);
|
$tipo_impresion_id = $this->getTipoImpresion($reqData['tipo'], $reqData['tapa']);
|
||||||
$precio_u = [];
|
$precio_u = [];
|
||||||
|
$peso = [];
|
||||||
for($t=0; $t<count($tirada); $t++){
|
|
||||||
|
for ($t = 0; $t < count($tirada); $t++) {
|
||||||
$tirada[$t] = intval($tirada[$t]);
|
$tirada[$t] = intval($tirada[$t]);
|
||||||
|
|
||||||
$paginas_color = intval($reqData['paginasColor']) ?? 0;
|
$paginas_color = intval($reqData['paginasColor']) ?? 0;
|
||||||
$is_cosido = (new TipoPresupuestoModel())->get_isCosido($tipo_impresion_id);
|
$is_cosido = (new TipoPresupuestoModel())->get_isCosido($tipo_impresion_id);
|
||||||
|
|
||||||
$datosPedido = (object)array(
|
$datosPedido = (object)array(
|
||||||
'paginas' => intval($reqData['paginas']) ?? 0,
|
'paginas' => intval($reqData['paginas']) ?? 0,
|
||||||
'tirada' => $tirada[$t],
|
'tirada' => $tirada[$t],
|
||||||
@ -639,7 +640,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
'alto' => intval($tamanio['alto']) ?? 100000,
|
'alto' => intval($tamanio['alto']) ?? 100000,
|
||||||
'isCosido' => $is_cosido,
|
'isCosido' => $is_cosido,
|
||||||
);
|
);
|
||||||
|
|
||||||
$papel_generico = [
|
$papel_generico = [
|
||||||
'id' => $reqData['papelInterior'] ?? 0,
|
'id' => $reqData['papelInterior'] ?? 0,
|
||||||
'nombre' => $reqData['papelInteriorNombre'] ?? "",
|
'nombre' => $reqData['papelInteriorNombre'] ?? "",
|
||||||
@ -647,7 +648,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$gramaje = $reqData['gramajeInterior'] ?? 0;
|
$gramaje = $reqData['gramajeInterior'] ?? 0;
|
||||||
$cliente_id = $reqData['clienteId'] ?? -1;
|
$cliente_id = $reqData['clienteId'] ?? -1;
|
||||||
$excluirRotativa = $reqData['excluirRotativa'] ?? 0;
|
$excluirRotativa = $reqData['excluirRotativa'] ?? 0;
|
||||||
|
|
||||||
$input_data = array(
|
$input_data = array(
|
||||||
'uso' => 'interior',
|
'uso' => 'interior',
|
||||||
'tipo_impresion_id' => $tipo_impresion_id,
|
'tipo_impresion_id' => $tipo_impresion_id,
|
||||||
@ -660,20 +661,22 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
'paginas_color' => $paginas_color,
|
'paginas_color' => $paginas_color,
|
||||||
'excluirRotativa' => $excluirRotativa,
|
'excluirRotativa' => $excluirRotativa,
|
||||||
);
|
);
|
||||||
|
|
||||||
$interior = PresupuestoClienteService::obtenerInterior($input_data);
|
$interior = PresupuestoClienteService::obtenerInterior($input_data);
|
||||||
|
|
||||||
$costeInterior = 0.0;
|
$costeInterior = 0.0;
|
||||||
|
$peso_interior = 0.0;
|
||||||
foreach ($interior as $linea) {
|
foreach ($interior as $linea) {
|
||||||
if (count($linea) > 0) {
|
if (count($linea) > 0) {
|
||||||
$costeInterior += floatval($linea['total_impresion']);
|
$costeInterior += floatval($linea['total_impresion']);
|
||||||
|
$peso_interior += floatval($linea['peso']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($costeInterior <= 0) {
|
if ($costeInterior <= 0) {
|
||||||
$error->interior = lang('Presupuestos.errores.noInterior');
|
$error->interior = lang('Presupuestos.errores.noInterior');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si es POD hay que volver a calcular para incluir la merma correcta
|
// Si es POD hay que volver a calcular para incluir la merma correcta
|
||||||
if ($tirada[$t] <= $POD) {
|
if ($tirada[$t] <= $POD) {
|
||||||
$num_formas = [];
|
$num_formas = [];
|
||||||
@ -684,23 +687,25 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$input_data['datosPedido']->merma = $this->calcular_merma($tirada[$t], $POD, $num_formas);
|
$input_data['datosPedido']->merma = $this->calcular_merma($tirada[$t], $POD, $num_formas);
|
||||||
|
|
||||||
$interior = PresupuestoClienteService::obtenerInterior($input_data);
|
$interior = PresupuestoClienteService::obtenerInterior($input_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
$costeInterior = 0.0;
|
$costeInterior = 0.0;
|
||||||
|
$peso_interior = 0.0;
|
||||||
foreach ($interior as $linea) {
|
foreach ($interior as $linea) {
|
||||||
if (count($linea) > 0) {
|
if (count($linea) > 0) {
|
||||||
$costeInterior += floatval($linea['total_impresion']);
|
$costeInterior += floatval($linea['total_impresion']);
|
||||||
|
$peso_interior += floatval($linea['peso']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($costeInterior <= 0)
|
if ($costeInterior <= 0)
|
||||||
$error->interior = lang('Presupuestos.errores.noInterior');
|
$error->interior = lang('Presupuestos.errores.noInterior');
|
||||||
else
|
else
|
||||||
$error->interior = "";
|
$error->interior = "";
|
||||||
|
|
||||||
|
|
||||||
// Cubierta
|
// Cubierta
|
||||||
$papel_generico = [
|
$papel_generico = [
|
||||||
'id' => $reqData['papelCubierta'] ?? 0,
|
'id' => $reqData['papelCubierta'] ?? 0,
|
||||||
@ -711,41 +716,44 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$input_data['datosPedido']->paginas = intval($reqData['carasCubierta'] ?? 0);
|
$input_data['datosPedido']->paginas = intval($reqData['carasCubierta'] ?? 0);
|
||||||
$input_data['paginas_color'] = intval($reqData['carasCubierta'] ?? 0);
|
$input_data['paginas_color'] = intval($reqData['carasCubierta'] ?? 0);
|
||||||
$input_data['datosPedido']->solapas_ancho = intval($reqData['solapasCubierta'] ?? 0);
|
$input_data['datosPedido']->solapas_ancho = intval($reqData['solapasCubierta'] ?? 0);
|
||||||
$input_data['datosPedido']->solapas = $input_data['datosPedido']->solapas_ancho>0 ? 1 : 0;
|
$input_data['datosPedido']->solapas = $input_data['datosPedido']->solapas_ancho > 0 ? 1 : 0;
|
||||||
$input_data['datosPedido']->lomo = $this->calcular_lomo($interior, 0);
|
$input_data['datosPedido']->lomo = $this->calcular_lomo($interior, 0);
|
||||||
$input_data['isColor'] = 1;
|
$input_data['isColor'] = 1;
|
||||||
$input_data['isHq'] = 1;
|
$input_data['isHq'] = 1;
|
||||||
$input_data['uso'] = 'cubierta';
|
$input_data['uso'] = 'cubierta';
|
||||||
|
|
||||||
$cubierta = PresupuestoClienteService::obtenerCubierta($input_data);
|
$cubierta = PresupuestoClienteService::obtenerCubierta($input_data);
|
||||||
$coste_cubierta = 0.0;
|
$coste_cubierta = 0.0;
|
||||||
|
$peso_cubierta = 0.0;
|
||||||
if (count($cubierta) > 0) {
|
if (count($cubierta) > 0) {
|
||||||
$coste_cubierta += floatval($cubierta['total_impresion']);
|
$coste_cubierta += floatval($cubierta['total_impresion']);
|
||||||
|
$peso_cubierta += floatval($cubierta['peso']);
|
||||||
}
|
}
|
||||||
if($coste_cubierta <= 0)
|
if ($coste_cubierta <= 0)
|
||||||
$error->cubierta = lang('Presupuestos.errores.noCubiertaSobrecubierta');
|
$error->cubierta = lang('Presupuestos.errores.noCubiertaSobrecubierta');
|
||||||
else
|
else
|
||||||
$error->cubierta = "";
|
$error->cubierta = "";
|
||||||
|
|
||||||
$tarifaAcabadoCubierta = intval($reqData['acabadoCubierta'] ?? 0);
|
$tarifaAcabadoCubierta = intval($reqData['acabadoCubierta'] ?? 0);
|
||||||
$acabadoCubierta = [];
|
$acabadoCubierta = [];
|
||||||
if($tarifaAcabadoCubierta > 0){
|
if ($tarifaAcabadoCubierta > 0) {
|
||||||
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
||||||
$acabadoCubierta = $model->getPrecioTarifa($tarifaAcabadoCubierta, $datosPedido->tirada, $POD);
|
$acabadoCubierta = $model->getPrecioTarifa($tarifaAcabadoCubierta, $datosPedido->tirada, $POD);
|
||||||
}
|
}
|
||||||
if(count($acabadoCubierta) > 0){
|
if (count($acabadoCubierta) > 0) {
|
||||||
if($acabadoCubierta[0]->total <= 0 )
|
if ($acabadoCubierta[0]->total <= 0)
|
||||||
$error->servicios = lang('Presupuestos.errores.errorPresupuesto');
|
$error->servicios = lang('Presupuestos.errores.errorPresupuesto');
|
||||||
$coste_servicios += floatval($acabadoCubierta[0]->total);
|
$coste_servicios += floatval($acabadoCubierta[0]->total);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sobrecubierta
|
// Sobrecubierta
|
||||||
$coste_sobrecubierta = 0.0;
|
$coste_sobrecubierta = 0.0;
|
||||||
|
$peso_sobrecubierta = 0.0;
|
||||||
$linea_sobrecubierta = [];
|
$linea_sobrecubierta = [];
|
||||||
$acabadoSobrecubierta = [];
|
$acabadoSobrecubierta = [];
|
||||||
$sobreCubierta = $reqData["sobrecubierta"] ?? null;
|
$sobreCubierta = $reqData["sobrecubierta"] ?? null;
|
||||||
if(!is_null($sobreCubierta)){
|
if (!is_null($sobreCubierta)) {
|
||||||
|
|
||||||
$papel_generico = [
|
$papel_generico = [
|
||||||
'id' => $sobreCubierta['papel'] ?? 0,
|
'id' => $sobreCubierta['papel'] ?? 0,
|
||||||
'nombre' => $sobreCubierta['papel_nombre'] ?? "",
|
'nombre' => $sobreCubierta['papel_nombre'] ?? "",
|
||||||
@ -755,39 +763,42 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$input_data['datosPedido']->paginas = 4;
|
$input_data['datosPedido']->paginas = 4;
|
||||||
$input_data['paginas_color'] = 4;
|
$input_data['paginas_color'] = 4;
|
||||||
$input_data['datosPedido']->solapas_ancho = intval($sobreCubierta['solapas'] ?? 0);
|
$input_data['datosPedido']->solapas_ancho = intval($sobreCubierta['solapas'] ?? 0);
|
||||||
$input_data['datosPedido']->solapas = $input_data['datosPedido']->solapas_ancho>0 ? 1 : 0;
|
$input_data['datosPedido']->solapas = $input_data['datosPedido']->solapas_ancho > 0 ? 1 : 0;
|
||||||
$input_data['datosPedido']->lomo = $this->calcular_lomo([$cubierta], $input_data['datosPedido']->lomo);
|
$input_data['datosPedido']->lomo = $this->calcular_lomo([$cubierta], $input_data['datosPedido']->lomo);
|
||||||
$input_data['isColor'] = 1;
|
$input_data['isColor'] = 1;
|
||||||
$input_data['isHq'] = 1;
|
$input_data['isHq'] = 1;
|
||||||
$input_data['uso'] = 'sobrecubierta';
|
$input_data['uso'] = 'sobrecubierta';
|
||||||
|
|
||||||
$linea_sobrecubierta = PresupuestoClienteService::obtenerSobrecubierta($input_data);
|
$linea_sobrecubierta = PresupuestoClienteService::obtenerSobrecubierta($input_data);
|
||||||
|
|
||||||
if (count($linea_sobrecubierta) > 0) {
|
if (count($linea_sobrecubierta) > 0) {
|
||||||
$coste_sobrecubierta += floatval($linea_sobrecubierta['total_impresion']);
|
$coste_sobrecubierta += floatval($linea_sobrecubierta['total_impresion']);
|
||||||
|
$peso_sobrecubierta += floatval($linea_sobrecubierta['peso']);
|
||||||
}
|
}
|
||||||
if($coste_sobrecubierta <= 0)
|
if ($coste_sobrecubierta <= 0)
|
||||||
$error->sobrecubierta = lang('Presupuestos.errores.noCubiertaSobrecubierta');
|
$error->sobrecubierta = lang('Presupuestos.errores.noCubiertaSobrecubierta');
|
||||||
else
|
else
|
||||||
$error->sobrecubierta = "";
|
$error->sobrecubierta = "";
|
||||||
|
|
||||||
$tarifaAcabadoSobrecubierta = intval(strlen($sobreCubierta['acabado'])==0 ? 0:$sobreCubierta['acabado']);
|
$tarifaAcabadoSobrecubierta = intval(strlen($sobreCubierta['acabado']) == 0 ? 0 : $sobreCubierta['acabado']);
|
||||||
$acabadoSobrecubierta = [];
|
$acabadoSobrecubierta = [];
|
||||||
if($tarifaAcabadoSobrecubierta > 0){
|
if ($tarifaAcabadoSobrecubierta > 0) {
|
||||||
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
||||||
$acabadoSobrecubierta = $model->getPrecioTarifa($tarifaAcabadoSobrecubierta, $datosPedido->tirada, $POD);
|
$acabadoSobrecubierta = $model->getPrecioTarifa($tarifaAcabadoSobrecubierta, $datosPedido->tirada, $POD);
|
||||||
}
|
}
|
||||||
if(count($acabadoSobrecubierta) > 0){
|
if (count($acabadoSobrecubierta) > 0) {
|
||||||
if($acabadoSobrecubierta[0]->total <= 0 )
|
if ($acabadoSobrecubierta[0]->total <= 0)
|
||||||
$error->servicios = lang('Presupuestos.errores.errorPresupuesto');
|
$error->servicios = lang('Presupuestos.errores.errorPresupuesto');
|
||||||
$coste_servicios += floatval($acabadoSobrecubierta[0]->total);
|
$coste_servicios += floatval($acabadoSobrecubierta[0]->total);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Guardas
|
//Guardas
|
||||||
$guardas = [];
|
$guardas = [];
|
||||||
if($reqData['guardas'] ?? 0 > 0){
|
$peso_guardas = 0.0;
|
||||||
|
$coste_guardas = 0.0;
|
||||||
|
if ($reqData['guardas'] ?? 0 > 0) {
|
||||||
|
|
||||||
$guardas = $reqData['guardas'];
|
$guardas = $reqData['guardas'];
|
||||||
$papel_generico = [
|
$papel_generico = [
|
||||||
'id' => $guardas['papel'] ?? 0,
|
'id' => $guardas['papel'] ?? 0,
|
||||||
@ -803,7 +814,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$input_data['isColor'] = 1;
|
$input_data['isColor'] = 1;
|
||||||
$input_data['isHq'] = 1;
|
$input_data['isHq'] = 1;
|
||||||
$input_data['uso'] = 'guardas';
|
$input_data['uso'] = 'guardas';
|
||||||
|
|
||||||
// Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
|
// Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
|
||||||
// y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
|
// y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
|
||||||
// o wire-o tapa dura, las guardas se imprimen como hojas sueltas
|
// o wire-o tapa dura, las guardas se imprimen como hojas sueltas
|
||||||
@ -812,18 +823,19 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
} else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
|
} else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
|
||||||
$input_data['datosPedido']->isCosido = false;
|
$input_data['datosPedido']->isCosido = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$guardas = PresupuestoClienteService::obtenerGuardas($input_data);
|
$guardas = PresupuestoClienteService::obtenerGuardas($input_data);
|
||||||
$coste_guardas = 0.0;
|
|
||||||
if (count($guardas) > 0) {
|
if (count($guardas) > 0) {
|
||||||
$coste_guardas += floatval($guardas['total_impresion']);
|
$coste_guardas += floatval($guardas['total_impresion']);
|
||||||
|
$peso_guardas += floatval($guardas['peso']);
|
||||||
}
|
}
|
||||||
if($coste_guardas <= 0)
|
if ($coste_guardas <= 0)
|
||||||
$error->guardas = lang('Presupuestos.errores.noGuardas');
|
$error->guardas = lang('Presupuestos.errores.noGuardas');
|
||||||
else
|
else
|
||||||
$error->guardas = "";
|
$error->guardas = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Servicios defecto
|
// Servicios defecto
|
||||||
$servDefecto = PresupuestoCLienteService::getServiciosEncuadernacionDefault([
|
$servDefecto = PresupuestoCLienteService::getServiciosEncuadernacionDefault([
|
||||||
'tipo_impresion_id' => $tipo_impresion_id,
|
'tipo_impresion_id' => $tipo_impresion_id,
|
||||||
@ -832,19 +844,19 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
'ancho' => $datosPedido->ancho,
|
'ancho' => $datosPedido->ancho,
|
||||||
'alto' => $datosPedido->alto,
|
'alto' => $datosPedido->alto,
|
||||||
'POD' => $POD,
|
'POD' => $POD,
|
||||||
'solapas' => intval($reqData['solapasCubierta'] ?? 0)>0?1:0,
|
'solapas' => intval($reqData['solapasCubierta'] ?? 0) > 0 ? 1 : 0,
|
||||||
]);
|
]);
|
||||||
$costeServiciosDefecto = 0.0;
|
$costeServiciosDefecto = 0.0;
|
||||||
foreach ($servDefecto as $servicio) {
|
foreach ($servDefecto as $servicio) {
|
||||||
if($servicio->total <= 0 )
|
if ($servicio->total <= 0)
|
||||||
$error->serviciosDefecto = lang('Presupuestos.errores.errorPresupuesto');
|
$error->serviciosDefecto = lang('Presupuestos.errores.errorPresupuesto');
|
||||||
|
|
||||||
$costeServiciosDefecto += floatval($servicio->total);
|
$costeServiciosDefecto += floatval($servicio->total);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Servicios
|
// Servicios
|
||||||
$servicios = $reqData['servicios'] ?? [];
|
$servicios = $reqData['servicios'] ?? [];
|
||||||
if($reqData['guardas'] ?? 0 > 0){
|
if ($reqData['guardas'] ?? 0 > 0) {
|
||||||
array_push($servicios, 62); // Plegado de guardas
|
array_push($servicios, 62); // Plegado de guardas
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
@ -856,10 +868,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
'plegadoGuardas' => 62,
|
'plegadoGuardas' => 62,
|
||||||
*/
|
*/
|
||||||
$serviciosAutomaticos = [];
|
$serviciosAutomaticos = [];
|
||||||
|
|
||||||
foreach($servicios as $servicio){
|
foreach ($servicios as $servicio) {
|
||||||
if(intval($servicio) == 3 || intval($servicio) == 5 || intval($servicio) == 16)
|
if (intval($servicio) == 3 || intval($servicio) == 5 || intval($servicio) == 16) {
|
||||||
{
|
|
||||||
// Servicios acabado
|
// Servicios acabado
|
||||||
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
||||||
'tarifa_id' => $servicio,
|
'tarifa_id' => $servicio,
|
||||||
@ -867,26 +878,21 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
'POD' => $POD,
|
'POD' => $POD,
|
||||||
]);
|
]);
|
||||||
array_push($serviciosAutomaticos, $resultado[0]);
|
array_push($serviciosAutomaticos, $resultado[0]);
|
||||||
if($resultado[0]->total <= 0 )
|
if ($resultado[0]->total <= 0)
|
||||||
$error->servicios = lang('Presupuestos.errores.errorPresupuesto');
|
$error->servicios = lang('Presupuestos.errores.errorPresupuesto');
|
||||||
|
|
||||||
$coste_servicios += floatval($resultado[0]->total);
|
$coste_servicios += floatval($resultado[0]->total);
|
||||||
|
} else if (intval($servicio) == 24 || intval($servicio) == 9) {
|
||||||
}
|
|
||||||
else if (intval($servicio) == 24 || intval($servicio) == 9 )
|
|
||||||
{
|
|
||||||
// Servicios preimpresion
|
// Servicios preimpresion
|
||||||
$resultado = PresupuestoCLienteService::getServiciosExtra([
|
$resultado = PresupuestoCLienteService::getServiciosExtra([
|
||||||
'tarifa_id' => $servicio,
|
'tarifa_id' => $servicio,
|
||||||
]);
|
]);
|
||||||
array_push($serviciosAutomaticos, $resultado[0]);
|
array_push($serviciosAutomaticos, $resultado[0]);
|
||||||
if($resultado[0]->precio <= 0 )
|
if ($resultado[0]->precio <= 0)
|
||||||
$error->servicios = lang('Presupuestos.errores.errorPresupuesto');
|
$error->servicios = lang('Presupuestos.errores.errorPresupuesto');
|
||||||
|
|
||||||
$coste_servicios += floatval($resultado[0]->precio);
|
$coste_servicios += floatval($resultado[0]->precio);
|
||||||
}
|
} else if (intval($servicio) == 62) {
|
||||||
else if (intval($servicio) == 62)
|
|
||||||
{
|
|
||||||
// Servicios manipulado
|
// Servicios manipulado
|
||||||
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
||||||
'tarifa_id' => $servicio,
|
'tarifa_id' => $servicio,
|
||||||
@ -894,31 +900,33 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
'POD' => $POD,
|
'POD' => $POD,
|
||||||
]);
|
]);
|
||||||
array_push($serviciosAutomaticos, $resultado[0]);
|
array_push($serviciosAutomaticos, $resultado[0]);
|
||||||
if($resultado[0]->total <= 0 )
|
if ($resultado[0]->total <= 0)
|
||||||
$error->servicios = lang('Presupuestos.errores.errorPresupuesto');
|
$error->servicios = lang('Presupuestos.errores.errorPresupuesto');
|
||||||
|
|
||||||
$coste_servicios += floatval($resultado[0]->total);
|
$coste_servicios += floatval($resultado[0]->total);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
array_push($precio_u, round(($costeInterior + $coste_cubierta + $coste_sobrecubierta + $costeServiciosDefecto + $coste_servicios)/$tirada[$t], 4));
|
array_push($precio_u, round(($costeInterior + $coste_cubierta + $coste_sobrecubierta + $costeServiciosDefecto + $coste_servicios) / $tirada[$t], 4));
|
||||||
foreach($error as $err){
|
array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas, 2));
|
||||||
if($err != "")
|
foreach ($error as $err) {
|
||||||
|
if ($err != "")
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$return_data = [
|
$return_data = [
|
||||||
'errors' => $error,
|
'errors' => $error,
|
||||||
'total_lp' => $costeInterior+$coste_cubierta+$coste_sobrecubierta,
|
'total_lp' => $costeInterior + $coste_cubierta + $coste_sobrecubierta,
|
||||||
'acabadoCubierta' => $acabadoCubierta,
|
'acabadoCubierta' => $acabadoCubierta,
|
||||||
'acabadoSobrecubierta' => $acabadoSobrecubierta,
|
'acabadoSobrecubierta' => $acabadoSobrecubierta,
|
||||||
'total_servicios_defecto' => $costeServiciosDefecto,
|
'total_servicios_defecto' => $costeServiciosDefecto,
|
||||||
'total_servicios_automaticos' => $coste_servicios,
|
'total_servicios_automaticos' => $coste_servicios,
|
||||||
'tiradas' => $tirada,
|
'tiradas' => $tirada,
|
||||||
'precio_u' => $precio_u,
|
'precio_u' => $precio_u,
|
||||||
|
'peso' => $peso,
|
||||||
|
|
||||||
'interior' => $interior,
|
'interior' => $interior,
|
||||||
'cubierta' => $cubierta,
|
'cubierta' => $cubierta,
|
||||||
'sobrecubierta' => $linea_sobrecubierta,
|
'sobrecubierta' => $linea_sobrecubierta,
|
||||||
@ -935,9 +943,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDireccionesCliente(){
|
public function getDireccionesCliente()
|
||||||
|
{
|
||||||
if ($this->request->isAJAX()) {
|
if ($this->request->isAJAX()) {
|
||||||
|
|
||||||
$newTokenHash = csrf_hash();
|
$newTokenHash = csrf_hash();
|
||||||
$csrfTokenName = csrf_token();
|
$csrfTokenName = csrf_token();
|
||||||
|
|
||||||
@ -948,7 +957,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
array_unshift($data, ['id' => 0, 'text' => 'Agregar nueva dirección']);
|
array_unshift($data, ['id' => 0, 'text' => 'Agregar nueva dirección']);
|
||||||
|
|
||||||
return $this->respond([
|
return $this->respond([
|
||||||
'menu'=>$data,
|
'menu' => $data,
|
||||||
$csrfTokenName => $newTokenHash
|
$csrfTokenName => $newTokenHash
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
@ -956,21 +965,54 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDatosDireccion(){
|
public function getDatosDireccion()
|
||||||
|
{
|
||||||
|
|
||||||
if ($this->request->isAJAX()) {
|
if ($this->request->isAJAX()) {
|
||||||
|
|
||||||
$newTokenHash = csrf_hash();
|
$newTokenHash = csrf_hash();
|
||||||
$csrfTokenName = csrf_token();
|
$csrfTokenName = csrf_token();
|
||||||
|
|
||||||
$reqData = $this->request->getPost();
|
$reqData = $this->request->getPost();
|
||||||
$direccionId = $reqData['id'] ?? 0;
|
$direccionId = $reqData['id'] ?? 0;
|
||||||
|
$peso = $reqData['peso'] ?? 0;
|
||||||
|
$unidades = $reqData['unidades'] ?? 0;
|
||||||
$model = model('App\Models\Clientes\ClienteDireccionesModel');
|
$model = model('App\Models\Clientes\ClienteDireccionesModel');
|
||||||
$data = $model->getDireccion($direccionId);
|
$data = $model->getDireccion($direccionId);
|
||||||
|
|
||||||
|
$modelTarifaEnvio = model('App\Models\Tarifas\TarifaEnvioModel');
|
||||||
|
$coste = 0;
|
||||||
|
if ($data > 0) {
|
||||||
|
$tarifas_envio = $modelTarifaEnvio->getTarifaEnvio($data[0]->pais_id, $peso, $unidades, 'cajas');
|
||||||
|
for ($i = 0; $i < count($tarifas_envio); $i++) {
|
||||||
|
if ($peso > $tarifas_envio[$i]->peso_max) {
|
||||||
|
$tarifas_envio[$i]->precio = number_format($tarifas_envio[$i]->peso_min + ($peso - $data[$i]->peso_min) * $data[$i]->precio_adicional, 2);
|
||||||
|
}
|
||||||
|
// si no se calcula linealmente
|
||||||
|
else {
|
||||||
|
$m = (($tarifas_envio[$i]->precio_max - $tarifas_envio[$i]->precio_min) / ($tarifas_envio[$i]->peso_max - $tarifas_envio[$i]->peso_min));
|
||||||
|
$b = $tarifas_envio[$i]->precio_max - $m * $tarifas_envio[$i]->peso_max;
|
||||||
|
$tarifas_envio[$i]->precio = number_format($m * $peso + $b, 2);
|
||||||
|
}
|
||||||
|
$tarifas_envio[$i]->margen = $tarifas_envio[$i]->margen;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(count($tarifas_envio) > 1){
|
||||||
|
$tarifa_final = array_reduce($tarifas_envio, function ($previous, $current) {
|
||||||
|
return $current->precio < $previous->precio ? $current : $previous;
|
||||||
|
});
|
||||||
|
$coste = $tarifa_final->precio;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$coste = $tarifas_envio[0]->precio;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
$data[0]->coste = $coste;
|
||||||
|
|
||||||
return $this->respond([
|
return $this->respond([
|
||||||
'data'=>$data,
|
'data' => $data,
|
||||||
$csrfTokenName => $newTokenHash
|
$csrfTokenName => $newTokenHash
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
@ -978,10 +1020,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getNuevaDireccion(){
|
public function getNuevaDireccion()
|
||||||
|
{
|
||||||
|
|
||||||
if ($this->request->isAJAX()) {
|
if ($this->request->isAJAX()) {
|
||||||
|
|
||||||
$newTokenHash = csrf_hash();
|
$newTokenHash = csrf_hash();
|
||||||
$csrfTokenName = csrf_token();
|
$csrfTokenName = csrf_token();
|
||||||
|
|
||||||
@ -999,15 +1042,15 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
'cp' => $reqData['cp'] ?? "",
|
'cp' => $reqData['cp'] ?? "",
|
||||||
'telefono' => $reqData['telefono'] ?? ""
|
'telefono' => $reqData['telefono'] ?? ""
|
||||||
];
|
];
|
||||||
|
|
||||||
$model = model('App\Models\Clientes\ClienteDireccionesModel');
|
$model = model('App\Models\Clientes\ClienteDireccionesModel');
|
||||||
$id = $model->nuevaDireccion($data);
|
$id = $model->nuevaDireccion($data);
|
||||||
|
|
||||||
$menu = $model->getMenuDirecciones($data['cliente_id']);
|
$menu = $model->getMenuDirecciones($data['cliente_id']);
|
||||||
|
|
||||||
|
|
||||||
return $this->respond([
|
return $this->respond([
|
||||||
'data'=>$menu,
|
'data' => $menu,
|
||||||
$csrfTokenName => $newTokenHash
|
$csrfTokenName => $newTokenHash
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
@ -1020,8 +1063,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
*
|
*
|
||||||
* Funciones auxiliares
|
* Funciones auxiliares
|
||||||
*
|
*
|
||||||
**********************/
|
**********************/
|
||||||
protected function calcular_lomo($lineas, $lomo_inicial){
|
protected function calcular_lomo($lineas, $lomo_inicial)
|
||||||
|
{
|
||||||
$lomo = $lomo_inicial;
|
$lomo = $lomo_inicial;
|
||||||
foreach ($lineas as $linea) {
|
foreach ($lineas as $linea) {
|
||||||
if (count($linea) > 0) {
|
if (count($linea) > 0) {
|
||||||
|
|||||||
@ -1,40 +1,47 @@
|
|||||||
<div class="col-12 pb-2">
|
<div class="col-12 pb-2">
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
|
<h3>Resumen</h3>
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<h3>Resumen</h3>
|
<h5 class="mb-1">Libro</h5>
|
||||||
<h4>Libro</h4>
|
<p class="mb-0"><small id="tipoLibro">Rústica cosido tapa blanda</small></p>
|
||||||
<p>Rústica cosido tapa blanda</p>
|
<p class="mb-0"><small id="resumenTamanio">Tamaño: 100x100</small></p>
|
||||||
<p>Número de páginas: 200</p>
|
<p class="mb-0"><small id="resumenPaginas">Número de páginas: 200</small></p>
|
||||||
<p>Tirada: 200</p>
|
<p class="mb-0"><small id="resumenTirada">Tirada: 200</small></p>
|
||||||
<p>Prototipo: NO</p>
|
<p class="mb-0"><small id="resumenPrototipo">Prototipo: NO</small></p>
|
||||||
|
<p class="mb-3"><small id="resumenFerro">Ferro: NO</small></p>
|
||||||
|
|
||||||
<h4>Interior</h4>
|
<h5 class="mb-1">Interior</h5>
|
||||||
<p>Impresion: Negro premium</p>
|
<p class="mb-0"><small id="tipoImpresion">Impresion: Negro premium</small></p>
|
||||||
<p>Páginas a color: 100</p>
|
<p id="pResumenPaginasColor" class="mb-0" style="display:none"><small id="resumenPaginasColor">Páginas a color: 100</small></p>
|
||||||
<p>Papel: Blanco Offset 70gr/m^2</p>
|
<p class="mb-3"><small id="resumenPapelInterior">Papel: Blanco Offset 70gr/m²</small></p>
|
||||||
|
|
||||||
<h4>Cubierta</h4>
|
<h5 class="mb-1">Cubierta</h5>
|
||||||
<p>Papel: Blanco Offset 70gr/m^2</p>
|
<p class="mb-0"><small id="resumenPapelCubierta">Papel: Blanco Offset 70gr/m²</small></p>
|
||||||
<p>Impresión: 1 cara</p>
|
<p class="mb-0"><small id="resumenCarasCubierta">Impresión: 1 cara</small></p>
|
||||||
|
<p class="mb-0"><small id="resumenSolapasCubierta">Solapas: 25mm</small></p>
|
||||||
|
<p class="mb-3"><small id="resumenAcabadoCubierta">Acabado: Ninguno</small></p>
|
||||||
|
|
||||||
<h4>Sobrecubierta</h4>
|
<h5 class="mb-1 resumen-sobrecubierta">Sobrecubierta</h5>
|
||||||
<p>Papel: Blanco Offset 70gr/m^2</p>
|
<p class="mb-0 resumen-sobrecubierta"><small id="resumenPapelSobrecubierta">Papel: Blanco Offset 70gr/m<sup>2</sup></small></p>
|
||||||
<p>Impresión: sin impresion</p>
|
<p class="mb-0 resumen-sobrecubierta"><small id="resumenSolapasCubierta">Ancho solapas: 25mm</small></p>
|
||||||
|
<p class="mb-3 resumen-sobrecubierta"><small id="resumenAcabadoCubierta">Acabado: Ninguno</small></p>
|
||||||
|
|
||||||
<h4>Guardas</h4>
|
<h5 class="mb-1 resumen-guardas">Guardas</h5>
|
||||||
<p>Papel: Blanco Offset 70gr/m^2</p>
|
<p class="mb-0 resumen-guardas"><small id="resumenGuardasPapel">Papel: Blanco Offset 70gr/m<sup>2</sup></small></p>
|
||||||
<p>Impresión: 1 cara</p>
|
<p class="mb-3 resumen-guardas"><small id="resumenGuardasCaras">Impresión: 1 cara</small></p>
|
||||||
|
|
||||||
<h4>Extras</h4>
|
<h5 class="mb-1 resumen-extras">Extras</h5>
|
||||||
<p>Retractilado de 5</p>
|
<p class="mb-0 resumen-extras" id="resumenRetractilado1"><small>Retractilado individual</small></p>
|
||||||
|
<p class="mb-0 resumen-extras" id="resumenRetractilado5"><small>Retractilado de 5</small></p>
|
||||||
|
<p class="mb-0 resumen-extras" id="resumenFajaColor"><small>Imprimir faja a color</small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<h6>Coste impresion: 100€</h6>
|
<h4 id="resumenTotal" class="mb-1">Total: 100€</h4>
|
||||||
<h6>Coste impresion (4% IVA): 104€</h6>
|
<h6 id="resumenPrecioU" class="mb-0">10.4€/ud</h6>
|
||||||
<h6>Precio unidad (I.V.A. incl): 10.4€</h6>
|
<h6 id="resumenTotalIVA"class="mb-0">Coste impresion (4% IVA): 104€</h6>
|
||||||
<h6>Coste Envío: 30€</h6>
|
<h6 id="resumenEnvio" class="mb-1">Envío: 30€</h6>
|
||||||
<h6>Total (I.V.A. inc.): 134€</h6>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -33,12 +33,13 @@ function initTiradasDirecciones() {
|
|||||||
let tirada_id = "ud_tiradaPrecio" + i;
|
let tirada_id = "ud_tiradaPrecio" + i;
|
||||||
let total_id = "tot_tiradaPrecio" + i;
|
let total_id = "tot_tiradaPrecio" + i;
|
||||||
let precio_u_id = "pu_tiradaPrecio" + i;
|
let precio_u_id = "pu_tiradaPrecio" + i;
|
||||||
|
let peso = $('#' + id).attr('peso');
|
||||||
|
|
||||||
let html = '';
|
let html = '';
|
||||||
html += '<div class="col-sm-3">';
|
html += '<div class="col-sm-3">';
|
||||||
html += '<div class="form-check custom-option custom-option-basic custom-option-tiradasDirecciones' + (i==1?' checked':'')+ ' ">';
|
html += '<div class="form-check custom-option custom-option-basic custom-option-tiradasDirecciones' + (i==1?' checked':'')+ ' ">';
|
||||||
html += '<label class="form-check-label custom-option-content" for="tiradaEnvios' + i + '">';
|
html += '<label class="form-check-label custom-option-content" for="tiradaEnvios' + i + '">';
|
||||||
html += '<input name="' + id + '" class="form-check-input" type="radio" value="" id="' + id + '">';
|
html += '<input name=env_"' + id + '" peso="' + peso + '" class="form-check-input" type="radio" value="" id="env_' + id + '">';
|
||||||
html += '<span class="custom-option-header">';
|
html += '<span class="custom-option-header">';
|
||||||
html += '<span id="tiradaDireccionesValue' + i + '" class="h6 mb-0">' + $('#' + tirada_id).text().split(' ')[0] + '</span>';
|
html += '<span id="tiradaDireccionesValue' + i + '" class="h6 mb-0">' + $('#' + tirada_id).text().split(' ')[0] + '</span>';
|
||||||
html += '<span class="text-muted">' + $('#' + total_id).text() + '</span>';
|
html += '<span class="text-muted">' + $('#' + total_id).text() + '</span>';
|
||||||
@ -127,11 +128,13 @@ $('#insertarDireccion').on('click', function() {
|
|||||||
if($('#prototipo').is(':checked')) {
|
if($('#prototipo').is(':checked')) {
|
||||||
tirada += 1;
|
tirada += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(total + unidades <= tirada) {
|
if(total + unidades <= tirada) {
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
id: $('#direcciones').val()
|
id: $('#direcciones').val(),
|
||||||
|
peso: $('#env_tiradaPrecio' + number[0]).attr('peso'),
|
||||||
|
unidades: unidades
|
||||||
},
|
},
|
||||||
data = Object.assign(data, window.token_ajax)
|
data = Object.assign(data, window.token_ajax)
|
||||||
|
|
||||||
@ -142,7 +145,7 @@ $('#insertarDireccion').on('click', function() {
|
|||||||
success: function(response) {
|
success: function(response) {
|
||||||
if(response.data.length > 0) {
|
if(response.data.length > 0) {
|
||||||
let html = '';
|
let html = '';
|
||||||
html += '<div id="envioId' + response.data[0].id + '" class="row mb-3">';
|
html += '<div id="envioId' + response.data[0].id + '" p= ' +response.data[0].coste + ' class="row mb-3">';
|
||||||
html += '<div class="col-sm-5 form-check custom-option custom-option-basic checked">';
|
html += '<div class="col-sm-5 form-check custom-option custom-option-basic checked">';
|
||||||
html += '<label class="form-check-label custom-option-content" for="customRadioAddress1">';
|
html += '<label class="form-check-label custom-option-content" for="customRadioAddress1">';
|
||||||
html += '<span class="custom-option-header mb-2">';
|
html += '<span class="custom-option-header mb-2">';
|
||||||
|
|||||||
@ -708,35 +708,32 @@ async function calcularPresupuesto() {
|
|||||||
|
|
||||||
console.log(response);
|
console.log(response);
|
||||||
$('#loader').hide();
|
$('#loader').hide();
|
||||||
if(error){
|
|
||||||
$('#divTiradasPrecio').empty();
|
$('#divTiradasPrecio').empty();
|
||||||
|
|
||||||
}
|
$('#precios').show();
|
||||||
else{
|
|
||||||
$('#precios').show();
|
|
||||||
|
|
||||||
for (i = 0; i < response.tiradas.length; i++) {
|
for (i = 0; i < response.tiradas.length; i++) {
|
||||||
const total = (parseFloat(response.precio_u[i]) * parseInt(response.tiradas[i])).toFixed(2) ;
|
const total = (parseFloat(response.precio_u[i]) * parseInt(response.tiradas[i])).toFixed(2) ;
|
||||||
const label = "tiradaPrecio" + parseInt(i+1);
|
const label = "tiradaPrecio" + parseInt(i+1);
|
||||||
|
|
||||||
let html = '';
|
let html = '';
|
||||||
|
|
||||||
|
|
||||||
html += '<div id="' + label + '" class="list-group" >';
|
html += '<div id="' + label + '" peso="' +response.peso[i]+ '" class="list-group" >';
|
||||||
html += '<a href="javascript:void(0);" class="list-group-item list-group-item-action">';
|
html += '<a href="javascript:void(0);" class="list-group-item list-group-item-action">';
|
||||||
html += '<div class="li-wrapper d-flex justify-content-start align-items-center" >';
|
html += '<div class="li-wrapper d-flex justify-content-start align-items-center" >';
|
||||||
html += '<div class="list-content">';
|
html += '<div class="list-content">';
|
||||||
html += '<h7 id="ud_' + label + '" class="mb-1">' + (response.tiradas[i] + ' ud.') + '</h7>';
|
html += '<h7 id="ud_' + label + '" class="mb-1">' + (response.tiradas[i] + ' ud.') + '</h7>';
|
||||||
html += '<h6 id="tot_' + label + '" class="mb-1">' + ('Total: ' + total + '€') + '</h6>';
|
html += '<h6 id="tot_' + label + '" class="mb-1">' + ('Total: ' + total + '€') + '</h6>';
|
||||||
html += '<h7 id="pu_' + label + '" class="mb-1">' + (response.precio_u[i] + '€/ud') + '</h7>';
|
html += '<h7 id="pu_' + label + '" class="mb-1">' + (response.precio_u[i] + '€/ud') + '</h7>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
html += '</div>'
|
html += '</div>'
|
||||||
html += '</a>';
|
html += '</a>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
$('#divTiradasPrecio').append(html);
|
$('#divTiradasPrecio').append(html);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
error: function (error) {
|
error: function (error) {
|
||||||
$('#loader').hide();
|
$('#loader').hide();
|
||||||
|
|||||||
@ -237,10 +237,16 @@
|
|||||||
submitButton: new FormValidation.plugins.SubmitButton()
|
submitButton: new FormValidation.plugins.SubmitButton()
|
||||||
}
|
}
|
||||||
}).on('core.form.valid', function () {
|
}).on('core.form.valid', function () {
|
||||||
if(validarEnvio())
|
if(validarEnvio()){
|
||||||
|
generarResumen();
|
||||||
validationStepper.next();
|
validationStepper.next();
|
||||||
|
}
|
||||||
else{
|
else{
|
||||||
$('#errorDirecciones').text('El número de unidades supera la tirada seleccionada.');
|
let text = "El número de unidades enviadas no coincie con la tirada seleccionada.";
|
||||||
|
if($('#prototipo').is(':checked')) {
|
||||||
|
text += "<br>(Tenga en cuenta que se ha seleccionado la opción de prototipo)";
|
||||||
|
}
|
||||||
|
$('#errorDirecciones').text(text);
|
||||||
$('#errorDirecciones').show();
|
$('#errorDirecciones').show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -303,6 +309,10 @@
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
|
validationStepper.previous();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
for (let i = 0; i < 4; i++) {
|
for (let i = 0; i < 4; i++) {
|
||||||
let id = "tiradaPrecio" + i;
|
let id = "tiradaPrecio" + i;
|
||||||
if ($('#' + id).length > 0) {
|
if ($('#' + id).length > 0) {
|
||||||
@ -312,10 +322,6 @@
|
|||||||
validationStepper.previous();
|
validationStepper.previous();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
|
||||||
validationStepper.previous();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
validationStepper.previous();
|
validationStepper.previous();
|
||||||
break;
|
break;
|
||||||
|
|||||||
107
ci4/app/Views/themes/vuexy/form/presupuestos/cliente/resumen.js
Normal file
107
ci4/app/Views/themes/vuexy/form/presupuestos/cliente/resumen.js
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
function generarResumen(){
|
||||||
|
$('#tipoLibro').text($('#tituloDisenioLibro').text() + ' tapa ' + (($('#tapaBlandaInnerDiv').hasClass('checked'))?'blanda':'dura'));
|
||||||
|
$('#resumenTamanio').text('Dimensiones: ' + getDimensionLibro().ancho + 'x' + getDimensionLibro().alto + 'mm');
|
||||||
|
$('#resumenPaginas').text('Páginas: '+ $('#paginas').val() + ' páginas');
|
||||||
|
|
||||||
|
const seleccion = $('.custom-option-tiradasDirecciones.checked');
|
||||||
|
let tirada = 0;
|
||||||
|
if(seleccion.length != 0) {
|
||||||
|
|
||||||
|
const element_tirada =($(seleccion[0]).find('label input')[0]);
|
||||||
|
const number = element_tirada.id.match(/\d+$/);
|
||||||
|
if (number.length != 0) {
|
||||||
|
tirada = parseInt($('#tiradaDireccionesValue' + number[0]).text());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$('#resumenTirada').text('Tirada: '+ tirada + ' unidades');
|
||||||
|
|
||||||
|
$('#resumenPrototipo').text('Prototipo: ' + (($('#prototipo').is(':checked'))?'Sí':'No'));
|
||||||
|
$('#resumenFerro').text('Ferro: ' + (($('#ferro').is(':checked'))?'Sí':'No'));
|
||||||
|
|
||||||
|
$('#tipoImpresion').text('Impresión: ' +
|
||||||
|
($('#colorNegroDiv').hasClass('checked')?'Negro ':'Color ') +
|
||||||
|
($('#calidadEstandarDiv').hasClass('checked')?'Estándar': 'Premium'));
|
||||||
|
if($('#colorNegroDiv').hasClass('checked')){
|
||||||
|
$('#pResumenPaginasColor').hide();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$('#pResumenPaginasColor').show();
|
||||||
|
$('#resumenPaginasColor').text($('#paginasColor').val());
|
||||||
|
}
|
||||||
|
$('#resumenPapelInterior').text($('#papelInterior option:selected').text().trim() + ' ' +
|
||||||
|
$('#gramajeInterior option:selected').text() + 'gr/m²');
|
||||||
|
|
||||||
|
let papelCubierta = $('#papelCubierta option:selected').text().trim() + ' ' +
|
||||||
|
$('#gramajeCubierta option:selected').text();
|
||||||
|
papelCubierta += 'gr/m<sup>2</sup>';
|
||||||
|
$('#resumenPapelCubierta').text(papelCubierta);
|
||||||
|
$('#resumenCarasCubierta').text('Impresión: ' + $('#carasCubierta option:selected').text())
|
||||||
|
$('#resumenAcabadoCubierta').text('Acabado: ' + $('#acabadosCubierta option:selected').text())
|
||||||
|
if ($('#solapasCubierta').is(':checked')) {
|
||||||
|
$('#resumenSolapasCubierta').text('Solapas: ' + $('#anchoSolapasCubierta').val())
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$('#resumenSolapasCubierta').text('Solapas: No')
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($('.enable-sobrecubierta').is(':visible')) {
|
||||||
|
$(".resumen-sobrecubierta").show();
|
||||||
|
$('#resumenPapelCubierta').text($('#papelSobrecubierta option:selected').text().trim() + ' ' +
|
||||||
|
$('#gramajeSobrecubierta option:selected').text() + 'gr/m²');
|
||||||
|
$('#resumenAcabadoSobrecubierta').text('Acabado: ' + $('#acabadosSobrecubierta option:selected').text())
|
||||||
|
$('#resumenSolapasSobrecubierta').text('Solapas: ' + $('#anchoSolapasSobrecubierta').val())
|
||||||
|
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$(".resumen-sobrecubierta").hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($('.guardas').is(':visible')) {
|
||||||
|
$(".resumen-guardas").show();
|
||||||
|
$('#resumenGuardasPapel').text($('#papelGuardas option:selected').text().trim() + ' ' + '170gr/m²');
|
||||||
|
$('#resumenGuardasCaras').text('Impresión: ' + $('#impresionGuardas option:selected').text())
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$(".resumen-guardas").hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if($('#retractilado').is(':checked') || $('#retractilado5').is(':checked') || $('#fajaColor').is(':checked')){
|
||||||
|
|
||||||
|
$('.resumen-extras').show();
|
||||||
|
$('#retractilado').is(':checked')?$('#resumenRetractilado1').show():$('#resumenRetractilado1').hide();
|
||||||
|
$('#retractilado5').is(':checked')?$('#resumenRetractilado5').show():$('#resumenRetractilado5').hide();
|
||||||
|
$('#fajaColor').is(':checked')?$('#resumenFajaColor').show():$('#resumenFajaColor').hide();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$('.resumen-extras').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 1; i <= 4; i++) {
|
||||||
|
let id = "tiradaPrecio" + i;
|
||||||
|
if ($('#' + id).length > 0) {
|
||||||
|
|
||||||
|
let tirada_id = "ud_tiradaPrecio" + i;
|
||||||
|
if(parseInt($('#' + tirada_id).text().replace(' ud.', '')) != tirada){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
let total_id = "tot_tiradaPrecio" + i;
|
||||||
|
let precio_u_id = "pu_tiradaPrecio" + i;
|
||||||
|
|
||||||
|
$('#resumenTotal').text($('#' + total_id).text());
|
||||||
|
$('#resumenPrecioU').text($('#' + precio_u_id).text());
|
||||||
|
let total = parseFloat($('#' + total_id).text().replace('€', '').replace('Total: ', ''));
|
||||||
|
let total_iva = 0.0;
|
||||||
|
if($('#ivaReducido').val() == '1'){
|
||||||
|
total_iva = total * 1.04;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
total_iva = total * 1.21;
|
||||||
|
}
|
||||||
|
$('#resumenTotalIVA').text('Total (I.V.A. ' + (($('#ivaReducido').val() == '1')?'4':'21') + '%): ' + total_iva.toFixed(2) + '€');
|
||||||
|
$('resumenEnvio').text('Envío: ' + '30' + '€');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -84,7 +84,7 @@
|
|||||||
<div class="row g-3">
|
<div class="row g-3">
|
||||||
|
|
||||||
<?= view("themes/vuexy/form/presupuestos/cliente/_tipoLibroItems") ?>
|
<?= view("themes/vuexy/form/presupuestos/cliente/_tipoLibroItems") ?>
|
||||||
|
|
||||||
<div class="col-12 d-flex justify-content-between mt-4">
|
<div class="col-12 d-flex justify-content-between mt-4">
|
||||||
<button class="btn btn-label-secondary btn-prev waves-effect">
|
<button class="btn btn-label-secondary btn-prev waves-effect">
|
||||||
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
|
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
|
||||||
@ -144,18 +144,18 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 d-flex justify-content-between mt-4">
|
<div class="col-12 d-flex justify-content-between mt-4">
|
||||||
<div class="col-6 flex-row">
|
<div class="col-6 d-flex flex-row">
|
||||||
<button class="btn btn-label-secondary btn-prev waves-effect">
|
<button class="btn btn-label-secondary btn-prev waves-effect">
|
||||||
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
|
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
|
||||||
<span class="align-middle d-sm-inline-block d-none">Anterior</span>
|
<span class="align-middle d-sm-inline-block d-none">Anterior</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 flex-row-reverse">
|
<div class="col-6 d-flex flex-row-reverse">
|
||||||
<button class="btn btn-primary btn-submit waves-effect waves-light">
|
<button class="btn btn-primary btn-submit waves-effect waves-light ml-2">
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Guardar</span>
|
<span class="align-middle d-sm-inline-block d-none me-sm-1">Guardar</span>
|
||||||
<i class="ti ti-arrow-right ti-xs"></i>
|
<i class="ti ti-arrow-right ti-xs"></i>
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-success btn-submit btn-next waves-effect waves-light">
|
<button class="btn btn-success btn-submit btn-next mx-2 waves-effect waves-light">
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Confirmar</span><i class="ti ti-check ti-xs"></i>
|
<span class="align-middle d-sm-inline-block d-none me-sm-1">Confirmar</span><i class="ti ti-check ti-xs"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@ -166,12 +166,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div><!--//.col -->
|
</div><!--//.col -->
|
||||||
<div class="pt-4">
|
|
||||||
<input type="submit" class="btn btn-primary float-start me-sm-3 me-1" name="save" id="saveForm" value="<?= lang("Basic.global.Save") ?>" />
|
|
||||||
</div>
|
|
||||||
</div><!--//.row -->
|
</div><!--//.row -->
|
||||||
<?= view("themes/_commonPartialsBs/_modalConfirmDialog") ?>
|
<?= view("themes/_commonPartialsBs/_modalConfirmDialog") ?>
|
||||||
<?= view("themes/_commonPartialsBs/_modalMessageDialog") ?>
|
<?= view("themes/_commonPartialsBs/_modalMessageDialog") ?>
|
||||||
@ -243,4 +239,5 @@ initDisenioLibro();
|
|||||||
<script src="<?= site_url('js_loader/presupuestoClienteTipoLibro_js') ?>"></script>
|
<script src="<?= site_url('js_loader/presupuestoClienteTipoLibro_js') ?>"></script>
|
||||||
<script src="<?= site_url('js_loader/presupuestoClienteDisenioLibro_js') ?>"></script>
|
<script src="<?= site_url('js_loader/presupuestoClienteDisenioLibro_js') ?>"></script>
|
||||||
<script src="<?= site_url('js_loader/presupuestoClienteDirecciones_js') ?>"></script>
|
<script src="<?= site_url('js_loader/presupuestoClienteDirecciones_js') ?>"></script>
|
||||||
|
<script src="<?= site_url('js_loader/presupuestoClienteResumen_js') ?>"></script>
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
25497
xdebug.log
25497
xdebug.log
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user