mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
chat select cliente contactos
This commit is contained in:
@ -287,8 +287,7 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
->select(
|
||||
"t1.id AS id, t1.nombre AS nombre, t1.alias AS alias, t1.cif AS cif, t1.email AS email, t1.vencimiento AS vencimiento, t5.first_name AS comercial, t7.nombre AS forma_pago_id"
|
||||
)
|
||||
->where("is_deleted", 0);
|
||||
;
|
||||
->where("is_deleted", 0);;
|
||||
$builder->join("users t5", "t1.comercial_id = t5.id", "left");
|
||||
$builder->join("formas_pago t7", "t1.forma_pago_id = t7.id", "left");
|
||||
|
||||
@ -320,11 +319,11 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
->where("t1.id", $cliente_id);
|
||||
$limite = $builder->get()->getResultObject();
|
||||
|
||||
if($limite){
|
||||
if ($limite) {
|
||||
|
||||
$pendiente = $this->getPendienteCobro($cliente_id);
|
||||
$credito_disponible = floatval($limite[0]->limite_credito) - $pendiente[0] - $pendiente[1] - floatval($total_pedido);
|
||||
if($credito_disponible < 0)
|
||||
if ($credito_disponible < 0)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
@ -414,10 +413,9 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
return empty($search)
|
||||
? $builder->get()->getResultObject()
|
||||
: $builder
|
||||
->groupStart()
|
||||
->like("t1.nombre", $search)
|
||||
->groupEnd()->get()->getResultObject();
|
||||
|
||||
->groupStart()
|
||||
->like("t1.nombre", $search)
|
||||
->groupEnd()->get()->getResultObject();
|
||||
}
|
||||
|
||||
public function getPendienteCobro($cliente_id = -1)
|
||||
@ -460,7 +458,6 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
} else {
|
||||
return [0, round(floatval($pendiente_old), 2)];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private function getTotalPendienteOldERP($customer_id = -1)
|
||||
@ -499,7 +496,8 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
}
|
||||
}
|
||||
|
||||
public function getResumenPagos($cliente_id = -1){
|
||||
public function getResumenPagos($cliente_id = -1)
|
||||
{
|
||||
|
||||
$result = [];
|
||||
$data = $this->db->table('facturas f')
|
||||
@ -510,7 +508,7 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
->where('f.estado_pago', 'pendiente')
|
||||
->get()
|
||||
->getResultObject();
|
||||
$result['total_facturas_sin_pagar'] =
|
||||
$result['total_facturas_sin_pagar'] =
|
||||
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
|
||||
|
||||
$data = $this->db->table('facturas_pagos fp')
|
||||
@ -523,7 +521,7 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
->where('f.deleted_at IS NULL')
|
||||
->get()
|
||||
->getResultObject();
|
||||
$result['total_facturas_pagadas'] =
|
||||
$result['total_facturas_pagadas'] =
|
||||
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
|
||||
|
||||
$data = $this->db->table('facturas f')
|
||||
@ -537,7 +535,7 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
->where('fp.deleted_at IS NULL')
|
||||
->get()
|
||||
->getResultObject();
|
||||
$result['total_facturas_vencidas'] =
|
||||
$result['total_facturas_vencidas'] =
|
||||
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
|
||||
|
||||
// Subconsulta para verificar la existencia en facturas_lineas
|
||||
@ -559,7 +557,7 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
->get()
|
||||
->getResultObject();
|
||||
$query = $this->db->getLastQuery();
|
||||
$result['total_pedidos_produccion'] =
|
||||
$result['total_pedidos_produccion'] =
|
||||
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
|
||||
|
||||
// Subconsulta para calcular el total de pedidos finalizados
|
||||
@ -572,12 +570,12 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
->where("NOT EXISTS $subquery_facturas", null, false) // Implementación manual de NOT EXISTS
|
||||
->get()
|
||||
->getResultObject();
|
||||
$result['total_pedidos_finalizados'] =
|
||||
$result['total_pedidos_finalizados'] =
|
||||
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
|
||||
|
||||
$result['total_pendiente'] =
|
||||
$result['total_pendiente'] =
|
||||
$result['total_facturas_sin_pagar']
|
||||
+ $result['total_pedidos_produccion']
|
||||
+ $result['total_pedidos_produccion']
|
||||
+ $result['total_pedidos_finalizados'];
|
||||
$result['total_pendiente'] = round(floatval($result['total_pendiente']), 2);
|
||||
|
||||
@ -588,8 +586,28 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
->get()
|
||||
->getResultObject()[0]->limite_credito;
|
||||
$result['limite_credito'] = round(floatval($result['limite_credito']), 2);
|
||||
|
||||
$result['margen_disponible'] = round(floatval( $result['limite_credito']-$result['total_pendiente']), 2);
|
||||
|
||||
$result['margen_disponible'] = round(floatval($result['limite_credito'] - $result['total_pendiente']), 2);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function querySelectClienteContacto(int $cliente_id, string $q): array
|
||||
{
|
||||
$query = $this->builder()->select([
|
||||
"cliente_contactos.id",
|
||||
"CONCAT(COALESCE(cliente_contactos.nombre,''),' ',COALESCE(cliente_contactos.apellidos,'')) as name",
|
||||
'cliente_contactos.cargo as description'
|
||||
])
|
||||
->join('cliente_contactos', 'cliente_contactos.cliente_id = clientes.id', 'left')
|
||||
->where('cliente_contactos.deleted_at',null)
|
||||
->where('cliente_contactos.email is NOT NULL',null,false)
|
||||
->where('cliente_contactos.cliente_id', $cliente_id);
|
||||
if ($q) {
|
||||
$query->groupStart();
|
||||
$query->orLike('name', $q);
|
||||
$query->orLike('description', $q);
|
||||
$query->groupEnd();
|
||||
}
|
||||
return $query->get()->getResultArray() ?? [];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user