Files
safekat/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php

202 lines
6.1 KiB
PHP
Executable File

<?php namespace App\Controllers\Presupuestos;
use App\Controllers\BaseResourceController;
use App\Models\Collection;
use App\Entities\Clientes\ClienteContactoEntity;
use App\Models\Clientes\ClienteModel;
use App\Models\Presupuestos\PresupuestoManipuladosModel;
class Presupuestomanipulados extends \App\Controllers\BaseResourceController
{
protected $modelName = PresupuestoManipuladosModel::class;
protected $format = 'json';
protected static $singularObjectName = 'Presupuesto manipulado';
protected static $singularObjectNameCc = 'presupuestoManipulado';
protected static $pluralObjectName = 'Presupuestos manipulado';
protected static $pluralObjectNameCc = 'presupuestosManipulado';
protected static $controllerSlug = 'presupuesto-manipulado';
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();
$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 getServicioSolapas(){
if($this->request->isAJAX()){
$servicio = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('servicio_solapas')->value;
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
'service' => $servicio,
$csrfTokenName => $newTokenHash
];
return $this->respond($data);
}
else{
return $this->failUnauthorized('Invalid request', 403);
}
}
public function update($requestedId = null)
{
if ($requestedId == null) :
return;
endif;
$postData = $this->request->getPost();
$tarifas = $postData['datos'] ?? [];
$tirada = $postData['tirada'] ?? 0;
$POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
$result = $this->getServiciosManipulado($tarifas, $tirada, $POD);
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
'lineas' => $result,
$csrfTokenName => $newTokenHash
];
return $this->respond($data);
}
public function getServiciosManipulado($datos_tarifas, $tirada, $POD)
{
$result = [];
$model = model('App\Models\Presupuestos\PresupuestoManipuladosModel');
if (count($datos_tarifas) > 0) {
foreach ($datos_tarifas as $tarifa) {
$tarifa_id = 0;
if(is_array($tarifa)){
//check if $tarifa['tarifa_manipulado_id'] exists
if(array_key_exists('tarifa_manipulado_id', $tarifa)){
$tarifa_id = $tarifa['tarifa_manipulado_id'];
}
else if(array_key_exists('tarifa_id', $tarifa)){
$tarifa_id = $tarifa['tarifa_id'];
}
}
else{
$tarifa_id = $tarifa;
}
$values = $model->getPrecioTarifa($tarifa_id, $tirada, $POD);
$values[0]->cubierta = $tarifa['cubierta'] ?? 0;
$values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0;
array_push($result, $values[0]);
}
}
return $result;
}
public function datatable()
{
if ($this->request->isAJAX()) {
$reqData = $this->request->getPost();
$tarifa_manipulado_id = $reqData['tarifa_manipulado_id'] ?? 0;
$tirada = $reqData['tirada'] ?? 0;
$POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
$tipo = $reqData['tipo'] ?? null;
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
if(is_null($tipo)){
$values = $this->model->getPrecioTarifa($tarifa_manipulado_id, $tirada, $POD);
}
else{
$solapas = $reqData['solapas'] ?? -1;
$tipo_impresion_id = $reqData['tipo_impresion_id'] ?? 4;
$values = $this->model->initPresupuesto($tipo_impresion_id, $solapas, $tirada, $POD);
}
$data = [
'values' => $values,
$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_manipulado_id = $reqData['tarifa_manipulado_id'] ?? 0;
$tirada = $reqData['tirada'] ?? 0;
$POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$values = $this->model->getPrecioTarifa($tarifa_manipulado_id, $tirada, $POD);
$data = [
'values' => $values,
$csrfTokenName => $newTokenHash
];
return $this->respond($data);
} else {
return $this->failUnauthorized('Invalid request', 403);
}
}
}