예제 #1
0
        private void tsbEliminar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Seguro desea anular la orden de venta a facturar?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
            {
                ordenVenta.idEstadoOrdenVenta   = 4;
                ordenVenta.fechaHoraEliminacion = Program.fechaHora;
                ordenVenta.idUsuarioEliminacion = idUsuario;
                ordenVenta.terminalEliminacion  = Program.terminal;

                ordenVenta.tbOrdenVentaDetalle.Where(x => x.estadoRegistro).ToList().ForEach(y =>
                {
                    long idBodega   = y.idBodega.Value;
                    long idProducto = y.idProducto;
                    int cantidad    = y.cantidad;

                    tbInventario _tbInventario = (from I in _dbCosolemEntities.tbInventario where I.idBodega == idBodega && I.idProducto == idProducto && y.estadoRegistro select I).FirstOrDefault();
                    _tbInventario.reservado   -= cantidad;
                    _tbInventario.fechaHoraUltimaModificacion = Program.fechaHora;
                    _tbInventario.idUsuarioUltimaModificacion = idUsuario;
                    _tbInventario.terminalUltimaModificacion  = Program.terminal;
                });
                _dbCosolemEntities.SaveChanges();

                MessageBox.Show("Orden de venta anulada satisfactoriamente", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
            }
        }
예제 #2
0
        private void tsbEliminar_Click(object sender, EventArgs e)
        {
            dgvOrdenVentaCabecera_CellEndEdit(null, null);
            List <tbOrdenVentaCabecera> ordenesVenta = ((BindingList <tbOrdenVentaCabecera>)dgvOrdenVentaCabecera.DataSource).ToList();

            if (ordenesVenta.Where(x => x.seleccionado).Count() == 0)
            {
                MessageBox.Show("Seleccione un registro para poder eliminarlo", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                if (MessageBox.Show("¿Seguro desea anular las facturas seleccionadas?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    ordenesVenta.Where(x => x.seleccionado).ToList().ForEach(x =>
                    {
                        long numeroFactura = x.numeroFactura.Value;

                        x.idEstadoOrdenVenta   = 6;
                        x.fechaHoraEliminacion = Program.fechaHora;
                        x.idUsuarioEliminacion = idUsuario;
                        x.terminalEliminacion  = Program.terminal;

                        x.tbOrdenVentaDetalle.Where(y => y.estadoRegistro).ToList().ForEach(z =>
                        {
                            long idProducto = z.idProducto;
                            if (edmCosolemFunctions.isProductoInventariable(idProducto))
                            {
                                long idBodega = z.idBodega.Value;
                                int cantidad  = z.cantidad;

                                tbInventario _tbInventario                = (from I in _dbCosolemEntities.tbInventario where I.idBodega == idBodega && I.idProducto == idProducto && I.estadoRegistro select I).FirstOrDefault();
                                _tbInventario.fisicoDisponible           += cantidad;
                                _tbInventario.fechaHoraUltimaModificacion = Program.fechaHora;
                                _tbInventario.idUsuarioUltimaModificacion = idUsuario;
                                _tbInventario.terminalUltimaModificacion  = Program.terminal;

                                tbTransaccionInventario _tbTransaccionInventario = new tbTransaccionInventario();
                                _tbTransaccionInventario.tipoTransaccion         = "Ingreso de inventario por anulació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("Facturas anuladas satisfactoriamente", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    tsbBuscar_Click(null, null);
                }
            }
        }
예제 #3
0
        private void btnAgregarParaIngresarInventario_Click(object sender, EventArgs e)
        {
            string mensaje = String.Empty;

            long idEmpresa = ((Empresa)cmbEmpresa.SelectedItem).idEmpresa;
            long idTienda  = ((Tienda)cmbTienda.SelectedItem).idTienda;
            long idBodega  = ((Bodega)cmbBodega.SelectedItem).idBodega;

            if (idEmpresa == 0)
            {
                mensaje += "Seleccione empresa\n";
            }
            if (idTienda == 0)
            {
                mensaje += "Seleccione tienda\n";
            }
            if (idBodega == 0)
            {
                mensaje += "Seleccione bodega\n";
            }
            if (idBodega > 0 && _BindingListtbInventario.Where(x => x.idBodega != idBodega).Count() > 0)
            {
                mensaje += "Favor verifique los parámetros seleccionados son distintos a los agregados en el inventario\n";
            }
            if (this.listaProducto.Where(x => x.seleccionado).Count() == 0)
            {
                mensaje += "Seleccione al menos 1 producto\n";
            }

            if (String.IsNullOrEmpty(mensaje.Trim()))
            {
                List <Producto> listaProducto = this.listaProducto.Where(x => x.seleccionado).ToList();
                listaProducto.ForEach(x =>
                {
                    tbInventario _tbInventario = _BindingListtbInventario.Where(y => y.idBodega == idBodega && y.idProducto == x.idProducto).FirstOrDefault();
                    long fisicoDisponible      = edmCosolemFunctions.getFisicoDisponible(idEmpresa, idBodega, x.idProducto);
                    if (_tbInventario == null)
                    {
                        _BindingListtbInventario.Add(new tbInventario {
                            idBodega = idBodega, idProducto = x.idProducto, codigoProducto = x.codigoProducto, descripcionProducto = x.descripcion, fisicoDisponible = fisicoDisponible, cantidad = 0
                        });
                    }
                    else
                    {
                        _tbInventario.fisicoDisponible = fisicoDisponible;
                    }
                });
            }
            else
            {
                MessageBox.Show(mensaje, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
예제 #4
0
        private void tsbEliminar_Click(object sender, EventArgs e)
        {
            dgvOrdenVentaCabecera_CellEndEdit(null, null);
            List <tbOrdenVentaCabecera> ordenesVenta = ((SortableBindingList <tbOrdenVentaCabecera>)dgvOrdenVentaCabecera.DataSource).ToList();

            if (ordenesVenta.Where(x => x.seleccionado).Count() == 0)
            {
                MessageBox.Show("Seleccione un registro para poder eliminarlo", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                if (MessageBox.Show("¿Seguro desea anular las ordenes de venta seleccionadas?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    ordenesVenta.ForEach(x =>
                    {
                        x.idEstadoOrdenVenta   = 4;
                        x.fechaHoraEliminacion = Program.fechaHora;
                        x.idUsuarioEliminacion = idUsuario;
                        x.terminalEliminacion  = Program.terminal;

                        x.tbOrdenVentaDetalle.Where(y => y.estadoRegistro).ToList().ForEach(z =>
                        {
                            long idBodega   = z.idBodega.Value;
                            long idProducto = z.idProducto;
                            int cantidad    = z.cantidad;

                            tbInventario _tbInventario = (from I in _dbCosolemEntities.tbInventario where I.idBodega == idBodega && I.idProducto == idProducto && z.estadoRegistro select I).FirstOrDefault();
                            _tbInventario.reservado   -= cantidad;
                            _tbInventario.fechaHoraUltimaModificacion = Program.fechaHora;
                            _tbInventario.idUsuarioUltimaModificacion = idUsuario;
                            _tbInventario.terminalUltimaModificacion  = Program.terminal;
                        });
                    });
                    _dbCosolemEntities.SaveChanges();
                    MessageBox.Show("Ordenes de venta anuladas satisfactoriamente", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    tsbBuscar_Click(null, null);
                }
            }
        }
예제 #5
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);
            }
        }
예제 #6
0
        private void tsbGrabar_Click(object sender, EventArgs e)
        {
            try
            {
                long cantidadTransferir = 0;
                if (!String.IsNullOrEmpty(txtCantidadTransferir.Text.Trim()))
                {
                    cantidadTransferir = Convert.ToInt64(txtCantidadTransferir.Text.Trim());
                }

                cmbProducto_SelectionChangeCommitted(null, null);

                txtCantidadTransferir.Text = cantidadTransferir.ToString();

                string mensaje = String.Empty;

                long     idBodegaSaliente = ((Bodega)cmbBodegaSaliente.SelectedItem).idBodega;
                long     idBodegaEntrante = ((Bodega)cmbBodegaEntrante.SelectedItem).idBodega;
                Producto _tbProducto      = (Producto)cmbProducto.SelectedItem;

                long inventario = 0;
                if (!String.IsNullOrEmpty(txtInventario.Text.Trim()))
                {
                    inventario = Convert.ToInt64(txtInventario.Text.Trim());
                }
                if (((Tienda)cmbTiendaSaliente.SelectedItem).idTienda == 0)
                {
                    mensaje += "Seleccione tienda saliente\n";
                }
                if (idBodegaSaliente == 0)
                {
                    mensaje += "Seleccione bodega saliente\n";
                }
                if (((Tienda)cmbTiendaEntrante.SelectedItem).idTienda == 0)
                {
                    mensaje += "Seleccione tienda entrante\n";
                }
                if (idBodegaEntrante == 0)
                {
                    mensaje += "Seleccione bodega entrante\n";
                }
                if (_tbProducto.idProducto == 0)
                {
                    mensaje += "Seleccione producto\n";
                }
                if (cantidadTransferir == 0)
                {
                    mensaje += "Ingrese cantidad a transferir\n";
                }
                if (idBodegaSaliente == idBodegaEntrante)
                {
                    mensaje += "Bodega saliente y entrante no pueden ser iguales\n";
                }
                if (cantidadTransferir > inventario)
                {
                    mensaje += "Cantidad a transferir mayor a la del inventario\n";
                }

                tbCosto _tbCosto = edmCosolemFunctions.getCosto(idEmpresa, _tbProducto.idProducto);
                if (_tbCosto == null || _tbCosto.costo == 0)
                {
                    mensaje += "Producto no tiene costo\n";
                }

                if (String.IsNullOrEmpty(mensaje.Trim()))
                {
                    tbTransaccionInventario _tbTransaccionInventario = null;

                    _tbTransaccionInventario = new tbTransaccionInventario();
                    _tbTransaccionInventario.tipoTransaccion  = "Transferencia de inventario";
                    _tbTransaccionInventario.idBodega         = idBodegaSaliente;
                    _tbTransaccionInventario.idProducto       = _tbProducto.idProducto;
                    _tbTransaccionInventario.cantidad         = -cantidadTransferir;
                    _tbTransaccionInventario.estadoRegistro   = true;
                    _tbTransaccionInventario.fechaHoraIngreso = Program.fechaHora;
                    _tbTransaccionInventario.idUsuarioIngreso = idUsuario;
                    _tbTransaccionInventario.terminalIngreso  = Program.terminal;
                    _dbCosolemEntities.tbTransaccionInventario.AddObject(_tbTransaccionInventario);

                    _tbTransaccionInventario = new tbTransaccionInventario();
                    _tbTransaccionInventario.tipoTransaccion  = "Transferencia de inventario";
                    _tbTransaccionInventario.idBodega         = idBodegaEntrante;
                    _tbTransaccionInventario.idProducto       = _tbProducto.idProducto;
                    _tbTransaccionInventario.cantidad         = cantidadTransferir;
                    _tbTransaccionInventario.estadoRegistro   = true;
                    _tbTransaccionInventario.fechaHoraIngreso = Program.fechaHora;
                    _tbTransaccionInventario.idUsuarioIngreso = idUsuario;
                    _tbTransaccionInventario.terminalIngreso  = Program.terminal;
                    _dbCosolemEntities.tbTransaccionInventario.AddObject(_tbTransaccionInventario);

                    tbInventario _tbInventario = null;

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

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

                    long fisicoDisponible = edmCosolemFunctions.getFisicoDisponible(idEmpresa, idBodegaSaliente, _tbProducto.idProducto);
                    if (cantidadTransferir > fisicoDisponible)
                    {
                        MessageBox.Show("Cantidad a transferir mayor a la del inventario", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        _dbCosolemEntities.SaveChanges();
                        MessageBox.Show("Registro grabado satisfactoriamente", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        frmTransferencias_Load(null, null);
                    }
                }
                else
                {
                    MessageBox.Show(mensaje, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch (Exception ex)
            {
                Util.MostrarException(this.Text, ex);
            }
        }
예제 #7
0
        private void tsbGrabar_Click(object sender, EventArgs e)
        {
            try
            {
                dgvInventario_CellEndEdit(null, null);

                string mensaje = String.Empty;

                long idEmpresa = ((Empresa)cmbEmpresa.SelectedItem).idEmpresa;
                long idTienda  = ((Tienda)cmbTienda.SelectedItem).idTienda;
                long idBodega  = ((Bodega)cmbBodega.SelectedItem).idBodega;

                if (idEmpresa == 0)
                {
                    mensaje += "Seleccione empresa\n";
                }
                if (idTienda == 0)
                {
                    mensaje += "Seleccione tienda\n";
                }
                if (idBodega == 0)
                {
                    mensaje += "Seleccione bodega\n";
                }
                if (idBodega > 0 && _BindingListtbInventario.Where(x => x.idBodega != idBodega).Count() > 0)
                {
                    mensaje += "Favor verifique los parámetros seleccionados son distintos a los agregados en el inventario\n";
                }
                if (_BindingListtbInventario.Where(x => x.cantidad == 0).Count() > 0)
                {
                    mensaje += "Ingrese cantidad\n";
                }
                _BindingListtbInventario.ToList().ForEach(x =>
                {
                    tbCosto _tbCosto = edmCosolemFunctions.getCosto(idEmpresa, x.idProducto);
                    if (_tbCosto == null || _tbCosto.costo == 0)
                    {
                        mensaje += "Producto " + x.descripcionProducto + " no tiene costo\n";
                    }
                });

                if (String.IsNullOrEmpty(mensaje.Trim()))
                {
                    _BindingListtbInventario.ToList().ForEach(x =>
                    {
                        tbTransaccionInventario _tbTransaccionInventario = new tbTransaccionInventario();
                        _tbTransaccionInventario.tipoTransaccion         = "Ingreso de inventario";
                        _tbTransaccionInventario.idBodega         = idBodega;
                        _tbTransaccionInventario.idProducto       = x.idProducto;
                        _tbTransaccionInventario.cantidad         = x.cantidad;
                        _tbTransaccionInventario.estadoRegistro   = true;
                        _tbTransaccionInventario.fechaHoraIngreso = Program.fechaHora;
                        _tbTransaccionInventario.idUsuarioIngreso = idUsuario;
                        _tbTransaccionInventario.terminalIngreso  = Program.terminal;
                        _dbCosolemEntities.tbTransaccionInventario.AddObject(_tbTransaccionInventario);

                        tbInventario _tbInventario = (from I in _dbCosolemEntities.tbInventario where I.idBodega == _tbTransaccionInventario.idBodega && I.idProducto == _tbTransaccionInventario.idProducto && I.estadoRegistro select I).FirstOrDefault();
                        if (_tbInventario == null)
                        {
                            _tbInventario                  = new tbInventario();
                            _tbInventario.idBodega         = idBodega;
                            _tbInventario.idProducto       = x.idProducto;
                            _tbInventario.fisicoDisponible = x.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            = _tbInventario.fisicoDisponible + _tbTransaccionInventario.cantidad;
                            _tbInventario.fechaHoraUltimaModificacion = Program.fechaHora;
                            _tbInventario.idUsuarioUltimaModificacion = idUsuario;
                            _tbInventario.terminalUltimaModificacion  = Program.terminal;
                        }
                    });
                    _dbCosolemEntities.SaveChanges();

                    MessageBox.Show("Registro grabado satisfactoriamente", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    new frmReporteIngresoInventario(_BindingListtbInventario.ToList()).ShowDialog();
                    frmIngresoInventario_Load(null, null);
                }
                else
                {
                    MessageBox.Show(mensaje, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch (Exception ex)
            {
                Util.MostrarException(this.Text, ex);
            }
        }
예제 #8
0
        private void tsbGrabar_Click(object sender, EventArgs e)
        {
            dgvOrdenVentaFormaPago_CellEndEdit(null, null);
            string mensaje = String.Empty;

            decimal total         = Decimal.Parse(txtTotal.Text.Trim(), NumberStyles.Currency, Application.CurrentCulture);
            decimal cancelado     = Decimal.Parse(txtCancelado.Text.Trim(), NumberStyles.Currency, Application.CurrentCulture);
            long    numeroFactura = 0;

            long.TryParse(txtNumeroFactura.Text.Trim(), out numeroFactura);

            if (numeroFactura == 0)
            {
                mensaje += "Favor ingrese número de factura\n";
            }
            if (numeroFactura > 0 && edmCosolemFunctions.existNumeroFactura(idEmpresa, idTienda, numeroFactura))
            {
                mensaje += "Número de factura ya existe\n";
            }
            if (cancelado < total)
            {
                mensaje += "Total de " + Util.FormatoMoneda((total - cancelado), 2) + " pendiente por cancelar\n";
            }
            if (_BindingListtbOrdenVentaFormaPago.Where(x => x.idFormaPago == 0).Count() > 0)
            {
                mensaje += "Favor seleccionar forma de pago\n";
            }
            if (_BindingListtbOrdenVentaFormaPago.Where(x => x.valor == 0).Count() > 0)
            {
                mensaje += "Favor ingrese valor\n";
            }

            if (String.IsNullOrEmpty(mensaje.Trim()))
            {
                ordenVenta.idEstadoOrdenVenta          = 5;
                ordenVenta.idEmpresaFactura            = idEmpresa;
                ordenVenta.idTiendaFactura             = idTienda;
                ordenVenta.numeroFactura               = numeroFactura;
                ordenVenta.fechaHoraFactura            = Program.fechaHora;
                ordenVenta.fechaHoraUltimaModificacion = Program.fechaHora;
                ordenVenta.idUsuarioUltimaModificacion = idUsuario;
                ordenVenta.terminalUltimaModificacion  = Program.terminal;
                ordenVenta.tbOrdenVentaDetalle.Where(x => x.estadoRegistro).ToList().ForEach(y =>
                {
                    long idProducto = y.idProducto;
                    if (edmCosolemFunctions.isProductoInventariable(idProducto))
                    {
                        long idBodega       = y.idBodega.Value;
                        int cantidad        = y.cantidad;
                        bool estadoRegistro = y.estadoRegistro;

                        tbInventario _tbInventario                = (from I in _dbCosolemEntities.tbInventario where I.idBodega == idBodega && I.idProducto == idProducto && estadoRegistro select I).FirstOrDefault();
                        _tbInventario.fisicoDisponible           -= cantidad;
                        _tbInventario.reservado                  -= cantidad;
                        _tbInventario.fechaHoraUltimaModificacion = Program.fechaHora;
                        _tbInventario.idUsuarioUltimaModificacion = idUsuario;
                        _tbInventario.terminalUltimaModificacion  = Program.terminal;

                        tbTransaccionInventario _tbTransaccionInventario = new tbTransaccionInventario();
                        _tbTransaccionInventario.tipoTransaccion         = "Egreso de inventario por 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);
                    }
                });
                _BindingListtbOrdenVentaFormaPago.ToList().ForEach(x => ordenVenta.tbOrdenVentaFormaPago.Add(x));
                _dbCosolemEntities.SaveChanges();

                MessageBox.Show("Orden de venta facturada satisfactoriamente", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);

                Excel.Application application = new Excel.Application();
                application.Visible = false;
                Excel.Workbook  workbook  = application.Workbooks.Open(Application.StartupPath + "\\Reportes\\FORMATO FACTURA.xlsx");
                Excel.Worksheet worksheet = workbook.Worksheets["FORMATO"];

                worksheet.Cells[5, 2].value = ordenVenta.cliente;
                worksheet.Cells[6, 2].value = ordenVenta.numeroIdentificacion;
                worksheet.Cells[7, 2].value = ordenVenta.direccion;

                worksheet.Cells[5, 10].value = ordenVenta.fechaHoraFactura.Value.ToString("dd/MM/yyyy");
                worksheet.Cells[6, 10].value = String.Join(", ", new List <string> {
                    ordenVenta.convencional, ordenVenta.celular
                });

                int RowIndex = 11;
                ordenVenta.tbOrdenVentaDetalle.Where(x => x.estadoRegistro).ToList().ForEach(y =>
                {
                    decimal precio = (ordenVenta.idFormaPago == 1 ? y.precioOferta : y.precioVentaPublico);
                    if (ordenVenta.tipoVenta == "P")
                    {
                        precio = y.precio;
                    }

                    worksheet.Cells[RowIndex, 1].value  = y.cantidad;
                    worksheet.Cells[RowIndex, 3].value  = y.tbProducto.descripcion;
                    worksheet.Cells[RowIndex, 9].value  = precio;
                    worksheet.Cells[RowIndex, 11].value = precio * y.cantidad;
                    RowIndex += 1;
                });

                worksheet.Cells[22, 3].value  = ordenVenta.tbFormaPago.descripcion + (ordenVenta.idFormaPago == 1 ? "" : " - " + ordenVenta.tbProductoFinancieroCabecera.descripcion);
                worksheet.Cells[23, 11].value = ordenVenta.subTotalBruto;
                worksheet.Cells[24, 5].value  = Util.ConvertirNumeroALetras(ordenVenta.totalNeto.ToString(), true, "dólares");
                worksheet.Cells[24, 11].value = (ordenVenta.tipoVenta == "P" ? ordenVenta.descuento : 0M);
                worksheet.Cells[26, 11].value = ordenVenta.IVA;
                worksheet.Cells[27, 11].value = ordenVenta.totalNeto;

                worksheet.PrintOut(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                workbook.Close(false, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
                application.Quit();

                System.Runtime.InteropServices.Marshal.ReleaseComObject(application);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);

                this.DialogResult = System.Windows.Forms.DialogResult.OK;
            }
            else
            {
                MessageBox.Show(mensaje, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }