예제 #1
0
        void Guardar()
        {
            bool   guardar = true;
            string rpta    = "";

            if (spinEditNumeroOrden.Value == 0)
            {
                guardar = false;
                XtraMessageBox.Show("Debe ingresar el numero de orden de compra", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            if (string.IsNullOrWhiteSpace(textFacProveedor.Text))
            {
                guardar = false;
                XtraMessageBox.Show("Debe ecribir el número de factura recibido", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            if (string.IsNullOrWhiteSpace(txtSerieFactura.Text))
            {
                guardar = false;
                XtraMessageBox.Show("Debe ecribir la serie de factura recibido", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            //if (string.IsNullOrWhiteSpace(textObservaciones.Text))
            //{
            //    guardar = false;
            //    XtraMessageBox.Show("Debe ecribir las observaciones de los productos recibidos", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //}



            foreach (int indice in gridViewListaDetalleIngreso.GetSelectedRows())
            {
                if (Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "entrante")) == 0)
                {
                    guardar = false;
                    XtraMessageBox.Show("Uno o mas productos no tienen cantidad entrante, la cantidad entrante debe ser mayor a 0 para poder ingresar a bodega", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    break;
                }
            }

            foreach (int indice in gridViewListaDetalleIngreso.GetSelectedRows())
            {
                if (Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "entrante")) > Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "restantes")))
                {
                    guardar = false;
                    XtraMessageBox.Show("Uno o mas productos tienen cantidad mayor a la restante", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    break;
                }
            }

            //foreach (int indice in gridViewListaDetalleIngreso.GetSelectedRows())
            //{
            //    if (Convert.ToString(gridViewListaDetalleIngreso.GetRowCellValue(indice, "aplica_serie")) =="Si")
            //    {
            //        if (dtSeries.Rows.Count == 0)
            //        {
            //            guardar = false;
            //            XtraMessageBox.Show("Uno o mas productos aun no se les ingreso la serie", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //            break;
            //        }
            //    }
            //}

            if (lookUpEditBodegaCarga.ItemIndex < 0)
            {
                guardar = false;
                XtraMessageBox.Show("Dege seleccionar una bodega la cual se ingresaran los productos", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            if (gridViewListaDetalleIngreso.SelectedRowsCount == 0)
            {
                guardar = false;
                XtraMessageBox.Show("Debe seleccionar los prodcutos que desea para poder ingresarlos a una bodega seleccionada", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }


            if (gridViewListaDetalleIngreso.RowCount == 0)
            {
                guardar = false;
                XtraMessageBox.Show("No hay productos agregados por favor ingrese el numero de orden de compra para ver los productos", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }


            //foreach (int indice in gridViewListaDetalleIngreso.GetSelectedRows())
            //{
            //    int cont = 0;
            //    if (Convert.ToString(gridViewListaDetalleIngreso.GetRowCellValue(indice, "aplica_serie")) == "Si")
            //    {
            //        foreach (DataRow row in dtSeries.Rows)
            //        {

            //            if (Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "idproducto")) == Convert.ToInt32(row["idproducto"]))
            //            {
            //                cont++;
            //            }

            //        }

            //        //if (cont > Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "entrante")))
            //        //{
            //        //    guardar = false;
            //        //    XtraMessageBox.Show("Una o mas series no estan actualizados, debe hacer doble click en el boton de la columna serie para actualizar", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //        //    break;
            //        //}
            //        //if (cont < Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "entrante")))
            //        //{
            //        //    guardar = false;
            //        //    XtraMessageBox.Show("Una o mas series no estan actualizados, debe hacer doble click en el boton de la columna serie para actualizar", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //        //    break;
            //        //}
            //    }
            //}


            if (guardar)
            {
                int       CantidadRecibidos       = 0;
                string    producto                = "";
                int       idgenordencompradetalle = 0;
                int       contFilas               = 0;
                int       cantidadAgregar         = 0;
                DataTable dtSeriesDatos;
                correlativoDocumento = correlativoDocumento + 1;

                foreach (int i in gridViewListaDetalleIngreso.GetSelectedRows())
                {
                    CantidadRecibidos       = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(i, "entrante"));
                    producto                = Convert.ToString(gridViewListaDetalleIngreso.GetRowCellValue(i, "producto"));
                    idgenordencompradetalle = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(i, "idproducto"));

                    GeneradorDeSeries.asignaciones(CantidadRecibidos, contFilas, cantidadAgregar, idgenordencompradetalle);
                    dtSeriesDatos = GeneradorDeSeries.GnerarSeries(dtSeries, dtSeriesCopia);
                    GeneradorDeSeries.OrdenarSeries(dtSeries, dtSeriesCopia, dtSeriesDatos);
                }



                MIngreso ingreso = new MIngreso();
                ingreso.IdTienda               = Configuraciones.Configuraciones.idtienda;
                ingreso.IdUsuario              = Configuraciones.Configuraciones.idusuario;
                ingreso.IdDocumento            = 1;
                ingreso.IdSerie                = 1;
                ingreso.IdBodega               = Convert.ToInt32(lookUpEditBodegaCarga.EditValue);
                ingreso.Observaciones          = string.IsNullOrWhiteSpace(textObservaciones.Text) == true ? "" : textObservaciones.Text;
                ingreso.DescripcionDeDocumento = "BODEGA DE INGRESO: " + lookUpEditBodegaCarga.Text + ". FACTURA PROVEEDOR: " + textFacProveedor.Text + " " + txtSerieFactura.Text + ".";
                ingreso.Origen           = "TIENDA ORIGEN: " + Configuraciones.Configuraciones.tienda;
                ingreso.Destino          = "BODEGA DE INGRESO: " + lookUpEditBodegaCarga.Text;
                ingreso.FacturaProveedor = textFacProveedor.Text;
                ingreso.SerieFactura     = txtSerieFactura.Text;
                ingreso.Serie            = "A";
                ingreso.Correlativo      = correlativoDocumento;
                ingreso.IdSalidaEnc      = 0;


                List <MIngresoDetalle> IngresoDetalleInsercion = new List <MIngresoDetalle>();
                foreach (int indice in gridViewListaDetalleIngreso.GetSelectedRows())
                {
                    DataRow         row     = dtTemporalTransito.NewRow();
                    MIngresoDetalle detalle = new MIngresoDetalle();
                    detalle.IdTienda                = Configuraciones.Configuraciones.idtienda;
                    detalle.IdTiendaOrigen          = 0;
                    detalle.IdBodegaOrigen          = 0;
                    detalle.IdGenOrdenCompraDetalle = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "idgenordencompradetalle"));
                    detalle.IdSalidaDet             = 0;
                    detalle.IdProducto              = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "idproducto"));
                    detalle.Cantidad                = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "entrante"));
                    detalle.ConSeries               = false;
                    detalle.IdBodega                = Convert.ToInt32(lookUpEditBodegaCarga.EditValue);
                    detalle.Restante                = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "restantes"));
                    detalle.EsOrden = true;
                    IngresoDetalleInsercion.Add(detalle);

                    row["id_tienda"]               = Configuraciones.Configuraciones.idtienda;
                    row["cantidad"]                = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "entrante"));
                    row["id_bodega"]               = Convert.ToInt32(lookUpEditBodegaCarga.EditValue);
                    row["id_producto"]             = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "idproducto"));
                    row["idgenordencompradetalle"] = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "idgenordencompradetalle"));
                    dtTemporalTransito.Rows.Add(row);
                }



                List <MSerieProducto> IngresoDetalleInsercionSeriesProducto = new List <MSerieProducto>();

                foreach (int indice in gridViewListaDetalleIngreso.GetSelectedRows())
                {
                    foreach (DataRow item in dtSeries.Rows)
                    {
                        if (Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(indice, "idproducto")) == Convert.ToInt32(item["idproducto"]))
                        {
                            MSerieProducto serie = new MSerieProducto();
                            serie.Idtienda = Configuraciones.Configuraciones.idtienda;
                            serie.IdordenDeCompraDetalle = Convert.ToInt32(item["idproducto"]);
                            serie.Numero = Convert.ToInt32(item["numero"]);
                            serie.Serie  = Convert.ToString(item["serie"]);
                            IngresoDetalleInsercionSeriesProducto.Add(serie);
                        }
                    }
                }


                rpta = ControllerIngreso.IngresarProductos(ingreso, IngresoDetalleInsercion, IngresoDetalleInsercionSeriesProducto);

                if (rpta == "OK")
                {
                    string res = "";
                    dtDetalleInsercion = ControllerIngreso.MostrarDetalleProductosParaIngresar(correlativo, Configuraciones.Configuraciones.idtienda);

                    if (dtDetalleInsercion.Rows.Count > 0)
                    {
                        CrearTablaSeriesProductos();
                        CrearTablaSeriesProductosCopia();
                        gridControlListaDetalleIngreso.DataSource = dtDetalleInsercion;
                        gridControlListaDetalleIngreso.ForceInitialize();
                        gridViewListaDetalleIngreso.BestFitColumns();
                        totalproductosrecibidos = 0;
                        textRecibidos.Text      = 0.ToString();
                    }
                    else
                    {
                        if (con_productos_terminados)
                        {
                            if (id_estado_orden_de_compra == 3)
                            {
                                ControllerIngreso.CambiarEstadoOrdenAParcial(idordencompra, 3);
                            }
                            if (id_estado_orden_de_compra == 2)
                            {
                                ControllerIngreso.CambiarEstadoOrdenAParcial(idordencompra, 7);
                            }
                        }
                        else
                        {
                            if (id_estado_orden_de_compra == 3)
                            {
                                ControllerIngreso.CambiarEstadoOrdenAParcial(idordencompra, 3);
                            }
                            if (id_estado_orden_de_compra == 2)
                            {
                                ControllerIngreso.CambiarEstadoOrdenAParcial(idordencompra, 5);
                            }
                        }


                        idordencompra             = 0;
                        correlativo               = 0;
                        id_estado_orden_de_compra = 0;
                        textObservaciones.Text    = "";
                        textProveedor.Text        = "";

                        spinEditNumeroOrden.EditValue             = idordencompra;
                        textFacProveedor.Text                     = "";
                        txtSerieFactura.Text                      = "";
                        totalproductosrecibidos                   = 0;
                        textRecibidos.Text                        = 0.ToString();
                        txtCorrelativo.Text                       = string.Empty;
                        gridControlListaDetalleIngreso.DataSource = dtDetalleInsercion;
                        dtDetalleInsercion                        = ControllerIngreso.MostrarDetalleProductosParaIngresar(0, Configuraciones.Configuraciones.idtienda);
                    }

                    DocumentosInvetntario.DocumentosOperados.ImprimirDocumentoGenerado(
                        correlativoDocumento
                        , Configuraciones.Configuraciones.idtienda
                        , 1
                        , 0
                        , 0
                        , false
                        , 0);



                    correlativoDocumento = correlativoDocumento + 1;
                }
                else
                {
                    XtraMessageBox.Show("Ocurrio un error al ingresar los productos, por favor consulte a su administrador de datos " + rpta, "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        public void IngresarProductos()
        {
            bool   guardar = true;
            string rpta    = "";

            if (lookUpEditBodegaCarga.ItemIndex < 0)
            {
                XtraMessageBox.Show("SELECCIONE LA BODEGA DE CARGA", Configuraciones.Configuraciones.NombreDelSistema, MessageBoxButtons.OK, MessageBoxIcon.Information);
                guardar = false;
            }

            if (gridViewListaDetalleIngreso.DataRowCount == 0)
            {
                //XtraMessageBox.Show("No hay productos para ingresar", "Ingresando productos", MessageBoxButtons.OK, MessageBoxIcon.Information);
                guardar = false;
            }
            if (idtraslado == 0)
            {
                XtraMessageBox.Show("DEBE ESPECIFICAR EL DOCUMENTO", Configuraciones.Configuraciones.NombreDelSistema, MessageBoxButtons.OK, MessageBoxIcon.Information);
                guardar = false;
            }
            if (guardar)
            {
                int       CantidadRecibidos       = 0;
                string    producto                = "";
                int       idgenordencompradetalle = 0;
                int       contFilas               = 0;
                int       cantidadAgregar         = 0;
                DataTable dtSeriesDatos;
                if (id_tipo_de_documento == 2)
                {
                    for (int i = 0; i < gridViewListaDetalleIngreso.DataRowCount; i++)
                    {
                        CantidadRecibidos       = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(i, "cantidad"));
                        producto                = Convert.ToString(gridViewListaDetalleIngreso.GetRowCellValue(i, "descripcion_producto"));
                        idgenordencompradetalle = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(i, "idproducto"));

                        GeneradorDeSeries.asignaciones(CantidadRecibidos, contFilas, cantidadAgregar, idgenordencompradetalle);
                        dtSeriesDatos = GeneradorDeSeries.GnerarSeries(dtSeries, dtSeriesCopia);
                        GeneradorDeSeries.OrdenarSeries(dtSeries, dtSeriesCopia, dtSeriesDatos);
                    }
                }



                MIngreso ingreso = new MIngreso();
                ingreso.IdTienda               = Configuraciones.Configuraciones.idtienda;
                ingreso.IdUsuario              = Configuraciones.Configuraciones.idusuario;
                ingreso.IdDocumento            = id_tipo_de_documento;
                ingreso.IdSerie                = 1;
                ingreso.IdBodega               = Convert.ToInt32(lookUpEditBodegaCarga.EditValue);
                ingreso.Observaciones          = string.IsNullOrWhiteSpace(txtObservaciones.Text) == true ? "" : txtObservaciones.Text;
                ingreso.DescripcionDeDocumento = txtOrigen.Text + ". BODEGA DE INGRESO: " + lookUpEditBodegaCarga.Text;
                ingreso.Origen           = "TIENDA ORIGEN: " + Configuraciones.Configuraciones.tienda;
                ingreso.Destino          = "BODEGA DE INGRESO: " + lookUpEditBodegaCarga.Text;
                ingreso.FacturaProveedor = "";
                ingreso.SerieFactura     = "";
                ingreso.Serie            = "A";
                ingreso.Correlativo      = correlativo;
                ingreso.IdSalidaEnc      = id_salida_enca;


                List <MIngresoDetalle> IngresoDetalleInsercion = new List <MIngresoDetalle>();
                for (int i = 0; i < gridViewListaDetalleIngreso.DataRowCount; i++)
                {
                    MIngresoDetalle detalle = new MIngresoDetalle();
                    detalle.IdTienda                = Configuraciones.Configuraciones.idtienda;
                    detalle.IdTiendaOrigen          = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(i, "id_tienda"));
                    detalle.IdBodegaOrigen          = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(i, "id_bodega"));
                    detalle.IdGenOrdenCompraDetalle = 0;
                    detalle.IdSalidaDet             = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(i, "id_salida_detalle"));
                    detalle.IdProducto              = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(i, "idproducto"));
                    detalle.Cantidad                = Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(i, "cantidad"));
                    detalle.ConSeries               = false;
                    detalle.IdBodega                = Convert.ToInt32(lookUpEditBodegaCarga.EditValue);
                    detalle.Restante                = 0;
                    detalle.EsOrden = false;
                    IngresoDetalleInsercion.Add(detalle);
                }



                List <MSerieProducto> IngresoDetalleInsercionSeriesProducto = new List <MSerieProducto>();

                for (int i = 0; i < gridViewListaDetalleIngreso.DataRowCount; i++)
                {
                    foreach (DataRow item in dtSeries.Rows)
                    {
                        if (Convert.ToInt32(gridViewListaDetalleIngreso.GetRowCellValue(i, "idproducto")) == Convert.ToInt32(item["idproducto"]))
                        {
                            MSerieProducto serie = new MSerieProducto();
                            serie.Idtienda = Configuraciones.Configuraciones.idtienda;
                            serie.IdordenDeCompraDetalle = Convert.ToInt32(item["idproducto"]);
                            serie.Numero = Convert.ToInt32(item["numero"]);
                            serie.Serie  = Convert.ToString(item["serie"]);
                            IngresoDetalleInsercionSeriesProducto.Add(serie);
                        }
                    }
                }


                rpta = ControllerIngreso.IngresarProductos(ingreso, IngresoDetalleInsercion, IngresoDetalleInsercionSeriesProducto);

                if (rpta == "OK")
                {
                    //alertControl1.Show(this, "Ingreso realizado correctamnte", "Los productos se ingresaron correctamente");


                    dtDetalleInsercion =
                        ControllerDocumentosInventario.MostrarDocumentoOperado(
                            Convert.ToInt32(spinEditNumeroDocumento.EditValue)
                            , Convert.ToInt32(lookUpEditTiendas.EditValue)
                            , id_tipo_de_Salida
                            , id_origen
                            , id_destino
                            , false
                            , 1);

                    if (dtDetalleInsercion.Rows.Count > 0)
                    {
                        gridControlListaDetalleIngreso.DataSource = dtDetalleInsercion;
                        gridControlListaDetalleIngreso.ForceInitialize();
                        gridViewListaDetalleIngreso.BestFitColumns();

                        foreach (DataRow row in dtDetalleInsercion.Rows)
                        {
                            totalproductosrecibidos += Convert.ToInt32(row["cantidad"]);
                        }
                        textRecibidos.Text = totalproductosrecibidos.ToString();
                    }
                    else
                    {
                        gridControlListaDetalleIngreso.DataSource = dtDetalleInsercion;
                        txtObservaciones.Text             = string.Empty;
                        txtOrigen.Text                    = string.Empty;
                        spinEditNumeroDocumento.EditValue = 0;
                        idtraslado = 0;
                        //correlativo = 0;
                        txtCorrelativo.Text     = string.Empty;
                        totalproductosrecibidos = 0;
                    }
                    if (id_tipo_de_documento == 2)
                    {
                        ControllerNotificacion.Actualizar(Configuraciones.Configuraciones.idtienda, correlativo);

                        DocumentosInvetntario.DocumentosOperados.ImprimirDocumentoGenerado(
                            correlativo                                    // correlativo del documento
                            , Configuraciones.Configuraciones.idtienda     // id del documento
                            , id_tipo_de_documento                         // id tienda donde se reailizo la operacion
                            , Convert.ToInt32(lookUpEditTiendas.EditValue) // id origen
                            , Configuraciones.Configuraciones.idtienda
                            , true
                            , 0);
                    }
                    if (id_tipo_de_documento == 3)
                    {
                        DocumentosInvetntario.DocumentosOperados.ImprimirDocumentoGenerado(
                            correlativo                                // correlativo del documento
                            , Configuraciones.Configuraciones.idtienda // id del documento
                            , id_tipo_de_documento                     // id tienda donde se reailizo la operacion
                            , Configuraciones.Configuraciones.idtienda // id origen
                            , 0
                            , true
                            , 0);
                    }
                    this.Close();
                }
                else
                {
                    XtraMessageBox.Show("Ocurrio un erro al ingresar los productos, por favor consulte a su administrador de datos " + rpta, "Error al ingresar", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }