Revert "Merge branch 'feat/add-chat-presupuesto-cliente' into 'main'"

This reverts merge request !352
This commit is contained in:
Alvaro
2024-10-23 05:18:00 +00:00
parent 47e6cbb5f7
commit 7ce2723a09
147 changed files with 5666 additions and 9809 deletions

View File

@ -210,7 +210,6 @@ class ChatModel extends Model
->join("chat_departments","chat_departments.id = chats.chat_department_id","left")
->join("pedidos","pedidos.id = chats.pedido_id","left")
->whereIn("pedidos.id",$pedidos)
->where("chats.chat_department_id is NOT NULL",NULL,FALSE)
->get()->getResultObject();
$chatMessageModel = model(ChatMessageModel::class);
$count = 0;
@ -238,7 +237,6 @@ class ChatModel extends Model
->join("chat_departments","chat_departments.id = chats.chat_department_id","left")
->join("facturas","facturas.id = chats.factura_id","left")
->whereIn("facturas.id",$facturas)
->where("chats.chat_department_id is NOT NULL",NULL,FALSE)
->get()->getResultObject();
$chatMessageModel = model(ChatMessageModel::class);
$count = 0;
@ -266,7 +264,6 @@ class ChatModel extends Model
->join("chat_departments","chat_departments.id = chats.chat_department_id","left")
->join("presupuestos","presupuestos.id = chats.presupuesto_id","left")
->whereIn("presupuestos.id",$presupuestos)
->where("chats.chat_department_id is NOT NULL",NULL,FALSE)
->get()->getResultObject();
$chatMessageModel = model(ChatMessageModel::class);
$count = 0;

View File

@ -54,7 +54,7 @@ class ClienteDireccionesModel extends \App\Models\BaseModel
],
"email" => [
"label" => "ClienteDirecciones.email",
"rules" => "trim|max_length[100]",
"rules" => "trim|max_length[100]|valid_email",
],
"cp" => [
"label" => "ClienteDirecciones.cp",

View File

@ -1,5 +1,4 @@
<?php
namespace App\Models\Clientes;
class ClienteModel extends \App\Models\BaseModel
@ -294,32 +293,30 @@ 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(
@ -332,27 +329,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 = [];
@ -370,23 +367,4 @@ 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;
}
}
}

View File

@ -1,5 +1,4 @@
<?php
namespace App\Models\Configuracion;
class PapelFormatoModel extends \App\Models\BaseModel
@ -73,64 +72,25 @@ 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(
"t1.id AS id, CONCAT(t1.ancho, ' x ', t1.alto) AS tamanio"
)->where('is_deleted', 0)->orderBy('orden_select', 'asc')->get()->getResultObject();
}
public function getElementsForMenu2($search = "")
{
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.id AS id, CONCAT(t1.ancho, ' x ', t1.alto) AS name"
)
->where('is_deleted', 0)
->where('id>', 0)
->orderBy('orden_select', 'asc');
return empty($search)
? $builder->get()->getResultObject()
: $builder
->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;
}
}
}

View File

@ -61,37 +61,6 @@ class PapelGenericoModel extends \App\Models\BaseModel
],
];
public function getIdFromCode(string $code=""){
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.id AS id, t1.nombre AS nombre"
)
->where("t1.code", $code)
->where("t1.is_deleted", 0);
$data = $builder->get()->getFirstRow();
// se convierte a de stdClass a array
$data = json_decode(json_encode($data), true);
return $data;
}
public function getCodeFromId($id=0){
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.code AS code"
)
->where("t1.id", $id)
->where("t1.is_deleted", 0);
$data = $builder->get()->getFirstRow();
// se convierte a de stdClass a array
$data = json_decode(json_encode($data), true);
return $data;
}
/**
* Get resource data.
*

View File

@ -322,22 +322,4 @@ class PapelImpresionModel extends \App\Models\BaseModel
return $builder->orderBy("t1.id", "asc")->get()->getResultObject();
}
public function getPapelGenericoCode($papel_id = 0){
$builder = $this->db
->table($this->table . " t1")
->select("t2.code AS code")
->join("lg_papel_generico t2", "t1.papel_generico_id = t2.id", "left")
->where("t1.id", $papel_id)
->where("t1.is_deleted", 0)
->where("t1.isActivo", 1)
->where("t2.is_deleted", 0);
$result = $builder->get()->getResultObject();
if(count($result) > 0){
return $result[0]->code;
}
else
return "";
}
}

View File

@ -80,7 +80,7 @@ class BuscadorModel extends \App\Models\BaseModel
"comparador_json_data",
"is_deleted",
"comp_tipo_impresion",
"pos_paginas_color",
"comp_pos_paginas_color",
"total_coste_papel",
"total_margen_papel",
"total_margenPercent_papel",

View File

@ -1,115 +0,0 @@
<?php
namespace App\Models\Presupuestos;
use CodeIgniter\Database\BaseBuilder;
use CodeIgniter\Model;
class ErrorPresupuesto extends Model
{
protected $table = 'presupuesto_errores';
protected $primaryKey = 'id';
protected $useAutoIncrement = true;
protected $returnType = 'object';
protected $useSoftDeletes = false;
protected $protectFields = true;
protected $allowedFields = [
"presupuesto_id",
"presupuesto_user_id",
"error",
"datos_presupuesto",
"visto",
"last_user_id",
"comment",
"created_at",
"updated_at",
"deleted_at",
];
protected bool $allowEmptyInserts = false;
protected bool $updateOnlyChanged = true;
protected array $casts = [];
protected array $castHandlers = [];
// Dates
protected $useTimestamps = false;
protected $dateFormat = 'datetime';
protected $createdField = 'created_at';
protected $updatedField = 'updated_at';
protected $deletedField = 'deleted_at';
// Validation
protected $validationRules = [];
protected $validationMessages = [];
protected $skipValidation = false;
protected $cleanValidationRules = true;
// Callbacks
protected $allowCallbacks = true;
protected $beforeInsert = [];
protected $afterInsert = [];
protected $beforeUpdate = [];
protected $afterUpdate = [];
protected $beforeFind = [];
protected $afterFind = [];
protected $beforeDelete = [];
protected $afterDelete = [];
public function insertError(int $presupuesto_id, int $presupuesto_user_id, string $error, mixed $datos)
{
$this->insert([
"presupuesto_id" => $presupuesto_id,
"presupuesto_user_id" => $presupuesto_user_id,
"error" => $error,
"datos_presupuesto" => json_encode($datos)
]);
}
public function updateComment(int $error_presupuesto_id, string $comment): bool
{
$updated = $this->update($error_presupuesto_id, [
"comment" => $comment
]);
return $updated;
}
public function getErrorPresupuestoForm(int $error_presupuesto_id) : array
{
$query = $this->builder()
->select([
"presupuesto_errores.id",
"CONCAT(t1.first_name,' ',t1.last_name) as presupuestoUser",
"CONCAT(t2.first_name,' ',t2.last_name) as lastUser",
"presupuesto_errores.created_at",
"presupuesto_errores.datos_presupuesto",
"presupuesto_errores.error",
"presupuesto_errores.visto",
"presupuesto_errores.comment"
])
->join("users t1", "t1.id = presupuesto_errores.presupuesto_user_id", "left")
->join("users t2", "t2.id = presupuesto_errores.last_user_id", "left")
->where("presupuesto_errores.deleted_at", null)
->where("presupuesto_errores.id",$error_presupuesto_id);
return $query->get()->getResultObject();
}
public function getQueryDatatable(): BaseBuilder
{
$query = $this->builder()
->select([
"presupuesto_errores.id",
"presupuestos.id as presupuestoId",
"CONCAT(t1.first_name,' ',t1.last_name) as presupuestoUser",
"CONCAT(t2.first_name,' ',t2.last_name) as lastUser",
"presupuesto_errores.created_at",
"presupuesto_errores.datos_presupuesto",
"presupuesto_errores.error",
"presupuesto_errores.visto",
"presupuesto_errores.comment",
])
->join("users t1", "t1.id = presupuesto_errores.presupuesto_user_id", "left")
->join("users t2", "t2.id = presupuesto_errores.last_user_id", "left")
->join("presupuestos", "presupuestos.id = presupuesto_errores.presupuesto_id", "left")
->where("presupuesto_errores.deleted_at", null);
return $query;
}
}

View File

@ -123,21 +123,4 @@ class PresupuestoDireccionesModel extends \App\Models\BaseModel
return $builder;
}
public function getDireccion($id = -1)
{
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.id AS id, t1.att AS att,
t1.email AS email, t1.direccion AS direccion, t1.pais_id AS pais_id, t3.nombre AS pais,
t1.municipio AS municipio, t1.provincia AS provincia, t1.cp AS cp, t1.telefono AS telefono"
);
$builder->where('t1.id', $id);
$builder->join("lg_paises t3", "t1.pais_id = t3.id", "left");
return $builder->get()->getResultObject();
}
}

View File

@ -96,9 +96,7 @@ class PresupuestoModel extends \App\Models\BaseModel
"comparador_json_data",
"is_deleted",
"comp_tipo_impresion",
"pos_paginas_color",
"paginas_color_consecutivas",
"papel_interior_diferente",
"comp_pos_paginas_color",
"total_coste_papel",
"total_margen_papel",
"total_margenPercent_papel",
@ -123,15 +121,8 @@ class PresupuestoModel extends \App\Models\BaseModel
'iva_reducido',
'excluir_rotativa',
"acabado_cubierta_id",
"barniz_cubierta_id",
"estampado_cubierta_id",
"acabado_sobrecubierta_id",
"is_duplicado",
'paginas_color_consecutivas',
'papel_interior_diferente',
'paginasCuadernillo',
'lomo_redondo',
'cabezada',
"is_duplicado"
];
protected $returnType = "App\Entities\Presupuestos\PresupuestoEntity";
@ -404,47 +395,35 @@ class PresupuestoModel extends \App\Models\BaseModel
'cliente_id' => $data['clienteId'],
'tipo_impresion_id' => $data['tipo_impresion_id'],
'pais_id' => 1,
'retractilado' => in_array("RETR", $data['cubierta']['acabadosCubierta']) ? 1 : 0,
'retractilado' => in_array(3, $data['servicios']) ? 1 : 0,
'retractilado5' => in_array(5, $data['servicios']) ? 1 : 0,
'guardas' => in_array(62, $data['servicios']) ? 1 : 0,
'faja_color' => in_array(16, $data['servicios']) ? 1 : 0,
'ferro' => in_array(24, $data['servicios']) ? 1 : 0,
'prototipo' => $data['prototipo'] ? 1 : 0,
'prototipo' => in_array(9, $data['servicios']) ? 1 : 0,
'papel_formato_id' => is_null($papel_formato_id) ? 0 : $papel_formato_id->id,
'papel_formato_personalizado' => !$papel_formato_id ? 1 : 0,
'papel_formato_ancho' => !$papel_formato_id ? $data['tamanio']['ancho'] : null,
'papel_formato_alto' => !$papel_formato_id ? $data['tamanio']['alto'] : null,
'titulo' => $data_cabecera['titulo'],
'autor' => $data_cabecera['autor'],
'ISBN' => $data_cabecera['isbn'],
'coleccion' => $data_cabecera['coleccion'],
'referencia_cliente' => $data_cabecera['referenciaCliente'],
'paginas' => $data['interior']['paginas'],
'tirada' => $tirada,
'solapas' => $data['cubierta']['solapasCubierta'] == 0 ? 0 : 1,
'lomo_redondo' => $data['cubierta']['lomoRedondo'] == 0 ? 0 : 1,
'cabezada' => $data['cubierta']['cabezada'] == 0 ? 0 : 1,
'solapas_ancho' => $data['cubierta']['solapasCubierta'] == 0 ? $data['cubierta']['solapasCubierta'] : 0,
'solapas_sobrecubierta' => !$data['sobrecubierta'] ? 0 : 1,
'solapas_ancho_sobrecubierta' => !$data['sobrecubierta'] ? 0 : $data['sobrecubierta']['solapas'],
'solapas' => $data['cubierta']['solapasCubierta'] > 0 ? 1 : 0,
'solapas_ancho' => $data['cubierta']['solapasCubierta'] > 0 ? $data['cubierta']['solapasCubierta'] : 0,
'solapas_sobrecubierta' => is_null($data['sobrecubierta']) ? 0 : 1,
'solapas_ancho_sobrecubierta' => is_null($data['sobrecubierta']) ? 0 : $data['sobrecubierta']['solapas'],
'cosido' => $is_cosido,
'merma' => $extra_info['merma'],
'merma_cubierta' => $extra_info['merma'],
'paginasCuadernillo' => $data['paginasCuadernillo'],
'comp_pos_paginas_color' => $data['interior']['pos_paginas_color'],
'paginas_color_consecutivas' => $data['interior']['paginas_color_consecutivas'],
'papel_interior_diferente' => $data['interior']['papelInteriorDiferente'],
'lomo_cubierta' => $extra_info['lomo_cubierta'],
'lomo_sobrecubierta' => $extra_info['lomo_sobrecubierta'],
'comparador_json_data' => $this->generateJson($data),
'acabado_cubierta_id' => $data['cubierta']['acabadosCubierta']['plastificado'],
'barniz_cubierta_id' => $data['cubierta']['acabadosCubierta']['barniz'],
'estampado_cubierta_id' => $data['cubierta']['acabadosCubierta']['estampado'],
'acabado_sobrecubierta_id' => !$data['sobrecubierta'] ? 0 : $data['sobrecubierta']['acabados'],
'acabado_cubierta_id' => $data['acabadoCubierta'],
'acabado_sobrecubierta_id' => is_null($data['sobrecubierta']) ? 0 : $data['sobrecubierta']['acabado'],
'comp_tipo_impresion' => $data['isHq'] ? ($data['isColor'] ? 'colorhq' : 'negrohq') : ($data['isColor'] ? 'color' : 'negro'),
@ -465,7 +444,7 @@ class PresupuestoModel extends \App\Models\BaseModel
'total_margenPercent_servicios' => round($resumen_totales['porcentajeMargenServicios'], 2),
'total_coste_envios' => round($resumen_totales['coste_envio'], 2),
'total_margen_envios' => round($resumen_totales['margen_envio'], 2),
'total_costes' => round($totalCostes, 2),
'total_costes' => round($totalCostes, 2),
'total_margenes' => round($totalMargenes, 2),
'total_antes_descuento' => round($totalCostes + $totalMargenes, 2),
@ -503,45 +482,29 @@ class PresupuestoModel extends \App\Models\BaseModel
if (is_array($data)) {
// -- INTERIOR --
// Si hay negro
if (intval($data['interior']['paginas']) > intval($data['interior']['paginas_color'])) {
if ($data['interior']['paginas'] > $data['interior']['paginas_color']) {
if ($data['isHq'])
$key = 'bnhq';
else
$key = 'bn';
if (array_key_exists('id', $data['interior']['papel_generico'])) {
$papel_id = intval($data['interior']['papel_generico']['id']);
$gramaje = intval($data['interior']['gramaje']);
} else {
$papel_id = intval($data['interior']['papel_generico']['negro']['id']);
$gramaje = intval($data['interior']['gramaje']['negro']);
}
$values[$key] = array(
'paginas' => intval($data['interior']['paginas']) - intval(intval($data['interior']['paginas_color'])),
'papel_id' => $papel_id,
'gramaje' => $gramaje,
'paginas' => intval($data['interior']['paginas']) - intval($data['interior']['paginas_color']),
'papel_id' => intval($data['interior']['papel_generico']['id']),
'gramaje' => intval($data['interior']['gramaje']),
);
}
// Si hay color
if (intval($data['interior']['paginas_color']) > 0) {
if ($data['interior']['paginas_color'] > 0) {
if ($data['isHq'])
$key = 'colorhq';
else
$key = 'color';
if (array_key_exists('id', $data['interior']['papel_generico'])) {
$papel_id = intval($data['interior']['papel_generico']['id']);
$gramaje = intval($data['interior']['gramaje']);
} else {
$papel_id = intval($data['interior']['papel_generico']['color']['id']);
$gramaje = intval($data['interior']['gramaje']['color']);
}
$values[$key] = array(
'paginas' => intval(intval($data['interior']['paginas_color'])),
'papel_id' => $papel_id,
'gramaje' => $gramaje,
'paginas' => intval($data['interior']['paginas_color']),
'papel_id' => intval($data['interior']['papel_generico']['id']),
'gramaje' => intval($data['interior']['gramaje']),
);
}
@ -553,7 +516,7 @@ class PresupuestoModel extends \App\Models\BaseModel
);
// -- SOBRECUBIERTA --
if ($data['sobrecubierta']) {
if (!is_null($data['sobrecubierta'])) {
$values['sobrecubierta'] = array(
'papel_id' => intval($data['sobrecubierta']['papel']),
'gramaje' => intval($data['sobrecubierta']['gramaje']),
@ -579,7 +542,7 @@ class PresupuestoModel extends \App\Models\BaseModel
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.id AS numero, t1.tipo_impresion_id as tipo, t1.tirada AS unidades, t1.total_aceptado as total, t1.paginas AS paginas,
"t1.id AS numero, t1.tipo_impresion_id as tipo, t1.tirada AS unidades, t1.total_aceptado as total, t1.paginas AS paginas,
t1.titulo AS titulo, t1.autor AS autor, t1.isbn AS isbn,
t1.papel_formato_id AS papel_formato_id, t1.papel_formato_personalizado AS papel_formato_personalizado,
t1.papel_formato_ancho AS papel_formato_ancho, t1.papel_formato_alto AS papel_formato_alto,
@ -587,7 +550,7 @@ class PresupuestoModel extends \App\Models\BaseModel
t3.codigo AS codigo_encuadernacion,
t1.solapas AS solapas_cubierta, CAST(t1.solapas_ancho AS INT) AS solapas_ancho_cubierta,
t1.solapas_sobrecubierta AS solapas_sobrecubierta, CAST(t1.solapas_ancho_sobrecubierta AS INT) AS solapas_ancho_sobrecubierta,"
);
);
$builder->join("lg_papel_formato t2", "t1.papel_formato_id = t2.id", "left");
$builder->join("tipos_presupuestos t3", "t1.tipo_impresion_id = t3.id", "left");
$builder->where("t1.is_deleted", 0);
@ -622,7 +585,7 @@ class PresupuestoModel extends \App\Models\BaseModel
);
$presupuesto->concepto .= $this->generarConceptoLineasPresupuestoLibro($lineas, $presupuesto);
$presupuesto = (object) [
$presupuesto = (object)[
'numero' => $presupuesto->numero,
'unidades' => $presupuesto->unidades,
'total' => $presupuesto->total,
@ -671,8 +634,8 @@ class PresupuestoModel extends \App\Models\BaseModel
->join('presupuesto_manipulados', 'presupuesto_manipulados.presupuesto_id = presupuestos.id', 'left')
->join('lg_tarifa_manipulado', 'lg_tarifa_manipulado.id = presupuesto_manipulados.tarifa_manipulado_id', 'left')
->where('presupuestos.id', $presupuesto_id);
$queryExtras = $this->db->table($this->table)
$queryExtras = $this->db->table($this->table)
->select(
[
'lg_tarifa_preimpresion.id',
@ -682,7 +645,7 @@ class PresupuestoModel extends \App\Models\BaseModel
)
->join('presupuesto_serviciosExtra', 'presupuesto_serviciosExtra.presupuesto_id = presupuestos.id', 'left')
->join('lg_tarifa_preimpresion', 'lg_tarifa_preimpresion.id = presupuesto_serviciosExtra.tarifa_extra_id', 'left')
->where('presupuestos.id', $presupuesto_id);
->where('presupuestos.id', $presupuesto_id);
$servicios['acabado'] = $queryAcabado->get()->getResultObject();
$servicios['manipulado'] = $queryManipulado->get()->getResultObject();
@ -820,5 +783,5 @@ class PresupuestoModel extends \App\Models\BaseModel
}
}

View File

@ -15,10 +15,11 @@ class PresupuestoServiciosExtraModel extends \App\Models\BaseModel
const SORTABLE = [
0 => "t2.nombre",
1 => "t1.precio",
1 => "t1.precio_unidad",
2 => "t1.precio_total"
];
protected $allowedFields = ["presupuesto_id", "tarifa_extra_id", "precio", "margen"];
protected $allowedFields = ["presupuesto_id", "tarifa_extra_id", "precio_total", "precio_unidad", "margen"];
protected $returnType = "App\Entities\Presupuestos\PresupuestoServiciosExtraEntity";
protected $useTimestamps = true;

View File

@ -21,8 +21,6 @@ class TarifaAcabadoModel extends \App\Models\BaseModel
protected $allowedFields = [
"nombre",
"code",
"comment",
"precio_min",
"importe_fijo",
"mostrar_en_presupuesto",
@ -85,13 +83,13 @@ class TarifaAcabadoModel extends \App\Models\BaseModel
public function getResource(string $search = "")
{
$builder = $this->db->table($this->table . " t1")->select(
"t1.id AS id, t1.nombre AS nombre,t1.code AS code, t1.precio_min AS precio_min, t1.importe_fijo AS importe_fijo,
"t1.id AS id, t1.nombre AS nombre, t1.precio_min AS precio_min, t1.importe_fijo AS importe_fijo,
t1.mostrar_en_presupuesto AS mostrar_en_presupuesto, t1.acabado_cubierta AS acabado_cubierta, t1.acabado_sobrecubierta AS acabado_sobrecubierta"
);
//JJO
$builder->where("t1.is_deleted", 0);
return empty($search)
? $builder
: $builder
@ -116,9 +114,8 @@ class TarifaAcabadoModel extends \App\Models\BaseModel
return $builder->orderBy("t1.nombre", "asc")->get()->getResultObject();
}
public function getTarifaPresupuestoAcabado($tarifa_id, $tirada, $proveedor_id = -1)
{
public function getTarifaPresupuestoAcabado($tarifa_id, $tirada, $proveedor_id = -1){
$builder = $this->db
->table($this->table . " t1")
->select(
@ -131,18 +128,18 @@ class TarifaAcabadoModel extends \App\Models\BaseModel
->where("t1.is_deleted", 0)
//->where("t1.mostrar_en_presupuesto", 1)
->where("t2.is_deleted", 0);
$builder->where('t1.id =', $tarifa_id);
$builder->where('t2.tirada_min <=', $tirada);
$builder->where('t2.tirada_max >=', $tirada);
if ($proveedor_id != -1) {
if($proveedor_id != -1){
$builder->where('t2.proveedor_id', $proveedor_id);
}
return $builder->get()->getResultObject();
}
public function getNombreTarifaAcabado($id = -1)
public function getNombreTarifaAcabado($id=-1)
{
/*
Todos los servicios de encuadernacion activas que se pueden usar en presupuestos
@ -187,23 +184,4 @@ class TarifaAcabadoModel extends \App\Models\BaseModel
return $builder->orderBy("t1.id", "asc")->get()->getResultObject();
}
public function getCodeFromId($id = 0)
{
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.code AS code"
)
->where("t1.id", $id)
->where("t1.is_deleted", 0);
$data = $builder->get()->getResultObject();
if (count($data) > 0) {
return $data[0]->code;
} else {
return "";
}
}
}

View File

@ -22,8 +22,6 @@ class TarifaEncuadernacionModel extends \App\Models\BaseModel
protected $allowedFields = [
"nombre",
"code",
"comment",
"mostrar_en_presupuesto",
"tipo_encuadernacion",
"servicio_encuadernacion",
@ -67,7 +65,7 @@ class TarifaEncuadernacionModel extends \App\Models\BaseModel
*/
public function getResource(string $search = "")
{
$builder = $this->db->table($this->table . " t1")->select("t1.id AS id, t1.nombre AS nombre, t1.code AS code,
$builder = $this->db->table($this->table . " t1")->select("t1.id AS id, t1.nombre AS nombre,
t1.mostrar_en_presupuesto AS mostrar_en_presupuesto,
t1.tipo_encuadernacion AS tipo_encuadernacion, t1.servicio_encuadernacion AS servicio_encuadernacion,
t1.por_horas AS por_horas");

View File

@ -1,5 +1,4 @@
<?php
namespace App\Models\Tarifas;
class TarifaEnvioModel extends \App\Models\BaseModel
@ -18,7 +17,7 @@ class TarifaEnvioModel extends \App\Models\BaseModel
1 => "t2.nombre",
];
protected $allowedFields = ["pais_id", "nombre", "code", "comment", "deleted_at", "is_deleted"];
protected $allowedFields = ["pais_id", "nombre","deleted_at","is_deleted"];
protected $returnType = "App\Entities\Tarifas\TarifaEnvioEntity";
protected $useTimestamps = true;
@ -74,7 +73,7 @@ class TarifaEnvioModel extends \App\Models\BaseModel
*/
public function getResource(string $search = "")
{
$builder = $this->db->table($this->table . " t1")->select("t1.id as id, t1.nombre AS nombre,t1.code AS code, t2.nombre AS pais_id");
$builder = $this->db->table($this->table . " t1")->select("t1.id as id, t1.nombre AS nombre, t2.nombre AS pais_id");
$builder->join("lg_paises t2", "t1.pais_id = t2.id", "left");
//JJO
@ -83,44 +82,43 @@ class TarifaEnvioModel extends \App\Models\BaseModel
return empty($search)
? $builder
: $builder
->groupStart()
->like("t1.nombre", $search)
->orLike("t2.code", $search)
->orLike("t2.id", $search)
->orLike("t1.pais_id", $search)
->orLike("t1.nombre", $search)
->orLike("t2.nombre", $search)
->groupEnd();
->groupStart()
->like("t1.nombre", $search)
->orLike("t2.id", $search)
->orLike("t1.pais_id", $search)
->orLike("t1.nombre", $search)
->orLike("t2.nombre", $search)
->groupEnd();
}
public function getTarifaEnvio($paisId, string $cp, $peso, $tipo_envio)
{
public function getTarifaEnvio($paisId, string $cp, $peso, $tipo_envio){
// Si el pais es españa se tienen que tener en cuenta los postales
// Se busca primero la tarifa a la que corresponde
$builder = $this->db->table($this->table . " t1")
->select("t1.id AS tarifa_envio_id, t2.importe_fijo as importe_fijo")
->join("tarifas_envios_zonas t2", "t1.id = t2.tarifa_envio_id")
->where("t1.pais_id", $paisId)
->where("t1.is_deleted", 0)
->where("t2.is_deleted", 0);
if ($paisId == 1) { // España
->select("t1.id AS tarifa_envio_id, t2.importe_fijo as importe_fijo")
->join("tarifas_envios_zonas t2", "t1.id = t2.tarifa_envio_id")
->where("t1.pais_id", $paisId)
->where("t1.is_deleted", 0)
->where("t2.is_deleted", 0);
if($paisId == 1) {// España
$builder->where("CAST(t2.cp_inicial AS UNSIGNED)<=", intval($cp))
->where("CAST(t2.cp_final AS UNSIGNED) >=", intval($cp));
->where("CAST(t2.cp_final AS UNSIGNED) >=", intval($cp));
}
$tarifas = $builder->get()->getResultObject();
$resultado = [];
$model = model('App\Models\Tarifas\TarifaEnvioPrecioModel');
foreach ($tarifas as $tarifa) {
foreach($tarifas as $tarifa){
$precio_tarifas = $model->getEnvioPrecio($tarifa->tarifa_envio_id, $peso, $tipo_envio);
foreach ($precio_tarifas as $precio_tarifa) {
foreach($precio_tarifas as $precio_tarifa){
$precio_tarifa->importe_fijo = $tarifa->importe_fijo;
array_push($resultado, $precio_tarifa);
}
}
return $resultado;
}
}

View File

@ -22,8 +22,6 @@ class TarifaManipuladoModel extends \App\Models\BaseModel
protected $allowedFields = [
"nombre",
"precio_min",
"code",
"comment",
"importe_fijo",
"mostrar_en_presupuesto",
"deleted_at",
@ -82,7 +80,7 @@ class TarifaManipuladoModel extends \App\Models\BaseModel
*/
public function getResource(string $search = "")
{
$builder = $this->db->table($this->table . " t1")->select("t1.id AS id,t1.code AS code, t1.nombre AS nombre, t1.precio_min AS precio_min, t1.importe_fijo AS importe_fijo
$builder = $this->db->table($this->table . " t1")->select("t1.id AS id, t1.nombre AS nombre, t1.precio_min AS precio_min, t1.importe_fijo AS importe_fijo
,t1.mostrar_en_presupuesto AS mostrar_en_presupuesto");
//JJO

View File

@ -13,9 +13,7 @@ class TarifaextraModel extends \App\Models\BaseModel
protected $useAutoIncrement = true;
protected $allowedFields = [
"nombre",
"code",
"comment",
"nombre",
"precio",
"margen",
"mostrar_en_presupuesto",

View File

@ -13,9 +13,7 @@ class TarifapreimpresionModel extends \App\Models\BaseModel
protected $useAutoIncrement = true;
protected $allowedFields = [
"nombre",
"code",
"comment",
"nombre",
"precio",
"margen",
"mostrar_en_presupuesto",
@ -39,14 +37,6 @@ class TarifapreimpresionModel extends \App\Models\BaseModel
"label" => "Tarifapreimpresion.nombre",
"rules" => "trim|required|max_length[255]",
],
"code" => [
"label" => "Tarifapreimpresion.code",
"rules" => "trim|required|max_length[5]",
],
"comment" => [
"label" => "Tarifapreimpresion.comment",
"rules" => "trim|max_length[255]",
],
"precio" => [
"label" => "Tarifapreimpresion.precio",
"rules" => "required|decimal",
@ -62,14 +52,6 @@ class TarifapreimpresionModel extends \App\Models\BaseModel
"max_length" => "Tarifapreimpresion.validation.nombre.max_length",
"required" => "Tarifapreimpresion.validation.nombre.required",
],
"code" => [
"max_length" => "Tarifapreimpresion.validation.code.max_length",
"required" => "Tarifapreimpresion.validation.code.required",
],
"comment" => [
"max_length" => "Tarifapreimpresion.validation.comment.max_length",
"required" => "Tarifapreimpresion.validation.comment.required",
],
"precio" => [
"decimal" => "Tarifapreimpresion.validation.precio.decimal",
"required" => "Tarifapreimpresion.validation.precio.required",