Example #1
0
        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);
        }
Example #2
0
        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("");
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }