Exemple #1
0
        private void btnAbonar_Click(object sender, EventArgs e)
        {
            try
            {
                if (Convert.ToDouble(txtDevuelta.Text) >= 0 && txtAbonar.Text != "0")                            //comprueba que devuelta sea mayor o igual a cero y que se haya introducido un monto a pagar
                {
                    using (TransactionScope transact = new TransactionScope())                                   //uso de una transaccion por si algo falla
                    {
                        PagoDeudaTableAdapter adapterDeu = new PagoDeudaTableAdapter();                          //objeto para usar los querys de tblPagoDeuda
                        int     idCliente = Convert.ToInt32(txtId.Text);                                         //se almacena el id del cliente en una variable int
                        decimal abono     = Convert.ToDecimal(txtAbonar.Text);                                   //se almacena la cantidad a abonar en una variable decimal
                        adapterDeu.InsertarPD(idCliente, usuario.Id, DateTime.Now, MontoDebe, abono);            //se inserta en tblPagoDeuda el cliente que realizó el pago, el usuario que lo atendió, la fecha, el monto que debía y el monto abonado
                        adapterCli.ActualizarMontoC(idCliente, MontoDebe - abono);                               //se actualiza el monto que debe el cliente

                        foreach (DataGridViewRow fila in dgvFacturas.Rows)                                       //recorre cada fila del datagridview facturas
                        {
                            if (abono > 0)                                                                       //si la cantidad a abonar es mayor a 0
                            {
                                decimal deuda     = Convert.ToDecimal(fila.Cells["clmAPagar"].Value.ToString()); //se almacena el valor de la deuda de la factura
                                decimal pagado    = Convert.ToDecimal(fila.Cells["clmPagado"].Value.ToString()); //se almacena el valor que se ha pagado de la factura
                                int     idFactura = Convert.ToInt32(fila.Cells["IdFactura"].Value.ToString());   //se almacena el id de la factura

                                if (abono >= deuda)                                                              //si la cantidad a abonar es mayor o igual a la cantidad que se tiene de deuda de la factura
                                {
                                    adapterFac.ActualizarPagoDeFac(deuda + pagado, idFactura, idCliente);        //se actualiza el pago de la factura a lo mismo que se tenia que pagar

                                    abono -= deuda;                                                              //resta la cantidad que se pagó de esa factura a la cantidad a abonar
                                }
                                else//si abono es menor a la deuda
                                {
                                    adapterFac.ActualizarPagoDeFac(pagado + abono, idFactura, idCliente); //se actualiza el pago de la factura agregando la cantidad a abonar restante
                                    abono = 0;                                                            //cantidad a abonar se queda en 0
                                }
                            }
                            else//si no hay mas que abonar
                            {
                                break;//se sale del recorrido de filass
                            }
                        }

                        MessageBox.Show($"Abonado: RD$ {txtAbonar.Text} al cliente {cboNombre.Text}", "Pago de deuda", MessageBoxButtons.OK, MessageBoxIcon.Information);                               //notifica al usuario que se abonó al cliente por un mensaje
                        log.Info($"El cliente con el id {idCliente} pagó un monto de {txtAbonar.Text} de una deuda total de {MontoDebe} atendido por el usuario {usuario.Nombre} {usuario.Apellidos}"); //registra que se realizó un pago de deuda al cliente
                        _menu.CargarDashboard();
                        LimpiarTodo();                                                                                                                                                                  //se limpia todo
                        transact.Complete();                                                                                                                                                            //indica que se completó la transaccion
                    }
                }
                else//si el dinero ingresado para pagar no es el suficiente
                {
                    MessageBox.Show("Dinero pagado insuficiente", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);//notifica al usuario que la cantidad que ingresó para pagar no es la suficiente
                    txtPagado.Focus();//hace focus en el textbox pagado
                }
            }
            catch (Exception error)
            {
                log.Error($"Error: {error.Message}", error);
                MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemple #2
0
        private void ReporteDelDia_Load(object sender, EventArgs e)
        {
            try
            {
                lblReporteDelDia.Text += $": {DateTime.Today.ToString("dd/MM/yyyy")}";                                                                                                         //se coloca en el label reportedeldia el dia que tiene el sistema
                lblFechaPequena.Text   = $"{DateTime.Today.ToString("dddd")}, {DateTime.Today.ToString("dd")} de {DateTime.Today.ToString("MMMM")} del año {DateTime.Today.ToString("yyyy")}"; //coloca de forma extendida en la fecha que tiene el sistema
                FacturasCajTableAdapter adapterFac = new FacturasCajTableAdapter();                                                                                                            //objeto para utilizar querys de tblFactura relacionada con tblUsuario y tblCliente
                FacturasCajDataTable    dataFac    = adapterFac.BuscarFacConCajeroHoy(DateTime.Today);                                                                                         //objeto para almacenar las facturas hechas hoy

                decimal totalVentas = 0, totalDeuda = 0, totalPagado = 0;
                ushort  contDeudas = 0;

                foreach (FacturasCajRow facturas in dataFac)                                                   //se recorre cada factura de hoy
                {
                    DetalleProTableAdapter adapterDet = new DetalleProTableAdapter();                          //objeto para utilizar los querys de tblFacturaD
                    DetalleProDataTable    dataDet    = adapterDet.DetallePorIdFacConProd(facturas.IdFactura); //objeto almacenar el detalle de las facturas

                    foreach (DetalleProRow detalles in dataDet)                                                //objeto para recorrer cada detalle de la factura
                    {
                        decimal itbis = detalles.ITBIS;                                                        //se almacena el itbis
                        // double ITBIS = Convert.ToDouble(detalles.Precio * detalles.Cantidad) * 0.18;//calcula y almacena el itbis
                        //ITBIS = Math.Round(ITBIS, 2);//redondea el itbis
                        decimal importe = detalles.Precio * detalles.Cantidad + itbis;                                                                                                                //se calcula el importe
                        importe = Math.Round(importe, 2);                                                                                                                                             //se redondea hacia arriba el importe con dos decimales

                        dgvDetalles.Rows.Add(facturas.Cajero, facturas.IdFactura, detalles.Descripcion, detalles.Precio, detalles.Cantidad, itbis, detalles.Descuento, importe - detalles.Descuento); //se ingresa cada detalle en el dgvDetalles
                    }

                    totalVentas += facturas.TotalGeneral;                                                                  //almacena el valor de total de cada factura y se va sumando al total de ventas del dia

                    if (facturas.Pago < facturas.TotalGeneral)                                                             //si la cantidad pagada es menor que el total de la factura (si no se ha terminado de pagar la factura)
                    {
                        decimal deudaHoy = facturas.Pago - facturas.TotalGeneral;                                          //se almacena la cantidad por pagar
                        deudaHoy *= -1;                                                                                    //se pone positiva el valor de la deuda

                        dgvDeudas.Rows.Add(facturas.Cajero, facturas.NomCliente, deudaHoy.ToString(), facturas.MontoDebe); //se añade la factura en el datagridview de deudas
                        totalDeuda += deudaHoy;                                                                            //se suma el valor de la deuda al total de deudas del dia
                        contDeudas++;                                                                                      //se suma uno a la cantidad de deudas
                    }
                }

                PagoDeudaTableAdapter adapterPaD = new PagoDeudaTableAdapter();                                //objeto para utilizar los querys de tblPagoDeuda
                PagoDeudaDataTable    dataPaD    = adapterPaD.BuscarHoyPD(DateTime.Today);                     //se buscan los pagos que se pagaron de deuda

                foreach (PagoDeudaRow item in dataPaD)                                                         //recorre cada pago de deuda
                {
                    dgvPagoDeudas.Rows.Add(item.NomCliente, item.DeudaAnterior, item.Abono, item.DeudaActual); //se inserta la deuda en el datagridview pagodeudas
                    totalPagado += item.Abono;                                                                 //se suma al total pagado la cantidad que se abonó en este pago de deuda
                }

                txtTotalVentas.Text = totalVentas.ToString();                //se coloca el el total que se generaron de ventas en el textbox ventas
                txtDeudas.Text      = totalDeuda.ToString();                 //se coloca el total de deudas generadas en el textbox deudas
                txtAbonos.Text      = totalPagado.ToString();                //se coloca el total abonado en el textbox total abonado
                txtNumVentas.Text   = dataFac.Rows.Count.ToString();         //se coloca el numero de ventas en el textbox numventas
                txtNumDeudas.Text   = contDeudas.ToString();                 //se coloca el numero de deudas en el textbox numdeudas
                txtNumAbonos.Text   = dataPaD.Rows.Count.ToString();         //se coloca el numero de pago de deudas en el textbox numabonos
                txtTotal.Text       = (totalVentas - totalDeuda).ToString(); //se coloca el total generado del dia en el textbox total
            }
            catch (Exception error)
            {
                log.Error($"Error: {error.Message}", error);
                MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemple #3
0
        private void GenerarReporte(DateTime FechaInicio, DateTime FechaFin)
        {
            try
            {
                FacturasCajTableAdapter adapterFac = new FacturasCajTableAdapter();
                FacturasCajDataTable    dataFac    = adapterFac.BuscarFacConCajEntreFechas(FechaInicio, fechaFin);

                decimal totalVentas = 0, totalDeuda = 0, totalPagado = 0;
                ushort  contDeudas = 0;

                foreach (FacturasCajRow facturas in dataFac)
                {
                    DetalleProTableAdapter adapterDet = new DetalleProTableAdapter();
                    DetalleProDataTable    dataDet    = adapterDet.DetallePorIdFacConProd(facturas.IdFactura);

                    foreach (DetalleProRow detalles in dataDet)
                    {
                        double ITBIS = Convert.ToDouble(detalles.Precio * detalles.Cantidad) * 0.18;
                        ITBIS = Math.Round(ITBIS, 2);
                        double importe = Convert.ToDouble(detalles.Precio * detalles.Cantidad) + ITBIS;
                        importe = Math.Round(importe, 2);

                        dgvDetalles.Rows.Add(facturas.Cajero, facturas.IdFactura, detalles.Descripcion, detalles.Precio, detalles.Cantidad, ITBIS, detalles.Descuento, importe - Convert.ToDouble(detalles.Descuento));
                    }

                    totalVentas += facturas.TotalGeneral;

                    if (facturas.Pago < facturas.TotalGeneral)
                    {
                        decimal deudaHoy = facturas.Pago - facturas.TotalGeneral;
                        deudaHoy *= -1;

                        dgvDeudas.Rows.Add(facturas.Cajero, facturas.NomCliente, deudaHoy.ToString(), facturas.MontoDebe);
                        totalDeuda += deudaHoy;
                        contDeudas++;
                    }
                }

                PagoDeudaTableAdapter adapterPaD = new PagoDeudaTableAdapter();
                PagoDeudaDataTable    dataPaD    = adapterPaD.BuscarEntreFechasPD(FechaInicio, fechaFin);

                foreach (PagoDeudaRow item in dataPaD)
                {
                    dgvPagoDeudas.Rows.Add(item.NomCliente, item.DeudaAnterior, item.Abono, item.DeudaActual);
                    totalPagado += (decimal)item.Abono;
                }

                txtTotalVentas.Text = totalVentas.ToString();
                txtDeudas.Text      = totalDeuda.ToString();
                txtAbonos.Text      = totalPagado.ToString();
                txtNumVentas.Text   = dataFac.Rows.Count.ToString();
                txtNumDeudas.Text   = contDeudas.ToString();
                txtNumAbonos.Text   = dataPaD.Rows.Count.ToString();
                txtTotal.Text       = (totalVentas - totalDeuda).ToString();
            }
            catch (Exception error)
            {
                log.Error($"Error: {error.Message}", error);
                MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }