Exemplo n.º 1
0
        //Percorre a coleção calculando juros de atraso
        public void SumJuroDuplicata()
        {
            JUROSDUPLICATASEntity   JUROSDUPLICATASty = new JUROSDUPLICATASEntity();
            JUROSDUPLICATASProvider JUROSDUPLICATASP  = new JUROSDUPLICATASProvider();

            JUROSDUPLICATASty = JUROSDUPLICATASP.Read(1);//1 Contas a Pagar


            foreach (LIS_DUPLICATAPAGAREntity item in LIS_DUPLICATAPAGARColl)
            {
                //Somente calcula juros de duplicatas que não foram atualizada no dia
                // e vencidas
                //string DataAtual = DateTime.Now.ToString("dd/MM/yyyy");
                //string DataAtDupl = Convert.ToDateTime(item.DATAATJUROS).ToString("dd/MM/yyyy");
                //if (item.DATAVECTO < DateTime.Now && Convert.ToDateTime(DataAtDupl) < Convert.ToDateTime(DataAtual)
                //    && item.IDSTATUS != 3)
                if (item.DATAVECTO < Convert.ToDateTime(DateTime.Now.ToString("dd/MM/yyyy")) && item.IDSTATUS != 3)
                {
                    //Calculo de dias de vencimento
                    TimeSpan date       = Convert.ToDateTime(DateTime.Now) - Convert.ToDateTime(item.DATAVECTO);
                    int      DIASATRASO = date.Days;

                    if (DIASATRASO > 0)
                    {
                        item.DIASATRASO = DIASATRASO;
                    }
                    else
                    {
                        item.DIASATRASO = 0;
                    }

                    item.DATAATJUROS = DateTime.Now;

                    if (JUROSDUPLICATASty.FLAGCALCULAR == "S")
                    {
                        //Calculo o juros de atraso
                        decimal PorcJuros = Convert.ToDecimal(JUROSDUPLICATASty.JUROSDIA * item.DIASATRASO);
                        PorcJuros = PorcJuros / 100;

                        if (item.IDSTATUS != 4)    //4 Parcial
                        {
                            item.VALORJUROS = item.VALORDUPLICATA * PorcJuros;
                        }
                        else
                        {
                            item.VALORJUROS = item.VALORDEVEDOR * PorcJuros;
                        }

                        if (item.IDSTATUS != 4)    //4 Parcial
                        {
                            item.VALORDEVEDOR = item.VALORJUROS + JUROSDUPLICATASty.MULTAATRASO + JUROSDUPLICATASty.TAXA
                                                + JUROSDUPLICATASty.OUTRAS + item.VALORDUPLICATA;
                        }
                        else
                        {
                            item.VALORDEVEDOR = item.VALORJUROS + JUROSDUPLICATASty.MULTAATRASO + JUROSDUPLICATASty.TAXA
                                                + JUROSDUPLICATASty.OUTRAS + item.VALORDEVEDOR;
                        }


                        item.VALORMULTA = JUROSDUPLICATASty.MULTAATRASO + JUROSDUPLICATASty.TAXA
                                          + JUROSDUPLICATASty.OUTRAS;
                    }

                    //Salvando no banco
                    DUPLICATAPAGAREntity DUPLICATAPAGAR_Sav_Ty = new DUPLICATAPAGAREntity();
                    DUPLICATAPAGAR_Sav_Ty = DUPLICATAPAGARP.Read(Convert.ToInt32(item.IDDUPLICATAPAGAR));

                    if (DIASATRASO > 0 && DUPLICATAPAGAR_Sav_Ty.IDSTATUS != 4) // 4 Parcial
                    {
                        DUPLICATAPAGAR_Sav_Ty.IDSTATUS = 2;                    //Vencida
                    }
                    DUPLICATAPAGAR_Sav_Ty.VALORJUROS   = item.VALORJUROS;
                    DUPLICATAPAGAR_Sav_Ty.VALORDEVEDOR = item.VALORDEVEDOR;
                    DUPLICATAPAGAR_Sav_Ty.VALORMULTA   = item.VALORMULTA;
                    DUPLICATAPAGAR_Sav_Ty.DIASATRASO   = item.DIASATRASO;
                    DUPLICATAPAGAR_Sav_Ty.DATAATJUROS  = item.DATAATJUROS;
                    DUPLICATAPAGARP.Save(DUPLICATAPAGAR_Sav_Ty);
                }
            }
        }