Example #1
0
        private void BuscarSalidas(string tipo_busqueda, string texto_busqueda)
        {
            try
            {
                this.panelEnvios.Limpiar();
                string    fecha     = this.dateTimePicker1.Value.ToShortDateString();
                DataTable dtSalidas =
                    NVentas.BuscarVentas(tipo_busqueda, texto_busqueda, fecha, out string rpta);
                if (dtSalidas != null)
                {
                    this.panelEnvios.Enabled = true;
                    foreach (DataRow row in dtSalidas.Rows)
                    {
                        SalidaSmall salida = new SalidaSmall();
                        salida.AsignarDatos(new VentasEnvios(row));
                        this.panelEnvios.AddControl(salida);
                    }
                    this.panelEnvios.RefreshPanel(new SalidaSmall());
                }
                else
                {
                    if (!rpta.Equals("OK"))
                    {
                        throw new Exception(rpta);
                    }

                    this.panelEnvios.Enabled = false;
                }
            }
            catch (Exception ex)
            {
                Mensajes.MensajeErrorCompleto(this.Name, "BuscarSalidas",
                                              "Hubo un error al buscar las salidas", ex.Message);
            }
        }
        private async void LoadVentas(string tipo_busqueda, string texto_busqueda)
        {
            try
            {
                var(rpta, dtVentas) =
                    await NVentas.BuscarVentas(tipo_busqueda, texto_busqueda);

                this.VentasUsuario = new List <Ventas>();
                this.panelVentas.clearDataSource();

                if (dtVentas != null)
                {
                    this.gbVentas.Text = "Se encontraron " + dtVentas.Rows.Count + " ventas.";

                    List <UserControl> controls = new List <UserControl>();
                    foreach (DataRow row in dtVentas.Rows)
                    {
                        Ventas     ve         = new Ventas(row);
                        VentaSmall ventaSmall = new VentaSmall
                        {
                            Venta = ve,
                        };
                        ventaSmall.OnBtnNext += VentaSmall_OnBtnNext;
                        ventaSmall.OnBtnEdit += VentaSmall_OnBtnEdit;
                        this.VentasUsuario.Add(ve);
                        controls.Add(ventaSmall);
                    }
                    this.panelVentas.AddArrayControl(controls);
                }
                else
                {
                    this.gbVentas.Text = "No se encontraron ventas";

                    if (!rpta.Equals("OK"))
                    {
                        throw new Exception(rpta);
                    }
                }
            }
            catch (Exception ex)
            {
                Mensajes.MensajeErrorCompleto(this.Name, "LoadVentas",
                                              "Hubo un error al cargar las ventas", ex.Message);
            }
        }
        private async void BtnReporteClientes_Click(object sender, EventArgs e)
        {
            MensajeEspera.ShowWait("Cargando reporte...");
            DataTable dtClientes = new DataTable("Clientes");

            dtClientes.Columns.Add("Id_cliente", typeof(int));
            dtClientes.Columns.Add("Nombre_cliente", typeof(string));
            dtClientes.Columns.Add("Celular_cliente", typeof(string));
            dtClientes.Columns.Add("Referencia_articulo", typeof(string));
            dtClientes.Columns.Add("Saldo_restante", typeof(string));
            dtClientes.Columns.Add("Venta_total", typeof(string));
            dtClientes.Columns.Add("Fecha_venta", typeof(string));
            dtClientes.Columns.Add("Fecha_ultimo_pago", typeof(string));
            dtClientes.Columns.Add("Dias_mora", typeof(int));

            int            id_cliente          = 0;
            string         nombre_cliente      = string.Empty;
            string         celular_cliente     = string.Empty;
            string         referencia_articulo = string.Empty;
            decimal        saldo_restante      = 0;
            decimal        total_venta         = 0;
            DateTime       fecha_venta         = DateTime.Now;
            decimal        suma_ventas         = 0;
            decimal        suma_saldos         = 0;
            DateTime       fecha_ultimo_pago   = DateTime.Now;
            MainController main = MainController.GetInstance();

            var(rpta, dtVentas) =
                await NVentas.BuscarVentas("ID COBRO ACTIVO", main.Id_cobro.ToString());

            if (dtVentas != null)
            {
                foreach (DataRow row in dtVentas.Rows)
                {
                    Ventas venta = new Ventas(row);
                    id_cliente      = venta.Id_cliente;
                    nombre_cliente  = venta.Cliente.NombreCompleto;
                    celular_cliente = venta.Cliente.Celular;
                    total_venta     = venta.Total_venta;
                    fecha_venta     = venta.Fecha_venta;
                    suma_ventas    += venta.Total_venta;

                    //Buscar los agendamientos de cada venta para ver su saldo restante
                    var(rpta1, dtAgendamientos) = await NAgendamiento_cobros.BuscarAgendamientos("ID VENTA", venta.Id_venta.ToString());

                    if (dtAgendamientos != null)
                    {
                        Agendamiento_cobros ag = new Agendamiento_cobros(dtAgendamientos.Rows[0]);
                        saldo_restante    = ag.Saldo_restante;
                        suma_saldos      += ag.Saldo_restante;
                        fecha_ultimo_pago = ag.Fecha_cobro;
                    }

                    TimeSpan timeSpan  = DateTime.Now - fecha_ultimo_pago;
                    double   dias_mora = timeSpan.TotalDays;

                    DataRow newRow = dtClientes.NewRow();
                    newRow["Id_cliente"]          = id_cliente;
                    newRow["Nombre_cliente"]      = nombre_cliente;
                    newRow["Celular_cliente"]     = celular_cliente;
                    newRow["Referencia_articulo"] = referencia_articulo;
                    newRow["Saldo_restante"]      = saldo_restante.ToString("C");
                    newRow["Venta_total"]         = total_venta.ToString("C");
                    newRow["Fecha_venta"]         = fecha_venta.ToString("dd-MM-yyyy");
                    newRow["Fecha_ultimo_pago"]   = fecha_ultimo_pago.ToString("dd-MM-yyyy");
                    newRow["Dias_mora"]           = dias_mora;
                    dtClientes.Rows.Add(newRow);
                }

                if (dtClientes.Rows.Count > 0)
                {
                    MensajeEspera.CloseForm();
                    //Enviar informe
                    FrmReporteClientes frmReporteClientes = new FrmReporteClientes
                    {
                        WindowState  = FormWindowState.Maximized,
                        dtClientes   = dtClientes,
                        Total_saldos = suma_saldos.ToString("C"),
                        Total_ventas = suma_ventas.ToString("C"),
                    };
                    frmReporteClientes.Show();
                }
                else
                {
                    MensajeEspera.CloseForm();
                    Mensajes.MensajeInformacion("No se encontraron clientes", "Entendido");
                }
            }
            else
            {
                MensajeEspera.CloseForm();
                Mensajes.MensajeInformacion("No se encontraron clientes", "Entendido");
            }

            MensajeEspera.CloseForm();
        }
        private async void LoadReporteDiario(DateTime fecha)
        {
            MensajeEspera.ShowWait("Cargando reporte...");
            StringBuilder info = new StringBuilder();
            //Obtener el turno de esta fecha
            DataTable dtTurnos =
                NTurnos.BuscarTurnos("FECHA INICIO", fecha.ToString("yyyy-MM-dd"), out string rpta);

            if (dtTurnos != null)
            {
                Turnos turno = new Turnos(dtTurnos.Rows[0]);
                info.Append("Valor inicial en caja ").Append(turno.Valor_inicial.ToString("C")).Append(Environment.NewLine);
                info.Append("Se empezó con ").Append(turno.Clientes_iniciales).Append(" clientes y se terminó con ").Append(turno.Clientes_total).Append(Environment.NewLine);

                //Obtener los clientes nuevos
                var(rpta1, dtVentas) =
                    await NVentas.BuscarVentas("FECHA ID COBRO", fecha.ToString("yyyy-MM-dd"));

                if (dtVentas != null)
                {
                    info.Append("Clientes nuevos o renovados ").Append(dtVentas.Rows.Count).Append(Environment.NewLine);
                }
                else
                {
                    info.Append("No hubieron clientes nuevos o renovados ");
                }

                info.Append("Total de ventas y renovaciones ").Append(turno.Recaudo_ventas_nuevas.ToString("C")).Append(Environment.NewLine);
                info.Append("Recaudo pretendido ").Append(turno.Recaudo_pretendido_turno.ToString("C")).Append(Environment.NewLine);

                decimal porcentajeRecaudado = (turno.Recaudo_cuotas * 100) / turno.Recaudo_pretendido_turno;

                info.Append("Total recaudado ").Append(turno.Recaudo_cuotas.ToString("C")).Append(" (" + ((int)porcentajeRecaudado) + "%)").Append(Environment.NewLine);
                info.Append("Otros ingresos ").Append(turno.Recaudo_otros.ToString("C")).Append(Environment.NewLine);

                if (turno.Gastos_total == 0)
                {
                    info.Append("No hubieron gastos").Append(Environment.NewLine);
                }
                else
                {
                    info.Append("Gastos/Egresos ").Append(turno.Gastos_total.ToString("C")).Append(Environment.NewLine);
                }

                info.Append(Environment.NewLine);
                info.Append("CAJA FINAL ").Append(turno.Recaudo_real.ToString("C")).Append(Environment.NewLine);
                info.Append(Environment.NewLine);

                if (dtVentas != null)
                {
                    info.Append("Resumen de clientes nuevos o renovados").Append(Environment.NewLine);
                    foreach (DataRow row in dtVentas.Rows)
                    {
                        Ventas venta = new Ventas(row);
                        info.Append("* Nombre: ").Append(venta.Cliente.NombreCompleto).Append(" - Celular: ").Append(venta.Cliente.Celular).Append(Environment.NewLine);
                        info.Append("- Valor préstamo: ").Append(venta.Valor_venta.ToString("C")).Append(" - Plazo: ").Append(venta.Numero_cuotas).Append(Environment.NewLine);
                    }
                }

                DataTable dtGastos =
                    NGastos.BuscarGastos("FECHA ID COBRO", fecha.ToString("yyyy-MM-dd"), out rpta);
                if (dtGastos != null)
                {
                    info.Append(Environment.NewLine);
                    info.Append("Resumen de gastos o egresos").Append(Environment.NewLine);
                    foreach (DataRow row in dtGastos.Rows)
                    {
                        Gastos gasto = new Gastos(row);
                        info.Append("* " + gasto.Tipo_gasto.Nombre_tipo_gasto + " - ").Append(" - Observaciones: ").Append(gasto.Observaciones_gasto);
                        info.Append(" - Valor: ").Append(gasto.Valor_gasto.ToString("C")).Append(Environment.NewLine);
                    }
                }

                FrmReporteDiario frmReporteDiario = new FrmReporteDiario
                {
                    FormBorderStyle  = FormBorderStyle.None,
                    TopMost          = false,
                    TopLevel         = false,
                    Dock             = DockStyle.Fill,
                    InformacionTurno = info.ToString(),
                    FechaHoraReporte = "Fecha y hora de generación: " + DateTime.Now.ToLongDateString(),
                    FechaHoraTurno   = "Fecha y hora de turno: " + turno.Fecha_inicio_turno.ToLongDateString(),
                };

                if (this.gbResultados.Controls.Count > 0)
                {
                    this.gbResultados.Controls.Clear();
                }

                this.gbResultados.Controls.Add(frmReporteDiario);
                frmReporteDiario.Show();
            }
            else
            {
                MensajeEspera.CloseForm();
                info.Append("No se encontró el turno");
                Mensajes.MensajeInformacion("No se encontró el turno, o bien, se encuentra cerrado en la fecha seleccionada", "Entendido");
            }
            MensajeEspera.CloseForm();
        }