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); }
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)); } }
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)); } } }
public static Task <bool> AddItemGroup(OITB_Groups itemgroups) { return(PostAsync <OITB_Groups, bool>("api/ItemGroups", itemgroups)); }