예제 #1
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                if (!funciones.ValidatePIN("Editar Empeño"))
                {
                    return;
                }


                if (configuracionId == 0)
                {
                    var configuracion = new Configuracion
                    {
                        ConfiguracionId   = configuracionId,
                        Identificacion    = txtIdentificacion.Text,
                        Meses             = int.Parse(txtMeses.Text),
                        Compañia          = txtCompania.Text,
                        Nombre            = txtNombre.Text,
                        Telefono          = txtTelefono.Text,
                        Email             = txtEmail.Text,
                        Password          = txtPassword.Text,
                        Puerto            = int.Parse(!string.IsNullOrEmpty(txtPuerto.Text)?txtPuerto.Text:"0"),
                        SMTP              = txtSMTP.Text,
                        SSL               = chkSSL.Checked,
                        Direccion         = txtDirección.Text,
                        EmailNotification = txtEmailAdmin.Text
                    };

                    _context.Configuraciones.Add(configuracion);
                }
                else
                {
                    var configuracion = _context.Configuraciones.Find(configuracionId);

                    configuracion.Identificacion    = txtIdentificacion.Text;
                    configuracion.Meses             = int.Parse(txtMeses.Text);
                    configuracion.Nombre            = txtNombre.Text;
                    configuracion.Compañia          = txtCompania.Text;
                    configuracion.Telefono          = txtTelefono.Text;
                    configuracion.Email             = txtEmail.Text;
                    configuracion.Password          = txtPassword.Text;
                    configuracion.Puerto            = int.Parse(!string.IsNullOrEmpty(txtPuerto.Text) ? txtPuerto.Text : "0");
                    configuracion.SMTP              = txtSMTP.Text;
                    configuracion.SSL               = chkSSL.Checked;
                    configuracion.Direccion         = txtDirección.Text;
                    configuracion.EmailNotification = txtEmailAdmin.Text;

                    _context.Entry(configuracion).State = EntityState.Modified;
                }
                _context.SaveChanges();
                MessageBox.Show("Datos guardados correctamente", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #2
0
        private async void btnGuardarCierreCaja_Click(object sender, EventArgs e)
        {
            if (!funciones.ValidatePIN("Empeño"))
            {
                return;
            }

            var fecha = DateTime.ParseExact(txtFecha.Text, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);

            var cierreCaja = new CierreCaja
            {
                Fecha        = fecha,
                EmpleadoId   = Program.EmpleadoId,
                SaldoInicial = double.Parse(textBox1.Text),
                IsDelete     = false,
            };

            _context.CierreCajas.Add(cierreCaja);
            await _context.SaveChangesAsync();

            detalles.ForEach(d => d.CierreCajaId = cierreCaja.CierreCajaId);
            _context.DetalleCierreCajas.AddRange(detalles);
            await _context.SaveChangesAsync();

            MessageBox.Show("Cierre de caja realizado correctamente!!!", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);

            Print(cierreCaja);

            var configuracion = _context.Configuraciones.FirstOrDefault();

            if (!string.IsNullOrEmpty(configuracion.EmailNotification))
            {
                EmailFuncion emailFuncion = new EmailFuncion();
                var          empleado     = await _context.Empleados.FindAsync(Program.EmpleadoId);

                string str = "Se ha realizado el cierre de caja al ser el <b>" + cierreCaja.Fecha.ToLongDateString() + " " + cierreCaja.Fecha.ToLongTimeString() + "</b> por <b>" + empleado.Nombre + "</b>. <br /><br />";
                await emailFuncion.SendMail(configuracion.EmailNotification, "Cierre de Caja " + cierreCaja.Fecha, str, detalles);
            }
            //printDocument1.Print();
            // MessageBox.Show("Imprimiendo...");
        }
예제 #3
0
        private async void btnGuardarCierreCaja_Click(object sender, EventArgs e)
        {
            if (!funciones.ValidatePIN("Editar Empeño"))
            {
                return;
            }

            var resp = MessageBox.Show("Está seguro que desea enviar el arqueo y sus observaciones al administrador del negocio", "Confirmar", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (resp == DialogResult.Yes)
            {
                var str = "<table><tr><td></td><td>Cantidad</td><td>Valor</td></tr>";
                str += "<tr><td>Total General</td><td> " + lblTotalPrincipal.Text + " </td><td> " + txtTotalPrincipal.Text + " </td></tr>";
                str += "<tr><td>Total Vigente</td><td> " + lblTotalAlDia.Text + " </td><td> " + txtTotalAlDia.Text + " </td></tr>";
                str += "<tr><td>Total Vencidos</td><td> " + lblTotalVencidos.Text + " </td><td> " + txtTotalVencido.Text + " </td></tr>";
                str += "<tr><td>Total Prorrogra</td><td> " + lblTotalProrroga.Text + " </td><td> " + txtTotalProrroga.Text + " </td></tr>";
                str += "</table>";
                await emailFuncion.SendMailArqueo(configuracion.EmailNotification, "Arqueo realizado en la sucursal " + configuracion.Compañia, "Arqueo realizado en la sucursal de Empeños " + configuracion.Compañia + " en " + configuracion.Direccion
                                                  + "<br /> <h3>Observaciones</h3> " + txtObservaciones.Text, dgvDetalles, str);

                MessageBox.Show("Mensaje enviado correctamente", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #4
0
        private void mnuArqueo_Click(object sender, EventArgs e)
        {
            if (!funciones.ValidatePIN("Empeño"))
            {
                return;
            }

            ActivateButton(sender, RGBColors.color2);
            OpenChildForm(new frmArqueo());
        }
예제 #5
0
        private async void btnImprimir_Click(object sender, EventArgs e)
        {
            if (!funciones.ValidatePIN("Editar Empeño"))
            {
                return;
            }


            if (intereses.Empeno.InteresId != await funciones.GetInteresIdByNombre(cbInteres.Text) && Program.PerfilId != 4)
            {
                intereses.Empeno.InteresId = await funciones.GetInteresIdByNombre(cbInteres.Text);

                if (intereses.Empeno.Intereses.Count() == 1)
                {
                    var interes = intereses.Empeno.Intereses.FirstOrDefault();
                    if (interes.Pagado == 0)
                    {
                        var porcentaje = await _context.Interes.FindAsync(intereses.Empeno.InteresId);

                        interes.Monto = intereses.Empeno.Monto * ((double)porcentaje.Porcentaje / (double)100);
                        _context.Entry(interes).State = EntityState.Modified;
                    }
                }
            }
            else
            {
                intereses.Monto = double.Parse(txtMonto.Text);
            }

            intereses.Pagado           = double.Parse(txtPagado.Text);
            intereses.FechaCreacion    = dtFecha.Value;
            intereses.FechaVencimiento = dtVence.Value;

            _context.Entry(intereses).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            this.Close();
        }
예제 #6
0
        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();
        }