diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php
index f7b07bb6..58673a18 100644
--- a/ci4/app/Config/Routes.php
+++ b/ci4/app/Config/Routes.php
@@ -679,6 +679,8 @@ $routes->group('importador', ['namespace' => 'App\Controllers\Presupuestos'], fu
$routes->get('', 'Importadorpresupuestos::index', ['as' => 'importadorPresupuestos']);
$routes->get('clientlist', 'Importadorpresupuestos::getClientList', ['as' => 'clientList']);
$routes->get('presupuestoslist', 'Importadorpresupuestos::getPresupuestosList', ['as' => 'presupuestosList']);
+ $routes->get('getencuadernacion', 'Importadorpresupuestos::getEncuadernacionList');
+ $routes->get('getpresupuestodata', 'Importadorpresupuestos::getPresupuesto', ['as' => 'getPresupuesto']);
});
$routes->resource('presupuestocliente', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestocliente', 'except' => 'show,new,create,update']);
diff --git a/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php b/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php
index 640e8945..48c594ee 100644
--- a/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php
+++ b/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php
@@ -4,6 +4,7 @@ namespace App\Controllers\Presupuestos;
use App\Models\Presupuestos\ImportadorModel;
use App\Models\Clientes\ClienteModel;
+use stdClass;
class Importadorpresupuestos extends \App\Controllers\BaseResourceController
{
@@ -47,6 +48,12 @@ class Importadorpresupuestos extends \App\Controllers\BaseResourceController
'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Presupuestos.moduleName')]),
];
+ $this->viewData['serviciosAutomaticos'] = [
+ 'ferro' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro')->value,
+ 'prototipo' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_prototipo')->value,
+ 'ferro_digital' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro_digital')->value,
+ ];
+
$viewData = array_merge($this->viewData, $viewData); // merge any possible values from the parent controller class
return view(static::$viewPath . 'viewImportadorPresupuestos', $viewData);
@@ -72,7 +79,8 @@ class Importadorpresupuestos extends \App\Controllers\BaseResourceController
return $this->response->setJSON(array_values($commonData));
}
- public function getPresupuestosList(){
+ public function getPresupuestosList()
+ {
$search = "";
@@ -85,4 +93,333 @@ class Importadorpresupuestos extends \App\Controllers\BaseResourceController
return $this->response->setJSON($data);
}
+
+
+ public function getEncuadernacionList()
+ {
+
+ $search = "";
+
+ if ($this->request->getGet("q")) {
+ $search = $this->request->getGet("q");
+ }
+
+ $model = model('App\Models\Configuracion\TipoPresupuestoModel');
+ $data = $model->getLibros($search);
+
+ return $this->response->setJSON($data);
+ }
+
+ public function getPresupuesto()
+ {
+
+ if ($this->request->isAJAX()) {
+
+ $id = $this->request->getGet("id") ?? 0;
+
+ if ($id == 0) {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+
+ $data = (new ImportadorModel())->getPresupuestoForImport($id);
+
+ $model_papel_formato = model('App\Models\Configuracion\PapelFormatoModel');
+ $papel_formato = $model_papel_formato->where('is_deleted', 0)->where('ancho>', 0)->findAll();
+
+ $papel_formato_id = null;
+ $papel_formato_texto = null;
+
+ foreach ($papel_formato as $formato) {
+ if ($data['datosGenerales']->papel_formato_personalizado) {
+ if ($formato->ancho == $data['datosGenerales']->papel_formato_personalizado_ancho && $formato->alto == $data['datosGenerales']->papel_formato_personalizado_alto) {
+ $papel_formato_id = $formato->id;
+ $papel_formato_texto = $formato->ancho . 'x' . $formato->alto;
+ break;
+ }
+ } else {
+ if ($formato->ancho == $data['datosGenerales']->papel_formato_ancho && $formato->alto == $data['datosGenerales']->papel_formato_alto) {
+ $papel_formato_id = $formato->id;
+ $papel_formato_texto = $formato->ancho . 'x' . $formato->alto;
+ break;
+ }
+ }
+ }
+
+ $datosGenerales = new \stdClass();
+ $datosGenerales->tirada = $data['datosGenerales']->tirada;
+ $datosGenerales->paginas = $data['datosGenerales']->paginas;
+
+ if ($papel_formato_id != null) {
+
+ $datosGenerales->papel_formato_personalizado = 0;
+ $datosGenerales->papel_formato_id = $papel_formato_id;
+ $datosGenerales->papel_formato_texto = $papel_formato_texto;
+ } else {
+ $datosGenerales->papel_formato_personalizado = 1;
+ if ($data['datosGenerales']->papel_formato_personalizado) {
+ $datosGenerales->papel_formato_ancho = $data['datosGenerales']->papel_formato_personalizado_ancho;
+ $datosGenerales->papel_formato_alto = $data['datosGenerales']->papel_formato_personalizado_alto;
+ } else {
+ $datosGenerales->papel_formato_ancho = $data['datosGenerales']->papel_formato_ancho;
+ $datosGenerales->papel_formato_alto = $data['datosGenerales']->papel_formato_alto;
+ }
+ }
+
+ $data['manipulados'] = array_map(fn($item) => $item->nombre, $data['manipulados']);
+ $data['acabados'] = array_map(fn($item) => $item->nombre, $data['acabados']);
+
+ $encuadernacion = $this->getEncuadernacion($data['manipulados']);
+ $lineas = $this->getLineasPresupuesto($data['lineas']);
+ $acabados = $this->getAcabados($data['acabados']);
+
+ $returnData = [
+ 'success' => true,
+ 'data' => [
+ 'datosGenerales' => $datosGenerales,
+ 'encuadernacion' => $encuadernacion,
+ 'lineas' => $lineas,
+ 'acabados' => $acabados,
+ 'servicios' => [
+ 'ferro' => $data['datosGenerales']->ferro,
+ 'ferroDigital' => $data['datosGenerales']->ferro_digital,
+ 'marcapaginas' => $data['datosGenerales']->marcapaginas,
+ 'prototipo' => $data['datosGenerales']->prototipo
+ ]
+ ]
+
+ ];
+
+ return $this->response->setJSON($returnData);
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
+ private function getEncuadernacion($manipulados)
+ {
+
+ $encuadernacion_values = [
+ 'libroFresadoTapaDura' => 'Tapa Dura al Cromo Fresada',
+ 'libroFresadoTapaBlanda' => 'Rústica Fresada',
+ 'libroCosidoTapaDura' => 'Tapa Dura al Cromo Cosida Hilo',
+ 'libroCosidoTapaBlanda' => 'Rústica Cosida Hilo vegetal',
+ 'libroEspiralTapaDura' => 'Espiral',
+ 'libroGrapado' => 'Cosido a caballete 2 grapas'
+ ];
+
+ $encuadernacionOld = "";
+ $encuadernacion = new stdClass();
+
+ foreach ($manipulados as $manipulado) {
+ // check if manipulado is like strlower encuadernacion_values values
+ foreach ($encuadernacion_values as $valor) {
+ if (strpos(strtolower($manipulado), strtolower($valor)) !== false) {
+ $encuadernacionOld = $manipulado;
+ $key = array_search(strtolower($valor), array_map('strtolower', $encuadernacion_values));
+ $model = model('App\Models\Configuracion\TipoPresupuestoModel');
+ $encuadernacion = $model->select('id, codigo, encuadernacion')->where('codigo', $key)->first();
+ break;
+ }
+ }
+ }
+
+ return [
+ 'encuadernacion' => $encuadernacion,
+ 'encuadernacionOld' => $encuadernacionOld
+ ];
+ }
+
+ private function getLineasPresupuesto($lineas)
+ {
+
+ $isHq = false;
+ foreach ($lineas as $linea) {
+ if ($linea->tipo == 'bn' || $linea->tipo == 'color' || $linea->tipo == 'rotativa') {
+ if ($linea->hq == 1) {
+ $isHq = true;
+ break;
+ }
+ }
+ }
+
+ $model_papelGenerico = model('App\Models\Configuracion\PapelGenericoModel');
+
+
+ $bn = new stdClass();
+ $color = new stdClass();
+ $cubierta = new stdClass();
+ $sobrecubierta = new stdClass();
+
+ foreach ($lineas as $linea) {
+
+ $newPapel = $model_papelGenerico->where('code', $linea->papel_code)->where('deleted_at', NULL)->first();
+
+ if ($linea->tipo == 'bn') {
+ $bn->papel_id = $linea->papel_id;
+ $bn->papel_nombre = $linea->papel_nombre;
+ $bn->papel_code = $linea->papel_code;
+ $bn->gramaje = $linea->gramaje;
+ $bn->paginas = $linea->paginas;
+ $bn->new_papel_id = $newPapel->id;
+ $bn->new_papel_nombre = $newPapel->nombre;
+ }
+
+ else if ($linea->tipo == 'color') {
+ $color->papel_id = $linea->papel_id;
+ $color->papel_nombre = $linea->papel_nombre;
+ $color->papel_code = $linea->papel_code;
+ $color->gramaje = $linea->gramaje;
+ $color->paginas = $linea->paginas;
+ $color->new_papel_id = $newPapel->id;
+ $color->new_papel_nombre = $newPapel->nombre;
+ }
+
+ else if ($linea->tipo == 'portada') {
+ $cubierta->papel_id = $linea->papel_id;
+ $cubierta->papel_nombre = $linea->papel_nombre;
+ $cubierta->papel_code = $linea->papel_code;
+ $cubierta->gramaje = $linea->gramaje;
+ $cubierta->paginas = $linea->paginas;
+ $cubierta->new_papel_id = $newPapel->id;
+ $cubierta->new_papel_nombre = $newPapel->nombre;
+ $cubierta->solapas = $linea->solapas_ancho;
+ }
+
+ else if ($linea->tipo == 'cubierta') {
+ $sobrecubierta->papel_id = $linea->papel_id;
+ $sobrecubierta->papel_nombre = $linea->papel_nombre;
+ $sobrecubierta->papel_code = $linea->papel_code;
+ $sobrecubierta->gramaje = $linea->gramaje;
+ $sobrecubierta->paginas = $linea->paginas;
+ $sobrecubierta->new_papel_id = $newPapel->id;
+ $sobrecubierta->new_papel_nombre = $newPapel->nombre;
+ $sobrecubierta->solapas = $linea->solapas_ancho;
+ }
+
+ else if ($linea->tipo == 'rotativa') {
+
+ if ($linea->rotativa_impresion == 'negro') {
+ $bn->papel_id = $linea->papel_id;
+ $bn->papel_nombre = $linea->papel_nombre;
+ $bn->papel_code = $linea->papel_code;
+ $bn->gramaje = $linea->gramaje;
+ $bn->paginas = $linea->paginas;
+ $bn->new_papel_id = $newPapel->id;
+ $bn->new_papel_nombre = $newPapel->nombre;
+ } else {
+ if ($linea->paginas == $linea->rotativa_pag_color) {
+ $color->papel_id = $linea->papel_id;
+ $color->papel_nombre = $linea->papel_nombre;
+ $color->papel_code = $linea->papel_code;
+ $color->gramaje = $linea->gramaje;
+ $color->paginas = $linea->paginas;
+ $color->new_papel_id = $newPapel->id;
+ $color->new_papel_nombre = $newPapel->nombre;
+ } else {
+
+ $bn->papel_id = $color->papel_id = $linea->papel_id;
+ $bn->papel_nombre = $color->papel_nombre = $linea->papel_nombre;
+ $bn->papel_code = $color->papel_code = $linea->papel_code;
+ $bn->gramaje = $color->gramaje = $linea->gramaje;
+ $color->paginas = $linea->rotativa_pag_color;
+ $bn->paginas = intval($linea->paginas) - intval($linea->rotativa_pag_color);
+ $bn->new_papel_id = $color->new_papel_id = $newPapel->id;
+ $bn->new_papel_nombre = $color->new_papel_nombre = $newPapel->nombre;
+ }
+ }
+ }
+ }
+ return [
+ 'bn' => $bn,
+ 'color' => $color,
+ 'cubierta' => $cubierta,
+ 'sobrecubierta' => $sobrecubierta,
+ 'isHq' => $isHq
+ ];
+ }
+
+ private function getAcabados($acabados){
+
+ $acabadoCubierta = "";
+ $reservaUVICubierta = false;
+ $acabadoSobrecubierta = "";
+ $reservaUVISobrecubierta = false;
+
+ $acabadoCubiertaOld = "";
+ $acabadoSobrecubiertaOld = "";
+
+ // por defecto, si pone portada o no pone ni portada ni cubierta, se asigna a la cubierta (portada en el antiguo)
+ foreach ($acabados as $acabado) {
+ if (strpos(strtolower($acabado), 'portada') !== false ||
+ (strpos(strtolower($acabado), 'portada') === false &&
+ strpos(strtolower($acabado), 'sobre cubierta') === false)) {
+ // palabras clave: brillo, mate, gofrado, antirayado, antirrayado, sandy, uvi para buscar en acabado
+ if(strpos(strtolower($acabado), 'brillo') !== false){
+ $acabadoCubierta = 1;
+ $acabadoCubiertaOld = strlen($acabadoCubiertaOld)==0? $acabado: $acabadoCubiertaOld . ', ' . $acabado;
+ } else if(strpos(strtolower($acabado), 'gofrado') !== false){
+ $acabadoCubierta = 6;
+ $acabadoCubiertaOld = strlen($acabadoCubiertaOld)==0? $acabado: $acabadoCubiertaOld . ', ' . $acabado;
+ } else if(strpos(strtolower($acabado), 'antirayado') !== false || strpos(strtolower($acabado), 'antirrayado') !== false){
+ $acabadoCubierta = 8;
+ $acabadoCubiertaOld = strlen($acabadoCubiertaOld)==0? $acabado: $acabadoCubiertaOld . ', ' . $acabado;
+ } else if(strpos(strtolower($acabado), 'sandy') !== false){
+ $acabadoCubierta = 9;
+ $acabadoCubiertaOld = strlen($acabadoCubiertaOld)==0? $acabado: $acabadoCubiertaOld . ', ' . $acabado;
+ } else if(strpos(strtolower($acabado), 'uvi') !== false){
+ $reservaUVICubierta = true;
+ $acabadoCubiertaOld = strlen($acabadoCubiertaOld)==0? $acabado: $acabadoCubiertaOld . ', ' . $acabado;
+ } else if(strpos(strtolower($acabado), 'mate') !== false){
+ $acabadoCubierta = 5;
+ $acabadoCubiertaOld = strlen($acabadoCubiertaOld)==0? $acabado: $acabadoCubiertaOld . ', ' . $acabado;
+ }
+ }
+ else if (strpos(strtolower($acabado), 'sobre cubierta') !== false) {
+ // palabras clave: brillo, mate, gofrado, antirayado, antirrayado, sandy, uvi para buscar en acabado
+ if(strpos(strtolower($acabado), 'brillo') !== false){
+ $acabadoSobrecubierta = 1;
+ $acabadoSobrecubiertaOld = strlen($acabadoSobrecubiertaOld)==0? $acabado: $acabadoSobrecubiertaOld . ', ' . $acabado;
+ } else if(strpos(strtolower($acabado), 'gofrado') !== false){
+ $acabadoSobrecubierta = 6;
+ $acabadoSobrecubiertaOld = strlen($acabadoSobrecubiertaOld)==0? $acabado: $acabadoSobrecubiertaOld . ', ' . $acabado;
+ } else if(strpos(strtolower($acabado), 'antirayado') !== false || strpos(strtolower($acabado), 'antirrayado') !== false){
+ $acabadoSobrecubierta = 8;
+ $acabadoSobrecubiertaOld = strlen($acabadoSobrecubiertaOld)==0? $acabado: $acabadoSobrecubiertaOld . ', ' . $acabado;
+ } else if(strpos(strtolower($acabado), 'sandy') !== false){
+ $acabadoSobrecubierta = 9;
+ $acabadoSobrecubiertaOld = strlen($acabadoSobrecubiertaOld)==0? $acabado: $acabadoSobrecubiertaOld . ', ' . $acabado;
+ } else if(strpos(strtolower($acabado), 'uvi') !== false){
+ $reservaUVISobrecubierta = true;
+ $acabadoSobrecubiertaOld = strlen($acabadoSobrecubiertaOld)==0? $acabado: $acabadoSobrecubiertaOld . ', ' . $acabado;
+ } else if(strpos(strtolower($acabado), 'mate') !== false){
+ $acabadoSobrecubierta = 5;
+ $acabadoSobrecubiertaOld = strlen($acabadoSobrecubiertaOld)==0? $acabado: $acabadoSobrecubiertaOld . ', ' . $acabado;
+ }
+ }
+ }
+
+ // Si es mate y lleva UVI, se cambia al servicio correspondiente
+ if($acabadoCubierta == 5 && $reservaUVICubierta){
+ $acabadoCubierta = 2;
+ }
+ if($acabadoSobrecubierta == 5 && $reservaUVISobrecubierta){
+ $acabadoSobrecubierta = 2;
+ }
+
+ $model = model('App\Models\Tarifas\Acabados\ServicioAcabadoModel');
+
+ $cubierta = new stdClass();
+ $cubierta->acabadoOld = $acabadoCubiertaOld;
+ $cubierta->acabado = $model->select('id as id, nombre as name')->where('id', $acabadoCubierta)->first();
+
+ $sobrecubierta = new stdClass();
+ $sobrecubierta->acabadoOld = $acabadoSobrecubiertaOld;
+ $sobrecubierta->acabado = $model->select('id as id, nombre as name')->where('id', $acabadoSobrecubierta)->first();
+
+ return [
+ 'cubierta' => $cubierta,
+ 'sobrecubierta' => $sobrecubierta,
+ ];
+ }
+
}
\ No newline at end of file
diff --git a/ci4/app/Models/Configuracion/TipoPresupuestoModel.php b/ci4/app/Models/Configuracion/TipoPresupuestoModel.php
index 5b914f88..ca231603 100755
--- a/ci4/app/Models/Configuracion/TipoPresupuestoModel.php
+++ b/ci4/app/Models/Configuracion/TipoPresupuestoModel.php
@@ -49,6 +49,18 @@ class TipoPresupuestoModel extends \App\Models\BaseModel
}
+ public function getLibros($search = ""){
+ $builder = $this->db
+ ->table($this->table . " t1")
+ ->select("t1.id as id, t1.encuadernacion as name")
+ ->where('t1.codigo LIKE', 'libro%')
+ ->where('t1.is_deleted', 0);
+ return empty($search) ?
+ $builder->get()->getResultObject() :
+ $builder->groupStart()->
+ like('t1.codigo', $search)->
+ groupEnd()->get()->getResultObject();
+ }
}
diff --git a/ci4/app/Models/Presupuestos/ImportadorModel.php b/ci4/app/Models/Presupuestos/ImportadorModel.php
index aecc99e7..3380fca5 100644
--- a/ci4/app/Models/Presupuestos/ImportadorModel.php
+++ b/ci4/app/Models/Presupuestos/ImportadorModel.php
@@ -6,9 +6,6 @@ class ImportadorModel extends \App\Models\BaseModel
{
protected $table = 'pedido_libro';
protected $primaryKey = 'id';
- //protected $allowedFields = ['ticket_number', 'order_id', 'created_at', 'updated_at', 'deleted_at', 'check_in'];
-
- // Define the alternative connection group
protected $DBGroup = 'old_erp';
public function getClientList(){
@@ -28,8 +25,9 @@ class ImportadorModel extends \App\Models\BaseModel
$builder = $db->table('pedido_libro');
$builder->select('id as id, CONCAT(id, " - ", titulo) as name');
$builder->where('customer_id', $clienteId);
- $builder->where('estado', 'finalizado');
+ $builder->whereIn('estado', ['finalizado', 'validado']);
$builder->where('deleted_at', NULL);
+ $builder->orderBy('updated_at', 'DESC');
return empty($search) ?
$builder->get()->getResultObject() :
@@ -39,6 +37,61 @@ class ImportadorModel extends \App\Models\BaseModel
groupEnd()->get()->getResultObject();
}
+ public function getPresupuestoForImport($id){
+
+ $db = \Config\Database::connect($this->DBGroup); // Conectar a olderp
+ $builder = $db->table('pedido_libro t1')
+ ->select('t1.paginas, t1.tirada, t1.papel_formato_personalizado,
+ t1.papel_formato_ancho as papel_formato_personalizado_ancho,
+ t1.papel_formato_alto as papel_formato_personalizado_alto,
+ t2.ancho as papel_formato_ancho, t2.alto as papel_formato_alto,
+ t1.ferro as ferro,t1.ferro_digital as ferro_digital, t1.marcapaginas as marcapaginas')
+ ->join('papel_formato t2', 't1.papel_formato_id = t2.id', 'left')
+ ->where('t1.id', $id)
+ ->where('t1.deleted_at', NULL);
+ $query = $builder->get();
+ $datosGenerales = $query->getRow();
+
+ $builder = $db->table('pedido_libro_manipulado')
+ ->select('nombre')
+ ->where('pedido_libro_id', $id);
+ $query = $builder->get();
+ $manipulados = $query->getResultObject();
+
+ $builder = $db->table('pedido_libro_acabado')
+ ->select('nombre')
+ ->where('pedido_libro_id', $id);
+ $query = $builder->get();
+ $acabados = $query->getResultObject();
+
+ $builder = $db->table('pedido_libro_preimpresion')
+ ->select('nombre')
+ ->where('pedido_libro_id', $id)
+ ->where('nombre', 'Prototipo');
+ $query = $builder->countAllResults();
+ if($query > 0){
+ $datosGenerales->prototipo = 1;
+ }
+
+ $builder = $db->table('pedido_libro_linea t1')
+ ->select('t1.tipo as tipo, t1.hq as hq, t1.paginas as paginas, t1.papel_id as papel_id,
+ t2.nombre as papel_nombre, t2.code as papel_code, t1.gramaje as gramaje, t1.rotativa_pag_color as rotativa_pag_color,
+ t1.rotativa_impresion as rotativa_impresion, t1.solapas_ancho as solapas_ancho')
+ ->join('papel_generico t2', 't1.papel_id = t2.id', 'left')
+ ->where('pedido_libro_id', $id);
+ $query = $builder->get();
+ $lineas = $query->getResultObject();
+
+
+ return [
+ 'datosGenerales' => $datosGenerales,
+ 'manipulados' => $manipulados,
+ 'acabados' => $acabados,
+ 'lineas' => $lineas
+ ];
+
+ }
+
}
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/importador/viewImportadorPresupuestos.php b/ci4/app/Views/themes/vuexy/form/presupuestos/importador/viewImportadorPresupuestos.php
index 1add0fc7..959fb31a 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/importador/viewImportadorPresupuestos.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/importador/viewImportadorPresupuestos.php
@@ -16,7 +16,8 @@
= view('themes/_commonPartialsBs/_alertBoxes'); ?>
-
+
+
-
-
- Abrir original
-
+
+
+
+
+
+
-
-
-
-
-
+
+
-= $this->endSection() ?>
+
+
+
+
+
+ Páginas
+
+
+
+
+
+
+ Tirada
+
+
+
+
+
+
+ Tamaño
+
+
+
+
+
+
+
+
+ = lang('Presupuestos.papelFormatoPersonalizado') ?>
+
+
+
+
+
+
+
+
Encuadernación
+
+
+ Encuadernación original
+
+
+
+
+ Encuadernación propuesta
+
+
+
+
+
Interior
+
+
+
+
+ Calidad
+
+
+
+
+
+
+
+
Exteriores
+
+
+
Acabados
+
+
+
Servicios
+
+
+
+
+ >
+ = lang('Presupuestos.ferro') ?>
+
+
+
+
+
+
+
+ class="form-check-input">
+ = lang('Presupuestos.ferroDigital') ?>
+
+
+
+
+
+
+ >
+ = lang('Presupuestos.prototipo') ?>
+
+
+
+
+
+
+
+ = lang('Presupuestos.marcapaginas') ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = $this->endSection() ?>
-= $this->section('css') ?>
+ = $this->section('css') ?>
-= $this->endSection() ?>
+ = $this->endSection() ?>
-= $this->section('additionalExternalJs') ?>
-
-= $this->endSection() ?>
\ No newline at end of file
+ = $this->section('additionalExternalJs') ?>
+
+ = $this->endSection() ?>
\ No newline at end of file
diff --git a/httpdocs/assets/js/safekat/pages/importadorPresupuestos/importador.js b/httpdocs/assets/js/safekat/pages/importadorPresupuestos/importador.js
index f13e952e..9748b7f5 100644
--- a/httpdocs/assets/js/safekat/pages/importadorPresupuestos/importador.js
+++ b/httpdocs/assets/js/safekat/pages/importadorPresupuestos/importador.js
@@ -1,25 +1,290 @@
import ClassSelect from '../../components/select2.js';
+import Ajax from '../../components/ajax.js';
-class Importador{
+class Importador {
- constructor(){
+ constructor() {
this.cliente = new ClassSelect($("#clienteId"), '/importador/clientlist', "Seleccione un cliente");
- this.presupuesto = new ClassSelect($("#presupuesto"), '/importador/presupuestoslist', "Seleccione un presupuesto", false, {clienteId: ()=>$("#clienteId").val()});
+ this.presupuesto = new ClassSelect($("#presupuesto"), '/importador/presupuestoslist', "Seleccione un presupuesto", false, { clienteId: () => $("#clienteId").val() });
+ this.encuadernacion = new ClassSelect($("#encuadernacion"), '/importador/getencuadernacion', "Seleccione una encuadernación");
+
+ this.compPapelNegroSelected = new ClassSelect($("#compPapelNegroSelected"), '/presupuestoadmin/papelgenerico', "Seleccione un papel", false,
+ {
+
+ tipo_impresion: () => this.encuadernacion.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: 0,
+ lomo: 0,
+ tipo: () => $('#hq').val() ? 'negrohq' : 'negro',
+ });
+ this.compPapelColorSelected = new ClassSelect($("#compPapelColorSelected"), '/presupuestoadmin/papelgenerico', "Seleccione un papel", false,
+ {
+ tipo_impresion: () => this.encuadernacion.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: 0,
+ lomo: 0,
+ tipo: () => $('#hq').val() ? 'colorhq' : 'color',
+ });
+ this.compPapelCubiertaSelected = new ClassSelect($("#compPapelCubiertaSelected"), '/presupuestoadmin/papelgenerico', "Seleccione un papel", false,
+ {
+ tipo_impresion: this.encuadernacion.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: () => $('#compSolapasCubierta').val(),
+ lomo: () => 0,
+ tipo: 'colorhq',
+ uso: 'cubierta',
+ });
+ this.compSobrecubiertaSelected = new ClassSelect($("#compPapelSobrecubiertaSelected"), '/presupuestoadmin/papelgenerico', "Seleccione un papel", false,
+ {
+ tipo_impresion: this.encuadernacion.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: () => $('#compSolapasSobrecubierta').val(),
+ lomo: () => 0,
+ tipo: 'colorhq',
+ uso: 'sobrecubierta',
+ });
+
+ this.compAcabadoCubiertaSelected = new ClassSelect($("#compAcabadoCubiertaSelected"), '/importador/getacabado', "Seleccione un acabado");
+ this.compAcabadoSobrecubiertaSelected = new ClassSelect($("#compAcabadoSobrecubiertaSelected"), '/importador/getacabado', "Seleccione un acabado");
+
this.openBtn = $('#openOld');
+ this.initImport = $('#initImport');
}
- init(){
+ init() {
this.cliente.init();
this.presupuesto.init();
+ this.encuadernacion.init();
- this.openBtn.on('click', function(){
- if($("#clienteId").val() != '' && $("#presupuesto").val() != ''){
-
- window.open('https://gestion.safekat.es/presupuesto/edit/'+$("#presupuesto").val());
+ this.compPapelNegroSelected.init();
+ this.compPapelColorSelected.init();
+ this.compPapelCubiertaSelected.init();
+ this.compSobrecubiertaSelected.init();
+
+ this.compAcabadoCubiertaSelected.init();
+ this.compAcabadoSobrecubiertaSelected.init();
+
+ this.cliente.item.on('change', () => {
+ this.presupuesto.item.val('').trigger('change');
+ this.presupuesto.item.prop('disabled', false);
+ this.openBtn.prop('disabled', true);
+ this.initImport.prop('disabled', true);
+ });
+
+
+ this.presupuesto.item.on('change', () => {
+ this.openBtn.prop('disabled', false);
+ this.initImport.prop('disabled', false);
+ });
+
+
+ this.openBtn.on('click', function () {
+ if ($("#clienteId").val() != '' && $("#presupuesto").val() != '') {
+
+ window.open('https://gestion.safekat.es/presupuesto/edit/' + $("#presupuesto").val());
+ }
+ });
+
+ this.initImport.on('click', () => {
+ if ($("#clienteId").val() != '' && $("#presupuesto").val() != '') {
+ this.getPresupuestoData.bind(this)();
}
});
}
+
+
+ getPresupuestoData() {
+
+ new Ajax(
+ '/importador/getpresupuestodata',
+ { id: $("#presupuesto").val() },
+ {},
+ (response) => {
+ if (response.success) {
+
+ this.fillInitialData(response.data);
+ }
+ },
+ (error) => {
+ console.error(error);
+ }
+ ).get();
+ }
+
+
+ getDimensionLibro() {
+ let ancho = 0;
+ let alto = 0;
+ if ($('#papelFormatoPersonalizado').prop('checked')) {
+ ancho = $('#papelFormatoAncho').val();
+ alto = $('#papelFormatoAlto').val();
+ }
+ else {
+ const text = $('#tamanio').text();
+ ancho = text.split('x')[0];
+ alto = text.split('x')[1];
+ }
+ return { ancho, alto };
+ }
+
+
+ fillInitialData(data) {
+
+ console.log(data);
+ $('#paginas').val(data.datosGenerales.paginas);
+ $('#tirada').val(data.datosGenerales.tirada);
+ if (data.datosGenerales.papel_formato_personalizado) {
+ $('#papelFormatoPersonalizado').prop('checked', true);
+ $('#tamanio').addClass('d-none');
+ $('#formatoPersonalizado').removeClass('d-none');
+ $('#papelFormatoAncho').val(data.datosGenerales.papel_formato_ancho);
+ $('#papelFormatoAlto').val(data.datosGenerales.papel_formato_alto);
+ }
+ else {
+ $('#tamanio').removeClass('d-none');
+ $('#formatoPersonalizado').addClass('d-none');
+ $('#papelFormatoPersonalizado').prop('checked', false);
+ $('#tamanio').append('');
+ $('#tamanio').val(data.datosGenerales.papel_formato_id).trigger('change');
+ }
+
+ if (data.encuadernacion) {
+ $('#encuadernacion_old').val(data.encuadernacion.encuadernacionOld);
+ // check if data.encuadernacion.encuadernacion exists and is not empty
+ if (data.encuadernacion.encuadernacion) {
+ this.encuadernacion.setOption(data.encuadernacion.encuadernacion.id, data.encuadernacion.encuadernacion.encuadernacion);
+ }
+ }
+
+ if (data.lineas) {
+ if (data.lineas.isHq) {
+ $('#hq').val(data.lineas.hq);
+ }
+
+ if (data.lineas.bn && data.lineas.bn.paginas) {
+ $('#compPaginasNegro').val(data.lineas.bn.paginas);
+ $('#compPapelNegroOrigen').val(data.lineas.bn.papel_nombre);
+ $('#compGramajeNegro').val(parseFloat(data.lineas.bn.gramaje).toFixed(0));
+ this.compPapelNegroSelected.item.prop('disabled', false);
+ this.compPapelNegroSelected.setOption(data.lineas.bn.new_papel_id, data.lineas.bn.new_papel_nombre);
+ }
+ else {
+ $('#compPaginasNegro').val(0);
+ $('#compPapelNegroOrigen').val("");
+ $('#compGramajeNegro').val("");
+ this.compPapelNegroSelected.empty();
+ this.compPapelNegroSelected.item.prop('disabled', true);
+ }
+
+ if (data.lineas.color && data.lineas.color.paginas) {
+ $('#compPaginasColor').val(data.lineas.color.paginas);
+ $('#compPapelColorOrigen').val(data.lineas.color.papel_nombre);
+ $('#compGramajeColor').val(parseFloat(data.lineas.color.gramaje).toFixed(0));
+ this.compPapelColorSelected.item.prop('disabled', false);
+ this.compPapelColorSelected.setOption(data.lineas.color.new_papel_id, data.lineas.color.new_papel_nombre);
+ }
+ else {
+ $('#compPaginasColor').val(0);
+ $('#compPapelColorOrigen').val("");
+ $('#compGramajeColor').val("");
+ this.compPapelColorSelected.empty();
+ this.compPapelColorSelected.item.prop('disabled', true);
+ }
+
+ if (data.lineas.cubierta && data.lineas.cubierta.paginas) {
+ $('#compPaginasCubierta').val(data.lineas.cubierta.paginas);
+ $('#compPapelCubiertaOrigen').val(data.lineas.cubierta.papel_nombre);
+ $('#compGramajeCubierta').val(parseFloat(data.lineas.cubierta.gramaje).toFixed(0));
+ $('#compSolapasCubierta').val(parseFloat(data.lineas.cubierta.solapas).toFixed(0));
+ this.compPapelCubiertaSelected.item.prop('disabled', false);
+ this.compPapelCubiertaSelected.setOption(data.lineas.cubierta.new_papel_id, data.lineas.cubierta.new_papel_nombre);
+ }
+ else {
+ $('#compPaginasCubierta').val(0);
+ $('#compPapelCubiertaOrigen').val("");
+ $('#compGramajeCubierta').val("");
+ $('#compSolapasCubierta').val("");
+ this.compPapelCubiertaSelected.empty();
+ this.compPapelCubiertaSelected.item.prop('disabled', true);
+ }
+
+ if (data.lineas.sobrecubierta && data.lineas.sobrecubierta.paginas) {
+ $('#compSobrecubierta').val(1);
+ $('#compPapelSobrecubiertaOrigen').val(data.lineas.sobrecubierta.papel_nombre);
+ $('#compGramajeSobrecubierta').val(parseFloat(data.lineas.sobrecubierta.gramaje).toFixed(0));
+ $('#compSolapasSobrecubierta').val(parseFloat(data.lineas.sobrecubierta.solapas).toFixed(0));
+ this.compSobrecubiertaSelected.item.prop('disabled', false);
+ this.compSobrecubiertaSelected.setOption(data.lineas.sobrecubierta.new_papel_id, data.lineas.sobrecubierta.new_papel_nombre);
+ }
+ else {
+ $('#compSobrecubierta').val(0);
+ $('#compPapelSobrecubiertaOrigen').val("");
+ $('#compGramajeSobrecubierta').val("");
+ $('#compSolapasSobrecubierta').val("");
+ this.compSobrecubiertaSelected.empty();
+ this.compSobrecubiertaSelected.item.prop('disabled', true);
+ }
+
+ if (data.acabados) {
+ if (data.acabados.cubierta && data.acabados.cubierta.acabadoOld) {
+ $('#compAcabadoCubiertaOrigen').val(data.acabados.cubierta.acabadoOld);
+ this.compAcabadoCubiertaSelected.setOption(data.acabados.cubierta.acabado.id, data.acabados.cubierta.acabado.name);
+ this.compAcabadoCubiertaSelected.item.prop('disabled', false);
+ }
+ else {
+ $('#compAcabadoCubiertaOrigen').val("");
+ this.compAcabadoCubiertaSelected.empty();
+ this.compAcabadoCubiertaSelected.item.prop('disabled', true);
+ }
+
+ if (data.acabados.sobrecubierta && data.acabados.sobrecubierta.acabadoOld) {
+ $('#compAcabadoSobrecubiertaOrigen').val(data.acabados.sobrecubierta.acabadoOld);
+ this.compAcabadoSobrecubiertaSelected.setOption(data.acabados.sobrecubierta.acabado.id, data.acabados.sobrecubierta.acabado.name);
+ this.compAcabadoSobrecubiertaSelected.item.prop('disabled', false);
+ }
+ else {
+ $('#compAcabadoSobrecubiertaOrigen').val("");
+ this.compAcabadoSobrecubiertaSelected.empty();
+ this.compAcabadoSobrecubiertaSelected.item.prop('disabled', true);
+ }
+ }
+
+ if(data.servicios.ferro == 1){
+ $('#ferro').prop('checked', true);
+ }
+ else{
+ $('#ferro').prop('checked', false);
+ }
+ if(data.servicios.ferroDigital == 1){
+ $('#ferroDigital').prop('checked', true);
+ }
+ else{
+ $('#ferroDigital').prop('checked', false);
+ }
+ if(data.servicios.marcapaginas == 1){
+ $('#marcapaginas').prop('checked', true);
+ }
+ else{
+ $('#marcapaginas').prop('checked', false);
+ }
+ if(data.servicios.prototipo == 1){
+ $('#prototipo').prop('checked', true);
+ }
+ else{
+ $('#prototipo').prop('checked', false);
+ }
+ }
+ }
+
}
document.addEventListener('DOMContentLoaded', function () {