Esempio n. 1
0
        public decimal ObtenerRecargoEquivalencia(decimal tipoDeIVA)
        {
            RepositorySatApp database = new RepositorySatApp();
            List <Iva>       ivas     = database.GetAll <Iva>();

            decimal tipoRecargo = 0;

            foreach (var item in ivas)
            {
                if (item.Porcentaje == tipoDeIVA)
                {
                    tipoRecargo = item.Recargo;
                    break;
                }
            }
            return(tipoRecargo);
        }
Esempio n. 2
0
        public void CalcularParte(int numeroParte)
        {
            RepositorySatApp database = new RepositorySatApp();

            SAT     parte     = new SAT();
            var     lineas    = database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString());
            decimal descuento = 0;

            parte.Base1 = 0;
            parte.Base2 = 0;
            parte.Base3 = 0;
            parte.Base4 = 0;
            parte.Base5 = 0;

            parte.TantoIva1 = 0;
            parte.TantoIva2 = 0;
            parte.TantoIva3 = 0;
            parte.TantoIva4 = 0;
            parte.TantoIva5 = 0;

            parte.Iva1 = 0;
            parte.Iva2 = 0;
            parte.Iva3 = 0;
            parte.Iva4 = 0;
            parte.Iva5 = 0;

            parte.Tanto_Equivalencia1 = 0;
            parte.Tanto_Equivalencia2 = 0;
            parte.Tanto_Equivalencia3 = 0;
            parte.Tanto_Equivalencia4 = 0;
            parte.Tanto_Equivalencia5 = 0;

            parte.Recargo_Equivalencia1 = 0;
            parte.Recargo_Equivalencia2 = 0;
            parte.Recargo_Equivalencia3 = 0;
            parte.Recargo_Equivalencia4 = 0;
            parte.Recargo_Equivalencia5 = 0;


            foreach (var item in lineas)  //foreach (var item in Variables.lineasParte)
            {
                if (item.DTO != 0)
                {
                    //Jesus:Indica que quitemos el descuento ya que no hace nada.26/05/2020
                    //descuento = Math.Round(descuento + (item.Precio * item.DTO / 100), 2);
                    //En principio le pasamos 0 a la variable.
                    descuento    = 0;
                    item.Importe = Math.Round(item.Importe, 2);
                }

                if (parte.TantoIva1 == item.Iva)
                {
                    parte.Base1 = Math.Round(parte.Base1 + item.Importe, 2);
                }
                else if (parte.TantoIva2 == item.Iva)
                {
                    parte.Base2 = Math.Round(parte.Base2 + item.Importe, 2);
                }
                else if (parte.TantoIva3 == item.Iva)
                {
                    parte.Base3 = Math.Round(parte.Base3 + item.Importe, 2);
                }
                else if (parte.TantoIva4 == item.Iva)
                {
                    parte.Base4 = Math.Round(parte.Base4 + item.Importe, 2);
                }
                else if (parte.TantoIva5 == item.Iva)
                {
                    parte.Base5 = Math.Round(parte.Base5 + item.Importe, 2);
                }
                else
                {
                    if ((parte.TantoIva1 == 0) && (parte.Base1 == 0))
                    {
                        parte.TantoIva1 = item.Iva;
                        parte.Base1     = Math.Round(parte.Base1 + item.Importe, 2);
                    }
                    else if ((parte.TantoIva2 == 0) && (parte.Base2 == 0))
                    {
                        parte.TantoIva2 = item.Iva;
                        parte.Base2     = Math.Round(parte.Base2 + item.Importe, 2);
                    }
                    else if ((parte.TantoIva3 == 0) && (parte.Base3 == 0))
                    {
                        parte.TantoIva3 = item.Iva;
                        parte.Base3     = Math.Round(parte.Base3 + item.Importe, 2);
                    }
                    else if ((parte.TantoIva4 == 0) && (parte.Base4 == 0))
                    {
                        parte.TantoIva4 = item.Iva;
                        parte.Base4     = Math.Round(parte.Base4 + item.Importe, 2);
                    }
                    else if ((parte.TantoIva5 == 0) && (parte.Base5 == 0))
                    {
                        parte.TantoIva5 = item.Iva;
                        parte.Base5     = Math.Round(parte.Base5 + item.Importe, 2);
                    }
                }
            }

            parte.Iva1 = Math.Round(parte.Base1 * parte.TantoIva1 / 100, 2);
            parte.Iva2 = Math.Round(parte.Base2 * parte.TantoIva2 / 100, 2);
            parte.Iva3 = Math.Round(parte.Base3 * parte.TantoIva3 / 100, 2);
            parte.Iva4 = Math.Round(parte.Base4 * parte.TantoIva4 / 100, 2);
            parte.Iva5 = Math.Round(parte.Base5 * parte.TantoIva5 / 100, 2);

            if (Variables.DatosParte.TieneRecargoEquivalencia == true)
            {
                if (parte.TantoIva1 != 0)
                {
                    parte.Tanto_Equivalencia1   = ObtenerRecargoEquivalencia(parte.TantoIva1);
                    parte.Recargo_Equivalencia1 = Math.Round(parte.Base1 * parte.Tanto_Equivalencia1 / 100, 2);
                }

                if (parte.TantoIva2 != 0)
                {
                    parte.Tanto_Equivalencia2   = ObtenerRecargoEquivalencia(parte.TantoIva2);
                    parte.Recargo_Equivalencia2 = Math.Round(parte.Base2 * parte.Tanto_Equivalencia2 / 100, 2);
                }

                if (parte.TantoIva3 != 0)
                {
                    parte.Tanto_Equivalencia3   = ObtenerRecargoEquivalencia(parte.TantoIva3);
                    parte.Recargo_Equivalencia3 = Math.Round(parte.Base3 * parte.Tanto_Equivalencia3 / 100, 2);
                }

                if (parte.TantoIva4 != 0)
                {
                    parte.Tanto_Equivalencia4   = ObtenerRecargoEquivalencia(parte.TantoIva4);
                    parte.Recargo_Equivalencia4 = Math.Round(parte.Base4 * parte.Tanto_Equivalencia4 / 100, 2);
                }

                if (parte.TantoIva5 != 0)
                {
                    parte.Tanto_Equivalencia5   = ObtenerRecargoEquivalencia(parte.TantoIva5);
                    parte.Recargo_Equivalencia5 = Math.Round(parte.Base5 * parte.Tanto_Equivalencia5 / 100, 2);
                }
            }

            parte.Base_Total    = parte.Base1 + parte.Base2 + parte.Base3 + parte.Base4 + parte.Base5;
            parte.Iva_Total     = parte.Iva1 + parte.Iva2 + parte.Iva3 + parte.Iva4 + parte.Iva5;
            parte.Recargo_Total = parte.Recargo_Equivalencia1 + parte.Recargo_Equivalencia2 + parte.Recargo_Equivalencia3 + parte.Recargo_Equivalencia4 + parte.Recargo_Equivalencia5;

            parte.Total = parte.Base_Total + parte.Iva_Total + parte.Recargo_Total;

            SAT parteFinal = database.Get <SAT>(numeroParte);

            parteFinal.Base1 = parte.Base1;
            parteFinal.Base2 = parte.Base2;
            parteFinal.Base3 = parte.Base3;
            parteFinal.Base4 = parte.Base4;
            parteFinal.Base5 = parte.Base5;

            parteFinal.TantoIva1 = parte.TantoIva1;
            parteFinal.TantoIva2 = parte.TantoIva2;
            parteFinal.TantoIva3 = parte.TantoIva3;
            parteFinal.TantoIva4 = parte.TantoIva4;
            parteFinal.TantoIva5 = parte.TantoIva5;

            parteFinal.Iva1 = parte.Iva1;
            parteFinal.Iva2 = parte.Iva2;
            parteFinal.Iva3 = parte.Iva3;
            parteFinal.Iva4 = parte.Iva4;
            parteFinal.Iva5 = parte.Iva5;

            parteFinal.Tanto_Equivalencia1 = parte.Tanto_Equivalencia1;
            parteFinal.Tanto_Equivalencia2 = parte.Tanto_Equivalencia2;
            parteFinal.Tanto_Equivalencia3 = parte.Tanto_Equivalencia3;
            parteFinal.Tanto_Equivalencia4 = parte.Tanto_Equivalencia4;
            parteFinal.Tanto_Equivalencia5 = parte.Tanto_Equivalencia5;

            parteFinal.Recargo_Equivalencia1 = parte.Recargo_Equivalencia1;
            parteFinal.Recargo_Equivalencia2 = parte.Recargo_Equivalencia2;
            parteFinal.Recargo_Equivalencia3 = parte.Recargo_Equivalencia3;
            parteFinal.Recargo_Equivalencia4 = parte.Recargo_Equivalencia4;
            parteFinal.Recargo_Equivalencia5 = parte.Recargo_Equivalencia5;

            parteFinal.Iva_Total  = parte.Iva_Total;
            parteFinal.Base_Total = parte.Base_Total;
            parteFinal.Total      = parte.Total;

            Variables.DatosParte.Base1 = parteFinal.Base1;
            Variables.DatosParte.Base2 = parteFinal.Base2;
            Variables.DatosParte.Base3 = parteFinal.Base3;
            Variables.DatosParte.Base4 = parteFinal.Base4;
            Variables.DatosParte.Base5 = parteFinal.Base5;

            Variables.DatosParte.TantoIva1 = parteFinal.TantoIva1;
            Variables.DatosParte.TantoIva2 = parteFinal.TantoIva2;
            Variables.DatosParte.TantoIva3 = parteFinal.TantoIva3;
            Variables.DatosParte.TantoIva4 = parteFinal.TantoIva4;
            Variables.DatosParte.TantoIva5 = parteFinal.TantoIva5;

            Variables.DatosParte.Iva1 = parteFinal.Iva1;
            Variables.DatosParte.Iva2 = parteFinal.Iva2;
            Variables.DatosParte.Iva3 = parteFinal.Iva3;
            Variables.DatosParte.Iva4 = parteFinal.Iva4;
            Variables.DatosParte.Iva5 = parteFinal.Iva5;

            Variables.DatosParte.Tanto_Equivalencia1 = parteFinal.Tanto_Equivalencia1;
            Variables.DatosParte.Tanto_Equivalencia2 = parteFinal.Tanto_Equivalencia2;
            Variables.DatosParte.Tanto_Equivalencia3 = parteFinal.Tanto_Equivalencia3;
            Variables.DatosParte.Tanto_Equivalencia4 = parteFinal.Tanto_Equivalencia4;
            Variables.DatosParte.Tanto_Equivalencia5 = parteFinal.Tanto_Equivalencia5;

            Variables.DatosParte.Recargo_Equivalencia1 = parteFinal.Recargo_Equivalencia1;
            Variables.DatosParte.Recargo_Equivalencia2 = parteFinal.Recargo_Equivalencia2;
            Variables.DatosParte.Recargo_Equivalencia3 = parteFinal.Recargo_Equivalencia3;
            Variables.DatosParte.Recargo_Equivalencia4 = parteFinal.Recargo_Equivalencia4;
            Variables.DatosParte.Recargo_Equivalencia5 = parteFinal.Recargo_Equivalencia5;

            Variables.DatosParte.Iva_Total       = parteFinal.Iva_Total;
            Variables.DatosParte.Total           = parteFinal.Total;
            Variables.DatosParte.Base_Total      = parteFinal.Base_Total;
            Variables.DatosParte.Descuento_Total = descuento;
        }