예제 #1
0
        private void frmDetalleIncidencia_Load(object sender, EventArgs e)
        {
            txbFecha.Text = incidencia.Fecha.Value.ToShortDateString();
            txbLocal.Text = incidencia.Local.Nombre;
            txbTipoIncidencia.Text = incidencia.TipoIncidencia;

            try
            {
                int cant = new IncidenciaBL().GetCantidad(incidencia);
                string[] descAd = incidencia.DescripcionAdicional.Split(" ".ToCharArray());

                for (int i = 0; i < cant*2 ;i+=2 )
                {
                    string titulo="";
                    Articulo art=(new ArticuloBL().GetById(descAd[i]));
                    if (art!=null)
                        titulo=art.Titulo;
                    object[] arreglo = { descAd[i], titulo, descAd[i+1] };
                    dgvArticulos.Rows.Add(arreglo);
                }
                String texto = "";
                for (int i = cant * 2; i < descAd.Length; i++)
                {
                    texto += descAd[i];
                    texto += " ";
                }
                rtbMotivo.Text = texto;
            }
            catch (NullReferenceException ex)
            {
                Utils.Utils.Error(this, "Error al cargar de BD");
            }
        }
예제 #2
0
        public void RevisarIncidencias()
        {
            foreach (Incidencia incidencia in incidencias)
            {
                try
                {
                    int cant = new IncidenciaBL().GetCantidad(incidencia);
                    string[] descAd = incidencia.DescripcionAdicional.Split(" ".ToCharArray());

                    for (int i = 0; i < cant * 2; i += 2)
                    {
                        ArticuloXLocal artxlocal = new ArticuloXLocalBL().findArticuloXLocal(Convert.ToInt32(descAd[i]), incidencia.Local.Id);
                        int indice = estaIncluido(artxlocal);
                        if (indice>=0)
                            if ((incidencia.TipoIncidencia == "Merma") || (incidencia.TipoIncidencia == "InventarioPerdida"))
                                articulos[indice].Cantidad -= Convert.ToInt32(descAd[i+1]);
                            else
                                articulos[indice].Cantidad += Convert.ToInt32(descAd[i + 1]);
                        else
                        {
                            if ((incidencia.TipoIncidencia == "Merma") || (incidencia.TipoIncidencia == "InventarioPerdida"))
                                artxlocal.Cantidad -= Convert.ToInt32(descAd[i + 1]);
                            else
                                artxlocal.Cantidad += Convert.ToInt32(descAd[i + 1]);
                            articulos.Add(artxlocal);
                        }
                    }
                }
                catch (NullReferenceException ex) { System.Console.WriteLine(ex); }
            }
        }
예제 #3
0
        public void RevisarIncidencias()
        {
            foreach (Incidencia incidencia in incidencias)
            {
                try
                {
                    int cant = new IncidenciaBL().GetCantidad(incidencia);
                    string[] descAd = incidencia.DescripcionAdicional.Split(" ".ToCharArray());

                    for (int i = 0; i < cant * 2; i += 2)
                    {
                        ArticuloXLocal artxlocal = new ArticuloXLocalBL().findArticuloXLocal(Convert.ToInt32(descAd[i]), incidencia.Local.Id);
                        int indice = estaIncluido(artxlocal);
                        if (indice>0)
                            articulos[indice].Cantidad+=Convert.ToInt32(descAd[i+1]);
                        else
                        {
                            artxlocal.Cantidad+=Convert.ToInt32(descAd[i+1]);
                            articulos.Add(artxlocal);
                        }
                    }
                }
                catch (NullReferenceException ex){ }
            }
        }
예제 #4
0
        private void btnVerDetalle_Click(object sender, EventArgs e)
        {
            int row = -1;
            Incidencia incidencia = null;
            if (dgvIncidencias.CurrentRow != null)
            {
                row = dgvIncidencias.CurrentRow.Index;
                if (dgvIncidencias.CurrentRow.Cells[0].Value != null)
                    if ((row >= 0) && ((row - 1) <= incidencias.Count))
                    {
                        List<object> criterios = new List<object>();
                        List<string> props = new List<string>();
                        List<object> vals = new List<object>();
                        props.Add("Id");
                        vals.Add(dgvIncidencias.CurrentRow.Cells[0].Value);
                        criterios.Add(props);
                        criterios.Add(vals);
                        incidencia = new IncidenciaBL().findByAttributes(criterios)[0];
                    }

            }

            if (incidencia != null)
            {
                frmDetalleIncidencia detalleIncidencia = new frmDetalleIncidencia(incidencia);
                detalleIncidencia.Show();
            }
        }
예제 #5
0
        private void btnGenerar_Click(object sender, EventArgs e)
        {
            dsIncidencia incidencia = new dsIncidencia();
            int index = 0;
            incidencia.Reporte.AddReporteRow(dtpFechaInicio.Value.ToShortDateString(),dtpFechaFin.Value.ToShortDateString());
            foreach (Incidencia incidenciaIt in incidencias)
            {
                incidencia.Incidencia.AddIncidenciaRow(incidenciaIt.Id.ToString(), "", incidenciaIt.Local.Nombre, incidenciaIt.Fecha.Value.ToShortDateString());

                int cant = new IncidenciaBL().GetCantidad(incidenciaIt);
                string[] descAd = incidenciaIt.DescripcionAdicional.Split(" ".ToCharArray());

                for (int i = 0; i < cant * 2; i += 2)
                {
                    incidencia.IncidenciaLinea.AddIncidenciaLineaRow(descAd[i], (dsIncidencia.IncidenciaRow)incidencia.Incidencia.Rows[index], (new ArticuloBL().GetById(descAd[i])).Titulo, descAd[i + 1]);
                }
                String texto = "";
                for (int i = cant * 2; i < descAd.Length; i++)
                {
                    texto += descAd[i];
                    texto += " ";
                }
                ((dsIncidencia.IncidenciaRow)incidencia.Incidencia.Rows[index]).Descripcion = texto;
                index++;
            }

            new frmVistaReporteIncidencias(incidencia).ShowDialog();
        }
예제 #6
0
        /*public Incidencia cargarIncidenciaLinea(int nroIncidencia)
        {
            string squery = null;
            try
            {
                return new IncidenciaDA().cargarIncidenciaLinea(nroIncidencia);
            }
            catch (Exception e)
            {
                return null;
            }
        }*/
        public List<object[]> GetListaDatosDevolucion(Incidencia incidencia, Local local)
        {
            List<object[]> listaObjetos = null;
            int cant = new IncidenciaBL().GetCantidad(incidencia);
            string[] listaIncidencias = incidencia.DescripcionAdicional.Split(" ".ToCharArray());

            for (int i = 0; i < cant*2 ;i+=2 )
                {
                    int idArticulo = 0;
                    int.TryParse(listaIncidencias[i],out idArticulo);
                    ArticuloXLocal axl = new ArticuloXLocalBL().findArticuloEnLocal(idArticulo, local.Id);
                    int cantidadDevuelta = 0;
                    int.TryParse(listaIncidencias[i+1],out cantidadDevuelta);
                    object [] dupla = {axl, cantidadDevuelta};
                    listaObjetos.Add(dupla);
                }

            return listaObjetos;
        }
예제 #7
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();
                }
            }
        }