Para el cálculo de las ventas, se están utilizando los importes de las lineas de las facturas de clientes, pero mediante la consulta SQL:
''sum(lfc.pvptotal) as pvptotal''.
Con esa consulta NO se obtiene el importe una vez aplicados los descuentos globales de las facturas correspondientes a esas lineas. La consulta SQL que si lo obtendría sería esta otra:
sum((lfc.pvptotal)*((100-fc.dtopor1)/100)*((100-fc.dtopor2)/100)) as pvptotal
Además se podría implementar una segunda opción al imforme, para obtener los datos una vez aplicado el impuesto correspondiente, mediante esta otra consulta SQL:
sum((lfc.pvptotal)*((100-fc.dtopor1)/100)*((100-fc.dtopor2)/100)*((100+lfc.iva)/100)) as pvptotal
En el archivo `...\Plugins\Informes\Lib\Informes\ResultReport.phpse tendría que añadir, después del
$dataBase = new DataBase();sobre la linea 805, esto:
switch (self::$tiposql) {
case 'withvat':
// Total Con IVA
$ConsultaTipo = "sum((lfc.pvptotal)((100-fc.dtopor1)/100)((100-fc.dtopor2)/100)((100+lfc.iva)/100)) as pvptotal";
break;
case 'withoutvat':
// Total Sin IVA
$ConsultaTipo = "sum((lfc.pvptotal)((100-fc.dtopor1)/100)*((100-fc.dtopor2)/100)) as pvptotal";
break;
}``
La variable ``$sql`` de después, quedaría modificada de esta forma:
``$sql = "select lfc.referencia," // jlah 31-10-2024 - SQL modificada
. " " . $ConsultaTipo
. " from lineas{$tablename} as lfc"``
En el archivo ...\Plugins\Informes\View\ReportResult.html.twig
, se añadiría, sobre la linea 60, esto:
``<div class="col-lg-2 col-sm-6 mb-2">
<select class="form-control" id="tiposql">
<!-- Datos IVA Incluido en las lineas de facturas, menos dtos globales en factura -->
<option value="withvat" selected>{{ trans('using-data-with-vat') }}</option>
<!-- Datos IVA No Incluido en las lineas de facturas, menos dtos globales en factura -->
<option value="withoutvat">{{ trans('using-data-without-vat') }}</option>
</select>
</div>``
En ese mismo archivo, en la ``function sendForm(formData) {``, añadiríamos lo siguiente:
``formData.append('tiposql', $('#tiposql option:selected').val());``
En ese mismo archivo, después de:
``$(document).on('change', '#selectExercise', function () {
initPage();
});``
Añadiriamos esto otro:
``$(document).on('change', '#tiposql', function () {
initPage();
});``
También se tendrían que incluir en las traducciones los términos utilizados que no estén ya incluidos
No hay un plazo máximo para implementar esto
Tal cual lo he indicado, no precisa mas de 5 minutos
Esto es una sugerencia a debatir. Está abierta a comentarios, votación y debate en la reunión semanal. Si se aprueba pasará a estado pendiente.
19-11-2024 17:28:55 daniel89fg_739 ¿5 minutos para implementar todo eso?, ¿y las pruebas? XD, creo que en 5 minutos es suficiente para generar más bugs. Esto hay que probarlo y desarrollarlo en más escenarios, recargo de equivalencia, simplificado, general, segunda mano, intracomunitarias, etc etc. |
|
PRO |
20-11-2024 09:03:34 smartcuines_1378 Tienes razón Daniel. Tú tiene muchos mas escenarios a revisar que yo. Por eso lo de "...Tal cual lo he indicado..."En mi escenario particular, solo teniendo en cuenta los dos descuentos globales y el IVA, y lo estoy probando ya en producción, me funciona perfectamente.. Ahora mismo no se está teniendo en cuenta ni esos dos descuentos ni el IVA, ni recargo de equivalencia, ni ningún otro escenario. Solo con que tuviese en cuenta los dos descuentos globales ya estaríamos abarcando un escenario de todos los que se pueden abarcar, que es el de mostrar unos datos reales de los importes. Así, paso a paso, podremos abarcar todos y cada uno de esos escenarios posibles. P.D. Veo has eliminado la otra sugerencia que la dupliqué por error. Intenté editar la sugerencia para hacer unas correcciones pero no es posible, y creo que le di hacia atrás y claro lo que hice en realidad fue otra sugerencia igual de mal formateada. Mis disculpas, y gracias por el comentario y por el gran trabajo realizado. |