mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'add/import_old_presupuestos' into 'main'
Add/import old presupuestos See merge request jjimenez/safekat!597
This commit is contained in:
@ -71,6 +71,32 @@ class Database extends Config
|
||||
'busyTimeout' => 1000,
|
||||
];
|
||||
|
||||
public array $old_erp = [
|
||||
'DSN' => '',
|
||||
'hostname' => 'localhost',
|
||||
'username' => '',
|
||||
'password' => '',
|
||||
'database' => '',
|
||||
'DBDriver' => 'MySQLi',
|
||||
'DBPrefix' => '',
|
||||
'pConnect' => false,
|
||||
'DBDebug' => true,
|
||||
'charset' => 'utf8mb4',
|
||||
'DBCollat' => 'utf8mb4_general_ci',
|
||||
'swapPre' => '',
|
||||
'encrypt' => false,
|
||||
'compress' => false,
|
||||
'strictOn' => false,
|
||||
'failover' => [],
|
||||
'port' => 3306,
|
||||
'numberNative' => false,
|
||||
'dateFormat' => [
|
||||
'date' => 'Y-m-d',
|
||||
'datetime' => 'Y-m-d H:i:s',
|
||||
'time' => 'H:i:s',
|
||||
],
|
||||
];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
@ -675,6 +675,16 @@ $routes->group('presupuestocliente', ['namespace' => 'App\Controllers\Presupuest
|
||||
});
|
||||
$routes->resource('presupuestocliente', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestocliente', 'except' => 'show,new,create,update']);
|
||||
|
||||
$routes->group('importador', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
|
||||
$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->post('importar', 'Importadorpresupuestos::importarPresupuesto');
|
||||
});
|
||||
$routes->resource('presupuestocliente', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestocliente', 'except' => 'show,new,create,update']);
|
||||
|
||||
$routes->group('serviciosacabados', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
|
||||
$routes->get('getacabados', 'Presupuestoacabados::getAcabados');
|
||||
$routes->post('getvalues', 'Presupuestoacabados::getRowValues');
|
||||
|
||||
607
ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php
Normal file
607
ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php
Normal file
@ -0,0 +1,607 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Presupuestos;
|
||||
|
||||
use App\Models\Presupuestos\ImportadorModel;
|
||||
use App\Models\Clientes\ClienteModel;
|
||||
use stdClass;
|
||||
|
||||
class Importadorpresupuestos extends \App\Controllers\BaseResourceController
|
||||
{
|
||||
protected $modelName = "ImportadorModel";
|
||||
protected $format = 'json';
|
||||
|
||||
protected static $singularObjectName = 'Importadorpresupuesto';
|
||||
protected static $singularObjectNameCc = 'Importadorpresupuesto';
|
||||
protected static $pluralObjectName = 'ImportadorPresupuestos';
|
||||
protected static $pluralObjectNameCc = 'Importadorpresupuestos';
|
||||
|
||||
protected static $controllerSlug = 'importadorpresupuestos';
|
||||
|
||||
protected static $viewPath = 'themes/vuexy/form/presupuestos/importador/';
|
||||
|
||||
protected $indexRoute = 'listaPresupuestos';
|
||||
|
||||
|
||||
public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger)
|
||||
{
|
||||
|
||||
$this->viewData['usingSweetAlert'] = true;
|
||||
|
||||
$this->viewData = ['usingServerSideDataTable' => true]; // JJO
|
||||
|
||||
// Breadcrumbs
|
||||
$this->viewData['breadcrumb'] = [
|
||||
['title' => 'Importador de presupuestos', 'route' => "javascript:void(0);", 'active' => false]
|
||||
];
|
||||
$this->messageService = service('messages');
|
||||
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->model = new ImportadorModel();
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$viewData = [
|
||||
'currentModule' => static::$controllerSlug,
|
||||
'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);
|
||||
}
|
||||
|
||||
public function getClientList()
|
||||
{
|
||||
|
||||
$search = "";
|
||||
|
||||
if ($this->request->getGet("q")) {
|
||||
$search = $this->request->getGet("q");
|
||||
}
|
||||
|
||||
$dataOld = (new ImportadorModel())->getClientList();
|
||||
$dataNew = (new ClienteModel())->getIdName($search);
|
||||
|
||||
$newKeys = array_map(fn($item) => $item->id . '_' . $item->name, $dataNew);
|
||||
|
||||
// Filtrar $dataOld para obtener solo los elementos comunes
|
||||
$commonData = array_filter($dataOld, fn($item) => in_array($item->id . '_' . $item->name, $newKeys));
|
||||
|
||||
return $this->response->setJSON(array_values($commonData));
|
||||
}
|
||||
|
||||
public function getPresupuestosList()
|
||||
{
|
||||
|
||||
$search = "";
|
||||
|
||||
if ($this->request->getGet("q")) {
|
||||
$search = $this->request->getGet("q");
|
||||
}
|
||||
$clienteId = $this->request->getGet("clienteId");
|
||||
|
||||
$data = (new ImportadorModel())->getPresupuestosList($clienteId, $search);
|
||||
|
||||
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,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public function importarPresupuesto(){
|
||||
|
||||
if($this->request->isAJAX()){
|
||||
|
||||
$presupuesto_id = $this->request->getPost('id');
|
||||
|
||||
$tipo_presupuesto_id = intval($this->request->getPost('encuadernacion') ?? 0);
|
||||
|
||||
$papel_formato_id = $this->request->getPost('papel_formato_id');
|
||||
$papel_formato_personalizado = intval($this->request->getPost('papel_formato_personalizado') ?? 0);
|
||||
$papel_formato_ancho = intval($this->request->getPost('papel_formato_ancho') ?? 0);
|
||||
$papel_formato_alto = intval($this->request->getPost('papel_formato_alto') ?? 0);
|
||||
|
||||
if($papel_formato_personalizado){
|
||||
$tamanio = array(
|
||||
"ancho" => $papel_formato_ancho,
|
||||
"alto" => $papel_formato_alto
|
||||
);
|
||||
}
|
||||
else{
|
||||
$medidas = model('App\Models\Configuracion\PapelFormatoModel')->select('ancho, alto')->where('id', $papel_formato_id)->first();
|
||||
$tamanio = array(
|
||||
"ancho" => $medidas->ancho,
|
||||
"alto" => $medidas->alto
|
||||
);
|
||||
}
|
||||
|
||||
$isHq = intval($this->request->getPost('isHq') ?? 0);
|
||||
$paginas_bn = intval($this->request->getPost('paginas_bn') ?? 0);
|
||||
$paginas_color = intval($this->request->getPost('paginas_color') ?? 0);
|
||||
$gramaje_bn = intval($this->request->getPost('gramaje_bn') ?? 0);
|
||||
$gramaje_color = intval($this->request->getPost('gramaje_color') ?? 0);
|
||||
$papel_bn = intval($this->request->getPost('papel_bn') ?? 0);
|
||||
$papel_color = intval($this->request->getPost('papel_color') ?? 0);
|
||||
|
||||
$papel_interior_diferente = false;
|
||||
if($papel_bn != $papel_color && $papel_bn != 0 && $papel_color != 0){
|
||||
$papel_interior_diferente = true;
|
||||
$papel_interior = array(
|
||||
"negro" => $papel_bn,
|
||||
"color" => $papel_color
|
||||
);
|
||||
$gramaje_interior = array(
|
||||
"negro" => $gramaje_bn,
|
||||
"color" => $gramaje_color
|
||||
);
|
||||
}
|
||||
else{
|
||||
$papel_interior = $papel_bn == 0 ? $papel_color : $papel_bn;
|
||||
$gramaje_interior = $gramaje_bn == 0 ? $gramaje_color : $gramaje_bn;
|
||||
}
|
||||
|
||||
$interior = array(
|
||||
"papelInterior" => $papel_interior,
|
||||
"gramajeInterior" => $gramaje_interior
|
||||
);
|
||||
|
||||
$isColor = false;
|
||||
if(intval($paginas_color)>0){
|
||||
$isColor = true;
|
||||
}
|
||||
|
||||
$tapaCubierta = model('App\Models\Configuracion\TipoPresupuestoModel')->
|
||||
select("is_tapa_dura")->where('id', $tipo_presupuesto_id)->first();
|
||||
$tapaCubierta = $tapaCubierta->is_tapa_dura == 0 ? "tapaBlanda" : "tapaDura";
|
||||
$cubierta = array(
|
||||
"carasImpresion" => intval($this->request->getPost('paginas_cubierta') ?? 0),
|
||||
"tipoCubierta" => $tapaCubierta,
|
||||
"papelCubierta" => intval($this->request->getPost('papel_cubierta') ?? 0),
|
||||
"gramajeCubierta" => intval($this->request->getPost('gramaje_cubierta') ?? 0),
|
||||
"acabado" => intval($this->request->getPost('acabado_cubierta') ?? 0),
|
||||
);
|
||||
|
||||
$solapas_cubierta = intval($this->request->getPost('solapas_cubierta') ?? 0);
|
||||
if($solapas_cubierta>0){
|
||||
$cubierta["solapas"] = 1;
|
||||
$cubierta["tamanioSolapas"] = $solapas_cubierta;
|
||||
}
|
||||
else{
|
||||
$cubierta["solapas"] = 0;
|
||||
}
|
||||
|
||||
$sobrecubierta = intval($this->request->getPost('sobrecubierta') ?? 0);
|
||||
if($sobrecubierta>0){
|
||||
$sobrecubierta = array(
|
||||
"papel" => intval($this->request->getPost('papel_sobrecubierta') ?? 0),
|
||||
"gramaje" => intval($this->request->getPost('gramaje_sobrecubierta') ?? 0),
|
||||
"solapas" => intval($this->request->getPost('solapas_sobrecubierta') ?? 0),
|
||||
"acabado" => intval($this->request->getPost('acabado_sobrecubierta') ?? 0),
|
||||
);
|
||||
|
||||
// para corregir el fallo de un presupuesto sin solapas en sobrecubierta
|
||||
if($sobrecubierta["solapas"] == 0){
|
||||
$sobrecubierta["solapas"] = 80;
|
||||
}
|
||||
}
|
||||
else{
|
||||
$sobrecubierta = false;
|
||||
}
|
||||
|
||||
$datosSave = model('App\Models\Presupuestos\ImportadorModel')->getDatosGuardar($presupuesto_id);
|
||||
$direcciones = model('App\Models\Presupuestos\ImportadorModel')->getDirecciones($presupuesto_id);
|
||||
|
||||
$direcciones = (array) $direcciones;
|
||||
$direcciones = array_map(fn($item) => (array) $item, $direcciones);
|
||||
$direccionesToSend = [];
|
||||
foreach($direcciones as $direccion){
|
||||
$direccion['pais_id'] =
|
||||
model('App\Models\Configuracion\PaisModel')->select('id')->like('nombre', $direccion['pais'])->first()->id;
|
||||
$tempData = [];
|
||||
$tempData['direccion'] = $direccion;
|
||||
$tempData['entregaPalets'] = 0;
|
||||
$tempData['unidades'] = $direccion['unidades'];
|
||||
array_push($direccionesToSend, $tempData);
|
||||
}
|
||||
|
||||
$datos = array(
|
||||
"tirada" => array(intval($this->request->getPost('tirada') ?? 0)),
|
||||
"selectedTirada" => intval($this->request->getPost('tirada') ?? 0),
|
||||
"paginas" => intval($this->request->getPost('paginas') ?? 0),
|
||||
"tamanio" => $tamanio,
|
||||
"tipo_presupuesto_id" => $tipo_presupuesto_id,
|
||||
"clienteId" => intval($this->request->getPost('cliente_id') ?? 0),
|
||||
"isColor" => $isColor,
|
||||
"isHq" => $isHq,
|
||||
"papelDiferente" => $papel_interior_diferente,
|
||||
"paginasColor" => $paginas_color,
|
||||
"paginasCuadernillo" => 32,
|
||||
|
||||
"interior" => $interior,
|
||||
|
||||
"cubierta" => $cubierta,
|
||||
|
||||
"sobrecubierta" => $sobrecubierta,
|
||||
"guardas" => false,
|
||||
"faja" => 0,
|
||||
|
||||
"servicios" => $this->request->getPost('servicios') ?? [],
|
||||
|
||||
"datosCabecera" => [
|
||||
"titulo" => $datosSave->titulo ?? "",
|
||||
"autor" => $datosSave->autor ?? "",
|
||||
"coleccion" => $datosSave->coleccion ?? "",
|
||||
"isbn" => $datosSave->isbn ?? "",
|
||||
"referenciaCliente" => $datosSave->referenciaCliente ?? ""
|
||||
],
|
||||
'entrega_taller' => $datosSave->entrega_taller,
|
||||
'direcciones' => $direccionesToSend
|
||||
);
|
||||
|
||||
$value = (new Presupuestocliente())->guardar($datos);
|
||||
|
||||
if(isset($value['sk_id'])){
|
||||
$texto_comments = '[PRESUPUESTO IMPORTADO ' . $presupuesto_id . ' - ERP ANTIGUO]' . PHP_EOL .
|
||||
'------------------------------------------------------------------------------------------' . PHP_EOL;
|
||||
$presupuesto_model = model('App\Models\Presupuestos\PresupuestoModel');
|
||||
$presupuesto_model->update($value['sk_id'], [
|
||||
'comentarios_cliente' => $texto_comments . $datosSave->comentarios_cliente,
|
||||
'comentarios_safekat' => $texto_comments . $datosSave->comentarios_safekat,
|
||||
]);
|
||||
|
||||
$returnData = [
|
||||
'success' => true,
|
||||
'id' => $value['sk_id']
|
||||
];
|
||||
|
||||
}
|
||||
else{
|
||||
$returnData = [
|
||||
'success' =>false,
|
||||
];
|
||||
}
|
||||
|
||||
return $this->response->setJSON($returnData);
|
||||
|
||||
}
|
||||
else{
|
||||
|
||||
return $this->failUnauthorized('Invalid request', 403);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -583,8 +583,10 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
|
||||
|
||||
$data['comentarios_cliente'] = $presupuesto->comentarios_cliente;
|
||||
$data['comentarios_safekat'] = $presupuesto->comentarios_safekat;
|
||||
$data['comentarios_pdf'] = $presupuesto->comentarios_pdf;
|
||||
$data['comentarios_presupuesto'] = $presupuesto->comentarios_presupuesto;
|
||||
$data['comentarios_produccion'] = $presupuesto->comentarios_produccion;
|
||||
|
||||
|
||||
$data['tiradasAlternativas'] = json_decode($presupuesto->tirada_alternativa_json_data);
|
||||
|
||||
|
||||
@ -460,7 +460,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$tamanio = $reqData['tamanio'];
|
||||
$paginas = $reqData['paginas'] ?? 0;
|
||||
$paginas_color = $reqData['paginasColor'] ?? 0;
|
||||
$tipo = $reqData['tipo'];
|
||||
$tipo = $reqData['tipo'] ?? 'cosido';
|
||||
|
||||
$paginasCuadernillo = $reqData['paginasCuadernillo'] ?? null;
|
||||
$papelInteriorDiferente = intval($reqData['papelInteriorDiferente'] ?? null);
|
||||
@ -478,7 +478,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
|
||||
$direcciones = $reqData['direcciones'] ?? [];
|
||||
|
||||
$tipo_impresion_id = $this->getTipoImpresion($tipo, $cubierta['tipoCubierta']);
|
||||
$tipo_impresion_id = intval($reqData['tipo_presupuesto_id'] ?? 0) == 0?
|
||||
$this->getTipoImpresion($tipo, $cubierta['tipoCubierta']) : intval($reqData['tipo_presupuesto_id']);
|
||||
$lomoRedondo = $cubierta['lomoRedondo'] ?? 0;
|
||||
|
||||
if ($papelInteriorDiferente) {
|
||||
@ -975,7 +976,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$paginasColorConsecutivas = $reqData['pagColorConsecutivas'] ?? 0;
|
||||
$papelInteriorDiferente = $reqData['papelInteriorDiferente'] ?? 0;
|
||||
|
||||
$tipo = $reqData['tipo'];
|
||||
$tipo = $reqData['tipo'] ?? "";
|
||||
|
||||
$paginasCuadernillo = $reqData['paginasCuadernillo'] ?? 32;
|
||||
$papelInteriorDiferente = intval($reqData['papelInteriorDiferente'] ?? null);
|
||||
@ -1001,7 +1002,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
|
||||
$direcciones = $reqData['direcciones'] ?? [];
|
||||
|
||||
$tipo_impresion_id = $this->getTipoImpresion($tipo, $cubierta['tipoCubierta']);
|
||||
if($tipo != "")
|
||||
$tipo_impresion_id = $this->getTipoImpresion($tipo, $cubierta['tipoCubierta']);
|
||||
else
|
||||
$tipo_impresion_id = $reqData['tipo_presupuesto_id'] ?? 0;
|
||||
|
||||
if ($papelInteriorDiferente) {
|
||||
$papel['negro'] = $modelPapelGenerico->where('id', $interior['papelInterior']['negro'])->first()->toArray();
|
||||
@ -1262,16 +1266,13 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
];
|
||||
|
||||
|
||||
if(isset($resultado_presupuesto['values']['servicios_extra']))
|
||||
{
|
||||
if (isset($resultado_presupuesto['values']['servicios_extra'])) {
|
||||
foreach ($resultado_presupuesto['values']['servicios_extra'] as $servicio) {
|
||||
if($servicio->tarifa_id == $servicio_ferro->id){
|
||||
if ($servicio->tarifa_id == $servicio_ferro->id) {
|
||||
$ferro = 1;
|
||||
}
|
||||
else if($servicio->tarifa_id == $servicio_ferro_digital->id){
|
||||
} else if ($servicio->tarifa_id == $servicio_ferro_digital->id) {
|
||||
$ferroDigital = 1;
|
||||
}
|
||||
else if($servicio->tarifa_id == $servicio_prototipo->id){
|
||||
} else if ($servicio->tarifa_id == $servicio_prototipo->id) {
|
||||
$prototipo = 1;
|
||||
}
|
||||
}
|
||||
@ -1435,7 +1436,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
} else if ($servicio->tarifa_id == $servicio_ferro->id || $servicio->tarifa_id == $servicio_prototipo->id) {
|
||||
// Servicios extra
|
||||
$this->guardarServicio($id, $servicio, 'extra');
|
||||
}else if (
|
||||
} else if (
|
||||
$servicio->tarifa_id == $servicio_solapas_cubierta->id ||
|
||||
$servicio->tarifa_id == $servicio_solapas_sobrecubierta->id ||
|
||||
$servicio->tarifa_id == $servicio_solapas_faja->id ||
|
||||
@ -1764,7 +1765,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$direccion['direccion'],
|
||||
$peso_libro,
|
||||
$direccion['unidades'],
|
||||
$direccion['entregaPalets'] == 'false' ? 0 : 1,
|
||||
($direccion['entregaPalets'] == 'false' || $direccion['entregaPalets'] == 0) ? 0 : 1,
|
||||
false
|
||||
);
|
||||
|
||||
@ -1775,7 +1776,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
unset($data->id);
|
||||
$data->precio = $data->coste;
|
||||
unset($data->coste);
|
||||
$data->entregaPieCalle = $direccion['entregaPalets'] == 'false' ? 0 : 1;
|
||||
$data->entregaPieCalle = ($direccion['entregaPalets'] == 'false' || $direccion['entregaPalets'] == 0) ? 0 : 1;
|
||||
unset($data->tipo);
|
||||
$data->peso = $peso_envio;
|
||||
$data->cantidad = $unidades;
|
||||
@ -1886,15 +1887,21 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$margen = $tarifas_envio[$i]->margen;
|
||||
}
|
||||
|
||||
$tarifa_envio_final = null;
|
||||
if (count($tarifas_envio) > 1) {
|
||||
$tarifa_final = array_reduce($tarifas_envio, function ($previous, $current) {
|
||||
$tarifa_envio_final = array_reduce($tarifas_envio, function ($previous, $current) {
|
||||
return $current->precio < $previous->precio ? $current : $previous;
|
||||
});
|
||||
$coste = $tarifa_final->precio;
|
||||
} else {
|
||||
if (count($tarifas_envio) > 0)
|
||||
$coste = $tarifas_envio[0]->precio;
|
||||
$margen = $tarifas_envio[0]->margen;
|
||||
if (count($tarifas_envio) > 0){
|
||||
$tarifa_envio_final = $tarifas_envio[0];
|
||||
}
|
||||
}
|
||||
$coste = $tarifa_envio_final->precio;
|
||||
$margen = $tarifa_envio_final->margen;
|
||||
|
||||
if(!isset($return_data['id'])){
|
||||
$return_data['id'] = $tarifa_envio_final->id;
|
||||
}
|
||||
|
||||
$return_data['coste'] = $coste;
|
||||
@ -2779,10 +2786,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
|
||||
$serviciosExtra = [];
|
||||
// funcionalidad para los servicios extra añadidos por el usuario
|
||||
if($datos_entrada['servicios'] !== [] && isset($datos_entrada['servicios']['serviciosExtra']) &&
|
||||
$datos_entrada['servicios']['serviciosExtra'] !== []){
|
||||
if (
|
||||
$datos_entrada['servicios'] !== [] && isset($datos_entrada['servicios']['serviciosExtra']) &&
|
||||
$datos_entrada['servicios']['serviciosExtra'] !== []
|
||||
) {
|
||||
|
||||
foreach($datos_entrada['servicios']['serviciosExtra'] as $servicio){
|
||||
foreach ($datos_entrada['servicios']['serviciosExtra'] as $servicio) {
|
||||
$resultado = PresupuestoCLienteService::getServiciosExtra([
|
||||
'tarifa_id' => intval($servicio),
|
||||
]);
|
||||
@ -3495,7 +3504,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
return [$paginasNegro, $paginasColor];
|
||||
}
|
||||
|
||||
private function getServiciosExtra(){
|
||||
private function getServiciosExtra()
|
||||
{
|
||||
|
||||
$servicios = [];
|
||||
|
||||
@ -3504,12 +3514,15 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
|
||||
foreach ($data as $servicio) {
|
||||
$id = "service_extra_" . $servicio->id;
|
||||
array_push($servicios,
|
||||
"<input class=\"calcular-presupuesto form-check-input\" type=\"checkbox\" id=\"{$id}\"
|
||||
array_push(
|
||||
$servicios,
|
||||
"<input class=\"calcular-presupuesto form-check-input\" type=\"checkbox\" id=\"{$id}\"
|
||||
name=\"{$id}\" value=\"1\" data-tarifa-id=\"{$servicio->id}\" data-tarifa-tipo=\"extra\" data-tarifa-nombre=\"{$servicio->nombre}\">
|
||||
<label class=\"form-check-label\" for=\"{$id}\">{$servicio->nombre}</label>");
|
||||
<label class=\"form-check-label\" for=\"{$id}\">{$servicio->nombre}</label>"
|
||||
);
|
||||
}
|
||||
|
||||
return $servicios;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -3,9 +3,12 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Controllers\Presupuestos\Importadorpresupuestos;
|
||||
use App\Controllers\Presupuestos\Presupuestocliente;
|
||||
use App\Models\Configuracion\MaquinasTarifasImpresionModel;
|
||||
use App\Models\Configuracion\PapelGenericoModel;
|
||||
use App\Models\Configuracion\MaquinaModel;
|
||||
use App\Models\Presupuestos\ImportadorModel;
|
||||
use App\Models\Presupuestos\PresupuestoModel;
|
||||
use App\Models\Usuarios\GroupModel;
|
||||
use App\Models\Usuarios\PermisosModel;
|
||||
@ -26,13 +29,9 @@ class Test extends BaseController
|
||||
|
||||
public function index()
|
||||
{
|
||||
/*$model = model("\App\Models\Clientes\ClientePreciosModel");
|
||||
$model->debug_all_clientes_to_defecto();
|
||||
echo '<pre>';
|
||||
echo 'OK';
|
||||
echo '</pre>';*/
|
||||
|
||||
xdebug_info();
|
||||
|
||||
// (new Presupuestocliente())->testRemoteDB();
|
||||
(new Importadorpresupuestos())->getClientList();
|
||||
|
||||
|
||||
|
||||
|
||||
@ -254,6 +254,7 @@ return [
|
||||
'comentarios' => 'Comentarios',
|
||||
'comentariosCliente' => 'Comentarios cliente',
|
||||
'comentariosSafekat' => 'Comentarios Safekat',
|
||||
'comentariosPresupuestoPDF' => 'Comentarios Presupuesto PDF',
|
||||
'comentariosPresupuesto' => 'Comentarios Presupuesto',
|
||||
'comentariosProduccion' => 'Comentarios Produccion',
|
||||
|
||||
|
||||
@ -385,4 +385,21 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public function getIdName($search = "")
|
||||
{
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
"t1.id AS id, t1.nombre AS name"
|
||||
)
|
||||
->where("is_deleted", 0);
|
||||
return empty($search)
|
||||
? $builder->get()->getResultObject()
|
||||
: $builder
|
||||
->groupStart()
|
||||
->like("t1.nombre", $search)
|
||||
->groupEnd()->get()->getResultObject();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
128
ci4/app/Models/Presupuestos/ImportadorModel.php
Normal file
128
ci4/app/Models/Presupuestos/ImportadorModel.php
Normal file
@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Presupuestos;
|
||||
|
||||
class ImportadorModel extends \App\Models\BaseModel
|
||||
{
|
||||
protected $table = 'pedido_libro';
|
||||
protected $primaryKey = 'id';
|
||||
protected $DBGroup = 'old_erp';
|
||||
|
||||
public function getClientList(){
|
||||
|
||||
$db = \Config\Database::connect($this->DBGroup); // Conectar a olderp
|
||||
$builder = $db->table('customers');
|
||||
$builder->select('id, name');
|
||||
$builder->where('deleted_at', NULL);
|
||||
$query = $builder->get();
|
||||
return $query->getResultObject();
|
||||
}
|
||||
|
||||
|
||||
public function getPresupuestosList($clienteId, $search = ""){
|
||||
|
||||
$db = \Config\Database::connect($this->DBGroup); // Conectar a olderp
|
||||
$builder = $db->table('pedido_libro');
|
||||
$builder->select('id as id, CONCAT(id, " - ", titulo) as name');
|
||||
$builder->where('customer_id', $clienteId);
|
||||
$builder->whereIn('estado', ['finalizado', 'validado']);
|
||||
$builder->where('deleted_at', NULL);
|
||||
$builder->orderBy('updated_at', 'DESC');
|
||||
|
||||
return empty($search) ?
|
||||
$builder->get()->getResultObject() :
|
||||
$builder->groupStart()->
|
||||
like('titulo', $search)->
|
||||
orLike('id', $search)->
|
||||
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;
|
||||
}
|
||||
else{
|
||||
$datosGenerales->prototipo = 0;
|
||||
}
|
||||
|
||||
$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
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
public function getDatosGuardar($id){
|
||||
|
||||
$db = \Config\Database::connect($this->DBGroup); // Conectar a olderp
|
||||
$db = \Config\Database::connect($this->DBGroup); // Conectar a olderp
|
||||
$builder = $db->table('pedido_libro t1')
|
||||
->select('
|
||||
t1.titulo, t1.autor, t1.coleccion, t1.isbn, t1.customer_reference as referencia_cliente,
|
||||
t1.envios_recogecliente as entrega_taller, t1.comentarios as comentarios_cliente, t1.comentarios_safekat, t1.comentarios_pdf')
|
||||
->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();
|
||||
return $query->getRow();
|
||||
}
|
||||
|
||||
public function getDirecciones($id){
|
||||
|
||||
$db = \Config\Database::connect($this->DBGroup); // Conectar a olderp
|
||||
$builder = $db->table('pedido_libro_envios t1')
|
||||
->select('t1.ejemplares as unidades, t1.att, t1.email, t1.direccion, t1.pais,
|
||||
t2.nombre as provincia, t1.ciudad as municipio, t1.cp, t1.telefono')
|
||||
->join(('provincias t2'), 't1.provincia = t2.code', 'left')
|
||||
->where('t1.pedido_libro_id', $id);
|
||||
$query = $builder->get();
|
||||
return $query->getResultObject();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -47,6 +47,23 @@
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button
|
||||
type="button"
|
||||
class="nav-link"
|
||||
role="tab"
|
||||
data-bs-toggle="tab"
|
||||
data-bs-target="#comentarios-presupuesto-pdf"
|
||||
aria-controls="comentarios-presupuesto-pdf"
|
||||
aria-selected="false">
|
||||
<?= lang("Presupuestos.comentariosPresupuestoPDF") ?>
|
||||
<span
|
||||
id="mostrar_comentarios_pdf"
|
||||
class="badge rounded-pill badge-center h-px-20 w-px-20 bg-warning ms-1 d-none">
|
||||
!
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button
|
||||
type="button"
|
||||
@ -58,7 +75,7 @@
|
||||
aria-selected="false">
|
||||
<?= lang("Presupuestos.comentariosPresupuesto") ?>
|
||||
<span
|
||||
id="mostrar_comentarios_pdf"
|
||||
id="mostrar_comentarios_presupuesto"
|
||||
class="badge rounded-pill badge-center h-px-20 w-px-20 bg-warning ms-1 d-none">
|
||||
!
|
||||
</span>
|
||||
@ -114,7 +131,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade" id="comentarios-presupuesto" role="tabpanel">
|
||||
<div class="tab-pane fade" id="comentarios-presupuesto-pdf" role="tabpanel">
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-12 px-4">
|
||||
<div class="mb-3">
|
||||
@ -130,6 +147,22 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade" id="comentarios-presupuesto" role="tabpanel">
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-12 px-4">
|
||||
<div class="mb-3">
|
||||
<textarea
|
||||
rows="3"
|
||||
id="comentariosPresupuesto"
|
||||
name="comentarios_presupuesto"
|
||||
style="height: 10em;"
|
||||
class="form-control"><?=old('comentarios_presupuesto', $presupuestoEntity->comentarios_presupuesto) ?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade" id="comentarios-produccion" role="tabpanel">
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-12 px-4">
|
||||
|
||||
@ -0,0 +1,402 @@
|
||||
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
|
||||
<?= $this->include("themes/_commonPartialsBs/select2bs5") ?>
|
||||
<?= $this->include("themes/_commonPartialsBs/sweetalert") ?>
|
||||
|
||||
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
|
||||
|
||||
|
||||
<?= $this->section("content") ?>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">Importador de Presupuestos desde el ERP antiguo</h3>
|
||||
</div><!--//.card-header -->
|
||||
<div class="card-body">
|
||||
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
|
||||
|
||||
<div class="row align-items-end">
|
||||
|
||||
<div class="col-md-4">
|
||||
<label id="label_clienteId" for="clienteId" class="form-label">
|
||||
Cliente
|
||||
</label>
|
||||
<select id="clienteId" name="cliente_id" class="form-control select2bs2" style="width: 100%;">
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<label id="label_clienteId" for="clienteId" class="form-label">
|
||||
Presupuesto
|
||||
</label>
|
||||
<select id="presupuesto" name="presupuesto" class="form-control select2bs2" style="width: 100%;"
|
||||
disabled>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-2 d-flex flex-column h-100">
|
||||
<button id="openOld" class="btn btn-primary waves-effect waves-light mt-auto w-100" disabled>
|
||||
Abrir original
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2 d-flex flex-column h-100">
|
||||
<button id="initImport" class="btn btn-primary waves-effect waves-light mt-auto w-100" disabled>
|
||||
Obtener datos
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card card-info mt-3 " id="cardImportador">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title
|
||||
">Detalle presupuesto</h3>
|
||||
</div><!--//.card-header -->
|
||||
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-2">
|
||||
<label for="paginas" class="form-label">
|
||||
Páginas
|
||||
</label>
|
||||
<input type="text" id="paginas" name="paginas" class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<label for="tirada" class="form-label">
|
||||
Tirada
|
||||
</label>
|
||||
<input type="text" id="tirada" name="tirada" class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<label for="tamanio" class="form-label">
|
||||
Tamaño
|
||||
</label>
|
||||
|
||||
<select id="tamanio" name="tamanio" class="form-control select2bs2" disabled>
|
||||
</select>
|
||||
|
||||
<div id="formatoPersonalizado" class="row justify-content-center d-none">
|
||||
|
||||
<div class="col-md-6 mb-1 ">
|
||||
<input type="number" id="papelFormatoAncho" name="papel_formato_ancho" step="1"
|
||||
class="form-control num-input" min="110" value="110" readonly>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 mb-1 ">
|
||||
<input type="number" id="papelFormatoAlto" name="papel_formato_alto" step="1"
|
||||
class="form-control num-input" min="170" value="170" readonly>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch mt-2 mb-2">
|
||||
<input class="form-check-input" type="checkbox" id="papelFormatoPersonalizado"
|
||||
name="papel_formato_personalizado" value="1" disabled>
|
||||
<label class="form-check-label"
|
||||
for="papelFormatoPersonalizado"><?= lang('Presupuestos.papelFormatoPersonalizado') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div><!--//.row -->
|
||||
|
||||
<h5 class="mt-3">Encuadernación</h5>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<label for="encuadernacion_old" class="form-label">Encuadernación original</label>
|
||||
<input type="text" id="encuadernacion_old" name="encuadernacion_old"
|
||||
class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label for="encuadernacion" class="form-label">Encuadernación propuesta</label>
|
||||
<select id="encuadernacion" name="encuadernacion" class="form-control select2bs2"
|
||||
style="width: 100%;">
|
||||
</select>
|
||||
</div>
|
||||
</div><!--//.row -->
|
||||
|
||||
<h5 class="mt-5">Interior</h5>
|
||||
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-2">
|
||||
<label for="interior_old" class="form-label">Calidad</label>
|
||||
<select id="isHq" name="isHq" class="form-control">
|
||||
<option value="0">Estándar</option>
|
||||
<option value="1">HQ</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10%;"></th>
|
||||
<th style="width: 10%;"><?= lang("Presupuestos.numeroPaginas") ?></th>
|
||||
<th style="width: 30%;">Papel Genérico original</th>
|
||||
<th style="width: 30%;">Papel Genérico propuesto</th>
|
||||
<th style="width: 10%;"><?= lang("Presupuestos.gramaje") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><?= lang('MaquinasTarifasImpresions.negro') ?></td>
|
||||
<td>
|
||||
<input type="text" id="compPaginasNegro" name="comp_paginas_negro"
|
||||
placeholder="0" maxLength="5" class="form-control comp_negro_items"
|
||||
value="" readonly>
|
||||
</td>
|
||||
<td>
|
||||
<input id="compPapelNegroOrigen" name="comp_papel_negro_origen"
|
||||
class="form-control comp_negro_items" value="" readonly>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<select id="compPapelNegroSelected" name="comp_papel_negro_selected"
|
||||
class="form-control select2bs2 comp_negro_items" style="width: 100%;">
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="compGramajeNegro" name="comp_gramaje_negro"
|
||||
class="form-control comp_negro_items" value="" readonly>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?= lang('MaquinasTarifasImpresions.color') ?></td>
|
||||
<td>
|
||||
<input type="text" id="compPaginasColor" name="comp_paginas_color"
|
||||
placeholder="0" maxLength="5" class="form-control comp_color_items"
|
||||
value="">
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="compPapelColorOrigen" name="comp_papel_color_origen"
|
||||
class="form-control comp_color_items" value="" readonly>
|
||||
</td>
|
||||
<td>
|
||||
<select id="compPapelColorSelected" name="comp_papel_color_selected"
|
||||
class="form-control select2bs2 comp_color_items" style="width: 100%;">
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="compGramajeColor" name="comp_gramaje_color"
|
||||
class="form-control comp_color_items" value="" readonly>
|
||||
</input>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
<h5 class="mt-5">Exteriores</h5>
|
||||
<div class="row">
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10%;"></th>
|
||||
<th style="width: 10%;">Opciones</th>
|
||||
<th style="width: 10%;">Solapas</th>
|
||||
<th style="width: 25%;">Papel Genérico original</th>
|
||||
<th style="width: 25%;">Papel Genérico propuesto</th>
|
||||
<th style="width: 10%;"><?= lang("Presupuestos.gramaje") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Cubierta</td>
|
||||
<td>
|
||||
<select id="compCarasCubierta" name="comp_paginas_cubierta"
|
||||
class="form-control select2bs2 comp_cubierta_items" style="width: 100%;"
|
||||
disabled>
|
||||
<option value="2"><?= lang('Presupuestos.unaCara') ?></option>
|
||||
<option value="4"><?= lang('Presupuestos.dosCaras') ?></option>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input id="compSolapasCubierta" name="comp_solapas_cubierta"
|
||||
class="form-control comp_cubierta_items" value="" readonly>
|
||||
<td>
|
||||
<input type="text" id="compPapelCubiertaOrigen"
|
||||
name="comp_papel_cubierta_origen"
|
||||
class="form-control comp_cubierta_items" style="width: 100%;" readonly>
|
||||
</input>
|
||||
</td>
|
||||
<td>
|
||||
<select id="compPapelCubiertaSelected" name="comp_papel_cubierta_selected"
|
||||
class="form-control select2bs2 comp_cubierta_items"
|
||||
style="width: 100%;">
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="compGramajeCubierta" name="comp_gramaje_cubierta"
|
||||
class="form-control comp_cubierta_items" value="" readonly>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Sobrecubierta</td>
|
||||
<td>
|
||||
<select id="compSobrecubierta" name="comp_sobrecubierta"
|
||||
class="form-control select2bs2 comp_sobrecubierta_items"
|
||||
style="width: 100%;" disabled>
|
||||
<option value="0"><?= lang('Presupuestos.no') ?></option>
|
||||
<option value="1"><?= lang('Presupuestos.si') ?></option>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input id="compSolapasSobrecubierta" name="comp_solapas_sobrecubierta"
|
||||
class="form-control comp_sobrecubierta_items" value="" readonly>
|
||||
</td>
|
||||
<td>
|
||||
<input id="compPapelSobrecubiertaOrigen"
|
||||
name="comp_papel_sobrecubierta_origen"
|
||||
class="form-control comp_sobrecubierta_items" value="" readonly>
|
||||
</td>
|
||||
<td>
|
||||
<select id="compPapelSobrecubiertaSelected"
|
||||
name="comp_papel_sobrecubierta_selected"
|
||||
class="form-control select2bs2 comp_sobrecubierta_items"
|
||||
style="width: 100%;">
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="compGramajeSobrecubierta"
|
||||
name="comp_gramaje_sobrecubierta"
|
||||
class="form-control comp_sobrecubierta_items" value="" readonly>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h5 class="mt-5">Acabados</h5>
|
||||
<div class="row">
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10%;"></th>
|
||||
<th style="width: 45%;">Acabado original</th>
|
||||
<th style="width: 45%;">Acabado propuesto</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Cubierta</td>
|
||||
<td>
|
||||
<input type="text" id="compAcabadoCubiertaOrigen"
|
||||
name="comp_acabado_cubierta_origen"
|
||||
class="form-control comp_cubierta_items" value="" readonly>
|
||||
</td>
|
||||
<td>
|
||||
<select id="compAcabadoCubiertaSelected"
|
||||
name="comp_acabado_cubierta_selected"
|
||||
class="form-control select2bs2 comp_cubierta_items"
|
||||
style="width: 100%;">
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Sobrecubierta</td>
|
||||
<td>
|
||||
<input id="compAcabadoSobrecubiertaOrigen"
|
||||
name="comp_acabado_sobrecubierta_origen"
|
||||
class="form-control comp_sobrecubierta_items" value="" readonly>
|
||||
</td>
|
||||
<td>
|
||||
<select id="compAcabadoSobrecubiertaSelected"
|
||||
name="comp_acabado_sobrecubierta_selected"
|
||||
class="form-control select2bs2 comp_sobrecubierta_items"
|
||||
style="width: 100%;">
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<h5 class="mt-5">Servicios</h5>
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="form-check">
|
||||
<label for="ferro" class="form-check-label">
|
||||
<input type="checkbox" id="ferro" name="ferro" value="1"
|
||||
class="form-check-input" service="extra"
|
||||
service-id=<?= $serviciosAutomaticos['ferro'] ?>>
|
||||
<?= lang('Presupuestos.ferro') ?>
|
||||
</label>
|
||||
</div><!--//.form-check -->
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="form-check">
|
||||
<label for="ferroDigital" class="form-check-label">
|
||||
<input type="checkbox" id="ferroDigital" name="ferro_digital" value="1"
|
||||
service="extra" service-id=<?= $serviciosAutomaticos['ferro_digital'] ?>
|
||||
class="form-check-input">
|
||||
<?= lang('Presupuestos.ferroDigital') ?>
|
||||
</label>
|
||||
</div><!--//.form-check -->
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="form-check">
|
||||
<label for="prototipo" class="form-check-label">
|
||||
<input type="checkbox" id="prototipo" name="prototipo" value="1"
|
||||
class="form-check-input" service="extra"
|
||||
service-id=<?= $serviciosAutomaticos['prototipo'] ?>>
|
||||
<?= lang('Presupuestos.prototipo') ?>
|
||||
</label>
|
||||
</div><!--//.form-check -->
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="form-check">
|
||||
<label for="marcapaginas" class="form-check-label">
|
||||
<input type="checkbox" id="marcapaginas" name="marcapaginas" value="1"
|
||||
class="form-check-input">
|
||||
<?= lang('Presupuestos.marcapaginas') ?>
|
||||
</label>
|
||||
</div><!--//.form-check -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-3">
|
||||
<button id="makeImport" class="btn btn-primary waves-effect waves-light mt-auto w-100">
|
||||
Importar presupuesto
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!--//.card -->
|
||||
|
||||
</div><!--//.card-body -->
|
||||
|
||||
<div class="card-footer">
|
||||
</div><!--//.card-footer -->
|
||||
|
||||
</div><!--//.card -->
|
||||
</div><!--//.col -->
|
||||
</div><!--//.row -->
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
|
||||
|
||||
<?= $this->section('css') ?>
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
|
||||
<?= $this->section('additionalExternalJs') ?>
|
||||
<script type="module"
|
||||
src="<?= site_url('assets/js/safekat/pages/importadorPresupuestos/importador.js') ?>"></script>
|
||||
<?= $this->endSection() ?>
|
||||
@ -0,0 +1,399 @@
|
||||
import ClassSelect from '../../components/select2.js';
|
||||
import Ajax from '../../components/ajax.js';
|
||||
|
||||
class Importador {
|
||||
|
||||
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.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.acabadoCubierta = new ClassSelect($("#compAcabadoCubiertaSelected"),
|
||||
'/serviciosacabados/getacabados',
|
||||
'',
|
||||
false,
|
||||
{
|
||||
"cubierta": 1
|
||||
}
|
||||
);
|
||||
this.acabadosSobrecubierta = new ClassSelect($("#compAcabadoSobrecubiertaSelected"),
|
||||
'/serviciosacabados/getacabados',
|
||||
'',
|
||||
false,
|
||||
{
|
||||
"sobrecubierta": 1
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
this.openBtn = $('#openOld');
|
||||
this.initImport = $('#initImport');
|
||||
this.makeImport = $('#makeImport');
|
||||
|
||||
}
|
||||
|
||||
init() {
|
||||
|
||||
// Fuerza el foco en el campo de búsqueda de select2
|
||||
$(document).on('select2:open', () => {
|
||||
document.querySelector('.select2-search__field').focus();
|
||||
});
|
||||
|
||||
this.cliente.init();
|
||||
this.presupuesto.init();
|
||||
this.encuadernacion.init();
|
||||
|
||||
this.compPapelNegroSelected.init();
|
||||
this.compPapelColorSelected.init();
|
||||
this.compPapelCubiertaSelected.init();
|
||||
this.compSobrecubiertaSelected.init();
|
||||
|
||||
this.acabadoCubierta.init();
|
||||
this.acabadosSobrecubierta.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)();
|
||||
}
|
||||
});
|
||||
|
||||
this.makeImport.on('click', this.importPresupuesto.bind(this));
|
||||
}
|
||||
|
||||
importPresupuesto(){
|
||||
|
||||
if ($("#clienteId").val() != '' && $("#presupuesto").val() != '') {
|
||||
let data = this.collectData();
|
||||
new Ajax(
|
||||
'/importador/importar',
|
||||
data,
|
||||
{},
|
||||
(response) => {
|
||||
if (response.success) {
|
||||
const urlObj = new URL(window.location.href);
|
||||
window.open(`${urlObj.origin}` + '/presupuestoadmin/edit/' + response.id);
|
||||
}
|
||||
},
|
||||
(error) => {
|
||||
console.error(error);
|
||||
}
|
||||
).post();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
collectData() {
|
||||
|
||||
let data = {};
|
||||
|
||||
data.id = $("#presupuesto").val();
|
||||
data.cliente_id = $("#clienteId").val();
|
||||
|
||||
data.paginas = $('#paginas').val();
|
||||
data.tirada = $('#tirada').val();
|
||||
data.papel_formato_id = $('#tamanio').val();
|
||||
data.papel_formato_personalizado = $('#papelFormatoPersonalizado').prop('checked')?1:0;
|
||||
data.papel_formato_ancho = $('#papelFormatoAncho').val();
|
||||
data.papel_formato_alto = $('#papelFormatoAlto').val();
|
||||
|
||||
data.encuadernacion = this.encuadernacion.getVal();
|
||||
data.isHq = $('#hq').val();
|
||||
|
||||
data.paginas_bn = $('#compPaginasNegro').val();
|
||||
data.papel_bn = this.compPapelNegroSelected.getVal();
|
||||
data.gramaje_bn = $('#compGramajeNegro').val();
|
||||
|
||||
data.paginas_color = $('#compPaginasColor').val();
|
||||
data.papel_color = this.compPapelColorSelected.getVal();
|
||||
data.gramaje_color = $('#compGramajeColor').val();
|
||||
|
||||
data.paginas_cubierta = $('#compCarasCubierta').val();
|
||||
data.papel_cubierta = this.compPapelCubiertaSelected.getVal();
|
||||
data.gramaje_cubierta = $('#compGramajeCubierta').val();
|
||||
data.solapas_cubierta = $('#compSolapasCubierta').val();
|
||||
data.acabado_cubierta = this.acabadoCubierta.getVal();
|
||||
|
||||
data.sobrecubierta = $('#compSobrecubierta').val();
|
||||
data.papel_sobrecubierta = this.compSobrecubiertaSelected.getVal();
|
||||
data.gramaje_sobrecubierta = $('#compGramajeSobrecubierta').val();
|
||||
data.solapas_sobrecubierta = $('#compSolapasSobrecubierta').val();
|
||||
data.acabado_sobrecubierta = this.acabadosSobrecubierta.getVal();
|
||||
|
||||
data.servicios = {
|
||||
marcapaginas: $('#marcapaginas').prop('checked')?1:0,
|
||||
serviciosExtra: []
|
||||
};
|
||||
|
||||
if($('#ferro').prop('checked')){
|
||||
data.servicios.serviciosExtra.push(30);
|
||||
}
|
||||
if($('#ferroDigital').prop('checked')){
|
||||
data.servicios.serviciosExtra.push(29);
|
||||
}
|
||||
if($('#prototipo').prop('checked')){
|
||||
data.servicios.serviciosExtra.push(9);
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
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('<option value="' + data.datosGenerales.papel_formato_id + '" selected>' + data.datosGenerales.papel_formato_texto + '</option>');
|
||||
$('#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.acabadoCubierta.setOption(data.acabados.cubierta.acabado.id, data.acabados.cubierta.acabado.name);
|
||||
this.acabadoCubierta.item.prop('disabled', false);
|
||||
}
|
||||
else {
|
||||
$('#compAcabadoCubiertaOrigen').val("");
|
||||
this.acabadoCubierta.empty();
|
||||
this.acabadoCubierta.item.prop('disabled', true);
|
||||
}
|
||||
|
||||
if (data.acabados.sobrecubierta && data.acabados.sobrecubierta.acabadoOld) {
|
||||
$('#compAcabadoSobrecubiertaOrigen').val(data.acabados.sobrecubierta.acabadoOld);
|
||||
this.acabadosSobrecubierta.setOption(data.acabados.sobrecubierta.acabado.id, data.acabados.sobrecubierta.acabado.name);
|
||||
this.acabadosSobrecubierta.item.prop('disabled', false);
|
||||
}
|
||||
else {
|
||||
$('#compAcabadoSobrecubiertaOrigen').val("");
|
||||
this.acabadosSobrecubierta.empty();
|
||||
this.acabadosSobrecubierta.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 () {
|
||||
|
||||
let importador = new Importador();
|
||||
importador.init();
|
||||
});
|
||||
|
||||
export default Importador;
|
||||
@ -284,7 +284,8 @@ class PresupuestoAdminEdit {
|
||||
|
||||
datos.comentarios_cliente = $('#comentariosCliente').val();
|
||||
datos.comentarios_safekat = $('#comentariosSafekat').val();
|
||||
datos.comentarios_presupuesto = $('#comentariosPdf').val();
|
||||
datos.comentarios_pdf = $('#comentariosPdf').val();
|
||||
datos.comentarios_presupuesto = $('#comentariosPresupuesto').val();
|
||||
datos.comentarios_produccion = $('#comentariosProduccion').val();
|
||||
|
||||
datos = { ...datos, ...this.resumen.getData() };
|
||||
@ -383,7 +384,8 @@ class PresupuestoAdminEdit {
|
||||
|
||||
$('#comentariosCliente').val(response.data.comentarios_cliente);
|
||||
$('#comentariosSafekat').val(response.data.comentarios_safekat);
|
||||
$('#comentariosPdf').val(response.data.comentarios_presupuesto);
|
||||
$('#comentariosPresupuesto').val(response.data.comentarios_presupuesto);
|
||||
$('#comentariosPdf').val(response.data.comentarios_pdf);
|
||||
$('#comentariosProduccion').val(response.data.comentarios_produccion);
|
||||
$("textarea[name^='comentarios_']").trigger("input");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user