Beispiel #1
0
        private Boolean getegresomov()
        {
            try
            {
                //obtengo el Lst_mv_detalle_eg Detalle del movimiento de egreso
                int sec = 0;
                foreach (var item in DetalleEnsam)
                {
                    in_movi_inve_detalle_Info info = new in_movi_inve_detalle_Info();
                    in_movi_inve_detalle_x_Producto_CusCider_Info infoxprod = new in_movi_inve_detalle_x_Producto_CusCider_Info();

                    info.IdEmpresa          = infoxprod.IdEmpresa = Convert.ToInt32(param.IdEmpresa);
                    infoxprod.ot_IdEmpresa  = Convert.ToInt32(param.IdEmpresa);
                    info.IdSucursal         = infoxprod.IdSucursal = _sucursalInfo.IdSucursal;
                    infoxprod.ot_IdSucursal = _sucursalInfo.IdSucursal;
                    info.IdBodega           = infoxprod.IdBodega = _bodegaInfo.IdBodega;
                    info.IdProducto         = infoxprod.IdProducto = item.IdProducto;
                    infoxprod.CodigoBarra   = item.CodigoBarra;
                    info.Secuencia          = infoxprod.mv_Secuencia = ++sec;
                    info.IdMovi_inven_tipo  = infoxprod.IdMovi_inven_tipo = Convert.ToInt32(paramCidersus.IdMovi_inven_tipo_egr_Ensamblado);
                    info.mv_tipo_movi       = infoxprod.mv_tipo_movi = "-";
                    info.dm_cantidad        = infoxprod.dm_cantidad = -1;

                    var saldo = Bus_prodxbod.Get_Info_Producto_x_Producto(param.IdEmpresa, _sucursalInfo.IdSucursal, _bodegaInfo.IdBodega, item.IdProducto);

                    info.dm_stock_ante = saldo.pr_stock;
                    info.dm_stock_actu = info.dm_stock_ante + info.dm_cantidad;

                    in_Producto_Info prodtemp = new in_Producto_Info();
                    prodtemp            = busprod.Get_Info_BuscarProducto(item.IdProducto, param.IdEmpresa);
                    info.dm_precio      = infoxprod.dm_precio = prodtemp.pr_precio_publico == null ? 0 : Convert.ToDouble(prodtemp.pr_precio_publico);
                    info.mv_costo       = info.dm_precio;
                    infoxprod.mv_costo  = infoxprod.mv_costo = prodtemp.pr_costo_promedio == null ? 0 : Convert.ToDouble(prodtemp.pr_precio_publico);
                    info.dm_observacion = infoxprod.dm_observacion =
                        " Egr Suc " + UCSuc_Bod.cmb_sucursal.Text +
                        " Bod " + UCSuc_Bod.cmb_bodega.Text + " " +
                        item.Observacion;
                    infoxprod.ot_CodObra       = UCObra.get_item();
                    infoxprod.ot_IdOrdenTaller = OT.IdOrdenTaller;

                    Lst_mv_detalleXprod_eg.Add(infoxprod);
                    Lst_mv_detalle_eg.Add(info);
                }

                return(true);
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show("Ha ocurrido un error:" + ex.InnerException.ToString());
                return(false);
            }
        }
Beispiel #2
0
        private Boolean  validaciones()
        {
            try
            {
                cp_proveedor_Info provee = new cp_proveedor_Info();
                //provee = UCProveedor.getitem();
                if (UCSuc_Bod.get_sucursal() == null)
                {
                    MessageBox.Show("Debe seleccionar una Sucursal para la Recepcion de Material ", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                    UCSuc_Bod.cmb_sucursal.Focus(); return(false);
                }
                else if (UCSuc_Bod.get_bodega() == null)
                {
                    MessageBox.Show("Debe seleccionar una Bodega para la Recepcion de Material.", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                    UCSuc_Bod.cmb_bodega.Focus(); return(false);
                }
                //else if (UCProveedor.getitem() == null || UCProveedor.ultraCmboE_Proveedor.Text == "")
                //{
                //    MessageBox.Show("Debe seleccionar un Proveedorpara la Recepcion de Material.", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                //    UCProveedor.ultraCmboE_Proveedor.Focus(); return false;

                //}
                else if (txtGuiaDesp.Text == "")
                {
                    MessageBox.Show("Ingrese #Guia de Despacho para la Recepcion de Material.", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                    txtGuiaDesp.Focus(); return(false);
                }

                //else if (txtFact.Text == "")
                //{
                //    MessageBox.Show("Ingrese #Fact para la Recepcion de Material.", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                //    txtFact.Focus(); return false;

                //}
                else if (txtObservacion.Text == "")
                {
                    MessageBox.Show("Ingrese una Observación para la Recepcion de Material.", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                    txtObservacion.Focus(); return(false);
                }
                else if (LstDetOC.Count > 0)
                {
                    Boolean flag = false;
                    foreach (var item in LstDetOC)
                    {
                        if (item.dm_cantidad >= 0 && item.SaldoxRecibir >= item.dm_cantidad)
                        {
                            flag = true;
                        }
                        else
                        {
                            flag = false; break;
                        }

                        InfoProdxBod = new in_producto_x_tb_bodega_Info();
                        InfoProdxBod = BusProdxBod.Get_Info_Producto_x_Producto(param.IdEmpresa, UCSuc_Bod.get_sucursal().IdSucursal, UCSuc_Bod.get_bodega().IdBodega, item.IdProducto);
                        if (InfoProdxBod == null)
                        {
                            MessageBox.Show("El producto " + Busprod.Get_DescripcionTot_Producto(param.IdEmpresa, item.IdProducto) +
                                            " no está asignado a la Bodega" + UCSuc_Bod.get_bodega().bo_Descripcion, "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            return(false);
                        }
                    }
                    if (flag == false)
                    {
                        MessageBox.Show("Verifique las unidades que esta ingresando en la Recepcion de Material.", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        gridCtrlMoviInvDet.Focus(); return(false);
                    }

                    try
                    {
                        var row = LstDetOC.First(var => var.dm_cantidad > 0);
                    }
                    catch (Exception ex)
                    {
                        Log_Error_bus.Log_Error(ex.ToString());
                        MessageBox.Show("No hay valores para registrar, verifique las unidades a registrar.", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        gridCtrlMoviInvDet.Focus(); return(false);
                    }
                }
                else
                {
                    MessageBox.Show("No hay valores para registrar.", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    gridCtrlMoviInvDet.Focus(); return(false);
                }

                return(true);
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                return(false);
            }
        }
Beispiel #3
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                txtIdGestion.Focus();
                Get();

                string mensaje_cbte_cble = "";


                if (validar())
                {
                    decimal Id = 0;
                    prod_GestionProductivaTechos_CusTalme_X_in_movi_inve_Bus BusprodXMovi = new prod_GestionProductivaTechos_CusTalme_X_in_movi_inve_Bus();
                    if (Bus.GuardarDB(Info, ref Id))
                    {
                        var Parametros_Techo = ((List <prod_ModeloProduccion_CusTalme_Info>)CmbTipoModelo.Properties.DataSource).First(var => var.IdModeloProd == Convert.ToInt32(CmbTipoModelo.EditValue));
                        #region MovimientoInventarioMateriaPrima


                        var ProdMateriaPrima       = _ProdXBode_B.Get_Info_Producto_x_Producto(param.IdEmpresa, Convert.ToInt32(Parametros_Techo.IdSucursal_EgrxMateriaPrima), Convert.ToInt32(Parametros_Techo.IdBodega_EgrxMateriaPrima), Convert.ToDecimal(cmbMateriaPrima.EditValue));
                        in_movi_inve_Info InfoMovi = new in_movi_inve_Info();
                        InfoMovi.IdEmpresa         = param.IdEmpresa;
                        InfoMovi.cm_observacion    = "Egr. Materia P. X Gestion Productiva " + CmbTipoModelo.Text + "# " + Id;
                        InfoMovi.cm_tipo           = "-";
                        InfoMovi.cm_fecha          = DateTime.Now;
                        InfoMovi.Fecha_Transac     = param.Fecha_Transac;
                        InfoMovi.IdUsuario         = param.IdUsuario;
                        InfoMovi.IdUsuarioUltModi  = param.IdUsuario;
                        InfoMovi.Fecha_UltMod      = param.Fecha_Transac;
                        InfoMovi.IdBodega          = Convert.ToInt32(Parametros_Techo.IdBodega_EgrxMateriaPrima);
                        InfoMovi.IdSucursal        = Convert.ToInt32(Parametros_Techo.IdSucursal_EgrxMateriaPrima);
                        InfoMovi.IdMovi_inven_tipo = Convert.ToInt32(Parametros_Techo.IdMovi_inven_tipo_x_EgrxProduc_MatPri);
                        InfoMovi.nom_pc            = param.nom_pc;
                        Info.ip = param.ip;
                        string  men    = "";
                        decimal Idmovi = 0;
                        if (_movi_B.GrabarDB(InfoMovi, ref Idmovi, ref mensaje_cbte_cble, ref men) == false)
                        {
                            MessageBox.Show(men);
                        }
                        prod_GestionProductivaTechos_CusTalme_X_in_movi_inve_Info InfoMovxPro = new prod_GestionProductivaTechos_CusTalme_X_in_movi_inve_Info();
                        InfoMovxPro.IdEmpresa           = InfoMovxPro.prod_IdEmpresa = param.IdEmpresa;
                        InfoMovxPro.IdBodega            = InfoMovi.IdBodega;
                        InfoMovxPro.IdGestionProductiva = Id;
                        InfoMovxPro.IdMovi_inven_tipo   = InfoMovi.IdMovi_inven_tipo;
                        InfoMovxPro.IdNumMovi           = Idmovi;
                        InfoMovxPro.IdSucursal          = InfoMovi.IdSucursal;
                        if (BusprodXMovi.Guardar(InfoMovxPro, ref men) == false)
                        {
                            MessageBox.Show(men);
                        }


                        #region DetalleMovimiento
                        List <in_movi_inve_detalle_Info> ListDetalle = new List <in_movi_inve_detalle_Info>();
                        in_movi_inve_detalle_Info        _DetMovi_I  = new in_movi_inve_detalle_Info();
                        _DetMovi_I.IdBodega          = Convert.ToInt32(Parametros_Techo.IdBodega_EgrxMateriaPrima);
                        _DetMovi_I.IdEmpresa         = param.IdEmpresa;
                        _DetMovi_I.IdMovi_inven_tipo = Convert.ToInt32(Parametros_Techo.IdMovi_inven_tipo_x_EgrxProduc_MatPri);
                        _DetMovi_I.IdNumMovi         = Idmovi;
                        _DetMovi_I.IdProducto        = Info.IdProducto_MateriaPrima;
                        _DetMovi_I.IdSucursal        = Convert.ToInt32(Parametros_Techo.IdSucursal_EgrxMateriaPrima);
                        _DetMovi_I.dm_cantidad       = Convert.ToDouble(txtConsumo.EditValue);
                        _DetMovi_I.dm_observacion    = InfoMovi.cm_observacion;
                        _DetMovi_I.dm_precio         = ProdMateriaPrima.pr_precio_publico;
                        _DetMovi_I.mv_costo          = ProdMateriaPrima.pr_costo_promedio;
                        _DetMovi_I.mv_tipo_movi      = "-";
                        _DetMovi_I.dm_stock_ante     = ProdMateriaPrima.pr_stock;
                        _DetMovi_I.dm_stock_actu     = ProdMateriaPrima.pr_stock - _DetMovi_I.dm_cantidad;
                        ListDetalle.Add(_DetMovi_I);

                        #endregion
                        if (_movidet_b.GrabarDB(ListDetalle, ref men) == false)
                        {
                            MessageBox.Show(men);
                        }
                        ListDetalle.ForEach(var => var.dm_cantidad = var.dm_cantidad * -1);
                        _ProdXBode_B.ActualizarStock_x_Bodega_con_moviInven(ListDetalle, ref men);
                        #endregion
                        #region MovimientoInvenarioProducto
                        InfoMovi                   = new in_movi_inve_Info();
                        ListDetalle                = new List <in_movi_inve_detalle_Info>();
                        InfoMovi.IdEmpresa         = param.IdEmpresa;
                        InfoMovi.cm_observacion    = "Ing. Produ Ter. X Gestion Productiva " + CmbTipoModelo.Text + "# " + Id;
                        InfoMovi.cm_tipo           = "+";
                        InfoMovi.cm_fecha          = DateTime.Now;
                        InfoMovi.Fecha_Transac     = param.Fecha_Transac;
                        InfoMovi.IdUsuario         = param.IdUsuario;
                        InfoMovi.IdUsuarioUltModi  = param.IdUsuario;
                        InfoMovi.Fecha_UltMod      = param.Fecha_Transac;
                        InfoMovi.IdBodega          = Convert.ToInt32(Parametros_Techo.IdBodega_IngxProduc);
                        InfoMovi.IdSucursal        = Convert.ToInt32(Parametros_Techo.IdSucursal_IngxProduc);
                        InfoMovi.IdMovi_inven_tipo = Convert.ToInt32(Parametros_Techo.IdMovi_inven_tipo_x_IngxProduc_ProdTermi);
                        InfoMovi.nom_pc            = param.nom_pc;
                        Info.ip = param.ip;
                        if (_movi_B.GrabarDB(InfoMovi, ref Idmovi, ref mensaje_cbte_cble, ref men) == false)
                        {
                            MessageBox.Show(men);
                        }
                        InfoMovxPro                     = new prod_GestionProductivaTechos_CusTalme_X_in_movi_inve_Info();
                        InfoMovxPro.IdEmpresa           = InfoMovxPro.prod_IdEmpresa = param.IdEmpresa;
                        InfoMovxPro.IdBodega            = InfoMovi.IdBodega;
                        InfoMovxPro.IdGestionProductiva = Id;
                        InfoMovxPro.IdMovi_inven_tipo   = InfoMovi.IdMovi_inven_tipo;
                        InfoMovxPro.IdNumMovi           = Idmovi;
                        InfoMovxPro.IdSucursal          = InfoMovi.IdSucursal;
                        if (BusprodXMovi.Guardar(InfoMovxPro, ref men) == false)
                        {
                            MessageBox.Show(men);
                        }
                        Boolean segunda = false;
                        foreach (var item in Info.ListaDetalle)
                        {
                            var Producto = _ProdXBode_B.Get_Info_Producto_x_Producto(param.IdEmpresa, Convert.ToInt32(Parametros_Techo.IdSucursal_EgrxMateriaPrima), Convert.ToInt32(Parametros_Techo.IdBodega_EgrxMateriaPrima), Convert.ToDecimal(cmbMateriaPrima.EditValue));
                            _DetMovi_I                   = new in_movi_inve_detalle_Info();
                            _DetMovi_I.IdBodega          = Convert.ToInt32(Parametros_Techo.IdBodega_IngxProduc);
                            _DetMovi_I.IdEmpresa         = param.IdEmpresa;
                            _DetMovi_I.IdMovi_inven_tipo = Convert.ToInt32(Parametros_Techo.IdMovi_inven_tipo_x_IngxProduc_ProdTermi);
                            _DetMovi_I.IdNumMovi         = Idmovi;
                            _DetMovi_I.IdProducto        = item.Prod_IdProducto;
                            _DetMovi_I.IdSucursal        = Convert.ToInt32(Parametros_Techo.IdSucursal_IngxProduc);
                            _DetMovi_I.dm_cantidad       = item.Prducc_Unidades;
                            _DetMovi_I.dm_observacion    = InfoMovi.cm_observacion;
                            _DetMovi_I.dm_precio         = Producto.pr_precio_publico;
                            _DetMovi_I.mv_costo          = Producto.pr_costo_promedio;
                            _DetMovi_I.mv_tipo_movi      = "+";
                            _DetMovi_I.dm_stock_ante     = Producto.pr_stock;
                            _DetMovi_I.dm_stock_actu     = Producto.pr_stock - _DetMovi_I.dm_cantidad;
                            ListDetalle.Add(_DetMovi_I);

                            if (segunda)
                            {
                                _DetMovi_I = new in_movi_inve_detalle_Info();
                                var Producto2 = _ProdXBode_B.Get_Info_Producto_x_Producto(param.IdEmpresa, Convert.ToInt32(Parametros_Techo.IdSucursal_EgrxMateriaPrima), Convert.ToInt32(Parametros_Techo.IdBodega_EgrxMateriaPrima), Convert.ToDecimal(item.Segunda_IdProducto));
                                _DetMovi_I                   = new in_movi_inve_detalle_Info();
                                _DetMovi_I.IdBodega          = Convert.ToInt32(Parametros_Techo.IdBodega_IngxProduc);
                                _DetMovi_I.IdEmpresa         = param.IdEmpresa;
                                _DetMovi_I.IdMovi_inven_tipo = Convert.ToInt32(Parametros_Techo.IdMovi_inven_tipo_x_IngxProduc_ProdTermi);
                                _DetMovi_I.IdNumMovi         = Idmovi;
                                _DetMovi_I.IdProducto        = item.Segunda_IdProducto;
                                _DetMovi_I.IdSucursal        = Convert.ToInt32(Parametros_Techo.IdSucursal_IngxProduc);
                                _DetMovi_I.dm_cantidad       = item.Segunda_Unidades;
                                _DetMovi_I.dm_observacion    = InfoMovi.cm_observacion;
                                _DetMovi_I.dm_precio         = Producto2.pr_precio_publico;
                                _DetMovi_I.mv_costo          = Producto2.pr_costo_promedio;
                                _DetMovi_I.mv_tipo_movi      = "+";
                                _DetMovi_I.dm_stock_ante     = Producto2.pr_stock;
                                _DetMovi_I.dm_stock_actu     = Producto2.pr_stock - _DetMovi_I.dm_cantidad;
                                ListDetalle.Add(_DetMovi_I);
                            }
                            _ProdXBode_B.ActualizarStock_x_Bodega_con_moviInven(ListDetalle, ref men);
                        }
                        if (_movidet_b.GrabarDB(ListDetalle, ref men) == false)
                        {
                            MessageBox.Show(men);
                        }
                        ;

                        #endregion
                        txtIdGestion.EditValue = Id;

                        MessageBox.Show("Se ha Ingresado con exito el Registro #: " + Id);
                        btnGuardar.Enabled       = false;
                        btnGuardarYSalir.Enabled = false;
                    }
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
            }
        }
        void GenerarMOvimientoInventario(decimal IdLiquidacion)
        {
            try
            {
                string mensaje_cbte_cble = "";

                prod_Parametros_x_MoviInven_x_ModeloProduccion_Bus parametrosBus = new prod_Parametros_x_MoviInven_x_ModeloProduccion_Bus();
                in_producto_x_tb_bodega_Bus _Prod_B      = new in_producto_x_tb_bodega_Bus();
                in_movi_inve_Bus            _MoviInven_B = new in_movi_inve_Bus();
                prod_Parametros_x_MoviInven_x_ModeloProduccion_Info _parametrosProduccion_I = parametrosBus.ObtenerObjeto(param.IdEmpresa, 4);
                var _Produ_I = _Prod_B.Get_Info_Producto_x_Producto(param.IdEmpresa, Convert.ToInt32(_parametrosProduccion_I.IdSucursal_IngxProducTermi), Convert.ToInt32(_parametrosProduccion_I.IdBodega_IngxProducTermi), Convert.ToDecimal(_parametrosProduccion_I.IdProducto_ParaIngreso));
                in_movi_inve_Info _InMovi_I = new in_movi_inve_Info();
                _InMovi_I.IdBodega          = Convert.ToInt32(_parametrosProduccion_I.IdBodega_IngxProducTermi);
                _InMovi_I.IdEmpresa         = param.IdEmpresa;
                _InMovi_I.IdSucursal        = Convert.ToInt32(_parametrosProduccion_I.IdSucursal_IngxProducTermi);
                _InMovi_I.IdMovi_inven_tipo = Convert.ToInt32(_parametrosProduccion_I.IdMovi_inven_tipo_x_IngxProduc_ProdTermi);
                _InMovi_I.cm_observacion    = "Movimiento inventario por Compra de chatarra # " + IdLiquidacion;
                _InMovi_I.cm_tipo           = "+";
                _InMovi_I.cm_fecha          = Convert.ToDateTime(((DateTime)(dtpFecha.EditValue)).ToShortDateString());
                in_movi_inve_detalle_Info _MoviDetalle_i = new in_movi_inve_detalle_Info();
                _MoviDetalle_i.IdEmpresa         = param.IdEmpresa;
                _MoviDetalle_i.IdBodega          = _InMovi_I.IdBodega;
                _MoviDetalle_i.IdSucursal        = _InMovi_I.IdSucursal;
                _MoviDetalle_i.dm_observacion    = _InMovi_I.cm_observacion;
                _MoviDetalle_i.mv_tipo_movi      = _InMovi_I.cm_tipo;
                _MoviDetalle_i.IdMovi_inven_tipo = _InMovi_I.IdMovi_inven_tipo;
                _MoviDetalle_i.IdProducto        = Convert.ToDecimal(_parametrosProduccion_I.IdProducto_ParaIngreso);
                _MoviDetalle_i.dm_cantidad       = Convert.ToDouble(txtNeto.EditValue);
                _MoviDetalle_i.dm_stock_actu     = _Produ_I.pr_stock + _MoviDetalle_i.dm_cantidad;
                _MoviDetalle_i.dm_stock_ante     = _Produ_I.pr_stock;
                _MoviDetalle_i.dm_precio         = _Produ_I.pr_precio_publico;
                _MoviDetalle_i.mv_costo          = _Produ_I.pr_costo_promedio;
                _InMovi_I.listmovi_inve_detalle_Info.Add(_MoviDetalle_i);

                decimal IdMovimiento = 0;
                string  Mensaje      = "";
                if (_MoviInven_B.GrabarDB(_InMovi_I, ref IdMovimiento, ref mensaje_cbte_cble, ref Mensaje) == false)
                {
                    MessageBox.Show(Mensaje, "Error Al Guardar Movimiento Inventario");
                }

                prod_CompraChatarra_CusTalme_x__in_movi_inven_Bus  Comp_X_Movi_B = new prod_CompraChatarra_CusTalme_x__in_movi_inven_Bus();
                prod_CompraChatarra_CusTalme_x__in_movi_inven_Info Comp_X_Movi_I = new prod_CompraChatarra_CusTalme_x__in_movi_inven_Info();
                Comp_X_Movi_I.IdEmpresa            = param.IdEmpresa;
                Comp_X_Movi_I.IdLiquidacion        = IdLiquidacion;
                Comp_X_Movi_I.mv_IdBodega          = _InMovi_I.IdBodega;
                Comp_X_Movi_I.mv_IdEmpresa         = _InMovi_I.IdEmpresa;
                Comp_X_Movi_I.mv_IdMovi_inven_tipo = _InMovi_I.IdMovi_inven_tipo;
                Comp_X_Movi_I.mv_IdNumMovi         = IdMovimiento;
                Comp_X_Movi_I.mv_IdSucursal        = _InMovi_I.IdSucursal;

                if (Comp_X_Movi_B.GuardarDB(Comp_X_Movi_I) == false)
                {
                    MessageBox.Show("Error al Guardar Movimiento Inventario X Compra ", "Tabla Intermedia0");
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
            }
        }
Beispiel #5
0
        void GenerarMovimientoInvenario()
        {
            try
            {
                decimal IdMoviInvenIngres = 0;
                string  mensaje_cbte_cble = "";

                in_producto_x_tb_bodega_Bus prod_B = new in_producto_x_tb_bodega_Bus();
                in_movi_inve_detalle_x_Producto_CusCider_Bus CusCidersus_B = new in_movi_inve_detalle_x_Producto_CusCider_Bus();

                in_movi_inve_Bus in_Movi_B = new in_movi_inve_Bus();
                in_movi_inve_detalle_x_Producto_CusCider_Bus BusCusCidersu = new in_movi_inve_detalle_x_Producto_CusCider_Bus();
                var OrdenTaller = ((List <prd_OrdenTaller_Info>)(cmbOrdenTaller.Properties.DataSource)).First(v => v.IdOrdenTaller == Convert.ToDecimal(cmbOrdenTaller.EditValue));
                var Parametros  = BusParmetros.ObtenerObjeto(param.IdEmpresa);
                prd_ControlProduccion_Obrero_x_in_movi_inve_Info MoviXcConv;
                in_movi_inve_Info MoviInfo = new in_movi_inve_Info();
                MoviInfo.IdEmpresa      = param.IdEmpresa;
                MoviInfo.cm_fecha       = Convert.ToDateTime(dtpFecha.Value);
                MoviInfo.cm_observacion = txtObservacion.Text +
                                          " Eg x Prd x Ob" + cmbObra.Text +
                                          " Ot " + cmbOrdenTaller.Text +
                                          " Gt " + cmbGrupoAsignado.Text +
                                          " Et I " + txtEtapaAnterior.Text +
                                          " Et F " + txtEtapa.Text
                ;
                MoviInfo.cm_tipo           = "-";
                MoviInfo.IdBodega          = Convert.ToInt32(ctrl_Sucbod.cmb_bodega.EditValue);
                MoviInfo.IdSucursal        = Convert.ToInt32(ctrl_Sucbod.cmb_sucursal.EditValue);
                MoviInfo.IdMovi_inven_tipo = Convert.ToInt32(Parametros.IdMovi_inven_tipo_egr_ContrlProduccion);

                in_producto_Bus busprod = new in_producto_Bus();
                List <in_movi_inve_detalle_Info> Listdetalle = new List <in_movi_inve_detalle_Info>();

                foreach (var item in _ListDetalle)
                {
                    in_movi_inve_detalle_Info Obj = new in_movi_inve_detalle_Info();

                    var Producto = prod_B.Get_Info_Producto_x_Producto(param.IdEmpresa, MoviInfo.IdSucursal, MoviInfo.IdBodega, item.IdProducto);
                    Obj.IdProducto        = item.IdProducto;
                    Obj.IdSucursal        = MoviInfo.IdSucursal;
                    Obj.IdBodega          = MoviInfo.IdBodega;
                    Obj.IdEmpresa         = param.IdEmpresa;
                    Obj.IdMovi_inven_tipo = MoviInfo.IdMovi_inven_tipo;
                    Obj.IdProducto        = item.IdProducto;
                    Obj.mv_costo          = ProductosXEtapa.First(v => v.IdProducto == item.IdProducto).mv_costo;
                    Obj.dm_precio         = ProductosXEtapa.First(v => v.IdProducto == item.IdProducto).dm_precio;
                    Obj.mv_tipo_movi      = "-";
                    Obj.dm_stock_actu     = Producto.pr_stock - 1;
                    Obj.dm_stock_ante     = Producto.pr_stock;

                    var prod = busprod.Get_Info_BuscarProducto(item.IdProducto, param.IdEmpresa);
                    Obj.dm_observacion = " Prod " + prod.pr_descripcion;
                    Obj.dm_observacion = MoviInfo.cm_observacion + Obj.dm_observacion;

                    Obj.dm_cantidad = -1;


                    MoviInfo.listmovi_inve_detalle_Info.Add(Obj);
                }

                decimal IdMoviInven = 0;
                string  Msj         = "";
                int     c           = 1;
                //MoviInfo.listmovi_inve_detalle_Info.ForEach(var => var.dm_cantidad = var.dm_cantidad * -1);
                if (in_Movi_B.GrabarDB(MoviInfo, ref IdMoviInven, ref mensaje_cbte_cble, ref Msj) == false)
                {
                    MessageBox.Show(Msj, "Movimiento Egreso");
                }
                else
                {
                    MoviXcConv                      = new prd_ControlProduccion_Obrero_x_in_movi_inve_Info();
                    MoviXcConv.mv_IdBodega          = MoviInfo.IdBodega;
                    MoviXcConv.mv_IdEmpresa         = MoviInfo.IdEmpresa;
                    MoviXcConv.mv_IdMovi_inven_tipo = MoviInfo.IdMovi_inven_tipo;
                    MoviXcConv.mv_IdNumMovi         = IdMoviInven;
                    MoviXcConv.mv_IdSucursal        = MoviInfo.IdSucursal;
                    listMovi.Add(MoviXcConv);

                    MoviInfo.cm_tipo           = "+";
                    MoviInfo.IdNumMovi         = 0;
                    MoviInfo.IdMovi_inven_tipo = Convert.ToInt32(Parametros.IdMovi_inven_tipo_ing_ContrlProduccion);
                    MoviInfo.cm_observacion    = txtObservacion.Text +
                                                 " Ing x Prd x Ob" + cmbObra.Text +
                                                 " Ot " + cmbOrdenTaller.Text +
                                                 " Gt " + cmbGrupoAsignado.Text +
                                                 " Et I " + txtEtapaAnterior.Text +
                                                 " Et F " + txtEtapa.Text
                    ;

                    foreach (var v in MoviInfo.listmovi_inve_detalle_Info)
                    {
                        v.mv_tipo_movi  = "+"; v.IdMovi_inven_tipo = MoviInfo.IdMovi_inven_tipo; v.dm_cantidad = 1;
                        v.dm_stock_actu = v.dm_stock_actu + 1;
                        v.dm_stock_ante = v.dm_stock_actu;
                        var prod = busprod.Get_Info_BuscarProducto(v.IdProducto, param.IdEmpresa);
                        v.dm_observacion = " Prod " + prod.pr_descripcion;
                        v.dm_observacion = MoviInfo.cm_observacion + v.dm_observacion;
                    }

                    if (in_Movi_B.GrabarDB(MoviInfo, ref IdMoviInvenIngres, ref mensaje_cbte_cble, ref Msj) == false)
                    {
                        MessageBox.Show(Msj, "Movimiento Ingreso");
                    }
                    MoviXcConv                      = new prd_ControlProduccion_Obrero_x_in_movi_inve_Info();
                    MoviXcConv.mv_IdBodega          = MoviInfo.IdBodega;
                    MoviXcConv.mv_IdEmpresa         = MoviInfo.IdEmpresa;
                    MoviXcConv.mv_IdMovi_inven_tipo = MoviInfo.IdMovi_inven_tipo;
                    MoviXcConv.mv_IdNumMovi         = IdMoviInvenIngres;
                    MoviXcConv.mv_IdSucursal        = MoviInfo.IdSucursal;
                    listMovi.Add(MoviXcConv);
                }

                List <in_movi_inve_detalle_x_Producto_CusCider_Info> ListCidersusInfo = new List <in_movi_inve_detalle_x_Producto_CusCider_Info>();
                foreach (var item in _ListDetalle)
                {
                    in_movi_inve_detalle_x_Producto_CusCider_Info CusCidersusInfo = new in_movi_inve_detalle_x_Producto_CusCider_Info();
                    CusCidersusInfo.IdEmpresa   = param.IdEmpresa;
                    CusCidersusInfo.CodigoBarra = item.CodBarraMaestro;
                    CusCidersusInfo.dm_cantidad = -1;
                    var prod = busprod.Get_Info_BuscarProducto(item.IdProducto, param.IdEmpresa);
                    CusCidersusInfo.dm_observacion =
                        txtObservacion.Text +
                        " Eg x Prd x Ob" + cmbObra.Text +
                        " Ot " + cmbOrdenTaller.Text +
                        " Gt " + cmbGrupoAsignado.Text +
                        " Et I " + txtEtapaAnterior.Text +
                        " Et F " + txtEtapa.Text +
                        " Prod " + prod.pr_descripcion
                    ;

                    CusCidersusInfo.dm_precio              = ProductosXEtapa.First(v => v.IdProducto == item.IdProducto).dm_precio;
                    CusCidersusInfo.et_IdEmpresa           = param.IdEmpresa;
                    CusCidersusInfo.et_IdEtapa             = EtapaAnterior.IdEtapa;
                    CusCidersusInfo.et_IdProcesoProductivo = EtapaAnterior.IdProcesoProductivo;
                    CusCidersusInfo.IdBodega          = MoviInfo.IdBodega;
                    CusCidersusInfo.IdSucursal        = MoviInfo.IdSucursal;
                    CusCidersusInfo.IdMovi_inven_tipo = Convert.ToInt32(Parametros.IdMovi_inven_tipo_egr_ContrlProduccion);
                    CusCidersusInfo.IdNumMovi         = IdMoviInven;
                    CusCidersusInfo.IdProducto        = item.IdProducto;
                    CusCidersusInfo.mv_costo          = ProductosXEtapa.First(v => v.IdProducto == item.IdProducto).mv_costo;
                    CusCidersusInfo.ot_CodObra        = OrdenTaller.CodObra;
                    CusCidersusInfo.ot_IdEmpresa      = OrdenTaller.IdEmpresa;
                    CusCidersusInfo.ot_IdOrdenTaller  = OrdenTaller.IdOrdenTaller;
                    CusCidersusInfo.ot_IdSucursal     = OrdenTaller.IdSucursal;
                    CusCidersusInfo.mv_Secuencia      = c;
                    CusCidersusInfo.mv_tipo_movi      = "-";
                    c++;
                    ListCidersusInfo.Add(CusCidersusInfo);
                }


                if (BusCusCidersu.GuardarDB(ListCidersusInfo, ref Msj) == false)
                {
                    MessageBox.Show(Msj, "Cus Cidersus Egreso");
                }
                else
                {
                    foreach (var v in ListCidersusInfo)
                    {
                        v.dm_cantidad            = 1;
                        v.et_IdEtapa             = Etapa.IdEtapa;
                        v.et_IdProcesoProductivo = Etapa.IdProcesoProductivo;
                        v.IdMovi_inven_tipo      = Convert.ToInt32(Parametros.IdMovi_inven_tipo_ing_ContrlProduccion);
                        v.IdNumMovi = IdMoviInvenIngres; v.mv_tipo_movi = "+";
                        var prod = busprod.Get_Info_BuscarProducto(v.IdProducto, param.IdEmpresa);
                        v.dm_observacion =
                            txtObservacion.Text +
                            " Ing x Prd x Ob" + cmbObra.Text +
                            " Ot " + cmbOrdenTaller.Text +
                            " Gt " + cmbGrupoAsignado.Text +
                            " Et I " + txtEtapaAnterior.Text +
                            " Et F " + txtEtapa.Text +
                            " Prod " + prod.pr_descripcion
                        ;
                    }
                    if (BusCusCidersu.GuardarDB(ListCidersusInfo, ref Msj) == false)
                    {
                        MessageBox.Show(Msj, "Cus Cidersus Ingreso");
                    }
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());

                MessageBox.Show(ex.ToString());
            }
        }
        private Boolean getCab()
        {
            try
            {
                MovEgreso                    = new in_movi_inve_Info();
                MovEgreso.Idobra             = UCObra.get_item_info().CodObra;
                MovEgreso.IdordenTaller      = Convert.ToInt32(CmbOrdenTaller.EditValue);
                MovIngreso.IdEmpresa         = MovEgreso.IdEmpresa = param.IdEmpresa;
                MovEgreso.IdSucursal         = _sucursalInfo.IdSucursal;
                MovIngreso.IdSucursal        = paramCidersus.IdSucursal_Produccion;
                MovEgreso.IdBodega           = _bodegaInfo.IdBodega;
                MovIngreso.IdBodega          = paramCidersus.IdBodega_Produccion;
                MovIngreso.cm_anio           = MovEgreso.cm_anio = dtpFecha.Value.Year;
                MovIngreso.cm_fecha          = MovEgreso.cm_fecha = dtpFecha.Value;
                MovIngreso.cm_mes            = MovEgreso.cm_mes = dtpFecha.Value.Month;
                MovEgreso.cm_tipo            = "-";
                MovIngreso.cm_tipo           = "+";
                MovIngreso.Estado            = MovEgreso.Estado = "A";
                MovEgreso.IdMovi_inven_tipo  = Convert.ToInt32(paramCidersus.IdMovi_inven_tipo_egr_consumoprod);
                MovIngreso.IdMovi_inven_tipo = Convert.ToInt32(paramCidersus.IdMovi_inven_tipo_ing_consumoprod);

                var bod = busbod.Get_Info_Bodega(param.IdEmpresa,
                                                 paramCidersus.IdSucursal_Produccion, paramCidersus.IdBodega_Produccion);


                MovEgreso.IdUsuario     = MovIngreso.IdUsuario = param.IdUsuario;
                MovEgreso.nom_pc        = MovIngreso.nom_pc = param.nom_pc;
                MovEgreso.ip            = MovIngreso.ip = param.ip;
                MovEgreso.Fecha_Transac = MovIngreso.Fecha_Transac = param.Fecha_Transac;

                int sec = 0;

                LstProdGrid = new List <in_movi_inve_detalle_Info>();
                foreach (var item in ListadoDisponible)
                {
                    LstProdGrid.Add(item);
                }

                foreach (var item in LstProdGrid)
                {
                    in_movi_inve_detalle_Info ing = new in_movi_inve_detalle_Info();
                    in_movi_inve_detalle_Info egr = new in_movi_inve_detalle_Info();
                    in_movi_inve_detalle_x_Producto_CusCider_Info ItemCodBarIng = new in_movi_inve_detalle_x_Producto_CusCider_Info();
                    in_movi_inve_detalle_x_Producto_CusCider_Info ItemCodBarEgr = new in_movi_inve_detalle_x_Producto_CusCider_Info();

                    ItemCodBarIng.IdEmpresa  = ItemCodBarEgr.IdEmpresa = ing.IdEmpresa = egr.IdEmpresa = param.IdEmpresa;
                    ItemCodBarIng.IdSucursal = ing.IdSucursal = MovIngreso.IdSucursal;
                    ItemCodBarEgr.IdSucursal = egr.IdSucursal = MovEgreso.IdSucursal;
                    ItemCodBarIng.IdBodega   = ing.IdBodega = MovIngreso.IdBodega;
                    ItemCodBarEgr.IdBodega   = egr.IdBodega = MovEgreso.IdBodega;
                    ing.dm_cantidad          = ItemCodBarIng.dm_cantidad = 1;
                    egr.dm_cantidad          = ItemCodBarEgr.dm_cantidad = -1;
                    ing.IdMovi_inven_tipo    = ItemCodBarIng.IdMovi_inven_tipo = MovIngreso.IdMovi_inven_tipo;
                    egr.IdMovi_inven_tipo    = ItemCodBarEgr.IdMovi_inven_tipo = MovEgreso.IdMovi_inven_tipo;
                    egr.Secuencia            = ing.Secuencia = ItemCodBarEgr.mv_Secuencia = ItemCodBarIng.mv_Secuencia = ++sec;

                    var saldoing = Bus_prodxbod.Get_Info_Producto_x_Producto(param.IdEmpresa, MovIngreso.IdSucursal, MovIngreso.IdBodega, item.IdProducto);
                    var saldoegr = Bus_prodxbod.Get_Info_Producto_x_Producto(param.IdEmpresa, MovEgreso.IdSucursal, MovEgreso.IdBodega, item.IdProducto);
                    ing.dm_stock_ante = saldoing.pr_stock;
                    ing.dm_stock_actu = saldoing.pr_stock + ing.dm_cantidad;
                    egr.dm_stock_ante = saldoegr.pr_stock;
                    egr.dm_stock_actu = saldoegr.pr_stock - egr.dm_cantidad;

                    ItemCodBarIng.ot_IdEmpresa     = param.IdEmpresa;
                    ItemCodBarIng.ot_IdSucursal    = OT.IdSucursal;
                    ItemCodBarIng.ot_IdOrdenTaller = OT.IdOrdenTaller;
                    ItemCodBarIng.ot_CodObra       = OT.CodObra;
                    ing.IdProducto            = egr.IdProducto = ItemCodBarEgr.IdProducto = ItemCodBarIng.IdProducto = item.IdProducto;
                    ItemCodBarEgr.CodigoBarra = ItemCodBarIng.CodigoBarra = item.CodBarra;
                    ing.mv_tipo_movi          = ItemCodBarIng.mv_tipo_movi = MovIngreso.cm_tipo;
                    egr.mv_tipo_movi          = ItemCodBarEgr.mv_tipo_movi = MovEgreso.cm_tipo;

                    in_Producto_Info prod = new in_Producto_Info();
                    prod = busProducto.Get_Info_BuscarProducto(item.IdProducto, param.IdEmpresa);


                    ItemCodBarEgr.dm_observacion = egr.dm_observacion = item.dm_observacion +
                                                                        " Eg Prod " + prod.pr_descripcion;
                    ItemCodBarIng.dm_observacion = ing.dm_observacion = item.dm_observacion +
                                                                        " Ing Prod " + prod.pr_descripcion;
                    if (item.valida == true)
                    {
                        ItemCodBarEgr.dm_observacion = egr.dm_observacion = "Aut x: " + item.oc_observacion + "-" + egr.dm_observacion;
                        ItemCodBarIng.dm_observacion = ing.dm_observacion = "Aut x: " + item.oc_observacion + "-" + ing.dm_observacion;
                    }
                    MovEgreso.cm_observacion  = MovEgreso.cm_observacion + egr.dm_observacion;
                    MovIngreso.cm_observacion = MovIngreso.cm_observacion + ing.dm_observacion;

                    ItemCodBarEgr.dm_observacion = egr.dm_observacion = "Eg Suc " + ctrl_Sucbod.cmb_sucursal.Text.Trim() +
                                                                        " Bod " + ctrl_Sucbod.cmb_bodega.Text.Trim() +
                                                                        " Egr x Cons Prod -" + MovEgreso.cm_observacion + " " + txtObservacion.Text + egr.dm_observacion;

                    ItemCodBarIng.dm_observacion = ing.dm_observacion = "Ing Suc " + bod.NomSucursal.Trim() +
                                                                        " Bod " + bod.bo_Descripcion.Trim() +
                                                                        " Ing x Cons Prod -" + MovIngreso.cm_observacion + " " + txtObservacion.Text + ing.dm_observacion;

                    egr.dm_precio = item.dm_precio;
                    egr.mv_costo  = item.dm_precio;

                    ing.dm_precio = item.dm_precio;
                    ing.mv_costo  = item.dm_precio;

                    ItemCodBarEgr.et_IdProcesoProductivo = (Int32)CmbProcesoProductivo.EditValue;
                    ItemCodBarIng.et_IdProcesoProductivo = (Int32)CmbProcesoProductivo.EditValue;
                    LstDetMovEgreso.Add(egr);
                    LstDetMovIngreso.Add(ing);
                    LstDetxItemsEgr.Add(ItemCodBarEgr);
                    LstDetxItemsIng.Add(ItemCodBarIng);
                }
                MovEgreso.cm_observacion = txtObservacion.Text + "Eg Suc " + ctrl_Sucbod.cmb_sucursal.Text.Trim() +
                                           " Bod " + ctrl_Sucbod.cmb_bodega.Text.Trim() +
                                           " Egr x Cons Prod -" + MovEgreso.cm_observacion;
                MovIngreso.cm_observacion = txtObservacion.Text + "Ing Suc " + bod.NomSucursal.Trim() +
                                            " Bod " + bod.bo_Descripcion.Trim() +
                                            " Ing x Cons Prod -" + MovIngreso.cm_observacion;

                MovEgreso.listmovi_inve_detalle_Info  = LstDetMovEgreso;
                MovIngreso.listmovi_inve_detalle_Info = LstDetMovIngreso;
                return(true);
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                return(false);
            }
        }