public List <string> AddProductCodeOut(string productCode) { if (ProductCodeInList.Contains(productCode)) { throw new Exception("Sản phẩm đầu ra đã có trong danh sách đầu vào."); } if (ProductCodeOutList.Contains(productCode)) { throw new Exception("Sản phẩm đầu ra đã có trong danh sách đầu ra."); } List <string> tempList = ProductCodeOutList.ToList(); tempList.Add(productCode); ReceiptBLL.ValidateOnTherapyReceipt(ProductCodeInList, tempList); RedBloodDataContext db = new RedBloodDataContext(); int count = db.Packs.Where(r => r.ProductCode == productCode && DINInList.Contains(r.DIN)).Count(); if (count > 0) { throw new Exception("Sản phẩm đầu ra đã sản xuất."); } ProductCodeOutList.Add(productCode); return(ProductCodeOutList); }
public string ValidateAllList() { if (ProductCodeInList.Count == 0) { return("Không có sản phẩm đầu vào."); } if (ProductCodeOutList.Count == 0) { return("Không có sản phẩm đầu ra."); } if (DINInList.Count == 0) { return("Không có túi máu đầu vào."); } ReceiptBLL.ValidateOnTherapyReceipt(ProductCodeInList, ProductCodeOutList); if (ProductCodeInList.Where(r => ProductCodeOutList.Contains(r)).Count() != 0) { return("Danh sách sản phẩm đầu ra và đầu vào có sản phẩm trùng."); } return(""); }
public Guid InsertOrUpdate(Guid ID, Func <Receipt, Receipt> loadFromGUI) { RedBloodDataContext db = new RedBloodDataContext(); Receipt r; if (ID == Guid.Empty) { r = new Receipt(); db.Receipts.InsertOnSubmit(r); } else { r = ReceiptBLL.Get(ID, db); } loadFromGUI(r); //Product In IEnumerable <ReceiptProduct> existingProductCodeInList = r.ReceiptProducts.Where(r1 => r1.Type == ReceiptProduct.TypeX.In); db.ReceiptProducts.DeleteAllOnSubmit( existingProductCodeInList.Where(r1 => !ProductCodeInList.Contains(r1.ProductCode)) ); r.ReceiptProducts.AddRange( ProductCodeInList .Except(existingProductCodeInList.Select(r1 => r1.ProductCode)) .Select(r1 => new ReceiptProduct() { ProductCode = r1, Type = ReceiptProduct.TypeX.In }) ); //Product Out IEnumerable <ReceiptProduct> existingProductCodeOutList = r.ReceiptProducts.Where(r1 => r1.Type == ReceiptProduct.TypeX.Out); db.ReceiptProducts.DeleteAllOnSubmit( existingProductCodeOutList.Where(r1 => !ProductCodeOutList.Contains(r1.ProductCode)) ); r.ReceiptProducts.AddRange( ProductCodeOutList .Except(existingProductCodeOutList.Select(r1 => r1.ProductCode)) .Select(r1 => new ReceiptProduct() { Product = ProductBLL.Get(db, r1), Type = ReceiptProduct.TypeX.Out }) ); db.SubmitChanges(); return(r.ID); }
public List <string> AddProductCodeIn(string productCode) { if (ProductCodeInList.Contains(productCode)) { throw new Exception("Sản phẩm đầu vào đã có trong danh sách đầu vào."); } if (ProductCodeOutList.Contains(productCode)) { throw new Exception("Sản phẩm đầu vào đã có trong danh sách đầu ra."); } if (ProductCodeInList.Count == 1) { throw new Exception("Sản phẩm đầu vào chỉ được 1 loại."); } List <string> tempList = ProductCodeInList.ToList(); tempList.Add(productCode); ReceiptBLL.ValidateOnTherapyReceipt(tempList, ProductCodeOutList); RedBloodDataContext db = new RedBloodDataContext(); int count = db.Packs.Where(r => r.ProductCode == productCode && DINInList.Contains(r.DIN)).Count(); if (count < DINInList.Count) { throw new Exception("Sản phẩm đầu vào không có túi máu."); } if (count > DINInList.Count) { throw new Exception("Sản phẩm đầu vào có túi máu bị trùng dữ liệu."); } ProductCodeInList.Add(productCode); return(ProductCodeInList); }