Esta consulta es de hace 2 años. Tenga eso en cuenta.
Esta web utiliza cookies propias y de terceros para su funcionamiento. ¿Aceptas? Leer más
360st
360st
Error tesoreria cerrado

Hola, Retomando el comentario que hice hace 3 meses:...

Hola,

Retomando el comentario que hice hace 3 meses: https://www.facturascripts.com/comm3/index.php?page=community_item&id=3242

Al hacer click en INFORMES -> CLIENTES -> DEUDORES, se muestran correctamente el listado de clientes deudores, pero el monto adeudado esta incorrecto.

He descubierto que el problema esta en el SQL ejecutado al momento de listar los deudores, actualmente se esta ejecutando la sentencia:
select codcliente,sum(importeeuros) as total from reciboscli where estado != 'Pagado' group by codcliente order by total DESC LIMIT 100 OFFSET 0;


Se puede apreciar que la columna que esta sumando es "importeeuros", entonces trae el valor en euros y lo convierte a la moneda local configurada en FS utilizando la columna "CODDIVISA" que en mi caso es DOP(Pesos Dominicanos), esto es un problema obvio ya que si emites una factura a un cliente en DOP$100.00 (Pesos dominicanos) y en ese momento se guardo también el valor de importeeuros utilizando la tasa configurada en ese momento hasta ahí va bien. El problema es que la tasa cambia en el tiempo, y cuando ejecutas la consulta de DEUDORES un mes mas tarde el valor del recibo sera diferente.

En mi caso particular y de todo el que factura en una sola moneda, se podria solucionarlo solo cambiando la columna a sumar en la sentencia SQL, quedaría de esta forma:
select codcliente,sum(importe) as total from reciboscli where estado != 'Pagado' group by codcliente order by total DESC LIMIT 100 OFFSET 0;


Pero esto no solucionaría el problema del que factura en varias monedas, por lo que rapidamente se me ocurre que una solución seria:
1- Agregar la columna "tasaconv" en la tabla "reciboscli", y calcular el "sum(importeeuros)" en base a este valor, de esta manera el calculo siempre dará el valor correcto original.

Que piensan ustedes ?

Saludos.

República Dominicana   18-12-2016 07:44:16   05-02-2017 06:57:51   4   [NeoRazorX]

Comentarios
360st
Como aclaración adicional, he cambiado las siguientes dos lineas en el controlador "informes_clientes" de Facturación Premium:
image
NeoRazorX
Para solucionar esto, lo más sencillo es consultar la tasa de conversión en la tabla divisas al momento de calcular.
360st
Carlos, acabo de verificar y FS actualmente guarda el CODDIVISA y TASACONV en las tablas 'reciboscli' y "facturascli" y tambien veo que al método 'euro_convert' se le puede pasar ambos valores :
public function euro_convert($precio, $coddivisa = NULL, $tasaconv = NULL)


Por lo que creo que debería quedar de la siguiente forma:

private function clientes_deudores()
{
$tclist = array();

if( class_exists('recibo_cliente') )
{
$sql = "select codcliente, coddivisa, tasaconv, sum(importeeuros) as total from reciboscli"
. " where estado != 'Pagado' group by codcliente order by total DESC";

//$sql = "select codcliente,sum(importeeuros) as total from reciboscli"
// . " where estado != 'Pagado' group by codcliente order by total DESC";
}
else
{
$sql = "select codcliente,coddivisa, tasaconv,sum(totaleuros) as total from facturascli"
. " where pagada = false group by codcliente order by total DESC";

// $sql = "select codcliente,sum(totaleuros) as total from facturascli"
// . " where pagada = false group by codcliente order by total DESC";
}

$data = $this->db->select_limit($sql, 100, 0);
if($data)
{
foreach($data as $d)
{
$cliente = $this->cliente->get($d['codcliente']);
if($cliente)
{
if(!$cliente->debaja)
{
$deudas = $this->euro_convert( floatval($d['total']),$d['coddivisa'],$d['tasaconv'] );
//$deudas = $this->euro_convert( floatval($d['total']) );
$tclist[] = array($cliente, $deudas);
}
}
}
}

return $tclist;
}


Que piensas Carlos, esta correcta esta implementación ?
360st
Carlos, he modificado nuevamente el controlador y la vista, esta vez para que muestre el total de los deudores correctamente cuando se utiliza multiples divisas. ( Cierra el otro hilo, para continuar en este https://www.facturascripts.com/comm3/index.php?page=community_item&id=3770

Agregar variable al controlador:

class informe_clientes extends fs_controller
{
public $cliente;
public $opcion;
public $resultados;
public $clientes_deuda_total;

public function __construct()




private function clientes_deudores()
{
$tclist = array();
$this->clientes_deuda_total=0;

if( class_exists('recibo_cliente') )
{
$sql = "select codcliente, coddivisa, tasaconv, sum(importeeuros) as total from reciboscli"
. " where estado != 'Pagado' group by codcliente order by total DESC";

//$sql = "select codcliente,sum(importeeuros) as total from reciboscli"
// . " where estado != 'Pagado' group by codcliente order by total DESC";
}
else
{
$sql = "select codcliente,coddivisa, tasaconv,sum(totaleuros) as total from facturascli"
. " where pagada = false group by codcliente order by total DESC";

// $sql = "select codcliente,sum(totaleuros) as total from facturascli"
// . " where pagada = false group by codcliente order by total DESC";
}

$data = $this->db->select($sql);
if($data)
{
foreach($data as $d)
{
$cliente = $this->cliente->get($d['codcliente']);
if($cliente)
{
if(!$cliente->debaja)
{
$deudas = $this->euro_convert( floatval($d['total']),$d['coddivisa'],$d['tasaconv'] );
$this->clientes_deuda_total += $deudas;
//$deudas = $this->euro_convert( floatval($d['total']) );
$tclist[] = array($cliente, $deudas);
}
}
}
}

return $tclist;
}



En la vista solo hay que modificar despues de la linea 111:

<tr class="warning">
<td colspan="6">Sin resultados.</td>
</tr>
{/loop}
<tr class="warning">
<td colspan="6" class="text-right">Total: {$fsc->show_precio($fsc->clientes_deuda_total)}</td>
</tr>


NeoRazorX
La solución correcta es la del resto de informes, primero consultar la divisa de la empresa y luego las demás y convertirlas a la de la empresa usando el importe en euros.
Estará en la siguiente actualización.
Saludos.
360st
Perfecto, gracias por la corrección Carlos.

Cerrado
otros
Título Tipo
360st joenilson
Hola Joe, He notado que ahora tenemos un informe de "Estado de cuentas cliente", el cual pertenece al plugin de República Dominicana, este es un plugin que necesitamos muchos. Sobre este...
cerrado 16-09-2017 15:46:56
Pregunta 5
360st joenilson
Error de Generación de Reporte 606 y 607 [ FIXED ] Hola Joe, Al momento de generar el reporte 606 y 607 estoy recibiendo 3 mensajes de error con la siguiente información "Incorrect parameters...
cerrado 21-08-2017 14:16:23
Error 1
360st NeoRazorX
Hola Carlos, He comprobado que en la pagina "ventas_articulo", específicamente en la pestaña "Precios", al momento de colocar un margen sobre el precio de coste (%), este se...
cerrado 08-05-2017 15:59:38
Idea 4
360st 360st
Al momento de actualizar el Plugin "Republica Dominicana" a la versión 61, cuando entramos a "Ventas -> Facturas(page=ventas_facturas) " se muestra los dos errores...
cerrado 12-04-2017 23:10:36
Error 8
360st 360st
Después de actualizar el Plugin "Republica Dominicana" a la versión 61, cuando entramos a "Ventas -> Facturas(page=ventas_facturas) " se muestra los dos errores siguientes:...
cerrado 12-04-2017 05:41:20
Error 1
360st 360st
Hola, He modificado el plugin Facturación Premium, para que muestre el total adeudado al final de la lista: He agregado una función en el controlador informe_clientes.php : public function...
cerrado 18-12-2016 18:06:20
Idea 2
360st 360st
Hola, En primer lugar felicitarte por el Plugin "Servicios" que funciona a la perfección. Con respecto al Plugin Servicios, he notado que si el usuario que esta usando el sistema no es...
cerrado 17-12-2016 18:36:30
Pregunta 3
jsuarez_1a6e29 joenilson
Plugin: republica_dominicana Hola, Cuando estamos en la pantalla de visualización de una factura ya creada, en la parte de arriba, tenemos varias opciones: IMPRIMIR / ENVIAR / GENERAR ASIENTO Si...
cerrado 22-09-2016 23:55:43
Pregunta 3
jsuarez_1a6e29 jsuarez_51
Hola, Al hacer click en INFORMES -> CLIENTES -> DEUDORES, se muestran correctamente el listado de clientes deudores, pero el monto adeudado esta incorrecto. Lo extraño es que he habilitado...
cerrado 23-09-2016 23:56:53
Error 4
jsuarez_1a6e29 -
Hola, Quiero aportar económicamente al proyecto, donde puedo ver el listado de las mejoras disponibles ? He entrado al link: https://www.facturascripts.com/store/categoria-producto/mejoras/ , pero...
cerrado 20-09-2016 19:56:56
Pregunta 2
jsuarez_1a6e29 jsuarez_51
Plugin: tesoreria Hola, Utilizando el plugin TESORERIA, cuando marco un recibo como pagado, en el campo sub-cuenta no aparece nada, esta en blanco. Ver imagen aquí:...
cerrado 10-10-2016 00:21:02
Pregunta 4
jsuarez_1a6e29 jsuarez_51
Plugin: republica_dominicana He creado 4 facturas directamente desde Ventas->Factura y me ha generado los NCF perfectamente. El problema consiste en si creas un Presupuesto(Cotización) ->...
cerrado 15-09-2016 17:32:20
Error 2
jsuarez_1a6e29 jsuarez_51
Hola, Tengo una duda sobre los plugins de pago. Acabo de instalar un servidor para hacer pruebas(Test Server) con el software y necesito comprar dos plugins para poder probar a fondo el software....
cerrado 14-09-2016 06:21:55
Pregunta 3