Esempio n. 1
0
        private List <in_Ing_Egr_Inven_det_Info> GetDetalle_Ing_Egr_Inven(List <in_transferencia_det_Info> listDetalle, int IdSucursal, int IdBodega, string Signo, DateTime fecha)
        {
            try
            {
                List <in_Ing_Egr_Inven_det_Info> list_IngEgrDet = new List <in_Ing_Egr_Inven_det_Info>();
                foreach (var item in listDetalle.Where(q => q.IdProducto != null).ToList())
                {
                    switch (Signo)
                    {
                    case "-":
                        info_costo = bus_costo.get_UltimoCosto_x_Producto_Bodega(item.IdEmpresa, IdSucursal, IdBodega, item.IdProducto ?? 0, fecha);
                        list_costo_historico.Add(info_costo);
                        break;

                    case "+":
                        info_costo = list_costo_historico.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdProducto == item.IdProducto);
                        break;
                    }
                    in_Ing_Egr_Inven_det_Info info = new in_Ing_Egr_Inven_det_Info();
                    info.IdEmpresa      = item.IdEmpresa;
                    info.IdSucursal     = IdSucursal;
                    info.IdNumMovi      = 0;
                    info.Secuencia      = item.dt_secuencia;
                    info.IdBodega       = IdBodega;
                    info.IdProducto     = item.IdProducto ?? 0;
                    info.dm_cantidad    = item.dt_cantidad;
                    info.dm_observacion = item.tr_Observacion;

                    info.dm_precio = info_costo == null ? 0 : info_costo.costo;

                    info.mv_costo_sinConversion = info_costo == null ? 0 : info_costo.costo;
                    info.mv_costo = info_costo == null ? 0 : info_costo.costo;

                    info.dm_cantidad_sinConversion = item.dt_cantidad;
                    info.dm_cantidad = item.dt_cantidad;

                    info.IdUnidadMedida = item.IdUnidadMedida;
                    info.IdUnidadMedida_sinConversion = item.IdUnidadMedida;

                    info.IdCentroCosto = item.IdCentroCosto;
                    info.IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo;

                    info.pr_descripcion = item.pr_descripcion;

                    info.IdPunto_cargo       = item.IdPunto_cargo;
                    info.IdPunto_cargo_grupo = item.IdPunto_cargo_grupo;

                    list_IngEgrDet.Add(info);
                }
                return(list_IngEgrDet);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "GetDetalle_Ing_Egr_Inven", ex.Message), ex)
                      {
                          EntityType = typeof(in_transferencia_bus)
                      };
            }
        }
Esempio n. 2
0
        private List <in_Ing_Egr_Inven_det_Info> get_detalle(List <in_transferencia_det_Info> listDetalle, int IdSucursal, int IdBodega, string Signo, DateTime fecha)
        {
            try
            {
                List <in_Ing_Egr_Inven_det_Info> list_IngEgrDet = new List <in_Ing_Egr_Inven_det_Info>();
                foreach (var item in listDetalle)
                {
                    double costo = bus_costo.get_ultimo_costo(item.IdEmpresa, item.IdSucursalOrigen, item.IdBodegaOrigen, item.IdProducto, fecha);

                    in_Ing_Egr_Inven_det_Info info = new in_Ing_Egr_Inven_det_Info
                    {
                        IdEmpresa                    = item.IdEmpresa,
                        IdSucursal                   = IdSucursal,
                        IdNumMovi                    = 0,
                        Secuencia                    = item.dt_secuencia,
                        IdBodega                     = IdBodega,
                        IdProducto                   = item.IdProducto,
                        dm_observacion               = item.tr_Observacion,
                        mv_costo                     = costo,
                        mv_costo_sinConversion       = costo,
                        dm_cantidad_sinConversion    = Math.Abs(item.dt_cantidad) * (Signo == "-" ? -1 : 1),
                        dm_cantidad                  = Math.Abs(item.dt_cantidad) * (Signo == "-" ? -1 : 1),
                        IdUnidadMedida               = item.IdUnidadMedida,
                        IdUnidadMedida_sinConversion = item.IdUnidadMedida,
                    };
                    list_IngEgrDet.Add(info);
                }
                return(list_IngEgrDet);
            }
            catch (Exception)
            {
                throw;
            }
        }
 private void Llamar_pantalla_subcentro_costo()
 {
     try
     {
         in_Ing_Egr_Inven_det_Info Row = (in_Ing_Egr_Inven_det_Info)gridViewProductos.GetRow(RowHandle);
         if (Row != null)
         {
             if (Row.IdCentroCosto != null)
             {
                 List <ct_centro_costo_sub_centro_costo_Info> Lista_subcentro_consulta = new List <ct_centro_costo_sub_centro_costo_Info>();
                 Lista_subcentro_consulta = list_subcentro_combo.Where(q => q.IdEmpresa == param.IdEmpresa && q.IdCentroCosto == Row.IdCentroCosto).ToList();
                 if (Lista_subcentro_consulta != null && Lista_subcentro_consulta.Count != 0)
                 {
                     frmCon_ct_centro_costo_sub_centro_costo_Cons frm_combo = new frmCon_ct_centro_costo_sub_centro_costo_Cons();
                     frm_combo.Set_config_combo(Lista_subcentro_consulta);
                     frm_combo.ShowDialog();
                     info_subcentro = frm_combo.Get_info_centro_sub_centro_costo();
                     //Se le asigna el IdRegistro al combo y el IdSubcentro a la columna de subcentro que se va a guardar
                     gridViewProductos.SetRowCellValue(RowHandle, colIdRegistro_subcentro, info_subcentro == null ? null : info_subcentro.IdRegistro);
                     gridViewProductos.SetRowCellValue(RowHandle, colIdCentroCosto_sub_centro_costo, info_subcentro == null ? null : info_subcentro.IdCentroCosto_sub_centro_costo);
                     gridViewProductos.SetRowCellValue(RowHandle, col_cod_subcentro, info_subcentro == null ? null : info_subcentro.IdCentroCosto_sub_centro_costo);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
         Log_Error_bus.Log_Error(ex.ToString());
     }
 }
        public ActionResult EditingUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] in_Ing_Egr_Inven_det_Info info_det)
        {
            int IdEmpresa = Convert.ToInt32(Session["IdEmpresa"]);

            if (info_det != null)
            {
                if (info_det.IdProducto != 0)
                {
                    in_Producto_Info info_producto = bus_producto.get_info(IdEmpresa, info_det.IdProducto);
                    if (info_producto != null)
                    {
                        info_det.pr_descripcion = info_producto.pr_descripcion_combo;
                        info_det.IdUnidadMedida = info_producto.IdUnidadMedida;
                        info_det.IdUnidadMedida_sinConversion = info_producto.IdUnidadMedida;
                    }
                }
            }
            if (info_det.dm_cantidad_sinConversion > 0)
            {
                List_in_Ing_Egr_Inven_det.UpdateRow(info_det, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            }
            var model = List_in_Ing_Egr_Inven_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));

            cargar_combos_detalle();
            return(PartialView("_GridViewPartial_inv_det", model));
        }
Esempio n. 5
0
        public ActionResult EditingUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] in_Ing_Egr_Inven_det_Info info_det)
        {
            int IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa);

            if (info_det != null)
            {
                if (info_det.IdProducto != 0)
                {
                    in_Producto_Info info_producto = bus_producto.get_info(IdEmpresa, info_det.IdProducto);
                    if (info_producto != null)
                    {
                        info_det.pr_descripcion         = info_producto.pr_descripcion_combo;
                        info_det.tp_ManejaInven         = info_producto.tp_ManejaInven;
                        info_det.se_distribuye          = info_producto.se_distribuye;
                        info_det.mv_costo_sinConversion = bus_prod_x_bod.get_ultimo_costo(IdEmpresa, Convert.ToInt32(SessionFixed.IdSucursalInv), Convert.ToInt32(SessionFixed.IdBodegaInv), info_det.IdProducto, DateTime.Now.Date);
                    }
                }
            }

            if (info_det.dm_cantidad_sinConversion > 0)
            {
                List_in_Ing_Egr_Inven_det.UpdateRow(info_det, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            }
            var model = List_in_Ing_Egr_Inven_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));

            cargar_combos_detalle();
            return(PartialView("_GridViewPartial_egr_inv_det", model));
        }
Esempio n. 6
0
        private void armar_movimiento_inventario()
        {
            try
            {
                in_Ing_Egr_Inven_Info info_movimiento = new in_Ing_Egr_Inven_Info();

                #region Cabecera
                info_movimiento = new in_Ing_Egr_Inven_Info
                {
                    IdEmpresa         = param.IdEmpresa,
                    IdSucursal        = ucIn_Sucursal_Bodega1.get_IdSucursal(),
                    IdMovi_inven_tipo = ucIn_TipoMoviInv_Cmb1.get_TipoMoviInvInfo().IdMovi_inven_tipo,
                    IdNumMovi         = 0,
                    IdBodega          = ucIn_Sucursal_Bodega1.get_IdBodega(),
                    signo             = "+",
                    CodMoviInven      = "FACT" + info_aprobacion.Serie + "-" + info_aprobacion.Serie2 + "-" + info_aprobacion.num_documento,
                    cm_observacion    = txtObservacion.Text,
                    cm_fecha          = de_fecha.DateTime.Date,
                    IdUsuario         = param.IdUsuario,
                    Estado            = "A",
                    Fecha_Transac     = DateTime.Now,
                    nom_pc            = param.nom_pc,
                    ip           = param.ip,
                    IdMotivo_Inv = ucIn_MotivoInvCmb1.get_MotivoInvInfo().IdMotivo_Inv
                };

                #endregion

                #region Detalle
                foreach (var item in blst_det)
                {
                    in_Ing_Egr_Inven_det_Info info_det = new in_Ing_Egr_Inven_det_Info
                    {
                        IdEmpresa                    = info_movimiento.IdEmpresa,
                        IdSucursal                   = info_movimiento.IdSucursal,
                        IdMovi_inven_tipo            = info_movimiento.IdMovi_inven_tipo,
                        IdNumMovi                    = info_movimiento.IdNumMovi,
                        IdBodega                     = info_movimiento.IdBodega,
                        IdProducto                   = Convert.ToDecimal(item.IdProducto),
                        dm_observacion               = "",
                        dm_cantidad                  = item.Cantidad,
                        dm_cantidad_sinConversion    = item.Cantidad,
                        mv_costo                     = item.Cost_uni_final,
                        mv_costo_sinConversion       = item.Cost_uni_final,
                        IdUnidadMedida               = item.IdUnidadMedida,
                        IdUnidadMedida_sinConversion = item.IdUnidadMedida,
                    };
                    info_movimiento.listIng_Egr.Add(info_det);
                }
                #endregion
                info_aprobacion.info_ing_x_compra = info_movimiento;
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public static void FileUploadComplete(object sender, DevExpress.Web.FileUploadCompleteEventArgs e)
        {
            #region Variables
            List <in_Ing_Egr_Inven_det_Info> Lista_IngresoInventarioDet = new List <in_Ing_Egr_Inven_det_Info>();
            in_Ing_Egr_Inven_det_List        ListaIngresoInventario     = new in_Ing_Egr_Inven_det_List();
            in_Producto_Bus bus_producto         = new in_Producto_Bus();
            int             cont                 = 0;
            decimal         IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual);
            int             IdEmpresa            = Convert.ToInt32(SessionFixed.IdEmpresa);
            tb_sucursal_Bus bus_sucursal         = new tb_sucursal_Bus();

            #endregion

            Stream stream = new MemoryStream(e.UploadedFile.FileBytes);
            if (stream.Length > 0)
            {
                IExcelDataReader reader = null;
                reader = ExcelReaderFactory.CreateOpenXmlReader(stream);

                #region Ingreso Inventario
                var lst_producto = bus_producto.get_list(IdEmpresa, false);
                while (reader.Read())
                {
                    if (!reader.IsDBNull(0) && cont > 0)
                    {
                        var pr_codigo_producto = Convert.ToString(reader.GetValue(3));
                        var IdUnidadMedida     = Convert.ToString(reader.GetValue(2));
                        var costo_total        = Convert.ToDouble(reader.GetValue(6));
                        var cantidad           = Convert.ToDouble(reader.GetValue(5));
                        var info_producto      = lst_producto.Where(q => q.pr_codigo == pr_codigo_producto).FirstOrDefault();

                        if ((info_producto != null && info_producto.IdProducto != 0) && (costo_total > 0 && cantidad > 0))
                        {
                            in_Ing_Egr_Inven_det_Info info_detalle = new in_Ing_Egr_Inven_det_Info
                            {
                                Secuencia      = cont++,
                                IdEmpresa      = IdEmpresa,
                                IdProducto     = info_producto.IdProducto,
                                pr_descripcion = info_producto.pr_descripcion,
                                IdUnidadMedida_sinConversion = string.IsNullOrEmpty(IdUnidadMedida) ? info_producto.IdUnidadMedida_Consumo : IdUnidadMedida,
                                dm_cantidad_sinConversion    = cantidad,
                                mv_costo_sinConversion       = costo_total / cantidad,
                            };

                            Lista_IngresoInventarioDet.Add(info_detalle);
                        }
                    }
                    else
                    {
                        cont++;
                    }
                }
                ListaIngresoInventario.set_list(Lista_IngresoInventarioDet, IdTransaccionSession);
                #endregion
            }
        }
        public void AddRow(in_Ing_Egr_Inven_det_Info info_det_inv, decimal IdTransaccionSession)
        {
            List <in_Ing_Egr_Inven_det_Info> list = get_list(IdTransaccionSession);

            info_det_inv.Secuencia = list.Count == 0 ? 1 : list.Max(q => q.Secuencia) + 1;
            //info_det_inv.secuencia_inv = list.Count == 0 ? 1 : list.Max(q => q.Secuencia) + 1;
            //info_det_inv.Secuencia_oc = list.Count == 0 ? 1 : list.Max(q => q.Secuencia) + 1;

            list.Add(info_det_inv);
        }
        public bool guardarDB(in_Ing_Egr_Inven_det_Info info)
        {
            try
            {
                using (Entities_inventario Context = new Entities_inventario())
                {
                    in_Ing_Egr_Inven_det Entity = new in_Ing_Egr_Inven_det
                    {
                        IdEmpresa         = info.IdEmpresa,
                        IdSucursal        = info.IdSucursal,
                        IdMovi_inven_tipo = info.IdMovi_inven_tipo,
                        IdNumMovi         = info.IdNumMovi,
                        Secuencia         = info.Secuencia,
                        IdBodega          = info.IdBodega,
                        IdProducto        = info.IdProducto,

                        IdCentroCosto = info.IdCentroCosto,
                        IdCentroCosto_sub_centro_costo = info.IdCentroCosto_sub_centro_costo,
                        IdPunto_cargo       = info.IdPunto_cargo,
                        IdPunto_cargo_grupo = info.IdPunto_cargo_grupo,

                        dm_observacion    = info.dm_observacion,
                        IdMotivo_Inv      = info.IdMotivo_Inv,
                        IdEstadoAproba    = info.IdEstadoAproba,
                        Motivo_Aprobacion = info.Motivo_Aprobacion,

                        IdEmpresa_oc  = info.IdEmpresa_oc,
                        IdSucursal_oc = info.IdSucursal_oc,
                        IdOrdenCompra = info.IdOrdenCompra,
                        Secuencia_oc  = info.Secuencia_oc,

                        IdEmpresa_inv         = info.IdEmpresa_inv,
                        IdSucursal_inv        = info.IdSucursal_inv,
                        IdBodega_inv          = info.IdBodega_inv,
                        IdMovi_inven_tipo_inv = info.IdMovi_inven_tipo_inv,
                        IdNumMovi_inv         = info.IdNumMovi_inv,
                        secuencia_inv         = info.secuencia_inv,

                        dm_cantidad_sinConversion = info.dm_cantidad_sinConversion,
                        dm_cantidad = info.dm_cantidad = info.dm_cantidad_sinConversion,                  //
                        IdUnidadMedida_sinConversion = info.IdUnidadMedida_sinConversion,
                        IdUnidadMedida         = info.IdUnidadMedida = info.IdUnidadMedida_sinConversion, //
                        mv_costo_sinConversion = info.mv_costo_sinConversion,
                        mv_costo = info.mv_costo = (double)info.mv_costo_sinConversion                    //,
                    };
                    Context.in_Ing_Egr_Inven_det.Add(Entity);
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
 public bool guardarDB(in_Ing_Egr_Inven_det_Info info)
 {
     try
     {
         return(odata.guardarDB(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
        public void AddRow(in_Ing_Egr_Inven_det_Info info_det, decimal IdTransaccionSession)
        {
            List <in_Ing_Egr_Inven_det_Info> list = get_list(IdTransaccionSession);

            info_det.Secuencia                 = list.Count == 0 ? 1 : list.Max(q => q.Secuencia) + 1;
            info_det.IdProducto                = info_det.IdProducto;
            info_det.IdUnidadMedida            = info_det.IdUnidadMedida;
            info_det.mv_costo_sinConversion    = info_det.mv_costo_sinConversion;
            info_det.dm_cantidad_sinConversion = info_det.dm_cantidad_sinConversion;
            list.Add(info_det);
        }
        public void UpdateRow(in_Ing_Egr_Inven_det_Info info_det, decimal IdTransaccionSession)
        {
            in_Ing_Egr_Inven_det_Info edited_info = get_list(IdTransaccionSession).Where(m => m.Secuencia == info_det.Secuencia).First();

            edited_info.IdProducto                = info_det.IdProducto;
            edited_info.IdUnidadMedida            = info_det.IdUnidadMedida;
            edited_info.mv_costo_sinConversion    = info_det.mv_costo_sinConversion;
            edited_info.dm_cantidad_sinConversion = info_det.dm_cantidad_sinConversion;
            edited_info.pr_descripcion            = info_det.pr_descripcion;
            edited_info.IdProducto                = info_det.IdProducto;
        }
        public in_Ing_Egr_Inven_det_Info get_info(int IdEmpresa, int IdSucursal, int IdMovi_inven_tipo, decimal IdNumMovi)
        {
            try
            {
                in_Ing_Egr_Inven_det_Info info = new in_Ing_Egr_Inven_det_Info();
                using (Entities_inventario Context = new Entities_inventario())
                {
                    in_Ing_Egr_Inven_det Entity = Context.in_Ing_Egr_Inven_det.FirstOrDefault(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.IdMovi_inven_tipo == IdMovi_inven_tipo && q.IdNumMovi == IdNumMovi);
                    if (Entity == null)
                    {
                        return(null);
                    }
                    info = new in_Ing_Egr_Inven_det_Info
                    {
                        IdEmpresa           = Entity.IdEmpresa,
                        IdSucursal          = Entity.IdSucursal,
                        IdMovi_inven_tipo   = Entity.IdMovi_inven_tipo,
                        IdNumMovi           = Entity.IdNumMovi,
                        IdBodega            = Entity.IdBodega,
                        dm_cantidad         = Entity.dm_cantidad,
                        dm_observacion      = Entity.dm_observacion,
                        IdMotivo_Inv        = Entity.IdMotivo_Inv,
                        IdEstadoAproba      = Entity.IdEstadoAproba,
                        IdOrdenCompra       = Entity.IdOrdenCompra,
                        IdProducto          = Entity.IdProducto,
                        IdUnidadMedida      = Entity.IdUnidadMedida,
                        IdPunto_cargo       = Entity.IdPunto_cargo,
                        IdPunto_cargo_grupo = Entity.IdPunto_cargo_grupo,
                        mv_costo            = Entity.mv_costo,
                        Secuencia           = Entity.Secuencia,

                        IdSucursal_inv               = Entity.IdSucursal_inv,
                        IdSucursal_oc                = Entity.IdSucursal_oc,
                        IdEmpresa_inv                = Entity.IdEmpresa_inv,
                        IdEmpresa_oc                 = Entity.IdEmpresa_oc,
                        IdBodega_inv                 = Entity.IdBodega_inv,
                        IdMovi_inven_tipo_inv        = Entity.IdMovi_inven_tipo_inv,
                        IdNumMovi_inv                = Entity.IdNumMovi_inv,
                        dm_cantidad_sinConversion    = Entity.dm_cantidad_sinConversion,
                        IdUnidadMedida_sinConversion = Entity.IdUnidadMedida_sinConversion,
                        mv_costo_sinConversion       = Entity.mv_costo_sinConversion,
                        secuencia_inv                = Entity.secuencia_inv,
                        Secuencia_oc                 = Entity.Secuencia_oc
                    };
                }
                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
Esempio n. 14
0
        public JsonResult EditingAddNew(string IDs = "", decimal IdTransaccionSession = 0, int IdEmpresa = 0)
        {
            string ObservacionOC = string.Empty;

            if (IDs != "")
            {
                int      IdEmpresaSesion = Convert.ToInt32(SessionFixed.IdEmpresa);
                var      lst_x_ingresar  = ListaPorIngresar.get_list(IdTransaccionSession);
                string[] array           = IDs.Split(',');
                foreach (var item in array)
                {
                    int IdEmpresaOC   = Convert.ToInt32(item.Substring(0, 3));
                    int IdSucursalOC  = Convert.ToInt32(item.Substring(3, 3));
                    int IdOrdenCompra = Convert.ToInt32(item.Substring(6, 6));
                    int Secuencia     = Convert.ToInt32(item.Substring(12, 6));

                    var info_det = lst_x_ingresar.Where(q => q.IdEmpresa == IdEmpresaOC && q.IdSucursal == IdSucursalOC && q.IdOrdenCompra == IdOrdenCompra && q.Secuencia == Secuencia).FirstOrDefault();

                    in_Ing_Egr_Inven_det_Info info_det_inv;
                    com_parametro_Info        info_param_oc = bus_com_param.get_info(IdEmpresaSesion);
                    if (info_det != null)
                    {
                        info_det_inv = new in_Ing_Egr_Inven_det_Info
                        {
                            IdEmpresa      = info_det.IdEmpresa,
                            IdSucursal     = info_det.IdSucursal,
                            IdOrdenCompra  = info_det.IdOrdenCompra,
                            IdProducto     = info_det.IdProducto,
                            pr_descripcion = info_det.pr_descripcion,

                            mv_costo_sinConversion       = info_det.do_precioFinal,
                            dm_cantidad_sinConversion    = info_det.do_Cantidad_vw,
                            IdUnidadMedida_sinConversion = info_det.IdUnidadMedida,
                            Saldo = info_det.Saldo,

                            IdEmpresa_oc        = IdEmpresaOC,
                            IdSucursal_oc       = IdSucursalOC,
                            Secuencia_oc        = Secuencia,
                            IdCentroCosto       = info_det.IdCentroCosto,
                            IdPunto_cargo       = info_det.IdPunto_cargo,
                            IdPunto_cargo_grupo = info_det.IdPunto_cargo_grupo,
                            cc_Descripcion      = info_det.cc_Descripcion,
                            SecuenciaTipo       = info_det.SecuenciaTipo
                        };
                        ObservacionOC = "OC# " + info_det.SecuenciaTipo + " " + info_det.oc_observacion;
                        List_in_Ing_Egr_Inven_det.AddRow(info_det_inv, IdTransaccionSession);
                    }
                }
            }
            //var model = List_in_Ing_Egr_Inven_det.get_list(IdTransaccionSession);
            return(Json(ObservacionOC, JsonRequestBehavior.AllowGet));
        }
Esempio n. 15
0
 public Boolean ModificarDB(in_Ing_Egr_Inven_det_Info Info, ref string msg)
 {
     try
     {
         return(odata.ModificarDB(Info, ref msg));
     }
     catch (Exception ex)
     {
         Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
         throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ModificarDB", ex.Message), ex)
               {
                   EntityType = typeof(in_Ing_Egr_Inven_det_Bus)
               };
     }
 }
Esempio n. 16
0
 private in_Ing_Egr_Inven_Info get_ingreso(imp_liquidacion_Info info)
 {
     try
     {
         param = param_bus.get_info(info.IdEmpresa);
         in_Ing_Egr_Inven_Info ingreso = new in_Ing_Egr_Inven_Info();
         ingreso.IdEmpresa         = info.IdEmpresa;
         ingreso.IdNumMovi         = 0;
         ingreso.CodMoviInven      = "0";
         ingreso.cm_fecha          = info.oe_fecha;
         ingreso.IdUsuario         = info.IdUsuario_creacion;
         ingreso.nom_pc            = "";
         ingreso.ip                = "";
         ingreso.Fecha_Transac     = DateTime.Now;
         ingreso.signo             = "+";
         ingreso.IdSucursal        = param.IdSucursal;
         ingreso.IdBodega          = param.IdBodega;
         ingreso.cm_observacion    = "Ingreso por importacion. " + info.li_observacion;
         ingreso.IdMovi_inven_tipo = param.IdMovi_inven_tipo_ing;
         ingreso.IdMotivo_Inv      = param.IdMotivo_Inv_ing;
         foreach (var item in info.lst_detalle)
         {
             in_Ing_Egr_Inven_det_Info info_det = new in_Ing_Egr_Inven_det_Info();
             info_det.IdEmpresa                    = item.IdEmpresa;
             info_det.IdSucursal                   = param.IdSucursal;
             info_det.IdNumMovi                    = 0;
             info_det.Secuencia                    = item.Secuencia;
             info_det.IdBodega                     = param.IdBodega;
             info_det.IdProducto                   = item.IdProducto;
             info_det.dm_cantidad                  = item.od_cantidad_recepcion;
             info_det.dm_observacion               = "Ingreso por orden de compra del exterior";
             info_det.mv_costo                     = Math.Round(item.od_costo_total / item.od_cantidad_recepcion, 2);
             info_det.mv_costo_sinConversion       = Math.Round(item.od_costo_total / item.od_cantidad_recepcion, 2);
             info_det.dm_cantidad_sinConversion    = item.od_cantidad_recepcion;
             info_det.dm_cantidad                  = item.od_cantidad_recepcion;
             info_det.IdUnidadMedida               = item.IdUnidadMedida;
             info_det.IdUnidadMedida_sinConversion = item.IdUnidadMedida;
             ingreso.lst_in_Ing_Egr_Inven_det.Add(info_det);
         }
         return(ingreso);
     }
     catch (Exception)
     {
         throw;
     }
 }
        public void UpdateRow(in_Ing_Egr_Inven_det_Info info_det, decimal IdTransaccionSession)
        {
            in_Ing_Egr_Inven_det_Info edited_info = get_list(IdTransaccionSession).Where(m => m.Secuencia == info_det.Secuencia).First();

            edited_info.IdProducto                = info_det.IdProducto;
            edited_info.IdUnidadMedida            = info_det.IdUnidadMedida;
            edited_info.IdMotivo_Inv_det          = info_det.IdMotivo_Inv_det;
            edited_info.mv_costo_sinConversion    = info_det.mv_costo_sinConversion;
            edited_info.dm_cantidad_sinConversion = info_det.dm_cantidad_sinConversion;
            edited_info.pr_descripcion            = info_det.pr_descripcion;
            edited_info.IdProducto                = info_det.IdProducto;
            edited_info.tp_ManejaInven            = info_det.tp_ManejaInven;
            edited_info.se_distribuye             = info_det.se_distribuye;

            #region Centro de costo
            edited_info.IdCentroCosto = info_det.IdCentroCosto;
            if (string.IsNullOrEmpty(info_det.IdCentroCosto))
            {
                edited_info.cc_Descripcion = string.Empty;
            }
            else
            {
                var cc = bus_cc.get_info(Convert.ToInt32(SessionFixed.IdEmpresa), info_det.IdCentroCosto);
                if (cc != null)
                {
                    edited_info.cc_Descripcion = cc.cc_Descripcion;
                }
            }
            #endregion

            #region Motivo
            if (info_det.IdMotivo_Inv_det == 0)
            {
                edited_info.Desc_mov_inv = string.Empty;
            }
            else
            if (info_det.IdMotivo_Inv_det != edited_info.IdMotivo_Inv_det)
            {
                var motivo = bus_motivo.get_info(Convert.ToInt32(SessionFixed.IdEmpresa), info_det.IdMotivo_Inv_det);
                if (motivo != null)
                {
                    edited_info.Desc_mov_inv = motivo.Desc_mov_inv;
                }
            }
            #endregion
        }
        public void AddRow(in_Ing_Egr_Inven_det_Info info_det, decimal IdTransaccionSession)
        {
            List <in_Ing_Egr_Inven_det_Info> list = get_list(IdTransaccionSession);

            info_det.Secuencia                 = list.Count == 0 ? 1 : list.Max(q => q.Secuencia) + 1;
            info_det.IdProducto                = info_det.IdProducto;
            info_det.IdUnidadMedida            = info_det.IdUnidadMedida;
            info_det.IdMotivo_Inv_det          = info_det.IdMotivo_Inv_det;
            info_det.mv_costo_sinConversion    = info_det.mv_costo_sinConversion;
            info_det.dm_cantidad_sinConversion = info_det.dm_cantidad_sinConversion;

            #region Centro de costo

            if (string.IsNullOrEmpty(info_det.IdCentroCosto))
            {
                info_det.cc_Descripcion = string.Empty;
            }
            else
            {
                var cc = bus_cc.get_info(Convert.ToInt32(SessionFixed.IdEmpresa), info_det.IdCentroCosto);
                if (cc != null)
                {
                    info_det.cc_Descripcion = cc.cc_Descripcion;
                }
            }
            #endregion

            #region Motivo
            if (info_det.IdMotivo_Inv_det == 0)
            {
                info_det.Desc_mov_inv = string.Empty;
            }
            else
            {
                var motivo = bus_motivo.get_info(Convert.ToInt32(SessionFixed.IdEmpresa), info_det.IdMotivo_Inv_det);
                if (motivo != null)
                {
                    info_det.Desc_mov_inv = motivo.Desc_mov_inv;
                }
            }
            #endregion

            list.Add(info_det);
        }
        public ActionResult EditingUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] in_Ing_Egr_Inven_det_Info info_det)
        {
            com_ordencompra_local_det_List Lista_OC = new com_ordencompra_local_det_List();
            int IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa);

            List <in_Ing_Egr_Inven_det_Info>  lista_detalle    = List_in_Ing_Egr_Inven_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            List <com_ordencompra_local_Info> lista_detalle_oc = Lista_OC.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            in_Ing_Egr_Inven_det_Info         info_det_editar  = lista_detalle.Where(q => q.Secuencia == info_det.Secuencia).FirstOrDefault();
            com_ordencompra_local_Info        info_oc          = lista_detalle_oc.Where(q => q.IdEmpresa == info_det_editar.IdEmpresa && q.IdSucursal == info_det_editar.IdSucursal && q.IdOrdenCompra == info_det_editar.IdOrdenCompra && q.IdProducto == info_det_editar.IdProducto).FirstOrDefault();

            info_det_editar.dm_cantidad_sinConversion = info_det.dm_cantidad_sinConversion;

            if (info_det_editar != null)
            {
                if (info_det_editar.IdProducto != 0)
                {
                    in_Producto_Info info_producto = bus_producto.get_info(IdEmpresa, info_det_editar.IdProducto);
                    if (info_producto != null)
                    {
                        info_det.Saldo          = info_det_editar.Saldo;
                        info_det.IdProducto     = info_det_editar.IdProducto;
                        info_det.pr_descripcion = info_producto.pr_descripcion_combo;
                        info_det.IdUnidadMedida_sinConversion = info_producto.IdUnidadMedida;
                    }
                }
            }


            if (info_det_editar.dm_cantidad_sinConversion > 0 && info_det_editar.dm_cantidad_sinConversion <= info_det_editar.Saldo)
            {
                List_in_Ing_Egr_Inven_det.UpdateRow(info_det_editar, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            }
            var model = List_in_Ing_Egr_Inven_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));

            cargar_combos_detalle();
            return(PartialView("_GridViewPartial_inv_det", model));
        }
Esempio n. 20
0
        private List <in_Ing_Egr_Inven_det_Info> get_detalle(List <in_transferencia_det_Info> listDetalle, int IdSucursal, int IdBodega, string Signo, DateTime fecha)
        {
            try
            {
                List <in_Ing_Egr_Inven_det_Info> list_IngEgrDet = new List <in_Ing_Egr_Inven_det_Info>();
                foreach (var item in listDetalle)
                {
                    double costo = bus_costo.get_ultimo_costo(item.IdEmpresa, item.IdSucursalOrigen, item.IdBodegaOrigen, item.IdProducto, fecha);

                    in_Ing_Egr_Inven_det_Info info = new in_Ing_Egr_Inven_det_Info();
                    info.IdEmpresa                      = item.IdEmpresa;
                    info.IdSucursal                     = IdSucursal;
                    info.IdNumMovi                      = 0;
                    info.Secuencia                      = item.dt_secuencia;
                    info.IdBodega                       = IdBodega;
                    info.IdProducto                     = item.IdProducto;
                    info.dm_cantidad                    = item.dt_cantidad;
                    info.dm_observacion                 = item.tr_Observacion;
                    info.mv_costo                       = costo;
                    info.mv_costo_sinConversion         = costo;
                    info.dm_cantidad_sinConversion      = item.dt_cantidad;
                    info.dm_cantidad                    = item.dt_cantidad;
                    info.IdUnidadMedida                 = item.IdUnidadMedida;
                    info.IdUnidadMedida_sinConversion   = item.IdUnidadMedida;
                    info.IdCentroCosto                  = item.IdCentroCosto;
                    info.IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo;
                    info.IdPunto_cargo                  = item.IdPunto_cargo;
                    info.IdPunto_cargo_grupo            = item.IdPunto_cargo_grupo;
                    list_IngEgrDet.Add(info);
                }
                return(list_IngEgrDet);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Esempio n. 21
0
        private bool Get_Info()
        {
            try
            {
                int sec = 0;
                res = true;


                Asig_Imp_Info.IdAsignacion_Impl = txtIdAsignación.Text == "" ? 0 : Convert.ToDecimal(txtIdAsignación.Text);
                Asig_Imp_Info.IdEmpresa         = param.IdEmpresa;
                Asig_Imp_Info.Fecha_Entrega     = deFecha.EditValue == null ? DateTime.Now : (DateTime)deFecha.EditValue;
                Asig_Imp_Info.Estado            = "A";
                Asig_Imp_Info.Observacion       = txtObservacion.Text;
                Asig_Imp_Info.Lst_ro_Asignacion_Implemento_x_Empleado_det = new List <ro_Asignacion_Implemento_x_Empleado_det_Info>(lista_detalle);
                Asig_Imp_Info.IdEmpleado    = ucRo_Empleado1.get_IdEmpleado();
                Asig_Imp_Info.IdNomina_Tipo = ucRo_Empleado1.get_EmpleadoInfo().IdNomina_Tipo;
                if (rbt_Egreso.Checked == true)
                {
                    Asig_Imp_Info.Tipo_Movimiento = "-";
                }
                else
                {
                    Asig_Imp_Info.Tipo_Movimiento = "+";
                }
                // movimiento de inventario

                Info_moviemiento_inventario.IdEmpresa = param.IdEmpresa;
                // Info_moviemiento_inventario.IdSucursal = paramatreo_info.IdSucursal;
                //Info_moviemiento_inventario.IdBodega = paramatreo_info.IdBodega;

                if (rbt_Egreso.Checked == true)
                {
                    // Info_moviemiento_inventario.IdMovi_inven_tipo = paramatreo_info.IdTipo_mov_Egreso;
                    Info_moviemiento_inventario.signo = "-";
                }
                else
                {
                    //  Info_moviemiento_inventario.IdMovi_inven_tipo = paramatreo_info.IdTipo_mov_Egreso;
                    Info_moviemiento_inventario.signo = "+";
                }

                Info_moviemiento_inventario.cm_observacion = txtObservacion.Text;
                Info_moviemiento_inventario.cm_fecha       = Convert.ToDateTime(deFecha.EditValue);
                Info_moviemiento_inventario.IdUsuario      = param.IdUsuario;
                Info_moviemiento_inventario.Fecha_Transac  = DateTime.Now;

                // movimiento de inventario Detalle

                foreach (var item in lista_detalle)
                {
                    sec = sec + 1;
                    in_Ing_Egr_Inven_det_Info info = new in_Ing_Egr_Inven_det_Info();
                    info.IdEmpresa = param.IdEmpresa;
                    // info.IdSucursal = paramatreo_info.IdSucursal;
                    if (rbt_Egreso.Checked == true)
                    {
                        //  info.IdMovi_inven_tipo = paramatreo_info.IdTipo_mov_Egreso;
                        Info_moviemiento_inventario.signo = "-";
                    }
                    else
                    {
                        // info.IdMovi_inven_tipo = paramatreo_info.IdTipo_mov_Egreso;
                        Info_moviemiento_inventario.signo = "+";
                    }
                    info.Secuencia = sec;
                    // info.IdBodega = paramatreo_info.IdBodega;
                    info.IdProducto     = item.IdProducto;
                    info.dm_cantidad    = item.Cantidad;
                    info.dm_observacion = item.Detalle;
                    info.mv_costo       = item.Vida_Util;
                    info.IdUnidadMedida = "UNID";
                    info.IdUnidadMedida_sinConversion = "UNID";
                    info.dm_cantidad_sinConversion    = item.Cantidad;

                    lista_detalle_movimiento.Add(info);
                }
                Info_moviemiento_inventario.listIng_Egr = lista_detalle_movimiento;
                Asig_Imp_Info.Movimiento_Inventario     = Info_moviemiento_inventario;
                return(true);
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
        }
Esempio n. 22
0
        private bool grabar_movimientos_x_distribucion()
        {
            try
            {
                info_param_in   = bus_param_in.Get_Info_Parametro(param.IdEmpresa);
                lst_motivo_inve = bus_motivo_inve.Get_List_Motivo_Inven(param.IdEmpresa, "");
                in_Ing_Egr_Inven_distribucion_Info distribucion_sin_lote = bus_distribucion.get_info(info_distribucion.IdEmpresa, info_distribucion.IdSucursal, info_distribucion.IdMovi_inven_tipo, info_distribucion.IdNumMovi, (info_distribucion.signo == "+" ? "-" : "+"));
                in_Ing_Egr_Inven_distribucion_Info distribucion_con_lote = bus_distribucion.get_info(info_distribucion.IdEmpresa, info_distribucion.IdSucursal, info_distribucion.IdMovi_inven_tipo, info_distribucion.IdNumMovi, info_distribucion.signo);
                in_Motivo_Inven_Info info_motivo = new in_Motivo_Inven_Info();
                in_Ing_Egr_Inven_Bus bus_ing_egr = new in_Ing_Egr_Inven_Bus();
                decimal Id      = 0;
                string  mensaje = "";

                #region Crear movimiento sin lote
                in_Ing_Egr_Inven_Info mov_sin_lote = new in_Ing_Egr_Inven_Info();

                #region Cabecera
                if (distribucion_sin_lote != null)
                {
                    mov_sin_lote = bus_ing_egr.Get_Info_Ing_Egr_Inven(distribucion_sin_lote.IdEmpresa_dis, distribucion_sin_lote.IdSucursal_dis, distribucion_sin_lote.IdMovi_inven_tipo_dis, distribucion_sin_lote.IdNumMovi_dis);
                }
                else
                {
                    info_motivo = lst_motivo_inve.FirstOrDefault(q => q.Genera_Movi_Inven == "S" && q.Tipo_Ing_Egr == (info_distribucion.signo == "+" ? ein_Tipo_Ing_Egr.EGR : ein_Tipo_Ing_Egr.ING));
                    if (info_motivo == null)
                    {
                        MessageBox.Show("No existe motivo de inventario parametrizado, por favor corregir", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return(false);
                    }

                    mov_sin_lote = new in_Ing_Egr_Inven_Info
                    {
                        IdEmpresa         = param.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.signo == "+" ? Convert.ToInt32(info_param_in.IdMovi_inven_tipo_x_distribucion_egr) : Convert.ToInt32(info_param_in.IdMovi_inven_tipo_x_distribucion_ing),
                        IdNumMovi         = 0,
                        IdBodega          = info_distribucion.IdBodega,
                        signo             = (info_distribucion.signo == "+" ? "-" : "+"),
                        CodMoviInven      = "Dis_" + info_distribucion.IdEmpresa.ToString("00") + "_" + info_distribucion.IdSucursal.ToString("00") + "_" + info_distribucion.IdMovi_inven_tipo.ToString("00") + "_" + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_observacion    = "Dis. x lote - Sucursal: " + info_distribucion.Su_Descripcion.Trim() + " # Movi: " + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_fecha          = DateTime.Now.Date,
                        IdUsuario         = param.IdUsuario,
                        Estado            = "A",
                        Fecha_Transac     = DateTime.Now,
                        nom_pc            = param.nom_pc,
                        ip           = param.ip,
                        IdMotivo_Inv = info_motivo.IdMotivo_Inv
                    };
                }
                #endregion

                #region Detalle
                foreach (var item in blst_x_distribuir)
                {
                    if (item.can_distribuida > 0)
                    {
                        in_Ing_Egr_Inven_det_Info info_det = new in_Ing_Egr_Inven_det_Info
                        {
                            IdEmpresa                    = mov_sin_lote.IdEmpresa,
                            IdSucursal                   = mov_sin_lote.IdSucursal,
                            IdMovi_inven_tipo            = mov_sin_lote.IdMovi_inven_tipo,
                            IdNumMovi                    = mov_sin_lote.IdNumMovi,
                            IdBodega                     = mov_sin_lote.IdBodega,
                            IdProducto                   = item.IdProducto,
                            dm_observacion               = "",
                            dm_cantidad                  = item.can_distribuida == null ? 0 : Convert.ToDouble(item.can_distribuida) * (info_distribucion.signo == "+" ? -1 : 1),
                            dm_cantidad_sinConversion    = item.can_distribuida == null ? 0 : Convert.ToDouble(item.can_distribuida),
                            mv_costo                     = item.mv_costo,
                            mv_costo_sinConversion       = item.mv_costo,
                            IdUnidadMedida               = item.IdUnidadMedida,
                            IdUnidadMedida_sinConversion = item.IdUnidadMedida,
                        };
                        mov_sin_lote.listIng_Egr.Add(info_det);
                    }
                }
                #endregion

                #endregion

                #region Crear movimiento con lote
                in_Ing_Egr_Inven_Info mov_con_lote = new in_Ing_Egr_Inven_Info();

                #region Cabecera
                if (distribucion_con_lote != null)
                {
                    mov_con_lote = bus_ing_egr.Get_Info_Ing_Egr_Inven(distribucion_con_lote.IdEmpresa_dis, distribucion_con_lote.IdSucursal_dis, distribucion_con_lote.IdMovi_inven_tipo_dis, distribucion_con_lote.IdNumMovi_dis);
                }
                else
                {
                    info_motivo = lst_motivo_inve.FirstOrDefault(q => q.Genera_Movi_Inven == "S" && q.Tipo_Ing_Egr == (info_distribucion.signo == "+" ? ein_Tipo_Ing_Egr.ING : ein_Tipo_Ing_Egr.EGR));
                    if (info_motivo == null)
                    {
                        MessageBox.Show("No existe motivo de inventario parametrizado, por favor corregir", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return(false);
                    }

                    mov_con_lote = new in_Ing_Egr_Inven_Info
                    {
                        IdEmpresa         = param.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.signo == "+" ? Convert.ToInt32(info_param_in.IdMovi_inven_tipo_x_distribucion_ing) : Convert.ToInt32(info_param_in.IdMovi_inven_tipo_x_distribucion_egr),
                        IdNumMovi         = 0,
                        IdBodega          = info_distribucion.IdBodega,
                        signo             = info_distribucion.signo,
                        CodMoviInven      = "Dis_" + info_distribucion.IdEmpresa.ToString("00") + "_" + info_distribucion.IdSucursal.ToString("00") + "_" + info_distribucion.IdMovi_inven_tipo.ToString("00") + "_" + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_observacion    = "Dis. x lote - Sucursal: " + info_distribucion.Su_Descripcion.Trim() + " # Movi: " + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_fecha          = DateTime.Now.Date,
                        IdUsuario         = param.IdUsuario,
                        Estado            = "A",
                        Fecha_Transac     = DateTime.Now,
                        nom_pc            = param.nom_pc,
                        ip           = param.ip,
                        IdMotivo_Inv = info_motivo.IdMotivo_Inv
                    };
                }
                #endregion

                #region Detalle
                foreach (var item in blst_distribuido)
                {
                    in_Ing_Egr_Inven_det_Info info_det = new in_Ing_Egr_Inven_det_Info
                    {
                        IdEmpresa                    = mov_sin_lote.IdEmpresa,
                        IdSucursal                   = mov_sin_lote.IdSucursal,
                        IdMovi_inven_tipo            = mov_sin_lote.IdMovi_inven_tipo,
                        IdNumMovi                    = mov_sin_lote.IdNumMovi,
                        IdBodega                     = mov_sin_lote.IdBodega,
                        IdProducto                   = item.IdProducto,
                        dm_observacion               = "",
                        dm_cantidad                  = item.dm_cantidad == null ? 0 : Convert.ToDouble(item.dm_cantidad) * (info_distribucion.signo == "+" ? 1 : -1),
                        dm_cantidad_sinConversion    = item.dm_cantidad == null ? 0 : Convert.ToDouble(item.dm_cantidad),
                        mv_costo                     = item.mv_costo,
                        mv_costo_sinConversion       = item.mv_costo,
                        IdUnidadMedida               = item.IdUnidadMedida,
                        IdUnidadMedida_sinConversion = item.IdUnidadMedida,
                    };
                    mov_con_lote.listIng_Egr.Add(info_det);
                }
                #endregion

                #endregion

                #region guardar movimientos y distribucion
                if (distribucion_sin_lote == null)
                {
                    if (!bus_ing_egr.GuardarDB(mov_sin_lote, ref Id, ref mensaje))
                    {
                        return(false);
                    }

                    distribucion_sin_lote = new in_Ing_Egr_Inven_distribucion_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.IdMovi_inven_tipo,
                        IdNumMovi         = info_distribucion.IdNumMovi,

                        IdEmpresa_dis         = mov_sin_lote.IdEmpresa,
                        IdSucursal_dis        = mov_sin_lote.IdSucursal,
                        IdMovi_inven_tipo_dis = mov_sin_lote.IdMovi_inven_tipo,
                        IdNumMovi_dis         = mov_sin_lote.IdNumMovi,
                        signo  = mov_sin_lote.signo,
                        estado = true,
                    };

                    if (!bus_distribucion.guardarDB(distribucion_sin_lote))
                    {
                        return(false);
                    }
                }
                else
                {
                    if (!bus_ing_egr.Reversar_Aprobacion(distribucion_sin_lote.IdEmpresa_dis, distribucion_sin_lote.IdSucursal_dis, distribucion_sin_lote.IdMovi_inven_tipo_dis, distribucion_sin_lote.IdNumMovi_dis, "S"))
                    {
                        return(false);
                    }

                    if (!bus_ing_egr.ModificarDB(mov_sin_lote, ref mensaje))
                    {
                        return(false);
                    }
                }

                if (distribucion_con_lote == null)
                {
                    if (!bus_ing_egr.GuardarDB(mov_con_lote, ref Id, ref mensaje))
                    {
                        return(false);
                    }

                    distribucion_con_lote = new in_Ing_Egr_Inven_distribucion_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.IdMovi_inven_tipo,
                        IdNumMovi         = info_distribucion.IdNumMovi,

                        IdEmpresa_dis         = mov_con_lote.IdEmpresa,
                        IdSucursal_dis        = mov_con_lote.IdSucursal,
                        IdMovi_inven_tipo_dis = mov_con_lote.IdMovi_inven_tipo,
                        IdNumMovi_dis         = mov_con_lote.IdNumMovi,
                        signo  = mov_con_lote.signo,
                        estado = true,
                    };

                    if (!bus_distribucion.guardarDB(distribucion_con_lote))
                    {
                        return(false);
                    }
                }
                else
                {
                    if (!bus_ing_egr.Reversar_Aprobacion(distribucion_con_lote.IdEmpresa_dis, distribucion_con_lote.IdSucursal_dis, distribucion_con_lote.IdMovi_inven_tipo_dis, distribucion_con_lote.IdNumMovi_dis, "S"))
                    {
                        return(false);
                    }

                    if (!bus_ing_egr.ModificarDB(mov_con_lote, ref mensaje))
                    {
                        return(false);
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
        }
Esempio n. 23
0
        private bool Generar_info_ing_egr(in_ajusteFisico_Info info_ajuste, ref decimal IdNumMovi_ing, ref decimal IdNumMovi_egr)
        {
            try
            {
                in_Ing_Egr_Inven_Info info_ing_egr = new in_Ing_Egr_Inven_Info();

                bool HayIngresos = false;
                bool HayEgresos  = false;

                var TIngreso = (from q in info_ajuste.list_det_AjusteFisico
                                where q.CantidadAjustada > 0
                                select q).Count();


                var TEgresos = (from q in info_ajuste.list_det_AjusteFisico
                                where q.CantidadAjustada < 0
                                select q).Count();


                HayIngresos = (Convert.ToDouble(TIngreso) > 0) ? true : false;

                #region HayIngreso

                if (HayIngresos == true)
                {
                    info_ing_egr = new in_Ing_Egr_Inven_Info();

                    info_ing_egr.IdEmpresa         = info_ajuste.IdEmpresa;
                    info_ing_egr.IdSucursal        = info_ajuste.IdSucursal;
                    info_ing_egr.IdBodega          = info_ajuste.IdBodega;
                    info_ing_egr.IdMovi_inven_tipo = info_ajuste.IdMovi_inven_tipo_Ing;
                    info_ing_egr.signo             = "+";
                    info_ing_egr.cm_observacion    = info_ajuste.Observacion;
                    info_ing_egr.IdUsuario         = info_ajuste.IdUsuario;
                    info_ing_egr.nom_pc            = info_ajuste.nom_pc;
                    info_ing_egr.ip           = info_ajuste.ip;
                    info_ing_egr.Estado       = "A";
                    info_ing_egr.cm_fecha     = info_ajuste.Fecha;
                    info_ing_egr.CodMoviInven = "AJU";
                    info_ing_egr.IdMotivo_Inv = 1;

                    /// obteniendo el detalle del movimiento de invetario
                    var SelectDetMoviIng = from q in info_ajuste.list_det_AjusteFisico
                                           where q.CantidadAjustada > 0
                                           select q;
                    int c = 1;
                    foreach (var item in SelectDetMoviIng)
                    {
                        info_costo_historico = bus_costo_historico.get_UltimoCosto_x_Producto_Bodega(info_ajuste.IdEmpresa, info_ajuste.IdSucursal, info_ajuste.IdBodega, item.IdProducto, info_ing_egr.cm_fecha);


                        in_Ing_Egr_Inven_det_Info detMovInfo = new in_Ing_Egr_Inven_det_Info();
                        //detMovInfo.dm_peso = item.p;
                        detMovInfo.dm_cantidad = Convert.ToDouble(item.CantidadAjustada);
                        detMovInfo.dm_cantidad_sinConversion = Convert.ToDouble(item.CantidadAjustada);
                        detMovInfo.IdProducto        = item.IdProducto;
                        detMovInfo.Secuencia         = c;
                        detMovInfo.IdEmpresa         = info_ajuste.IdEmpresa;
                        detMovInfo.IdBodega          = info_ing_egr.IdBodega;
                        detMovInfo.IdSucursal        = info_ing_egr.IdSucursal;
                        detMovInfo.IdMovi_inven_tipo = info_ing_egr.IdMovi_inven_tipo;
                        detMovInfo.IdNumMovi         = 0;//Nuevo
                        detMovInfo.signo             = info_ing_egr.signo;
                        detMovInfo.dm_observacion    = info_ajuste.Observacion;
                        //Costo historico
                        detMovInfo.mv_costo = info_costo_historico.costo;
                        detMovInfo.mv_costo_sinConversion = info_costo_historico.costo;
                        detMovInfo.IdCentroCosto          = item.IdCentroCosto;
                        info_ing_egr.listIng_Egr.Add(detMovInfo);
                        c++;
                    }
                    bus_ing_egr.GuardarDB(info_ing_egr, ref IdNumMovi_ing, ref mensaje);
                }


                #endregion
                #region HayEgreso
                HayEgresos = (Convert.ToDouble(TEgresos) > 0) ? true : false;

                if (HayEgresos == true)
                {
                    info_ing_egr = new in_Ing_Egr_Inven_Info();

                    info_ing_egr.IdEmpresa         = info_ajuste.IdEmpresa;
                    info_ing_egr.IdSucursal        = info_ajuste.IdSucursal;
                    info_ing_egr.IdBodega          = info_ajuste.IdBodega;
                    info_ing_egr.IdMovi_inven_tipo = info_ajuste.IdMovi_inven_tipo_Egr;
                    info_ing_egr.signo             = "-";
                    info_ing_egr.cm_observacion    = info_ajuste.Observacion;
                    info_ing_egr.IdUsuario         = info_ajuste.IdUsuario;
                    info_ing_egr.nom_pc            = info_ajuste.nom_pc;
                    info_ing_egr.ip           = info_ajuste.ip;
                    info_ing_egr.Estado       = "A";
                    info_ing_egr.cm_fecha     = info_ajuste.Fecha;
                    info_ing_egr.CodMoviInven = "AJU";
                    info_ing_egr.IdMotivo_Inv = 1;
                    /// encontrando el detalle de inventario
                    ///
                    var SelectDetMoviEgre = from q in info_ajuste.list_det_AjusteFisico
                                            where q.CantidadAjustada < 0
                                            select q;

                    int c = 1;

                    foreach (var item in SelectDetMoviEgre)
                    {
                        info_costo_historico = bus_costo_historico.get_UltimoCosto_x_Producto_Bodega(info_ajuste.IdEmpresa, info_ajuste.IdSucursal, info_ajuste.IdBodega, item.IdProducto, info_ing_egr.cm_fecha);

                        in_Ing_Egr_Inven_det_Info detMovInfo = new in_Ing_Egr_Inven_det_Info();
                        detMovInfo.IdEmpresa         = info_ing_egr.IdEmpresa;
                        detMovInfo.IdBodega          = info_ing_egr.IdBodega;
                        detMovInfo.IdSucursal        = info_ing_egr.IdSucursal;
                        detMovInfo.IdMovi_inven_tipo = info_ing_egr.IdMovi_inven_tipo;
                        detMovInfo.IdNumMovi         = 0;//Nuevo
                        //detMovInfo.peso = item.pr_peso;
                        detMovInfo.Secuencia = c;
                        c++;
                        detMovInfo.signo       = info_ing_egr.signo;
                        detMovInfo.IdProducto  = item.IdProducto;
                        detMovInfo.dm_cantidad = Convert.ToDouble(item.CantidadAjustada) * -1;
                        detMovInfo.dm_cantidad_sinConversion = Convert.ToDouble(item.CantidadAjustada) * -1;
                        detMovInfo.dm_observacion            = info_ing_egr.cm_observacion;
                        //Costo historico
                        detMovInfo.mv_costo = info_costo_historico.costo;
                        detMovInfo.mv_costo_sinConversion = info_costo_historico.costo;
                        detMovInfo.IdCentroCosto          = item.IdCentroCosto;

                        info_ing_egr.listIng_Egr.Add(detMovInfo);
                    }
                    bus_ing_egr.GuardarDB(info_ing_egr, ref IdNumMovi_egr, ref mensaje);
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "Armar_info_ing_egr", ex.Message), ex)
                      {
                          EntityType = typeof(in_AjusteFisico_Bus)
                      };
            }
        }
        public Boolean procesoGenerarMoviInve(in_Ing_Egr_Inven_Info info, decimal IdNumMovi, ref string mensajeError)
        {
            try
            {
                Boolean           res = true;
                string            IdEstadoAproba_Param = "";
                string            IdEstadoAproba       = "";
                in_Parametro_Bus  busParam             = new in_Parametro_Bus();
                in_Parametro_Info infoParam            = new in_Parametro_Info();
                infoParam = busParam.Get_Info_Parametro(info.IdEmpresa);

                if (info.signo == "+")
                {
                    IdEstadoAproba_Param = infoParam.IdEstadoAproba_x_Ing;
                }
                else
                {
                    IdEstadoAproba_Param = infoParam.IdEstadoAproba_x_Egr;
                }

                //Recosteo
                ProcesoRecosteoInventario(info);

                var query = from bod in info.listIng_Egr
                            group bod by bod.IdBodega into grupoBodega
                            orderby grupoBodega.Key
                            select grupoBodega;

                if (query.Count() > 1)
                {
                    // Varias bodegas
                    foreach (var grupoBodega in query)
                    {
                        // Detalle
                        List <in_Ing_Egr_Inven_det_Info> list_IngEgrDet = new List <in_Ing_Egr_Inven_det_Info>();
                        foreach (var bod in grupoBodega)
                        {
                            in_Ing_Egr_Inven_det_Info infoDet = new in_Ing_Egr_Inven_det_Info();

                            //prueba
                            infoDet.IdEmpresa  = bod.IdEmpresa;
                            infoDet.IdSucursal = bod.IdSucursal;
                            infoDet.IdNumMovi  = bod.IdNumMovi;
                            infoDet.Secuencia  = bod.Secuencia;
                            //prueba

                            infoDet.IdBodega       = bod.IdBodega;
                            infoDet.IdProducto     = bod.IdProducto;
                            infoDet.dm_cantidad    = bod.dm_cantidad;
                            infoDet.dm_observacion = bod.dm_observacion;
                            infoDet.mv_costo       = bod.mv_costo;
                            infoDet.IdCentroCosto  = bod.IdCentroCosto;
                            infoDet.IdCentroCosto_sub_centro_costo = bod.IdCentroCosto_sub_centro_costo;
                            infoDet.pr_descripcion      = bod.pr_descripcion;
                            infoDet.IdPunto_cargo       = bod.IdPunto_cargo;
                            infoDet.IdUnidadMedida      = bod.IdUnidadMedida;
                            infoDet.IdPunto_cargo_grupo = bod.IdPunto_cargo_grupo;
                            infoDet.IdMotivo_Inv        = bod.IdMotivo_Inv;

                            if (bod.IdEstadoAproba == null)
                            {
                                infoDet.IdEstadoAproba = Get_EstadoApro(bod.IdEmpresa, bod.IdSucursal, Convert.ToInt32(bod.IdBodega), IdEstadoAproba_Param);
                            }
                            else
                            {
                                infoDet.IdEstadoAproba = bod.IdEstadoAproba;
                            }

                            if (infoDet.IdEstadoAproba == Cl_Enumeradores.eEstadoAprobacion_Ing_Egr.PEND.ToString())
                            {
                                infoDet.Motivo_Aprobacion = null;
                            }
                            else
                            {
                                infoDet.Motivo_Aprobacion = (bod.Motivo_Aprobacion == null) ? "APROBADO POR SISTEMAS" : bod.Motivo_Aprobacion;
                            }

                            infoDet.IdUnidadMedida_sinConversion = bod.IdUnidadMedida_sinConversion;
                            infoDet.mv_costo_sinConversion       = bod.mv_costo_sinConversion;
                            infoDet.dm_cantidad_sinConversion    = bod.dm_cantidad_sinConversion;

                            list_IngEgrDet.Add(infoDet);
                        }
                        //cabecera
                        in_Ing_Egr_Inven_Info info_IngEgr = new in_Ing_Egr_Inven_Info();

                        info_IngEgr.IdEmpresa         = info.IdEmpresa;
                        info_IngEgr.IdNumMovi         = info.IdNumMovi;
                        info_IngEgr.IdSucursal        = info.IdSucursal;
                        info_IngEgr.IdBodega          = info.IdBodega;
                        info_IngEgr.CodMoviInven      = info.CodMoviInven;
                        info_IngEgr.cm_observacion    = info.cm_observacion;
                        info_IngEgr.IdMovi_inven_tipo = info.IdMovi_inven_tipo;
                        info_IngEgr.cm_fecha          = info.cm_fecha;
                        info_IngEgr.IdUsuario         = info.IdUsuario;
                        info_IngEgr.nom_pc            = info.nom_pc;
                        info_IngEgr.ip            = info.ip;
                        info_IngEgr.Fecha_Transac = info.Fecha_Transac;
                        info_IngEgr.signo         = info.signo;
                        info_IngEgr.IdMotivo_Inv  = info.IdMotivo_Inv;
                        info_IngEgr.listIng_Egr   = list_IngEgrDet;//asignando el detalle

                        res = Genera_Inventario(info_IngEgr, ref IdNumMovi, ref mensaje);
                    }
                }
                else
                {
                    IdEstadoAproba = Get_EstadoApro(Convert.ToInt32(info.IdEmpresa), Convert.ToInt32(info.IdSucursal), Convert.ToInt32(info.IdBodega), IdEstadoAproba_Param);
                    foreach (var item in info.listIng_Egr)
                    {
                        if (item.IdEstadoAproba == null)
                        {
                            item.IdEstadoAproba = IdEstadoAproba;
                        }

                        if (item.IdEstadoAproba == Cl_Enumeradores.eEstadoAprobacion_Ing_Egr.PEND.ToString())
                        {
                            item.Motivo_Aprobacion = null;
                        }
                        else
                        {
                            item.Motivo_Aprobacion = (item.Motivo_Aprobacion == null) ? "APROBADO POR SISTEMAS" : item.Motivo_Aprobacion;
                        }
                    }

                    //una bodega
                    res = Genera_Inventario(info, ref IdNumMovi, ref mensaje);
                }
                return(res);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "procesoGenerarMoviInve", ex.Message), ex)
                      {
                          EntityType = typeof(in_Ing_Egr_Inven_Bus)
                      };
            }
        }
        private void gridViewProductos_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            try
            {
                InfoDet = new in_Ing_Egr_Inven_det_Info();
                InfoDet = (in_Ing_Egr_Inven_det_Info)this.gridViewProductos.GetFocusedRow();
                if (InfoDet == null)
                {
                    return;
                }

                if (e.Column.Name == "colIdProducto")
                {
                    var itemProd = listProducto.FirstOrDefault(p => p.IdProducto == InfoDet.IdProducto);
                    InfoDet.cod_producto = itemProd.pr_codigo;

                    InfoDet.mv_costo = 0;
                    InfoDet.mv_costo_sinConversion       = 0;
                    InfoDet.pr_descripcion               = itemProd.pr_descripcion;
                    InfoDet.IdUnidadMedida               = itemProd.IdUnidadMedida_Consumo;
                    InfoDet.IdUnidadMedida_sinConversion = itemProd.IdUnidadMedida_Consumo;
                }
                if (e.Column == coldm_cantidad)
                {
                    foreach (var item in ListaBind)
                    {
                        if (item.dm_cantidad_sinConversion < 0)
                        {
                            item.dm_cantidad_sinConversion = 0;
                        }
                    }
                }
                if (e.Column == colIdCentroCosto)
                {
                    gridViewProductos.SetRowCellValue(RowHandle, colIdRegistro_subcentro, null);
                    gridViewProductos.SetRowCellValue(RowHandle, colIdCentroCosto_sub_centro_costo, null);
                }
                if (e.Column == col_cod_subcentro)
                {
                    if (InfoDet.IdCentroCosto != "" && InfoDet.IdCentroCosto != null)
                    {
                        string IdRegistro = InfoDet.IdCentroCosto;
                        IdRegistro     = IdRegistro + "-" + Convert.ToString(e.Value);
                        info_subcentro = list_subcentro_combo.FirstOrDefault(q => q.IdCentroCosto == InfoDet.IdCentroCosto && q.IdCentroCosto_sub_centro_costo == InfoDet.IdCentroCosto_sub_centro_costo);
                        if (info_subcentro != null)
                        {
                            gridViewProductos.SetRowCellValue(e.RowHandle, colIdRegistro_subcentro, info_subcentro.IdRegistro);
                            gridViewProductos.SetRowCellValue(RowHandle, colIdCentroCosto_sub_centro_costo, info_subcentro.IdCentroCosto_sub_centro_costo);
                        }
                        else
                        {
                            gridViewProductos.SetRowCellValue(RowHandle, colIdRegistro_subcentro, null);
                            //gridViewProductos.SetRowCellValue(RowHandle, colIdCentroCosto_sub_centro_costo, null);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus = new tb_sis_Log_Error_Vzen_Bus();
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private bool grabar_movimientos_x_distribucion(in_Ing_Egr_Inven_distribucion_Info info_distribucion)
        {
            try
            {
                info_info_distribucion_in = bus_info_distribucion_in.get_info(info_distribucion.IdEmpresa, info_distribucion.IdSucursal, info_distribucion.IdMovi_inven_tipo, info_distribucion.IdNumMovi, (info_distribucion.signo == "+" ? "-" : "+"));
                lst_motivo_inve           = data_motivo.get_list(info_distribucion.IdEmpresa, false);
                distribucion_sin_lote     = oData.get_info(info_distribucion.IdEmpresa, info_distribucion.IdSucursal, info_distribucion.IdMovi_inven_tipo, info_distribucion.IdNumMovi, (info_distribucion.signo == "+" ? "-" : "+"));
                distribucion_con_lote     = oData.get_info(info_distribucion.IdEmpresa, info_distribucion.IdSucursal, info_distribucion.IdMovi_inven_tipo, info_distribucion.IdNumMovi, info_distribucion.signo);

                #region Crear movimiento sin lote
                if (info_info_distribucion_in == null)
                {
                    info_info_distribucion_in = info_distribucion;
                }
                #region Cabecera
                if (distribucion_sin_lote != null)
                {
                    mov_sin_lote = bus_ing_egr.get_info(distribucion_sin_lote.IdEmpresa_dis, distribucion_sin_lote.IdSucursal_dis, distribucion_sin_lote.IdMovi_inven_tipo_dis, distribucion_sin_lote.IdNumMovi_dis);
                }
                else
                {
                    info_motivo = lst_motivo_inve.FirstOrDefault(q => q.Genera_Movi_Inven == "S" && q.Tipo_Ing_Egr == (info_distribucion.signo == "+" ? "EGR" : "ING"));
                    if (info_motivo == null)
                    {
                        return(false);
                    }

                    mov_sin_lote = new in_Ing_Egr_Inven_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.signo == "+" ? Convert.ToInt32(info_info_distribucion_in.IdMovi_inven_tipo) : Convert.ToInt32(info_info_distribucion_in.IdMovi_inven_tipo),
                        IdNumMovi         = 0,
                        IdBodega          = info_distribucion.IdBodega,
                        signo             = (info_distribucion.signo == "+" ? "-" : "+"),
                        CodMoviInven      = "Dis_" + info_distribucion.IdEmpresa.ToString("00") + "_" + info_distribucion.IdSucursal.ToString("00") + "_" + info_distribucion.IdMovi_inven_tipo.ToString("00") + "_" + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_observacion    = "Dis. x lote ",
                        cm_fecha          = DateTime.Now.Date,
                        IdUsuario         = info_distribucion.IdUsuario,
                        Estado            = "A",
                        Fecha_Transac     = DateTime.Now,
                        IdMotivo_Inv      = info_motivo.IdMotivo_Inv
                    };
                }
                #endregion

                #region Detalle
                foreach (var item in info_distribucion.lst_x_distribuir)
                {
                    if (item.can_distribuida > 0)
                    {
                        in_Ing_Egr_Inven_det_Info info_det = new in_Ing_Egr_Inven_det_Info
                        {
                            IdEmpresa                    = mov_sin_lote.IdEmpresa,
                            IdSucursal                   = mov_sin_lote.IdSucursal,
                            IdMovi_inven_tipo            = mov_sin_lote.IdMovi_inven_tipo,
                            IdNumMovi                    = mov_sin_lote.IdNumMovi,
                            IdBodega                     = (int)mov_sin_lote.IdBodega,
                            IdProducto                   = item.IdProducto,
                            dm_observacion               = "",
                            dm_cantidad                  = item.can_distribuida == null ? 0 : Convert.ToDouble(item.can_distribuida) * (info_distribucion.signo == "+" ? -1 : 1),
                            dm_cantidad_sinConversion    = item.can_distribuida == null ? 0 : Convert.ToDouble(item.can_distribuida),
                            mv_costo                     = item.mv_costo,
                            mv_costo_sinConversion       = item.mv_costo,
                            IdUnidadMedida               = item.IdUnidadMedida,
                            IdUnidadMedida_sinConversion = item.IdUnidadMedida,
                        };
                        mov_sin_lote.lst_in_Ing_Egr_Inven_det.Add(info_det);
                    }
                }
                #endregion

                #endregion

                #region Crear movimiento con lote
                in_Ing_Egr_Inven_Info mov_con_lote = new in_Ing_Egr_Inven_Info();

                #region Cabecera
                if (distribucion_con_lote != null)
                {
                    mov_con_lote = bus_ing_egr.get_info(distribucion_con_lote.IdEmpresa_dis, distribucion_con_lote.IdSucursal_dis, distribucion_con_lote.IdMovi_inven_tipo_dis, distribucion_con_lote.IdNumMovi_dis);
                }
                else
                {
                    info_motivo = lst_motivo_inve.FirstOrDefault(q => q.Genera_Movi_Inven == "S" && q.Tipo_Ing_Egr == (info_distribucion.signo == "+" ? "ING" : "EGR"));
                    if (info_motivo == null)
                    {
                        return(false);
                    }

                    mov_con_lote = new in_Ing_Egr_Inven_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.signo == "+" ? Convert.ToInt32(info_info_distribucion_in.IdMovi_inven_tipo) : Convert.ToInt32(info_info_distribucion_in.IdMovi_inven_tipo),
                        IdNumMovi         = 0,
                        IdBodega          = info_distribucion.IdBodega,
                        signo             = info_distribucion.signo,
                        CodMoviInven      = "Dis_" + info_distribucion.IdEmpresa.ToString("00") + "_" + info_distribucion.IdSucursal.ToString("00") + "_" + info_distribucion.IdMovi_inven_tipo.ToString("00") + "_" + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_observacion    = "Dis. x lote - Sucursal: ",
                        cm_fecha          = DateTime.Now.Date,
                        IdUsuario         = info_distribucion.IdUsuario,
                        Estado            = "A",
                        Fecha_Transac     = DateTime.Now,
                        nom_pc            = "",
                        ip           = "",
                        IdMotivo_Inv = info_motivo.IdMotivo_Inv
                    };
                }
                #endregion

                #region Detalle
                foreach (var item in info_distribucion.lst_distribuido)
                {
                    in_Ing_Egr_Inven_det_Info info_det = new in_Ing_Egr_Inven_det_Info
                    {
                        IdEmpresa                    = mov_sin_lote.IdEmpresa,
                        IdSucursal                   = mov_sin_lote.IdSucursal,
                        IdMovi_inven_tipo            = mov_sin_lote.IdMovi_inven_tipo,
                        IdNumMovi                    = mov_sin_lote.IdNumMovi,
                        IdBodega                     = (int)info_distribucion.IdBodega,
                        IdProducto                   = item.IdProducto,
                        dm_observacion               = "",
                        dm_cantidad                  = item.dm_cantidad * (info_distribucion.signo == "+" ? 1 : -1),
                        dm_cantidad_sinConversion    = item.dm_cantidad,
                        mv_costo                     = item.mv_costo,
                        mv_costo_sinConversion       = item.mv_costo,
                        IdUnidadMedida               = item.IdUnidadMedida,
                        IdUnidadMedida_sinConversion = item.IdUnidadMedida,
                    };
                    mov_con_lote.lst_in_Ing_Egr_Inven_det.Add(info_det);
                }
                #endregion

                #endregion

                #region guardar movimientos y distribucion
                if (distribucion_sin_lote == null)
                {
                    if (!bus_ing_egr.guardarDB(mov_sin_lote, ""))
                    {
                        return(false);
                    }

                    distribucion_sin_lote = new in_Ing_Egr_Inven_distribucion_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.IdMovi_inven_tipo,
                        IdNumMovi         = info_distribucion.IdNumMovi,

                        IdEmpresa_dis         = mov_sin_lote.IdEmpresa,
                        IdSucursal_dis        = mov_sin_lote.IdSucursal,
                        IdMovi_inven_tipo_dis = mov_sin_lote.IdMovi_inven_tipo,
                        IdNumMovi_dis         = mov_sin_lote.IdNumMovi,
                        signo  = mov_sin_lote.signo,
                        estado = true,
                    };

                    if (!oData.guardarDB(distribucion_sin_lote))
                    {
                        return(false);
                    }
                }
                else
                {
                    /* if (!bus_ing_egr.Reversar_Aprobacion(distribucion_sin_lote.IdEmpresa_dis, distribucion_sin_lote.IdSucursal_dis, distribucion_sin_lote.IdMovi_inven_tipo_dis, distribucion_sin_lote.IdNumMovi_dis, "S"))
                     *   return false;
                     */
                    if (!bus_ing_egr.modificarDB(mov_sin_lote))
                    {
                        return(false);
                    }
                }

                if (distribucion_con_lote == null)
                {
                    if (!bus_ing_egr.guardarDB(mov_con_lote, mov_con_lote.signo))
                    {
                        return(false);
                    }

                    distribucion_con_lote = new in_Ing_Egr_Inven_distribucion_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.IdMovi_inven_tipo,
                        IdNumMovi         = info_distribucion.IdNumMovi,

                        IdEmpresa_dis         = mov_con_lote.IdEmpresa,
                        IdSucursal_dis        = mov_con_lote.IdSucursal,
                        IdMovi_inven_tipo_dis = mov_con_lote.IdMovi_inven_tipo,
                        IdNumMovi_dis         = mov_con_lote.IdNumMovi,
                        signo  = mov_con_lote.signo,
                        estado = true,
                    };

                    if (!oData.guardarDB(distribucion_con_lote))
                    {
                        return(false);
                    }
                }
                else
                {
                    /*
                     * if (!bus_ing_egr.Reversar_Aprobacion(distribucion_con_lote.IdEmpresa_dis, distribucion_con_lote.IdSucursal_dis, distribucion_con_lote.IdMovi_inven_tipo_dis, distribucion_con_lote.IdNumMovi_dis, "S"))
                     *  return false;
                     */
                    if (!bus_ing_egr.modificarDB(mov_con_lote))
                    {
                        return(false);
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Esempio n. 27
0
        public Boolean Actualizar_Estados()
        {
            try
            {
                ucIn_Sucursal_Bodega1.Focus();
                list_validar = new List <vwin_Ing_Egr_Inven_det_Info>(ListaBind.Where(q => q.Checked == true).ToList());
                Buscar();
                foreach (var item in list_validar)
                {
                    Info_validar = ListaBind.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdSucursal == item.IdSucursal && q.IdMovi_inven_tipo == item.IdMovi_inven_tipo && q.IdNumMovi == item.IdNumMovi && q.secuencia == item.secuencia);

                    if (Info_validar != null)
                    {
                        ListaBind.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdSucursal == item.IdSucursal && q.IdMovi_inven_tipo == item.IdMovi_inven_tipo && q.IdNumMovi == item.IdNumMovi && q.secuencia == item.secuencia).Checked        = true;
                        ListaBind.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdSucursal == item.IdSucursal && q.IdMovi_inven_tipo == item.IdMovi_inven_tipo && q.IdNumMovi == item.IdNumMovi && q.secuencia == item.secuencia).IdEstadoAproba = "APRO";
                    }
                }
                gridControlCons.DataSource = ListaBind;

                List <in_Ing_Egr_Inven_det_Info> lista = new List <in_Ing_Egr_Inven_det_Info>();
                foreach (var item in ListaBind)
                {
                    in_Ing_Egr_Inven_det_Info info = new in_Ing_Egr_Inven_det_Info();

                    if (item.Checked == true)
                    {
                        //PK
                        info.IdEmpresa         = item.IdEmpresa;
                        info.IdSucursal        = item.IdSucursal;
                        info.IdMovi_inven_tipo = item.IdMovi_inven_tipo;
                        info.IdNumMovi         = item.IdNumMovi;
                        info.Secuencia         = item.secuencia;

                        info.IdBodega       = item.IdBodega;
                        info.IdProducto     = item.IdProducto;
                        info.dm_cantidad    = item.dm_cantidad;
                        info.dm_stock_ante  = item.dm_stock_ante;
                        info.dm_stock_actu  = item.dm_stock_actu;
                        info.dm_observacion = item.dm_observacion;
                        info.dm_precio      = item.dm_precio;
                        info.mv_costo       = item.mv_costo;
                        info.dm_peso        = item.dm_peso;
                        info.IdCentroCosto  = item.IdCentroCosto;
                        info.IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo;
                        info.IdPunto_cargo     = item.IdPunto_cargo;
                        info.IdUnidadMedida    = item.IdUnidadMedida;
                        info.IdEstadoAproba    = item.IdEstadoAproba;
                        info.Motivo_Aprobacion = item.Motivo_Aprobacion;
                        info.IdMotivo_Inv      = item.IdMotivo_Inv;

                        info.IdUnidadMedida_sinConversion = item.IdUnidadMedida_sinConversion;
                        info.dm_cantidad_sinConversion    = item.dm_cantidad_sinConversion;
                        info.mv_costo_sinConversion       = item.mv_costo_sinConversion;
                        lista.Add(info);
                    }
                }

                var itemTipMov = cmbTipoMovInv.get_TipoMoviInvInfo();

                if (itemTipMov != null)
                {
                    tipo = itemTipMov.cm_tipo_movi;
                }
                string mensaje = "";
                if (bus_IngEgrDet.Modificar_Estado_IngEgr_Det(lista, tipo, ref mensaje))
                {
                    MessageBox.Show(mensaje, param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else
                {
                    MessageBox.Show("Error al Actualizar Estados, " + mensaje, param.Nombre_sistema);
                    return(false);
                }

                return(true);
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
        }
        private void Get_trans_checked()
        {
            try
            {
                cmbTipoMovInv.Focus();
                list_aprobar = new List <in_Ing_Egr_Inven_det_Info>();
                list_validar = new List <in_Ing_Egr_Inven_Info>(blist_ing_egr.Where(q => q.Checked == true).ToList());
                //validación para el caso de que dos personas aprueben el mismo desde dos máquinas distintas.
                Buscar();
                foreach (var item in list_validar)
                {
                    Info_validar = blist_ing_egr.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdSucursal == item.IdSucursal && q.IdMovi_inven_tipo == item.IdMovi_inven_tipo && q.IdNumMovi == item.IdNumMovi);

                    if (Info_validar != null)
                    {
                        blist_ing_egr.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdSucursal == item.IdSucursal && q.IdMovi_inven_tipo == item.IdMovi_inven_tipo && q.IdNumMovi == item.IdNumMovi).Checked        = true;
                        blist_ing_egr.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdSucursal == item.IdSucursal && q.IdMovi_inven_tipo == item.IdMovi_inven_tipo && q.IdNumMovi == item.IdNumMovi).IdEstadoAproba = "APRO";
                    }
                }
                gridControlAprobación.DataSource = blist_ing_egr;

                foreach (var cabecera in blist_ing_egr)
                {
                    if (cabecera.Checked == true)
                    {
                        List <in_Ing_Egr_Inven_det_Info> lista = new List <in_Ing_Egr_Inven_det_Info>();
                        lista = bus_ingr_egr_det.Get_List_Ing_Egr_Inven_det_x_Num_Movimiento(cabecera.IdEmpresa, cabecera.IdSucursal, cabecera.IdMovi_inven_tipo, cabecera.IdNumMovi);

                        foreach (var item in lista)
                        {
                            in_Ing_Egr_Inven_det_Info info = new in_Ing_Egr_Inven_det_Info();
                            info.IdEmpresa         = item.IdEmpresa;
                            info.IdSucursal        = item.IdSucursal;
                            info.IdNumMovi         = item.IdNumMovi;
                            info.Secuencia         = item.Secuencia;
                            info.IdBodega          = item.IdBodega;
                            info.IdProducto        = item.IdProducto;
                            info.IdMovi_inven_tipo = item.IdMovi_inven_tipo;
                            info.dm_cantidad       = item.dm_cantidad;
                            info.dm_observacion    = item.dm_observacion;
                            info.mv_costo          = item.mv_costo;
                            info.IdCentroCosto     = item.IdCentroCosto;
                            info.IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo;
                            info.IdPunto_cargo     = item.IdPunto_cargo;
                            info.IdUnidadMedida    = item.IdUnidadMedida;
                            info.IdEstadoAproba    = Cl_Enumeradores.eEstadoAprobacion_Ing_Egr.APRO.ToString();
                            info.Motivo_Aprobacion = "APROBADO POR SISTEMAS";
                            info.IdMotivo_Inv      = item.IdMotivo_Inv;

                            info.IdUnidadMedida_sinConversion = item.IdUnidadMedida_sinConversion;
                            info.dm_cantidad_sinConversion    = item.dm_cantidad_sinConversion;
                            info.Checked     = true;
                            info.do_subtotal = item.mv_costo * item.dm_cantidad;

                            list_aprobar.Add(info);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Esempio n. 29
0
        public Boolean GuardarDB(in_devolucion_inven_Info info, ref decimal IdDev_Inven, ref string mensaje)
        {
            Boolean Respuesta = false;

            try
            {
                int c = 0;
                Respuesta = oDat.GuardarDB(info, ref IdDev_Inven, ref mensaje);
                if (Respuesta)
                {
                    c = 0;
                    foreach (var item in info.lista_detalle)
                    {
                        item.IdDev_Inven = IdDev_Inven;
                        c++;
                        item.secuencia = c;
                    }
                    in_devolucion_inven_det_Bus BusDev_inv_det = new in_devolucion_inven_det_Bus();
                    Respuesta = BusDev_inv_det.GuardarDB(info.lista_detalle, ref mensaje);


                    in_Parametro_Bus  BusParametro  = new in_Parametro_Bus();
                    in_Parametro_Info InfoParametro = new in_Parametro_Info();
                    InfoParametro = BusParametro.Get_Info_Parametro(info.IdEmpresa);
                    in_movi_inven_tipo_Info InfoMovi_tipo = new in_movi_inven_tipo_Info();
                    in_movi_inven_tipo_Bus  BusMovi_tipo  = new in_movi_inven_tipo_Bus();


                    InfoMovi_tipo = BusMovi_tipo.Get_Info_movi_inven_tipo(info.IdEmpresa, info.IdMovi_inven_tipo);

                    //                    in_movi_inve_Bus BusMovi_Inven = new in_movi_inve_Bus();
                    //                    in_movi_inve_Info InfoMovi_Inven = new in_movi_inve_Info();

                    //InfoMovi_Inven  = BusMovi_Inven.Get_Info_Movi_inven(info.IdEmpresa, info.IdSucursal_movi_inven, info.IdBodega_movi_inven, info.IdMovi_inven_tipo, info.IdNumMovi);

                    in_Ing_Egr_Inven_Bus  Bus_Ing_Egre = new in_Ing_Egr_Inven_Bus();
                    in_Ing_Egr_Inven_Info Info_Ing_Egr = new in_Ing_Egr_Inven_Info();

                    Info_Ing_Egr = Bus_Ing_Egre.Get_Info_Ing_Egr_Inven(info.IdEmpresa, info.IdSucursal_movi_inven, info.IdMovi_inven_tipo, info.IdNumMovi);

                    Info_Ing_Egr.IdNumMovi    = 0;
                    Info_Ing_Egr.IdMotivo_Inv = 1;
                    if (InfoMovi_tipo.cm_tipo_movi == "-")// si es positivo hacer un egreso
                    {
                        Info_Ing_Egr.IdMovi_inven_tipo = Convert.ToInt32(InfoParametro.IdMovi_Inven_tipo_x_Dev_Inv_x_Erg);
                        Info_Ing_Egr.signo             = "+";
                    }
                    else
                    {
                        Info_Ing_Egr.IdMovi_inven_tipo = Convert.ToInt32(InfoParametro.IdMovi_Inven_tipo_x_Dev_Inv_x_Ing);
                        Info_Ing_Egr.signo             = "-";
                    }

                    Info_Ing_Egr.CodMoviInven   = "";
                    Info_Ing_Egr.cm_observacion = "Ing x Dev/Inv. " + info.observacion;
                    Info_Ing_Egr.cm_fecha       = info.Fecha.Date;//La fecha de devolución
                    Info_Ing_Egr.IdUsuario      = param.IdUsuario;
                    Info_Ing_Egr.Estado         = "A";

                    c = 0;


                    foreach (var item in info.lista_detalle)
                    {
                        c = c + 1;
                        in_movi_inve_detalle_Info info_det_movi = new in_movi_inve_detalle_Info();
                        in_movi_inve_detalle_Bus  bus_det_movi  = new in_movi_inve_detalle_Bus();
                        info_det_movi = bus_det_movi.Get_info_Movi_inven_det(item.IdEmpresa_movi_inv, item.IdSucursal_movi_inv, item.IdBodega_movi_inv, item.IdMovi_inven_tipo_movi_inv, item.IdNumMovi_movi_inv, item.Secuencia_movi_inv);

                        in_Ing_Egr_Inven_det_Info InfoDet_Ing_Egr = new in_Ing_Egr_Inven_det_Info();

                        InfoDet_Ing_Egr.IdEmpresa  = item.IdEmpresa;
                        InfoDet_Ing_Egr.IdSucursal = item.IdSucursal_movi_inv;
                        InfoDet_Ing_Egr.IdNumMovi  = 0;
                        InfoDet_Ing_Egr.Secuencia  = c;
                        InfoDet_Ing_Egr.IdBodega   = item.IdBodega_movi_inv;
                        InfoDet_Ing_Egr.IdProducto = info_det_movi.IdProducto;
                        if (Info_Ing_Egr.signo == "+")// si es positivo hacer un egreso
                        {
                            InfoDet_Ing_Egr.dm_cantidad_sinConversion = Math.Abs(item.cantidad_a_devolver);
                            InfoDet_Ing_Egr.dm_cantidad    = Math.Abs(item.cantidad_a_devolver);
                            InfoDet_Ing_Egr.IdEstadoAproba = "APRO";//Debe ir directamente aprobado para poder vincularlo al ing/egr que se va a devolver por cuestiones del recosteo
                        }
                        else
                        {
                            InfoDet_Ing_Egr.dm_cantidad_sinConversion = Math.Abs(item.cantidad_a_devolver);
                            InfoDet_Ing_Egr.dm_cantidad    = Math.Abs(item.cantidad_a_devolver) * -1;
                            InfoDet_Ing_Egr.IdEstadoAproba = "APRO";//Debe ir directamente aprobado para poder vincularlo al ing/egr que se va a devolver por cuestiones del recosteo
                        }

                        //Se pasa directamente el costo y unidad de medida convertido
                        InfoDet_Ing_Egr.mv_costo_sinConversion = (info_det_movi.mv_costo == null) ? 0 : Convert.ToDouble(info_det_movi.mv_costo);
                        InfoDet_Ing_Egr.mv_costo                     = (info_det_movi.mv_costo == null) ? 0 : Convert.ToDouble(info_det_movi.mv_costo);
                        InfoDet_Ing_Egr.IdUnidadMedida               = info_det_movi.IdUnidadMedida;
                        InfoDet_Ing_Egr.IdUnidadMedida_Consumo       = info_det_movi.IdUnidadMedida;
                        InfoDet_Ing_Egr.IdUnidadMedida_sinConversion = info_det_movi.IdUnidadMedida;

                        //Ingreso los id del detalle que esta devolviendo
                        InfoDet_Ing_Egr.IdEmpresa_dev         = item.IdEmpresa_movi_inv;
                        InfoDet_Ing_Egr.IdSucursal_dev        = item.IdSucursal_movi_inv;
                        InfoDet_Ing_Egr.IdBodega_dev          = item.IdBodega_movi_inv;
                        InfoDet_Ing_Egr.IdMovi_inven_tipo_dev = item.IdMovi_inven_tipo_movi_inv;
                        InfoDet_Ing_Egr.IdNumMovi_dev         = item.IdNumMovi_movi_inv;
                        InfoDet_Ing_Egr.Secuencia_dev         = item.Secuencia_movi_inv;

                        //Campos de egresos
                        InfoDet_Ing_Egr.IdPunto_cargo                  = info_det_movi.IdPunto_Cargo;
                        InfoDet_Ing_Egr.IdPunto_cargo_grupo            = info_det_movi.IdPunto_cargo_grupo;
                        InfoDet_Ing_Egr.IdCentroCosto                  = info_det_movi.IdCentroCosto;
                        InfoDet_Ing_Egr.IdCentroCosto_sub_centro_costo = info_det_movi.IdCentroCosto_sub_centro_costo;

                        Info_Ing_Egr.listIng_Egr.Add(InfoDet_Ing_Egr);
                    }

                    decimal IdNumMovi = 0;

                    Respuesta = Bus_Ing_Egre.GuardarDB(Info_Ing_Egr, ref IdNumMovi, ref mensaje);
                }


                return(Respuesta);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "GuardarDB", ex.Message), ex)
                      {
                          EntityType = typeof(in_devolucion_inven_Bus)
                      };
            }
        }