Ver Mensaje Individual
  #17  
Antiguo 17-12-2024
sglorka sglorka is offline
Miembro
 
Registrado: mar 2017
Ubicación: Tenerife
Posts: 548
Reputación: 10
sglorka Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Hola, podriais poner un ejemplo de codigo de como realizais el ajuste automatico en el programa? o lo realizais manualmente?, Gracias.
Bueno te puedo indicar el pseudocódigo aproximado de cómo valoramos una factura para impuestos incluidos en el precio
Espero no incurrir en ningún error. Pero básicamente, asegura que la suma de todos los valores brutos de las líneas para un tipo de Iva coincidan con la base imponible de ese Iva y que la suma de los valores de iva para el tipo de Iva "Tipo" coincida con el Iva del tipo "Tipo". He obviado los recargos de equivalencia para mayor claridad

1.- Construcción de las Bases Imponibles

For each LineaVenta in Ventas (Para cada línea de venta)
LineasVenta(Base) = LineasVenta(Uds) * LineasVenta(Precio) - (DescuentosLineas) + (RecargosLineas) 'En los Descuentos y recargos se incluyen prorrateados los descuentos y recargos globales
Next


2.-Cálculo de Brutos e Impuestos por línea

For each Tipo in TiposDeImpuestos (Para cada Tipo de Impuesto)

For each Linea in LineasVenta(Tipo) 'Obtiene todas las líneas de venta del Tipo "Tipo"

LineaBruto = Linea(Base) * 100 / (100 + Tipo)
LineaIva = Redondea2Decimales(LineaBruto * Tipo / 100)
LineaBruto = Redondea2Decimales(Linea(Base) - LineaIva)

Next

Next

3.-Ajustes de las Bases imponibles

For each Tipo in TiposDeImpuestos

For Each ValorBruto in LineasBruto(Tipo) 'Obtiene todos los valores brutos de las líneas con el Tipo "Tipo"
Parcial += ValorBruto
Next

Ajuste = LineaBruto(Tipo) - Parcial

si Ajuste <> 0 quiere decir que las sumas de las bases de cada línea para el tipo "Tipo" difiere de la Base imponible del tipo "Tipo"
Le aplico el ajuste a la primera línea del Tipo "Tipo"

if Ajuste <> 0 then

For Each Linea in LineaBruto(Tipo)
Linea(Bruto) += Ajuste
exit for
End if

End if

Next

4.- Hacemos lo mismo con los Impuestos

For each Tipo in TiposDeImpuestos

For Each ValorIva in LineasIva(Tipo)
Parcial += ValorIva
Next

Ajuste = LineaIva(Tipo) - Parcial

si Ajuste <> 0 quiere decir que las sumas de los Ivas de cada línea para el tipo "Tipo" difiere de el Valor de Iva para el tipo "Tipo"
Le aplico el ajuste a la primera línea del Tipo "Tipo"

if Ajuste <> 0 then

For Each Linea in LineasIva(Tipo)
Linea(Iva) += Ajuste
exit for
End if

End if

Next
Responder Con Cita