mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
terminada la recogida de datos fundamentales
This commit is contained in:
@ -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,
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user