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->getPost(); $datos_tarifas = $postData['datos'] ?? []; $tirada = $postData['tirada'] ?? 0; $paginas = $postData['paginas'] ?? 0; $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; $ancho = $postData['ancho'] ?? 0; $alto = $postData['alto'] ?? 0; $result = $this->getServiciosEncuadernacion($datos_tarifas, $tirada, $paginas, $ancho, $alto, $POD); $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); $data = [ 'lineas' => $result, $csrfTokenName => $newTokenHash ]; return $this->respond($data); } public function getServiciosEncuadernacion($datos_tarifas, $tirada, $paginas, $ancho, $alto, $POD) { $result = []; $tarifaModel = model('App\Models\Tarifas\TarifaEncuadernacionModel'); $model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel'); if (count($datos_tarifas) > 0) { foreach ($datos_tarifas as $tarifa) { if ($tarifaModel->isTarifaPorHoras($tarifa['tarifa_id'])) { $values = $model->getPrecioTarifaHoras($tarifa['tarifa_id'], $paginas, $tirada, -1, $POD); } else { $values = $model->getPrecioTarifa($tarifa['tarifa_id'], $paginas, $tirada, $ancho, $alto, -1, $POD); } array_push($result, $values[0]); } } return $result; } 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'] ?? 0; } $paginas = $reqData['paginas'] ?? 0; $tirada = $reqData['tirada'] ?? 0; $ancho = $reqData['ancho'] ?? 0; $alto = $reqData['alto'] ?? 0; $POD = $reqData['POD'] ?? 0; $paginas_cuadernillo = $reqData['paginas_por_cuadernillo'] ?? null; $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, $paginas_cuadernillo); } 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 getRowValues() { if ($this->request->isAJAX()) { $tarifaModel = model('App\Models\Tarifas\TarifaEncuadernacionModel'); $reqData = $this->request->getPost(); $tarifa_enc_id = $reqData['tarifa_enc_id'] ?? 0; $tirada = $reqData['tirada'] ?? 0; $paginas = $reqData['paginas'] ?? 0; $ancho = $reqData['ancho'] ?? 0; $alto = $reqData['alto'] ?? 0; $proveedor_id = $reqData['proveedor_id'] ?? -1; $paginas_cuadernillo = $reqData['paginas_por_cuadernillo'] ?? 32; $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); if ($tarifaModel->isTarifaPorHoras($tarifa_enc_id)) { $values = $this->model->getPrecioTarifaHoras($tarifa_enc_id, $paginas, $tirada, $proveedor_id, $POD, $paginas_cuadernillo); } else { $values = $this->model->getPrecioTarifa($tarifa_enc_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $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; $paginas_cuadernillo = $reqData['paginas_por_cuadernillo'] ?? 32; $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); $menu = $this->model->getProveedoresForSelector($tarifa_id, $paginas, $tirada, $ancho, $alto, $paginas_cuadernillo); $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); } } }