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(); } }
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(); }