Пример #1
0
        public static bool SaveDetails(OIGE_GoodsIssues SelectedGoodsIssues, OITB_Groups SelectedGroup, UMovement SelectedMovement)
        {
            bool needUpdate = false;

            lock (Extensions.Locker)
            {
                var db = ContextFactory.GetDBContext();

                SelectedGoodsIssues.ItmsGrpCod = SelectedGroup.ItmsGrpCod;

                SelectedGoodsIssues.IdMovement = SelectedMovement.Code;

                //SelectedGoodsIssues.IGN1_GoodsReceiptDetail = GoodsIssuesDetails;

                //if (!db.OIGE_GoodsIssues.Any(g => g.IdGoodIssueL == SelectedGoodsIssues.IdGoodIssueL))
                //{
                //    //GoodsIssuesDetails.ToList().ForEach(d => SelectedGoodsIssues.IGE1_GoodsIssueDetail.Add(d));
                //    needUpdate = true;
                //    db.OIGE_GoodsIssues.Add(SelectedGoodsIssues);
                //}
                if (SelectedGoodsIssues.IdGoodIssueL == 0)
                {
                    db.OIGE_GoodsIssues.Add(SelectedGoodsIssues);
                }
                else if (db.Entry(SelectedGoodsIssues).State == EntityState.Modified)
                {
                    SelectedGoodsIssues.ModifiedDateL = DateTime.Now;
                    SelectedGoodsIssues.ModifiedByL   = Config.CurrentUser;
                }

                ContextFactory.SaveChanges();
            }
            return(needUpdate);
        }
Пример #2
0
        public static ObservableCollection <InventoryCount> GetInventoryCount(OITB_Groups selecteGroup,
                                                                              DateTime?startDate, DateTime?endDate, string keywords, LocalStatus?status)
        {
            lock (Extensions.Locker)
            {
                var db = ContextFactory.GetDBContext();
                IQueryable <InventoryCount> count = db.InventoryCount.Include("InventoryCountDetail");

                if (selecteGroup != null)
                {
                    count = count.Where(c => c.ItmsGrpCod == selecteGroup.ItmsGrpCod);
                }
                if (startDate.HasValue)
                {
                    count = count.Where(c => c.DocDate >= startDate.Value);
                }
                if (endDate.HasValue)
                {
                    count = count.Where(c => c.DocDate <= endDate.Value);
                }
                if (!string.IsNullOrEmpty(keywords))
                {
                    count = count.Where(c => c.Comments.Contains(keywords));
                }
                if (status.HasValue)
                {
                    count = count.Where(c => c.StateL == status.Value);
                }

                var grpNames = (from item in count
                                join grp in db.OITB_Groups on item.ItmsGrpCod equals grp.ItmsGrpCod
                                select new
                {
                    Code = item.ItmsGrpCod,
                    GroupName = grp.ItmsGrpNam,
                }).ToList();
                var collection = count.ToList();



                collection.ForEach(c =>
                {
                    var grp = grpNames.FirstOrDefault(g => g.Code == c.ItmsGrpCod);
                    if (grp != null)
                    {
                        c.GroupName = grp.GroupName;
                    }
                });

                return(new ObservableCollection <InventoryCount>(collection));
            }
        }
Пример #3
0
        public static ObservableCollection <InventoryCountDetail> GetDetalCollection(OITB_Groups selectedGroup, InventoryCount inventory)
        {
            lock (Extensions.Locker)
            {
                var db = ContextFactory.GetDBContext();
                IQueryable <OITM_Articles> dbArticles = db.OITM_Articles
                                                        .OrderByDescending(p => p.TemplateL);

                if (selectedGroup != null)
                {
                    dbArticles = dbArticles.Where(i => i.ItmsGrpCod == selectedGroup.ItmsGrpCod);
                }
                var details = (

                    from br in db.OITW_BranchArticles.Where(b => b.WhsCode == Config.WhsCode)
                    join i in dbArticles on br.ItemCode equals i.ItemCode
                    join cat in db.UCategories on i.U_categoria equals cat.Code into scategorires
                    from scat in scategorires.DefaultIfEmpty()
                    //Validaciones de articulos
                    where i.InvntItem.Contains("Y") && i.validFor.Contains("Y") &&
                    br.Locked.Contains("N")


                    // where  i.ItmsGrpCod == selectedGroup.ItmsGrpCod

                    select new
                {
                    ItemCode = i.ItemCode,
                    Dscription = i.ItemName,
                    Quantity = br.OnHand1.HasValue? br.OnHand1.Value:0,
                    Unit = i.InvntryUom,
                    OnHand = br.OnHand1.HasValue? br.OnHand1.Value:0,
                    OITM_Articles = i,
                    Category = (scat == null? string.Empty:scat.Name),
                    template = i.TemplateL,
                }).OrderByDescending(p => p.template)
                              .ThenByDescending(c => c.Category).ThenBy(e => e.Dscription).ToList();

                var branchDetails = details.Select(i =>
                                                   new InventoryCountDetail()
                {
                    ItemCode      = i.ItemCode,
                    Dscription    = i.Dscription,
                    Quantity      = i.Quantity,
                    Unit          = i.Unit,
                    OnHand        = i.OnHand,
                    OITM_Articles = i.OITM_Articles,
                    Category      = i.Category,
                }
                                                   );

                //// Add articles with category null
                //var productsIds = branchDetails.Select(b => b.ItemCode).ToList();
                // IQueryable<OITM_Articles> pendingItems =
                //    dbArticles.Where(p => !productsIds.Contains(p.ItemCode) && string.IsNullOrEmpty(p.U_categoria));

                //var pendingProducts = ( from br in branch.OITW_BranchArticles
                //                        join article in  pendingItems on br.ItemCode equals  article.ItemCode
                //                        select new InventoryCountDetail()
                //                        {
                //                            ItemCode = article.ItemCode,
                //                            Dscription = article.ItemName,
                //                            Quantity = br.OnHand1.HasValue ? br.OnHand1.Value : 0,
                //                            Unit = article.InvntryUom,
                //                            OnHand = br.OnHand1.HasValue ? br.OnHand1.Value : 0,
                //                            OITM_Articles = article,

                //                        }).ToList();

                //branchDetails.AddRange(pendingProducts);

                inventory.InventoryCountDetail.ForEach(d =>
                {
                    var product = branchDetails.FirstOrDefault(i => i.ItemCode == d.ItemCode);
                    if (product != null)
                    {
                        d.OnHand   = product.OnHand;
                        d.Category = product.Category;
                        //d.Quantity = product.Quantity;
                        d.Unit = product.Unit;
                        //branchDetails.Remove(product);
                        //branchDetails.Add(d);
                    }
                });
                if (!inventory.InventoryCountDetail.Any())
                {
                    return(new ObservableCollection <InventoryCountDetail>(branchDetails));
                }
                else
                {
                    return(new ObservableCollection <InventoryCountDetail>(inventory.InventoryCountDetail));
                }
            }
        }
Пример #4
0
 public static Task <bool> AddItemGroup(OITB_Groups itemgroups)
 {
     return(PostAsync <OITB_Groups, bool>("api/ItemGroups", itemgroups));
 }