private async void dgvDetalles_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 12 || e.ColumnIndex == 10) { int empeñoId = int.Parse(dgvDetalles.SelectedRows[0].Cells[0].Value.ToString()); var temporal = empeños.Where(x => x.EmpenoId == empeñoId).SingleOrDefault(); var empeño = _context.Empenos.Where(x => x.EmpenoId == empeñoId).SingleOrDefault(); temporal.EditorId = await funciones.GetEmpleadoIdByUser(Program.Usuario.Usuario); empeño.EditorId = await funciones.GetEmpleadoIdByUser(Program.Usuario.Usuario); temporal.FechaRetiroAdministrador = DateTime.Now; empeño.FechaRetiroAdministrador = DateTime.Now; temporal.RetiradoAdministrador = true; empeño.RetiradoAdministrador = true; empeño.Estado = Estado.Retirado; _context.Entry(empeño).State = EntityState.Modified; await _context.SaveChangesAsync(); } else if (e.ColumnIndex == 13 || e.ColumnIndex == 9) { int empeñoId = int.Parse(dgvDetalles.SelectedRows[0].Cells[0].Value.ToString()); var temporal = empeños.Where(x => x.EmpenoId == empeñoId).SingleOrDefault(); var empeño = empeños.Where(x => x.EmpenoId == empeñoId).SingleOrDefault(); temporal.EditorId = await funciones.GetEmpleadoIdByUser(Program.Usuario.Usuario); empeño.EditorId = await funciones.GetEmpleadoIdByUser(Program.Usuario.Usuario); frmOscuro oscuro = new frmOscuro(); oscuro.Show(); frmProroga frmProroga = new frmProroga(empeño.EmpenoId); frmProroga.ShowDialog(); oscuro.Close(); if (Program.Proroga) { var proroga = _context.Prorrogas.Where(p => p.EmpenoId == empeñoId).FirstOrDefault(); temporal.Prorroga = true; empeño.Prorroga = true; if (!string.IsNullOrEmpty(empeño.Cliente.Correo)) { EmailFuncion emailFuncion = new EmailFuncion(); var str = "Se le a otorgado una <b>prórroga de " + proroga.DiasProrroga + " días</b>, para que pueda retirar su Empeño #" + empeño.EmpenoId + " <b>vencido el " + empeño.FechaVencimiento.ToString("dd/MM/yyyy") + "</b> por : <br /><i>" + empeño.Descripcion + "</i><br /><br />"; await emailFuncion.SendMail(empeño.Cliente.Correo, "Proróga de Empeño #" + empeñoId + " en " + configuracion.Compañia, str, empeño); } } _context.Entry(empeño).State = EntityState.Modified; await _context.SaveChangesAsync(); } index = dgvDetalles.SelectedRows[0].Index; LoadDetalle(); dgvDetalles.Rows[0].Selected = false; dgvDetalles.Rows[index].Selected = true; dgvDetalles.FirstDisplayedScrollingRowIndex = dgvDetalles.SelectedRows[0].Index; }
private async void btnGuardar_Click(object sender, EventArgs e) { if (EmpeñoId > 0) { var empeño = await _context.Empenos.FindAsync(EmpeñoId); if (empeño != null) { if (ProrogaId > 0) { var proroga = await _context.Prorrogas.FindAsync(ProrogaId); proroga.Comentario = txtComentario.Text; proroga.DiasProrroga = int.Parse(txtTiempo.Text); proroga.EmpleadoId = await funciones.GetEmpleadoIdByUser(Program.Usuario.Usuario); proroga.EmpenoId = empeño.EmpenoId; proroga.Fecha = DateTime.Today; _context.Entry(proroga).State = EntityState.Modified; } else { var proroga = new Prorroga() { Comentario = txtComentario.Text, DiasProrroga = int.Parse(txtTiempo.Text), EmpleadoId = await funciones.GetEmpleadoIdByUser(Program.Usuario.Usuario), EmpenoId = empeño.EmpenoId, Fecha = DateTime.Today }; _context.Prorrogas.Add(proroga); } await _context.SaveChangesAsync(); Program.Proroga = true; Program.EmpeñoId = EmpeñoId; this.Close(); } } }
public async Task Guardar() { if (!funciones.ValidatePIN("Empeño")) { return; } double pagoIntereses = double.Parse(txtPagaInteres.Text); double pagoMonto = double.Parse(txtPagaMonto.Text); double montoPendiente = double.Parse(txtMontoAPagar.Text); if (pagoMonto < montoPendiente) { if ((pagoMonto > 0) && (empeño.Intereses.Sum(i => i.Monto) > (empeño.Intereses.Sum(i => i.Pagado) + pagoIntereses))) { MessageBox.Show("Para abonar a la prenda debe pagar todos los intereses pendientes de " + montoMinimo.ToString("N2"), "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } var empleadoId = await funciones.GetEmpleadoIdByUser(Program.Usuario.Usuario); double montoIntereses = double.Parse(txtInteresAPagar.Text); if (pagoMonto > montoPendiente) { txtPagaMonto.Text = txtMontoAPagar.Text; pagoMonto = double.Parse(txtPagaMonto.Text); } if (pagoIntereses > montoIntereses) { txtPagaInteres.Text = txtInteresAPagar.Text; pagoIntereses = double.Parse(txtPagaInteres.Text); } empeño = null; var empeñoTemp = _context.Empenos.Find(empeñoId); if ((pagoMonto > 0 && pagoMonto < montoPendiente) && (pagoIntereses < montoMinimo - 1)) { MessageBox.Show("Para abonar a la prenda debe pagar todos los intereses pendientes de " + montoMinimo.ToString("N2"), "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (pagoMonto > 0) { var pago = new Pago { EmpenoId = empeñoTemp.EmpenoId, Consecutivo = GetConsecutivo(), Comentario = txtComentario.Text == "Comentario" ? string.Empty : txtComentario.Text, EmpleadoId = Program.EmpleadoId, Fecha = DateTime.Now, Monto = pagoMonto, TipoPago = TipoPago.Principal, }; _context.Pago.Add(pago); await _context.SaveChangesAsync(); await funciones.SaveBitacora(new ValorBitacora { Valor = JsonConvert.SerializeObject(pago), Modulo = "Pagos", Accion = "Crear" }); empeñoTemp.MontoPendiente -= pago.Monto; if (empeñoTemp.MontoPendiente < 1) { var pagoInteres = await SetPagaInteres(pagoIntereses, false); empeñoTemp.Estado = Estado.Cancelado; empeñoTemp.Retirado = true; empeñoTemp.FechaRetiro = DateTime.Today; _context.Intereses.RemoveRange(_context.Intereses.Where(i => i.EmpenoId == empleadoId && i.Pagado == 0)); _context.Entry(empeñoTemp).State = EntityState.Modified; await _context.SaveChangesAsync(); if (pagoInteres == null) { await PrintRetiro(empeñoTemp, pago); } else { await PrintRetiro(empeñoTemp, pago, pagoInteres); } } else { empeñoTemp.Estado = Estado.Vigente; _context.Entry(empeñoTemp).State = EntityState.Modified; await _context.SaveChangesAsync(); await PagaInteres(pagoIntereses, true); await PrintAbono(empeñoTemp, pago); } } else { await PagaInteres(pagoIntereses, true); } await _context.SaveChangesAsync(); this.Close(); }
public async Task ProcessClose() { var fecha = DateTime.ParseExact(txtFecha.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture); var tomorrow = fecha.AddDays(1); empleadoId = await funciones.GetEmpleadoIdByUser(Program.Usuario.Usuario); empleadoId = empleadoId == null ? 1 : empleadoId; var empleado = await _context.Empleados.FindAsync(empleadoId); txtEmpleado.Text = empleado.Nombre; txtEmpleado.Enabled = false; textBox1.Text = "0.00"; var empeñosActivos = _context.Empenos.Where(x => !x.IsDelete && ((x.Estado == Estado.Vigente || x.Estado == Estado.Pendiente || x.Estado == Estado.Vencido) || (x.Estado == Estado.Cancelado && x.FechaRetiro > tomorrow))); var prueba2 = _context.Empenos.Sum(x => x.MontoPendiente); var prueba3 = _context.Empenos.Where(x => !x.IsDelete).Sum(x => x.MontoPendiente); var prueba4 = _context.Empenos.Where(x => !x.IsDelete && ((x.Estado == Estado.Vigente || x.Estado == Estado.Pendiente || x.Estado == Estado.Vencido))).Sum(x => x.MontoPendiente); var prueba5 = _context.Empenos.Where(x => !x.IsDelete && ((x.Estado == Estado.Vigente || x.Estado == Estado.Pendiente || x.Estado == Estado.Vencido) || (x.Estado == Estado.Cancelado && x.FechaRetiro > tomorrow))).Sum(x => x.MontoPendiente); double?vencidos = _context.Empenos.Where(x => !x.IsDelete && x.FechaRetiroAdministrador >= fecha && x.FechaRetiroAdministrador < tomorrow).ToList().Sum(x => x.MontoPendiente); double prueba = empeñosActivos.Sum(x => x.MontoPendiente); double c1 = empeñosActivos.Where(x => x.Fecha < fecha && (!x.Retirado || (x.FechaRetiroAdministrador >= fecha && x.FechaRetiroAdministrador < tomorrow))).Sum(x => x.MontoPendiente); double c2c3 = _context.Pago.Where(p => p.Fecha >= fecha && p.Fecha < tomorrow && p.TipoPago == TipoPago.Principal).Any() ? _context.Pago.Where(p => p.Fecha >= fecha && p.Fecha < tomorrow && p.TipoPago == TipoPago.Principal).Select(x => x.Monto).Sum() : 0; double acumuladoInicial = (c1 + (vencidos == null?0: vencidos.Value)) + c2c3; //double acumuladoInicial = c1 + c2c3; txtAcumuladoInicial.Text = acumuladoInicial.ToString("N2"); double?montoEmpeñoDia = empeñosActivos.Where(x => !x.IsDelete && x.Fecha >= fecha && x.Fecha < tomorrow).ToList().Sum(x => x.Monto); txtMonto.Text = montoEmpeñoDia != null?montoEmpeñoDia.Value.ToString("N2") : "0.00"; double?montoInteresDia = _context.Empenos.Where(x => !x.IsDelete && (x.Estado == Estado.Vigente || x.Estado == Estado.Pendiente || x.Estado == Estado.Vencido || x.Estado == Estado.Cancelado)) .SelectMany(x => x.Pagos).Where(x => x.TipoPago == TipoPago.Interes && x.Fecha >= fecha && x.Fecha < tomorrow).ToList().Sum(x => x.Monto); double?montoInteresDia2 = _context.Intereses.Where(x => x.FechaPago >= fecha && x.FechaPago < tomorrow).ToList().Sum(x => x.MontoInteres); double?montoBodegaDia = _context.Intereses.Where(x => x.FechaPago >= fecha && x.FechaPago < tomorrow).ToList().Sum(x => x.MontoBodega); txtInteres.Text = montoInteresDia != null?montoInteresDia.Value.ToString("N2") : "0.00"; txtBodega.Text = montoBodegaDia != null?montoBodegaDia.Value.ToString("N2") : "0.00"; double?abonoDia = empeñosActivos .SelectMany(x => x.Pagos).Where(x => x.TipoPago == TipoPago.Principal && x.Fecha >= fecha && x.Fecha < tomorrow).ToList().Sum(x => x.Monto); txtAbonos.Text = abonoDia != null?abonoDia.Value.ToString("N2") : "0.00"; txtVencimientos.Text = vencidos != null?vencidos.Value.ToString("N2") : "0.00"; double?cancelados = _context.Empenos.Where(x => !x.IsDelete && (x.Estado == Estado.Cancelado || x.Retirado || x.FechaRetiro != null)) .SelectMany(x => x.Pagos).Where(x => x.TipoPago == TipoPago.Principal && x.Fecha >= fecha && x.Fecha < tomorrow).ToList().Sum(x => x.Monto); txtCancelados.Text = cancelados != null?cancelados.Value.ToString("N2") : "0.00"; txtAcumulado.Text = ((acumuladoInicial + montoEmpeñoDia) - (abonoDia + vencidos + cancelados)).Value.ToString("N2"); detalles.Clear(); detalles.Add( new DetalleCierreCaja { Concepto = "Empeños", Valor = montoEmpeñoDia != null ? montoEmpeñoDia.Value : 0 }); detalles.Add( new DetalleCierreCaja { Concepto = "Monto de Abonos", Valor = abonoDia != null ? abonoDia.Value : 0 }); detalles.Add( new DetalleCierreCaja { Concepto = "Intereses", Valor = montoInteresDia2 != null ? montoInteresDia2.Value : 0 }); detalles.Add( new DetalleCierreCaja { Concepto = "Bodega", Valor = montoBodegaDia != null ? montoBodegaDia.Value : 0 }); detalles.Add( new DetalleCierreCaja { Concepto = "Retiros", Valor = cancelados != null ? cancelados.Value : 0 }); detalles.Add( new DetalleCierreCaja { Concepto = "Vencidos", Valor = vencidos != null ? vencidos.Value : 0 }); detalles.Add( new DetalleCierreCaja { Concepto = "Acumulado", Valor = ((acumuladoInicial + montoEmpeñoDia) - (abonoDia + vencidos + cancelados)).Value }); LoadList(); }
public async Task Aceptar() { var perfil = await _context.User.Where(u => u.Codigo == txtPIN.Text).FirstOrDefaultAsync(); if (perfil == null) { MessageBox.Show("No tiene acceso al módulo " + Modulo, "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Warning); Program.Modulo = Modulo; Program.Acceso = false; return; } Program.PIN = txtPIN.Text; Program.Modulo = Modulo; Program.Acceso = false; Program.EmpleadoId = await funciones.GetEmpleadoIdByUser(perfil.Usuario); Program.PerfilId = perfil.PerfilId; if (perfil.Perfil.Nombre == "Administrador" || perfil.Perfil.Nombre == "SuperUsuario") { Program.Acceso = true; } switch (Modulo) { case "Configuración": if (perfil.Perfil.Nombre == "Administrador" || perfil.Perfil.Nombre == "Supervisor") { Program.Acceso = true; } break; case "Cierre Caja": if (perfil.Perfil.Nombre == "Empleado" || perfil.Perfil.Nombre == "Administrador" || perfil.Perfil.Nombre == "Supervisor") { Program.Acceso = true; } break; case "Arqueo": if (perfil.Perfil.Nombre == "Empleado" || perfil.Perfil.Nombre == "Administrador" || perfil.Perfil.Nombre == "Supervisor") { Program.Acceso = true; } break; case "Empeño": if (perfil.Perfil.Nombre == "Empleado" || perfil.Perfil.Nombre == "Administrador" || perfil.Perfil.Nombre == "Supervisor") { Program.Acceso = true; } break; case "Editar Empeño": if (perfil.Perfil.Nombre == "Administrador" || perfil.Perfil.Nombre == "Supervisor") { Program.Acceso = true; } break; case "Borrar Empeño": if (perfil.Perfil.Nombre == "Administrador" || perfil.Perfil.Nombre == "Supervisor") { Program.Acceso = true; } break; case "Borrar Pago": if (perfil.Perfil.Nombre == "Administrador" || perfil.Perfil.Nombre == "Supervisor") { Program.Acceso = true; } break; case "Editar Pago": if (perfil.Perfil.Nombre == "Administrador" || perfil.Perfil.Nombre == "Supervisor") { Program.Acceso = true; } break; case "Pago": if (perfil.Perfil.Nombre == "Empleado" || perfil.Perfil.Nombre == "Administrador" || perfil.Perfil.Nombre == "Supervisor") { Program.Acceso = true; } break; case "Empleado": if (perfil.Perfil.Nombre == "Administrador" || perfil.Perfil.Nombre == "Supervisor") { Program.Acceso = true; } break; default: Program.Acceso = false; break; } if (!Program.Acceso) { MessageBox.Show("No tiene acceso al módulo " + Modulo, "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Warning); Program.Modulo = Modulo; Program.Acceso = false; } this.Close(); }