Example #1
0
        private void tsbNuevo_Click(object sender, EventArgs e)
        {
            ordenVenta = null;

            dgvVenta.AutoGenerateColumns = false;

            txtNumeroIdentificacion.Clear();
            txtNumeroIdentificacion.ReadOnly = true;
            txtNumeroFactura.Clear();
            txtNumeroFactura.ReadOnly = true;
            txtFechaFactura.Clear();
            txtFechaFactura.ReadOnly = true;
            txtCliente.Clear();
            txtCliente.ReadOnly = true;
            txtDireccion.Clear();
            txtDireccion.ReadOnly = true;
            txtConvencional.Clear();
            txtConvencional.ReadOnly = true;
            txtCelular.Clear();
            txtCelular.ReadOnly = true;

            dgvVenta.DataSource = new List <tbOrdenVentaDetalle>();

            txtComentarios.Clear();

            txtSubtotal.Text  = Util.FormatoMoneda(0, 2);
            txtIVA.Text       = Util.FormatoMoneda(0, 2);
            txtTotalNeto.Text = Util.FormatoMoneda(0, 2);

            txtNumeroIdentificacion.Select();
        }
Example #2
0
 private void dgvOrdenVentaCabecera_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.RowIndex >= 0 && devoluciones)
     {
         ordenVenta        = (tbOrdenVentaCabecera)dgvOrdenVentaCabecera.CurrentRow.DataBoundItem;
         this.DialogResult = System.Windows.Forms.DialogResult.OK;
     }
 }
Example #3
0
        private void dgvOrdenVentaCabecera_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                if (tipoOrdenVenta == "C")
                {
                    tbOrdenVentaCabecera ordenVenta = (tbOrdenVentaCabecera)dgvOrdenVentaCabecera.CurrentRow.DataBoundItem;
                    long idOrdenVenta       = ordenVenta.idOrdenVentaCabecera;
                    int  idEstadoOrdenVenta = ordenVenta.idEstadoOrdenVenta;

                    if (idEstadoOrdenVenta == 3)
                    {
                        MessageBox.Show("Cotización ya no puede ser modificada porque se convirtió en una orden de venta", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        frmOrdenVenta _frmOrdenVenta = new frmOrdenVenta("C", tipoVenta, "2");
                        _frmOrdenVenta.Text         = (tipoVenta == "N" ? "Cotización" : "Egreso de pedidos outsoursing");
                        _frmOrdenVenta.idOrdenVenta = idOrdenVenta;
                        if (_frmOrdenVenta.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            ordenVenta = (from OV in _dbCosolemEntities.tbOrdenVentaCabecera where OV.idOrdenVentaCabecera == idOrdenVenta select OV).FirstOrDefault();

                            tbSeguimientoCotizacionCabecera seguimientoCotizacion = ordenVenta.tbSeguimientoCotizacionCabecera.FirstOrDefault();
                            seguimientoCotizacion.idEstadoSeguimientoCotizacion = 1;
                            seguimientoCotizacion.fechaHoraUltimaModificacion   = Program.fechaHora;
                            seguimientoCotizacion.idUsuarioUltimaModificacion   = idUsuario;
                            seguimientoCotizacion.terminalUltimaModificacion    = Program.terminal;
                            seguimientoCotizacion.tbSeguimientoCotizacionDetalle.Add(new tbSeguimientoCotizacionDetalle {
                                comentarioSeguimiento = "Cotización " + idOrdenVenta.ToString() + " modificada", estadoRegistro = true, fechaHoraIngreso = Program.fechaHora, idUsuarioIngreso = idUsuario, terminalIngreso = Program.terminal
                            });

                            _dbCosolemEntities.SaveChanges();

                            tsbBuscar_Click(null, null);
                        }
                    }
                }
            }
        }
Example #4
0
        private void frmReporteCotizacion_Load(object sender, EventArgs e)
        {
            _dbCosolemEntities = new dbCosolemEntities();

            tbOrdenVentaCabecera ordenVenta     = (from OVC in _dbCosolemEntities.tbOrdenVentaCabecera where OVC.tipoOrdenVenta == "C" && OVC.idEstadoOrdenVenta == 2 && OVC.estadoRegistro && OVC.idOrdenVentaCabecera == idCotizacion select OVC).FirstOrDefault();
            List <rptCotizacion> _rptCotizacion = new List <rptCotizacion>();

            ordenVenta.tbOrdenVentaDetalle.Where(x => x.estadoRegistro).ToList().ForEach(y =>
            {
                rptCotizacion cotizacion        = new rptCotizacion();
                cotizacion.idOrdenVentaCabecera = ordenVenta.idOrdenVentaCabecera;
                cotizacion.fecha                = ordenVenta.fechaHoraOrdenVenta.ToString("dd/MM/yyyy");
                cotizacion.hora                 = ordenVenta.fechaHoraOrdenVenta.ToString("HH:mm:ss");
                cotizacion.usuario              = edmCosolemFunctions.getNombreUsuario(y.idUsuarioIngreso);
                cotizacion.tipoIdentificacion   = ordenVenta.tipoIdentificacion.ToUpper();
                cotizacion.numeroIdentificacion = ordenVenta.numeroIdentificacion;
                cotizacion.formaPago            = ordenVenta.tbFormaPago.descripcion + (ordenVenta.idFormaPago == 1 ? "" : " - " + ordenVenta.tbProductoFinancieroCabecera.descripcion);
                cotizacion.cliente              = ordenVenta.cliente;
                cotizacion.direccion            = ordenVenta.direccion;
                cotizacion.referencia           = ordenVenta.referenciaEntregaDomicilio;
                cotizacion.telefonos            = String.Join(", ", new List <string> {
                    ordenVenta.convencional, ordenVenta.celular
                });
                cotizacion.producto      = y.tbProducto.descripcion;
                cotizacion.precio        = y.precio;
                cotizacion.cantidad      = y.cantidad;
                cotizacion.subTotal      = y.subTotal;
                cotizacion.descuento     = y.descuento;
                cotizacion.subTotalBruto = y.subTotalBruto;
                cotizacion.etiquetaIVA   = "IVA " + (y.porcentajeIVA / 100M).ToString("p0");
                cotizacion.IVA           = y.IVA;
                cotizacion.totalNeto     = y.totalNeto;
                _rptCotizacion.Add(cotizacion);
            });
            rvwCotizacion.LocalReport.DisplayName = "Cotización_" + idCotizacion.ToString() + "_" + usuario + "_" + Program.fechaHora.ToString("ddMMyyyy_HHmmss");
            rvwCotizacion.LocalReport.DataSources.Clear();
            rvwCotizacion.LocalReport.ReportPath = Application.StartupPath + "\\Reportes\\Ventas\\rptCotizacion.rdlc";
            rvwCotizacion.LocalReport.DataSources.Add(new ReportDataSource("dtsCotizacion", _rptCotizacion));
            rvwCotizacion.RefreshReport();
        }
Example #5
0
        private void tsbBuscar_Click(object sender, EventArgs e)
        {
            frmBusquedaFactura busquedaFactura = new frmBusquedaFactura("false", "true");

            busquedaFactura.Text = "Búsqueda de facturas a 8 días atrás";
            if (busquedaFactura.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                ordenVenta = busquedaFactura.ordenVenta;

                txtNumeroIdentificacion.Text = ordenVenta.numeroIdentificacion;
                txtNumeroFactura.Text        = ordenVenta.numeroFactura.ToString();
                txtFechaFactura.Text         = ordenVenta.fechaHoraFactura.Value.ToString("dd/MM/yyyy - HH:mm:ss");
                txtCliente.Text      = ordenVenta.cliente;
                txtDireccion.Text    = ordenVenta.direccion;
                txtConvencional.Text = ordenVenta.convencional;
                txtCelular.Text      = ordenVenta.celular;

                ordenVenta.tbOrdenVentaDetalle.Where(x => x.estadoRegistro).ToList().ForEach(y =>
                {
                    y.codigoProducto               = y.tbProducto.codigoProducto;
                    y.descripcionProducto          = y.tbProducto.codigoProducto + " - " + y.tbProducto.descripcion;
                    string descripcionBodegaSalida = string.Empty;
                    if (y.tbProducto.tbTipoProducto.esInventariable)
                    {
                        descripcionBodegaSalida = y.idBodega + " - " + y.tbBodega.descripcion;
                    }
                    y.descripcionBodegaSalida  = descripcionBodegaSalida;
                    y.idBodegaEntrada          = 0;
                    y.descripcionBodegaEntrada = string.Empty;
                    y.precio = (ordenVenta.idFormaPago == 1 ? (ordenVenta.tipoVenta == "N" ? y.precioOferta : y.costo) : y.precioVentaPublico);
                });

                dgvVenta.DataSource = ordenVenta.tbOrdenVentaDetalle.Where(x => x.estadoRegistro).ToList();

                txtSubtotal.Text  = Util.FormatoMoneda(ordenVenta.subTotalBruto, 2);
                txtIVA.Text       = Util.FormatoMoneda(ordenVenta.IVA, 2);
                txtTotalNeto.Text = Util.FormatoMoneda(ordenVenta.totalNeto, 2);
            }
        }
Example #6
0
 private void dgvOrdenVentaCabecera_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.RowIndex >= 0)
     {
         tbOrdenVentaCabecera ordenVenta = (tbOrdenVentaCabecera)dgvOrdenVentaCabecera.CurrentRow.DataBoundItem;
         dgvOrdenVentaDetalle.DataSource = new List <tbOrdenVentaDetalle>((ordenVenta).tbOrdenVentaDetalle).Where(x => x.estadoRegistro).Select(y => new
         {
             producto      = y.tbProducto.codigoProducto + " - " + y.tbProducto.descripcion,
             bodega        = (y.idBodega.HasValue ? y.idBodega.ToString() + " - " + y.tbBodega.descripcion : String.Empty),
             precio        = (ordenVenta.idFormaPago == 1 ? (ordenVenta.tipoVenta == "N" ? y.precioOferta : y.costo) : y.precioVentaPublico),
             cantidad      = y.cantidad,
             subTotalBruto = y.subTotalBruto,
             IVA           = y.IVA,
             totalNeto     = y.totalNeto
         }).ToList();
         dgvOrdenVentaFormaPago.DataSource = new List <tbOrdenVentaFormaPago>((ordenVenta).tbOrdenVentaFormaPago).Select(x => new
         {
             descripcionFormaPago = x.tbFormaPago.descripcion,
             valor = x.valor
         }).ToList();
     }
 }
Example #7
0
        private void dgvOrdenVentaCabecera_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                tbOrdenVentaCabecera ordenVenta = (tbOrdenVentaCabecera)dgvOrdenVentaCabecera.CurrentRow.DataBoundItem;
                long idOrdenVenta       = ordenVenta.idOrdenVentaCabecera;
                int  idEstadoOrdenVenta = ordenVenta.idEstadoOrdenVenta;
                if (!new List <int> {
                    dccSeleccionado.Index, dicComentarios.Index, dicHacerOrdenVenta.Index, dicFacturar.Index, dicImprimir.Index
                }.Contains(e.ColumnIndex))
                {
                    dgvOrdenVentaDetalle.DataSource = new List <tbOrdenVentaDetalle>((ordenVenta).tbOrdenVentaDetalle).Where(x => x.estadoRegistro).Select(y => new
                    {
                        producto = y.tbProducto.codigoProducto + " - " + y.tbProducto.descripcion,
                        bodega   = (y.idBodega.HasValue ? y.tbBodega.tbTienda.descripcion + " - " + y.tbBodega.descripcion : String.Empty),
                        precio   = (ordenVenta.tipoVenta == "N" ? y.precioInformativo : y.costo),
                        cantidad = y.cantidad,
                        total    = y.subTotal
                    }).ToList();
                }
                if (e.ColumnIndex == dicComentarios.Index)
                {
                    frmSeguimientoCotizacion _frmSeguimientoCotizacion = new frmSeguimientoCotizacion(idOrdenVenta, idEstadoOrdenVenta);
                    _frmSeguimientoCotizacion.Text = "Seguimiento de cotización " + " " + idOrdenVenta.ToString();
                    if (_frmSeguimientoCotizacion.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        tsbBuscar_Click(null, null);
                    }
                }
                if (e.ColumnIndex == dicHacerOrdenVenta.Index)
                {
                    if (idEstadoOrdenVenta == 3)
                    {
                        MessageBox.Show("Cotización ya no se puede volver a convertirse en orden de venta", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        frmOrdenVenta _frmOrdenVenta = new frmOrdenVenta("O", tipoVenta, "1");
                        _frmOrdenVenta.Text         = (tipoVenta == "N" ? "Orden de venta" : "Orden de venta outsoursing");
                        _frmOrdenVenta.idOrdenVenta = idOrdenVenta;
                        if (_frmOrdenVenta.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            ordenVenta = (from OV in _dbCosolemEntities.tbOrdenVentaCabecera where OV.idOrdenVentaCabecera == idOrdenVenta select OV).FirstOrDefault();
                            ordenVenta.idEstadoOrdenVenta          = 3;
                            ordenVenta.fechaHoraUltimaModificacion = Program.fechaHora;
                            ordenVenta.idUsuarioUltimaModificacion = idUsuario;
                            ordenVenta.terminalUltimaModificacion  = Program.terminal;

                            tbSeguimientoCotizacionCabecera seguimientoCotizacion = ordenVenta.tbSeguimientoCotizacionCabecera.FirstOrDefault();
                            seguimientoCotizacion.idEstadoSeguimientoCotizacion = 2;
                            seguimientoCotizacion.fechaHoraUltimaModificacion   = Program.fechaHora;
                            seguimientoCotizacion.idUsuarioUltimaModificacion   = idUsuario;
                            seguimientoCotizacion.terminalUltimaModificacion    = Program.terminal;
                            seguimientoCotizacion.tbSeguimientoCotizacionDetalle.Add(new tbSeguimientoCotizacionDetalle {
                                comentarioSeguimiento = "Cotización " + idOrdenVenta.ToString() + " es una orden de venta", estadoRegistro = true, fechaHoraIngreso = Program.fechaHora, idUsuarioIngreso = idUsuario, terminalIngreso = Program.terminal
                            });

                            _dbCosolemEntities.SaveChanges();

                            tsbBuscar_Click(null, null);
                        }
                    }
                }
                if (e.ColumnIndex == dicFacturar.Index)
                {
                    frmCaja _frmCaja = new frmCaja(idOrdenVenta);
                    _frmCaja.Text = this.Text + " " + idOrdenVenta.ToString();
                    if (_frmCaja.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        tsbBuscar_Click(null, null);
                    }
                }
                if (e.ColumnIndex == dicImprimir.Index)
                {
                    if (idEstadoOrdenVenta == 3)
                    {
                        MessageBox.Show("Cotización ya no se puede imprimir porque se convirtió en orden de venta", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        new frmReporteCotizacion(idOrdenVenta).ShowDialog();
                    }
                }
            }
        }
Example #8
0
        private void tsbGrabar_Click(object sender, EventArgs e)
        {
            List <tbOrdenVentaDetalle> ordenVentaDetalle = new List <tbOrdenVentaDetalle>();

            if (ordenVenta != null)
            {
                ordenVentaDetalle = ordenVenta.tbOrdenVentaDetalle.Where(x => x.estadoRegistro && x.tbProducto.tbTipoProducto.esInventariable).ToList();
            }

            if (ordenVenta == null)
            {
                MessageBox.Show("Seleccione una factura para poder realizar la devolución", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (ordenVentaDetalle.Where(x => x.idBodegaEntrada != 0).Count() < ordenVentaDetalle.Count)
            {
                MessageBox.Show("Seleccione una bodega en los productos que va a devolver", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (String.IsNullOrEmpty(txtComentarios.Text.Trim()))
            {
                MessageBox.Show("Ingrese un comentario para poder realizar la devolución", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                long idOrdenVentaCabecera = ordenVenta.idOrdenVentaCabecera;

                ordenVenta = (from OVC in _dbCosolemEntities.tbOrdenVentaCabecera where OVC.idOrdenVentaCabecera == idOrdenVentaCabecera select OVC).FirstOrDefault();

                long idEmpresa     = ordenVenta.idEmpresaFactura.Value;
                long idTienda      = ordenVenta.idTiendaFactura.Value;
                long numeroFactura = ordenVenta.numeroFactura.Value;

                ordenVenta.idEstadoOrdenVenta   = 7;
                ordenVenta.comentarios          = txtComentarios.Text.Trim();
                ordenVenta.fechaHoraEliminacion = Program.fechaHora;
                ordenVenta.idUsuarioEliminacion = idUsuario;
                ordenVenta.terminalEliminacion  = Program.terminal;

                List <tbInventario> inventario = new List <tbInventario>();
                ordenVentaDetalle.ForEach(y =>
                {
                    long idBodega   = y.idBodegaEntrada;
                    long idProducto = y.idProducto;
                    int cantidad    = y.cantidad;

                    tbInventario _tbInventario = (from I in _dbCosolemEntities.tbInventario where I.idBodega == idBodega && I.idProducto == idProducto && I.estadoRegistro select I).FirstOrDefault();
                    if (_tbInventario == null)
                    {
                        _tbInventario                  = new tbInventario();
                        _tbInventario.idBodega         = idBodega;
                        _tbInventario.idProducto       = idProducto;
                        _tbInventario.fisicoDisponible = cantidad;
                        _tbInventario.reservado        = 0;
                        _tbInventario.estadoRegistro   = true;
                        _tbInventario.fechaHoraIngreso = Program.fechaHora;
                        _tbInventario.idUsuarioIngreso = idUsuario;
                        _tbInventario.terminalIngreso  = Program.terminal;
                        _dbCosolemEntities.tbInventario.AddObject(_tbInventario);
                    }
                    else
                    {
                        _tbInventario.fisicoDisponible           += cantidad;
                        _tbInventario.fechaHoraUltimaModificacion = Program.fechaHora;
                        _tbInventario.idUsuarioUltimaModificacion = idUsuario;
                        _tbInventario.terminalUltimaModificacion  = Program.terminal;
                    }

                    _tbInventario.concepto            = "DEVOLUCIÓN DE FACTURA " + new String('0', 9 - numeroFactura.ToString().Trim().Length) + numeroFactura.ToString().Trim();
                    _tbInventario.fechaFactura        = ordenVenta.fechaHoraFactura.Value;
                    _tbInventario.cliente             = ordenVenta.numeroIdentificacion + " - " + ordenVenta.cliente;
                    _tbInventario.comentarios         = ordenVenta.comentarios;
                    _tbInventario.codigoProducto      = y.codigoProducto;
                    _tbInventario.descripcionProducto = y.descripcionProducto;
                    _tbInventario.cantidad            = cantidad;

                    inventario.Add(_tbInventario);

                    tbTransaccionInventario _tbTransaccionInventario = new tbTransaccionInventario();
                    _tbTransaccionInventario.tipoTransaccion         = "Ingreso de inventario por devolución de factura " + Util.setFormatoNumeroFactura(idEmpresa, idTienda, numeroFactura);
                    _tbTransaccionInventario.idBodega         = idBodega;
                    _tbTransaccionInventario.idProducto       = idProducto;
                    _tbTransaccionInventario.cantidad         = cantidad;
                    _tbTransaccionInventario.estadoRegistro   = true;
                    _tbTransaccionInventario.fechaHoraIngreso = Program.fechaHora;
                    _tbTransaccionInventario.idUsuarioIngreso = idUsuario;
                    _tbTransaccionInventario.terminalIngreso  = Program.terminal;
                    _dbCosolemEntities.tbTransaccionInventario.AddObject(_tbTransaccionInventario);
                });

                _dbCosolemEntities.SaveChanges();
                MessageBox.Show("Factura devuelta satisfactoriamente", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                if (inventario.Count > 0)
                {
                    new frmReporteIngresoInventarioConcepto(inventario).ShowDialog();
                }
                tsbNuevo_Click(null, null);
            }
        }
Example #9
0
        private void frmCaja_Load(object sender, EventArgs e)
        {
            _dbCosolemEntities = new dbCosolemEntities();

            dgvOrdenVentaDetalle.AutoGenerateColumns   = false;
            dgvOrdenVentaFormaPago.AutoGenerateColumns = false;

            _BindingListtbOrdenVentaFormaPago = new BindingList <tbOrdenVentaFormaPago>();

            ordenVenta = (from OVC in _dbCosolemEntities.tbOrdenVentaCabecera where OVC.tipoOrdenVenta == "O" && OVC.idEstadoOrdenVenta == 1 && OVC.estadoRegistro && OVC.idOrdenVentaCabecera == idOrdenVenta select OVC).FirstOrDefault();
            tbPersona persona = ordenVenta.tbCliente.tbPersona;

            txtCliente.Text = ordenVenta.cliente;
            txtNumeroIdentificacion.Text = persona.numeroIdentificacion;
            txtDireccion.Text            = ordenVenta.direccion;
            List <string> telefono = new List <string>();

            if (!String.IsNullOrEmpty(ordenVenta.convencional))
            {
                telefono.Add(ordenVenta.convencional);
            }
            if (!String.IsNullOrEmpty(ordenVenta.celular))
            {
                telefono.Add(ordenVenta.celular);
            }
            dtpFechaFactura.Value = Program.fechaHora;
            txtTelefono.Text      = String.Join(", ", telefono);

            dgvOrdenVentaDetalle.DataSource = ordenVenta.tbOrdenVentaDetalle.Where(x => x.estadoRegistro).Select(y => new
            {
                cantidad      = y.cantidad,
                descripcion   = y.tbProducto.descripcion,
                precio        = (ordenVenta.idFormaPago == 1 ? (ordenVenta.tipoVenta == "N" ? y.precioOferta : y.costo) : y.precioVentaPublico),
                subTotalBruto = y.subTotalBruto
            }).ToList();

            txtSubtotal.Text = Util.FormatoMoneda(ordenVenta.subTotalBruto, 2);
            txtIVA.Text      = Util.FormatoMoneda(ordenVenta.IVA, 2);
            txtTotal.Text    = Util.FormatoMoneda(ordenVenta.totalNeto, 2);

            List <tbFormaPago> _tbFormaPago = (from FP in _dbCosolemEntities.tbFormaPago select FP).ToList();

            _tbFormaPago.Insert(0, new tbFormaPago {
                idFormaPago = 0, descripcion = "Seleccione"
            });
            cmbFormaPago.DataSource    = _tbFormaPago;
            cmbFormaPago.ValueMember   = "idFormaPago";
            cmbFormaPago.DisplayMember = "descripcion";

            if (ordenVenta.tbOrdenVentaFinanciacion.Any())
            {
                tbOrdenVentaFinanciacion ordenVentaFinanciacion = ordenVenta.tbOrdenVentaFinanciacion.FirstOrDefault();
                if (ordenVentaFinanciacion.valorCuotaInicialExigible > 0)
                {
                    AgregarFormaPago(1, ordenVentaFinanciacion.valorCuotaInicialExigible);
                }
            }
            dgvOrdenVentaFormaPago.DataSource = _BindingListtbOrdenVentaFormaPago;

            CalcularTotales();
        }