コード例 #1
0
        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);
            }
        }
コード例 #2
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            int nLineas = lineas.Count;
            bool ok = true;
            int nError = 0;//0=vacio
            for (int i = 0; i < nLineas; i++)
            {
                dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.White;
            }
            rtbMotivo.BackColor = Color.White;
            txbNroDoc.BackColor = Color.White;

            if (cmbTipoIncidencia.Text == "DEVOLUCION" && txbNroDoc.Text == "")
            {
                ok = false;
                txbNroDoc.BackColor = Color.RosyBrown;
                nError = 2;//NO ESCRIBIO NROOC
            }
            else
                if (rtbMotivo.Text == "")
                {
                    ok = false;
                    rtbMotivo.BackColor = Color.RosyBrown;
                    nError = 4;//NO ESCRIBIO RAZON
                }
                else
                    for (int i = 0; i < nLineas; i++)
                    {
                        //verificar todo lleno
                        string sCantAceptada = dgvArticulos.Rows[i].Cells[2].FormattedValue.ToString();
                        if (String.IsNullOrEmpty(sCantAceptada))
                        {
                            dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;
                            ok = false;
                            nError = 0;//VACIO
                        }
                        else
                        {
                            int cantidadAceptada;
                            //verificar numero valido
                            if (!int.TryParse(sCantAceptada, out cantidadAceptada))
                            {
                                ok = false;
                                dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;
                                nError = 1;//NUMERO NO VALIDO
                            }
                            else
                                if (!validaCantidad(cantidadAceptada, i))
                                {
                                    ok = false;
                                    dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;
                                    nError = 3;//NUMERO MAYOR A STOCK
                                }
                                else
                                {
                                    String cant = cantidadAceptada.ToString();
                                    cantidades.Add(cant);
                                }

                        }
                    }
            if (ok)
            {
                //crear objeto movimiento
                Movimiento mov = new Movimiento();
                if (cmbTipoIncidencia.Text == "DEVOLUCION")
                    mov = new MovimientoBL().GetByOC(Convert.ToInt32(txbNroDoc.Text));
                else
                {
                    mov.Local = (Local)cmbLocal.SelectedItem;
                    mov.Fecha = dtpFecha.Value.Date;
                    new MovimientoBL().Grabar(mov);
                }

                //Crear objeto incidencia
                Incidencia incid = new Incidencia();
                String descAd="";
                for (int i=0;i<lineas.Count;i++)
                {
                    descAd += lineas[i];
                    descAd += " ";
                    descAd += cantidades[i];
                    descAd += " ";
                }
                descAd += rtbMotivo.Text;
                incid.DescripcionAdicional = descAd;
                incid.Estado = "CREADA";
                incid.Fecha = dtpFecha.Value.Date;
                incid.Local = (Local)cmbLocal.SelectedItem;
                incid.TipoIncidencia = cmbTipoIncidencia.Text;
                incid.NroMovimiento = mov;
                new IncidenciaBL().Grabar(incid);

                //creacion de objetos incidencialinea
                IncidenciaLinea incidlinea1 = new IncidenciaLinea();
                IncidenciaLinea incidlinea2 = new IncidenciaLinea();
                //Cantidad de articulos diferentes
                incidlinea1.Cantidad = lineas.Count;
                incidlinea1.NroIncidencia = incid;
                //cantidad total de arituclos dañados
                incidlinea2.Cantidad = Convert.ToInt32(txbCantidadTotal.Text);
                incidlinea2.NroIncidencia = incid;
                new IncidenciaLineaBL().Grabar(incidlinea1);
                new IncidenciaLineaBL().Grabar(incidlinea2);

                Utils.Utils.OK(IND_MENSAJE);
                this.Dispose();
            }
            else
                switch (nError)
                {
                    case 0: { Utils.Utils.Error(this, "Cantidad se encuentra vacia"); break; }
                    case 1: { Utils.Utils.Error(this, "Cantidad no es un número válido"); break; }
                    case 2: { Utils.Utils.Error(this, "No ha indicado el Nro de Orden de Compra para la Devolucion"); break; }
                    case 3: { Utils.Utils.Error(this, "Cantidad mayor a la permitida"); break; }
                    case 4: { Utils.Utils.Error(this, "Motivo no especificado"); break; }
                }
        }
コード例 #3
0
        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");
        }
コード例 #4
0
        private void btnTerminar_Click(object sender, EventArgs e)
        {
            bool hayIncidencia = false;
            String descAdPerdida = "";
            String descAdExceso = "";
            int cantTotalLineasPerdida = 0;
            int cantTotalLineasExceso = 0;
            int cantTotalPerdida = 0;
            int cantTotalExceso = 0;

            foreach (ControlInventarioLinea controlLinea in controlLineasBL.GetAll())
            {
                if (controlLinea.Cantidad != controlLinea.ArticuloXLocal.Cantidad)
                {
                    if (!hayIncidencia) hayIncidencia = true;
                    if (controlLinea.Cantidad >= controlLinea.ArticuloXLocal.Cantidad)
                    {
                        descAdExceso += controlLinea.ArticuloXLocal.Articulo.Id.ToString();
                        descAdExceso += " ";
                        descAdExceso += (controlLinea.Cantidad - controlLinea.ArticuloXLocal.Cantidad);
                        descAdExceso += " ";

                        cantTotalExceso += Convert.ToInt32(controlLinea.Cantidad - controlLinea.ArticuloXLocal.Cantidad);

                        cantTotalLineasExceso++;
                    }
                    else
                    {
                        descAdPerdida += controlLinea.ArticuloXLocal.Articulo.Id.ToString();
                        descAdPerdida += " ";
                        descAdPerdida += (controlLinea.ArticuloXLocal.Cantidad - controlLinea.Cantidad);
                        descAdPerdida += " ";

                        cantTotalPerdida += Convert.ToInt32(controlLinea.ArticuloXLocal.Cantidad - controlLinea.Cantidad);

                        cantTotalLineasPerdida++;
                    }
                }
            }
            if (hayIncidencia)
            {
                if (cantTotalLineasExceso > 0)
                {

                    descAdExceso += " Exceso en toma de Inventario";

                    BE.Movimiento mov = new BE.Movimiento();
                    mov.Local = controlInventario.Local;
                    mov.Fecha = DateTime.Now;

                    //Crear objeto incidencia
                    Incidencia incid = new Incidencia();
                    incid.DescripcionAdicional = descAdExceso;
                    incid.Estado = "Creada";
                    incid.Fecha = DateTime.Now;
                    incid.Local = controlInventario.Local;
                    incid.TipoIncidencia = "InventarioExceso";
                    //por confirmar diana
                    incid.NroMovimiento = mov;

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

                    //GRABAR MOVIMIENTO E INCIDENCIA
                    new MovimientoBL().Grabar(mov);
                    new IncidenciaBL().Grabar(incid);
                    new IncidenciaLineaBL().Grabar(incidlinea1);
                    new IncidenciaLineaBL().Grabar(incidlinea2);
                }
                if (cantTotalLineasPerdida > 0)
                {
                    BE.Movimiento mov = new BE.Movimiento();
                    mov.Local = controlInventario.Local;
                    mov.Fecha = DateTime.Now;

                    //Crear objeto incidencia
                    Incidencia incid = new Incidencia();
                    incid.DescripcionAdicional = descAdPerdida;
                    incid.Estado = "Creada";
                    incid.Fecha = DateTime.Now;
                    incid.Local = controlInventario.Local;
                    incid.TipoIncidencia = "InventarioPerdida";
                    //por confirmar diana
                    incid.NroMovimiento = mov;

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

                    //GRABAR MOVIMIENTO E INCIDENCIA
                    new MovimientoBL().Grabar(mov);
                    new IncidenciaBL().Grabar(incid);
                    new IncidenciaLineaBL().Grabar(incidlinea1);
                    new IncidenciaLineaBL().Grabar(incidlinea2);

                }
            }
            Utils.Utils.Mensaje("Se ha terminado de Registrar el Control de Inventario", MessageBoxButtons.OK, MessageBoxIcon.Information);
            this.Dispose();
        }
コード例 #5
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            int nLineas = lineas.Count;
            bool ok = true;
            string msjError = "";

            //LIMPIRAR CELDAS
            for (int i = 0; i < nLineas; i++)
            {
                dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.White;
            }
            rtbMotivo.BackColor = Color.White;
            txbNroDoc.BackColor = Color.White;

            //CANTIDADES LLENAS
            for (int i = 0; i < nLineas; i++)
            {
                //verificar todo lleno
                string sCantAceptada = dgvArticulos.Rows[i].Cells[2].FormattedValue.ToString();
                if (String.IsNullOrEmpty(sCantAceptada))
                {
                    dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;
                    ok = false;
                    msjError = "No especificó ninguna cantidad asociada.\n";
                }
                else
                {
                    int cantidadAceptada;
                    //verificar numero valido
                    if ((!int.TryParse(sCantAceptada, out cantidadAceptada)))
                        if(cantidadAceptada<0)
                        {
                            ok = false;
                            dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;
                            msjError = "No especificó un número de cantidad válido.\n";
                        }
                        else
                            //verificar cantidaad menor a la permitida
                            if (!validaCantidad(cantidadAceptada, i))
                            {
                                ok = false;
                                dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;
                                msjError = "Cantidad Mayor a la permitida.\n";
                            }
                            else
                            {
                                String cant = cantidadAceptada.ToString();
                                cantidades.Add(cant);
                            }
                }

                //NO ARTICULOS
                if (nLineas <= 0)
                {
                    ok = false;
                    msjError += "No especificó ningun artículo involucrado.\n";
                }

                //DEVOLUCION Y NRODOC
                if (cmbTipoIncidencia.Text == "DEVOLUCION" && txbNroDoc.Text == "")
                {
                    ok = false;
                    txbNroDoc.BackColor = Color.RosyBrown;
                    msjError += "No especificó Nro de Orden de Compra.\n";
                }

                //MOTIVO LLENO
                if (rtbMotivo.Text == "")
                {
                    ok = false;
                    rtbMotivo.BackColor = Color.RosyBrown;
                    msjError += "No especificó Motivo.\n";
                }
            }
            if (ok)
            {
                //crear objeto movimiento
                Movimiento mov = new Movimiento();
                if (cmbTipoIncidencia.Text == "DEVOLUCION")
                    mov = new MovimientoBL().GetByOC(Convert.ToInt32(txbNroDoc.Text));
                else
                {
                    mov.Local = (Local)cmbLocal.SelectedItem;
                    mov.Fecha = dtpFecha.Value.Date;
                }

                //Crear objeto incidencia
                Incidencia incid = new Incidencia();
                String descAd = "";
                int cantTotal = 0;
                for (int i = 0; i < lineas.Count; i++)
                {
                    descAd += lineas[i];
                    descAd += " ";
                    descAd += cantidades[i];
                    descAd += " ";
                    cantTotal += Convert.ToInt32(cantidades[i]);
                }
                descAd += rtbMotivo.Text;
                incid.DescripcionAdicional = descAd;
                incid.Estado = "Creada";
                incid.Fecha = dtpFecha.Value.Date;
                incid.Local = (Local)cmbLocal.SelectedItem;
                incid.TipoIncidencia = cmbTipoIncidencia.Text;
                incid.NroMovimiento = mov;

                //creacion de objetos incidencialinea
                IncidenciaLinea incidlinea1 = new IncidenciaLinea();
                IncidenciaLinea incidlinea2 = new IncidenciaLinea();
                //Cantidad de articulos diferentes
                incidlinea1.Cantidad = lineas.Count;
                incidlinea1.NroIncidencia = incid;
                //cantidad total de arituclos dañados
                incidlinea2.Cantidad = cantTotal;
                incidlinea2.NroIncidencia = incid;

                //GRABAR MOVIMIENTO E INCIDENCIA
                new MovimientoBL().Grabar(mov);
                new IncidenciaBL().Grabar(incid);
                new IncidenciaLineaBL().Grabar(incidlinea1);
                new IncidenciaLineaBL().Grabar(incidlinea2);

                Utils.Utils.OK(IND_MENSAJE);
                this.Dispose();
            }
            else
                Utils.Utils.Error(this, msjError);
        }
コード例 #6
0
 public void Grabar(IncidenciaLinea solicitudlinea)
 {
     new IncidenciaLineaDA().SaveOrUpdate(solicitudlinea);
 }
コード例 #7
0
        public void SaveOrUpdate(IncidenciaLinea 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();

                    }
                }

            }
        }