Exemplo n.º 1
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");
        }
Exemplo n.º 2
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();
        }
Exemplo n.º 3
0
 public void Save(Movimiento movimiento)
 {
     ISession hisession = null;
     try
     {
         hisession = NHibernateHelper.GetCurrentSession();
         hisession.BeginTransaction();
         if (movimiento.Id == 0)
         {
             hisession.Save(movimiento);
         }
         else
         {
             hisession.Update(movimiento);
         }
         hisession.Transaction.Commit();
         hisession.Close();
     }
     catch (Exception ex)
     {
         if (hisession != null)
         {
             if (hisession.IsOpen) { hisession.Close(); }
         }
         if (log.IsErrorEnabled)
         {
             log.Error("No se pudo registrar movimiento : " + ex.Message);
         }
     }
 }
Exemplo n.º 4
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            int nLineas = articulos.Count;
            bool ok = true;
            string msjError = "";

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

            //CANTIDADES LLENAS
            for (int i = 0; i < nLineas; i++)
            {
                //verificar todo lleno
                string sCantAceptada = dgvIncidencias.Rows[i].Cells[4].FormattedValue.ToString();
                if (String.IsNullOrEmpty(sCantAceptada))
                {
                    dgvIncidencias.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)) || (cantidadAceptada < 0))
                    {
                        ok = false;
                        dgvIncidencias.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 (cantidadAceptada > Convert.ToInt32(dgvIncidencias.Rows[i].Cells[4].Value))
                        {
                            ok = false;
                            dgvIncidencias.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;
                            msjError = "Cantidad Mayor a la permitida.\n";
                        }
                        else
                        {
                            articulos[i].Cantidad = cantidadAceptada;
                        }
                }
            }
            //NO ARTICULOS
            if (nLineas <= 0)
            {
                ok = false;
                msjError += "No especificó ningun artículo involucrado.\n";
            }
            if (ok)
            {
                //crear objeto movimiento
                BE.Movimiento mov = new BE.Movimiento();
                mov.Local = (Local)cmbLocal.SelectedItem;
                mov.Fecha = dtpFecha.Value.Date;
                new MovimientoBL().Grabar(mov);

                //Crear objeto DarDeBaja
                DadaDeBaja baja = new DadaDeBaja();
                baja.FechaBaja = DateTime.Today;
                baja.Local = (Local)cmbLocal.SelectedItem;
                baja.NroMovimiento = mov;
                new DadaDeBajaBL().Grabar(baja);

                /*Crear objeto ajuste
                Ajuste ajuste = new Ajuste();
                ajuste.FechaAjuste = DateTime.Today;
                ajuste.Local = (Local)cmbLocal.SelectedItem;
                ajuste.NroMovimiento = mov;
                new AjusteBL().Grabar(ajuste);*/

                //creacion de objetos ajustelinea
                List<DadaDeBajaLinea> lineasBaja = new List<DadaDeBajaLinea>();
                foreach (ArticuloXLocal art in articulos)
                {
                    new ArticuloXLocalBL().Actualizar(art);
                    DadaDeBajaLinea lineaBaja = new DadaDeBajaLinea();
                    lineaBaja.ArticuloXLocal = art;
                    lineaBaja.CantidadArticulos = art.Cantidad;
                    lineasBaja.Add(lineaBaja);
                }

                new DadaDeBajaLineaBL().AsignarSolicitudesLineas(lineasBaja, baja);

                foreach (Incidencia incidencia in incidencias)
                {
                    incidencia.Estado = "Revisada";
                    new IncidenciaBL().Grabar(incidencia);
                }

                Utils.Utils.OK(IND_MENSAJE);
                this.Dispose();
            }
            else
                Utils.Utils.Error(this, msjError);
        }
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            int nLineas = dgvSolRecep.Rows.Count;
            bool ok = true;
            string msjError = "";
            int nMod=0;//CantidadModificada
            List<TransferenciaLinea> lineas = new List<TransferenciaLinea>();

            //LIMPIAR CELDAS
            for (int i = 0; i < nLineas; i++)
            {
                dgvSolRecep.Rows[i].DefaultCellStyle.BackColor = Color.White;
            }

            for (int i = 0; i < nLineas; i++)
            {
                //verificar todo lleno
                string sCantAceptada = dgvSolRecep.Rows[i].Cells[5].FormattedValue.ToString();
                string sIdSolicitudLinea = dgvSolRecep.Rows[i].Cells[0].FormattedValue.ToString();
                string sCantSolicitada = dgvSolRecep.Rows[i].Cells[4].FormattedValue.ToString();
                if (String.IsNullOrEmpty(sCantAceptada))
                {
                    dgvSolRecep.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;
                    ok = false;
                    msjError = "Cantidad vacía.\n";
                }
                else
                {
                    int cantidadAceptada;
                    //verificar numero valido
                    if ((!int.TryParse(sCantAceptada, out cantidadAceptada)) || (cantidadAceptada < 0))
                    {
                        ok = false;
                        dgvSolRecep.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;
                        msjError = "Número de cantidad no válido.\n";
                    }
                    else
                    {
                        int cantSolicitada; int.TryParse(sCantSolicitada, out cantSolicitada);
                        if (cantSolicitada < cantidadAceptada) //VALIDAR CANTIDAD ACEPTADA MENOR A SOLICITADA
                        {
                            ok = false;
                            dgvSolRecep.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown;
                            msjError = "Cantidad mayor a la cantidad Solicitada.\n";
                        }
                        else
                        {
                            SolicitudTransferenciaLinea auxSol = new SolicitudTransferenciaLinea();
                            TransferenciaLinea aux = new TransferenciaLinea();
                            int id; int.TryParse(sIdSolicitudLinea, out id);
                            auxSol = new SolicitudTransferenciaLineaBL().findSolicitudTransferenciaLineaxId(id);
                            aux.ArticuloXLocal = auxSol.ArticuloXLocal;
                            aux.CantidadArticulosAprob = cantidadAceptada;
                            if (cantSolicitada != cantidadAceptada) { nMod++; }
                            lineas.Add(aux);
                        }
                    }
                    }
            }
            if (ok)
            {
                //CREAR MOVIMIENTO
                BE.Movimiento mov = new BE.Movimiento();
                mov.Local = solicitud.LocalOrigen;
                mov.Fecha = DateTime.Now.Date;
                mov.TipoMovimiento = "Transferencia";

                //CREAR TRANSFERENCIA
                Transferencia Trans = new Transferencia();
                Trans.LocalOrigen = solicitud.LocalOrigen;
                Trans.LocalDestino = solicitud.LocalDestino;
                Trans.Movimiento = solicitud.Movimiento;
                Trans.NroMovimiento = mov;
                Trans.NroSolicitudTransferencia = solicitud;
                Trans.Estado = "Emitido";
                Trans.FechaConfirmacion = DateTime.Now.Date;

                //GRABAR MOVIMIENTO Y TRANSFERENCIA
                new MovimientoBL().Grabar(mov);
                new TransferenciaBL().Grabar(Trans);
                new TransferenciaLineaBL().AsignarSolicitudesLineas(lineas, Trans);

                //MODIFICAR SOLICITUD
                if (nMod > 0)
                    solicitud.Estado = "Parcialmente Aceptado";
                else
                    solicitud.Estado = "Aceptado";
                new SolicitudTransferenciaBL().Grabar(solicitud);
                Utils.Utils.OK(IND_MENSAJE);
                this.Dispose();
            }
            else
                Utils.Utils.Error(this, msjError);
        }
Exemplo n.º 6
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow fila in dgvDocumentos.Rows)
            {
            /*creo movimiento*/
                BE.Movimiento movSalida = new BE.Movimiento();
                movSalida.Local = this.local;
                movSalida.Fecha = System.DateTime.Now;
                movSalida.TipoMovimiento = "Salida";
                new MovimientoBL().Grabar(movSalida);

            /* creo nota de salida */
                NotaIngresoSalida notaSalida = new NotaIngresoSalida();
                notaSalida.NroMovimiento = movSalida;
                notaSalida.Local = this.local;
                notaSalida.Fecha = System.DateTime.Now;
                new NotaIngresoSalidaBL().Grabar(notaSalida);

            /* creo guia de remisión */
                GuiaRemision guiaRemision = new GuiaRemision();
                guiaRemision.Fecha = System.DateTime.Now;
                guiaRemision.NroMovimiento = movSalida;
                guiaRemision.TipoGuia = "Salida";
                guiaRemision.Estado = "Emitida";
                new GuiaRemisionBL().Grabar(guiaRemision);

                if (fila.Cells["TipoMovimiento"].Value.ToString().Equals("Transferencia"))
                {
                    List<NotaIngresoSalidaLinea> notaSalidaLineas = new List<NotaIngresoSalidaLinea>();
                    List<GuiaRemisionLinea> guiaRemisionLineas = new List<GuiaRemisionLinea>();
                    int nroDocumento = int.Parse(fila.Cells["NroDocumento"].Value.ToString());
                    Transferencia t = new TransferenciaBL().cargarTransferencia(nroDocumento);
                    foreach (TransferenciaLinea tl in t.TransferenciaTransferenciaLineafk)
                    {
                        NotaIngresoSalidaLinea auxL = new NotaIngresoSalidaLinea();
                        auxL.ArticuloXLocal = tl.ArticuloXLocal;
                        auxL.Cantidad = tl.CantidadArticulosAprob;
                        auxL.CodNota = notaSalida;
                        notaSalidaLineas.Add(auxL);
                        GuiaRemisionLinea auxGuiaRemLinea = new GuiaRemisionLinea();
                        auxGuiaRemLinea.Articulo = tl.ArticuloXLocal.Articulo;
                        auxGuiaRemLinea.Cantidad = tl.CantidadArticulosAprob;
                        auxGuiaRemLinea.NroGuia = guiaRemision;
                        guiaRemisionLineas.Add(auxGuiaRemLinea);
                        ArticuloXLocal axl = auxL.ArticuloXLocal;
                        axl.Cantidad = axl.Cantidad - auxL.Cantidad;
                        new ArticuloXLocalBL().Actualizar(axl);
                    }
                    new NotaIngresoSalidaLineaBL().Grabar(notaSalidaLineas);
                    new GuiaRemisionBL().Grabar(guiaRemisionLineas);
                    Utils.Utils.Mensaje("Usted ha registrado satisfactoriamente la salida de productos. "
                                        + "\nNota de Salida asociada: " + notaSalida.Id.ToString()
                                        + "\nGuia de Remisión asociada: " + guiaRemision.Id,
                                        MessageBoxButtons.OK, Utils.Utils.REGISTRO_OK);
                    this.Dispose();
                }
                else
                {//Devolucion al proveedor
                    List<NotaIngresoSalidaLinea> notaSalidaLineas = new List<NotaIngresoSalidaLinea>();
                    int nroDocumento = int.Parse(fila.Cells["nroDocumento"].ToString());
                    Incidencia devolucion = new IncidenciaBL().cargarIncidencia(nroDocumento);
                    List<GuiaRemisionLinea> guiaRemisionLineas = new List<GuiaRemisionLinea>();
                    List<object[]> listaDatosDevolucion = new IncidenciaBL().GetListaDatosDevolucion(devolucion, local);
                    /* es una lista de duplas: cantidadArticulo - articuloXLocal */

                    foreach (object[] dupla in listaDatosDevolucion)
                    {
                        NotaIngresoSalidaLinea auxL = new NotaIngresoSalidaLinea();
                        auxL.ArticuloXLocal = (ArticuloXLocal)dupla[1];
                        auxL.Cantidad = (int)dupla[0];
                        auxL.CodNota = notaSalida;
                        notaSalidaLineas.Add(auxL);
                        GuiaRemisionLinea auxGuiaRemLinea = new GuiaRemisionLinea();
                        auxGuiaRemLinea.Articulo = ((ArticuloXLocal)dupla[1]).Articulo;
                        auxGuiaRemLinea.Cantidad = (int)dupla[0];
                        auxGuiaRemLinea.NroGuia = guiaRemision;
                        guiaRemisionLineas.Add(auxGuiaRemLinea);
                        ArticuloXLocal axl = auxL.ArticuloXLocal;
                        axl.Cantidad = axl.Cantidad - auxL.Cantidad;
                        new ArticuloXLocalBL().Actualizar(axl);
                    }
                    new NotaIngresoSalidaLineaBL().Grabar(notaSalidaLineas);
                    new GuiaRemisionBL().Grabar(guiaRemisionLineas);
                    Utils.Utils.Mensaje("Usted ha registrado satisfactoriamente la salida de productos. "
                                        + "\nNota de Salida asociada: " + notaSalida.Id.ToString()
                                        + "\nGuia de Remisión asociada: " + guiaRemision.Id,
                                        MessageBoxButtons.OK, Utils.Utils.REGISTRO_OK);
                    this.Dispose();
                }
            }
        }
Exemplo n.º 7
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (!puedeGuardar)
            {
                Utils.Utils.Mensaje("Datos incompletos o incorrectos", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (txtRazonSocial.Text.Length == 0)
            {
                Utils.Utils.Mensaje("Por favor, ingrese la Razón Social", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (txtRUC.Text.Length == 0)
            {
                Utils.Utils.Mensaje("Por favor, ingrese la RUC", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (cboEstado.Text.Length == 0)
            {
                Utils.Utils.Mensaje("Por favor, seleccione el Estado", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (dtpFecDevolucion.Value.Date <= dtpFecEntrega.Value.Date)
            {
                Utils.Utils.Mensaje("La fecha de Devolución debe ser posterior a la de Entrega", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (consignacionLineas.Count == 0)
            {
                Utils.Utils.Mensaje("Por favor, agregue artículos a la consignación", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (!Utils.Utils.ContinuarOperacion("Una vez ingresados los datos no podrán cambiarse. ¿Está totalmente seguro?"))
            {
                return;
            }
            consignacion.FechaEntrega = dtpFecEntrega.Value.Date;
            consignacion.FechaDevolucion = dtpFecDevolucion.Value.Date;
            consignacion.Estado = cboEstado.Text;
            consignacion.TipoCambio = tipoCambio;
            consignacion.Empleado = empleado;
            consignacion.FechaRegistro = DateTime.Now;

            BE.Movimiento movConsignacion = new BE.Movimiento();
            movConsignacion.Local = empleado.Local;
            movConsignacion.Fecha = System.DateTime.Now;
            new MovimientoBL().Grabar(movConsignacion);

            consignacion.NroMovimiento = movConsignacion;

            if (new DocumentoConsignacionBL().Grabar(consignacion) && new DocumentoConsignacionBL().Grabar(consignacionLineas))
            {
                Utils.Utils.OK(Utils.Utils.REGISTRO_OK);
                btnGuardar.Visible = true;
                btnCancelar.Text = "Aceptar";
            }
            else
                Utils.Utils.Error(null, "Error al guardar la información");
        }
Exemplo n.º 8
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)) || (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
                BE.Movimiento mov = new BE.Movimiento();

                    mov.Local = (Local)cmbLocal.SelectedItem;
                    mov.Fecha = dtpFecha.Value.Date;
                    mov.TipoMovimiento = "Incidencia";

                //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);
        }