mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
guardar terminado
This commit is contained in:
@ -577,7 +577,7 @@ $routes->group('presupuestocliente', ['namespace' => 'App\Controllers\Presupuest
|
|||||||
$routes->post('presupuesto', 'Presupuestocliente::presupuesto', ['as' => 'presupuestoCliente']);
|
$routes->post('presupuesto', 'Presupuestocliente::presupuesto', ['as' => 'presupuestoCliente']);
|
||||||
$routes->post('getDireccionesCliente', 'Presupuestocliente::getDireccionesCliente', ['as' => 'getDirecciones']);
|
$routes->post('getDireccionesCliente', 'Presupuestocliente::getDireccionesCliente', ['as' => 'getDirecciones']);
|
||||||
$routes->post('getNuevaDireccion', 'Presupuestocliente::getNuevaDireccion', ['as' => 'nuevaDireccion']);
|
$routes->post('getNuevaDireccion', 'Presupuestocliente::getNuevaDireccion', ['as' => 'nuevaDireccion']);
|
||||||
$routes->post('guardarPresupuesto', 'Presupuestocliente::guardarPresupuesto', ['as' => 'guardarPresupuesto']);
|
$routes->post('guardar', 'Presupuestocliente::guardar', ['as' => 'guardar']);
|
||||||
$routes->post('duplicarPresupuesto', 'Presupuestocliente::duplicarPresupuesto', ['as' => 'duplicarPresupuesto']);
|
$routes->post('duplicarPresupuesto', 'Presupuestocliente::duplicarPresupuesto', ['as' => 'duplicarPresupuesto']);
|
||||||
$routes->post('calcular', 'Presupuestocliente::calcular', ['as' => 'calcularPresupuesto']);
|
$routes->post('calcular', 'Presupuestocliente::calcular', ['as' => 'calcularPresupuesto']);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -89,47 +89,27 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
public function add()
|
public function add()
|
||||||
{
|
{
|
||||||
|
$this->viewData['breadcrumb'] = [
|
||||||
|
['title' => lang("App.menu_presupuestos"), 'route' => "javascript:void(0);", 'active' => false],
|
||||||
|
['title' => "Listado", 'route' => site_url('presupuestocliente/list'), 'active' => true]
|
||||||
|
];
|
||||||
|
|
||||||
// Se obtiene el cliente ID a partir del usuario de la sesion
|
// Se obtiene el cliente ID a partir del usuario de la sesion
|
||||||
$model_user = model('App\Models\Usuarios\UserModel');
|
$model_user = model('App\Models\Usuarios\UserModel');
|
||||||
$user = $model_user->find(auth()->user()->id);
|
$user = $model_user->find(auth()->user()->id);
|
||||||
$clienteId = $user->cliente_id;
|
$clienteId = $user->cliente_id;
|
||||||
|
$POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD();
|
||||||
$presupuestoEntity = isset($sanitizedData) ? new PresupuestoEntity($sanitizedData) : new PresupuestoEntity();
|
|
||||||
$presupuestoEntity->clienteId = $clienteId;
|
$this->viewData['breadcrumb'] = [
|
||||||
|
['title' => lang("App.menu_presupuestos"), 'route' => site_url('presupuestocliente/list'), 'active' => false],
|
||||||
$datosPresupuesto = (object)array();
|
['title' => "Añadir Presupuesto", 'route' => "javascript:void(0);", 'active' => true]
|
||||||
$datosPresupuesto->POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD();
|
];
|
||||||
$datosPresupuesto->paisList = model('App\Models\Configuracion\PaisModel')->getAllForMenu('id, nombre', 'nombre', true);
|
|
||||||
$datosPresupuesto->papelFormatoList = $this->getPapelFormatoListItems($presupuestoEntity->papel_formato_id ?? null);
|
|
||||||
|
|
||||||
$datosPresupuesto->papelInteriorNegro = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('negro', false, false, false, false, true);
|
|
||||||
$datosPresupuesto->papelInteriorNegroHq = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('negrohq', false, false, false, false, true);
|
|
||||||
$datosPresupuesto->papelInteriorColor = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('color', false, false, false, false, true);
|
|
||||||
$datosPresupuesto->papelInteriorColorHq = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('colorhq', false, false, false, false, true);
|
|
||||||
|
|
||||||
$datosPresupuesto->papelCubierta = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('colorhq', true, false, false, false, true);
|
|
||||||
$datosPresupuesto->papelSobrecubierta = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('colorhq', false, true, false, false, true);
|
|
||||||
$datosPresupuesto->papelGuardas = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('colorhq', false, false, false, true, false);
|
|
||||||
|
|
||||||
$datosPresupuesto->acabadosCubierta = $this->getAcabadosCubierta();
|
|
||||||
$datosPresupuesto->acabadosSobrecubierta = $this->getAcabadosSobrecubierta();
|
|
||||||
|
|
||||||
$datosPresupuesto->tipo_libro = "";
|
|
||||||
$datosPresupuesto->color_impresion = 'negro';
|
|
||||||
$datosPresupuesto->tapa = 'blanda';
|
|
||||||
|
|
||||||
$datosPresupuesto->clienteList = $this->getClienteListItems($clienteId ?? null);
|
|
||||||
$datosPresupuesto->paginasCuadernillo = [32, 28, 24, 20, 16];
|
|
||||||
$presupuestoEntity->estado_id = 1;
|
|
||||||
$presupuestoEntity->paginas_por_cuadernillo = 32;
|
|
||||||
|
|
||||||
$this->viewData['formAction'] = 'add';
|
$this->viewData['formAction'] = 'add';
|
||||||
|
|
||||||
$this->viewData['paisList'] = $this->getPaisListItems();
|
|
||||||
|
|
||||||
$this->viewData['presupuestoEntity'] = $presupuestoEntity;
|
|
||||||
$this->viewData['datosPresupuesto'] = $datosPresupuesto;
|
|
||||||
$this->viewData['clienteId'] = $clienteId;
|
$this->viewData['clienteId'] = $clienteId;
|
||||||
|
$this->viewData['POD'] = $POD;
|
||||||
|
|
||||||
$this->viewData['boxTitle'] = lang('Basic.global.addNew') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.addNewSuffix');
|
$this->viewData['boxTitle'] = lang('Basic.global.addNew') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.addNewSuffix');
|
||||||
|
|
||||||
@ -139,13 +119,13 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
public function edit($requestedId = null)
|
public function edit($requestedId = null)
|
||||||
{
|
{
|
||||||
if ($requestedId == null) :
|
if ($requestedId == null):
|
||||||
return $this->redirect2listView();
|
return $this->redirect2listView();
|
||||||
endif;
|
endif;
|
||||||
$id = filter_var($requestedId, FILTER_SANITIZE_URL);
|
$id = filter_var($requestedId, FILTER_SANITIZE_URL);
|
||||||
$presupuestoEntity = $this->model->find($id);
|
$presupuestoEntity = $this->model->find($id);
|
||||||
|
|
||||||
if ($presupuestoEntity == false) :
|
if ($presupuestoEntity == false):
|
||||||
$message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('Presupuestos.presupuesto')), $id]);
|
$message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('Presupuestos.presupuesto')), $id]);
|
||||||
return $this->redirect2listView('sweet-error', $message);
|
return $this->redirect2listView('sweet-error', $message);
|
||||||
endif;
|
endif;
|
||||||
@ -155,7 +135,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$user = $model_user->find(auth()->user()->id);
|
$user = $model_user->find(auth()->user()->id);
|
||||||
$clienteId = $user->cliente_id;
|
$clienteId = $user->cliente_id;
|
||||||
|
|
||||||
$datosPresupuesto = (object)array();
|
$datosPresupuesto = (object) array();
|
||||||
$datosPresupuesto->POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD();
|
$datosPresupuesto->POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD();
|
||||||
$datosPresupuesto->paisList = model('App\Models\Configuracion\PaisModel')->getAllForMenu('id, nombre', 'nombre', true);
|
$datosPresupuesto->paisList = model('App\Models\Configuracion\PaisModel')->getAllForMenu('id, nombre', 'nombre', true);
|
||||||
$datosPresupuesto->papelFormatoList = $this->getPapelFormatoListItems($presupuestoEntity->papel_formato_id ?? null);
|
$datosPresupuesto->papelFormatoList = $this->getPapelFormatoListItems($presupuestoEntity->papel_formato_id ?? null);
|
||||||
@ -198,8 +178,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
$this->viewData['presupuestoEntity'] = $presupuestoEntity;
|
$this->viewData['presupuestoEntity'] = $presupuestoEntity;
|
||||||
$this->viewData['datosPresupuesto'] = $datosPresupuesto;
|
$this->viewData['datosPresupuesto'] = $datosPresupuesto;
|
||||||
$this->viewData['clienteId'] = $presupuestoEntity->cliente_id; // En el caso del edit, se mantiene el clienteId del presupuesto
|
|
||||||
|
$this->viewData['clienteId'] = $clienteId;
|
||||||
|
$this->viewData['POD'] = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD();
|
||||||
// Si se ha llamado a esta funcion porque se ha duplicado el presupuesto
|
// Si se ha llamado a esta funcion porque se ha duplicado el presupuesto
|
||||||
// se actualiza la bbdd para que sólo ejecute algunas funciones una vez
|
// se actualiza la bbdd para que sólo ejecute algunas funciones una vez
|
||||||
if ($presupuestoEntity->is_duplicado) {
|
if ($presupuestoEntity->is_duplicado) {
|
||||||
@ -237,7 +218,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$datetime = (new \CodeIgniter\I18n\Time("now"));
|
$datetime = (new \CodeIgniter\I18n\Time("now"));
|
||||||
$rawResult = $this->model->where('id', $id)
|
$rawResult = $this->model->where('id', $id)
|
||||||
->set([
|
->set([
|
||||||
'deleted_at' => $datetime->format('Y-m-d H:i:s'),
|
'deleted_at' => $datetime->format('Y-m-d H:i:s'),
|
||||||
'is_deleted' => $this->delete_flag
|
'is_deleted' => $this->delete_flag
|
||||||
])
|
])
|
||||||
->update();
|
->update();
|
||||||
@ -337,13 +318,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
$tipo_impresion_id = $this->getTipoImpresion($tipo, $cubierta['tipoCubierta']);
|
$tipo_impresion_id = $this->getTipoImpresion($tipo, $cubierta['tipoCubierta']);
|
||||||
|
|
||||||
if($papelInteriorDiferente){
|
if ($papelInteriorDiferente) {
|
||||||
$papel['negro'] = $modelPapelGenerico->getIdFromCode($interior['papelInterior']['negro']);
|
$papel['negro'] = $modelPapelGenerico->getIdFromCode($interior['papelInterior']['negro']);
|
||||||
$papel['color'] = $modelPapelGenerico->getIdFromCode($interior['papelInterior']['color']);
|
$papel['color'] = $modelPapelGenerico->getIdFromCode($interior['papelInterior']['color']);
|
||||||
$gramaje['negro'] = intval($interior['gramajeInterior']['negro']);
|
$gramaje['negro'] = intval($interior['gramajeInterior']['negro']);
|
||||||
$gramaje['color'] = intval($interior['gramajeInterior']['color']);
|
$gramaje['color'] = intval($interior['gramajeInterior']['color']);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
$papel = $modelPapelGenerico->getIdFromCode($interior['papelInterior']);
|
$papel = $modelPapelGenerico->getIdFromCode($interior['papelInterior']);
|
||||||
$gramaje = intval($interior['gramajeInterior']);
|
$gramaje = intval($interior['gramajeInterior']);
|
||||||
}
|
}
|
||||||
@ -361,9 +341,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
// Cubierta
|
// Cubierta
|
||||||
$cubierta = [
|
$cubierta = [
|
||||||
'papel_generico_cubierta' => $modelPapelGenerico->getIdFromCode($cubierta['papelCubierta']),
|
'papel_generico_cubierta' => $modelPapelGenerico->getIdFromCode($cubierta['papelCubierta']),
|
||||||
'gramajeCubierta' => intval($cubierta['gramajeCubierta']),
|
'gramajeCubierta' => intval($cubierta['gramajeCubierta']),
|
||||||
'carasCubierta' => intval($cubierta['carasImpresion'] ?? 0),
|
'carasCubierta' => intval($cubierta['carasImpresion'] ?? 0),
|
||||||
'solapasCubierta' => intval($cubierta['solapas'] ?? 0),
|
'solapasCubierta' => intval($cubierta['solapas'] ?? 0),
|
||||||
'acabadosCubierta' => $cubierta['acabados'] ?? 0,
|
'acabadosCubierta' => $cubierta['acabados'] ?? 0,
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -371,8 +351,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($sobrecubierta != "false" && $sobrecubierta != null) {
|
if ($sobrecubierta != "false" && $sobrecubierta != null) {
|
||||||
$sobrecubierta = [
|
$sobrecubierta = [
|
||||||
'papel' => $modelPapelGenerico->getIdFromCode($sobrecubierta['papel']),
|
'papel' => $modelPapelGenerico->getIdFromCode($sobrecubierta['papel']),
|
||||||
'gramaje' => intval($sobrecubierta['gramaje']),
|
'gramaje' => intval($sobrecubierta['gramaje']),
|
||||||
'solapas' => intval($sobrecubierta['solapas'] ?? 0),
|
'solapas' => intval($sobrecubierta['solapas'] ?? 0),
|
||||||
'acabados' => $sobrecubierta['plastificado'] ?? 0,
|
'acabados' => $sobrecubierta['plastificado'] ?? 0,
|
||||||
];
|
];
|
||||||
} else
|
} else
|
||||||
@ -382,8 +362,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($guardas != "false" && $guardas != null) {
|
if ($guardas != "false" && $guardas != null) {
|
||||||
$datos_guardas = [
|
$datos_guardas = [
|
||||||
'papel' => $modelPapelGenerico->getIdFromCode($guardas['papel']),
|
'papel' => $modelPapelGenerico->getIdFromCode($guardas['papel']),
|
||||||
'gramaje' => intval($guardas['gramaje']),
|
'gramaje' => intval($guardas['gramaje']),
|
||||||
'caras' => intval($guardas['guardasImpresas']),
|
'caras' => intval($guardas['guardasImpresas']),
|
||||||
];
|
];
|
||||||
} else
|
} else
|
||||||
$datos_guardas = false;
|
$datos_guardas = false;
|
||||||
@ -406,40 +386,42 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
);
|
);
|
||||||
|
|
||||||
$return_data = $this->calcular_presupuesto($datos_presupuesto, 0, false); //TRUE FOR DEBUG
|
$return_data = $this->calcular_presupuesto($datos_presupuesto, 0, false); //TRUE FOR DEBUG
|
||||||
if(array_key_exists('exception', $return_data)){
|
if (array_key_exists('exception', $return_data)) {
|
||||||
return $this->failServerError(
|
return $this->failServerError(
|
||||||
$return_data['exception'] . ' - ' .
|
$return_data['exception'] . ' - ' .
|
||||||
$return_data['file'] . ' - ' . $return_data['line']);
|
$return_data['file'] . ' - ' . $return_data['line']
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if(count($direcciones) > 1){
|
|
||||||
|
|
||||||
for ($i=0; $i<count($tirada); $i++){
|
if (count($direcciones) > 1) {
|
||||||
|
|
||||||
|
for ($i = 0; $i < count($tirada); $i++) {
|
||||||
|
|
||||||
$coste_envio = 0.0;
|
$coste_envio = 0.0;
|
||||||
foreach($direcciones as $direccion){
|
foreach ($direcciones as $direccion) {
|
||||||
$coste_envio += $this->getCosteEnvio(
|
$coste_envio += $this->getCosteEnvio(
|
||||||
$direccion['id'],
|
$direccion['id'],
|
||||||
$return_data['peso'][$i],
|
$return_data['peso'][$i],
|
||||||
$direccion['unidades'],
|
$direccion['unidades'],
|
||||||
$direccion['enPallets'] == 'true'?1:0)[0]->coste;
|
$direccion['entregaPalets'] == 'true' ? 1 : 0
|
||||||
|
)[0]->coste;
|
||||||
}
|
}
|
||||||
$return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio, 4);
|
$return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio / $tirada[$i], 4);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
|
for ($i = 0; $i < count($tirada); $i++) {
|
||||||
for ($i=0; $i<count($tirada); $i++){
|
|
||||||
$coste_envio = 0.0;
|
$coste_envio = 0.0;
|
||||||
$coste_envio += $this->getCosteEnvio(null, $return_data['peso'][$i], $tirada[$i], false)[0]->coste;
|
$coste_envio += $this->getCosteEnvio(null, $return_data['peso'][$i], $tirada[$i], false)[0]->coste;
|
||||||
$return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio, 4);
|
$return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio / $tirada[$i], 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->respond($return_data);
|
return $this->respond($return_data);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return $this->failServerError($e->getMessage());
|
return $this->failServerError($e->getMessage() );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return $this->failUnauthorized('Invalid request', 403);
|
return $this->failUnauthorized('Invalid request', 403);
|
||||||
@ -468,7 +450,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function getNuevaDireccion()
|
public function getNuevaDireccion()
|
||||||
{
|
{
|
||||||
@ -591,60 +573,97 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function guardarPresupuesto()
|
public function guardar()
|
||||||
{
|
{
|
||||||
if ($this->request->isAJAX()) {
|
if ($this->request->isAJAX()) {
|
||||||
|
|
||||||
|
$modelPapelGenerico = new PapelGenericoModel();
|
||||||
|
|
||||||
$reqData = $this->request->getPost();
|
$reqData = $this->request->getPost();
|
||||||
|
|
||||||
$newTokenHash = csrf_hash();
|
|
||||||
$csrfTokenName = csrf_token();
|
|
||||||
|
|
||||||
$confirmar = $reqData['confirmar'] ?? 0;
|
|
||||||
|
|
||||||
$id = $reqData['id'] ?? 0;
|
$id = $reqData['id'] ?? 0;
|
||||||
$id = intval($id);
|
$id = intval($id);
|
||||||
|
|
||||||
$datosCabecera = $reqData['datos_cabecera'] ?? [];
|
$datosCabecera = $reqData['datosCabecera'] ?? [];
|
||||||
|
|
||||||
$tirada = $reqData['datos_libro']['tirada'] ?? 0;
|
$confirmar = $reqData['confirmar'] ?? 0;
|
||||||
$selected_tirada = $reqData['tirada'] ?? 0;
|
|
||||||
$peso_libro = $reqData['peso'] ?? 0;
|
|
||||||
$tamanio = $reqData['datos_libro']['tamanio'];
|
|
||||||
$tipo_impresion_id = $this->getTipoImpresion($reqData['datos_libro']['tipo'], $reqData['datos_libro']['tapa']);
|
|
||||||
$cliente_id = $reqData['datos_libro']['clienteId'] ?? -1;
|
|
||||||
$isColor = intval($reqData['datos_libro']['isColor']) ?? 0;
|
|
||||||
$isHq = intval($reqData['datos_libro']['isHq']) ?? 0;
|
|
||||||
$paginasCuadernillo = $reqData['datos_libro']['paginasCuadernillo'] ?? null;
|
|
||||||
|
|
||||||
|
$cliente_id = $reqData['clienteId'] ?? -1;
|
||||||
|
|
||||||
|
$tirada = $reqData['tirada'] ?? 0;
|
||||||
|
$selected_tirada = $reqData['selectedTirada'] ?? 0;
|
||||||
|
$tamanio = $reqData['tamanio'];
|
||||||
|
$paginas = $reqData['paginas'] ?? 0;
|
||||||
|
$paginas_color = $reqData['paginasColor'] ?? 0;
|
||||||
|
$tipo = $reqData['tipo'];
|
||||||
|
|
||||||
|
$paginasCuadernillo = $reqData['paginasCuadernillo'] ?? null;
|
||||||
|
$papelInteriorDiferente = intval($reqData['papelInteriorDiferente']) ?? null;
|
||||||
|
|
||||||
|
$isColor = intval($reqData['isColor']) ?? 0;
|
||||||
|
$isHq = intval($reqData['isHq']) ?? 0;
|
||||||
|
|
||||||
|
$interior = $reqData['interior'] ?? [];
|
||||||
|
$cubierta = $reqData['cubierta'] ?? [];
|
||||||
|
$sobrecubierta = $reqData['sobrecubierta'] ?? [];
|
||||||
|
$guardas = $reqData['guardas'] ?? [];
|
||||||
|
$faja = $reqData['faja'] ?? [];
|
||||||
|
$excluirRotativa = $reqData['excluirRotativa'] ?? 0;
|
||||||
|
$ivaReducido = intval($reqData['ivaReducido']) ?? 0;
|
||||||
|
|
||||||
|
$direcciones = $reqData['direcciones'] ?? [];
|
||||||
|
|
||||||
|
$tipo_impresion_id = $this->getTipoImpresion($tipo, $cubierta['tipoCubierta']);
|
||||||
|
|
||||||
|
if ($papelInteriorDiferente) {
|
||||||
|
$papel['negro'] = $modelPapelGenerico->getIdFromCode($interior['papelInterior']['negro']);
|
||||||
|
$papel['color'] = $modelPapelGenerico->getIdFromCode($interior['papelInterior']['color']);
|
||||||
|
$gramaje['negro'] = intval($interior['gramajeInterior']['negro']);
|
||||||
|
$gramaje['color'] = intval($interior['gramajeInterior']['color']);
|
||||||
|
} else {
|
||||||
|
$papel = $modelPapelGenerico->getIdFromCode($interior['papelInterior']);
|
||||||
|
$gramaje = intval($interior['gramajeInterior']);
|
||||||
|
}
|
||||||
// Interior
|
// Interior
|
||||||
$papel_generico = [
|
$interior = [
|
||||||
'id' => $reqData['datos_libro']['papelInterior'] ?? 0,
|
'papel_generico' => $papel,
|
||||||
'nombre' => $reqData['datos_libro']['papelInteriorNombre'] ?? "",
|
'gramaje' => $gramaje,
|
||||||
|
'excluirRotativa' => $excluirRotativa == "false" ? false : true,
|
||||||
|
'paginas' => $paginas,
|
||||||
|
'paginas_color' => $paginas_color,
|
||||||
|
'papelInteriorDiferente' => $papelInteriorDiferente
|
||||||
];
|
];
|
||||||
$gramaje = $reqData['datos_libro']['gramajeInterior'] ?? 0;
|
|
||||||
$excluirRotativa = $reqData['datos_libro']['excluirRotativa'] ?? 0;
|
|
||||||
$paginas = intval($reqData['datos_libro']['paginas']) ?? 0;
|
|
||||||
$paginas_color = intval($reqData['datos_libro']['paginasColor']) ?? 0;
|
|
||||||
|
|
||||||
// Cubierta
|
// Cubierta
|
||||||
$papel_generico_cubierta = [
|
$cubierta = [
|
||||||
'id' => $reqData['datos_libro']['papelCubierta'] ?? 0,
|
'papel_generico_cubierta' => $modelPapelGenerico->getIdFromCode($cubierta['papelCubierta']),
|
||||||
'nombre' => $reqData['datos_libro']['papelCubiertaNombre'] ?? "",
|
'gramajeCubierta' => intval($cubierta['gramajeCubierta']),
|
||||||
|
'carasCubierta' => intval($cubierta['carasImpresion'] ?? 0),
|
||||||
|
'solapasCubierta' => intval($cubierta['solapas'] ?? 0),
|
||||||
|
'acabadosCubierta' => $cubierta['acabados'] ?? 0,
|
||||||
];
|
];
|
||||||
$gramajeCubierta = $reqData['datos_libro']['gramajeCubierta'] ?? 0;
|
|
||||||
$carasCubierta = intval($reqData['datos_libro']['carasCubierta'] ?? 0);
|
|
||||||
$solapasCubierta = intval($reqData['datos_libro']['solapasCubierta'] ?? 0);
|
|
||||||
$acabadoCubierta = $reqData['datos_libro']['acabadoCubierta'] ?? 0;
|
|
||||||
|
|
||||||
// Sobrecubierta
|
// Sobrecubierta
|
||||||
$sobreCubierta = $reqData['datos_libro']["sobrecubierta"] ?? null;
|
if ($sobrecubierta != "false" && $sobrecubierta != null) {
|
||||||
|
$sobrecubierta = [
|
||||||
|
'papel' => $modelPapelGenerico->getIdFromCode($sobrecubierta['papel']),
|
||||||
|
'gramaje' => intval($sobrecubierta['gramaje']),
|
||||||
|
'solapas' => intval($sobrecubierta['solapas'] ?? 0),
|
||||||
|
'acabados' => $sobrecubierta['plastificado'] ?? 0,
|
||||||
|
];
|
||||||
|
} else
|
||||||
|
$sobrecubierta = false;
|
||||||
|
|
||||||
// Guardas
|
// Guardas
|
||||||
$datos_guardas = $reqData['datos_libro']['guardas'] ?? 0;
|
if ($guardas != "false" && $guardas != null) {
|
||||||
|
$datos_guardas = [
|
||||||
$servicios = $reqData['datos_libro']['servicios'] ?? [];
|
'papel' => $modelPapelGenerico->getIdFromCode($guardas['papel']),
|
||||||
$iva_reducido = $reqData['iva_reducido'];
|
'gramaje' => intval($guardas['gramaje']),
|
||||||
|
'caras' => intval($guardas['guardasImpresas']),
|
||||||
|
];
|
||||||
|
} else
|
||||||
|
$datos_guardas = false;
|
||||||
|
|
||||||
$datos_presupuesto = array(
|
$datos_presupuesto = array(
|
||||||
'tirada' => $tirada,
|
'tirada' => $tirada,
|
||||||
@ -655,23 +674,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
'isHq' => $isHq,
|
'isHq' => $isHq,
|
||||||
'paginasCuadernillo' => $paginasCuadernillo,
|
'paginasCuadernillo' => $paginasCuadernillo,
|
||||||
|
|
||||||
'interior' => array(
|
'interior' => $interior,
|
||||||
'papel_generico' => $papel_generico,
|
'cubierta' => $cubierta,
|
||||||
'gramaje' => $gramaje,
|
'sobrecubierta' => $sobrecubierta,
|
||||||
'excluirRotativa' => $excluirRotativa,
|
|
||||||
'paginas' => $paginas,
|
|
||||||
'paginas_color' => $paginas_color,
|
|
||||||
),
|
|
||||||
'cubierta' => array(
|
|
||||||
'papel_generico_cubierta' => $papel_generico_cubierta,
|
|
||||||
'gramajeCubierta' => $gramajeCubierta,
|
|
||||||
'carasCubierta' => $carasCubierta,
|
|
||||||
'solapasCubierta' => $solapasCubierta,
|
|
||||||
),
|
|
||||||
'acabadoCubierta' => $acabadoCubierta,
|
|
||||||
'sobrecubierta' => $sobreCubierta,
|
|
||||||
'datos_guardas' => $datos_guardas,
|
'datos_guardas' => $datos_guardas,
|
||||||
'servicios' => $servicios,
|
|
||||||
|
'servicios' => $reqData['servicios'] ?? [],
|
||||||
);
|
);
|
||||||
|
|
||||||
$resultado_presupuesto = $this->calcular_presupuesto($datos_presupuesto, $selected_tirada, true);
|
$resultado_presupuesto = $this->calcular_presupuesto($datos_presupuesto, $selected_tirada, true);
|
||||||
@ -682,56 +690,65 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if (!empty($error)) {
|
if (!empty($error)) {
|
||||||
return $this->respond([
|
return $this->respond([
|
||||||
'error' => $error,
|
'error' => $error,
|
||||||
$csrfTokenName => $newTokenHash
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (isset($resultado_presupuesto['exception'])) {
|
} else if (isset($resultado_presupuesto['exception'])) {
|
||||||
return $this->respond([
|
return $this->respond([
|
||||||
'error' => $resultado_presupuesto['exception'],
|
'error' => $resultado_presupuesto['exception'],
|
||||||
$csrfTokenName => $newTokenHash
|
'file' => $resultado_presupuesto['file'],
|
||||||
|
'line' => $resultado_presupuesto['line'],
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// seleccionamos el peso de la tirada seleccionada
|
||||||
|
$peso_libro = $resultado_presupuesto['peso'][array_search($selected_tirada, $tirada)];
|
||||||
|
|
||||||
|
|
||||||
|
if (count($direcciones) > 1) {
|
||||||
|
|
||||||
for ($i = 0; $i < count($tirada); $i++) {
|
for ($i = 0; $i < count($tirada); $i++) {
|
||||||
|
|
||||||
$resultado_presupuesto['info']['totales'][$i]['coste_envio'] = 0.0;
|
$resultado_presupuesto['info']['totales'][$i]['coste_envio'] = 0.0;
|
||||||
$resultado_presupuesto['info']['totales'][$i]['margen_envio'] = 0.0;
|
$resultado_presupuesto['info']['totales'][$i]['margen_envio'] = 0.0;
|
||||||
|
|
||||||
foreach ($reqData['direcciones'] as $direccion) {
|
$coste_envio = 0.0;
|
||||||
|
foreach ($direcciones as $direccion) {
|
||||||
$proporcion = intval($direccion['unidades']) / $selected_tirada * 100.0;
|
$precio_envio = $this->getCosteEnvio(
|
||||||
$unidades_calculo = floor($tirada[$i] * $proporcion / 100.0);
|
|
||||||
try {
|
|
||||||
$coste_envio = $this->calcular_coste_envio(
|
|
||||||
$direccion['id'],
|
$direccion['id'],
|
||||||
$peso_libro,
|
$resultado_presupuesto['peso'][$i],
|
||||||
$unidades_calculo,
|
$direccion['unidades'],
|
||||||
$direccion['tipo'] == 'cajas' ? 0 : 1
|
$direccion['entregaPalets'] == 'true' ? 1 : 0
|
||||||
);
|
)[0];
|
||||||
|
$coste_envio += $precio_envio->coste;
|
||||||
if (count($coste_envio) > 0) {
|
$margen_envio = $precio_envio->margen;
|
||||||
$coste = floatval($coste_envio[0]->coste);
|
$resultado_presupuesto['info']['totales'][$i]['coste_envio'] += $coste_envio - $margen_envio;
|
||||||
$margen = ($coste * floatval($coste_envio[0]->margen)) / 100.0;
|
$resultado_presupuesto['info']['totales'][$i]['margen_envio'] += $margen_envio;
|
||||||
$coste -= $margen;
|
|
||||||
$resultado_presupuesto['info']['totales'][$i]['coste_envio'] += $coste;
|
|
||||||
$resultado_presupuesto['info']['totales'][$i]['margen_envio'] += $margen;
|
|
||||||
}
|
|
||||||
} catch (Exception $e) {
|
|
||||||
return $this->respond([
|
|
||||||
'status' => -1,
|
|
||||||
'message' => "Error al calcular el coste de envío (¿las direcciones están guardadas?)",
|
|
||||||
$csrfTokenName => $newTokenHash
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
$resultado_presupuesto['precio_u'][$i] = round(floatval($resultado_presupuesto['precio_u'][$i]) + $coste_envio / $tirada[$i], 4);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
for ($i = 0; $i < count($tirada); $i++) {
|
||||||
|
$coste_envio = 0.0;
|
||||||
|
$precio_envio = $this->getCosteEnvio(null, $resultado_presupuesto['peso'][$i], $tirada[$i], false)[0];
|
||||||
|
$coste_envio += $precio_envio->coste;
|
||||||
|
$margen_envio = $precio_envio->margen;
|
||||||
|
$resultado_presupuesto['precio_u'][$i] = round(floatval($resultado_presupuesto['precio_u'][$i]) + $coste_envio / $tirada[$i], 4);
|
||||||
|
|
||||||
|
$resultado_presupuesto['info']['totales'][$i]['coste_envio'] = $coste_envio - $margen_envio;
|
||||||
|
$resultado_presupuesto['info']['totales'][$i]['margen_envio'] = $margen_envio;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$model_presupuesto = new PresupuestoModel();
|
$model_presupuesto = new PresupuestoModel();
|
||||||
$tiradas_alternativas = [];
|
$tiradas_alternativas = [];
|
||||||
$resumen_totales = [];
|
$resumen_totales = [];
|
||||||
|
|
||||||
for ($i = 0; $i < count($tirada); $i++) {
|
for ($i = 0; $i < count($tirada); $i++) {
|
||||||
|
|
||||||
if ($tirada[$i] != $selected_tirada) {
|
if ($tirada[$i] != $selected_tirada) {
|
||||||
|
|
||||||
$coste_total = $resultado_presupuesto['info']['totales'][$i]['totalImpresion'] + $resultado_presupuesto['info']['totales'][$i]['totalPapel'] +
|
$coste_total = $resultado_presupuesto['info']['totales'][$i]['totalImpresion'] + $resultado_presupuesto['info']['totales'][$i]['totalPapel'] +
|
||||||
@ -741,9 +758,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$resultado_presupuesto['info']['totales'][$i]['margenPapel'] +
|
$resultado_presupuesto['info']['totales'][$i]['margenPapel'] +
|
||||||
$resultado_presupuesto['info']['totales'][$i]['margen_envio']) / ($coste_total + $coste_envio) * 100.0, 2);
|
$resultado_presupuesto['info']['totales'][$i]['margen_envio']) / ($coste_total + $coste_envio) * 100.0, 2);
|
||||||
$total_pedido = round(($coste_total + $resultado_presupuesto['info']['totales'][$i]['totalServicios'] + $resultado_presupuesto['info']['totales'][$i]['margenServicios'] + $coste_envio), 2);
|
$total_pedido = round(($coste_total + $resultado_presupuesto['info']['totales'][$i]['totalServicios'] + $resultado_presupuesto['info']['totales'][$i]['margenServicios'] + $coste_envio), 2);
|
||||||
$precio_u = round(($coste_total + $resultado_presupuesto['info']['totales'][$i]['totalServicios'] + $resultado_presupuesto['info']['totales'][$i]['margenServicios'] + $coste_envio) / $tirada[$i], 4);
|
$precio_u = round(($coste_total + $resultado_presupuesto['info']['totales'][$i]['totalServicios'] + $resultado_presupuesto['info']['totales'][$i]['margenServicios'] + $coste_envio) / $tirada[$i], 4);
|
||||||
|
|
||||||
array_push($tiradas_alternativas, (object)array(
|
array_push($tiradas_alternativas, (object) array(
|
||||||
'tirada' => $tirada[$i],
|
'tirada' => $tirada[$i],
|
||||||
'coste_impresion' => round($coste_total, 2),
|
'coste_impresion' => round($coste_total, 2),
|
||||||
'coste_envio' => $coste_envio,
|
'coste_envio' => $coste_envio,
|
||||||
@ -761,6 +778,22 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$borrar_antes = true;
|
$borrar_antes = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($datos_presupuesto['sobrecubierta']){
|
||||||
|
$acabado_id = $this->obtenerTarifasAcabado(['plastificado' => $datos_presupuesto['sobrecubierta']['acabados']]);
|
||||||
|
if(count($acabado_id)>0){
|
||||||
|
$datos_presupuesto['sobrecubierta']['acabados'] = $acabado_id[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$acabado_id = $this->obtenerTarifasAcabado($datos_presupuesto['cubierta']['acabadosCubierta']);
|
||||||
|
if(count($acabado_id)>0){
|
||||||
|
$datos_presupuesto['cubierta']['acabadosCubierta']['plastificado'] = $acabado_id[0];
|
||||||
|
$datos_presupuesto['cubierta']['acabadosCubierta']['barniz'] = $acabado_id[1];
|
||||||
|
$datos_presupuesto['cubierta']['acabadosCubierta']['estampado'] = $acabado_id[2];
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$datos_presupuesto['cubierta']['acabadosCubierta']['id'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$id = $model_presupuesto->insertarPresupuestoCliente(
|
$id = $model_presupuesto->insertarPresupuestoCliente(
|
||||||
$id,
|
$id,
|
||||||
$selected_tirada,
|
$selected_tirada,
|
||||||
@ -768,7 +801,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$datosCabecera,
|
$datosCabecera,
|
||||||
$resultado_presupuesto['info'],
|
$resultado_presupuesto['info'],
|
||||||
$resumen_totales,
|
$resumen_totales,
|
||||||
$iva_reducido,
|
$ivaReducido,
|
||||||
$excluirRotativa,
|
$excluirRotativa,
|
||||||
$tiradas_alternativas
|
$tiradas_alternativas
|
||||||
);
|
);
|
||||||
@ -823,7 +856,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
'status' => $id,
|
'status' => $id,
|
||||||
'url' => site_url('presupuestos/presupuestocliente/edit'),
|
'url' => site_url('presupuestos/presupuestocliente/edit'),
|
||||||
'message' => lang('Basic.global.saveSuccess', [lang('Basic.global.record')]),
|
'message' => lang('Basic.global.saveSuccess', [lang('Basic.global.record')]),
|
||||||
$csrfTokenName => $newTokenHash
|
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
return $this->failUnauthorized('Invalid request', 403);
|
return $this->failUnauthorized('Invalid request', 403);
|
||||||
@ -969,7 +1001,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$unidades = intval($direccion['unidades']);
|
$unidades = intval($direccion['unidades']);
|
||||||
$peso_envio = $peso_libro * $unidades / 1000.0;
|
$peso_envio = $peso_libro * $unidades / 1000.0;
|
||||||
|
|
||||||
$data = $this->calcular_coste_envio($direccion['id'], $peso_libro, $direccion['unidades'], $direccion['tipo'] == 'cajas' ? 0 : 1);
|
$data = $this->getCosteEnvio(
|
||||||
|
$direccion['id'],
|
||||||
|
$peso_libro,
|
||||||
|
$direccion['unidades'],
|
||||||
|
$direccion['entregaPalets'] == 'false' ? 0 : 1);
|
||||||
|
|
||||||
if (count($data) > 0) {
|
if (count($data) > 0) {
|
||||||
|
|
||||||
$data[0]->presupuesto_id = $presupuestoId;
|
$data[0]->presupuesto_id = $presupuestoId;
|
||||||
@ -977,7 +1014,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
unset($data[0]->id);
|
unset($data[0]->id);
|
||||||
$data[0]->precio = $data[0]->coste;
|
$data[0]->precio = $data[0]->coste;
|
||||||
unset($data[0]->coste);
|
unset($data[0]->coste);
|
||||||
$data[0]->entregaPieCalle = $direccion['tipo'] == 'cajas' ? 0 : 1;
|
$data[0]->entregaPieCalle = $direccion['entregaPalets'] == 'false' ? 0 : 1;
|
||||||
unset($data[0]->tipo);
|
unset($data[0]->tipo);
|
||||||
$data[0]->peso = $peso_envio;
|
$data[0]->peso = $peso_envio;
|
||||||
$data[0]->cantidad = $unidades;
|
$data[0]->cantidad = $unidades;
|
||||||
@ -1016,8 +1053,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$data = [
|
$data = [
|
||||||
'presupuesto_id' => $presupuestoId,
|
'presupuesto_id' => $presupuestoId,
|
||||||
'tarifa_extra_id' => $servicio->tarifa_id,
|
'tarifa_extra_id' => $servicio->tarifa_id,
|
||||||
'precio_total' => $servicio->total,
|
'precio' => $servicio->precio,
|
||||||
'precio_unidad' => $servicio->precio_unidad,
|
|
||||||
'margen' => $servicio->margen,
|
'margen' => $servicio->margen,
|
||||||
];
|
];
|
||||||
$model->insert($data);
|
$model->insert($data);
|
||||||
@ -1050,18 +1086,17 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
protected function getCosteEnvio($direccionId = null, $peso, $unidades, $entregaPieCalle)
|
protected function getCosteEnvio($direccionId = null, $peso, $unidades, $entregaPieCalle)
|
||||||
{
|
{
|
||||||
|
|
||||||
if($direccionId != null){
|
if ($direccionId != null) {
|
||||||
$model = model('App\Models\Clientes\ClienteDireccionesModel');
|
$model = model('App\Models\Clientes\ClienteDireccionesModel');
|
||||||
$data = $model->getDireccion($direccionId);
|
$data = $model->getDireccion($direccionId);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
$data = [];
|
$data = [];
|
||||||
array_push($data, (object)[
|
array_push($data, (object) [
|
||||||
'pais_id' => 1, // españa
|
'pais_id' => 1, // españa
|
||||||
'cp' => 18000, // envio nacional
|
'cp' => 18000, // envio nacional
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$modelTarifaEnvio = model('App\Models\Tarifas\TarifaEnvioModel');
|
$modelTarifaEnvio = model('App\Models\Tarifas\TarifaEnvioModel');
|
||||||
$coste = 0;
|
$coste = 0;
|
||||||
@ -1123,7 +1158,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$isColor = $datos_entrada['isColor'];
|
$isColor = $datos_entrada['isColor'];
|
||||||
$isHq = $datos_entrada['isHq'];
|
$isHq = $datos_entrada['isHq'];
|
||||||
$paginasCuadernillo = $datos_entrada['paginasCuadernillo'] ?? null;
|
$paginasCuadernillo = $datos_entrada['paginasCuadernillo'] ?? null;
|
||||||
|
|
||||||
|
|
||||||
// Interior
|
// Interior
|
||||||
$papelInteriorDiferente = $datos_entrada['interior']['papelInteriorDiferente'] ?? false;
|
$papelInteriorDiferente = $datos_entrada['interior']['papelInteriorDiferente'] ?? false;
|
||||||
@ -1150,7 +1185,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
// Servicios
|
// Servicios
|
||||||
$servicios = $datos_entrada['servicios'] ?? [];
|
$servicios = $datos_entrada['servicios'] ?? [];
|
||||||
|
|
||||||
$error = (object)[
|
$error = (object) [
|
||||||
'interior' => "",
|
'interior' => "",
|
||||||
'cubierta' => "",
|
'cubierta' => "",
|
||||||
'sobrecubierta' => "",
|
'sobrecubierta' => "",
|
||||||
@ -1187,7 +1222,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
$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' => $paginas,
|
'paginas' => $paginas,
|
||||||
'tirada' => $tirada[$t],
|
'tirada' => $tirada[$t],
|
||||||
'merma' => $tirada[$t] > $POD ? $this->calcular_merma($tirada[$t], $POD) : 0,
|
'merma' => $tirada[$t] > $POD ? $this->calcular_merma($tirada[$t], $POD) : 0,
|
||||||
@ -1332,6 +1367,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$acabadoCubierta = [];
|
$acabadoCubierta = [];
|
||||||
foreach ($tarifaAcabadoCubierta as $tarifa) {
|
foreach ($tarifaAcabadoCubierta as $tarifa) {
|
||||||
|
|
||||||
|
if($tarifa == 0)
|
||||||
|
continue;
|
||||||
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
||||||
$acabadoCubierta = $model->getPrecioTarifa($tarifa, $datosPedido->tirada, -1, $POD);
|
$acabadoCubierta = $model->getPrecioTarifa($tarifa, $datosPedido->tirada, -1, $POD);
|
||||||
|
|
||||||
@ -1591,7 +1628,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$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,
|
||||||
@ -1730,7 +1767,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
{
|
{
|
||||||
$model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
|
$model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
|
||||||
$data = $model->getServiciosAcabadoCubierta();
|
$data = $model->getServiciosAcabadoCubierta();
|
||||||
array_unshift($data, (object)['id' => '', 'label' => lang('Basic.global.None')]);
|
array_unshift($data, (object) ['id' => '', 'label' => lang('Basic.global.None')]);
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1738,18 +1775,18 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
{
|
{
|
||||||
$model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
|
$model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
|
||||||
$data = $model->getServiciosAcabadoSobrecubierta();
|
$data = $model->getServiciosAcabadoSobrecubierta();
|
||||||
array_unshift($data, (object)['id' => '', 'label' => lang('Basic.global.None')]);
|
array_unshift($data, (object) ['id' => '', 'label' => lang('Basic.global.None')]);
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getClienteListItems($selId = null)
|
protected function getClienteListItems($selId = null)
|
||||||
{
|
{
|
||||||
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Clientes.cliente'))])];
|
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Clientes.cliente'))])];
|
||||||
if (!empty($selId)) :
|
if (!empty($selId)):
|
||||||
$clienteModel = model('App\Models\Clientes\ClienteModel');
|
$clienteModel = model('App\Models\Clientes\ClienteModel');
|
||||||
|
|
||||||
$selOption = $clienteModel->where('id', $selId)->findColumn('nombre');
|
$selOption = $clienteModel->where('id', $selId)->findColumn('nombre');
|
||||||
if (!empty($selOption)) :
|
if (!empty($selOption)):
|
||||||
$data[$selId] = $selOption[0];
|
$data[$selId] = $selOption[0];
|
||||||
endif;
|
endif;
|
||||||
endif;
|
endif;
|
||||||
@ -1787,7 +1824,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$color = 'negro';
|
$color = 'negro';
|
||||||
|
|
||||||
$model = model('App\Models\Presupuestos\PresupuestoLineaModel');
|
$model = model('App\Models\Presupuestos\PresupuestoLineaModel');
|
||||||
$data = $model->where('presupuesto_id', $presupuestoId)->findAll();;
|
$data = $model->where('presupuesto_id', $presupuestoId)->findAll();
|
||||||
|
;
|
||||||
foreach ($data as $linea) {
|
foreach ($data as $linea) {
|
||||||
|
|
||||||
if (strpos($linea->tipo, "hq") !== false) { // $linea->tipo contains the substring "hq"
|
if (strpos($linea->tipo, "hq") !== false) { // $linea->tipo contains the substring "hq"
|
||||||
@ -1930,7 +1968,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
protected function generarResumen($presupuestoEntity)
|
protected function generarResumen($presupuestoEntity)
|
||||||
{
|
{
|
||||||
|
|
||||||
$presupuestoEntity->resumen = (object)[
|
$presupuestoEntity->resumen = (object) [
|
||||||
'titulo' => $this->generarTitulo($presupuestoEntity),
|
'titulo' => $this->generarTitulo($presupuestoEntity),
|
||||||
'tamanio' => $this->obtenerTamanio($presupuestoEntity),
|
'tamanio' => $this->obtenerTamanio($presupuestoEntity),
|
||||||
'tipo_impresion' => $this->obtenerTipoImpresion($presupuestoEntity)
|
'tipo_impresion' => $this->obtenerTipoImpresion($presupuestoEntity)
|
||||||
@ -2035,64 +2073,21 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
{
|
{
|
||||||
$tarifas = [];
|
$tarifas = [];
|
||||||
|
|
||||||
|
$model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
|
||||||
|
|
||||||
|
|
||||||
foreach ($acabados as $acabado => $value) {
|
foreach ($acabados as $acabado => $value) {
|
||||||
|
|
||||||
if ($acabado == 'plastificado') {
|
if ($value != 'NONE') {
|
||||||
|
$data = $model->where('code', $value)->first();
|
||||||
if ($value !== 'NONE') {
|
$data = $data->id;
|
||||||
|
array_push($tarifas, $data);
|
||||||
switch ($value) {
|
}
|
||||||
case 'BRIL':
|
else{
|
||||||
array_push($tarifas, 1);
|
array_push($tarifas, 0);
|
||||||
break;
|
|
||||||
case 'MATE':
|
|
||||||
array_push($tarifas, 2);
|
|
||||||
break;
|
|
||||||
case 'ANTI':
|
|
||||||
array_push($tarifas, 28);
|
|
||||||
break;
|
|
||||||
case 'SAND':
|
|
||||||
array_push($tarifas, 94);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if ($acabado == 'barniz') {
|
|
||||||
if ($value !== 'NONE') {
|
|
||||||
switch ($value) {
|
|
||||||
case 'R2D':
|
|
||||||
array_push($tarifas, 102);
|
|
||||||
break;
|
|
||||||
case 'R3D':
|
|
||||||
array_push($tarifas, 8);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if ($acabado == 'estampado') {
|
|
||||||
if ($value !== 'NONE') {
|
|
||||||
switch ($value) {
|
|
||||||
case 'GOLD':
|
|
||||||
array_push($tarifas, 103);
|
|
||||||
break;
|
|
||||||
case 'SILV':
|
|
||||||
array_push($tarifas, 104);
|
|
||||||
break;
|
|
||||||
case 'COPP':
|
|
||||||
array_push($tarifas, 105);
|
|
||||||
break;
|
|
||||||
case 'BRON':
|
|
||||||
array_push($tarifas, 106);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $tarifas;
|
return $tarifas;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ class TarifaAcabadoEntity extends \CodeIgniter\Entity\Entity
|
|||||||
protected $attributes = [
|
protected $attributes = [
|
||||||
"id" => null,
|
"id" => null,
|
||||||
"nombre" => null,
|
"nombre" => null,
|
||||||
|
"code" => null,
|
||||||
"precio_min" => 0,
|
"precio_min" => 0,
|
||||||
"importe_fijo" => 0,
|
"importe_fijo" => 0,
|
||||||
"mostrar_en_presupuesto" => 1,
|
"mostrar_en_presupuesto" => 1,
|
||||||
|
|||||||
@ -121,6 +121,8 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
'iva_reducido',
|
'iva_reducido',
|
||||||
'excluir_rotativa',
|
'excluir_rotativa',
|
||||||
"acabado_cubierta_id",
|
"acabado_cubierta_id",
|
||||||
|
"barniz_cubierta_id",
|
||||||
|
"estampado_cubierta_id",
|
||||||
"acabado_sobrecubierta_id",
|
"acabado_sobrecubierta_id",
|
||||||
"is_duplicado"
|
"is_duplicado"
|
||||||
];
|
];
|
||||||
@ -395,7 +397,7 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
'cliente_id' => $data['clienteId'],
|
'cliente_id' => $data['clienteId'],
|
||||||
'tipo_impresion_id' => $data['tipo_impresion_id'],
|
'tipo_impresion_id' => $data['tipo_impresion_id'],
|
||||||
'pais_id' => 1,
|
'pais_id' => 1,
|
||||||
'retractilado' => in_array(3, $data['servicios']) ? 1 : 0,
|
'retractilado' => in_array("RETR", $data['cubierta']['acabadosCubierta']) ? 1 : 0,
|
||||||
'retractilado5' => in_array(5, $data['servicios']) ? 1 : 0,
|
'retractilado5' => in_array(5, $data['servicios']) ? 1 : 0,
|
||||||
'guardas' => in_array(62, $data['servicios']) ? 1 : 0,
|
'guardas' => in_array(62, $data['servicios']) ? 1 : 0,
|
||||||
'faja_color' => in_array(16, $data['servicios']) ? 1 : 0,
|
'faja_color' => in_array(16, $data['servicios']) ? 1 : 0,
|
||||||
@ -409,21 +411,23 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
'referencia_cliente' => $data_cabecera['referenciaCliente'],
|
'referencia_cliente' => $data_cabecera['referenciaCliente'],
|
||||||
'paginas' => $data['interior']['paginas'],
|
'paginas' => $data['interior']['paginas'],
|
||||||
'tirada' => $tirada,
|
'tirada' => $tirada,
|
||||||
'solapas' => $data['cubierta']['solapasCubierta'] > 0 ? 1 : 0,
|
'solapas' => $data['cubierta']['solapasCubierta'] == 0 ? 0 : 1,
|
||||||
'solapas_ancho' => $data['cubierta']['solapasCubierta'] > 0 ? $data['cubierta']['solapasCubierta'] : 0,
|
'solapas_ancho' => $data['cubierta']['solapasCubierta'] == 0? $data['cubierta']['solapasCubierta'] : 0,
|
||||||
'solapas_sobrecubierta' => is_null($data['sobrecubierta']) ? 0 : 1,
|
'solapas_sobrecubierta' => !$data['sobrecubierta'] ? 0 : 1,
|
||||||
'solapas_ancho_sobrecubierta' => is_null($data['sobrecubierta']) ? 0 : $data['sobrecubierta']['solapas'],
|
'solapas_ancho_sobrecubierta' => !$data['sobrecubierta'] ? 0 : $data['sobrecubierta']['solapas'],
|
||||||
'cosido' => $is_cosido,
|
'cosido' => $is_cosido,
|
||||||
'merma' => $extra_info['merma'],
|
'merma' => $extra_info['merma'],
|
||||||
'merma_cubierta' => $extra_info['merma'],
|
'merma_cubierta' => $extra_info['merma'],
|
||||||
|
|
||||||
'lomo_cubierta' => $extra_info['lomo_cubierta'],
|
/*'lomo_cubierta' => $extra_info['lomo_cubierta'],
|
||||||
'lomo_sobrecubierta' => $extra_info['lomo_sobrecubierta'],
|
'lomo_sobrecubierta' => $extra_info['lomo_sobrecubierta'],*/
|
||||||
|
|
||||||
'comparador_json_data' => $this->generateJson($data),
|
'comparador_json_data' => $this->generateJson($data),
|
||||||
|
|
||||||
'acabado_cubierta_id' => $data['acabadoCubierta'],
|
'acabado_cubierta_id' => $data['cubierta']['acabadosCubierta']['plastificado'],
|
||||||
'acabado_sobrecubierta_id' => is_null($data['sobrecubierta']) ? 0 : $data['sobrecubierta']['acabado'],
|
'barniz_cubierta_id' => $data['cubierta']['acabadosCubierta']['barniz'],
|
||||||
|
'estampado_cubierta_id' => $data['cubierta']['acabadosCubierta']['estampado'],
|
||||||
|
'acabado_sobrecubierta_id' => !$data['sobrecubierta'] ? 0 : $data['sobrecubierta']['acabados'],
|
||||||
|
|
||||||
'comp_tipo_impresion' => $data['isHq'] ? ($data['isColor'] ? 'colorhq' : 'negrohq') : ($data['isColor'] ? 'color' : 'negro'),
|
'comp_tipo_impresion' => $data['isHq'] ? ($data['isColor'] ? 'colorhq' : 'negrohq') : ($data['isColor'] ? 'color' : 'negro'),
|
||||||
|
|
||||||
@ -516,7 +520,7 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
);
|
);
|
||||||
|
|
||||||
// -- SOBRECUBIERTA --
|
// -- SOBRECUBIERTA --
|
||||||
if (!is_null($data['sobrecubierta'])) {
|
if ($data['sobrecubierta']) {
|
||||||
$values['sobrecubierta'] = array(
|
$values['sobrecubierta'] = array(
|
||||||
'papel_id' => intval($data['sobrecubierta']['papel']),
|
'papel_id' => intval($data['sobrecubierta']['papel']),
|
||||||
'gramaje' => intval($data['sobrecubierta']['gramaje']),
|
'gramaje' => intval($data['sobrecubierta']['gramaje']),
|
||||||
|
|||||||
@ -15,11 +15,10 @@ class PresupuestoServiciosExtraModel extends \App\Models\BaseModel
|
|||||||
|
|
||||||
const SORTABLE = [
|
const SORTABLE = [
|
||||||
0 => "t2.nombre",
|
0 => "t2.nombre",
|
||||||
1 => "t1.precio_unidad",
|
1 => "t1.precio",
|
||||||
2 => "t1.precio_total"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $allowedFields = ["presupuesto_id", "tarifa_extra_id", "precio_total", "precio_unidad", "margen"];
|
protected $allowedFields = ["presupuesto_id", "tarifa_extra_id", "precio", "margen"];
|
||||||
protected $returnType = "App\Entities\Presupuestos\PresupuestoServiciosExtraEntity";
|
protected $returnType = "App\Entities\Presupuestos\PresupuestoServiciosExtraEntity";
|
||||||
|
|
||||||
protected $useTimestamps = true;
|
protected $useTimestamps = true;
|
||||||
|
|||||||
@ -21,6 +21,7 @@ class TarifaAcabadoModel extends \App\Models\BaseModel
|
|||||||
|
|
||||||
protected $allowedFields = [
|
protected $allowedFields = [
|
||||||
"nombre",
|
"nombre",
|
||||||
|
"code",
|
||||||
"precio_min",
|
"precio_min",
|
||||||
"importe_fijo",
|
"importe_fijo",
|
||||||
"mostrar_en_presupuesto",
|
"mostrar_en_presupuesto",
|
||||||
|
|||||||
@ -8,22 +8,58 @@
|
|||||||
<label for="titulo" class="form-label">
|
<label for="titulo" class="form-label">
|
||||||
<?= lang('Presupuestos.titulo') ?>*
|
<?= lang('Presupuestos.titulo') ?>*
|
||||||
</label>
|
</label>
|
||||||
<input type="text" id="titulo" placeholder="Introduzca el título de la publicación" name="titulo" maxLength="300" class="form-control text-center" value="">
|
<input type="text" id="titulo" placeholder="Introduzca el título de la publicación" name="titulo"
|
||||||
</div><!--//.mb-3 -->
|
maxLength="300" class="form-control text-center" value="">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-8 mb-3 d-flex flex-column align-items-center">
|
||||||
|
<label for="autor" class="form-label">
|
||||||
|
<?= lang('Presupuestos.autor') ?>
|
||||||
|
</label>
|
||||||
|
<input type="text" id="autor" placeholder="Autor" name="autor" maxLength="150" class="form-control" value="">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
|
||||||
|
<div class="col-sm-4 mb-3">
|
||||||
|
<label for="isbn" class="form-label">
|
||||||
|
<?=lang('Presupuestos.isbn') ?>
|
||||||
|
</label>
|
||||||
|
<input type="text" id="isbn" name="isbn" placeholder="ISBN" maxLength="50" class="form-control" value="">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-4 mb-3">
|
||||||
|
<label for="coleccion" class="form-label">
|
||||||
|
<?= lang('Presupuestos.coleccion') ?>
|
||||||
|
</label>
|
||||||
|
<input type="text" id="coleccion" name="coleccion" placeholder="Coleccion" maxLength="255" class="form-control" value="">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-4 mb-3">
|
||||||
|
<label for="referenciaCliente" class="form-label">
|
||||||
|
<?=lang('Presupuestos.referenciaCliente') ?>
|
||||||
|
</label>
|
||||||
|
<input type="text" id="referenciaCliente" name="referencia_cliente" placeholder="Referencia cliente" maxLength="100" class="form-control" value="">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="col-sm-5 mb-3 d-flex flex-column align-items-center">
|
<div class="col-sm-5 mb-3 d-flex flex-column align-items-center">
|
||||||
<label id="label_clienteId" for="clienteId" class="form-label">
|
<label id="label_clienteId" for="clienteId" class="form-label">
|
||||||
Cliente*
|
Cliente*
|
||||||
</label>
|
</label>
|
||||||
<select id="clienteId" name="cliente_id" class="form-control select2bs2 calcular-presupuesto" style="width: 100%;">
|
<select id="clienteId" name="cliente_id" class="form-control select2bs2 calcular-presupuesto"
|
||||||
|
style="width: 100%;">
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="row col-sm-5 mb-3 d-flex flex-column align-items-center">
|
<div class="row col-sm-5 mb-3 d-flex flex-column align-items-center">
|
||||||
<div class="form-check form-switch mb-2">
|
<div class="form-check form-switch mb-2">
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="excluirRotativa" name="excluir_rotativa" value="1">
|
<input class="calcular-presupuesto form-check-input" type="checkbox" id="excluirRotativa"
|
||||||
|
name="excluir_rotativa" value="1">
|
||||||
<label class="form-check-label" for="excluirRotativa">Excluir rotativa</label>
|
<label class="form-check-label" for="excluirRotativa">Excluir rotativa</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -34,29 +70,33 @@
|
|||||||
<label for="tirada" class="form-label">
|
<label for="tirada" class="form-label">
|
||||||
<?= lang('Presupuestos.tirada') ?> 1*
|
<?= lang('Presupuestos.tirada') ?> 1*
|
||||||
</label>
|
</label>
|
||||||
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada" name="tirada" step="1" value="50">
|
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada"
|
||||||
</div><!--//.mb-3 -->
|
name="tirada" step="1" value="50">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-2 d-flex flex-column align-items-center mx-1">
|
<div class="col-sm-2 d-flex flex-column align-items-center mx-1">
|
||||||
<label for="tirada2" class="form-label">
|
<label for="tirada2" class="form-label">
|
||||||
<?= lang('Presupuestos.tirada') ?> 2
|
<?= lang('Presupuestos.tirada') ?> 2
|
||||||
</label>
|
</label>
|
||||||
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada2" name="tirada2" step="1" value="">
|
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada2"
|
||||||
</div><!--//.mb-3 -->
|
name="tirada2" step="1" value="">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-2 d-flex flex-column align-items-center mx-1">
|
<div class="col-sm-2 d-flex flex-column align-items-center mx-1">
|
||||||
<label for="tirada3" class="form-label">
|
<label for="tirada3" class="form-label">
|
||||||
<?= lang('Presupuestos.tirada') ?> 3
|
<?= lang('Presupuestos.tirada') ?> 3
|
||||||
</label>
|
</label>
|
||||||
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada3" name="tirada3" step="1" value="">
|
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada3"
|
||||||
</div><!--//.mb-3 -->
|
name="tirada3" step="1" value="">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-2 d-flex flex-column align-items-center mx-1">
|
<div class="col-sm-2 d-flex flex-column align-items-center mx-1">
|
||||||
<label for="tirada4" class="form-label">
|
<label for="tirada4" class="form-label">
|
||||||
<?= lang('Presupuestos.tirada') ?> 4
|
<?= lang('Presupuestos.tirada') ?> 4
|
||||||
</label>
|
</label>
|
||||||
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada4" name="tirada4" step="1" value="">
|
<input type="number" class="calcular-presupuesto form-control text-center num-input" id="tirada4"
|
||||||
</div><!--//.mb-3 -->
|
name="tirada4" step="1" value="">
|
||||||
|
</div>
|
||||||
</div> <!--//.row -->
|
</div> <!--//.row -->
|
||||||
|
|
||||||
<div class="col-sm-10 d-flex flex-column align-items-center justify-content-center">
|
<div class="col-sm-10 d-flex flex-column align-items-center justify-content-center">
|
||||||
@ -65,7 +105,8 @@
|
|||||||
<label id="label_papelFormatoId" for="papelFormatoId" class="form-label">
|
<label id="label_papelFormatoId" for="papelFormatoId" class="form-label">
|
||||||
Formato Libro*
|
Formato Libro*
|
||||||
</label>
|
</label>
|
||||||
<select id="papelFormatoId" name="papel_formato_id" class="form-control select2bs2 calcular-presupuesto" style="width: 100%;">
|
<select id="papelFormatoId" name="papel_formato_id" class="form-control select2bs2 calcular-presupuesto"
|
||||||
|
style="width: 100%;">
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -73,20 +114,24 @@
|
|||||||
|
|
||||||
<div class="col-sm-3 mb-1 mx-1">
|
<div class="col-sm-3 mb-1 mx-1">
|
||||||
<label class="form-label" for="papelFormatoAncho">Ancho Libro</label>
|
<label class="form-label" for="papelFormatoAncho">Ancho Libro</label>
|
||||||
<input type="number" id="papelFormatoAncho" name="papel_formato_ancho" step="1" class="form-control formato_libro calcular-presupuesto num-input" min="60" value="60">
|
<input type="number" id="papelFormatoAncho" name="papel_formato_ancho" step="1"
|
||||||
</div><!--//.mb-3 -->
|
class="form-control formato_libro calcular-presupuesto num-input" min="60" value="60">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-3 mb-1 mx-1">
|
<div class="col-sm-3 mb-1 mx-1">
|
||||||
<label class="form-label" for="papelFormatoAlto">Alto Libro</label>
|
<label class="form-label" for="papelFormatoAlto">Alto Libro</label>
|
||||||
<input type="number" id="papelFormatoAlto" name="papel_formato_alto" step="1" class="form-control formato_libro calcular-presupuesto num-input" min="60" value="60">
|
<input type="number" id="papelFormatoAlto" name="papel_formato_alto" step="1"
|
||||||
</div><!--//.mb-3 -->
|
class="form-control formato_libro calcular-presupuesto num-input" min="60" value="60">
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row col-sm-4 mb-3 d-flex flex-column align-items-center">
|
<div class="row col-sm-4 mb-3 d-flex flex-column align-items-center">
|
||||||
<div class="form-check form-switch mb-2">
|
<div class="form-check form-switch mb-2">
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="papelFormatoPersonalizado" name="papel_formato_personalizado" value="1">
|
<input class="calcular-presupuesto form-check-input" type="checkbox" id="papelFormatoPersonalizado"
|
||||||
<label class="form-check-label" for="papelFormatoPersonalizado"><?= lang('Presupuestos.papelFormatoPersonalizado') ?></label>
|
name="papel_formato_personalizado" value="1">
|
||||||
|
<label class="form-check-label"
|
||||||
|
for="papelFormatoPersonalizado"><?= lang('Presupuestos.papelFormatoPersonalizado') ?></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -100,7 +145,8 @@
|
|||||||
<label for="paginasColor" class="form-label">
|
<label for="paginasColor" class="form-label">
|
||||||
<?= lang('Presupuestos.paginasColor') ?>
|
<?= lang('Presupuestos.paginasColor') ?>
|
||||||
</label>
|
</label>
|
||||||
<input type="number" class="form-control calcular-presupuesto input-paginas num-input" id="paginasColor" name="paginasColor" step="1" value="0">
|
<input type="number" class="form-control calcular-presupuesto input-paginas num-input" id="paginasColor"
|
||||||
|
name="paginasColor" step="1" value="0">
|
||||||
|
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
Siempre deben ser pares
|
Siempre deben ser pares
|
||||||
@ -112,7 +158,8 @@
|
|||||||
<label for="paginasNegro" class="form-label">
|
<label for="paginasNegro" class="form-label">
|
||||||
<?= lang('Presupuestos.paginasNegro') ?>
|
<?= lang('Presupuestos.paginasNegro') ?>
|
||||||
</label>
|
</label>
|
||||||
<input type="number" class="form-control calcular-presupuesto input-paginas num-input" id="paginasNegro" name="paginasNegro" step="1" value="32">
|
<input type="number" class="form-control calcular-presupuesto input-paginas num-input" id="paginasNegro"
|
||||||
|
name="paginasNegro" step="1" value="32">
|
||||||
|
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
Siempre deben ser pares
|
Siempre deben ser pares
|
||||||
@ -124,7 +171,8 @@
|
|||||||
<label for="paginas" class="form-label">
|
<label for="paginas" class="form-label">
|
||||||
<?= lang('Presupuestos.totalPaginas') ?>
|
<?= lang('Presupuestos.totalPaginas') ?>
|
||||||
</label>
|
</label>
|
||||||
<input readonly class="form-control calcular-presupuesto" id="paginas" name="paginas" step="1" value="32">
|
<input readonly class="form-control calcular-presupuesto" id="paginas" name="paginas" step="1"
|
||||||
|
value="32">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -134,21 +182,24 @@
|
|||||||
<label for="paginas_por_cuadernillo" class="form-label">
|
<label for="paginas_por_cuadernillo" class="form-label">
|
||||||
<?= lang('Presupuestos.paginasCuadernillo') ?>
|
<?= lang('Presupuestos.paginasCuadernillo') ?>
|
||||||
</label>
|
</label>
|
||||||
<select id="paginasCuadernillo" name="paginas_por_cuadernillo" class="calcular-presupuesto form-control select2bs2" style="width: 100%;">
|
<select id="paginasCuadernillo" name="paginas_por_cuadernillo"
|
||||||
|
class="calcular-presupuesto form-control select2bs2" style="width: 100%;">
|
||||||
<option value="32" selected>32</option>
|
<option value="32" selected>32</option>
|
||||||
<option value="28">28</option>
|
<option value="28">28</option>
|
||||||
<option value="24">24</option>
|
<option value="24">24</option>
|
||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
<option value="16">16</option>
|
<option value="16">16</option>
|
||||||
</select>
|
</select>
|
||||||
</div><!--//.mb-3 -->
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mt-2 justify-content-center">
|
<div class="row mt-2 justify-content-center">
|
||||||
|
|
||||||
<div id="divPaginasColorConsecutivas" class="form-check col-sm-9 form-switch mb-2 d-none">
|
<div id="divPaginasColorConsecutivas" class="form-check col-sm-9 form-switch mb-2 d-none">
|
||||||
<input class="form-check-input" type="checkbox" id="pagColorConsecutivas" name="pag_color_consecutivas" value="1">
|
<input class="form-check-input" type="checkbox" id="pagColorConsecutivas" name="pag_color_consecutivas"
|
||||||
<label class="form-check-label" for="pagColorConsecutivas"><?= lang('Presupuestos.paginasColorConsecutivas') ?></label>
|
value="1">
|
||||||
|
<label class="form-check-label"
|
||||||
|
for="pagColorConsecutivas"><?= lang('Presupuestos.paginasColorConsecutivas') ?></label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="divPosPaginasColor" class="col-sm-9 d-none">
|
<div id="divPosPaginasColor" class="col-sm-9 d-none">
|
||||||
@ -176,25 +227,29 @@
|
|||||||
<div id="divTipoLibro" name="div_tipo_libro" class="row col-sm-10 mb-3 justify-content-center">
|
<div id="divTipoLibro" name="div_tipo_libro" class="row col-sm-10 mb-3 justify-content-center">
|
||||||
|
|
||||||
<div id="fresado" class="tipo-libro calcular-presupuesto imagen-selector image-container">
|
<div id="fresado" class="tipo-libro calcular-presupuesto imagen-selector image-container">
|
||||||
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/fresado.png") ?>" alt="Fresado">
|
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/fresado.png") ?>"
|
||||||
|
alt="Fresado">
|
||||||
<div class="form-text text-center">
|
<div class="form-text text-center">
|
||||||
Fresado (a partir de 32 páginas)
|
Fresado (a partir de 32 páginas)
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="grapado" class="tipo-libro calcular-presupuesto imagen-selector image-container">
|
<div id="grapado" class="tipo-libro calcular-presupuesto imagen-selector image-container">
|
||||||
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/grapado.png") ?>" alt="Grapado">
|
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/grapado.png") ?>"
|
||||||
|
alt="Grapado">
|
||||||
<div class="form-text text-center">
|
<div class="form-text text-center">
|
||||||
Grapado (entre 12 y 40 páginas)
|
Grapado (entre 12 y 40 páginas)
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="espiral" class="tipo-libro calcular-presupuesto imagen-selector image-container">
|
<div id="espiral" class="tipo-libro calcular-presupuesto imagen-selector image-container">
|
||||||
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/espiral.png") ?>" alt="Espiral">
|
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/espiral.png") ?>"
|
||||||
|
alt="Espiral">
|
||||||
<div class="form-text text-center">
|
<div class="form-text text-center">
|
||||||
Espiral
|
Espiral
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="cosido" class="tipo-libro calcular-presupuesto imagen-selector image-container">
|
<div id="cosido" class="tipo-libro calcular-presupuesto imagen-selector image-container">
|
||||||
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/cosido.png") ?>" alt="Cosido">
|
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/cosido.png") ?>"
|
||||||
|
alt="Cosido">
|
||||||
<div class="form-text text-center">
|
<div class="form-text text-center">
|
||||||
Cosido (a partir de 32 páginas)
|
Cosido (a partir de 32 páginas)
|
||||||
</div>
|
</div>
|
||||||
@ -207,7 +262,8 @@
|
|||||||
|
|
||||||
<div class="row col-sm-9 mb-3 d-flex flex-column align-items-left">
|
<div class="row col-sm-9 mb-3 d-flex flex-column align-items-left">
|
||||||
<div class="col-sm-3 form-check form-switch mb-2">
|
<div class="col-sm-3 form-check form-switch mb-2">
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="prototipo" name="prototipo" value="1">
|
<input class="calcular-presupuesto form-check-input" type="checkbox" id="prototipo" name="prototipo"
|
||||||
|
value="1">
|
||||||
<label class="form-check-label" for="prototipo">Prototipo</label>
|
<label class="form-check-label" for="prototipo">Prototipo</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -221,7 +277,8 @@
|
|||||||
|
|
||||||
<div class="col-sm-2 mb-md-0 mb-2">
|
<div class="col-sm-2 mb-md-0 mb-2">
|
||||||
<label for="ivaReducido" class="form-label">I.V.A. reducido</label>
|
<label for="ivaReducido" class="form-label">I.V.A. reducido</label>
|
||||||
<select id="ivaReducido" name="ivaReducido" class="form-control select2bs2 calcular-presupuesto" style="width: 100%;">
|
<select id="ivaReducido" name="ivaReducido" class="form-control select2bs2 calcular-presupuesto"
|
||||||
|
style="width: 100%;">
|
||||||
<option value="1" selected>
|
<option value="1" selected>
|
||||||
<p><?= lang('SI') ?></p>
|
<p><?= lang('SI') ?></p>
|
||||||
</option>
|
</option>
|
||||||
@ -231,7 +288,9 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="mt-2">Se verificará que el pedido cumpla con los requisitos establecidos en el Artículo 91 de la Ley 37/1992, sobre inserción de publicidad, antes de proceder con su producción, lo que garantiza la aplicación del IVA reducido del 4%.</p>
|
<p class="mt-2">Se verificará que el pedido cumpla con los requisitos establecidos en el Artículo 91 de la Ley
|
||||||
|
37/1992, sobre inserción de publicidad, antes de proceder con su producción, lo que garantiza la aplicación
|
||||||
|
del IVA reducido del 4%.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -50,11 +50,12 @@
|
|||||||
|
|
||||||
<div class="col-sm-4 mb-md-0 mb-2">
|
<div class="col-sm-4 mb-md-0 mb-2">
|
||||||
<label for="carasCubierta" class="form-label">Caras impresas cubierta</label>
|
<label for="carasCubierta" class="form-label">Caras impresas cubierta</label>
|
||||||
<select id="carasCubierta" name="carasCubierta" class="form-control select2bs2 calcular-presupuesto" style="width: 100%;">
|
<select id="carasCubierta" name="carasCubierta" class="form-control select2bs2 calcular-presupuesto"
|
||||||
<option value="2" selected >
|
style="width: 100%;">
|
||||||
|
<option value="2" selected>
|
||||||
<p><?= lang('Presupuestos.unaCara') ?></p>
|
<p><?= lang('Presupuestos.unaCara') ?></p>
|
||||||
</option>
|
</option>
|
||||||
<option value="4" >
|
<option value="4">
|
||||||
<p><?= lang('Presupuestos.dosCaras') ?></p>
|
<p><?= lang('Presupuestos.dosCaras') ?></p>
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
@ -247,11 +248,11 @@
|
|||||||
<?= lang('Presupuestos.plastificado') ?>
|
<?= lang('Presupuestos.plastificado') ?>
|
||||||
</label>
|
</label>
|
||||||
<select class="form-select select2bs2 calcular-presupuesto" id="plastificado" name="plastificado">
|
<select class="form-select select2bs2 calcular-presupuesto" id="plastificado" name="plastificado">
|
||||||
|
<option value="NONE"><?= lang('Presupuestos.sinPlastificar') ?></option>
|
||||||
<option value="BRIL"><?= lang('Presupuestos.brillo') ?></option>
|
<option value="BRIL"><?= lang('Presupuestos.brillo') ?></option>
|
||||||
<option value="MATE"><?= lang('Presupuestos.mate') ?></option>
|
<option value="MATE"><?= lang('Presupuestos.mate') ?></option>
|
||||||
<option value="ANTI"><?= lang('Presupuestos.antirrayado') ?></option>
|
<option value="ANTI"><?= lang('Presupuestos.antirrayado') ?></option>
|
||||||
<option value="SAND"><?= lang('Presupuestos.rugoso') ?></option>
|
<option value="SAND"><?= lang('Presupuestos.rugoso') ?></option>
|
||||||
<option value="NONE"><?= lang('Presupuestos.sinPlastificar') ?></option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -330,7 +331,8 @@
|
|||||||
<?= lang('Presupuestos.tamanioSolapasSobrecubierta') ?>
|
<?= lang('Presupuestos.tamanioSolapasSobrecubierta') ?>
|
||||||
</label>
|
</label>
|
||||||
<input id="solapasSobrecubierta" name="solapas_sobrecubierta" type="number"
|
<input id="solapasSobrecubierta" name="solapas_sobrecubierta" type="number"
|
||||||
class="calcular-presupuesto form-control text-center num-input" min="60" max="120" step="1" value="60">
|
class="calcular-presupuesto form-control text-center num-input" min="60" max="120" step="1"
|
||||||
|
value="60">
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
Entre 60 y 120 mm
|
Entre 60 y 120 mm
|
||||||
</div>
|
</div>
|
||||||
@ -358,10 +360,9 @@
|
|||||||
|
|
||||||
<div class="row col-sm-2 mb-3 d-flex flex-column align-items-center">
|
<div class="row col-sm-2 mb-3 d-flex flex-column align-items-center">
|
||||||
<div class="form-check form-switch mb-2">
|
<div class="form-check form-switch mb-2">
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="addFaja"
|
<input class="calcular-presupuesto form-check-input" type="checkbox" id="addFaja" name="add_faja"
|
||||||
name="add_faja" value="1">
|
value="1">
|
||||||
<label class="form-check-label"
|
<label class="form-check-label" for="addFaja"><?= lang('Presupuestos.faja') ?></label>
|
||||||
for="addFaja"><?= lang('Presupuestos.faja') ?></label>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -380,8 +381,7 @@
|
|||||||
<label for="barniz" class="form-label">
|
<label for="barniz" class="form-label">
|
||||||
<?= lang('Presupuestos.papelFaja') ?>
|
<?= lang('Presupuestos.papelFaja') ?>
|
||||||
</label>
|
</label>
|
||||||
<select class="form-select select2bs2 calcular-presupuesto" id="papelFaja"
|
<select class="form-select select2bs2 calcular-presupuesto" id="papelFaja" name="papel_sobrecubierta">
|
||||||
name="papel_sobrecubierta">
|
|
||||||
<option value="EST2_170"><?= lang('Presupuestos.estucadoMate170gr') ?></option>
|
<option value="EST2_170"><?= lang('Presupuestos.estucadoMate170gr') ?></option>
|
||||||
<option value="EST2_200"><?= lang('Presupuestos.estucadoMate200gr') ?></option>
|
<option value="EST2_200"><?= lang('Presupuestos.estucadoMate200gr') ?></option>
|
||||||
</select>
|
</select>
|
||||||
@ -392,7 +392,8 @@
|
|||||||
<?= lang('Presupuestos.tamanioSolapasFaja') ?>
|
<?= lang('Presupuestos.tamanioSolapasFaja') ?>
|
||||||
</label>
|
</label>
|
||||||
<input id="solapasFaja" name="solapas_faja" type="number"
|
<input id="solapasFaja" name="solapas_faja" type="number"
|
||||||
class="calcular-presupuesto form-control text-center num-input" min="60" max="120" step="1" value="60">
|
class="calcular-presupuesto form-control text-center num-input" min="60" max="120" step="1"
|
||||||
|
value="60">
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
Entre 60 y 120 mm
|
Entre 60 y 120 mm
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<h5 class="mb-1 "> Precio unidad: <span id="resumenPrecioU"></span> €</h5>
|
<h5 class="mb-1 "> Precio unidad: <span id="resumenPrecioU"></span> €</h5>
|
||||||
<h4 class="mb-1 "> Total base: <span id="resumenTotalBase"></span> €</h>
|
<h4 class="mb-1 "> Total base: <span id="resumenTotalBase"></span> €</h>
|
||||||
<h4 class="mb-1 "> Iva (<span id="resumenIvaPorcentaje"></span>%): <span id="resumenIva"></span> €</h>
|
<h4 class="mb-1 "> Iva (<span id="resumenIvaPorcentaje"></span>%): <span id="resumenIva"></span> €</h>
|
||||||
<h3 class="mb-1 fw-bold"> Total: <span id="resumenTotal"></span> €</h>
|
<h3 class="mt-3 mb-1 fw-bold"> Total: <span id="resumenTotal"></span> €</h>
|
||||||
</div><!--//.mb-3 -->
|
</div><!--//.mb-3 -->
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,10 @@
|
|||||||
<div id="loader" style="display: none; position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 9999;">
|
<div id="loader" class="loader" style="display: none;">
|
||||||
<div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
|
<div class="book">
|
||||||
<img src="<?= site_url("assets/img/loader.gif") ?>" alt="Loading..."/>
|
<div class="book__pg-shadow"></div>
|
||||||
|
<div class="book__pg"></div>
|
||||||
|
<div class="book__pg book__pg--2"></div>
|
||||||
|
<div class="book__pg book__pg--3"></div>
|
||||||
|
<div class="book__pg book__pg--4"></div>
|
||||||
|
<div class="book__pg book__pg--5"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -12,13 +12,17 @@
|
|||||||
<?= view("themes/vuexy/components/modals/modalDireccion") ?>
|
<?= view("themes/vuexy/components/modals/modalDireccion") ?>
|
||||||
|
|
||||||
<div class="container-xxl flex-grow-1 container-p-y">
|
<div class="container-xxl flex-grow-1 container-p-y">
|
||||||
|
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
|
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
|
||||||
<?= csrf_field() ?>
|
<?= csrf_field() ?>
|
||||||
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
||||||
<?= view("themes/vuexy/form/presupuestos/cliente/loader") ?>
|
|
||||||
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
|
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
|
||||||
|
|
||||||
|
<input hidden id="lc" value=""></input>
|
||||||
|
<input hidden id="lsc" value=""></input>
|
||||||
|
<input readonly hidden id="pod" value="<?= $POD ?>"></input>
|
||||||
|
<input readonly hidden id="c" value="<?= $clienteId ?>"></input>
|
||||||
|
|
||||||
<!-- Create Deal Wizard -->
|
<!-- Create Deal Wizard -->
|
||||||
<div id="wizard-presupuesto-cliente" class="bs-stepper vertical mt-2 linear">
|
<div id="wizard-presupuesto-cliente" class="bs-stepper vertical mt-2 linear">
|
||||||
@ -74,10 +78,13 @@
|
|||||||
|
|
||||||
<div id='divTiradasPrecio'></div>
|
<div id='divTiradasPrecio'></div>
|
||||||
|
|
||||||
|
|
||||||
</div> <!--//.bs-stepper-header -->
|
</div> <!--//.bs-stepper-header -->
|
||||||
|
|
||||||
<div class="bs-stepper-content">
|
<div class="bs-stepper-content" style="position: relative;">
|
||||||
|
|
||||||
|
<?= view("themes/vuexy/form/presupuestos/cliente/loader") ?>
|
||||||
|
|
||||||
<form id="presupuesto-cliente-form" onsubmit="return false">
|
<form id="presupuesto-cliente-form" onsubmit="return false">
|
||||||
|
|
||||||
<div id="datos-generales" class="content active dstepper-block fv-plugins-bootstrap5 fv-plugins-framework">
|
<div id="datos-generales" class="content active dstepper-block fv-plugins-bootstrap5 fv-plugins-framework">
|
||||||
@ -138,7 +145,8 @@
|
|||||||
<?= $this->section('css') ?>
|
<?= $this->section('css') ?>
|
||||||
|
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/bs-stepper/bs-stepper.css') ?>" />
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/bs-stepper/bs-stepper.css') ?>" />
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
|
<link rel="stylesheet"
|
||||||
|
href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/dropzone/dropzone.css') ?>" />
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/dropzone/dropzone.css') ?>" />
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/presupuestoCliente.css') ?>">
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/presupuestoCliente.css') ?>">
|
||||||
@ -156,7 +164,8 @@
|
|||||||
<script src="<?= site_url('js_loader/translate_js/Presupuestos') ?>"></script>
|
<script src="<?= site_url('js_loader/translate_js/Presupuestos') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
||||||
|
|
||||||
<script type="module" src="<?= site_url('assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js') ?>"></script>
|
<script type="module"
|
||||||
|
src="<?= site_url('assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js') ?>"></script>
|
||||||
|
|
||||||
|
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
@ -3,6 +3,8 @@ class tarjetaDireccion {
|
|||||||
constructor(container, id, direccion) {
|
constructor(container, id, direccion) {
|
||||||
|
|
||||||
this.container = container;
|
this.container = container;
|
||||||
|
this.id = id;
|
||||||
|
this.direccionId = direccion.id;
|
||||||
this.card = this.#generateHTML(id, direccion);
|
this.card = this.#generateHTML(id, direccion);
|
||||||
this.deleteBtn = this.card.find('.direccion-eliminar');
|
this.deleteBtn = this.card.find('.direccion-eliminar');
|
||||||
this.editBtn = this.card.find('.direccion-editar');
|
this.editBtn = this.card.find('.direccion-editar');
|
||||||
@ -82,6 +84,22 @@ class tarjetaDireccion {
|
|||||||
getCp() {
|
getCp() {
|
||||||
return this.card.find('.address-cp').text();
|
return this.card.find('.address-cp').text();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getId() {
|
||||||
|
return this.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
getDireccionId() {
|
||||||
|
return this.direccionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
getFormData() {
|
||||||
|
return {
|
||||||
|
id: this.direccionId,
|
||||||
|
unidades: this.getUnidades(),
|
||||||
|
entregaPalets: this.getEntregaPalets()
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default tarjetaDireccion;
|
export default tarjetaDireccion;
|
||||||
@ -1,4 +1,5 @@
|
|||||||
import ClassSelect from '../../components/select2.js';
|
import ClassSelect from '../../components/select2.js';
|
||||||
|
import tarjetaTiradasPrecio from './tarjetaTiradasPrecio.js';
|
||||||
|
|
||||||
|
|
||||||
class DatosGenerales {
|
class DatosGenerales {
|
||||||
@ -13,6 +14,10 @@ class DatosGenerales {
|
|||||||
this.cliente = new ClassSelect($("#clienteId"), '/clientes/cliente/getSelect2', window.translations["selectCliente"]);
|
this.cliente = new ClassSelect($("#clienteId"), '/clientes/cliente/getSelect2', window.translations["selectCliente"]);
|
||||||
|
|
||||||
this.titulo = this.domItem.find("#titulo");
|
this.titulo = this.domItem.find("#titulo");
|
||||||
|
this.autor = this.domItem.find("#autor");
|
||||||
|
this.isbn = this.domItem.find("#isbn");
|
||||||
|
this.coleccion = this.domItem.find("#coleccion");
|
||||||
|
this.referenciaCliente = this.domItem.find("#referenciaCliente");
|
||||||
|
|
||||||
this.tirada1 = this.domItem.find("#tirada");
|
this.tirada1 = this.domItem.find("#tirada");
|
||||||
this.tirada2 = this.domItem.find("#tirada2");
|
this.tirada2 = this.domItem.find("#tirada2");
|
||||||
|
|||||||
@ -23,10 +23,12 @@ class Direcciones {
|
|||||||
this.divDirecciones = $(this.domItem.find('#divDirecciones'));
|
this.divDirecciones = $(this.domItem.find('#divDirecciones'));
|
||||||
this.divTiradas = this.domItem.find('#containerTiradasEnvios');
|
this.divTiradas = this.domItem.find('#containerTiradasEnvios');
|
||||||
|
|
||||||
this.checksTiradasEnvio = $('.tirada-envio');
|
this.checksTiradasEnvio = $('.check-tirada-envio');
|
||||||
|
|
||||||
this.direcciones = [];
|
this.direcciones = [];
|
||||||
|
|
||||||
|
this.direcciones.calcularPresupuesto = false;
|
||||||
|
|
||||||
this.initValidation();
|
this.initValidation();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -57,7 +59,7 @@ class Direcciones {
|
|||||||
const div = $('#divErrorEnvios'); // Selecciona el div
|
const div = $('#divErrorEnvios'); // Selecciona el div
|
||||||
|
|
||||||
div.find('.fv-plugins-message-container').remove();
|
div.find('.fv-plugins-message-container').remove();
|
||||||
|
|
||||||
if ($('.check-tirada-envio:checked').length > 0) {
|
if ($('.check-tirada-envio:checked').length > 0) {
|
||||||
let unidades = parseInt($($('.check-tirada-envio:checked')[0]).attr('tirada'));
|
let unidades = parseInt($($('.check-tirada-envio:checked')[0]).attr('tirada'));
|
||||||
let total_envio = 0;
|
let total_envio = 0;
|
||||||
@ -132,6 +134,18 @@ class Direcciones {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
obtenerDireccionesCalculo() {
|
||||||
|
let direcciones = [];
|
||||||
|
this.direcciones.forEach(direccion => {
|
||||||
|
let dir = {
|
||||||
|
id: direccion.getId(),
|
||||||
|
unidades: direccion.getUnidades(),
|
||||||
|
entregaPalets: direccion.getEntregaPalets()
|
||||||
|
};
|
||||||
|
direcciones.push(dir);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#nuevaDireccion() {
|
#nuevaDireccion() {
|
||||||
|
|
||||||
@ -185,12 +199,12 @@ class Direcciones {
|
|||||||
let id = this.direccionesCliente.getVal();
|
let id = this.direccionesCliente.getVal();
|
||||||
let unidades = this.unidadesAdd.val();
|
let unidades = this.unidadesAdd.val();
|
||||||
let entregaPalets = this.entregaPieCallero.is(':checked');
|
let entregaPalets = this.entregaPieCallero.is(':checked');
|
||||||
let dirId = "dirEnvio-" + id;
|
let divId = "dirEnvio-1";
|
||||||
let direccionesActuales = this.divDirecciones.find('.direccion-cliente');
|
let direccionesActuales = this.divDirecciones.find('.direccion-cliente');
|
||||||
if (direccionesActuales.length > 0) {
|
if (direccionesActuales.length > 0) {
|
||||||
// the the lass item
|
// the the lass item
|
||||||
let last = direccionesActuales[direccionesActuales.length - 1];
|
let last = direccionesActuales[direccionesActuales.length - 1];
|
||||||
dirId = "dirEnvio-" + (parseInt(last.id.split('-')[1]) + 1);
|
divId = "dirEnvio-" + (parseInt(last.id.split('-')[1]) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (id == null || id <= 0 || id == undefined)
|
if (id == null || id <= 0 || id == undefined)
|
||||||
@ -202,7 +216,16 @@ class Direcciones {
|
|||||||
let peticion = new Ajax('/misdirecciones/get/' + id, {}, {},
|
let peticion = new Ajax('/misdirecciones/get/' + id, {}, {},
|
||||||
(response) => {
|
(response) => {
|
||||||
|
|
||||||
let tarjeta = new tarjetaDireccion(this.divDirecciones, dirId, response.data[0]);
|
if (this.direcciones.length == 0) {
|
||||||
|
$('#loader').hide();
|
||||||
|
if (entregaPalets) {
|
||||||
|
this.calcularPresupuesto = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.calcularPresupuesto = true;
|
||||||
|
}
|
||||||
|
let tarjeta = new tarjetaDireccion(this.divDirecciones, divId, response.data[0]);
|
||||||
tarjeta.setUnidades(unidades);
|
tarjeta.setUnidades(unidades);
|
||||||
tarjeta.setEntregaPalets(entregaPalets);
|
tarjeta.setEntregaPalets(entregaPalets);
|
||||||
tarjeta.card.find('.direccion-editar').on('click', this.#editUnits.bind(self));
|
tarjeta.card.find('.direccion-editar').on('click', this.#editUnits.bind(self));
|
||||||
@ -210,7 +233,7 @@ class Direcciones {
|
|||||||
this.divDirecciones.append(tarjeta.card);
|
this.divDirecciones.append(tarjeta.card);
|
||||||
this.direcciones.push(tarjeta);
|
this.direcciones.push(tarjeta);
|
||||||
self.divDirecciones.trigger('change');
|
self.divDirecciones.trigger('change');
|
||||||
$('#loader').hide();
|
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
console.error('Error getting address');
|
console.error('Error getting address');
|
||||||
@ -236,8 +259,8 @@ class Direcciones {
|
|||||||
|
|
||||||
#editUnits(event) {
|
#editUnits(event) {
|
||||||
|
|
||||||
let id = $(event.currentTarget.closest('.direccion-cliente')).id;
|
let id = $(event.currentTarget.closest('.direccion-cliente'))[0].id;
|
||||||
let tarjeta = this.direcciones.find(direccion => direccion.id == id).card;
|
let tarjeta = this.direcciones.filter(direccion => direccion.id == id)[0].card;
|
||||||
let unidades = tarjeta.find('.unidades').text().split(' ')[0];
|
let unidades = tarjeta.find('.unidades').text().split(' ')[0];
|
||||||
|
|
||||||
let modal = $('#modalInput');
|
let modal = $('#modalInput');
|
||||||
@ -252,6 +275,9 @@ class Direcciones {
|
|||||||
let nuevo_valor = parseInt(modal.find('.modal-body input').val());
|
let nuevo_valor = parseInt(modal.find('.modal-body input').val());
|
||||||
if (nuevo_valor > 0) {
|
if (nuevo_valor > 0) {
|
||||||
tarjeta.find('.unidades').text(nuevo_valor + ' unidades');
|
tarjeta.find('.unidades').text(nuevo_valor + ' unidades');
|
||||||
|
if (this.direcciones.length > 1) {
|
||||||
|
this.calcularPresupuesto = true;
|
||||||
|
}
|
||||||
this.divDirecciones.trigger('change');
|
this.divDirecciones.trigger('change');
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -266,10 +292,22 @@ class Direcciones {
|
|||||||
let tarjeta = event.currentTarget.closest('.direccion-cliente');
|
let tarjeta = event.currentTarget.closest('.direccion-cliente');
|
||||||
let id = tarjeta.id;
|
let id = tarjeta.id;
|
||||||
|
|
||||||
|
const numTarjetasAntes = this.direcciones.length;
|
||||||
|
if (numTarjetasAntes == 2) {
|
||||||
|
this.calcularPresupuesto = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.direcciones = this.direcciones.filter(direccion => direccion.getId() !== id);
|
||||||
|
|
||||||
tarjeta.remove();
|
tarjeta.remove();
|
||||||
this.divDirecciones.trigger('change');
|
this.divDirecciones.trigger('change');
|
||||||
|
}
|
||||||
|
|
||||||
this.direcciones = this.direcciones.filter(direccion => direccion.id != id);
|
getSelectedTirada() {
|
||||||
|
if ($('.check-tirada-envio:checked').length > 0)
|
||||||
|
return parseInt($($('.check-tirada-envio:checked')[0]).attr('tirada'));
|
||||||
|
else
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -318,7 +318,7 @@ class DisenioCubierta {
|
|||||||
acabados.plastificado = this.domItem.find("#plastificado ").children("option:selected").val();
|
acabados.plastificado = this.domItem.find("#plastificado ").children("option:selected").val();
|
||||||
acabados.barniz = this.domItem.find("#barniz").children("option:selected").val();
|
acabados.barniz = this.domItem.find("#barniz").children("option:selected").val();
|
||||||
acabados.estampado = this.domItem.find("#estampado").children("option:selected").val();
|
acabados.estampado = this.domItem.find("#estampado").children("option:selected").val();
|
||||||
acabados.retractilado = this.domItem.find("#retractilado").hasClass('selected') ? true : false;
|
acabados.retractilado = this.domItem.find("#retractilado").hasClass('selected') ? 'RETR' : 'NONE';
|
||||||
}
|
}
|
||||||
return acabados;
|
return acabados;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@ -23,6 +23,10 @@ class PresupuestoCliente {
|
|||||||
this.btnSave = $('#btnSave');
|
this.btnSave = $('#btnSave');
|
||||||
this.btnConfirm = $('#btnConfirm');
|
this.btnConfirm = $('#btnConfirm');
|
||||||
|
|
||||||
|
this.c = $("#c");
|
||||||
|
this.lc = $("#lc");
|
||||||
|
this.lsc = $("#lsc");
|
||||||
|
|
||||||
this.datosGenerales = new DatosGenerales($("#datos-generales"), this.clientePresupuestoWizard, this.validationStepper);
|
this.datosGenerales = new DatosGenerales($("#datos-generales"), this.clientePresupuestoWizard, this.validationStepper);
|
||||||
this.disenioInterior = new DisenioInterior($("#interior-libro"), this.clientePresupuestoWizard, this.validationStepper);
|
this.disenioInterior = new DisenioInterior($("#interior-libro"), this.clientePresupuestoWizard, this.validationStepper);
|
||||||
this.disenioCubierta = new DisenioCubierta($("#cubierta-libro"), this.clientePresupuestoWizard, this.validationStepper);
|
this.disenioCubierta = new DisenioCubierta($("#cubierta-libro"), this.clientePresupuestoWizard, this.validationStepper);
|
||||||
@ -43,10 +47,7 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
init() {
|
init() {
|
||||||
|
|
||||||
this.btnNext.on('click', this.#nextStep.bind(this));
|
this.RELLENAR_PRESUPUESTO(false);
|
||||||
this.btnPrev.on('click', this.#prevtStep.bind(this));
|
|
||||||
|
|
||||||
$(".calcular-presupuesto").on('change', this.checkForm.bind(this));
|
|
||||||
|
|
||||||
// Fuerza el foco en el campo de búsqueda de select2
|
// Fuerza el foco en el campo de búsqueda de select2
|
||||||
$(document).on('select2:open', () => {
|
$(document).on('select2:open', () => {
|
||||||
@ -60,18 +61,35 @@ class PresupuestoCliente {
|
|||||||
this.disenioCubierta.init();
|
this.disenioCubierta.init();
|
||||||
this.direcciones.init();
|
this.direcciones.init();
|
||||||
|
|
||||||
//this.RELLENAR_PRESUPUESTO();
|
|
||||||
|
|
||||||
|
this.btnNext.on('click', this.#nextStep.bind(this));
|
||||||
|
this.btnPrev.on('click', this.#prevtStep.bind(this));
|
||||||
|
this.btnSave.on('click', this.#savePresupuesto.bind(this));
|
||||||
|
|
||||||
|
$(".calcular-presupuesto").on('change', this.checkForm.bind(this));
|
||||||
|
|
||||||
|
this.RELLENAR_PRESUPUESTO(true);
|
||||||
|
|
||||||
|
if(window.location.href.includes("edit")){
|
||||||
|
//load
|
||||||
|
const successMessage = sessionStorage.getItem('message');
|
||||||
|
if(successMessage){
|
||||||
|
popSuccessAlert(successMessage);
|
||||||
|
sessionStorage.removeItem('message');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
checkForm(event) {
|
checkForm(event) {
|
||||||
|
|
||||||
if (event.target.id === 'divDirecciones') {
|
if (event.target.id === 'divDirecciones') {
|
||||||
this.actualizarTiradasEnvio = false;
|
if (!this.direcciones.calcularPresupuesto) {
|
||||||
if(this.direcciones.direcciones.length == 1 && this.direcciones.direcciones[0].getEntregaPalets() == false) {
|
this.actualizarTiradasEnvio = false;
|
||||||
|
$('#loader').hide();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.actualizarTiradasEnvio = true;
|
this.actualizarTiradasEnvio = true;
|
||||||
@ -82,10 +100,10 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
this.divTiradasPrecios.empty();
|
this.divTiradasPrecios.empty();
|
||||||
|
|
||||||
let datos_to_check = this.datos;
|
let datos_to_check = { ...this.datos };
|
||||||
if (datos_to_check.direcciones) {
|
if (datos_to_check.direcciones) {
|
||||||
delete datos_to_check.direcciones;
|
delete datos_to_check.direcciones;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Object.values(datos_to_check).every(this.#isValidDataForm)) {
|
if (Object.values(datos_to_check).every(this.#isValidDataForm)) {
|
||||||
try {
|
try {
|
||||||
@ -96,6 +114,7 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
this.ajax_calcular.setData(this.datos);
|
this.ajax_calcular.setData(this.datos);
|
||||||
this.ajax_calcular.post();
|
this.ajax_calcular.post();
|
||||||
|
this.direcciones.calcularPresupuesto = false;
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
@ -106,59 +125,66 @@ class PresupuestoCliente {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
RELLENAR_PRESUPUESTO() {
|
RELLENAR_PRESUPUESTO(finalizar) {
|
||||||
|
|
||||||
$("#titulo").val("Titulo del libro");
|
if (finalizar) {
|
||||||
$("#titulo").trigger('change');
|
|
||||||
|
|
||||||
const clienteId = $("#clienteId");
|
$("#titulo").val("Titulo del libro");
|
||||||
const newOption = new Option("Cliente Potencial", "1817", true, true);
|
$("#titulo").trigger('change');
|
||||||
clienteId.append(newOption).trigger('change');
|
|
||||||
|
|
||||||
const papelFormatoId = $("#papelFormatoId");
|
const clienteId = $("#clienteId");
|
||||||
const newOption2 = new Option("148 x 210", "1", true, true);
|
const newOption = new Option("Cliente Potencial", "1817", true, true);
|
||||||
papelFormatoId.append(newOption2).trigger('change');
|
clienteId.append(newOption).trigger('change');
|
||||||
|
|
||||||
|
const papelFormatoId = $("#papelFormatoId");
|
||||||
|
const newOption2 = new Option("148 x 210", "1", true, true);
|
||||||
|
papelFormatoId.append(newOption2).trigger('change');
|
||||||
|
|
||||||
|
|
||||||
$("#paginasColor").val("6");
|
$("#paginasColor").val("6");
|
||||||
$("#paginasColor").trigger('change');
|
$("#paginasColor").trigger('change');
|
||||||
|
|
||||||
$("#fresado").trigger("click");
|
$("#fresado").trigger("click");
|
||||||
|
|
||||||
|
|
||||||
$("#colorPremium").trigger("click");
|
$("#colorPremium").trigger("click");
|
||||||
$("#offsetBlanco").trigger("click");
|
$("#offsetBlanco").trigger("click");
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
$("#gramaje90").trigger("click");
|
$("#gramaje90").trigger("click");
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
$("#tapaDura").trigger("click");
|
$("#tapaDura").trigger("click");
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
$("#btnNext").trigger("click");
|
$("#btnNext").trigger("click");
|
||||||
}, 0);
|
}, 0);
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
$("#btnNext").trigger("click");
|
$("#btnNext").trigger("click");
|
||||||
}, 0);
|
}, 0);
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
$("#btnNext").trigger("click");
|
$("#btnNext").trigger("click");
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
$("#unidadesEnvio").val("50");
|
$("#unidadesEnvio").val("50");
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$("#titulo").trigger('change');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
stepperHandler() {
|
stepperHandler() {
|
||||||
|
|
||||||
const element = $('.fv-plugins-bootstrap5.fv-plugins-framework.active');
|
const element = $('.fv-plugins-bootstrap5.fv-plugins-framework.active');
|
||||||
|
|
||||||
switch (element.attr('id')) {
|
switch (element.attr('id')) {
|
||||||
case 'datos-generales':
|
case 'datos-generales':
|
||||||
this.btnPrev.addClass('d-none');
|
this.btnPrev.addClass('d-none');
|
||||||
@ -193,6 +219,41 @@ class PresupuestoCliente {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#savePresupuesto() {
|
||||||
|
|
||||||
|
this.#getDatos(true);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$('#loader').show();
|
||||||
|
|
||||||
|
if(window.location.href.includes("edit")){
|
||||||
|
this.datos["id"] = window.location.href.split("/").pop();
|
||||||
|
}
|
||||||
|
new Ajax('/presupuestocliente/guardar',
|
||||||
|
this.datos,
|
||||||
|
{},
|
||||||
|
(response) => {
|
||||||
|
$('#loader').hide();
|
||||||
|
console.log(response);
|
||||||
|
if(this.datos["confirmar"] || window.location.href.includes("add")){
|
||||||
|
sessionStorage.setItem('message', response.message);
|
||||||
|
window.location.href = response.url + '/' + response.status;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
popSuccessAlert(response.message);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
() => { $('#loader').hide(); }
|
||||||
|
).post();
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
$('#loader').hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#procesarPresupuesto(response) {
|
#procesarPresupuesto(response) {
|
||||||
|
|
||||||
$('#loader').hide();
|
$('#loader').hide();
|
||||||
@ -213,6 +274,8 @@ class PresupuestoCliente {
|
|||||||
if (this.actualizarTiradasEnvio)
|
if (this.actualizarTiradasEnvio)
|
||||||
this.direcciones.insertTirada(response.tiradas[i]);
|
this.direcciones.insertTirada(response.tiradas[i]);
|
||||||
|
|
||||||
|
this.lc.val(parseFloat(response.info.lomo_cubierta).toFixed(2));
|
||||||
|
this.lsc.val(parseFloat(response.info.lomo_sobrecubierta).toFixed(2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// DEBUG
|
// DEBUG
|
||||||
@ -247,13 +310,13 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
|
|
||||||
#prevtStep() {
|
#prevtStep() {
|
||||||
if (this.validationStepper._currentIndex >= 1 && this.validationStepper._currentIndex <= 4){
|
if (this.validationStepper._currentIndex >= 1 && this.validationStepper._currentIndex <= 4) {
|
||||||
this.validationStepper.previous();
|
this.validationStepper.previous();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#getDatos() {
|
#getDatos(save = false) {
|
||||||
|
|
||||||
this.datos = {
|
this.datos = {
|
||||||
|
|
||||||
@ -314,8 +377,23 @@ class PresupuestoCliente {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.direcciones.direcciones.length > 0) {
|
if (this.direcciones.direcciones.length > 0) {
|
||||||
this.datos.direcciones = this.direcciones.direcciones;
|
this.datos.direcciones = [];
|
||||||
|
for (let i = 0; i < this.direcciones.direcciones.length; i++) {
|
||||||
|
this.datos.direcciones.push(this.direcciones.direcciones[i].getFormData());
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (save) {
|
||||||
|
this.datos.datosCabecera = {
|
||||||
|
titulo: this.datosGenerales.titulo.val(),
|
||||||
|
autor: this.datosGenerales.autor.val(),
|
||||||
|
isbn: this.datosGenerales.isbn.val(),
|
||||||
|
coleccion: this.datosGenerales.coleccion.val(),
|
||||||
|
referenciaCliente: this.datosGenerales.referenciaCliente.val(),
|
||||||
|
}
|
||||||
|
this.datos.selectedTirada = this.direcciones.getSelectedTirada();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,8 @@
|
|||||||
|
|
||||||
/* Pseudo-elemento que muestra el tick */
|
/* Pseudo-elemento que muestra el tick */
|
||||||
.image-container.selected::after {
|
.image-container.selected::after {
|
||||||
content: '✔'; /* Símbolo de tick */
|
content: '✔';
|
||||||
|
/* Símbolo de tick */
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 90px;
|
top: 90px;
|
||||||
right: 25px;
|
right: 25px;
|
||||||
@ -64,3 +65,396 @@
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.loader * {
|
||||||
|
border: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loader {
|
||||||
|
--hue: 223;
|
||||||
|
--bg: hsl(var(--hue), 10%, 90%);
|
||||||
|
--fg: hsl(var(--hue), 10%, 10%);
|
||||||
|
--primary: hsl(var(--hue), 90%, 55%);
|
||||||
|
--primary-l: hsl(var(--hue), 90%, 65%);
|
||||||
|
--primary-d: hsl(var(--hue), 90%, 45%);
|
||||||
|
--white: hsl(var(--hue), 10%, 100%);
|
||||||
|
--white-d: hsl(var(--hue), 10%, 45%);
|
||||||
|
font-size: calc(16px + (24 - 16) * (100vw - 320px) / (1280 - 320));
|
||||||
|
background-color: rgba(255, 255, 255, 0);
|
||||||
|
color: var(--fg);
|
||||||
|
font: 1em/1.5 sans-serif;
|
||||||
|
height: 100vh;
|
||||||
|
position: fixed; /* Fijo para cubrir la pantalla */
|
||||||
|
left: 50%; /* Centramos horizontalmente */
|
||||||
|
top: 50%; /* Centramos verticalmente */
|
||||||
|
transform: translate(-50%, -50%); /* Ajuste para centrar el loader */
|
||||||
|
width: auto; /* Se ajusta automáticamente */
|
||||||
|
height: auto; /* Se ajusta automáticamente */
|
||||||
|
z-index: 9999; /* Mantener por encima de otros elementos */
|
||||||
|
display: flex; /* Para centrar contenido */
|
||||||
|
justify-content: center; /* Centrar horizontalmente */
|
||||||
|
align-items: center; /* Centrar verticalmente */
|
||||||
|
background-color: rgba(255, 255, 255, 0); /* Fondo completamente transparente */
|
||||||
|
}
|
||||||
|
|
||||||
|
.book,
|
||||||
|
.book__pg-shadow,
|
||||||
|
.book__pg {
|
||||||
|
animation: cover 7s ease-in-out infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.book {
|
||||||
|
background-color: var(--primary-l);
|
||||||
|
border-radius: 0.25em;
|
||||||
|
box-shadow:
|
||||||
|
0 0.25em 0.5em hsla(0, 0%, 0%, 0.3),
|
||||||
|
0 0 0 0.25em var(--primary) inset;
|
||||||
|
padding: 0.25em;
|
||||||
|
perspective: 37.5em;
|
||||||
|
position: relative;
|
||||||
|
width: 8em;
|
||||||
|
height: 6em;
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
transform-style: preserve-3d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.book__pg-shadow,
|
||||||
|
.book__pg {
|
||||||
|
position: absolute;
|
||||||
|
left: 0.25em;
|
||||||
|
width: calc(50% - 0.25em);
|
||||||
|
}
|
||||||
|
|
||||||
|
.book__pg-shadow {
|
||||||
|
animation-name: shadow;
|
||||||
|
background-image: linear-gradient(-45deg, hsla(0, 0%, 0%, 0) 50%, hsla(0, 0%, 0%, 0.3) 50%);
|
||||||
|
filter: blur(0.25em);
|
||||||
|
top: calc(100% - 0.25em);
|
||||||
|
height: 3.75em;
|
||||||
|
transform: scaleY(0);
|
||||||
|
transform-origin: 100% 0%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.book__pg {
|
||||||
|
animation-name: pg1;
|
||||||
|
background-color: var(--white);
|
||||||
|
background-image: linear-gradient(90deg, hsla(var(--hue), 10%, 90%, 0) 87.5%, hsl(var(--hue), 10%, 90%));
|
||||||
|
height: calc(100% - 0.5em);
|
||||||
|
transform-origin: 100% 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.book__pg--2,
|
||||||
|
.book__pg--3,
|
||||||
|
.book__pg--4 {
|
||||||
|
background-image:
|
||||||
|
repeating-linear-gradient(hsl(var(--hue), 10%, 10%) 0 0.125em, hsla(var(--hue), 10%, 10%, 0) 0.125em 0.5em),
|
||||||
|
linear-gradient(90deg, hsla(var(--hue), 10%, 90%, 0) 87.5%, hsl(var(--hue), 10%, 90%));
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 2.5em 4.125em, 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.book__pg--2 {
|
||||||
|
animation-name: pg2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.book__pg--3 {
|
||||||
|
animation-name: pg3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.book__pg--4 {
|
||||||
|
animation-name: pg4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.book__pg--5 {
|
||||||
|
animation-name: pg5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Dark theme */
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--bg: hsl(var(--hue), 10%, 30%);
|
||||||
|
--fg: hsl(var(--hue), 10%, 90%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Animations */
|
||||||
|
@keyframes cover {
|
||||||
|
|
||||||
|
from,
|
||||||
|
5%,
|
||||||
|
45%,
|
||||||
|
55%,
|
||||||
|
95%,
|
||||||
|
to {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
background-color: var(--primary-l);
|
||||||
|
}
|
||||||
|
|
||||||
|
10%,
|
||||||
|
40%,
|
||||||
|
60%,
|
||||||
|
90% {
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
background-color: var(--primary-d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes shadow {
|
||||||
|
|
||||||
|
from,
|
||||||
|
10.01%,
|
||||||
|
20.01%,
|
||||||
|
30.01%,
|
||||||
|
40.01% {
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
transform: translate3d(0, 0, 1px) scaleY(0) rotateY(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
5%,
|
||||||
|
15%,
|
||||||
|
25%,
|
||||||
|
35%,
|
||||||
|
45%,
|
||||||
|
55%,
|
||||||
|
65%,
|
||||||
|
75%,
|
||||||
|
85%,
|
||||||
|
95% {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
transform: translate3d(0, 0, 1px) scaleY(0.2) rotateY(90deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
10%,
|
||||||
|
20%,
|
||||||
|
30%,
|
||||||
|
40%,
|
||||||
|
50%,
|
||||||
|
to {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
transform: translate3d(0, 0, 1px) scaleY(0) rotateY(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
50.01%,
|
||||||
|
60.01%,
|
||||||
|
70.01%,
|
||||||
|
80.01%,
|
||||||
|
90.01% {
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
transform: translate3d(0, 0, 1px) scaleY(0) rotateY(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
60%,
|
||||||
|
70%,
|
||||||
|
80%,
|
||||||
|
90%,
|
||||||
|
to {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
transform: translate3d(0, 0, 1px) scaleY(0) rotateY(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pg1 {
|
||||||
|
|
||||||
|
from,
|
||||||
|
to {
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0.4deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
10%,
|
||||||
|
15% {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
20%,
|
||||||
|
80% {
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
background-color: var(--white-d);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
85%,
|
||||||
|
90% {
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(180deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pg2 {
|
||||||
|
|
||||||
|
from,
|
||||||
|
to {
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
background-color: var(--white-d);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0.3deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
5%,
|
||||||
|
10% {
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0.3deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
20%,
|
||||||
|
25% {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(179.9deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
30%,
|
||||||
|
70% {
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
background-color: var(--white-d);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(179.9deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
75%,
|
||||||
|
80% {
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(179.9deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
90%,
|
||||||
|
95% {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0.3deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pg3 {
|
||||||
|
|
||||||
|
from,
|
||||||
|
10%,
|
||||||
|
90%,
|
||||||
|
to {
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
background-color: var(--white-d);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0.2deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
15%,
|
||||||
|
20% {
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0.2deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
30%,
|
||||||
|
35% {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(179.8deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
40%,
|
||||||
|
60% {
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
background-color: var(--white-d);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(179.8deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
65%,
|
||||||
|
70% {
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(179.8deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
80%,
|
||||||
|
85% {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0.2deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pg4 {
|
||||||
|
|
||||||
|
from,
|
||||||
|
20%,
|
||||||
|
80%,
|
||||||
|
to {
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
background-color: var(--white-d);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0.1deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
25%,
|
||||||
|
30% {
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0.1deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
40%,
|
||||||
|
45% {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(179.7deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
background-color: var(--white-d);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(179.7deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
55%,
|
||||||
|
60% {
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(179.7deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
70%,
|
||||||
|
75% {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0.1deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pg5 {
|
||||||
|
|
||||||
|
from,
|
||||||
|
30%,
|
||||||
|
70%,
|
||||||
|
to {
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
background-color: var(--white-d);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
35%,
|
||||||
|
40% {
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(179.6deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
60%,
|
||||||
|
65% {
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
background-color: var(--white);
|
||||||
|
transform: translate3d(0, 0, 1px) rotateY(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
21613
xdebug.log
21613
xdebug.log
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user