internal decimal CalcularSubtotal(decimal total, decimal porcentajeRecargo, TipoCliente tipoCliente) { decimal totalSinIva = total; if (tipoCliente == TipoCliente.Mayorista) { totalSinIva = Monto.ObtenerSinIVA(total, this.Producto.SubCategoria.IVA.Valor); } decimal SubTotal = totalSinIva / (1 - PorcentajeBonificacion + porcentajeRecargo); return(SubTotal); }
internal decimal ObtenerMontoSegunTipoDeCliente(decimal monto, decimal iva, CondicionIVA condicionIVA) { switch (condicionIVA) { case CondicionIVA.Consumidor_Final: case CondicionIVA.Monotributo: case CondicionIVA.Exento: decimal montoSinIva = Monto.ObtenerSinIVA(monto, iva); return(montoSinIva); case CondicionIVA.Responsable_Inscripto: return(monto); default: throw new InvalidOperationException($"Error al realizar la facturación. Condición IVA no reconocido {condicionIVA.ToString()}"); } }
private decimal CalcularMontoSegunCondicionIvaMinorista(decimal porcentajeFacturacion, CondicionIVA condicionIva, decimal monto) { //A los Responsable Inscripto hay que quitarle el iva dado que los montos que manejan tiene IVA switch (condicionIva) { case CondicionIVA.Consumidor_Final: case CondicionIVA.Monotributo: case CondicionIVA.Exento: return(monto * porcentajeFacturacion); case CondicionIVA.Responsable_Inscripto: decimal montoSinIva = Monto.ObtenerSinIVA(monto, this.Producto.SubCategoria.IVA.Valor, porcentajeFacturacion); return(montoSinIva); default: throw new InvalidOperationException($"Error al realizar la facturación. Condición IVA no reconocido {condicionIva.ToString()}"); } }