Exemplo n.º 1
0
 /// <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;
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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)));
        }
Exemplo n.º 6
0
        /// <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));
        }
Exemplo n.º 7
0
 /// <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);
 }