<?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);
        }
    }

}