示例#1
0
 public int GetCantidadTotal(Incidencia incidencia)
 {
     int cant = 0;
     foreach (IncidenciaLinea linea in incidencia.IncidenciaIncidenciaLineafk)
         cant = linea.Cantidad.Value;
     return cant;
 }
示例#2
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);
            }
        }
示例#3
0
 public int GetCantidad(Incidencia incidencia)
 {
     int cant = 0;
     foreach (IncidenciaLinea linea in incidencia.IncidenciaIncidenciaLineafk)
     { cant = linea.Cantidad.Value; break; }
     return cant;
 }
示例#4
0
        private void btnAgregarDocumento_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtNroDocumento.Text.ToString())) return;
            int nroTipoMov = int.Parse(cboTipoMovimiento.SelectedValue.ToString());
            int nroDocumento =0;
            if (int.TryParse(txtNroDocumento.Text.ToString(), out nroDocumento))
            {
                switch (nroTipoMov)
                {
                    case (int)tipoMovimiento.Transferencia:
                        transferencia = new TransferenciaBL().cargarTransferencia(nroDocumento);
                        if (transferencia != null)
                        {
                            string[] nuevaFila = new string[] { "Transferencia", transferencia.Id.ToString()};
                            dgvDocumentos.Rows.Add(nuevaFila);
                        }
                        else
                            Utils.Utils.Error(this, "Error en la carga de documento. \nRevise el número ingresado");
                        break;
                    case (int)tipoMovimiento.DevolucionAProveedor:
                        incDevolucion = new IncidenciaBL().CargarIncidencia(nroDocumento);
                        //agregar
                        if (incDevolucion != null)
                        {
                            string[] nuevaFila = new string[] { "Devolucion a proveedor", incDevolucion.Id.ToString()};
                            dgvDocumentos.Rows.Add(nuevaFila);
                            this.AcceptButton = btnAceptar;
                        }
                        else
                            Utils.Utils.Error(this, "Error en la carga de documento");
                        break;

                }
            }
        }
 public frmDetalleIncidencia(Incidencia incidencia)
 {
     InitializeComponent();
     this.incidencia = incidencia;
     articulos = new List<string>();
     cantidades = new List<string>();
 }
示例#6
0
 public void AsignarIncidenciaLineas(IList<IncidenciaLinea> lineas, Incidencia incidencia)
 {
     foreach (IncidenciaLinea linea in lineas)
     {
         linea.NroIncidencia = incidencia;
         Grabar(linea);
     }
 }
 public frmDetalleIncidencia(Incidencia incidencia)
 {
     InitializeComponent();
     this.incidencia = incidencia;
     articulos = new List<string>();
     cantidades = new List<string>();
     this.FormBorderStyle = FormBorderStyle.FixedSingle;
     this.MaximizeBox = false;
 }
示例#8
0
 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);
     }
 }
示例#9
0
        public frmDetalleSalida(Incidencia incDevolucion)
        {
            InitializeComponent();
            this.incDevolucion = incDevolucion;
            lblTEmisor.Text = "Local: ";
            lblEmisor.Text = incDevolucion.Local.Nombre;
            lblTReceptor.Text = "Proveedor: ";
            lblReceptor.Text = incDevolucion.DescripcionAdicional;
            /* OJOOOO! cuando es devolucion al proveedor...*/
            lblFecha.Text = incDevolucion.Fecha.ToString();
            lblNroMovimiento.Text = incDevolucion.NroMovimiento.Id.ToString();
            lblNroDocumento.Text = incDevolucion.Id.ToString();

            foreach (IncidenciaLinea ilinea in incDevolucion.IncidenciaIncidenciaLineafk)
            {
                /*string[] lineaGrid = new string[] { ilinea, tlinea.ArticuloXLocal.Articulo.Titulo, tlinea.CantidadArticulosAprob.ToString() };
                dgvDetalles.Rows.Add(lineaGrid);*/
            }
        }
示例#10
0
 public void Grabar(Incidencia incidencia)
 {
     new IncidenciaDA().SaveOrUpdate(incidencia);
 }
示例#11
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; }
                }
        }
示例#12
0
        private void btnVerDetalle_Click(object sender, EventArgs e)
        {
            if ((dgvDocumentos.CurrentCell != null) || (dgvDocumentos.SelectedRows.Count >0))
            {
                int fila = 0;
                if (dgvDocumentos.CurrentCell != null)
                {
                    fila = dgvDocumentos.CurrentCell.RowIndex;
                }
                else
                    fila = dgvDocumentos.CurrentRow.Index;

                string movimiento = dgvDocumentos.CurrentRow.Cells["TipoMovimiento"].Value.ToString();
                int nroDocumento = int.Parse(dgvDocumentos.CurrentRow.Cells["NroDocumento"].Value.ToString());
                if (movimiento.Equals("Transferencia"))
                {
                    transferencia = transferencia = new TransferenciaBL().cargarTransferencia(nroDocumento);
                    frmDetalleSalida ventDetalle = new frmDetalleSalida(transferencia);
                }
                else
                {//es incidencia
                    incDevolucion = new IncidenciaBL().CargarIncidencia(nroDocumento);
                    frmDetalleSalida ventDetalle = new frmDetalleSalida(incDevolucion);
                }

            }
        }
示例#13
0
        private void btnVerDetalle_Click(object sender, EventArgs e)
        {
            if (dgvDocumentos.CurrentRow != null)
            {
                int fila = dgvDocumentos.CurrentRow.Index;
                string movimiento = dgvDocumentos.CurrentRow.Cells["TipoMovimiento"].Value.ToString();
                int nroDocumento = int.Parse(dgvDocumentos.CurrentRow.Cells["NroDocumento"].Value.ToString());
                if (movimiento.Equals("Transferencia"))
                {
                    transferencia = transferencia = new TransferenciaBL().cargarTransferencia(nroDocumento);
                    if (transferencia != null)
                    {
                        frmDetalleSalida ventDetalle = new frmDetalleSalida(transferencia);
                        ventDetalle.ShowDialog(this);
                    }

                }
                else
                {//es incidencia
                    incDevolucion = new IncidenciaBL().cargarIncidencia(nroDocumento);
                    if (incDevolucion != null)
                    {
                        frmDetalleSalida ventDetalle = new frmDetalleSalida(incDevolucion);
                        ventDetalle.ShowDialog(this);
                    }
                }
            }
            else Utils.Utils.Error(this, "Seleccione el documento que desea revisar");
        }
示例#14
0
        private void btnAgregarDocumento_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtNroDocumento.Text.ToString()))
            {
                Utils.Utils.Mensaje("Ingrese un documento", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }
            if (string.IsNullOrEmpty(cboTipoMovimiento.Text.ToString())) return;
            int nroTipoMov = int.Parse(cboTipoMovimiento.SelectedValue.ToString());
            int nroDocumento =0;

            if (int.TryParse(txtNroDocumento.Text.ToString(), out nroDocumento))
            {
                /* buscar que no este en la lista antes de agregar! */
                foreach (DataGridViewRow fila in dgvDocumentos.Rows)
                {
                    if (fila.Cells["NroDocumento"].Value.ToString().Equals(txtNroDocumento.Text))
                    {
                        if (fila.Cells["TipoMovimiento"].Value.ToString().Equals(cboTipoMovimiento.Text))
                        {
                            Utils.Utils.Error(this, "Usted ya ha agregado el movimiento de " + cboTipoMovimiento.Text
                                + " con No. " + txtNroDocumento.Text + " a la lista de salida");
                            txtNroDocumento.Text = "";
                            return;
                        }
                    }
                }

                switch (nroTipoMov)
                {
                    case (int)tipoMovimiento.Transferencia:
                        transferencia = new TransferenciaBL().cargarTransferencia(nroDocumento);
                        if (transferencia != null)
                        {
                            string[] nuevaFila = new string[] { "Transferencia", transferencia.Id.ToString(), transferencia.NroMovimiento.Id.ToString()};
                            dgvDocumentos.Rows.Add(nuevaFila);
                            this.AcceptButton = btnAceptar;
                            txtNroDocumento.Text = "";
                        }
                        else
                            Utils.Utils.Error(this, "Error en la carga de documento. \nRevise el número ingresado");
                        break;
                    case (int)tipoMovimiento.DevolucionAProveedor:
                        incDevolucion = null;// new IncidenciaBL().cargarIncidencia(nroDocumento);

                        if (incDevolucion != null)
                        {
                            string[] nuevaFila = new string[] { "Devolución al proveedor", incDevolucion.Id.ToString(), incDevolucion.NroMovimiento.Id.ToString() };
                            dgvDocumentos.Rows.Add(nuevaFila);
                            this.AcceptButton = btnAceptar;
                            txtNroDocumento.Text = "";
                        }
                        else
                            Utils.Utils.Error(this, "Error en la carga de documento");
                        break;

                }
            }
        }
示例#15
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();
        }
示例#16
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");
        }
示例#17
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);
        }
示例#18
0
        public void SaveOrUpdate(Incidencia instance)
        {
            ISession hisession = null;
            try
            {
                hisession = NHibernateHelper.GetCurrentSession();
                hisession.BeginTransaction();
                if (instance.Id == 0)
                {
                    hisession.Save(instance);
                }
                else
                {
                    hisession.Merge(instance);
                }
                hisession.Transaction.Commit();
                hisession.Close();
            }
            catch (Exception ex)
            {
                if (hisession != null)
                {
                    if (hisession.IsOpen)
                    {
                        hisession.Close();

                    }
                }

            }
        }
示例#19
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;
        }
示例#20
0
        private void btnSelecc_Click(object sender, EventArgs e)
        {
            int row = -1;
            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);
                        incidenciaSeleccionada = new IncidenciaBL().findByAttributes(criterios)[0];
                    }

            }
        }
示例#21
0
        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");
        }