Пример #1
0
        private void estadoPagoCliente()
        {
            groupBox2.Visible = true;
            DataTable dtfechas  = cartera.BuscarFechaspagos(int.Parse(productoId));
            DataTable dtrecaudo = pago.Tota_Recaudado_Producto(productoId);

            dtpagos = pago.ListarPagosCliente(productoId);
            if (dtpagos.Rows.Count > 0)
            {
                ValorPagado = double.Parse(dtrecaudo.Rows[0]["Sum(Valor_Pagado)"].ToString().Replace(",", ""));
                if (!string.IsNullOrEmpty(dtfechas.Rows[0]["Id_Financiacion"].ToString()))
                {
                    Financiacion = int.Parse(dtfechas.Rows[0]["Id_Financiacion"].ToString());
                    if (dtfechas.Rows.Count > 0 && !string.IsNullOrEmpty(dtfechas.Rows[0]["Fecha_Recaudo"].ToString()))
                    {
                        button1.Enabled = true;
                        string fecha1 = dtfechas.Rows[0]["Fecha_Pago"].ToString();
                        string fecha2 = dtfechas.Rows[0]["Fecha_Recaudo"].ToString();
                        cuotas = int.Parse(dtfechas.Rows[0]["Cuotas"].ToString());
                        DataTable dtcuotas = cuota.NumCuotasPagadas(Financiacion);
                        pagos = int.Parse(dtcuotas.Rows[0]["cuotas"].ToString()) - 1;
                        //DataTable dtcuotas = pago.ConsultarCuotas(int.Parse(productoId), "Inicial%");
                        //int pagos = 0;
                        //if (!string.IsNullOrEmpty(dtcuotas.Rows[0]["cuotas"].ToString()) && (int.Parse(dtcuotas.Rows[0]["cuotas"].ToString()) >= int.Parse(dtfechas.Rows[0]["Cuotas_Sin_interes"].ToString())))
                        //{
                        //    pagos = int.Parse(dtcuotas.Rows[0]["cuotas"].ToString());
                        //    dtcuotas = pago.ConsultarCuotas(int.Parse(productoId), "Saldo%");
                        //    if (!string.IsNullOrEmpty(dtcuotas.Rows[0]["cuotas"].ToString()))
                        //    {
                        //        pagos = int.Parse(dtfechas.Rows[0]["Cuotas_Sin_interes"].ToString()) + int.Parse(dtcuotas.Rows[0]["cuotas"].ToString());
                        //    }
                        //}
                        //else
                        //{
                        //    dtcuotas = pago.ConsultarCuotas(int.Parse(productoId), "%");
                        //    pagos = int.Parse(dtcuotas.Rows[0]["cuotas"].ToString());
                        //}
                        DateTime date_1 = DateTime.ParseExact(fecha1, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                        DateTime date_2 = DateTime.ParseExact(fecha2, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                        DateTime actual = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd"), "yyyy-MM-dd", CultureInfo.InvariantCulture);

                        TimeSpan Ultimo      = actual.Subtract(date_1);
                        TimeSpan trascurrido = actual.Subtract(date_2);

                        int dia = int.Parse(trascurrido.Days.ToString());
                        meses    = dia / 30;
                        mes_mora = 0;
                        mora     = 0;
                        if (cuotas < meses)
                        {
                            mes_mora = meses - pagos;
                            if (cuotas < pagos)
                            {
                                mora = cuotas;
                            }
                            else
                            {
                                mora = cuotas - pagos;
                            }
                        }
                        else if (meses - pagos <= 0)
                        {
                            mora     = 0;
                            mes_mora = 0;
                        }
                        else
                        {
                            mora     = meses - pagos;
                            mes_mora = meses - pagos;
                        }
                        if (ProductoVal - ValorPagado != 0)
                        {
                            labelmes.Text     = "Meses Transcurridos:  " + meses;
                            labelMora.Text    = "Cuotas en Mora:  " + mora;
                            labelMeses.Text   = "Meses en Mora:  " + mes_mora;
                            labelPagadas.Text = "Cuotas Pagadas:  " + pagos;
                        }
                        else
                        {
                            labelmes.Text     = "";
                            labelPagadas.Text = "Pagos:  " + dtpagos.Rows.Count;
                            labelMora.Text    = "";
                            labelMeses.Text   = "Pagado";
                            labelPagadas.Text = "";
                        }
                        labelCuotas.Text = "Cuotas Pactadas:  " + cuotas;
                    }
                }
                else
                {
                    button1.Enabled = false;
                    if (ProductoVal - ValorPagado != 0)
                    {
                        labelmes.Text     = "";
                        labelPagadas.Text = "Pagos:  " + dtpagos.Rows.Count;
                        labelMora.Text    = "Saldo: " + (ProductoVal - ValorPagado);
                        labelMeses.Text   = "";
                        labelMeses.Text   = "Estado: En mora";
                        labelCuotas.Text  = "Tipo de pago: Contado";
                    }
                    else
                    {
                        labelmes.Text     = "";
                        labelPagadas.Text = "Pagos:  " + dtpagos.Rows.Count;
                        labelMora.Text    = "";
                        labelMeses.Text   = "";
                        labelMeses.Text   = "Estado: Pagado";
                        labelCuotas.Text  = "Tipo de pago: Contado";
                    }
                }
            }
            else
            {
                this.Close();
            }
        }
Пример #2
0
        private void actulizarestado()
        {
            for (int i = 0; i < DtCartera.Rows.Count; i++)
            {
                string Cliente = DtCartera.Rows[i]["Id_Cliente"].ToString();
                string Cartera = DtCartera.Rows[i]["Id_Cartera"].ToString();
                if (DtCartera.Rows[i]["Pago"].ToString() != "Disuelto")
                {
                    //error de comas al parecer
                    //MessageBox.Show("Esto Trae"+ double.Parse(DtCartera.Rows[i]["Recaudado"].ToString().Replace(",", "").Replace(".", ",")) + double.Parse(DtCartera.Rows[i]["Total"].ToString().Replace(",", "").Replace(".", ",")));
                    if (double.Parse(DtCartera.Rows[i]["Recaudado"].ToString().Replace(",", "").Replace(".", ",")) - double.Parse(DtCartera.Rows[i]["Total"].ToString().Replace(",", "").Replace(".", ",")) >= 0)
                    {
                        cartera.ActulizarValorRecaudado(int.Parse(Cliente));
                        cartera.ActulizarEstadoCartera(Cartera, "Pagada", 0, 0, 0, 0);
                        //dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Aquamarine;
                    }
                    else
                    {
                        DataTable dtproducto = producto.cargarProductosCliente(int.Parse(Cliente));
                        for (int j = 0; j < dtproducto.Rows.Count; j++)
                        {
                            string    Producto = dtproducto.Rows[j]["Id_Producto"].ToString();
                            DataTable dtfechas = cartera.BuscarFechaspagos(int.Parse(Producto));

                            if (dtproducto.Rows[j]["Forma Pago"].ToString() == "Contado")
                            {
                                for (int h = 0; h < dtfechas.Rows.Count; h++)
                                {
                                    if (dtfechas.Rows.Count > 0 && !string.IsNullOrEmpty(dtfechas.Rows[h]["Fecha_Pago"].ToString()))
                                    {
                                        cartera.ActulizarEstadoCartera(Cartera, "Pagada", 0, 0, 0, 0);
                                    }
                                    else
                                    {
                                        cartera.ActulizarEstadoCartera(Cartera, "Sin pagos Contado", 0, 0, 0, 0);
                                    }
                                }
                            }
                            else
                            {
                                for (int h = 0; h < dtfechas.Rows.Count; h++)
                                {
                                    if (dtfechas.Rows.Count > 0 && !string.IsNullOrEmpty(dtfechas.Rows[h]["Fecha_Recaudo"].ToString()))
                                    {
                                        int       financiacion = int.Parse(dtfechas.Rows[0]["Id_Financiacion"].ToString());
                                        bool      cambio       = true;
                                        string    fecha1       = dtfechas.Rows[h]["Fecha_Pago"].ToString();
                                        string    fecha2       = dtfechas.Rows[h]["Fecha_Recaudo"].ToString();
                                        int       cuotas       = int.Parse(dtfechas.Rows[h]["Cuotas"].ToString());
                                        DataTable dtcuotas     = cuota.NumCuotasPagadas(financiacion);
                                        int       pagos        = int.Parse(dtcuotas.Rows[0]["cuotas"].ToString()) - 1;
                                        //DataTable dtcuotas = pago.ConsultarCuotas(int.Parse(Producto), "Inicial%");
                                        //int pagos = 0;
                                        //if (!string.IsNullOrEmpty(dtcuotas.Rows[h]["cuotas"].ToString()) && (int.Parse(dtcuotas.Rows[h]["cuotas"].ToString()) > int.Parse(dtfechas.Rows[h]["Cuotas_Sin_interes"].ToString())))
                                        //{
                                        //    pagos = int.Parse(dtcuotas.Rows[h]["cuotas"].ToString());
                                        //    dtcuotas = pago.ConsultarCuotas(int.Parse(Producto), "Saldo%");
                                        //    if (!string.IsNullOrEmpty(dtcuotas.Rows[h]["cuotas"].ToString()))
                                        //    {
                                        //        pagos = int.Parse(dtfechas.Rows[h]["Cuotas_Sin_interes"].ToString()) + int.Parse(dtcuotas.Rows[h]["cuotas"].ToString());
                                        //    }
                                        //}
                                        //else
                                        //{
                                        //    dtcuotas = pago.ConsultarCuotas(int.Parse(Producto), "%");
                                        //    pagos = int.Parse(dtcuotas.Rows[h]["cuotas"].ToString());
                                        //}
                                        DateTime date_1      = DateTime.ParseExact(fecha1, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                                        DateTime date_2      = DateTime.ParseExact(fecha2, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                                        DateTime actual      = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd"), "yyyy-MM-dd", CultureInfo.InvariantCulture);
                                        TimeSpan Ultimo      = actual.Subtract(date_1);
                                        TimeSpan trascurrido = actual.Subtract(date_2);

                                        int dia      = int.Parse(trascurrido.Days.ToString());
                                        int meses    = dia / 30;
                                        int mes_mora = 0;
                                        int mora     = 0;
                                        if (cuotas < meses)
                                        {
                                            mes_mora = meses - pagos;
                                            if (cuotas < pagos)
                                            {
                                                mora = cuotas;
                                            }
                                            else
                                            {
                                                mora = cuotas - pagos;
                                            }
                                        }
                                        else if (meses - pagos <= 0)
                                        {
                                            mora     = 0;
                                            mes_mora = 0;
                                        }
                                        else
                                        {
                                            mora     = meses - pagos;
                                            mes_mora = meses - pagos;
                                        }
                                        string estado = "";
                                        if (cambio == true)
                                        {
                                            //switch (DiasMora)
                                            switch (Ultimo.Days)
                                            {
                                            case int n when n <= 30:
                                                estado = "Menos de 30 días";
                                                break;

                                            case int n when n <= 60:
                                                estado = "De 31 a 60 días";
                                                break;

                                            case int n when n <= 90:
                                                estado = "De 61 a 90 días";
                                                break;

                                            case int n when n <= 180:
                                                estado = "De 91 a 180 días";
                                                break;

                                            case int n when n <= 360:
                                                estado = "De 181 a 360 días";
                                                break;

                                            case int n when n >= 360:
                                                estado = "Mas de 360 días";
                                                break;
                                            }
                                        }
                                        if (dtproducto.Rows.Count > 1)
                                        {
                                            if (fecha_anterior.ToString() == "01/01/0001 12:00:00 a.m.")
                                            {
                                                fecha_anterior = date_1;
                                                estadoanterior = estado;
                                            }
                                            else
                                            {
                                                int result = DateTime.Compare(date_1, fecha_anterior);
                                                if (result < 0)
                                                {
                                                    cambio = false;
                                                }
                                                else if (result == 0)
                                                {
                                                    cambio = true;
                                                }
                                                else
                                                {
                                                    cambio = true;
                                                }
                                            }
                                        }
                                        cartera.ActulizarEstadoCartera(Cartera, estado, cuotas, mes_mora, pagos, mora);
                                    }
                                    else if (string.IsNullOrEmpty(dtfechas.Rows[h]["Fecha_Pago"].ToString()))
                                    {
                                        cartera.ActulizarEstadoCartera(Cartera, "Sin pagos credito", 0, 0, 0, 0);
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    cartera.ActulizarValorTotal(int.Parse(Cliente), int.Parse(Cartera));
                    cartera.ActulizarValorRecaudado(int.Parse(Cliente));
                    cartera.ActulizarSaldo(int.Parse(Cartera));
                }
            }
            Validarestados = false;
            CargarCartera();
        }