Esempio n. 1
0
        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()}");
            }
        }
Esempio n. 3
0
        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()}");
            }
        }