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->getPost(); $datos_tarifas = $postData['datos'] ?? []; $tirada = $postData['tirada'] ?? 0; $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; $result = $this->getServiciosAcabados($datos_tarifas, $tirada, $POD); $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); $data = [ 'lineas' => $result, $csrfTokenName => $newTokenHash ]; return $this->respond($data); } public function getServiciosAcabados($datos_tarifas, $tirada, $POD) { $model = model('App\Models\Presupuestos\PresupuestoAcabadosModel'); $result = []; if (count($datos_tarifas) > 0) { foreach ($datos_tarifas as $tarifa) { $proveedor = $tarifa['proveedor_id'] == '' ? -1 : $tarifa['proveedor_id']; $values = $model->getPrecioTarifa($tarifa['tarifa_id'], $tirada, $proveedor, $POD); $values[0]->cubierta = $tarifa['cubierta'] ?? 0; $values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0; $values[0]->faja = $tarifa['faja'] ?? 0; array_push($result, $values[0]); } } return $result; } public function cargar() { if ($this->request->isAJAX()) { $presupuesto_id = $this->request->getGet('presupuesto_id') ?? null; $rows = $this->model->getResource($presupuesto_id)->get()->getResultObject(); $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); $data = [ 'rows' => $rows, $csrfTokenName => $newTokenHash ]; return $this->respond($data); } else { return $this->failUnauthorized('Invalid request', 403); } } public function getRowValues() { 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 = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; $isTarifa = $reqData['isTarifa'] ?? 0; $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); $data = []; if ($isTarifa == 1) { $values = $this->model->getPrecioTarifa($tarifa_acabado_id, $tirada, $proveedor_id, $POD); $values[0]->tarifa_id = $tarifa_acabado_id; array_push($data, $values[0]); } else { $model = model('App\Models\Tarifas\Acabados\TarifasAcabadoServiciosAcabadoModel'); $tarifas = $model->getTarifasForServicio($tarifa_acabado_id); foreach ($tarifas as $tarifa) { $values = $this->model->getPrecioTarifa($tarifa, $tirada, $proveedor_id, $POD); $values[0]->tarifa_id = $tarifa; array_push($data, $values[0]); } } //$values = $this->model->getPrecioTarifa($tarifa_acabado_id, $tirada, $proveedor_id, $POD); $data = [ 'values' => $data, $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; $cliente = $this->request->getGet("cliente") ?? 0; $model = model('App\Models\Tarifas\Acabados\ServicioAcabadoModel'); $query = $model->builder()->select( [ "id", "nombre as name" ] ) ->where("servicios_acabado.deleted_at", null); if ($cubierta == 1) { $query->where("servicios_acabado.acabado_cubierta", 1); } else if ($sobrecubierta == 1) { $query->where("servicios_acabado.acabado_sobrecubierta", 1); } if ($cliente == 1) { $query->where("servicios_acabado.mostrar_en_presupuesto_cliente", 1); } if ($this->request->getGet("q")) { $query->groupStart() ->orLike("servicios_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); } } }