private void LoadExistingValues()
    {
        GtinHfStockPolicy o = GtinHfStockPolicy.GetGtinHfStockPolicyByHealthFacilityCodeAndGtin(ddlHealthFacility.SelectedValue, ddlGtin.SelectedValue);

        if (o != null)
        {
            if (!string.IsNullOrEmpty(o.ReorderQty.ToString()))
            {
                ddlReorderQty.SelectedValue = o.ReorderQty.ToString();
            }

            if (o.SafetyStock != null)
            {
                txtSafetyStock.Text = o.SafetyStock.ToString();
            }
            else
            {
                txtSafetyStock.Text = string.Empty;
            }
            if (o.LeadTime != null)
            {
                txtLeadTime.Text = o.LeadTime.ToString();
            }
            else
            {
                txtLeadTime.Text = string.Empty;
            }
        }
    }
    protected void btnEdit_Click(object sender, EventArgs e)
    {
        try
        {
            if (Page.IsValid)
            {
                int    userId = CurrentEnvironment.LoggedUser.Id;
                string _hf    = Request.QueryString["hfId"];
                string _gtin  = Request.QueryString["gtin"];

                if (!String.IsNullOrEmpty(_hf) && !String.IsNullOrEmpty(_gtin))
                {
                    GtinHfStockPolicy o = GtinHfStockPolicy.GetGtinHfStockPolicyByHealthFacilityCodeAndGtin(_hf, _gtin);
                    o.Gtin = ddlGtin.SelectedValue.ToString();
                    o.HealthFacilityCode = ddlHealthFacility.SelectedValue;
                    double rq = -1;
                    double.TryParse(ddlReorderQty.SelectedValue, out rq);
                    o.ReorderQty = rq;
                    int lt = -1;
                    if (!String.IsNullOrEmpty(txtLeadTime.Text))
                    {
                        int.TryParse(txtLeadTime.Text, out lt);
                        o.LeadTime = lt;
                    }
                    o.ConsumptionLogic = ddlConsumptionLogic.SelectedValue.ToString();
                    double ss = -1;
                    if (!String.IsNullOrEmpty(txtSafetyStock.Text))
                    {
                        double.TryParse(txtSafetyStock.Text, out ss);
                        o.SafetyStock = ss;
                    }
                    //if (!String.IsNullOrEmpty(txtNotes.Text))
                    //    o.Notes = txtNotes.Text.ToString();

                    int i = GtinHfStockPolicy.Update(o);
                    if (i > 0)
                    {
                        lblSuccess.Visible = true;
                        lblWarning.Visible = false;
                        lblError.Visible   = false;
                        gvGtinHfStockPolicy.DataBind();
                        ClearControls(this);
                    }
                    else
                    {
                        lblSuccess.Visible = false;
                        lblWarning.Visible = true;
                        lblError.Visible   = false;
                    }
                }
                else
                {
                    GtinHfStockPolicy o = new GtinHfStockPolicy();
                    o.Gtin = ddlGtin.SelectedValue.ToString();
                    o.HealthFacilityCode = ddlHealthFacility.SelectedValue;
                    double rq = -1;
                    double.TryParse(ddlReorderQty.SelectedValue, out rq);
                    o.ReorderQty = rq;
                    int lt = -1;
                    if (!String.IsNullOrEmpty(txtLeadTime.Text))
                    {
                        int.TryParse(txtLeadTime.Text, out lt);
                        o.LeadTime = lt;
                    }
                    o.ConsumptionLogic = ddlConsumptionLogic.SelectedValue.ToString();
                    double ss = -1;
                    if (!String.IsNullOrEmpty(txtSafetyStock.Text))
                    {
                        double.TryParse(txtSafetyStock.Text, out ss);
                        o.SafetyStock = ss;
                    }
                    //if (!String.IsNullOrEmpty(txtNotes.Text))
                    //    o.Notes = txtNotes.Text.ToString();

                    int i = 0;

                    GtinHfStockPolicy o1 = GtinHfStockPolicy.GetGtinHfStockPolicyByHealthFacilityCodeAndGtin(ddlHealthFacility.SelectedValue, ddlGtin.SelectedValue);
                    if (o1 == null)
                    {
                        i = GtinHfStockPolicy.Insert(o);
                    }
                    else
                    {
                        i = GtinHfStockPolicy.Update(o);
                    }

                    if (i > 0)
                    {
                        lblSuccess.Visible = true;
                        lblWarning.Visible = false;
                        lblError.Visible   = false;
                        gvGtinHfStockPolicy.DataBind();
                        ClearControls(this);
                    }
                    else
                    {
                        lblSuccess.Visible = false;
                        lblWarning.Visible = true;
                        lblError.Visible   = false;
                    }
                }
            }
        }
        catch (Exception ex)
        {
            lblSuccess.Visible = false;
            lblWarning.Visible = false;
            lblError.Visible   = true;
        }
    }
    //static String healthFacilityId;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.Page.IsPostBack)
        {
            List <string> actionList        = null;
            string        sessionNameAction = "";
            if (CurrentEnvironment.LoggedUser != null)
            {
                sessionNameAction = "__GIS_actionList_" + CurrentEnvironment.LoggedUser.Id;
                actionList        = (List <string>)Session[sessionNameAction];
            }

            if ((actionList != null) && actionList.Contains("ViewGtinHfStockPolicy") && (CurrentEnvironment.LoggedUser != null))
            {
                int    userId     = CurrentEnvironment.LoggedUser.Id;
                string language   = CurrentEnvironment.Language;
                int    languageId = int.Parse(language);
                Dictionary <string, string> wtList = (Dictionary <string, string>)HttpContext.Current.Cache["GtinHfStockPolicy-dictionary" + language];
                if (wtList == null)
                {
                    List <WordTranslate> wordTranslateList = WordTranslate.GetWordByLanguage(languageId, "GtinHfStockPolicy");
                    wtList = new Dictionary <string, string>();
                    foreach (WordTranslate vwt in wordTranslateList)
                    {
                        wtList.Add(vwt.Code, vwt.Name);
                    }
                    HttpContext.Current.Cache.Insert("GtinHfStockPolicy-dictionary" + language, wtList);
                }

                //controls
                lblGtin.Text             = wtList["GtinHfStockPolicyGTIN"];
                lblHealthFacility.Text   = wtList["GtinHfStockPolicyHealthFacility"];
                lblReorderQty.Text       = wtList["GtinHfStockPolicyReorderQty"];
                lblLeadTime.Text         = wtList["GtinHfStockPolicyLeadTime"];
                lblConsumptionLogic.Text = wtList["GtinHfStockPolicyConsumptionLogic"];
                //lblSafetyStock.Text = wtList["GtinHfStockPolicySafetyStock"];

                //grid header text
                gvGtinHfStockPolicy.Columns[0].HeaderText = wtList["GtinHfStockPolicyGTIN"];
                gvGtinHfStockPolicy.Columns[1].HeaderText = wtList["GtinHfStockPolicyHealthFacility"];
                gvGtinHfStockPolicy.Columns[3].HeaderText = wtList["GtinHfStockPolicyReorderQty"];
                gvGtinHfStockPolicy.Columns[2].HeaderText = wtList["GtinHfStockPolicyLeadTime"];
                gvGtinHfStockPolicy.Columns[5].HeaderText = wtList["GtinHfStockPolicyConsumptionLogic"];
                // gvGtinHfStockPolicy.Columns[4].HeaderText = wtList["GtinHfStockPolicySafetyStock"];

                //buttons
                this.btnEdit.Text = wtList["GtinHfStockPolicyEditButton"];

                //message
                lblSuccess.Text = wtList["GtinHfStockPolicySuccessText"];
                lblWarning.Text = wtList["GtinHfStockPolicyWarningText"];
                lblError.Text   = wtList["GtinHfStockPolicyErrorText"];

                //Page Title
                lblTitle.Text = wtList["GtinHfStockPolicyPageTitle"];

                //selected object
                string _hf   = Request.QueryString["hfId"];
                string _gtin = Request.QueryString["gtin"];

                if (!String.IsNullOrEmpty(_hf) && !String.IsNullOrEmpty(_gtin))
                {
                    GtinHfStockPolicy o = GtinHfStockPolicy.GetGtinHfStockPolicyByHealthFacilityCodeAndGtin(_hf, _gtin);
                    ddlGtin.SelectedValue = o.Gtin;
                    ddlGtin.DataBind();

                    ddlHealthFacility.SelectedValue = o.HealthFacilityCode;
                    LoadReorderQuantity();
                    if (!string.IsNullOrEmpty(o.ReorderQty.ToString()))
                    {
                        ddlReorderQty.SelectedValue = o.ReorderQty.ToString();
                    }

                    if (o.LeadTime != null)
                    {
                        txtLeadTime.Text = o.LeadTime.ToString();
                    }
                    ddlConsumptionLogic.SelectedValue = o.ConsumptionLogic;
                    txtSafetyStock.Text = o.SafetyStock.ToString();
                    gvGtinHfStockPolicy.DataBind();

                    btnEdit.Visible           = true;
                    ddlGtin.Enabled           = false;
                    ddlHealthFacility.Enabled = false;
                }

                LoadReorderQuantity();
            }
            else
            {
                Response.Redirect("Default.aspx");
            }
        }
    }
    protected void btnEdit_Click(object sender, EventArgs e)
    {
        try
        {
            if (Page.IsValid)
            {
                int     i      = 0;
                Boolean insert = false;
                string  gtin   = Request.QueryString["gtin"];
                if (!String.IsNullOrEmpty(gtin))
                {
                    ItemManufacturer o = ItemManufacturer.GetItemManufacturerByGtin(gtin);
                    if (!String.IsNullOrEmpty(txtGTIN.Text))
                    {
                        o.Gtin = txtGTIN.Text;
                    }
                    o.ItemId         = int.Parse(ddlItem.SelectedValue.ToString());
                    o.ManufacturerId = int.Parse(ddlManufacturer.SelectedValue.ToString());
                    o.BaseUom        = ddlBaseUOM.SelectedValue.ToString();
                    if (!String.IsNullOrEmpty(txtPrice.Text))
                    {
                        o.Price = double.Parse(txtPrice.Text);
                    }
                    o.Alt1Uom = ddlAlt1UOM.SelectedValue.ToString();
                    if (!String.IsNullOrEmpty(txtAlt1Qty.Text))
                    {
                        o.Alt1QtyPer = int.Parse(txtAlt1Qty.Text);
                    }
                    o.Alt2Uom = ddlAlt2UOM.SelectedValue.ToString();
                    if (!String.IsNullOrEmpty(txtAlt2Qty.Text))
                    {
                        o.Alt2QtyPer = int.Parse(txtAlt2Qty.Text);
                    }
                    if (ddlGTINParent.GetSelectedIndices().Length > 0)
                    {
                        // Set kit items to the list
                        o.KitItems.Clear();
                        foreach (var idx in ddlGTINParent.GetSelectedIndices())
                        {
                            o.KitItems.Add(ItemManufacturer.GetItemManufacturerByGtin(ddlGTINParent.Items[idx].Value));
                        }
                    }
                    //if (!String.IsNullOrEmpty(txtBaseUOMChild.Text))
                    //    o.BaseUomChildPerBaseUomParent = double.Parse(txtBaseUOMChild.Text);
                    double storagespace = -1;
                    if (!String.IsNullOrEmpty(txtStorageSpace.Text))
                    {
                        double.TryParse(txtStorageSpace.Text, out storagespace);
                        o.StorageSpace = storagespace;
                    }
                    if (!String.IsNullOrEmpty(txtNotes.Text))
                    {
                        o.Notes = txtNotes.Text;
                    }

                    o.ModifiedBy = CurrentEnvironment.LoggedUser.Id;
                    o.ModifiedOn = DateTime.Now;
                    o.IsActive   = bool.Parse(rblIsActive.SelectedValue);

                    i = ItemManufacturer.Update(o);
                }
                else
                {
                    insert = true;
                    ItemManufacturer o = new ItemManufacturer();

                    if (!String.IsNullOrEmpty(txtGTIN.Text))
                    {
                        o.Gtin = txtGTIN.Text;
                    }
                    o.ItemId         = int.Parse(ddlItem.SelectedValue.ToString());
                    o.ManufacturerId = int.Parse(ddlManufacturer.SelectedValue.ToString());
                    o.BaseUom        = ddlBaseUOM.SelectedValue.ToString();
                    if (!String.IsNullOrEmpty(txtPrice.Text))
                    {
                        o.Price = double.Parse(txtPrice.Text);
                    }
                    if (ddlAlt1UOM.SelectedIndex != 0)
                    {
                        o.Alt1Uom = ddlAlt1UOM.SelectedValue.ToString();
                    }
                    if (!String.IsNullOrEmpty(txtAlt1Qty.Text))
                    {
                        o.Alt1QtyPer = int.Parse(txtAlt1Qty.Text);
                    }
                    if (ddlAlt2UOM.SelectedIndex != 0)
                    {
                        o.Alt2Uom = ddlAlt2UOM.SelectedValue.ToString();
                    }
                    if (!String.IsNullOrEmpty(txtAlt2Qty.Text))
                    {
                        o.Alt2QtyPer = int.Parse(txtAlt2Qty.Text);
                    }
                    if (ddlGTINParent.GetSelectedIndices().Length > 0)
                    {
                        // Set kit items to the list
                        o.KitItems.Clear();
                        foreach (var idx in ddlGTINParent.GetSelectedIndices())
                        {
                            o.KitItems.Add(ItemManufacturer.GetItemManufacturerByGtin(ddlGTINParent.Items[idx].Value));
                        }
                    }
                    //if (!String.IsNullOrEmpty(txtBaseUOMChild.Text))
                    //    o.BaseUomChildPerBaseUomParent = double.Parse(txtBaseUOMChild.Text);
                    double storagespace = -1;
                    if (!String.IsNullOrEmpty(txtStorageSpace.Text))
                    {
                        double.TryParse(txtStorageSpace.Text, out storagespace);
                        o.StorageSpace = storagespace;
                    }
                    if (!String.IsNullOrEmpty(txtNotes.Text))
                    {
                        o.Notes = txtNotes.Text;
                    }

                    o.IsActive   = true;
                    o.ModifiedOn = DateTime.Now;
                    o.ModifiedBy = CurrentEnvironment.LoggedUser.Id;

                    i    = ItemManufacturer.Insert(o);
                    gtin = o.Gtin;
                }

                if (i >= 0)
                {
                    if (insert)
                    {
                        List <HealthFacility> hfList = HealthFacility.GetHealthFacilityList();
                        foreach (HealthFacility hf in hfList)
                        {
                            GtinHfStockPolicy o = new GtinHfStockPolicy();
                            if (!String.IsNullOrEmpty(txtGTIN.Text))
                            {
                                o.Gtin = txtGTIN.Text;
                            }
                            o.HealthFacilityCode = hf.Code;

                            o.ReorderQty           = 1;
                            o.SafetyStock          = 0;
                            o.AvgDailyDemandRate   = 0;
                            o.LeadTime             = 1;
                            o.ConsumptionLogic     = "FEFO";
                            o.ForecastPeriodDemand = 0;

                            GtinHfStockPolicy.Insert(o);
                        }
                    }

                    ClearControls(this);
                    gvItemManufacturer.Visible = true;
                    gridview_Databind(gtin);

                    lblSuccess.Visible = true;
                    lblWarning.Visible = false;
                    lblError.Visible   = false;
                }
                else
                {
                    lblSuccess.Visible = false;
                    lblWarning.Visible = false;
                    lblError.Visible   = true;
                }
            }
        }
        catch (Exception ex)
        {
            lblSuccess.Visible = false;
            lblWarning.Visible = false;
            lblError.Visible   = true;
        }
    }