private void btnAgregarArticulo_Click(object sender, EventArgs e)
        {
            if (articuloTemporal == null)
            {
                articuloTemporal = new ArticuloXLocalBL().FindByCodigoBarras(txtCodigoArticulo.Text, empleado.Local);
                if (articuloTemporal == null)
                {
                    Utils.Utils.Error(null, "No existe dicho artículo para este local");
                    return;
                }

            }

            DocumentoLinea documentoLinea = new DocumentoLinea();
            documentoLinea.ArticuloXLocal = articuloTemporal;
            documentoLinea.Cantidad = (int)nruCantidad.Value;
            documentoLinea.CantidadDevuelta = 0;
            float indIGV = (float)(articuloTemporal.Articulo.IndIGV == "S" ? 0.19 : 0);
            documentoLinea.Impuesto = (float)1 + indIGV;

            documentoLinea.PrecioLinea = articuloTemporal.Articulo.PrecioVenta * (int)documentoLinea.Cantidad;

            lineasDocumento.Add(documentoLinea);

            double subtotal = documentoLinea.PrecioLinea;
            object[] row = { articuloTemporal.Articulo.CodigoArticulo, articuloTemporal.Articulo.Titulo, articuloTemporal.Articulo.Tipo, nruCantidad.Value.ToString(), articuloTemporal.Articulo.PrecioVenta.ToString(), subtotal.ToString() };
            dgvArticulos.Rows.Add(row);
        }
        public void Actualizar(ArticuloXLocal articuloXLocal)
        {
            new ArticuloXLocalDA().SaveOrUpdate(articuloXLocal);
            if (articuloXLocal.Cantidad < 0)
            {
                Movimiento mov = new Movimiento();
                mov.Fecha = DateTime.Today;
                mov.Local = articuloXLocal.Local;
                new MovimientoBL().Grabar(mov);

                Incidencia incidencia = new Incidencia();
                incidencia.NroMovimiento = mov;
                incidencia.DescripcionAdicional = articuloXLocal.Id.ToString() + articuloXLocal.Cantidad.ToString() +" FUERA DE RANGO DE STOCK";
                incidencia.Estado = "Creada";
                incidencia.Fecha = DateTime.Today;
                incidencia.Local = articuloXLocal.Local;
                incidencia.TipoIncidencia = "Ajuste";
                new IncidenciaBL().Grabar(incidencia);

                IncidenciaLinea linea = new IncidenciaLinea();
                linea.Cantidad = 1;
                linea.NroIncidencia = incidencia;
                new IncidenciaLineaBL().Grabar(linea);
            }
        }
 private bool articuloIngresado(ArticuloXLocal art)
 {
     foreach (SolicitudTransferenciaLinea linea in lineas)
     {
         if (linea.ArticuloXLocal.Id == art.Id)
             return true;
     }
     return false;
 }
 public int GetCantidad(Transferencia trans, ArticuloXLocal artxlocal)
 {
     List<string> properties = new List<string>();
     List<object> values = new List<object>();
     properties.Add("NroTransferencia");
     properties.Add("ArticuloXLocal");
     values.Add(trans.Id);
     values.Add(artxlocal.Id);
     TransferenciaLinea translinea = new TransferenciaLineaDA().FindByProperties(properties, values)[0];
     int cant = translinea.CantidadArticulosAprob.Value;
     return cant;
 }
 public void Actualizar(ArticuloXLocal articuloXLocal)
 {
     new ArticuloXLocalDA().SaveOrUpdate(articuloXLocal);
     if (articuloXLocal.Cantidad < 0)
     {
         Incidencia incidencia = new Incidencia();
         incidencia.DescripcionAdicional = "AUTO-" + articuloXLocal.Articulo.CodigoArticulo.ToString() + " FUERA DE RANGO DE STOCK";
         incidencia.Estado = "CREADA";
         incidencia.Fecha = DateTime.Today;
         incidencia.Local = articuloXLocal.Local;
         incidencia.TipoIncidencia = "AJUSTE";
         new IncidenciaBL().Grabar(incidencia);
     }
 }
        private void btnAgregarArticulo_Click(object sender, EventArgs e)
        {
            if (articuloTemporal == null)
            {
                articuloTemporal = new ArticuloXLocalBL().FindByCodigoBarras(txtCodigoArticulo.Text, empleado.Local);
                if (articuloTemporal == null)
                {
                    Utils.Utils.Error(null, "No existe dicho artículo para este local");
                    return;
                }

            }

            DocumentoLinea documentoLinea = new DocumentoLinea();
            documentoLinea.ArticuloXLocal = articuloTemporal;
            documentoLinea.Cantidad = (int)nruCantidad.Value;
            documentoLinea.CantidadDevuelta = 0;
            float indIGV = (float)(articuloTemporal.Articulo.IndIGV == "S" ? 1.19 : 0);

            documentoLinea.PrecioLinea = articuloTemporal.Articulo.PrecioVenta * (int)documentoLinea.Cantidad;

            documentoLinea.Impuesto = (indIGV);
            bool pode = true;

            foreach (DocumentoLinea lin in lineasDocumento)
            {
                if (lin.ArticuloXLocal.Articulo.Id == documentoLinea.ArticuloXLocal.Articulo.Id)
                    pode = false;
            }

            if (!pode)
            {
                Utils.Utils.Error(null, "El articulo ya esta en lista, actualize la Cantidad respectiva");
                return;
            }
            lineasDocumento.Add(documentoLinea);

            double subtotal = documentoLinea.PrecioLinea;
            object[] row = { articuloTemporal.Articulo.CodigoArticulo, articuloTemporal.Articulo.Titulo, articuloTemporal.Articulo.Tipo, nruCantidad.Value.ToString(), articuloTemporal.Articulo.PrecioVenta.ToString(), subtotal.ToString() };
            dgvArticulos.Rows.Add(row);
        }
        public void CargarLinea(Articulo articulo)
        {
            ArticuloXLocalBL artxlocalBL = new ArticuloXLocalBL();
            ArticuloXLocal artxlocal= new ArticuloXLocal();
            try
            {
                if (cmbMovimiento.Text.Equals("SALIDA"))
                   artxlocal = artxlocalBL.findArticuloXLocal(articulo.Id, ((Local)cmbLocalOrigen.SelectedItem).Id);
                else
                    artxlocal = artxlocalBL.findArticuloXLocal(articulo.Id, ((Local)cmbLocalDestino.SelectedItem).Id);
                if (!articuloIngresado(artxlocal))
                {
                    object[] arreglo = { artxlocal.Id, articulo.Titulo, artxlocal.Cantidad, "" };
                    dgvArticulos.Rows.Add(arreglo);
                    guardarLinea(artxlocal);
                }
                else Utils.Utils.Error(this, "El articulo ya esta en la lista");

            }
            catch (NullReferenceException ex)
            {
                Utils.Utils.Error(this, "El local no contiene el articulo que solicito");
            }
        }
 public void CargarArticulo(ArticuloXLocal articuloXLocal)
 {
     this.articuloTemporal = articuloXLocal;
     txtCodigoArticulo.Text = articuloXLocal.Articulo.CodigoArticulo;
 }
        private void btnRegistrar_Click(object sender, EventArgs e)
        {
            List<String> properties = new List<String>();
            List<Object> values = new List<Object>();
            properties.Add("IdArticuloXLocal");
            if ((articuloXlocal == null) && (txtProducto.Text!=""))  this.articuloXlocal = new ArticuloXLocalBL().findArticuloXLocal(int.Parse(txtProducto.Text), revisionSeleccionada.Local.Id);
            if (articuloXlocal == null)
            {
                Utils.Utils.Error(null, "El codigo del producto no es correcto");
            }
            else
            {
                values.Add(articuloXlocal.Id);
                properties.Add("NroControl");
                values.Add(revisionSeleccionada.NroControl.Id);
                controlInventarioLineas = new ControlInventarioLineaBL().Buscar(properties, values);
                if (controlInventarioLineas.Count == 0)
                {
                    nuevaLinea = true;
                }
                else nuevaLinea = false;
                    //txtCantidadProd.Text = controlInventarioLineas[0].Cantidad.ToString();

                if (txtProducto.Text == "")
                {
                    Utils.Utils.Error(null, "Debe ingresar un producto");
                }
                else
                {
                    if (txtCantidadProd.Text == "")
                    {
                        Utils.Utils.Error(null, "Debe ingresar la cantidad que se ha contado");
                    }
                    else
                    {
                        lineaControlInventario = new ControlInventarioLinea();
                        if (nuevaLinea)
                        {
                            lineaControlInventario.ArticuloXLocal = this.articuloXlocal;
                            lineaControlInventario.NroControl = revisionSeleccionada.NroControl;
                        }
                        else
                        {
                            lineaControlInventario = controlInventarioLineas[0];
                        }
                        lineaControlInventario.Cantidad = int.Parse(txtCantidadProd.Text);

                        if (lineaControlInventario.ArticuloXLocal.Articulo.Id != articuloXlocal.Articulo.Id)
                        {
                            Utils.Utils.Error(null, "El codigo del articulo es incorrecto");
                        }
                        else
                        {
                            controlLineasBL.Grabar(lineaControlInventario);
                            Utils.Utils.OK(Utils.Utils.REGISTRO_OK);
                            txtProducto.Text = null;
                            txtCantidadProd.Text = null;
                        }
                    }
                }
            }
        }
 public void CargarArticulo(ArticuloXLocal articuloXLocal)
 {
     this.articuloXlocal = articuloXLocal;
     txtProducto.Text = articuloXlocal.Articulo.Id.ToString();
 }
 public void CargarArticulo(Articulo articulo)
 {
     txtProducto.Text = articulo.CodigoArticulo;
     this.articuloXlocal = new ArticuloXLocalBL().findArticuloXLocal(articulo.Id, revisionSeleccionada.Local.Id);
 }
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (dgvProductos.RowCount == 0)
            {
                if (txtNroDocumento.Text.Equals(""))
                    Utils.Utils.Mensaje("Ingrese el documento asociado a la entrada de productos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                else
                    Utils.Utils.Mensaje("Cargue los datos del documento ingresado", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            /* variables para generar la incidencia */
            bool hayIncidencia = false;
            string descripcionIncidencia = "";
            int cantidadArticulosDiferentes = 0;
            int cantidadDeltaTotal = 0;

            bool ok= true;
            /* Grabo movimiento */
            BE.Movimiento movEntrada = new BE.Movimiento();
            movEntrada.Local = this.local;
            movEntrada.Fecha = System.DateTime.Now;
            movEntrada.TipoMovimiento = "Ingreso";
            new MovimientoBL().Grabar(movEntrada);

            /* Grabo nota de ingreso */
            NotaIngresoSalida notaIngreso = new NotaIngresoSalida();
            notaIngreso.Fecha = System.DateTime.Now;
            notaIngreso.Local = this.local;
            notaIngreso.NroMovimiento = movEntrada;
            new NotaIngresoSalidaBL().Grabar(notaIngreso);

            /* Grabo el detalle de la nota de ingreso y verifico incidencias */
            List<NotaIngresoSalidaLinea> notaLineas = new List<NotaIngresoSalidaLinea>();
            foreach (DataGridViewRow fila in dgvProductos.Rows)
            {
                NotaIngresoSalidaLinea notaIngresoLinea = new NotaIngresoSalidaLinea();
                notaIngresoLinea.CodNota = notaIngreso;
                int cantIngresada = 0;
                if ((fila.Cells["cantIngresada"].Value!= null)
                    &&(int.TryParse(fila.Cells["cantIngresada"].Value.ToString(), out cantIngresada))
                    && int.Parse(fila.Cells["cantPedida"].Value.ToString()) >= cantIngresada)
                    notaIngresoLinea.Cantidad = cantIngresada;
                else
                {
                    ok = false;
                    fila.Cells["cantIngresada"].Style.BackColor = Color.RosyBrown;
                }
                if ((notaIngresoLinea.CodAnaquel = (Anaquel)fila.Cells["cboAnaquel"].Value) == null)
                {
                    ok = false;
                    fila.Cells["cboAnaquel"].Style.BackColor = Color.RosyBrown;
                }
                if (ok)
                {
                    notaLineas.Add(notaIngresoLinea);
                    if (int.Parse(fila.Cells["cantPedida"].Value.ToString()) != int.Parse(fila.Cells["cantIngresada"].Value.ToString()))
                    {
                        hayIncidencia = true;
                        descripcionIncidencia += fila.Cells["codigo"];
                        int diferencia = int.Parse(fila.Cells["cantPedida"].Value.ToString()) - int.Parse(fila.Cells["cantIngresada"].Value.ToString());
                        descripcionIncidencia += " " + diferencia.ToString() + " ";
                        cantidadArticulosDiferentes++;
                        cantidadDeltaTotal += diferencia;
                    }
                }
            }

            if (ok)
            {
                /* Agregar el articulo por local a la lista */
                int i = 0;
                if (ordenCompra != null)
                {
                    foreach (OrdenCompraLinea auxOCL in ordenCompra.OrdenCompraOrdenCompraLineafk)
                    {
                        ArticuloXLocal axl = new ArticuloXLocalBL().findArticuloXLocal(auxOCL.ArticuloXProveedor.Articulo.Id, local.Id);
                        if (axl != null) axl.Cantidad += notaLineas[i].Cantidad;
                        else
                        {
                            axl = new ArticuloXLocal();
                            axl.Local = this.local;
                            axl.Cantidad = notaLineas[i].Cantidad;
                            axl.Articulo = auxOCL.ArticuloXProveedor.Articulo;
                        }
                        new ArticuloXLocalBL().Actualizar(axl);
                        notaLineas[i].ArticuloXLocal = axl;
                        i++;
                    }

                }
                else if (consignacion != null)
                {
                    foreach (DocumentoConsignacionLinea auxConsigL in consignacion.DocumentoConsignacionDocumentoConsignacionLineafk)
                    {
                        ArticuloXLocal axl = new ArticuloXLocalBL().findArticuloXLocal(auxConsigL.ArticuloXProveedor.Articulo.Id, local.Id);
                        if (axl != null) axl.Cantidad += notaLineas[i].Cantidad;
                        else
                        {
                            axl = new ArticuloXLocal();
                            axl.Local = this.local;
                            axl.Cantidad = notaLineas[i].Cantidad;
                            axl.Articulo = auxConsigL.ArticuloXProveedor.Articulo;
                        }
                        new ArticuloXLocalBL().Actualizar(axl);
                        notaLineas[i].ArticuloXLocal = axl;
                        i++;
                    }
                }
                else if (transferencia != null)
                {
                    foreach (TransferenciaLinea auxTransfL in transferencia.TransferenciaTransferenciaLineafk)
                    {
                        ArticuloXLocal axl = new ArticuloXLocalBL().findArticuloXLocal(auxTransfL.ArticuloXLocal.Articulo.Id, local.Id);
                        if (axl != null) axl.Cantidad += notaLineas[i].Cantidad;
                        else
                        {
                            axl = new ArticuloXLocal();
                            axl.Local = this.local;
                            axl.Cantidad = notaLineas[i].Cantidad;
                            axl.Articulo = auxTransfL.ArticuloXLocal.Articulo;
                        }
                        new ArticuloXLocalBL().Actualizar(axl);
                        notaLineas[i].ArticuloXLocal = axl;
                        i++;
                    }
                }

                if (hayIncidencia)
                {
                    //Ingresar incidencia
                    Incidencia incidencia = new Incidencia();
                    incidencia.DescripcionAdicional = descripcionIncidencia + " - AUTO - Ingreso de articulos por " + cboTipoMovimiento.Text + " inconsistente con documento nro. " + txtNroDocumento.Text;
                    incidencia.Estado = "Creada";
                    incidencia.Fecha = DateTime.Now;
                    incidencia.Local = this.local;
                    incidencia.TipoIncidencia = "Recepción";
                    incidencia.NroMovimiento = movEntrada;

                    //creacion de objetos incidencialinea
                    IncidenciaLinea incidlinea1 = new IncidenciaLinea();
                    IncidenciaLinea incidlinea2 = new IncidenciaLinea();
                    //Cantidad de articulos diferentes
                    incidlinea1.Cantidad = cantidadArticulosDiferentes;
                    incidlinea1.NroIncidencia = incidencia;
                    //cantidad total de arituclos dañados
                    incidlinea2.Cantidad = cantidadDeltaTotal;
                    incidlinea2.NroIncidencia = incidencia;

                    //GRABAR MOVIMIENTO E INCIDENCIA
                    //new MovimientoBL().Grabar(movEntrada);
                    //new NotaIngresoSalidaBL().Grabar(notaIngreso);
                    new IncidenciaBL().Grabar(incidencia);
                    new IncidenciaLineaBL().Grabar(incidlinea1);
                    new IncidenciaLineaBL().Grabar(incidlinea2);

                }
                new NotaIngresoSalidaLineaBL().Grabar(notaLineas);
                Utils.Utils.Mensaje("Se han registrado los productos ingresados", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Dispose();
            }
            else Utils.Utils.Error(this, "Ha ocurrido un error en la grabación");
        }
Exemple #13
0
 private int estaIncluido(ArticuloXLocal artxlocal)
 {
     for (int i = 0; i < articulos.Count;i++ )
     {
         if (articulos[i].Id == artxlocal.Id)
             return i;
     }
     return -1;
 }
 public void CargarArticulo(ArticuloXLocal articuloXLocal)
 {
 }
 public int GetCantidadAceptada(SolicitudTransferencia sol, ArticuloXLocal artxlocal)
 {
     foreach (Transferencia trans in sol.SolicitudTransferenciaTransferenciafk)
         return new TransferenciaLineaBL().GetCantidad(trans, artxlocal);
     return 0;
 }
 private void guardarLinea(ArticuloXLocal artxlocal)
 {
     SolicitudTransferenciaLinea aux = new SolicitudTransferenciaLinea();
     aux.ArticuloXLocal = artxlocal;
     lineas.Add(aux);
 }
        private void ModificarStock(object sender, EventArgs e)
        {
            if ((articuloXlocal == null) && (txtProducto.Text != ""))
            {
                this.articuloXlocal = new ArticuloXLocalBL().findArticuloXLocal(int.Parse(txtProducto.Text), revisionSeleccionada.Local.Id);
            }
            if (articuloXlocal == null)
            {

            }
            else if (articuloXlocal.Articulo.CodigoArticulo.CompareTo(txtProducto.Text) == 0)
            {
                List<String> properties = new List<String>();
                List<Object> values = new List<Object>();
                properties.Add("IdArticuloXLocal");
                values.Add(articuloXlocal.Id);
                properties.Add("NroControl");
                values.Add(revisionSeleccionada.NroControl.Id);
                controlInventarioLineas = new ControlInventarioLineaBL().Buscar(properties, values);
                if (controlInventarioLineas == null)
                {
                    nuevaLinea = true;
                    btnRegistrar.Text = "Registrar";
                }
                else
                {
                    if (controlInventarioLineas.Count==0)
                    {
                        nuevaLinea = true;
                        btnRegistrar.Text = "Registrar";
                    }
                    else
                    {

                        nuevaLinea = false;
                        txtCantidadProd.Text = controlInventarioLineas[0].Cantidad.ToString();
                        btnRegistrar.Text = "Modificar";
                    }
                }

            }
            else
            {
                articulosXlocal = null;
                art = null;
                nuevaLinea = true;
                btnRegistrar.Text = "Registrar";
                txtCantidadProd.Text = null;
            }
        }
 public void CargarArticulo(ArticuloXLocal articuloXLocal)
 {
     this.articuloXlocal = articuloXLocal;
     txtProducto.Text = this.articuloXlocal.Articulo.CodigoArticulo;
 }
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            bool ok= true;
            /* Grabo movimiento */
            Movimiento movEntrada = new Movimiento();
            movEntrada.Local = this.local;
            movEntrada.Fecha = System.DateTime.Now;
            new MovimientoBL().Grabar(movEntrada);

            /* Grabo nota de ingreso */
            NotaIngresoSalida notaIngreso = new NotaIngresoSalida();
            notaIngreso.Fecha = System.DateTime.Now;
            notaIngreso.Local = this.local;
            notaIngreso.NroMovimiento = movEntrada;
            new NotaIngresoSalidaBL().Grabar(notaIngreso);

            /* Grabo el detalle de la nota de ingreso y verifico incidencias */
            List<NotaIngresoSalidaLinea> notaLineas = new List<NotaIngresoSalidaLinea>();
            foreach (DataGridViewRow fila in dgvProductos.Rows)
            {
                NotaIngresoSalidaLinea notaIngresoLinea = new NotaIngresoSalidaLinea();
                notaIngresoLinea.CodNota = notaIngreso;
                int cantIngresada = 0;
                if ((fila.Cells["cantIngresada"].Value!= null)&&(int.TryParse(fila.Cells["cantIngresada"].Value.ToString(), out cantIngresada)))
                    notaIngresoLinea.Cantidad = cantIngresada;
                else
                {
                    ok = false;
                    fila.Cells["cantIngresada"].Style.BackColor = Color.RosyBrown;
                }
                if ((notaIngresoLinea.CodAnaquel = (Anaquel)fila.Cells["cboAnaquel"].Value) == null)
                {
                    ok = false;
                    fila.Cells["cboAnaquel"].Style.BackColor = Color.RosyBrown;
                }
                if (ok)
                {
                    notaLineas.Add(notaIngresoLinea);
                    if (int.Parse(fila.Cells["cantPedida"].Value.ToString()) != int.Parse(fila.Cells["cantIngresada"].Value.ToString()))
                    {
                        //Ingresar incidencia
                        Incidencia incidencia = new Incidencia();
                        incidencia.DescripcionAdicional = "AUTO - Ingreso de articulos por "+ cboTipoMovimiento.Text +  " inconsistente con documento nro. " + txtNroDocumento.Text;
                        incidencia.Estado = "CREADA";
                        incidencia.Fecha = DateTime.Today;
                        incidencia.Local = this.local;
                        incidencia.TipoIncidencia = "RECEPCION";
                        incidencia.NroMovimiento = movEntrada;
                        new IncidenciaBL().Grabar(incidencia);
                    }
                }
            }

            if (ok)
            {
                /* Agregar el articulo por local a la lista */
                int i = 0;
                foreach (OrdenCompraLinea auxOCL in ordenCompra.OrdenCompraOrdenCompraLineafk)
                {
                    ArticuloXLocal axl = new ArticuloXLocalBL().findArticuloXLocal(auxOCL.ArticuloXProveedor.Articulo.Id, local.Id);
                    if (axl != null) axl.Cantidad += notaLineas[i].Cantidad;
                    else
                    {
                        axl = new ArticuloXLocal();
                        axl.Local = this.local;
                        axl.Cantidad = notaLineas[i].Cantidad;
                        axl.Articulo = auxOCL.ArticuloXProveedor.Articulo;
                    }
                    new ArticuloXLocalBL().Actualizar(axl);
                    notaLineas[i].ArticuloXLocal = axl;
                    i++;
                }

                new NotaIngresoSalidaLineaBL().Grabar(notaLineas);
                Utils.Utils.Mensaje("Se han registrado los productos ingresados", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Dispose();
            }
            else Utils.Utils.Error(this, "Ha ocurrido un error en la grabación");
        }