Example #1
0
        public int GetCycledTimes()
        {
            BizParamsBLL bizParamsBLL     = new BizParamsBLL(Context);
            BizParams    paramCycledTimes = bizParamsBLL.GetBizParamByKey(new BizParams {
                ParamKey = Consts.BIZ_PARAMS_CYCLEDTIMES
            });
            int cycledTimes = int.Parse(paramCycledTimes.ParamValue);

            return(cycledTimes);//this.QueryRequest(new ViewStockTakeRequest { IsCycleCount = true }, null, null).Count();
        }
Example #2
0
    private bool ValidateParamValue(BizParams model, string value)
    {
        bool     bResult = false;
        bool     bValue;
        int      iValue;
        DateTime dtValue;

        switch (model.DataType.Trim().ToLower())
        {
        case TYPE_BOOL:     //"bool":
            if (bool.TryParse(value, out bValue))
            {
                bResult = true;
            }
            break;

        case TYPE_INT:     //"int":
            if (int.TryParse(value, out iValue))
            {
                bResult = true;
            }
            break;

        case TYPE_TIME:     //"time":
            if (DateTime.TryParse(value, out dtValue))
            {
                bResult = true;
            }
            break;

        case TYPE_DATE:     //"date":
            if (DateTime.TryParse(value, out dtValue))
            {
                bResult = true;
            }
            break;

        case TYPE_DAYOFWEEK:     //"dayofweek":
            if (int.TryParse(value, out iValue))
            {
                if (iValue > -1 && iValue < 7)
                {
                    bResult = true;
                }
            }
            break;

        default:
            bResult = true;
            break;
        }

        return(bResult);
    }
Example #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            BizParams param        = BizParamsList.Find(p => string.Equals(p.ParamKey, Consts.BIZ_PARAMS_CYCLECOUNTED));
            bool      cycleCounted = false;
            Toolbar1.Items[1].Visible = false;

            Toolbar1.Visible = (param != null && Boolean.TryParse(param.ParamValue, out cycleCounted) && !cycleCounted);

            UpdatedDetails = null;
            DeletedDetails = null;
        }
        AspPager1.PageNumberSelect += new BizDataMaintain_AspPager.PageNumberSelectEventHandler(AspPager1_PageNumberSelect);
    }
Example #4
0
        public StocktakeRequest CreateCycleCount(User user, List <View_StocktakeDetails> deletedDetails, List <View_StocktakeDetails> updatedDetails)
        {
            PartBLL partBll = new PartBLL();
            IQueryable <ViewPart> partQry = partBll.GetPartsByPlantToCycleCount();//partBll.GetPartsToCycleCount();
            NewStocktakeRequest   request = new NewStocktakeRequest {
                IsStatic = true, IsCycleCount = true
            };

            request.RequestBy = user.UserID;

            request.Details = new List <NewStocktakeDetails>();
            foreach (var item in partQry)
            {
                NewStocktakeDetails details = new NewStocktakeDetails
                {
                    PartID            = item.PartID.ToString(),
                    StocktakeTypeID   = 90,
                    StocktakePriority = 1
                };
                View_StocktakeDetails deletedItem = deletedDetails.Find(d => d.PartID == int.Parse(details.PartID));
                if (deletedItem == null)
                {
                    View_StocktakeDetails updatedItem = updatedDetails.Find(d => d.PartID == int.Parse(details.PartID));
                    if (updatedItem != null)
                    {
                        details.Description = updatedItem.DetailsDesc;
                    }
                    request.Details.Add(details);
                }
            }
            StocktakeRequest result       = CreateStocktakeRequest(request);
            BizParamsBLL     bizParamsBLL = new BizParamsBLL();
            BizParams        param        = bizParamsBLL.GetBizParamByKey(new BizParams {
                ParamKey = Consts.BIZ_PARAMS_CYCLECOUNTED
            });

            param.ParamValue = "True";
            bizParamsBLL.UpdateBizParams(param);

            BizParams paramCycledTimes = bizParamsBLL.GetBizParamByKey(new BizParams {
                ParamKey = Consts.BIZ_PARAMS_CYCLEDTIMES
            });
            int cycledTimes = int.Parse(paramCycledTimes.ParamValue);

            paramCycledTimes.ParamValue = (cycledTimes + 1).ToString();
            bizParamsBLL.UpdateBizParams(paramCycledTimes);
            return(result);
        }
Example #5
0
    protected bool PermitStaticRequest()
    {
        BizParams paramDayofWeek = BizParamsList.FirstOrDefault(p => string.Equals(p.ParamKey, "NoStAppDay"));
        BizParams paramTimeStart = BizParamsList.FirstOrDefault(p => string.Equals(p.ParamKey, "NoStAppTimeStart"));
        BizParams paramTimeEnd   = BizParamsList.FirstOrDefault(p => string.Equals(p.ParamKey, "NoStAppTimeEnd"));

        if (int.Parse(paramDayofWeek.ParamValue) == (int)DateTime.Now.DayOfWeek)
        {
            DateTime timeStart = DateTime.Parse(DateTime.Now.ToShortDateString() + " " + paramTimeStart.ParamValue);
            DateTime timeEnd   = DateTime.Parse(DateTime.Now.ToShortDateString() + " " + paramTimeEnd.ParamValue);
            if (DateTime.Now >= timeStart && DateTime.Now <= timeEnd)
            {
                return(false);
            }
        }
        return(true);
    }
Example #6
0
    protected void BizParam_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            BizParams    param   = (BizParams)e.Row.DataItem;
            TextBox      textBox = (TextBox)e.Row.FindControl("paramValue");
            CheckBox     chkBox  = (CheckBox)e.Row.FindControl("checkStatus");
            DropDownList ddlList = (DropDownList)e.Row.FindControl("ddlList");

            switch (param.DataType.ToLower())
            {
            case TYPE_BOOL:     //"bool":
                chkBox.Visible  = true;
                textBox.Visible = false;
                ddlList.Visible = false;
                chkBox.Checked  = Convert.ToBoolean(param.ParamValue);
                break;

            case TYPE_DAYOFWEEK:     //"dayofweek":
                chkBox.Visible  = false;
                textBox.Visible = false;
                ddlList.Visible = true;
                BindDayofWeekList(ddlList);
                ddlList.SelectedValue = param.ParamValue;
                break;

            default:
                chkBox.Visible  = false;
                textBox.Visible = true;
                ddlList.Visible = false;
                break;
            }

            if (param.ReadOnly != null && param.ReadOnly == true)
            {
                textBox.ReadOnly = true;
                textBox.CssClass = "readonly";
            }
        }
    }
Example #7
0
    //protected void linkDelete_Click(object sender, EventArgs e)
    //{
    //    Details.Clear();
    //    BindDataControl(gvRequestParts, Details);
    //    pagerRequestParts.TotalRecord = 0;
    //    pagerRequestParts.CurrentPage = 1;
    //    if (RequestID != null)
    //    {
    //        NewStocktakeRequest request = new NewStocktakeRequest
    //        {
    //            Details = new List<NewStocktakeDetails>()
    //        };
    //        Service.UpdateCachedRequest(request, CacheKey, false, true);
    //    }
    //    if (gvParts.DataKeys[0].Value != null)
    //    {
    //        Query();
    //    }
    //}
    protected void valiCounts_ServerValidate(object source, ServerValidateEventArgs args)
    {
        SGM.ECount.DataModel.User user = CurrentUser.UserInfo;//Service.GetUserbyKey(CurrentUser.UserInfo);
        int          maxUserCount;
        int          currentCount;
        int          maxCount;
        int          currentAmount = 0;
        DropDownList ddlIsStatic   = dlRequest.Items[0].FindControl("ddlIsStatic") as DropDownList;

        if (ddlIsStatic.SelectedIndex > 0)
        {
            BizParams param = BizParamsList.Find(p => p.ParamKey == "MaxDynamic");
            maxCount      = int.Parse(param.ParamValue);
            maxUserCount  = user.UserGroup.MaxDynamicStocktake ?? 0;
            currentCount  = user.UserGroup.CurrentDynamicStocktake.Value;
            currentAmount = CurrentDynAmount;
            currentAmount = currentAmount - currentCount;
        }
        else
        {
            BizParams param = BizParamsList.Find(p => p.ParamKey == "MaxStatic");
            maxCount     = int.Parse(param.ParamValue);
            maxUserCount = user.UserGroup.MaxStaticStocktake.Value;

            currentCount  = user.UserGroup.CurrentStaticStocktake.Value;
            currentAmount = CurrentStAmount;
            currentAmount = currentAmount - currentCount;
        }

        int newPartsCount = 0;

        if (gvParts.DataKeys[0].Value != null)
        {
            //List<View_StocktakeDetails> newDetails = NewDetails;

            for (int i = 0; i < gvParts.Rows.Count; i++)
            {
                if (gvParts.DataKeys[i] != null)
                {
                    CheckBox cbSelect = gvParts.Rows[i].FindControl("cbSelect") as CheckBox;
                    if (cbSelect != null)//add selected item
                    {
                        int partID = (int)gvParts.DataKeys[i].Value;
                        if (cbSelect.Checked)
                        {
                            newPartsCount++;
                        }
                    }
                }
            }
        }

        currentCount += newPartsCount + RequestedDetails.Count; // ((OriginDetailCount == null) ? 0 : OriginDetailCount.Value);
        if (currentCount > maxUserCount)
        {
            valiCounts.Text = "已超过当前用户盘点数量上限!";
            args.IsValid    = false;
        }
        else
        {
            currentCount += currentAmount;
            if (currentCount > maxCount)
            {
                valiCounts.Text = "已超过盘点数量上限!";
                args.IsValid    = false;
            }
            else
            {
                args.IsValid = true;
            }
        }
    }
Example #8
0
    protected void Save()
    {
        string errorMessage = "";

        CacheHelper.RemoveCache(Consts.CACHE_KEY_BIZ_PARAMS);
        List <BizParams> updateList = new List <BizParams>();

        //if (bizParamsList == null)
        //    bizParamsList = Service.GetBizParamsList();

        foreach (GridViewRow row in this.GridView1.Rows)
        {
            GridView gvParams = (GridView)row.FindControl("gvBizParams");
            if (gvParams != null)
            {
                foreach (GridViewRow bpRow in gvParams.Rows)
                {
                    //save each parameter
                    string istr = gvParams.DataKeys[bpRow.DataItemIndex].Value.ToString();
                    if (!string.IsNullOrEmpty(istr))
                    {
                        int       paramId = Convert.ToInt32(istr);
                        BizParams param   = BizParamsList.FirstOrDefault(o => o.ParamID == paramId);
                        BizParams model   = new BizParams
                        {
                            DataType   = param.DataType,
                            GroupName  = param.GroupName,
                            ParamDesc  = param.ParamDesc,
                            ParamID    = param.ParamID,
                            ParamKey   = param.ParamKey,
                            ParamValue = param.ParamValue,
                            ReadOnly   = param.ReadOnly,
                            Sequence   = param.Sequence
                        };
                        //TextBox tbValue = (TextBox)row.Cells[1].FindControl("paramValue");
                        try
                        {
                            TextBox      textBox  = (TextBox)bpRow.FindControl("paramValue");
                            CheckBox     chkBox   = (CheckBox)bpRow.FindControl("checkStatus");
                            DropDownList ddlList  = (DropDownList)bpRow.FindControl("ddlList");
                            Label        lblError = (Label)bpRow.FindControl("lblError");
                            lblError.Text = "";
                            string value = textBox.Text;
                            if (model.DataType.ToLower() == TYPE_BOOL)//"bool")
                            {
                                value = chkBox.Checked.ToString();
                            }
                            else if (model.DataType.ToLower() == TYPE_DAYOFWEEK) //"dayofweek")
                            {
                                value = ddlList.SelectedValue;
                            }

                            if (model.ParamValue.Trim() == value.Trim() || model.ReadOnly == true)
                            {
                                continue; //没有更改,不需要更新
                            }
                            // value validation
                            if (ValidateParamValue(model, value))
                            {
                                model.ParamValue = value;
                            }
                            else
                            {
                                lblError.Text = "请输入正确格式";
                                // errorMessage += model.ParamDesc + "数据格式不正确,请按照要求输入\\n";
                                continue;
                            }
                        }
                        catch
                        {
                            continue;//获取文本失败,跳过?
                        }

                        try
                        {
                            updateList.Add(model);
                            //Service.UpdateBizParams(model);
                        }
                        catch
                        {
                            errorMessage += "更新参数" + model.ParamDesc + "失败\\n";
                        }
                    }
                }
            }
        }
        if (updateList.Count > 0)
        {
            Service.UpdateBizParamsList(updateList);
        }
        CacheHelper.RemoveCache(Consts.CACHE_KEY_BIZ_PARAMS);
        ////if(!string.IsNullOrEmpty(errorMessage))
        ////    RegisterStartupScript("Message", "<script>alert('" +errorMessage + "');</script>");
    }
Example #9
0
 public BizParams GetBizParams(BizParams model)
 {
     return(Channel.GetBizParams(model));
 }
Example #10
0
 public void UpdateBizParams(BizParams model)
 {
     Channel.UpdateBizParams(model);
 }
Example #11
0
    protected void ucFileUpload_Upload(object sender, EventArgs e)
    {
        UploadEventArgs ue        = e as UploadEventArgs;
        DataTable       dtDetails = ue.ContentTable;

        dtDetails.DefaultView.Sort = "零件号";
        dtDetails = dtDetails.DefaultView.ToTable();
        bool            isValid  = true;
        List <ViewPart> partList = new List <ViewPart>();

        //get part by code, plant, duns
        //for (int i = 0; i < dtDetails.Rows.Count; i++)
        //{
        //    ViewPart tmpPart = new ViewPart
        //    {
        //        PlantCode = dtDetails.Rows[i]["工厂代码"].ToString(),
        //        DUNS = dtDetails.Rows[i]["供应商DUNS"].ToString(),
        //        PartCode = dtDetails.Rows[i]["零件号"].ToString()
        //    };
        //    if (!partList.Exists(p => string.Equals(p.PartCode , tmpPart.PartCode, StringComparison.OrdinalIgnoreCase) && string.Equals(p.PlantCode ,tmpPart.PlantCode , StringComparison.OrdinalIgnoreCase)&& string.Equals(p.DUNS ,tmpPart.DUNS, StringComparison.OrdinalIgnoreCase)))
        //    {
        //        partList.Add(tmpPart);
        //    }
        //}

        List <View_StocktakeDetails> detailsList = new List <View_StocktakeDetails>();

        for (int i = 0; i < dtDetails.Rows.Count; i++)
        {
            bool hasError = false;
            View_StocktakeDetails details = new View_StocktakeDetails
            {
                RowNumber     = int.Parse(dtDetails.Rows[i]["序号"].ToString()),
                PartCode      = dtDetails.Rows[i]["零件号"].ToString(),
                DUNS          = dtDetails.Rows[i]["供应商DUNS"].ToString(),
                PartPlantCode = dtDetails.Rows[i]["工厂代码"].ToString(),
                TypeName      = dtDetails.Rows[i]["申请类别"].ToString(),
                PriorityName  = dtDetails.Rows[i]["紧急程度"].ToString(),
                Description   = dtDetails.Rows[i]["备注"].ToString()
            };
            string msg;
            if (i % 5000 == 0)
            {
                string startCode = details.PartCode;
                int    end       = i + 4999;
                if (end >= dtDetails.Rows.Count)
                {
                    end = dtDetails.Rows.Count - 1;
                }
                string endCode = dtDetails.Rows[end]["零件号"].ToString();
                partList = Service.QueryPartCodeScope(null, startCode, endCode);
            }
            ViewPart part = partList.FirstOrDefault(p => string.Equals(p.PartCode, details.PartCode, StringComparison.OrdinalIgnoreCase) && string.Equals(p.PlantCode, details.PartPlantCode, StringComparison.OrdinalIgnoreCase) && string.Equals(p.DUNS, details.DUNS, StringComparison.OrdinalIgnoreCase));
            if (part == null)//part is invalid
            {
                msg = string.Format("第{0}行,该零件不存在", i + 2);
                UCFileUpload1.AddErrorInfo(msg);
                hasError = true;
            }
            else
            {
                details.PartID = part.PartID;
            }
            StocktakePriority priority = Priorities.FirstOrDefault(p => string.Equals(p.PriorityName, details.PriorityName, StringComparison.OrdinalIgnoreCase));
            if (priority == null)
            {
                msg = string.Format("第{0}行,紧急程度信息非法", i + 2);
                UCFileUpload1.AddErrorInfo(msg);
                hasError = true;
            }
            else
            {
                details.Priority = priority.PriorityID;
            }
            StocktakeType type = StocktakeTypes.FirstOrDefault(t => string.Equals(t.TypeName, details.TypeName, StringComparison.OrdinalIgnoreCase));
            if (type == null)
            {
                msg = string.Format("第{0}行,申请类别信息非法", i + 2);
                UCFileUpload1.AddErrorInfo(msg);
                hasError = true;
            }
            else
            {
                details.StocktakeType = type.TypeID;
            }
            if (!hasError)
            {
                if (detailsList.Exists(d => string.Equals(d.TypeName, details.TypeName, StringComparison.OrdinalIgnoreCase) && string.Equals(d.PriorityName, details.PriorityName, StringComparison.OrdinalIgnoreCase) && string.Equals(d.PartPlantCode, details.PartPlantCode, StringComparison.OrdinalIgnoreCase) && string.Equals(d.DUNS, details.DUNS, StringComparison.OrdinalIgnoreCase) && string.Equals(d.PartCode, details.PartCode, StringComparison.OrdinalIgnoreCase)))
                {
                    msg = string.Format("第{0}行,数据重复", i + 2);
                    UCFileUpload1.AddErrorInfo(msg);
                    hasError = true;
                }
                else
                {
                    detailsList.Add(details);
                }
            }
            isValid = isValid && !hasError;
        }

        if (isValid)
        {
            NewStocktakeRequest newRequest = new NewStocktakeRequest
            {
                IsStatic     = (rblIsStatic.SelectedIndex == 1),
                RequestBy    = CurrentUser.UserInfo.UserID,
                IsCycleCount = false,
                Details      = (from d in detailsList
                                select new NewStocktakeDetails
                {
                    PartID = d.PartID.ToString(),
                    StocktakePriority = d.Priority.Value,
                    StocktakeTypeID = d.StocktakeType.Value,
                    Description = d.Description
                }).ToList()
            };
            int currentDynAmount = 0;
            int currentStAmount  = 0;
            foreach (var item in UserGroups)
            {
                currentDynAmount += item.CurrentDynamicStocktake ?? 0;
                currentStAmount  += item.CurrentStaticStocktake ?? 0;
            }
            int maxUserCount;
            int currentCount;
            int maxCount;
            if (!newRequest.IsStatic)
            {
                BizParams param = BizParamsList.Find(p => p.ParamKey == "MaxDynamic");
                maxCount     = int.Parse(param.ParamValue);
                maxUserCount = CurrentUser.UserInfo.UserGroup.MaxDynamicStocktake ?? 0;
                currentCount = CurrentUser.UserInfo.UserGroup.CurrentDynamicStocktake.Value;
                int dynOverflowAmount = currentCount + newRequest.Details.Count - maxUserCount;
                if (dynOverflowAmount > 0)
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "maxOverflow", "alert('超过当前用户组动态盘点上限" + dynOverflowAmount + "个')", true);
                    return;
                }
                dynOverflowAmount = currentDynAmount + newRequest.Details.Count - maxCount;
                if (dynOverflowAmount > 0)
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "maxOverflow", "alert('超过动态盘点总数上限" + dynOverflowAmount + "个')", true);
                    return;
                }
            }

            if (newRequest.IsStatic)
            {
                BizParams param = BizParamsList.Find(p => p.ParamKey == "MaxStatic");
                maxCount     = int.Parse(param.ParamValue);
                maxUserCount = CurrentUser.UserInfo.UserGroup.MaxStaticStocktake.Value;

                currentCount = CurrentUser.UserInfo.UserGroup.CurrentStaticStocktake.Value;
                int stOverflowAmount = currentCount + newRequest.Details.Count - maxUserCount;
                if (stOverflowAmount > 0)
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "maxOverflow", "alert('超过当前用户组静态盘点上限" + stOverflowAmount + "个')", true);
                    return;
                }

                stOverflowAmount = currentStAmount + newRequest.Details.Count - maxCount;
                if (stOverflowAmount > 0)
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "maxOverflow", "alert('超过静态盘点总数上限" + stOverflowAmount + "个')", true);
                    return;
                }
            }
            //fill in items
            StocktakeRequest request = Service.RequestStocktake(newRequest);
            BindDataControl(gvResult, detailsList);
            CurrentUser.RefreshUserProfile();
            CacheHelper.RemoveCache(Consts.CACHE_KEY_USER_GROUPS);
            //show information
            this.UCFileUpload1.AddSuccessInfo("盘点申请成功,申请单号" + request.RequestNumber, string.Empty, string.Empty);
        }
    }