Esempio n. 1
0
        public void Vender(Documento documento, DocVenta documentoVenta, IList<DocumentoLinea> lineasDocumento, IList<PagoLinea> lineasMedioPago)
        {
            if (documento.Cliente == null) documento.TipoDocumento = "Boleta";
            else
            {
                if (documento.Cliente.TipoDocumento == "RUC") documento.TipoDocumento = "Factura";
                else documento.TipoDocumento = "Boleta";
            }

            new DocumentoBL().Grabar(documento);

            documento.NroDocumentoVenta = Int32.Parse(documento.Caja.Local.Id + "" + documento.Id);

            new DocumentoBL().Grabar(documento);

            foreach (DocumentoLinea documentoLinea in lineasDocumento)
            {
                documentoLinea.Documento = documento;
                documentoLinea.ArticuloXLocal.Cantidad -= documentoLinea.Cantidad.Value;
                new ArticuloXLocalBL().Actualizar(documentoLinea.ArticuloXLocal);
                new DocumentoLineaBL().Grabar(documentoLinea);
            }
            documentoVenta.DescuentoArticulo = 0;
            documentoVenta.DescuentoCliente = 0;
            documentoVenta.DescuentoPacks = 0;
            new DocVentaDA().SaveOrUpdate(documentoVenta);
            foreach (PagoLinea pagoLinea in lineasMedioPago) {
                new PagoLineaBL().Grabar(pagoLinea);
            }
        }
Esempio n. 2
0
 public void Vender(Documento documento, DocVenta documentoVenta, IList<DocumentoLinea> lineasDocumento, IList<PagoLinea> lineasMedioPago)
 {
     new DocumentoBL().Grabar(documento);
     foreach (DocumentoLinea documentoLinea in lineasDocumento)
     {
         documentoLinea.Documento = documento;
         documentoLinea.ArticuloXLocal.Cantidad -= documentoLinea.Cantidad.Value;
         new ArticuloXLocalBL().Actualizar(documentoLinea.ArticuloXLocal);
         new DocumentoLineaBL().Grabar(documentoLinea);
     }
     documentoVenta.DescuentoArticulo = 0;
     documentoVenta.DescuentoCliente = 0;
     documentoVenta.DescuentoPacks = 0;
     new DocVentaDA().SaveOrUpdate(documentoVenta);
     foreach (PagoLinea pagoLinea in lineasMedioPago) {
         new PagoLineaBL().Grabar(pagoLinea);
     }
 }
Esempio n. 3
0
        public void Devolver(Documento documento,NotaCredito notaCredito, IList<DocumentoLinea> lineasDocumento,List<NotaIngresoSalidaLinea> lineasIngresosSalidas)
        {
            documento.TipoDocumento = "NotaCredito";
            new DocumentoBL().Grabar(documento);

            documento.NroDocumentoVenta = Int32.Parse(documento.Caja.Local.Id + "" + documento.Id);

            new DocumentoBL().Grabar(documento);

            foreach (DocumentoLinea documentoLinea in lineasDocumento)
            {
                documentoLinea.Documento = documento;
                new DocumentoLineaBL().Grabar(documentoLinea);
            }

            //MOVIMIENTO

            BE.Movimiento movimiento = new BE.Movimiento();
            movimiento.Local=documento.Caja.Local;
            movimiento.Fecha=DateTime.Today;

            new MovimientoBL().Grabar(movimiento);

               //GRABAMOS LA NOTA DE CREDITO

            notaCredito.Documento = documento;
            notaCredito.NroMovimiento = movimiento;

            Grabar(notaCredito);

            //CREAMOS LA NOTA DE INGRESOSALIDA

            NotaIngresoSalida notaIngSal=new NotaIngresoSalida();
            notaIngSal.Local=documento.Caja.Local;
            notaIngSal.Fecha=DateTime.Today;
            notaIngSal.NroMovimiento=movimiento;

            new NotaIngresoSalidaBL().Grabar(notaIngSal);

            foreach (NotaIngresoSalidaLinea linea in lineasIngresosSalidas)  linea.CodNota = notaIngSal;

            new NotaIngresoSalidaLineaBL().Grabar(lineasIngresosSalidas);
        }
        private void btnRegistrar_Click(object sender, EventArgs e)
        {
            int cantidadDevolucion;
            DocumentoLineaBL objDocLineaBL = new DocumentoLineaBL();
            ArticuloXLocalBL objArtxLocal=new ArticuloXLocalBL();
            PackBL objPackBL=new PackBL();
            IList<DocumentoLinea> lineasNotaCredito=new List<DocumentoLinea>();
            List<NotaIngresoSalidaLinea> lineasNotaIngreso = new List<NotaIngresoSalidaLinea>();
            ArticuloXPackBL objArtxPack=new ArticuloXPackBL();
            bool crearDevolucion = false; //si al menos una de las cantidades devueltas>0 ,se procede a registrar la devolucion

            calcularDevolucion();

            for (int i = 0; i < dgvArticulos.Rows.Count; i++) //actualizando los docs lineas q son de articulos
            {
               cantidadDevolucion=Int32.Parse(dgvArticulos.Rows[i].Cells["CantidadDevolucion"].Value.ToString());

               if (cantidadDevolucion>0){

                   crearDevolucion = true;

                   //docLineaVenta
                   listaArticulos[i].CantidadDevuelta = listaArticulos[i].CantidadDevuelta + cantidadDevolucion;
                   objDocLineaBL.Grabar(listaArticulos[i]); //las lineas fueron actualizadas cada vez q se calculaban los montos de devolucion

                   //actualizamos la cantidad de articulos en EL LOCAL EN Q SE REALIZA LA DEVOLUCION
                   ArticuloXLocal artxlocal=objArtxLocal.findArticuloEnLocal(listaArticulos[i].ArticuloXLocal.Articulo.Id,empleado.Local.Id);
                   artxlocal.Cantidad=artxlocal.Cantidad+cantidadDevolucion;
                   objArtxLocal.Actualizar(artxlocal);

                   DocumentoLinea lineaNotaCredito=new DocumentoLinea();

                   lineaNotaCredito.Cantidad=cantidadDevolucion;
                   lineaNotaCredito.Impuesto=listaArticulos[i].Impuesto;
                   lineaNotaCredito.PrecioLinea=(float)(listaArticulos[i].PrecioLinea*cantidadDevolucion/listaArticulos[i].Cantidad);
                   lineaNotaCredito.ArticuloXLocal=listaArticulos[i].ArticuloXLocal;
                   lineaNotaCredito.CantidadDevuelta=0;
                   lineaNotaCredito.DescuentoXArticulo=listaArticulos[i].DescuentoXArticulo;

                   NotaIngresoSalidaLinea lineaNotaIngreso = new NotaIngresoSalidaLinea();
                   lineaNotaIngreso.Cantidad = cantidadDevolucion;
                   lineaNotaIngreso.ArticuloXLocal = artxlocal;

                   lineasNotaIngreso.Add(lineaNotaIngreso);
                   lineasNotaCredito.Add(lineaNotaCredito);
               }
            }

            for (int i = 0; i < dgvPacks.Rows.Count; i++)
            {
                cantidadDevolucion = Int32.Parse(dgvPacks.Rows[i].Cells["CantidadDev"].Value.ToString());

                if (cantidadDevolucion > 0)
                {
                    crearDevolucion = true;

                    //Pack
                    listaPacks[i].Pack.CantidadUtilizada = listaPacks[i].Pack.CantidadUtilizada - cantidadDevolucion;
                    objPackBL.Grabar(listaPacks[i].Pack);

                    //Doclinea Venta
                    listaPacks[i].CantidadDevuelta = listaPacks[i].CantidadDevuelta + cantidadDevolucion;
                    objDocLineaBL.Grabar(listaPacks[i]);

                    //ArticuloXLocal

                    IList<ArticuloXPack> articulosPack = objArtxPack.findArticulosXPack(listaPacks[i].Pack.Id);

                    foreach (ArticuloXPack artxpack in articulosPack)
                    {
                        ArticuloXLocal artxlocal = objArtxLocal.findArticuloEnLocal(artxpack.Articulo.Id, empleado.Local.Id);
                        artxlocal.Cantidad = artxlocal.Cantidad + artxpack.CantidadPack * cantidadDevolucion;
                        objArtxLocal.Actualizar(artxlocal);

                        //creamos una linea de ingreso para el producto del pack
                        NotaIngresoSalidaLinea lineaNotaIngreso = new NotaIngresoSalidaLinea();
                        lineaNotaIngreso.Cantidad = cantidadDevolucion*artxpack.CantidadPack;
                        lineaNotaIngreso.ArticuloXLocal = artxlocal;

                        lineasNotaIngreso.Add(lineaNotaIngreso);
                    }

                    DocumentoLinea lineaNotaCredito = new DocumentoLinea();

                    lineaNotaCredito.Cantidad = cantidadDevolucion;
                    lineaNotaCredito.Impuesto = listaPacks[i].Impuesto;
                    lineaNotaCredito.PrecioLinea = (float)(listaPacks[i].Pack.PrecioPack*cantidadDevolucion);
                    lineaNotaCredito.CantidadDevuelta = 0;
                    lineaNotaCredito.Pack = listaPacks[i].Pack;

                    lineasNotaCredito.Add(lineaNotaCredito);
                }
            }

            //creamos el DOCUMENTO

            if (crearDevolucion)
            {

                Documento documento = new Documento();
                documento.FechaEmision = DateTime.Today;
                documento.Estado = "Registrado";
                documento.Total = totalDevolucion;
                documento.Caja = new RegistroCajaBL().DameCaja(empleado);
                documento.NroDocumentoVenta = Int32.Parse(empleado.Local.Id + "" + empleado.Id);
                documento.Cliente = documentoVentaActual.Cliente;
                documento.FechaAnulacion = DateTime.Today;

                //creamos la NOTA DE CREDITO

                NotaCredito notaCred = new NotaCredito();
                notaCred.MontoDevolucion = totalDevolucion;
                notaCred.Motivo = richTxtMotivo.Text;
                notaCred.DocVenta = new DocVentaBL().findById(documentoVentaActual.Id.ToString());

                new NotaCreditoBL().Devolver(documento, notaCred, lineasNotaCredito, lineasNotaIngreso);
                Utils.Utils.OK(Utils.Utils.REGISTRO_OK);
            }

            else

                Utils.Utils.Error(null,"No se puede registrar la Nota de Crédito porque ningún producto fue devuelto");
        }
 public void CargarDocumentoVenta(Documento doc)
 {
     this.documentoVenta = doc;
     txtNroDocumento.Text = doc.NroDocumentoVenta.ToString();
 }
        private void llenarGrillas()
        {
            double totalImpuestos;
            float descuentoUnit, precioVenta, total;
            int filaArt = 0;
            int filaPack = 0;

            dgvArticulos.Rows.Clear();
            dgvPacks.Rows.Clear();
            listaArticulos = new List<DocumentoLinea>();
            listaPacks = new List<DocumentoLinea>();
            listaLineasDevolucion = new List<DocumentoLinea>();
            this.totalDevolucion = 0;

            IList<DocumentoLinea> listadocLinea = new DocumentoLineaBL().findByIdDocumento(this.documentoVenta.Id.ToString());

            DescuentoXArticuloBL objDescXArtBL = new DescuentoXArticuloBL();

            foreach (DocumentoLinea linea in listadocLinea)
            {
                if (linea.Pack == null)
                {
                    descuentoUnit = 0;
                    precioVenta = (float)linea.PrecioLinea / (float)linea.Cantidad;

                    if (linea.DescuentoXArticulo != null) //si es un articulo con descuento
                    {
                       // DescuentoXArticulo descxArt=objDescXArtBL.findById(linea.DescuentoXArticulo.ToString());
                        //descuentoUnit =(float)descxArt.PorcentajeDescuento;
                        descuentoUnit = linea.DescuentoXArticulo.PorcentajeDescuento;
                    }

                    totalImpuestos = linea.PrecioLinea * linea.Impuesto;
                    total = (float)(precioVenta*(linea.Cantidad-linea.CantidadDevuelta) + totalImpuestos - descuentoUnit *linea.Cantidad);

                    object[] row = { linea.ArticuloXLocal.Articulo.CodigoArticulo, linea.ArticuloXLocal.Articulo.Titulo, linea.ArticuloXLocal.Articulo.Tipo,linea.Impuesto, precioVenta,descuentoUnit,linea.Cantidad,linea.CantidadDevuelta,0,0};
                    dgvArticulos.Rows.Add(row);
                    listaArticulos.Add(linea);
                    filaArt++;

                }

                else //si la linea trata de un pack,agregamos este a la grilla de packs
                {

                    object[] row = { linea.Pack.CodigoPack, linea.Pack.Nombre, linea.Pack.PrecioPack, linea.Cantidad,linea.CantidadDevuelta, 0, 0 };
                    dgvPacks.Rows.Add(row);
                    listaPacks.Add(linea);
                    filaPack++;
                }
            }

            agregarControlesGrilla();

            this.lblTotalVentas.Text = documentoVenta.Total.ToString();
            if (documentoVenta.Cliente != null) this.lblCliente.Text = documentoVenta.Cliente.Nombre;
            this.linkNroDocumento.Text = documentoVenta.NroDocumentoVenta.ToString();
            this.lblFechaVenta.Text = documentoVenta.FechaEmision.ToString();

            documentoVentaActual = documentoVenta;
            documentoVenta = null;
        }
        private void llenarDatosDevolucion()
        {
            if (txtNroDocumento.Text.Trim() == "") Utils.Utils.Error(null, "Ingrese al menos un numero de documento de venta");

            else
            {
                if (documentoVenta == null)
                { //el codigo fue ingresado manualmente

                    documentoVenta = new DocumentoBL().findByIdDocumento(txtNroDocumento.Text.Trim());  //buscamos por el id ingresado
                    if (documentoVenta == null)
                    {
                        Utils.Utils.Error(null, "El numero de documento no existe");
                        return;
                    }
                }

                if (!validarLocalDevolucion())
                {
                    Utils.Utils.Error(null, "No se puede realizar la devolucion porque la venta se realizo en otro local");
                    return;
                }

                llenarGrillas();
            }
        }
Esempio n. 8
0
        public void SaveOrUpdate(Documento instance)
        {
            ISession hisession = null;
            try
            {
                hisession = NHibernateHelper.GetCurrentSession();
                hisession.BeginTransaction();
                if (instance.Id == 0)
                {
                    hisession.Save(instance);
                }
                else
                {
                    hisession.Update(instance);
                }
                hisession.Transaction.Commit();
                hisession.Close();
            }
            catch (Exception ex)
            {
                if (hisession != null)
                {
                    if (hisession.IsOpen)
                    {
                        hisession.Close();

                    }
                }

            }
        }
        private void btnRegistrar_Click(object sender, EventArgs e)
        {
            int cantidadDevolucion;
            DocumentoLineaBL objDocLineaBL = new DocumentoLineaBL();
            ArticuloXLocalBL objArtxLocal=new ArticuloXLocalBL();
            PackBL objPackBL=new PackBL();
            IList<DocumentoLinea> lineasNotaCredito=new List<DocumentoLinea>();
            List<NotaIngresoSalidaLinea> lineasNotaIngreso = new List<NotaIngresoSalidaLinea>();
            ArticuloXPackBL objArtxPack=new ArticuloXPackBL();
            bool crearDevolucion = false; //si al menos una de las cantidades devueltas>0 ,se procede a registrar la devolucion

            calcularDevolucion();

            if (dgvArticulos.Rows.Count == 0 && dgvPacks.Rows.Count == 0)
            {
                Utils.Utils.Error(null, "No se ha ingresado un documento de venta");
                return;
            }

            if (empleado.Local.Estado=="Inactivo"){
                Utils.Utils.Error(null, "No se puede registrar la devolucion ya que el local se encuentra inactivo");
                return;
            }

            for (int i = 0; i < dgvArticulos.Rows.Count; i++)
            {
                dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.White;
            }

            for (int i = 0; i < dgvPacks.Rows.Count; i++)
            {
                dgvPacks.Rows[i].DefaultCellStyle.BackColor = Color.White;
            }

            for (int i = 0; i < dgvArticulos.Rows.Count; i++) //actualizando los docs lineas q son de articulos
            {
               cantidadDevolucion=Int32.Parse(dgvArticulos.Rows[i].Cells["CantidadDevolucion"].Value.ToString());

               if (cantidadDevolucion > 0)
               {
                   crearDevolucion = true;

                   //docLineaVenta
                   listaArticulos[i].CantidadDevuelta = listaArticulos[i].CantidadDevuelta + cantidadDevolucion;
                   objDocLineaBL.Grabar(listaArticulos[i]); //las lineas fueron actualizadas cada vez q se calculaban los montos de devolucion

                   //actualizamos la cantidad de articulos en EL LOCAL EN Q SE REALIZA LA DEVOLUCION
                   ArticuloXLocal artxlocal = objArtxLocal.findArticuloEnLocal(listaArticulos[i].ArticuloXLocal.Articulo.Id, empleado.Local.Id);
                   artxlocal.Cantidad = artxlocal.Cantidad + cantidadDevolucion;
                   objArtxLocal.Actualizar(artxlocal);

                   DocumentoLinea lineaNotaCredito = new DocumentoLinea();

                   lineaNotaCredito.Cantidad = cantidadDevolucion;
                   lineaNotaCredito.Impuesto = listaArticulos[i].Impuesto;
                   lineaNotaCredito.PrecioLinea = (float)(listaArticulos[i].PrecioLinea * cantidadDevolucion / listaArticulos[i].Cantidad);
                   lineaNotaCredito.ArticuloXLocal = listaArticulos[i].ArticuloXLocal;
                   lineaNotaCredito.CantidadDevuelta = 0;
                   lineaNotaCredito.DescuentoXArticulo = listaArticulos[i].DescuentoXArticulo;

                   NotaIngresoSalidaLinea lineaNotaIngreso = new NotaIngresoSalidaLinea();
                   lineaNotaIngreso.Cantidad = cantidadDevolucion;
                   lineaNotaIngreso.ArticuloXLocal = artxlocal;

                   lineasNotaIngreso.Add(lineaNotaIngreso);
                   lineasNotaCredito.Add(lineaNotaCredito);
               }
               else
               {
                   dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;
               }
            }

            for (int i = 0; i < dgvPacks.Rows.Count; i++)
            {
                cantidadDevolucion = Int32.Parse(dgvPacks.Rows[i].Cells["CantidadDev"].Value.ToString());

                if (cantidadDevolucion > 0)
                {
                    crearDevolucion = true;

                    //Pack
                    listaPacks[i].Pack.CantidadUtilizada = listaPacks[i].Pack.CantidadUtilizada - cantidadDevolucion;
                    objPackBL.Grabar(listaPacks[i].Pack);

                    //Doclinea Venta
                    listaPacks[i].CantidadDevuelta = listaPacks[i].CantidadDevuelta + cantidadDevolucion;
                    objDocLineaBL.Grabar(listaPacks[i]);

                    //ArticuloXLocal

                    IList<ArticuloXPack> articulosPack = objArtxPack.findArticulosXPack(listaPacks[i].Pack.Id);

                    foreach (ArticuloXPack artxpack in articulosPack)
                    {
                        ArticuloXLocal artxlocal = objArtxLocal.findArticuloEnLocal(artxpack.Articulo.Id, empleado.Local.Id);
                        artxlocal.Cantidad = artxlocal.Cantidad + artxpack.CantidadPack * cantidadDevolucion;
                        objArtxLocal.Actualizar(artxlocal);

                        //creamos una linea de ingreso para cada producto del pack
                        NotaIngresoSalidaLinea lineaNotaIngreso = new NotaIngresoSalidaLinea();
                        lineaNotaIngreso.Cantidad = cantidadDevolucion*artxpack.CantidadPack;
                        lineaNotaIngreso.ArticuloXLocal = artxlocal;

                        lineasNotaIngreso.Add(lineaNotaIngreso);
                    }

                    DocumentoLinea lineaNotaCredito = new DocumentoLinea();

                    lineaNotaCredito.Cantidad = cantidadDevolucion;
                    lineaNotaCredito.Impuesto = listaPacks[i].Impuesto;
                    lineaNotaCredito.PrecioLinea = (float)(listaPacks[i].Pack.PrecioPack*cantidadDevolucion);
                    lineaNotaCredito.CantidadDevuelta = 0;
                    lineaNotaCredito.Pack = listaPacks[i].Pack;

                    lineasNotaCredito.Add(lineaNotaCredito);
                }

                else
                {
                    dgvPacks.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;

                }
            }

            //creamos el DOCUMENTO

            if (crearDevolucion)
            {

                Documento documento = new Documento();
                documento.FechaEmision = DateTime.Today;
                documento.FechaAnulacion = null;
                documento.TipoDocumento = "NotaCredito";
                documento.Estado = "Registrado";
                documento.Total = totalDevolucion;
                documento.Subtotal = subtotal;
                documento.Caja = new RegistroCajaBL().DameCaja(empleado);
               // documento.NroDocumentoVenta = Int32.Parse(empleado.Local.Id + "" +1710);
                documento.Cliente = documentoVentaActual.Cliente;

                //creamos la NOTA DE CREDITO

                NotaCredito notaCred = new NotaCredito();
                notaCred.MontoDevolucion = totalDevolucion;
                notaCred.Motivo = richTxtMotivo.Text;
                notaCred.DocVenta = new DocVentaBL().findById(documentoVentaActual.Id.ToString());

                new NotaCreditoBL().Devolver(documento, notaCred, lineasNotaCredito, lineasNotaIngreso);

                Utils.Utils.OK(Utils.Utils.REGISTRO_OK);

                if (Utils.Utils.ContinuarOperacion("Desea exportar el documento?"))
                {
                    NotaCreditoDatos dsNotaCredito = new NotaCreditoBL().exportarDocumento(documento.NroDocumentoVenta.ToString());//, notaCred, lineasNotaCredito);

                    new frmDocumentoNotaCredito(dsNotaCredito).ShowDialog(this);
                }

                limpiarCampos();
            }

            else

                Utils.Utils.Error(null,"Las cantidades sombreadas no son válidas");
        }
Esempio n. 10
0
        private void llenarGrillas()
        {
            double totalImpuestos;
            float descuentoUnit, precioVenta, total;
            int filaArt = 0;
            int filaPack = 0;

            limpiarCampos();

            DescuentoXArticuloBL objDescXArtBL = new DescuentoXArticuloBL();

            foreach (DocumentoLinea linea in documentoVenta.DocumentoDocumentoLineafk)
            {
                if (linea.Pack == null)
                {
                    descuentoUnit = 0;
                    precioVenta = (float)linea.PrecioLinea / (float)linea.Cantidad;

                    if (linea.DescuentoXArticulo != null) //si es un articulo con descuento
                    {
                        descuentoUnit = linea.DescuentoXArticulo.PorcentajeDescuento;
                    }

                    totalImpuestos = linea.PrecioLinea * linea.Impuesto;
                    total = (float)(precioVenta*(linea.Cantidad-linea.CantidadDevuelta) + totalImpuestos - descuentoUnit *linea.Cantidad);

                    object[] row = { linea.ArticuloXLocal.Articulo.CodigoArticulo, linea.ArticuloXLocal.Articulo.Titulo, linea.ArticuloXLocal.Articulo.Tipo,linea.Impuesto, precioVenta,descuentoUnit,linea.Cantidad,linea.CantidadDevuelta,0,0};
                    dgvArticulos.Rows.Add(row);
                    listaArticulos.Add(linea);
                    filaArt++;

                }

                else //si la linea trata de un pack,agregamos este a la grilla de packs
                {

                    object[] row = { linea.Pack.CodigoPack, linea.Pack.Nombre, linea.Pack.PrecioPack, linea.Cantidad,linea.CantidadDevuelta, 0, 0 };
                    dgvPacks.Rows.Add(row);
                    listaPacks.Add(linea);
                    filaPack++;
                }
            }

            this.lblTotalVentas.Text = documentoVenta.Total.ToString("0.00");
            if (documentoVenta.Cliente != null) this.lblCliente.Text = documentoVenta.Cliente.Nombre;
            this.linkNroDocumento.Text = documentoVenta.NroDocumentoVenta.ToString();
            this.lblFechaVenta.Text =((DateTime)(documentoVenta.FechaEmision)).ToShortDateString();
            this.lblTipoDoc.Text = documentoVenta.TipoDocumento;

            if (documentoVenta.Cliente!=null)
                {
                    this.lblCliente.Text = documentoVenta.Cliente.Nombre;
                }

            documentoVentaActual = documentoVenta;
            documentoVenta = null;
        }
Esempio n. 11
0
        private void llenarDatosDevolucion()
        {
            if (txtNroDocumento.Text.Trim() == "") Utils.Utils.Error(null, "Ingrese al menos un numero de documento de venta");

            else
            {
                //if (documentoVenta == null)
               // { //el codigo fue ingresado manualmente

                    documentoVenta = new DocumentoBL().findByIdDocumento(txtNroDocumento.Text.Trim());  //buscamos por el id ingresado
                    if (documentoVenta == null)
                    {
                        Utils.Utils.Error(null, "El numero de documento no existe");
                        return;
                    }
                //}

                if (!validarLocalDevolucion())
                {
                    Utils.Utils.Error(null, "No se puede realizar la devolucion porque la venta se realizo en otro local");
                    return;
                }

                if (documentoVenta.TipoDocumento == "NotaCredito")
                {
                    Utils.Utils.Error(null, "El numero de documento ingresado no pertenece a un documento de venta");
                    return;

                }

                if (((DateTime) documentoVenta.FechaEmision).AddDays(7)<DateTime.Today)
                {
                    Utils.Utils.Error(null,"El documento de venta paso el limite los 7 dias");
                    return;
                }

                llenarGrillas();
            }
        }