mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
cargando presupuesto datos generales
This commit is contained in:
@ -5,6 +5,8 @@ namespace App\Controllers\Presupuestos;
|
||||
use App\Entities\Presupuestos\PresupuestoEntity;
|
||||
use App\Libraries\SafekatFtpClient;
|
||||
use App\Models\Collection;
|
||||
use App\Models\Clientes\ClienteModel;
|
||||
use App\Models\Configuracion\PapelFormatoModel;
|
||||
use App\Models\Configuracion\PapelGenericoModel;
|
||||
use App\Models\Configuracion\TipoPresupuestoModel;
|
||||
use App\Models\Presupuestos\PresupuestoAcabadosModel;
|
||||
@ -400,20 +402,35 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
|
||||
$coste_envio = 0.0;
|
||||
foreach ($direcciones as $direccion) {
|
||||
$coste_envio += $this->getCosteEnvio(
|
||||
$coste_direccion = $this->getCosteEnvio(
|
||||
$direccion['id'],
|
||||
$return_data['peso'][$i],
|
||||
$direccion['unidades'],
|
||||
$direccion['entregaPalets'] == 'true' ? 1 : 0
|
||||
)[0]->coste;
|
||||
)[0];
|
||||
|
||||
|
||||
if (!property_exists($coste_direccion, 'coste')) {
|
||||
$return_data['errors']->envios = "No se ha podido calcular el coste de envío";
|
||||
}else{
|
||||
$coste_envio += $coste_direccion->coste;
|
||||
}
|
||||
}
|
||||
$return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio / $tirada[$i], 4);
|
||||
}
|
||||
} else {
|
||||
|
||||
for ($i = 0; $i < count($tirada); $i++) {
|
||||
|
||||
$coste_envio = 0.0;
|
||||
$coste_envio += $this->getCosteEnvio(null, $return_data['peso'][$i], $tirada[$i], false)[0]->coste;
|
||||
$coste_direccion = $this->getCosteEnvio(null, $return_data['peso'][$i], $tirada[$i], false)[0];
|
||||
|
||||
if (!property_exists($coste_direccion, 'coste')) {
|
||||
$return_data['errors']->envios = "No se ha podido calcular el coste de envío";
|
||||
}else{
|
||||
$coste_envio += $coste_direccion->coste;
|
||||
}
|
||||
|
||||
$return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio / $tirada[$i], 4);
|
||||
}
|
||||
|
||||
@ -596,6 +613,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$tamanio = $reqData['tamanio'];
|
||||
$paginas = $reqData['paginas'] ?? 0;
|
||||
$paginas_color = $reqData['paginasColor'] ?? 0;
|
||||
$posPaginasColor = $reqData['posPaginasColor'] ?? "";
|
||||
$papelInteriorDiferente = $reqData['papelInteriorDiferente'] ?? 0;
|
||||
$paginasColorConsecutivas = $reqData['paginasColorConsecutivas'] ?? 0;
|
||||
$prototipo = $reqData['prototipo'] ?? 0;
|
||||
|
||||
$tipo = $reqData['tipo'];
|
||||
|
||||
$paginasCuadernillo = $reqData['paginasCuadernillo'] ?? null;
|
||||
@ -869,6 +891,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
if ($this->request->isAJAX()) {
|
||||
|
||||
$modelPapelGenerico = new PapelGenericoModel();
|
||||
$modelPapelFormato = new PapelFormatoModel();
|
||||
$modelCliente = new ClienteModel();
|
||||
|
||||
$reqData = $this->request->getPost();
|
||||
|
||||
@ -887,11 +911,15 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$data['datosGenerales']['ivaReducido'] = $presupuesto->iva_reducido;
|
||||
$data['datosGenerales']['excluirRotativa'] = $presupuesto->excluir_rotativa;
|
||||
$data['datosGenerales']['clienteId'] = $presupuesto->cliente_id;
|
||||
$data['datosGenerales']['clienteNombre'] =
|
||||
$data['datosGenerales']['clienteNombre'] = $modelCliente->getNombre($presupuesto->cliente_id);
|
||||
model('App\Models\Clientes\ClienteModel')
|
||||
->find($presupuesto->cliente_id)->nombre;
|
||||
$data['datosGenerales']['papelFormatoId'] = $presupuesto->papel_formato_id;
|
||||
$data['datosGenerales']['papelFormatoNombre'] = $modelPapelFormato->getNombre($presupuesto->papel_formato_id);
|
||||
$data['datosGenerales']['papelFormatoPersonalizado'] = $presupuesto->papel_formato_personalizado;
|
||||
$data['datosGenerales']['papelFormatoAncho'] = $presupuesto->papel_formato_ancho;
|
||||
$data['datosGenerales']['papelFormatoAlto'] = $presupuesto->papel_formato_alto;
|
||||
|
||||
$data['datosGenerales']['papelInteriorDiferente'] = $presupuesto->papel_interior_diferente;
|
||||
|
||||
$data['tiradasPrecio'] = [
|
||||
@ -1244,7 +1272,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$margen = 0;
|
||||
|
||||
if ($data > 0) {
|
||||
$peso_envio = $peso * $unidades / 1000.0; // peso libro * unidades y se pasa a kilogramos
|
||||
$peso_envio = round(floatval($peso * $unidades / 1000.0)); // peso libro * unidades y se pasa a kilogramos
|
||||
$tarifas_envio = $modelTarifaEnvio->getTarifaEnvio($data[0]->pais_id, $data[0]->cp, $peso_envio, $entregaPieCalle ? 'palets' : 'cajas');
|
||||
for ($i = 0; $i < count($tarifas_envio); $i++) {
|
||||
if ($peso_envio > $tarifas_envio[$i]->peso_max || floatval($tarifas_envio[$i]->precio_max) == 0) {
|
||||
@ -1333,6 +1361,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
'guardas' => "",
|
||||
'servicios' => "",
|
||||
'serviciosDefecto' => "",
|
||||
"envios" => "",
|
||||
];
|
||||
$coste_servicios = 0.0;
|
||||
|
||||
@ -1568,6 +1597,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$acabadoSobrecubierta = [];
|
||||
foreach ($tarifaAcabadoSobrecubierta as $tarifa) {
|
||||
|
||||
// NONE
|
||||
if($tarifaAcabadoSobrecubierta[0] == 0)
|
||||
continue;
|
||||
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
||||
$acabadoSobrecubierta = $model->getPrecioTarifa($tarifa, $datosPedido->tirada, -1, $POD);
|
||||
|
||||
@ -1705,7 +1737,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0;
|
||||
}
|
||||
} else if (intval($servicio) == 9) {
|
||||
// Servicios preimpresion
|
||||
// Prototipo
|
||||
$resultado = PresupuestoCLienteService::getServiciosExtra([
|
||||
'tarifa_id' => $servicio,
|
||||
]);
|
||||
@ -2238,7 +2270,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$paginasColor = 0;
|
||||
|
||||
foreach ($lineas as $linea) {
|
||||
if (strpos($linea->tipo, "lp_bn") !== false || strpos($linea->tipo, "lp_color") !== false) {
|
||||
if (strpos($linea->tipo, "lp_bn") !== false || strpos($linea->tipo, "lp_bnhq") !== false) {
|
||||
$paginasNegro = $linea->paginas;
|
||||
}
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Clientes;
|
||||
|
||||
class ClienteModel extends \App\Models\BaseModel
|
||||
@ -293,30 +294,32 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
return empty($search)
|
||||
? $builder
|
||||
: $builder
|
||||
->groupStart()
|
||||
->like("t1.nombre", $search)
|
||||
->orLike("t1.alias", $search)
|
||||
->orLike("t1.cif", $search)
|
||||
->orLike("t1.email", $search)
|
||||
->orLike("t1.soporte_id", $search)
|
||||
->orLike("t1.forma_pago_id", $search)
|
||||
->orLike("t1.vencimiento", $search)
|
||||
->orLike("t5.id", $search)
|
||||
->orLike("t5.first_name", $search)
|
||||
->orLike("t5.last_name", $search)
|
||||
->orLike("t7.id", $search)
|
||||
->orLike("t7.nombre", $search)
|
||||
->groupEnd();
|
||||
->groupStart()
|
||||
->like("t1.nombre", $search)
|
||||
->orLike("t1.alias", $search)
|
||||
->orLike("t1.cif", $search)
|
||||
->orLike("t1.email", $search)
|
||||
->orLike("t1.soporte_id", $search)
|
||||
->orLike("t1.forma_pago_id", $search)
|
||||
->orLike("t1.vencimiento", $search)
|
||||
->orLike("t5.id", $search)
|
||||
->orLike("t5.first_name", $search)
|
||||
->orLike("t5.last_name", $search)
|
||||
->orLike("t7.id", $search)
|
||||
->orLike("t7.nombre", $search)
|
||||
->groupEnd();
|
||||
}
|
||||
|
||||
/*
|
||||
TO-DO: Implementar la lógica de negocio para el crédito disponible
|
||||
*/
|
||||
public function creditoDisponible($cliente_id){
|
||||
public function creditoDisponible($cliente_id)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getClienteDataFacturas($cliente_id){
|
||||
public function getClienteDataFacturas($cliente_id)
|
||||
{
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
@ -329,27 +332,27 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
->where("t1.id", $cliente_id);
|
||||
$builder->join("lg_paises t2", "t1.pais_id = t2.id", "left");
|
||||
$builder->join("lg_provincias t3", "t1.provincia_id = t3.id", "left");
|
||||
|
||||
|
||||
return $builder->get()->getResultArray();
|
||||
}
|
||||
public function getClienteDataPresupuestoPedidoFactura(int $cliente_id) : array
|
||||
public function getClienteDataPresupuestoPedidoFactura(int $cliente_id): array
|
||||
{
|
||||
$query = $this->db
|
||||
->table($this->table." t1")
|
||||
->select([
|
||||
"t1.id as clienteId",
|
||||
"presupuestos.id as presupuestoId",
|
||||
"pedidos.id as pedidoId",
|
||||
"presupuesto_estados.estado as presupuestoEstado",
|
||||
"facturas_pedidos_lineas.factura_id as facturaId",
|
||||
->table($this->table . " t1")
|
||||
->select([
|
||||
"t1.id as clienteId",
|
||||
"presupuestos.id as presupuestoId",
|
||||
"pedidos.id as pedidoId",
|
||||
"presupuesto_estados.estado as presupuestoEstado",
|
||||
"facturas_pedidos_lineas.factura_id as facturaId",
|
||||
|
||||
])
|
||||
->join("presupuestos","t1.id = presupuestos.cliente_id","left")
|
||||
->join("presupuesto_estados","presupuestos.estado_id = presupuesto_estados.id","left")
|
||||
->join("pedidos_linea","presupuestos.id = pedidos_linea.presupuesto_id","left")
|
||||
->join("pedidos","pedidos.id = pedidos_linea.pedido_id","left")
|
||||
->join("facturas_pedidos_lineas","facturas_pedidos_lineas.pedido_linea_id = pedidos_linea.id","left")
|
||||
->where("t1.id",$cliente_id);
|
||||
->join("presupuestos", "t1.id = presupuestos.cliente_id", "left")
|
||||
->join("presupuesto_estados", "presupuestos.estado_id = presupuesto_estados.id", "left")
|
||||
->join("pedidos_linea", "presupuestos.id = pedidos_linea.presupuesto_id", "left")
|
||||
->join("pedidos", "pedidos.id = pedidos_linea.pedido_id", "left")
|
||||
->join("facturas_pedidos_lineas", "facturas_pedidos_lineas.pedido_linea_id = pedidos_linea.id", "left")
|
||||
->where("t1.id", $cliente_id);
|
||||
$data = $query->get()->getResultObject();
|
||||
$facturas = [];
|
||||
$presupuestos = [];
|
||||
@ -367,4 +370,23 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
public function getNombre($id = -1)
|
||||
{
|
||||
|
||||
try {
|
||||
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
"t1.nombre AS nombre"
|
||||
)
|
||||
->where("id", $id)
|
||||
->where("is_deleted", 0);
|
||||
|
||||
return $builder->get()->getResultObject()[0]->nombre;
|
||||
} catch (\Exception $e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Configuracion;
|
||||
|
||||
class PapelFormatoModel extends \App\Models\BaseModel
|
||||
@ -72,21 +73,22 @@ class PapelFormatoModel extends \App\Models\BaseModel
|
||||
return empty($search)
|
||||
? $builder
|
||||
: $builder
|
||||
->groupStart()
|
||||
->like("t1.id", $search)
|
||||
->orLike("t1.ancho", $search)
|
||||
->orLike("t1.alto", $search)
|
||||
->orLike("t1.created_at", $search)
|
||||
->orLike("t1.updated_at", $search)
|
||||
->orLike("t1.id", $search)
|
||||
->orLike("t1.ancho", $search)
|
||||
->orLike("t1.alto", $search)
|
||||
->orLike("t1.created_at", $search)
|
||||
->orLike("t1.updated_at", $search)
|
||||
->groupEnd();
|
||||
->groupStart()
|
||||
->like("t1.id", $search)
|
||||
->orLike("t1.ancho", $search)
|
||||
->orLike("t1.alto", $search)
|
||||
->orLike("t1.created_at", $search)
|
||||
->orLike("t1.updated_at", $search)
|
||||
->orLike("t1.id", $search)
|
||||
->orLike("t1.ancho", $search)
|
||||
->orLike("t1.alto", $search)
|
||||
->orLike("t1.created_at", $search)
|
||||
->orLike("t1.updated_at", $search)
|
||||
->groupEnd();
|
||||
}
|
||||
|
||||
public function getElementsForMenu(){
|
||||
public function getElementsForMenu()
|
||||
{
|
||||
return $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
@ -94,7 +96,8 @@ class PapelFormatoModel extends \App\Models\BaseModel
|
||||
)->where('is_deleted', 0)->orderBy('orden_select', 'asc')->get()->getResultObject();
|
||||
}
|
||||
|
||||
public function getElementsForMenu2($search = ""){
|
||||
public function getElementsForMenu2($search = "")
|
||||
{
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
@ -108,9 +111,26 @@ class PapelFormatoModel extends \App\Models\BaseModel
|
||||
return empty($search)
|
||||
? $builder->get()->getResultObject()
|
||||
: $builder
|
||||
->groupStart()
|
||||
->like('t1.ancho', $search)
|
||||
->orLike('t1.alto', $search)
|
||||
->groupEnd()->get()->getResultObject();
|
||||
->groupStart()
|
||||
->like('t1.ancho', $search)
|
||||
->orLike('t1.alto', $search)
|
||||
->groupEnd()->get()->getResultObject();
|
||||
}
|
||||
|
||||
|
||||
public function getNombre($id = -1)
|
||||
{
|
||||
try {
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
"CONCAT(t1.ancho, ' x ', t1.alto) AS name"
|
||||
)
|
||||
->where('t1.id', $id);
|
||||
|
||||
return $builder->get()->getResultObject()[0]->name;
|
||||
} catch (\Exception $e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -256,7 +256,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-8 mt-5 mb-3 d-flex flex-column align-items-center">
|
||||
<div class="col-sm-8 mb-3 d-flex flex-column align-items-center">
|
||||
<h3 class="mb-1 fw-bold"> Servicios extra </h3>
|
||||
</div>
|
||||
|
||||
|
||||
@ -1,10 +1,18 @@
|
||||
<div id="loader" class="loader" data-backdrop="static" data-keyboard="false" style="display: none;">
|
||||
<div class="book">
|
||||
<div class="book__pg-shadow"></div>
|
||||
<div class="book__pg"></div>
|
||||
<div class="book__pg book__pg--2"></div>
|
||||
<div class="book__pg book__pg--3"></div>
|
||||
<div class="book__pg book__pg--4"></div>
|
||||
<div class="book__pg book__pg--5"></div>
|
||||
<div id="loader" class="modal modal-transparent" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<div class="loader">
|
||||
<div class="book">
|
||||
<div class="book__pg-shadow"></div>
|
||||
<div class="book__pg"></div>
|
||||
<div class="book__pg book__pg--2"></div>
|
||||
<div class="book__pg book__pg--3"></div>
|
||||
<div class="book__pg book__pg--4"></div>
|
||||
<div class="book__pg book__pg--5"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user