mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
607 lines
26 KiB
PHP
Executable File
607 lines
26 KiB
PHP
Executable File
<?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 Cosido 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,
|
|
"papelInteriorDiferente" => $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' => strlen($datosSave->comentarios_cliente)>0?$texto_comments . $datosSave->comentarios_cliente:"",
|
|
'comentarios_safekat' => strlen($datosSave->comentarios_safekat)>0? $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);
|
|
}
|
|
}
|
|
|
|
} |