mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
260 lines
7.8 KiB
PHP
Executable File
260 lines
7.8 KiB
PHP
Executable File
<?php
|
|
namespace App\Controllers\Presupuestos;
|
|
|
|
|
|
use App\Controllers\BaseResourceController;
|
|
|
|
use App\Models\Collection;
|
|
|
|
|
|
use App\Models\Presupuestos\PresupuestoAcabadosModel;
|
|
|
|
|
|
|
|
class Presupuestoacabados extends \App\Controllers\BaseResourceController
|
|
{
|
|
|
|
protected $modelName = PresupuestoAcabadosModel::class;
|
|
protected $format = 'json';
|
|
|
|
protected static $singularObjectName = 'Presupuesto acabado';
|
|
protected static $singularObjectNameCc = 'presupuestoAcabado';
|
|
protected static $pluralObjectName = 'Presupuestos acabado';
|
|
protected static $pluralObjectNameCc = 'presupuestosAcabado';
|
|
|
|
protected static $controllerSlug = 'presupuesto-acabados';
|
|
|
|
protected static $viewPath = 'themes/vuexy/form/presupuestos/';
|
|
|
|
|
|
|
|
public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger)
|
|
{
|
|
parent::initController($request, $response, $logger);
|
|
}
|
|
|
|
|
|
|
|
public function edit($requestedId = null)
|
|
{
|
|
|
|
if ($requestedId == null):
|
|
return;
|
|
endif;
|
|
|
|
$postData = $this->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);
|
|
}
|
|
}
|
|
|
|
|
|
}
|