Пример #1
0
        public List <string> AddDIN4Divide(string DIN)
        {
            if (DINInList.Contains(DIN))
            {
                throw new Exception("Mã túi máu này đã có.");
            }

            Donation d = DonationBLL.Get(DIN);

            if (d == null)
            {
                throw new Exception("Không có mã túi máu này.");
            }

            //Can be produce positive product for research
            //if (d.TestResultStatus == Donation.TestResultStatusX.Positive)
            //{
            //    throw new Exception("Xét nghiệm sàng lọc: Dương tính.");
            //}

            RedBloodDataContext db = new RedBloodDataContext();
            int count = db.Packs.Where(r => ProductCodeInList.Contains(r.ProductCode) && r.DIN == DIN).Count();

            if (count == 0)
            {
                throw new Exception("Mã túi máu này không có sản phẩm đầu vào.");
            }

            DINInList.Add(DIN);

            return(DINInList);
        }
Пример #2
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);
        }
Пример #3
0
        public List <string> AddProductCodeIn4Divide(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 (ProductCodeInList.Count == 1)
            {
                throw new Exception("Sản phẩm đầu vào chỉ được 1 loại.");
            }

            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);
        }
Пример #4
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);
    }
Пример #5
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.");
        }

        ProductCodeOutList.Add(productCode);

        return(ProductCodeOutList);
    }
Пример #6
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);
        }
Пример #7
0
        protected void LinqDataSourceProductIn_Selecting(object sender, LinqDataSourceSelectEventArgs e)
        {
            RedBloodDataContext db = new RedBloodDataContext();

            e.Result = db.Products.Where(r => ProductCodeInList.Contains(r.Code));
        }