Esempio n. 1
0
    protected void SearchReasultGrid_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "AddMedicine")
        {
            //check if the user is logged in, if not get him a message about it and redirect him to the regestrataion page
            User s = (User)Session["user"];
            if (s == null)
            {
                Response.Write("<script>alert('על מנת לרכוש מוצרים עליך להיות לקוח רשום')</script>");
                Response.Write("<script>window.open('http://localhost:49675/GuestHome.aspx','_blank');</script>");
                return;
            }

            //get the shopping bag
            myShoppingBag = (ShoppingBag)Session["myShoppingBag"];

            int rowNumber = Convert.ToInt32(e.CommandArgument);
            //create the medicineInBag var
            Pharmcy.PharmcyWS webser = new Pharmcy.PharmcyWS();
            MedicineInBag     MIB    = new MedicineInBag();
            MIB.CMedicineName  = SearchReasultGrid.Rows[rowNumber].Cells[1].Text;
            MIB.CMedicineId    = SearchReasultGrid.Rows[rowNumber].Cells[0].Text;
            MIB.CMedicinePrice = Convert.ToInt32(SearchReasultGrid.Rows[rowNumber].Cells[2].Text);
            MIB.CMedicineInBagMedicinePrice = Convert.ToInt32(MIB.CMedicinePrice);
            MIB.CMedicineNeedPrescription   = Convert.ToBoolean(SearchReasultGrid.Rows[rowNumber].Cells[6].Text);
            MIB.CMedicineStock = Convert.ToInt32(SearchReasultGrid.Rows[rowNumber].Cells[3].Text);
            //same in MedicineCatagory
            MIB.CMedicineProducer = webser.GetMedicineProducer(Convert.ToInt32(MIB.CMedicineId));
            MIB.CMedicineCatagory = webser.GetMedicineCatagory(Convert.ToInt32(MIB.CMedicineId));
            DataSet temp = webser.GetMedicineCataAndProName(MIB.CMedicineCatagory, MIB.CMedicineProducer);
            MIB.CMedicineInBagCatagoryName = temp.Tables[0].Rows[0]["MedicineCatagoryName"].ToString();
            MIB.CMedicineInBagProducerName = temp.Tables[0].Rows[0]["MedicineProducerName"].ToString();

            ///////////////////////////////////////////////////////////////////////////////////
            //check count of medicine
            //because we didnt change the current stock of the medicine we need to check if there is
            //enough from this medicine to buy
            int  countOfMedicine = myShoppingBag.GetMedicineCount(Convert.ToInt32(MIB.CMedicineId));
            User u = (User)Session["user"];
            if (MIB.CMedicineStock - countOfMedicine <= 0)
            {
                Response.Write("<script>alert('אין מספיק תרופות במלאי')</script>");
                return;
            }

            ///////////////////////////////////////////////////////////////////////////////////

            //check prescription
            int MedIdNumber = Convert.ToInt32(MIB.CMedicineId);
            //still dont change the current stock of medicine
            if (MIB.CMedicineNeedPrescription)
            {
                PrescriptioService ps = new PrescriptioService();
                DataSet            ds = ps.GetPrescriptionByMedicineId(MedIdNumber, u.CUserId);
                if (ds.Tables[0].Rows.Count == 0)
                {
                    Response.Write("<script>alert('תרופה זאת צריכה מרשם')</script>");
                    return;
                }
                else
                {
                    //לבדוק אם הוא באמת הכניס אותה כמות
                    //אם הוא הכניס אותה כמות אז הכל בסדר
                    //צריך לזכור לבטל את המרשם ברגע שהקנייה מתבצעת
                    //אם הכמות לא שווה אז ליידע את הלקוח שהוא צריך לבדוק כמה כדורים נתנו לו
                    //אפשרות לחשוף קישור בדף לעמוד של המרשמים כדי שיוכל להסתכל
                    //או שאפשר להגיד למשתמש כמה כדורים הוא יכול לקחת(מעדיף שלא נשמע קצת מוזר)
                    presList = (List <DataSet>)Session["presList"];
                    if (presList != null)
                    {
                        foreach (DataSet d in presList)
                        {
                            if (ds.Tables[0].Rows[0]["PrescriptionId"].ToString() == d.Tables[0].Rows[0]["PrescriptionId"].ToString())
                            {
                                Response.Write("<script>alert('מרשם זה כבר שומש')</script>");
                                return;
                            }
                        }
                    }
                    presList.Add(ds);
                    Session["presList"] = presList;
                    int count = Convert.ToInt32(ds.Tables[0].Rows[0]["PrescriptionMedicineCount"].ToString());
                    MIB.CMedicineInBagMedicineCount = count;
                }
            }
            else
            {
                MIB.CMedicineInBagMedicineCount = 1;
            }
            myShoppingBag.AddMedicine(MIB);
            Session["myShoppingBag"] = myShoppingBag;
            Response.Write("<script>alert('המוצר הוסף לסל')</script>");
            CheckoutButton.Visible = true;
            SeeShoppingBag.Visible = true;
        }
    }