public in_Consignacion_Info GetInfo(int IdEmpresa, decimal IdConsignacion, int IdSucursal, int IdBodega)
 {
     try
     {
         in_Consignacion_Info info = new in_Consignacion_Info();
         using (Entities_inventario Context = new Entities_inventario())
         {
             in_Consignacion Entity = Context.in_Consignacion.FirstOrDefault(q => q.IdEmpresa == IdEmpresa && q.IdConsignacion == IdConsignacion && q.IdSucursal == IdSucursal && q.IdBodega == IdBodega);
             if (Entity == null)
             {
                 return(null);
             }
             info = new in_Consignacion_Info
             {
                 IdEmpresa         = Entity.IdEmpresa,
                 IdConsignacion    = Entity.IdConsignacion,
                 IdSucursal        = Entity.IdSucursal,
                 IdBodega          = Entity.IdBodega,
                 Fecha             = Entity.Fecha,
                 IdProveedor       = Entity.IdProveedor,
                 Observacion       = Entity.Observacion,
                 Estado            = Entity.Estado,
                 MotivoAnulacion   = Entity.MotivoAnulacion,
                 IdMovi_inven_tipo = Entity.IdMovi_inven_tipo,
                 IdNumMovi         = Entity.IdNumMovi
             };
         }
         return(info);
     }
     catch (Exception)
     {
         throw;
     }
 }
        public bool AnularBD(in_Consignacion_Info info)
        {
            try
            {
                #region Variables
                in_Ing_Egr_Inven_Data data_inv = new in_Ing_Egr_Inven_Data();
                #endregion

                using (Entities_inventario db = new Entities_inventario())
                {
                    in_Consignacion Entity = db.in_Consignacion.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdConsignacion == info.IdConsignacion && q.IdSucursal == info.IdSucursal && q.IdBodega == info.IdBodega).FirstOrDefault();

                    if (Entity == null)
                    {
                        return(false);
                    }

                    Entity.MotivoAnulacion = info.MotivoAnulacion;
                    Entity.Estado          = false;
                    Entity.IdUsuarioUltAnu = info.IdUsuarioUltAnu;
                    Entity.Fecha_UltAnu    = DateTime.Now;

                    #region Ingreso egreso inventario
                    var parametro = db.in_parametro.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                    info.IdMovi_inven_tipo = parametro.IdMovi_inven_tipo_Consignacion;

                    if (!data_inv.anularDB(new in_Ing_Egr_Inven_Info {
                        IdEmpresa = info.IdEmpresa, IdSucursal = info.IdSucursal, IdMovi_inven_tipo = info.IdMovi_inven_tipo, IdNumMovi = info.IdNumMovi, IdusuarioUltAnu = info.IdUsuarioUltAnu, MotivoAnulacion = info.MotivoAnulacion
                    }))
                    {
                    }
                    #endregion

                    db.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public bool ModificarDB(in_Consignacion_Info info)
        {
            try
            {
                in_Ing_Egr_Inven_Data data_inv       = new in_Ing_Egr_Inven_Data();
                cp_proveedor_Data     data_proveedor = new cp_proveedor_Data();

                using (Entities_inventario db = new Entities_inventario())
                {
                    in_Consignacion Entity = db.in_Consignacion.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdConsignacion == info.IdConsignacion).FirstOrDefault();

                    if (Entity == null)
                    {
                        return(false);
                    }

                    Entity.IdProveedor     = info.IdProveedor;
                    Entity.IdBodega        = info.IdBodega;
                    Entity.Fecha           = info.Fecha;
                    Entity.Observacion     = info.Observacion;
                    Entity.IdUsuarioUltMod = info.IdUsuarioUltMod;
                    Entity.Fecha_UltMod    = DateTime.Now;

                    var lst_det_consignacion = db.in_ConsignacionDet.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdConsignacion == info.IdConsignacion).ToList();
                    db.in_ConsignacionDet.RemoveRange(lst_det_consignacion);

                    if (info.lst_producto_consignacion != null)
                    {
                        int Secuencia = 1;

                        foreach (var item in info.lst_producto_consignacion)
                        {
                            db.in_ConsignacionDet.Add(new in_ConsignacionDet
                            {
                                IdEmpresa      = info.IdEmpresa,
                                IdConsignacion = info.IdConsignacion,
                                Secuencia      = Secuencia++,
                                IdProducto     = item.IdProducto,
                                IdUnidadMedida = item.IdUnidadMedida,
                                Cantidad       = item.Cantidad,
                                Costo          = item.Costo,
                                Observacion    = item.Observacion
                            });
                        }
                    }

                    #region Ingreso egreso inventario
                    var parametro = db.in_parametro.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                    info.IdMovi_inven_tipo = parametro.IdMovi_inven_tipo_Consignacion;
                    cp_proveedor_Info dato_proveedor = data_proveedor.get_info(info.IdEmpresa, info.IdProveedor);
                    var nomContacto = dato_proveedor.info_persona.pe_nombreCompleto;

                    in_Ing_Egr_Inven_Info movimiento = armar_movi_inven(info, nomContacto);

                    if (movimiento != null)
                    {
                        movimiento.IdNumMovi = info.IdNumMovi;
                        data_inv.modificarDB(movimiento);
                    }
                    #endregion

                    db.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }