private async void AbonoSmall_OnBtnSaveClick(object sender, EventArgs e) { object[] objs = (object[])sender; decimal valor_abono = (decimal)objs[0]; DateTime fecha_proximo_abono = (DateTime)objs[1]; DateTime fecha_abono = (DateTime)objs[2]; if (valor_abono != 0) { MainController main = MainController.GetInstance(); this.Agendamiento.Fecha_cobro = fecha_abono; this.Agendamiento.Valor_pagado = valor_abono; this.Agendamiento.Saldo_restante -= valor_abono; this.Agendamiento.Id_turno = main.Turno.Id_turno; this.Agendamiento.Turno = main.Turno; this.Agendamiento.Estado_cobro = "TERMINADO"; string rpta = await NAgendamiento_cobros.EditarAgendamiento(this.Agendamiento.Id_agendamiento, this.Agendamiento); if (rpta.Equals("OK")) { this.Agendamiento.Valor_pagado = 0; this.Agendamiento.Fecha_cobro = fecha_proximo_abono; this.Agendamiento.Estado_cobro = "PENDIENTE"; rpta = NAgendamiento_cobros.InsertarAgendamiento(out int id_agendamiento, this.Agendamiento); if (rpta.Equals("OK")) { Mensajes.MensajeInformacion("Abono realizado y proximo cobro agendado con éxito para la fecha " + fecha_proximo_abono.ToLongDateString(), "Entendido"); } else { Mensajes.MensajeInformacion("Abono realizado correctamente pero no se realizó el agendamiento para el proximo cobro", "Entendido"); } this.OnRefresh?.Invoke(sender, e); } else { Mensajes.MensajeInformacion("No se pudo realizar el abono", "Entendido"); } } }
private async void BtnSave_Click(object sender, EventArgs e) { try { var(result, usuario, direccion, venta, agendamiento) = await this.Comprobaciones(); if (result) { MensajeEspera.ShowWait("Guardando..."); List <string> errores = new List <string>(); string rpta = ""; if (this.IsEditar) { rpta = NUsuarios.EditarUsuario(usuario.Id_usuario, usuario); } else { rpta = NUsuarios.InsertarUsuario(out int id_usuario, usuario); direccion.Id_usuario = id_usuario; venta.Id_cliente = id_usuario; usuario.Id_usuario = id_usuario; } if (rpta.Equals("OK")) { if (this.IsEditar) { rpta = NDireccion_clientes.EditarDireccion(direccion.Id_direccion, direccion); } else { rpta = NDireccion_clientes.InsertarDireccion(out int id_direccion, direccion); venta.Id_direccion = id_direccion; } if (rpta.Equals("OK")) { if (this.IsEditar) { rpta = NVentas.EditarVenta(venta.Id_venta, venta); } else { rpta = NVentas.InsertarVenta(out int id_venta, venta); venta.Id_venta = id_venta; } if (rpta.Equals("OK")) { if (this.rdActual.Checked && !this.IsEditar && this.chkDescontar.Checked) { foreach (Articulos art in this.ArticulosSelected) { Detalle_articulos_venta detalle = new Detalle_articulos_venta { Articulo = art, Id_articulo = art.Id_articulo, Venta = venta, Id_venta = venta.Id_venta, Cantidad_articulo = (int)art.Cantidad_articulo, Valor_articulo = art.Valor_articulo, Estado_detalle = "ACTIVO", }; var(rptaDetalle, id_detalle) = await NDetalle_articulos_venta.InsertarDetalle(detalle); if (!rptaDetalle.Equals("OK")) { errores.Add(rptaDetalle); } } } MainController main = MainController.GetInstance(); if (!this.IsEditar) { rpta = NUsuariosVentas.InsertarUsuarioVenta(new Usuarios_ventas { Id_usuario = main.Usuario.Id_usuario, Id_venta = venta.Id_venta, }); if (rpta.Equals("OK")) { agendamiento.Id_venta = venta.Id_venta; rpta = NAgendamiento_cobros.InsertarAgendamiento(out int id_agendamiento, agendamiento); if (rpta.Equals("OK")) { MensajeEspera.CloseForm(); Mensajes.MensajeInformacion("Se guardó correctamente el cliente, " + "número cliente: " + usuario.Id_usuario + " Número venta: " + venta.Id_venta, "Entendido"); this.Close(); } else { throw new Exception(rpta); } } else { throw new Exception(rpta); } } else { //Obtener el último agendamiento var(rptaAg, dt) = await NAgendamiento_cobros.BuscarAgendamientos("ID VENTA", venta.Id_venta.ToString()); if (dt != null) { agendamiento = new Agendamiento_cobros(dt.Rows[0]); agendamiento.Valor_cobro = venta.Valor_cuota; agendamiento.Fecha_cobro = this.dateUltimoPago.Value; rptaAg = await NAgendamiento_cobros.EditarAgendamiento(agendamiento.Id_agendamiento, agendamiento); if (rptaAg != "OK") { Mensajes.MensajeInformacion("Se actualizó el cliente pero no su último pago," + "número cliente: " + usuario.Id_usuario + " Número venta: " + venta.Id_venta, "Entendido"); this.OnRefresh?.Invoke(sender, e); this.Close(); } else { Mensajes.MensajeInformacion("Se actualizó correctamente el cliente, " + "número cliente: " + usuario.Id_usuario + " Número venta: " + venta.Id_venta, "Entendido"); this.OnRefresh?.Invoke(sender, e); this.Close(); } } else { Mensajes.MensajeInformacion("Se actualizó correctamente el cliente pero no se encontraron sus agendamientos, número asignado: " + usuario.Id_usuario, "Entendido"); this.OnRefresh?.Invoke(sender, e); this.Close(); } } } } else { throw new Exception(rpta); } } else { throw new Exception(rpta); } } MensajeEspera.CloseForm(); } catch (Exception ex) { MensajeEspera.CloseForm(); Mensajes.MensajeErrorCompleto(this.Name, "BtnSave_Click", "Hubo un error al guardar el cliente", ex.Message); } }
private async void AbonoSmall_OnBtnSaveClick(object sender, EventArgs e) { object[] objs = (object[])sender; decimal valor_abono = (decimal)objs[0]; DateTime fecha_proximo_abono = (DateTime)objs[1]; DateTime fecha_abono = (DateTime)objs[2]; if (valor_abono != 0) { MainController main = MainController.GetInstance(); string rpta = "OK"; if (this.UltimoAgendamiento != null) { if (this.UltimoAgendamiento.Estado_cobro.Equals("PENDIENTE")) { this.UltimoAgendamiento.Fecha_cobro = fecha_abono; this.UltimoAgendamiento.Valor_pagado = valor_abono; this.UltimoAgendamiento.Saldo_restante -= valor_abono; this.UltimoAgendamiento.Id_turno = main.Turno.Id_turno; this.UltimoAgendamiento.Turno = main.Turno; this.UltimoAgendamiento.Estado_cobro = "TERMINADO"; rpta = await NAgendamiento_cobros.EditarAgendamiento(this.UltimoAgendamiento.Id_agendamiento, this.UltimoAgendamiento); } else { this.UltimoAgendamiento.Fecha_cobro = fecha_abono; this.UltimoAgendamiento.Valor_pagado = valor_abono; this.UltimoAgendamiento.Saldo_restante -= valor_abono; this.UltimoAgendamiento.Id_turno = main.Turno.Id_turno; this.UltimoAgendamiento.Turno = main.Turno; this.UltimoAgendamiento.Estado_cobro = "TERMINADO"; rpta = NAgendamiento_cobros.InsertarAgendamiento(out int id, this.UltimoAgendamiento); } } else { this.UltimoAgendamiento = new Agendamiento_cobros(); this.UltimoAgendamiento.Orden_cobro = 0; this.UltimoAgendamiento.Id_venta = this.Venta.Id_venta; this.UltimoAgendamiento.Venta = this.Venta; this.UltimoAgendamiento.Fecha_cobro = fecha_abono; this.UltimoAgendamiento.Valor_cobro = this.Venta.Valor_cuota; this.UltimoAgendamiento.Valor_pagado = valor_abono; this.UltimoAgendamiento.Saldo_restante = this.Venta.Total_venta - valor_abono; this.UltimoAgendamiento.Id_turno = main.Turno.Id_turno; this.UltimoAgendamiento.Turno = main.Turno; this.UltimoAgendamiento.Estado_cobro = "TERMINADO"; this.UltimoAgendamiento.Tipo_cobro = this.Venta.Frecuencia_cobro; this.UltimoAgendamiento.Observaciones_cobro = string.Empty; } if (rpta.Equals("OK")) { this.abonoSmall.Clear(); this.UltimoAgendamiento.Valor_pagado = 0; this.UltimoAgendamiento.Fecha_cobro = fecha_proximo_abono; this.UltimoAgendamiento.Estado_cobro = "PENDIENTE"; rpta = NAgendamiento_cobros.InsertarAgendamiento(out int id_agendamiento, this.UltimoAgendamiento); if (rpta.Equals("OK")) { Mensajes.MensajeInformacion("Abono realizado y proximo cobro agendado con éxito para la fecha " + fecha_proximo_abono.ToLongDateString(), "Entendido"); } else { Mensajes.MensajeInformacion("Abono realizado correctamente pero no se realizó el agendamiento para el proximo cobro", "Entendido"); } this.LoadAgendamientos("ID VENTA", this.Venta.Id_venta.ToString()); } else { Mensajes.MensajeInformacion("No se pudo realizar el abono", "Entendido"); } } }