/// <summary> /// Crea una nueva instancia de un impuesto /// </summary> /// <param name="sender"> /// La coleccion de impuestos que lo contiene /// </param> /// <param name="idImpuesto"> /// El codigo del impuesto. Relación con la tabla tsy_Impuestos del RDBM /// </param> /// <param name="descripcion"> /// La descripcion del impuesto /// </param> /// <param name="aplicadoA"> /// A que entidad aplica el impuesto. /// Valor constante puede ser los que se definieron en el documento Aplicación de Impuestos variables a Comprobantes de Venta /// </param> /// <param name="formulaDeCalculo"></param> public Impuesto(Impuestos sender, string idImpuesto, string descripcion, string aplicadoA, string formulaDeCalculo) { _impuestos = sender; _aplicadoA = aplicadoA; _formula = formulaDeCalculo; _nombre = descripcion; _idImpuesto = idImpuesto; }
public Impuesto(Impuestos sender, string idImpuesto, string Impuesto, string descripcion, string descripcionCorta, string descripcionLarga, string aplicadoA, string formulaDeCalculo, decimal Alicuota) { _impuestos = sender; _aplicadoA = aplicadoA; _formula = formulaDeCalculo; _nombre = descripcion; _idImpuesto = idImpuesto; _key = Impuesto; _descripcionCorta = descripcionCorta; _descripcionLarga = descripcionLarga; _alicuota = Alicuota; }
/// <summary> /// Obtiene el total de la coleccion de impuestos condicionada a un filtro de aplicacion negada /// </summary> /// <param name="collectionImpuestos"></param> /// <param name="AplicadoA"> /// Valor constante puede ser los que se definieron en el documento Aplicación de Impuestos variables a Comprobantes de Venta /// </param> /// <returns> /// La coleccion de impuestos filtrada /// </returns> public static Impuestos ObtenerColeccionImpuestos(Impuestos collectionImpuestos, string AplicadoA) { Impuestos impfiltrados = new Impuestos(); foreach (Impuesto imp in collectionImpuestos) { if (imp.AplicadoA == AplicadoA) { impfiltrados.Add(imp); } } return(impfiltrados); }
public static decimal ObtenerValorAplicado(Impuestos colleccionImpuestos, string AplicadoA) { decimal subtotal = 0; foreach (Impuesto imp in colleccionImpuestos) { if (imp.AplicadoA == AplicadoA) { subtotal += imp.Valor; } } return(subtotal); }
public static decimal CalcularInversa(Impuestos colleccionImpuestos, decimal precio) { decimal valor = Convert.ToDecimal(0.00); foreach (Impuesto impuesto in colleccionImpuestos) { /* * if(impuesto.Key.ToUpper().Equals("IVA")) * valor = valor + precio / (1 + Convert.ToDecimal((Variables.GetValueLong("Contabilidad.Impuestos.AlicuotaIva"))) /100); * else * if(impuesto.Key.ToUpper().Equals("IVADIF")) * * valor = valor + precio /(1 + Convert.ToDecimal(Variables.GetValueLong("Contabilidad.Impuestos.AlicuotaIva")/2) /100); */ if (impuesto.Alicuota != Convert.ToDecimal(0)) { /*if(impuesto.Key.ToUpper().Equals("IB") || impuesto.Key.ToUpper().Equals("IB RI")) * { * decimal TotalNeto = impuesto.Impuestos.ItemComprobante.ItemsComprobantes.ComprobanteDeVenta.TotalNetoAPercibirIB; * if(TotalNeto >= 50) * valor = valor + impuesto.Alicuota;//+ precio / (1 + impuesto.Alicuota / 100); * } * else valor = valor + impuesto.Alicuota;//+ precio / (1 + impuesto.Alicuota / 100);*/ switch (impuesto.Key.ToUpper()) { case "IB": case "IB RI": decimal TotalNeto = impuesto.Impuestos.ItemComprobante.ItemsComprobantes.ComprobanteDeVenta.TotalNetoAPercibirIB; if (TotalNeto >= 50) { valor = valor + impuesto.Alicuota; } break; case "IIVP": case "IICOMUN": case "IISUPER": case "IIPD": case "IIGO": case "IIKERO": case "IIGNC": //German 20110524 - Tarea 0000140 case "TASAVP": case "TASACOMUN": case "TASASUPER": case "TASAPD": case "TASAGO": case "TASAKERO": case "TASAGNC": //Fin German 20110524 - Tarea 0000140 //German 20110527 - Tarea 0000142 //valor = valor + imp.Alicuota; precio = precio - impuesto.Alicuota; // Debido a que es un monto se resta //Fin German 20110527 - Tarea 0000142 break; default: //German 20110605 - Tarea 0000149 if (impuesto.DescripcionLarga.ToUpper().Equals("II")) { precio = precio - impuesto.Alicuota; // Debido a que es un monto se resta } else { //Fin German 20110605 - Tarea 0000149 valor = valor + impuesto.Alicuota; } break; } } /* * if(impuesto.Alicuota != Convert.ToDecimal(0)) * valor = valor + precio / (1 + impuesto.Alicuota / 100); */ } if (valor == 0) { return(precio); } return(precio / (Convert.ToDecimal(1.00) + valor / Convert.ToDecimal(100.00))); }
/// <summary> /// Para una condición de aplicación. Por ejemplo obtener total impuestos aplicados al producto /// devuelve el total para los impuestos que cumplan esa condición. /// </summary> /// <param name="colleccionImpuestos"> /// Colección de Impuestos /// </param> /// <param name="AplicadoA"> /// Valor constante puede ser los que se definieron en el documento Aplicación de Impuestos variables a Comprobantes de Venta /// </param> /// <returns></returns> /// public static decimal CalcularInversa(Impuestos colleccionImpuestos, decimal precio, string AplicadoA) { return(CalcularInversa(ObtenerColeccionImpuestos(colleccionImpuestos, AplicadoA), precio)); }
/// <summary> /// Obtiene el total de la coleccion de impuestos. /// Deprecated. Se mantiene por compatibilidad /// </summary> /// <param name="colleccionImpuestos"></param> /// <returns></returns> public static decimal ObtenerValor(Impuestos colleccionImpuestos) { return(colleccionImpuestos.Total); }