request->getJSON(); if (count($postData->datos) > 0) { $this->model->deleteServiciosNotInArray($requestedId, $postData->datos); } else { $this->model->deleteAllServicios($requestedId); } if (count($postData->datos) > 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) { if ($requestedId == null): return; endif; $postData = $this->request->getJSON(); $tarifas = array_column($postData->datos, 'tarifa_id'); $tirada = $postData->tirada ?? 0; $POD = $postData->POD ?? 0; $result = []; if (count($tarifas) > 0) { foreach ($tarifas as $tarifa) { $values = $this->model->getPrecioTarifa($tarifa, $tirada, $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(); $tarifa_acabado_id = $reqData['tarifa_acabado_id'] ?? 0; $tirada = $reqData['tirada'] ?? 0; $proveedor_id = $reqData['proveedor_id'] ?? -1; $POD = $reqData['POD'] ?? 0; $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); $values = $this->model->getPrecioTarifa($tarifa_acabado_id, $tirada, $proveedor_id, $POD); $data = [ 'values' => $values, $csrfTokenName => $newTokenHash ]; return $this->respond($data); } else { return $this->failUnauthorized('Invalid request', 403); } } public function getAcabados() { if ($this->request->isAJAX()) { $cubierta = $this->request->getGet("cubierta") ?? 0; $sobrecubierta = $this->request->getGet("sobrecubierta") ?? 0; $model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel'); $query = $model->builder()->select( [ "id", "nombre as name" ] ) ->where("lg_tarifa_acabado.is_deleted", 0) ->where("lg_tarifa_acabado.mostrar_en_presupuesto", 1); if($cubierta == 1){ $query->where("lg_tarifa_acabado.acabado_cubierta", 1); } else if ($sobrecubierta == 1){ $query->where("lg_tarifa_acabado.acabado_sobrecubierta", 1); } if ($this->request->getGet("q")) { $query->groupStart() ->orLike("lg_tarifa_acabado.nombre", $this->request->getGet("q")) ->groupEnd(); } $items = $query->get()->getResultObject(); // add a custom item at the beginning $customItem = new \stdClass; $customItem->id = 0; $customItem->name = "Ninguno"; array_unshift($items, $customItem); return $this->response->setJSON($items); } 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; $tirada = $reqData['tirada'] ?? 0; $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); $menu = $this->model->getProveedoresForSelector($tarifa_id, $tirada); $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); } } }