request->getJSON(); $tarifas = array_column($postData->datos, 'tarifa_id'); if(count($tarifas)>0){ $this->model->deleteServiciosNotInArray($requestedId, $tarifas); } else{ $this->model->deleteAllServicios($requestedId); } if(count($tarifas)>0){ $this->model->updateTarifas($requestedId, $postData->datos); } $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); $data = [ $csrfTokenName => $newTokenHash ]; return $this->respond($data); } public function update($requestedId = null) { $tarifaModel = model('App\Models\Tarifas\TarifaEncuadernacionModel'); if ($requestedId == null) : return; endif; $postData = $this->request->getJSON(); $tarifas = array_column($postData->datos, 'tarifa_id'); $tirada = $postData->tirada ?? 0; $paginas = $postData->paginas ?? 0; $POD = $postData->POD ?? 0; $ancho = $postData->ancho ?? 0; $alto = $postData->alto ?? 0; $result = []; if(count($tarifas)>0){ foreach ($tarifas as $tarifa){ if($tarifaModel->isTarifaPorHoras($tarifa)){ $values = $this->model->getPrecioTarifaHoras($tarifa, $paginas, $tirada, -1, $POD); }else{ $values = $this->model->getPrecioTarifa($tarifa, $paginas, $tirada, $ancho, $alto, -1, $POD); } array_push($result, $values); } } $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); $data = [ 'lines' => $result, $csrfTokenName => $newTokenHash ]; return $this->respond($data); } public function datatable() { if ($this->request->isAJAX()) { $reqData = $this->request->getPost(); $tipo = $reqData['tipo'] ?? null; if(is_null($tipo) || $tipo=='tarifa'){ $tarifa_encuadernacion_id = $reqData['tarifa_encuadernacion_id'] ?? 0; $proveedor_id = $reqData['proveedor_id'] ?? 0; } else{ $solapas = $reqData['solapas'] ?? -1; } $paginas = $reqData['paginas'] ?? 0; $tirada = $reqData['tirada'] ?? 0; $ancho = $reqData['ancho'] ?? 0; $alto = $reqData['alto'] ?? 0; $POD = $reqData['POD'] ?? 0; $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); $tarifaModel = model('App\Models\Tarifas\TarifaEncuadernacionModel'); if(is_null($tipo)){ if($tarifaModel->isTarifaPorHoras($tarifa_encuadernacion_id)){ $values = $this->model->getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD); }else{ $values = $this->model->getPrecioTarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD); } } else if($tipo=='tarifa'){ if($tarifaModel->isTarifaPorHoras($tarifa_encuadernacion_id)){ $values = $this->model->getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, -1, $POD); } else{ $values = $this->model->getPrecioTarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, -1, $POD); } } else{ $tipo_impresion_id = $reqData['tipo_impresion_id'] ?? 4; $values = $this->model->initPresupuesto($tipo_impresion_id, $solapas, $tirada, $paginas, $ancho, $alto, $POD); } $data = [ 'values' => $values, $csrfTokenName => $newTokenHash ]; return $this->respond($data); } else { return $this->failUnauthorized('Invalid request', 403); } } public function menuItems() { if ($this->request->isAJAX()) { $reqData = $this->request->getPost(); try{ $tarifa_id = $reqData['tarifa_id'] ?? -1; $paginas = $reqData['paginas'] ?? 0; $tirada = $reqData['tirada'] ?? 0; $ancho = $reqData['ancho'] ?? 0; $alto = $reqData['alto'] ?? 0; //$searchStr = goSanitize($this->request->getPost('searchTerm'))[0]; $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); $menu = $this->model->getProveedoresForSelector($tarifa_id, $paginas, $tirada, $ancho, $alto); $data = [ 'menu' => $menu, $csrfTokenName => $newTokenHash ]; } catch(Exception $e){ $data = [ 'error' => $e, $csrfTokenName => $newTokenHash ]; } finally{ return $this->respond($data); } } else { return $this->failUnauthorized('Invalid request', 403); } } }