コード例 #1
0
        /// <summary>
        /// 获取到页面参数
        /// </summary>
        protected InvoiceDealDto GetParam()
        {
            var param = AssembleModel <InvoiceDealDto>();

            //var invoice = AssembleModel<ctt_invoice>();
            param.ids                 = Request.Form["accDedIds"];
            param.payment_term_id     = param.payment_term_id == 0 ? null : param.payment_term_id;
            param.invoice_template_id = int.Parse(Request.Form["invoice_tmpl_id"]);
            param.isShowPrint         = invShow.Checked;
            param.isShowEmail         = emailShow.Checked;
            param.isQuickBooks        = quickBookShow.Checked;

            if (contract_udfList != null && contract_udfList.Count > 0)
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in contract_udfList)
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = Request.Form[udf.id.ToString()] == "" ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.udf = list;
            }
            return(param);
        }
コード例 #2
0
ファイル: CompanySiteManage.aspx.cs プロジェクト: evelh/Done
        protected void edit_Click(object sender, EventArgs e)
        {
            var valueList = new List <UserDefinedFieldValue>();

            if (site_udfList != null && site_udfList.Count > 0)
            {
                //var list = new List<UserDefinedFieldValue>();
                foreach (var udf in site_udfList)
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = Request.Form[udf.id.ToString()] == "" ? null : Request.Form[udf.id.ToString()],
                    };
                    valueList.Add(new_udf);
                }
            }

            if (valueList != null && valueList.Count > 0)
            {
                var user = UserInfoBLL.GetUserInfo(GetLoginUserId());
                if (new UserDefinedFieldsBLL().UpdateUdfValue(DicEnum.UDF_CATE.SITE, site_udfList, account.id, valueList, user, DicEnum.OPER_LOG_OBJ_CATE.CUSTOMER_SITE))
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('保存成功');window.close();</script>");
                }
                else
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('保存失败');window.close();</script>");
                }
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('尚未配置站点信息');window.close();</script>");
            }
        }
コード例 #3
0
        /// <summary>
        /// 保存表单数据到对象
        /// </summary>
        private void SaveFormData()
        {
            var param = new ContactAddAndUpdateDto();

            param.contact                                = AssembleModel <crm_contact>();
            param.contact.id                             = id;
            param.contact.name                           = param.contact.first_name + param.contact.last_name;
            param.contact.avatar                         = SavePic();
            param.contact.is_active                      = active.Checked ? 1 : 0;
            param.contact.is_primary_contact             = (sbyte)(primary.Checked ? 1 : 0);
            param.contact.is_optout_survey               = (sbyte)(optoutSurvey.Checked ? 1 : 0);
            param.contact.is_optout_contact_group_email  = (sbyte)(optoutEmail.Checked ? 1 : 0);
            param.contact.allow_notify_email_task_ticket = (sbyte)(allowEmail.Checked ? 1 : 0);
            if (contact_udfList != null && contact_udfList.Count > 0)                      // 首先判断是否有自定义信息
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in contact_udfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = Request.Form[udf.id.ToString()] == null ? "" : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.udf = list;
            }
            dto = param;
        }
コード例 #4
0
        private ServiceCallDto GetParam()
        {
            var param      = new ServiceCallDto();
            var pageTicket = AssembleModel <sdk_task>();
            var startTime  = Request.Form["startTime"];
            var endTime    = Request.Form["endTime"];

            if (string.IsNullOrEmpty(startTime) || string.IsNullOrEmpty(endTime))
            {
                return(null);
            }
            pageTicket.estimated_begin_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(startTime));
            pageTicket.estimated_end_time   = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(endTime));
            param.thisTicket = pageTicket;

            var call = new sdk_service_call();

            call.start_time  = (long)pageTicket.estimated_begin_time;
            call.end_time    = (long)pageTicket.estimated_end_time;
            call.status_id   = (int)DicEnum.SERVICE_CALL_STATUS.NEW;
            call.account_id  = pageTicket.account_id;
            call.description = pageTicket.description;
            param.call       = call;
            if (tickUdfList != null && tickUdfList.Count > 0)
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in tickUdfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = string.IsNullOrEmpty(Request.Form[udf.id.ToString()]) ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.udfList = list;
            }
            var OtherResId = Request.Form["OtherResId"];

            if (!string.IsNullOrEmpty(OtherResId))
            {
                param.resIds = new DispatchBLL().GetResByResDep(OtherResId);
            }
            return(param);
        }
コード例 #5
0
 private List <UserDefinedFieldValue> GetUdfValue()
 {
     if (sale_udfList != null && sale_udfList.Count > 0)                      // 首先判断是否有自定义信息
     {
         var list = new List <UserDefinedFieldValue>();
         foreach (var udf in sale_udfList)                            // 循环添加
         {
             var new_udf = new UserDefinedFieldValue()
             {
                 id    = udf.id,
                 value = Request.Form[udf.id.ToString()] == "" ? null : Request.Form[udf.id.ToString()],
             };
             list.Add(new_udf);
         }
         return(list);
     }
     return(null);
 }
コード例 #6
0
ファイル: TicketManage.aspx.cs プロジェクト: evelh/Done
        /// <summary>
        ///  获取页面参数
        /// </summary>
        protected TicketManageDto GetParam()
        {
            // 为方便页面处理 owner_resource_id 存储的是 sys_resource_department 的id ,存储时需要转换
            long?owner_resource_id = null;
            long?role_id           = null;
            var  priResString      = Request.Form["owner_resource_id"];

            if (!string.IsNullOrEmpty(priResString))
            {
                var resDep = new sys_resource_department_dal().FindById(long.Parse(priResString));
                if (resDep != null)
                {
                    owner_resource_id = resDep.resource_id;
                    role_id           = resDep.role_id;
                }
            }
            TicketManageDto param      = new TicketManageDto();
            var             pageTicket = AssembleModel <sdk_task>();

            pageTicket.owner_resource_id = owner_resource_id;
            pageTicket.role_id           = role_id;
            var dueDate = Request.Form["DueDate"];
            var dueTime = Request.Form["DueTime"];

            if (!string.IsNullOrEmpty(dueTime) && !string.IsNullOrEmpty(dueDate))
            {
                var dueDateTime = dueDate + " " + dueTime; // 获取到截止时间
                var dueD        = DateTime.Parse(dueDateTime);
                pageTicket.estimated_end_time = Tools.Date.DateHelper.ToUniversalTimeStamp(dueD);
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('未获取到相关截止时间,请重新填写!');</script>");
                return(null);
            }
            #region 如果sla设置自动计算截止时间 ,保存时计算出工单的结束时间
            if (pageTicket.sla_id != null)
            {
                var thisSla = new d_sla_dal().FindNoDeleteById((long)pageTicket.sla_id);
                if (thisSla != null && thisSla.set_ticket_due_date == 1)
                {
                    if (pageTicket.sla_start_time == null)
                    {
                        pageTicket.sla_start_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now);
                    }
                    var    slaValue     = new sdk_task_dal().GetSlaTime(pageTicket);
                    string slaTimeValue = "";
                    if (slaValue != null)
                    {
                        slaTimeValue = slaValue.ToString();
                    }
                    if (!string.IsNullOrEmpty(slaTimeValue) && slaTimeValue.Substring(0, 1) == "{")
                    {
                        var slaDic = new EMT.Tools.Serialize().JsonToDictionary(slaTimeValue);
                        if (slaDic != null && slaDic.Count > 0)
                        {
                            var duteDateDic = slaDic.FirstOrDefault(_ => _.Key == "截止时间");
                            if (!default(KeyValuePair <string, object>).Equals(duteDateDic))
                            {
                                var duteDate = DateTime.Parse(duteDateDic.Value.ToString());
                                pageTicket.estimated_end_time = Tools.Date.DateHelper.ToUniversalTimeStamp(duteDate);
                            }
                            var firstResponseDateDic = slaDic.FirstOrDefault(_ => _.Key == "响应时间");
                            if (!default(KeyValuePair <string, object>).Equals(firstResponseDateDic))
                            {
                                pageTicket.first_response_target_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(firstResponseDateDic.Value.ToString()));
                            }
                            var resoluTatgetDic = slaDic.FirstOrDefault(_ => _.Key == "解决时间");
                            if (!default(KeyValuePair <string, object>).Equals(resoluTatgetDic))
                            {
                                pageTicket.resolution_target_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(resoluTatgetDic.Value.ToString()));
                            }
                            var resoluPlanTatgetDic = slaDic.FirstOrDefault(_ => _.Key == "解决方案提供时间");
                            if (!default(KeyValuePair <string, object>).Equals(firstResponseDateDic))
                            {
                                pageTicket.resolution_plan_target_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(resoluPlanTatgetDic.Value.ToString()));
                            }
                        }
                    }
                }
            }
            #endregion

            if (isAdd)
            {
                pageTicket.type_id = (int)DTO.DicEnum.TASK_TYPE.SERVICE_DESK_TICKET;
                param.ticket       = pageTicket;
            }
            else
            {
                #region 获取页面相关值
                thisTicket.account_id           = pageTicket.account_id;
                thisTicket.contract_id          = pageTicket.contract_id;
                thisTicket.contact_id           = pageTicket.contact_id;
                thisTicket.status_id            = pageTicket.status_id;
                thisTicket.priority             = pageTicket.priority;
                thisTicket.issue_type_id        = pageTicket.issue_type_id;
                thisTicket.sub_issue_type_id    = pageTicket.sub_issue_type_id;
                thisTicket.source_type_id       = pageTicket.source_type_id;
                thisTicket.estimated_end_time   = pageTicket.estimated_end_time;
                thisTicket.estimated_hours      = pageTicket.estimated_hours;
                thisTicket.sla_id               = pageTicket.sla_id;
                thisTicket.department_id        = pageTicket.department_id;
                thisTicket.owner_resource_id    = pageTicket.owner_resource_id;
                thisTicket.role_id              = pageTicket.role_id;
                thisTicket.installed_product_id = pageTicket.installed_product_id;
                thisTicket.service_id           = pageTicket.service_id;
                thisTicket.cost_code_id         = pageTicket.cost_code_id;
                thisTicket.purchase_order_no    = pageTicket.purchase_order_no;
                thisTicket.cate_id              = pageTicket.cate_id;
                thisTicket.ticket_type_id       = pageTicket.ticket_type_id;
                thisTicket.title       = pageTicket.title;
                thisTicket.description = pageTicket.description;
                thisTicket.resolution  = pageTicket.resolution;

                thisTicket.sla_start_time              = pageTicket.sla_start_time;
                thisTicket.estimated_end_time          = pageTicket.estimated_end_time;
                thisTicket.first_response_target_time  = pageTicket.first_response_target_time;
                thisTicket.resolution_target_time      = pageTicket.resolution_target_time;
                thisTicket.resolution_plan_target_time = pageTicket.resolution_plan_target_time;
                #endregion
                param.ticket = thisTicket;
            }
            param.resDepIds = Request.Form["OtherResId"];
            var AddSoule = Request.Form["AddSoule"];
            if (AddSoule == "on")
            {
                param.isAppSlo = true;
            }
            param.completeReason = Request.Form["reason"];
            param.repeatReason   = Request.Form["RepeatReason"];
            #region 检查单相关
            var CheckListIds = Request.Form["CheckListIds"];  // 检查单Id
            if (!string.IsNullOrEmpty(CheckListIds))
            {
                List <CheckListDto> ckList = new List <CheckListDto>();
                var checkIdArr             = CheckListIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (var checkId in checkIdArr)
                {
                    if (string.IsNullOrEmpty(Request.Form[checkId + "_item_name"]))  // 条目名称为空 不添加
                    {
                        continue;
                    }
                    var     is_complete = Request.Form[checkId + "_is_complete"];
                    var     is_import   = Request.Form[checkId + "_is_import"];
                    var     sortOrder   = Request.Form[checkId + "_sort_order"];
                    decimal?sort        = null;
                    if (!string.IsNullOrEmpty(sortOrder))
                    {
                        sort = decimal.Parse(sortOrder);
                    }
                    var thisCheck = new CheckListDto()
                    {
                        ckId       = long.Parse(checkId),
                        isComplete = is_complete == "on",
                        itemName   = Request.Form[checkId + "_item_name"],
                        isImport   = is_import == "on",
                        sortOrder  = sort,
                    };
                    ckList.Add(thisCheck);
                }
                param.ckList = ckList;
            }
            #endregion
            #region 工单自定义字段,页面暂无自定义
            if (tickUdfList != null && tickUdfList.Count > 0)
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in tickUdfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = string.IsNullOrEmpty(Request.Form[udf.id.ToString()]) ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                if (isAdd)
                {
                    param.udfList = list;
                }
                else
                {
                    param.udfList = ticketUdfValueList;
                }
            }
            #endregion
            return(param);
        }
コード例 #7
0
        /// <summary>
        /// 获取到表单参数
        /// </summary>
        /// <returns></returns>
        protected OpportunityAddOrUpdateDto GetParam()
        {
            var general = AssembleModel <crm_opportunity>();

            general.use_quote = (sbyte)(is_use_quote.Checked ? 1 : 0);
            var param = new OpportunityAddOrUpdateDto()
            {
                notify = AssembleModel <com_notify_email>(),
            };

            if (opportunity_udfList != null && opportunity_udfList.Count > 0)                      // 首先判断是否有自定义信息
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in opportunity_udfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = Request.Form[udf.id.ToString()] == "" ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.udf = list;
            }
            if (!isAdd)
            {
                opportunity.name                 = general.name;
                opportunity.account_id           = general.account_id;
                opportunity.contact_id           = general.contact_id;
                opportunity.source_id            = general.source_id;
                opportunity.stage_id             = general.stage_id;
                opportunity.resource_id          = general.resource_id;
                opportunity.status_id            = general.status_id;
                opportunity.competitor_id        = general.competitor_id;
                opportunity.projected_begin_date = general.projected_begin_date;
                opportunity.projected_close_date = general.projected_close_date;
                opportunity.probability          = general.probability;
                opportunity.interest_degree_id   = general.interest_degree_id;
                opportunity.primary_product_id   = general.primary_product_id;
                opportunity.promotion_name       = general.promotion_name;
                opportunity.spread_value         = general.spread_value;
                opportunity.spread_unit          = general.spread_unit;
                opportunity.number_months        = general.number_months;
                opportunity.one_time_revenue     = general.one_time_revenue;
                opportunity.one_time_cost        = general.one_time_cost;
                opportunity.monthly_revenue      = general.monthly_revenue;
                opportunity.monthly_cost         = general.monthly_cost;
                opportunity.quarterly_revenue    = general.quarterly_revenue;
                opportunity.quarterly_cost       = general.quarterly_cost;
                opportunity.semi_annual_revenue  = general.semi_annual_revenue;
                opportunity.semi_annual_cost     = general.semi_annual_cost;
                opportunity.yearly_revenue       = general.yearly_revenue;
                opportunity.yearly_cost          = general.yearly_cost;
                opportunity.help_needed          = general.help_needed;
                opportunity.use_quote            = general.use_quote;
                opportunity.ext1                 = general.ext1;
                opportunity.ext2                 = general.ext2;
                opportunity.ext3                 = general.ext3;
                opportunity.ext4                 = general.ext4;
                opportunity.ext5                 = general.ext5;
                opportunity.start_date           = general.start_date;
                opportunity.end_date             = general.end_date;
                opportunity.market               = general.market;
                opportunity.barriers             = general.barriers;
                opportunity.next_step            = general.next_step;
                opportunity.win_reason_type_id   = general.win_reason_type_id;
                opportunity.win_reason           = general.win_reason;
                opportunity.loss_reason_type_id  = general.loss_reason_type_id;
                opportunity.loss_reason          = general.loss_reason;
                param.general = opportunity;
            }
            else
            {
                param.general = general;
            }
            return(param);
        }
コード例 #8
0
ファイル: TicketModify.aspx.cs プロジェクト: evelh/Done
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                var ticketIds = Request.QueryString["ticketIds"];
                var sdDal     = new sdk_task_dal();
                if (!string.IsNullOrEmpty(ticketIds))
                {
                    ticketList = sdDal.GetTicketByIds(ticketIds);
                }
                if (ticketList != null && ticketList.Count > 0)
                {
                    if (ticketList.Count == 1)
                    {
                        isSingle = true;
                    }
                    else
                    {
                        isSingle = false;
                    }
                    thisTicket = ticketList[0];
                }
                else
                {
                    Response.Write("<script>alert('未查询到相关工单信息!');window.close();</script>");
                    return;
                }
                var udfBLL = new UserDefinedFieldsBLL();
                if (thisTicket == null)
                {
                    Response.Write("<script>alert('未查询到相关工单信息!');window.close();</script>");
                }
                else
                {
                    thisAccount = new CompanyBLL().GetCompany(thisTicket.account_id);
                    thisUser    = new sys_resource_dal().FindNoDeleteById(LoginUserId);
                    #region 获取相关属性是否可以更改
                    if (ticketList.Any(_ => _.id != thisTicket.id))
                    {
                        isManyTitle = true;
                    }
                    else
                    {
                        isManyTitle = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id))
                    {
                        isManydesc = true;
                    }
                    else
                    {
                        isManydesc = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.department_id != thisTicket.department_id))
                    {
                        isManyDep = true;
                    }
                    else
                    {
                        isManyDep = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.issue_type_id != thisTicket.issue_type_id))
                    {
                        isManyissType = true;
                    }
                    else
                    {
                        isManyissType = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && (_.owner_resource_id != thisTicket.owner_resource_id && _.role_id != thisTicket.role_id)))
                    {
                        isManyPri = true;
                    }
                    else
                    {
                        isManyPri = false;
                        if (thisTicket.owner_resource_id != null && thisTicket.role_id != null)
                        {
                            thisPriRes = new sys_resource_dal().FindNoDeleteById((long)thisTicket.owner_resource_id);
                            thisRole   = new sys_role_dal().FindNoDeleteById((long)thisTicket.role_id);
                            var resDepList = new sys_resource_department_dal().GetResDepByResAndRole((long)thisTicket.owner_resource_id, (long)thisTicket.role_id);
                            if (resDepList != null && resDepList.Count > 0)
                            {
                                proResDep = resDepList[0];
                            }
                        }
                    }

                    if (ticketList.Any(_ => _.id != thisTicket.id && _.cate_id != thisTicket.cate_id))
                    {
                        isManyTicketCate = true;
                    }
                    else
                    {
                        isManyTicketCate = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.estimated_hours != thisTicket.estimated_hours))
                    {
                        isManyEstHour = true;
                    }
                    else
                    {
                        isManyEstHour = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.estimated_end_time != thisTicket.estimated_end_time))
                    {
                        isManyDueTime = true;
                    }
                    else
                    {
                        isManyDueTime = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.account_id != thisTicket.account_id))
                    {
                        isManyAccount = true;
                    }
                    else
                    {
                        isManyAccount = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.contract_id != thisTicket.contract_id))
                    {
                        isManyContract = true;
                    }
                    else
                    {
                        isManyContract = false;
                        if (thisTicket.contract_id != null)
                        {
                            thisContract = new ctt_contract_dal().FindNoDeleteById((long)thisTicket.contract_id);
                        }
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.status_id != thisTicket.status_id))
                    {
                        isManyStatus = true;
                    }
                    else
                    {
                        isManyStatus = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.service_id != thisTicket.service_id))
                    {
                        isManySerivce = true;
                    }
                    else
                    {
                        isManySerivce = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.priority_type_id != thisTicket.priority_type_id))
                    {
                        isManyPrio = true;
                    }
                    else
                    {
                        isManyPrio = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.cost_code_id != thisTicket.cost_code_id))
                    {
                        isManyWork = true;
                    }
                    else
                    {
                        isManyWork = false;
                        if (thisTicket.cost_code_id != null)
                        {
                            thisWorkType = new d_cost_code_dal().FindNoDeleteById((long)thisTicket.cost_code_id);
                        }
                    }

                    if (ticketList.Any(_ => _.id != thisTicket.id && _.sub_issue_type_id != thisTicket.sub_issue_type_id))
                    {
                        isManySubIssType = true;
                    }
                    else
                    {
                        isManySubIssType = false;
                    }
                    // protected bool isManyStatus;
                    #endregion

                    udfValue = udfBLL.GetUdfValue(DicEnum.UDF_CATE.TASK, thisTicket.id, udfTaskPara);
                    if (udfTaskPara != null && udfTaskPara.Count > 0)
                    {
                        foreach (var udfTask in udfTaskPara)
                        {
                            var thisValue = "";
                            if (udfValue.FirstOrDefault(_ => _.id == udfTask.id) != null)
                            {
                                thisValue = udfValue.FirstOrDefault(_ => _.id == udfTask.id).value.ToString();
                            }
                            var count = new UserDefinedFieldsBLL().GetSameValueCount(DicEnum.UDF_CATE.TASK, ticketIds, udfTask.col_name, thisValue.ToString());
                            if (count > 1 && (!isSingle))
                            {
                                udfValue.FirstOrDefault(_ => _.id == udfTask.id).value = "多个值-保持不变";
                            }
                        }
                    }

                    var otherResList = new sdk_task_resource_dal().GetTaskResByTaskId(thisTicket.id);
                    if (otherResList != null && otherResList.Count > 0)
                    {
                        foreach (var item in otherResList)
                        {
                            if (item.resource_id != null && item.role_id != null)
                            {
                                var resDepList = new sys_resource_department_dal().GetResDepByResAndRole((long)item.resource_id, (long)item.role_id);
                                if (resDepList != null && resDepList.Count > 0)
                                {
                                    ticketResIds += resDepList[0].id + ",";
                                }
                            }
                        }

                        if (ticketResIds != "")
                        {
                            ticketResIds = ticketResIds.Substring(0, ticketResIds.Length - 1);
                        }
                    }
                }

                if (IsPostBack)
                {
                    var stDal      = new sdk_task_dal();
                    var ticBll     = new TicketBLL();
                    var accBll     = new CompanyBLL();
                    var notiResIds = new System.Text.StringBuilder();
                    foreach (var tic in ticketList)
                    {
                        var ticket = stDal.FindNoDeleteById(tic.id);
                        if (ticket == null)
                        {
                            continue;
                        }
                        var user = UserInfoBLL.GetUserInfo(LoginUserId);

                        #region 获取相关参数

                        #region 标题,描述,队列,主负责人
                        var pageTitle = ticket.title;
                        if (!isManyTitle)
                        {
                            pageTitle = Request.Form["title"];
                        }
                        var pageDesc = ticket.description;
                        if (!isManydesc)
                        {
                            pageDesc = Request.Form["description"];
                        }

                        var pageDepIdString    = Request.Form["department_id"];
                        var pagePriResIdString = Request.Form["pri_res"];
                        if (string.IsNullOrEmpty(pageDepIdString) && string.IsNullOrEmpty(pagePriResIdString))
                        {
                            Response.Write("<script>alert('队列和主负责人请填写其中一项!');</script>");
                            return;
                        }
                        long?pageDepId;
                        if (!string.IsNullOrEmpty(pageDepIdString) && pageDepIdString != "0")
                        {
                            pageDepId = long.Parse(pageDepIdString);
                        }
                        else if (string.IsNullOrEmpty(pageDepIdString))
                        {
                            pageDepId = null;
                        }
                        else
                        {
                            pageDepId = ticket.department_id;
                        }

                        long?pagePriResId;
                        if (!string.IsNullOrEmpty(pagePriResIdString) && pagePriResIdString != "0")
                        {
                            pagePriResId = long.Parse(pagePriResIdString);
                        }
                        else if (string.IsNullOrEmpty(pagePriResIdString))
                        {
                            pagePriResId = null;
                        }
                        else
                        {
                            pagePriResId = ticket.owner_resource_id;
                        }
                        #endregion

                        #region 种类,预估时间,到期时间,合同名称
                        var pageCateId       = ticket.cate_id;
                        var pageCateIdString = Request.Form["ticket_cate"];
                        if (!string.IsNullOrEmpty(pageCateIdString) && pageCateIdString != "0")
                        {
                            pageCateId = int.Parse(pageCateIdString);
                        }
                        else if (string.IsNullOrEmpty(pagePriResIdString))
                        {
                            Response.Write("<script>alert('请选择工单种类!');</script>");
                            return;
                        }
                        else
                        {
                            pageCateId = ticket.cate_id;
                        }

                        var estHours     = ticket.estimated_hours;
                        var pageEstHours = Request.Form["est_hours"];
                        if (!string.IsNullOrEmpty(pageEstHours) && pageEstHours.Trim() != "多个值-保持不变")
                        {
                            estHours = decimal.Parse(pageEstHours);
                        }
                        var dueTime     = ticket.estimated_end_time;
                        var pageDueTime = Request.Form["due_time"];
                        if (!string.IsNullOrEmpty(pageDueTime) && pageDueTime.Trim() != "多个值-保持不变")
                        {
                            dueTime = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(pageDueTime));
                        }
                        var contractName = ticket.contract_id;
                        var pageContract = Request.Form["contractName"];
                        if (!string.IsNullOrEmpty(pageContract) && pageContract != "0")
                        {
                            contractName = long.Parse(pageContract);
                        }
                        else if (string.IsNullOrEmpty(pageContract))
                        {
                            contractName = null;
                        }
                        #endregion

                        #region 状态,服务包,优先级,工作类型,问题类型,子问题类型
                        var pageStatusId        = ticket.status_id;
                        var pageStuatusIdString = Request.Form["statusId"];
                        if (!string.IsNullOrEmpty(pageStuatusIdString) && pageStuatusIdString != "0")
                        {
                            pageStatusId = int.Parse(pageStuatusIdString);
                        }
                        else if (string.IsNullOrEmpty(pageStuatusIdString))
                        {
                            Response.Write("<script>alert('请选择工单状态!');</script>");
                            return;
                        }

                        var pageServiceId       = ticket.service_id;
                        var pageServiceIdString = Request.Form["serviceId"];
                        if (!string.IsNullOrEmpty(pageServiceIdString) && pageServiceIdString != "0")
                        {
                            pageServiceId = int.Parse(pageServiceIdString);
                        }
                        else if (string.IsNullOrEmpty(pageServiceIdString))
                        {
                            pageServiceId = null;
                        }

                        var pagePrioId       = ticket.priority_type_id;
                        var pagePrioIdString = Request.Form["priorityId"];
                        if (!string.IsNullOrEmpty(pagePrioIdString) && pagePrioIdString != "0")
                        {
                            pagePrioId = int.Parse(pagePrioIdString);
                        }
                        else if (string.IsNullOrEmpty(pagePrioIdString))
                        {
                            Response.Write("<script>alert('请选择工单优先级!');</script>");
                            return;
                        }

                        var workTypeId     = ticket.cost_code_id;
                        var pageWorkTypeId = Request.Form["workTypeId"];
                        if (!string.IsNullOrEmpty(pageWorkTypeId) && pageWorkTypeId != "0")
                        {
                            workTypeId = long.Parse(pageWorkTypeId);
                        }
                        else if (string.IsNullOrEmpty(pageWorkTypeId))
                        {
                            contractName = null;
                        }

                        var pageIssId       = ticket.issue_type_id;
                        var pageIssIdString = Request.Form["IssueType"];
                        if (!string.IsNullOrEmpty(pageIssIdString) && pageIssIdString != "0")
                        {
                            pageIssId = int.Parse(pageIssIdString);
                        }
                        else if (string.IsNullOrEmpty(pageIssIdString))
                        {
                            Response.Write("<script>alert('请选择问题类型!');</script>");
                            return;
                        }

                        var pageSubIssId       = ticket.sub_issue_type_id;
                        var pageSubIssIdString = Request.Form["SubIssueType"];
                        if (!string.IsNullOrEmpty(pageSubIssIdString) && pageSubIssIdString != "0")
                        {
                            pageSubIssId = int.Parse(pageSubIssIdString);
                        }
                        else if (string.IsNullOrEmpty(pageSubIssIdString))
                        {
                            Response.Write("<script>alert('请选择子问题类型!');</script>");
                            return;
                        }
                        #endregion

                        #region 自定义字段相关
                        var thisUdfValue = udfBLL.GetUdfValue(DicEnum.UDF_CATE.TASK, tic.id, udfTaskPara);
                        if (udfTaskPara != null && udfTaskPara.Count > 0)
                        {
                            var list = new List <UserDefinedFieldValue>();
                            foreach (var udf in udfTaskPara)
                            {
                                var new_udf = new UserDefinedFieldValue()
                                {
                                    id = udf.id
                                };
                                var thisvv = Request.Form[udf.id.ToString()];
                                if (udf.data_type == (int)DicEnum.UDF_DATA_TYPE.LIST)
                                {
                                    if (thisvv == "0")
                                    {
                                        new_udf.value = thisUdfValue.FirstOrDefault(_ => _.id == udf.id) == null ? "" : thisUdfValue.FirstOrDefault(_ => _.id == udf.id).value;
                                    }
                                    else
                                    {
                                        new_udf.value = thisvv == "" ? null : thisvv;
                                    }
                                }
                                else
                                {
                                    if (thisvv == "多个值-保持不变")
                                    {
                                        new_udf.value = thisUdfValue.FirstOrDefault(_ => _.id == udf.id) == null ? "" : thisUdfValue.FirstOrDefault(_ => _.id == udf.id).value;
                                    }
                                    else
                                    {
                                        new_udf.value = thisvv == "" ? null : thisvv;
                                    }
                                }
                                list.Add(new_udf);
                            }
                            udfBLL.UpdateUdfValue(DicEnum.UDF_CATE.TASK, udfTaskPara, ticket.id, list, user, DicEnum.OPER_LOG_OBJ_CATE.PROJECT_TASK);
                        }
                        #endregion

                        #endregion

                        #region 修改工单
                        ticket.title         = pageTitle;
                        ticket.description   = pageDesc;
                        ticket.department_id = pageDepId;
                        long?roleId = null;
                        if (pagePriResId != null)
                        {
                            var resDep = new sys_resource_department_dal().FindById((long)pagePriResId);
                            if (resDep != null)
                            {
                                pagePriResId = resDep.resource_id;
                                roleId       = resDep.role_id;
                            }
                            else
                            {
                                pagePriResId = null;
                                roleId       = null;
                            }
                        }
                        ticket.owner_resource_id  = pagePriResId;
                        ticket.role_id            = roleId;
                        ticket.cate_id            = pageCateId;
                        ticket.estimated_hours    = estHours;
                        ticket.estimated_end_time = dueTime;
                        ticket.contract_id        = contractName;
                        ticket.status_id          = pageStatusId;
                        ticket.service_id         = pageServiceId;
                        ticket.priority_type_id   = pagePrioId;
                        ticket.cost_code_id       = workTypeId;
                        ticket.issue_type_id      = pageIssId;
                        ticket.sub_issue_type_id  = pageSubIssId;

                        ticBll.EditTicket(ticket, LoginUserId);
                        #endregion

                        #region 生成备注
                        ticBll.AddModifyTicketNote(ticket.id, LoginUserId);
                        #endregion


                        #region 单个工单时 修改其他员工相关
                        if (isSingle)
                        {
                            var OtherResId = Request.Form["OtherResId"];
                            ticBll.TicketResManage(ticket.id, OtherResId, LoginUserId);
                        }
                        #endregion

                        #region 获取需要发送邮件的员工的Id
                        if (CkPriRes.Checked && ticket.owner_resource_id != null)
                        {
                            notiResIds.Append(ticket.owner_resource_id + ",");
                        }
                        if (CKcreate.Checked)
                        {
                            notiResIds.Append(ticket.create_user_id + ",");
                        }
                        if (CKaccMan.Checked)
                        {
                            var thisAccount = accBll.GetCompany(ticket.account_id);
                            if (thisAccount != null && thisAccount.resource_id != null)
                            {
                                notiResIds.Append(thisAccount.resource_id + ",");
                            }
                        }
                        #endregion
                    }


                    #region 通知相关
                    if (CCMe.Checked)
                    {
                        notiResIds.Append(LoginUserId + ",");
                    }
                    var resIds = Request.Form["resIds"];
                    if (!string.IsNullOrEmpty(resIds))
                    {
                        notiResIds.Append(resIds + ",");
                    }
                    var notify_id = Request.Form["notify_id"];
                    if (!string.IsNullOrEmpty(notify_id) && notify_id != "0")
                    {
                    }
                    #endregion
                    ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('保存成功');self.opener.location.reload();window.close();</script>");
                }
            }
            catch (Exception msg)
            {
                Response.Write("<script>alert('" + msg.Message + "!');window.close();</script>");
            }
        }
コード例 #9
0
        /// <summary>
        /// 获取相应参数
        /// </summary>
        private ProjectDto GetParam()
        {
            ProjectDto param = AssembleModel <ProjectDto>();

            param.project = AssembleModel <pro_project>();
            // var test = Request.Form["fromTempId"];
            param.project.use_resource_daily_hours = (sbyte)(useResource_daily_hours.Checked ? 1 : 0);
            param.project.exclude_weekend          = (sbyte)(excludeWeekend.Checked ? 1 : 0);
            param.project.exclude_holiday          = (sbyte)(excludeHoliday.Checked ? 1 : 0);
            param.project.warn_time_off            = (sbyte)(warnTime_off.Checked ? 1 : 0);
            if (!string.IsNullOrEmpty(isTemp))
            {
                if (isAdd)
                {
                    param.project.status_id = is_active.Checked ? (int)DicEnum.PROJECT_STATUS.NEW : (int)DicEnum.PROJECT_STATUS.DISABLE;
                }
                else
                {
                    param.project.status_id     = thisProject.status_id;
                    param.project.status_detail = thisProject.status_detail;
                    param.project.status_time   = thisProject.status_time;
                }
            }
            #region 结束时间和持续时间天数



            if (!isAdd)
            {
                if (param.project.duration != thisProject.duration)
                {
                    param.project.end_date = ((DateTime)param.project.start_date).AddDays((double)param.project.duration - 1);
                }
                else
                {
                    if (param.project.end_date != thisProject.end_date)
                    {
                        TimeSpan ts1 = new TimeSpan(((DateTime)param.project.start_date).Ticks);
                        TimeSpan ts2 = new TimeSpan(((DateTime)param.project.end_date).Ticks);
                        TimeSpan ts  = ts1.Subtract(ts2).Duration();
                        param.project.duration = ts.Days + 1;
                    }
                    else
                    {
                        param.project.end_date = ((DateTime)param.project.start_date).AddDays((double)param.project.duration - 1);
                    }
                }

                if (taskList != null && taskList.Count > 0)
                {
                    var lastDate = Tools.Date.DateHelper.ConvertStringToDateTime(taskList.Max(_ => (long)_.estimated_end_time));
                    if (lastDate > param.project.end_date)
                    {
                        param.project.end_date = lastDate;
                        TimeSpan ts1 = new TimeSpan(((DateTime)param.project.start_date).Ticks);
                        TimeSpan ts2 = new TimeSpan(((DateTime)param.project.end_date).Ticks);
                        TimeSpan ts  = ts1.Subtract(ts2).Duration();
                        param.project.duration = ts.Days + 1;
                    }
                }


                var statusTime = Request.Form["statustime"];
                if (!string.IsNullOrEmpty(statusTime))
                {
                    param.project.status_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(statusTime));
                }
            }
            else
            {
                if (param.project.duration != null)
                {
                    param.project.end_date = ((DateTime)param.project.start_date).AddDays(((double)param.project.duration) - 1);
                }
                else
                {
                    TimeSpan ts1 = new TimeSpan(((DateTime)param.project.start_date).Ticks);
                    TimeSpan ts2 = new TimeSpan(((DateTime)param.project.end_date).Ticks);
                    TimeSpan ts  = ts1.Subtract(ts2).Duration();
                    param.project.duration = ts.Days + 1;
                }
            }
            #endregion
            if (project_udfList != null && project_udfList.Count > 0)
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in project_udfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = string.IsNullOrEmpty(Request.Form[udf.id.ToString()]) ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.udf = list;
            }

            if (isAdd)
            {
                param.resDepIds  = Request.Form["resDepList"];
                param.contactIds = Request.Form["conIds"];
                if (string.IsNullOrEmpty(isTemp))
                {
                    param.project.status_id = (int)DicEnum.PROJECT_STATUS.NEW;
                }
            }
            else
            {
                param.project.id = thisProject.id;
                #region 暂时不知道哪里会用,从旧的项目中获取
                param.project.no = thisProject.no;
                param.project.actual_project_time        = thisProject.actual_project_time;
                param.project.actual_project_billed_time = thisProject.actual_project_billed_time;
                param.project.est_project_time           = thisProject.est_project_time;
                param.project.change_orders_revenue      = thisProject.change_orders_revenue;
                param.project.change_orders_budget       = thisProject.change_orders_budget;
                param.project.probability          = thisProject.probability;
                param.project.project_costs        = thisProject.project_costs;
                param.project.importance_id        = thisProject.importance_id;
                param.project.sales_id             = thisProject.sales_id;
                param.project.completed_percentage = thisProject.completed_percentage;
                param.project.completed_time       = thisProject.completed_time;
                param.project.cash_collected       = thisProject.cash_collected;
                param.project.baseline_project_id  = thisProject.baseline_project_id;
                param.project.edit_event_id        = thisProject.edit_event_id;
                param.project.percent_complete     = thisProject.percent_complete;
                param.project.automatic_leveling_end_date_offset_days = thisProject.automatic_leveling_end_date_offset_days;
                #endregion
            }
            return(param);
        }
コード例 #10
0
        protected MasterTicketDto GetParam()
        {
            MasterTicketDto param = new MasterTicketDto();

            #region 定期工单相关参数获取
            var pageTicket = AssembleModel <sdk_task>();
            #region 获取主负责人和相关角色
            var dueTime = Request.Form["dueTime"];
            if (isAdd)
            {
                var  resDepId = Request.Form["resDepId"];
                long?roleId   = null;
                long?resId    = null;
                if (!string.IsNullOrEmpty(resDepId))   // department_id
                {
                    var resDep = new sys_resource_department_dal().FindById(long.Parse(resDepId));
                    if (resDep != null)
                    {
                        roleId = resDep.role_id;
                        resId  = resDep.resource_id;
                    }
                }
                pageTicket.role_id           = roleId;
                pageTicket.owner_resource_id = resId;
                #endregion


                if (!string.IsNullOrEmpty(dueTime))
                {
                    pageTicket.estimated_end_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + dueTime));
                }
                else
                {
                    return(null);
                }
                param.masterTicket = pageTicket;
            }
            else
            {
                #region 修改获取相关参数
                //thisTicket.account_id = pageTicket.account_id;
                //thisTicket.title = pageTicket.title;
                //thisTicket.description = pageTicket.description;
                //thisTicket.contact_id = pageTicket.contact_id;
                //thisTicket.department_id = pageTicket.department_id;
                //thisTicket.owner_resource_id = pageTicket.owner_resource_id;
                //thisTicket.role_id = pageTicket.role_id;
                //thisTicket.source_type_id = pageTicket.source_type_id;
                //thisTicket.issue_type_id = pageTicket.issue_type_id;
                //thisTicket.sub_issue_type_id = pageTicket.sub_issue_type_id;
                //thisTicket.estimated_end_time = pageTicket.estimated_end_time;
                //thisTicket.estimated_hours = pageTicket.estimated_hours;
                //thisTicket.status_id = pageTicket.status_id;
                //thisTicket.priority_type_id = pageTicket.priority_type_id;
                //thisTicket.contract_id = pageTicket.contract_id;
                //thisTicket.cost_code_id = pageTicket.cost_code_id;
                //thisTicket.cate_id = pageTicket.cate_id;
                //thisTicket.installed_product_id = pageTicket.installed_product_id;
                //thisTicket.purchase_order_no = pageTicket.purchase_order_no;
                #endregion
                param.masterTicket = thisTicket;
            }
            #endregion

            #region 周期相关参数获取
            var pageRecurr = AssembleModel <sdk_recurring_ticket>();
            var ckActive   = Request.Form["ckActive"];
            if (!string.IsNullOrEmpty(ckActive) && ckActive.Equals("on"))
            {
                pageRecurr.is_active = 1;
            }
            else
            {
                pageRecurr.is_active = 0;
            }
            if (isAdd)
            {
                pageRecurr.recurring_start_date = DateTime.Parse(pageRecurr.recurring_start_date.ToString("yyyy-MM-dd") + " " + dueTime);
                var rdoFreq = Request.Form["rdoFreq"];
                switch (rdoFreq)
                {
                case "Daily":
                    pageRecurr.recurring_frequency = (int)DicEnum.RECURRING_TICKET_FREQUENCY_TYPE.DAY;
                    var day_eve_day = Request.Form["day_eve_day"];
                    if (!string.IsNullOrEmpty(day_eve_day))
                    {
                        param.day_day = int.Parse(day_eve_day);
                    }
                    else
                    {
                        return(null);
                    }
                    var ckNotInSat = Request.Form["ckNotInSat"];
                    if (!string.IsNullOrEmpty(ckNotInSat) && ckNotInSat.Equals("on"))
                    {
                        param.day_no_sat = true;
                    }
                    var ckNotInSun = Request.Form["ckNotInSun"];
                    if (!string.IsNullOrEmpty(ckNotInSun) && ckNotInSun.Equals("on"))
                    {
                        param.day_no_sun = true;
                    }
                    break;

                case "Weekly":
                    pageRecurr.recurring_frequency = (int)DicEnum.RECURRING_TICKET_FREQUENCY_TYPE.WEEK;
                    var week_eve_week = Request.Form["week_eve_week"];
                    if (!string.IsNullOrEmpty(week_eve_week))
                    {
                        param.week_week = int.Parse(week_eve_week);
                    }
                    else
                    {
                        return(null);
                    }
                    var ckWeekMon = Request.Form["ckWeekMon"];
                    if (!string.IsNullOrEmpty(ckWeekMon) && ckWeekMon.Equals("on"))
                    {
                        param.week_mon = true;
                    }
                    var ckWeekTus = Request.Form["ckWeekTus"];
                    if (!string.IsNullOrEmpty(ckWeekTus) && ckWeekTus.Equals("on"))
                    {
                        param.week_tus = true;
                    }
                    var ckWeekWed = Request.Form["ckWeekWed"];
                    if (!string.IsNullOrEmpty(ckWeekWed) && ckWeekWed.Equals("on"))
                    {
                        param.week_wed = true;
                    }
                    var ckWeekThu = Request.Form["ckWeekThu"];
                    if (!string.IsNullOrEmpty(ckWeekThu) && ckWeekThu.Equals("on"))
                    {
                        param.week_thu = true;
                    }
                    var ckWeekFri = Request.Form["ckWeekFri"];
                    if (!string.IsNullOrEmpty(ckWeekFri) && ckWeekFri.Equals("on"))
                    {
                        param.week_fri = true;
                    }
                    var ckWeekSat = Request.Form["ckWeekSat"];
                    if (!string.IsNullOrEmpty(ckWeekSat) && ckWeekSat.Equals("on"))
                    {
                        param.week_sat = true;
                    }
                    var ckWeekSun = Request.Form["ckWeekSun"];
                    if (!string.IsNullOrEmpty(ckWeekSun) && ckWeekSun.Equals("on"))
                    {
                        param.week_sun = true;
                    }
                    break;

                case "Monthly":
                    pageRecurr.recurring_frequency = (int)DicEnum.RECURRING_TICKET_FREQUENCY_TYPE.MONTH;
                    var radioMonthly = Request.Form["radioMonthly"];
                    if (radioMonthly == "Day")
                    {
                        param.month_type = "1";
                        var month_month_num = Request.Form["month_month_num"];
                        var month_month_day = Request.Form["month_month_day"];
                        if (!string.IsNullOrEmpty(month_month_num) && !string.IsNullOrEmpty(month_month_day))
                        {
                            param.month_month = int.Parse(month_month_num);
                            param.month_day   = int.Parse(month_month_day);
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    else if (radioMonthly == "The")
                    {
                        param.month_type = "2";
                        var month_month_eve_num = Request.Form["month_month_eve_num"];
                        if (!string.IsNullOrEmpty(month_month_eve_num))
                        {
                            param.month_month = int.Parse(month_month_eve_num);
                        }
                        else
                        {
                            return(null);
                        }
                        param.month_week_num = Request.Form["ddlOccurance_ATDropDown"];
                        param.month_week_day = Request.Form["ddlDayofweeks_ATDropDown"];
                    }
                    else
                    {
                        return(null);
                    }
                    break;

                case "Yearly":
                    pageRecurr.recurring_frequency = (int)DicEnum.RECURRING_TICKET_FREQUENCY_TYPE.YEAR;
                    var rdoYearlyDue = Request.Form["rdoYearlyDue"];
                    if (rdoYearlyDue == "DueEvery")
                    {
                        var year_month_day = Request.Form["year_month_day"];
                        if (!string.IsNullOrEmpty(year_month_day))
                        {
                            param.year_month_day = int.Parse(year_month_day);
                        }
                        else
                        {
                            return(null);
                        }
                        param.year_type  = "1";
                        param.year_month = Request.Form["year_every_month"];
                    }
                    else if (rdoYearlyDue == "The")
                    {
                        param.year_type           = "2";
                        param.year_month          = Request.Form["year_the_month"];
                        param.year_month_week_num = Request.Form["year_month_week_num"];
                        param.year_month_week_day = Request.Form["year_the_week"];
                    }
                    else
                    {
                        return(null);
                    }
                    break;

                default:
                    return(null);

                    break;
                }
                param.masterRecurr = pageRecurr;
            }
            else
            {
                if (thisticketRes.recurring_end_date != null)
                {
                    thisticketRes.recurring_end_date = pageRecurr.recurring_end_date;
                }
                if (thisticketRes.recurring_instances != null)
                {
                    thisticketRes.recurring_instances = pageRecurr.recurring_instances;
                }
                thisticketRes.is_active = pageRecurr.is_active;
                param.masterRecurr      = thisticketRes;
            }

            #endregion

            #region 附件相关
            param.filtList = GetSessAttList(objectId);
            #endregion

            #region 备注相关参数
            param.noteTitle = Request.Form["note_title"];
            if (!string.IsNullOrEmpty(Request.Form["note_publish_id"]))
            {
                param.publishId = long.Parse(Request.Form["note_publish_id"]);
            }
            if (!string.IsNullOrEmpty(Request.Form["note_type"]))
            {
                param.noteTypeId = long.Parse(Request.Form["note_type"]);
            }
            param.noteDescription = Request.Form["txtNotesDescription"];
            #endregion

            #region 通知相关
            param.ccCons     = Request.Form["notifyConIds"];
            param.ccRes      = Request.Form["notifyResIds"];
            param.appText    = Request.Form["notify_description"];
            param.subject    = Request.Form["notify_title"];
            param.otherEmail = Request.Form["notify_others"];
            if (!string.IsNullOrEmpty(Request.Form["notify_temp"]))
            {
                param.tempId = int.Parse(Request.Form["notify_temp"]);
            }
            var ccMe = Request.Form["ccMe"];
            if (!string.IsNullOrEmpty(ccMe) && ccMe.Equals("on"))
            {
                param.ccMe = true;
            }
            var ccAccMan = Request.Form["ccAccMan"];
            if (!string.IsNullOrEmpty(ccAccMan) && ccMe.Equals("on"))
            {
                param.ccAccMan = true;
            }
            var sendFromSys = Request.Form["sendFromSys"];
            if (!string.IsNullOrEmpty(sendFromSys) && ccMe.Equals("on"))
            {
                param.sendFromSys = true;
            }
            var ccOwn = Request.Form["ccOwn"];
            if (!string.IsNullOrEmpty(ccOwn) && ccMe.Equals("on"))
            {
                param.ccOwn = true;
            }
            #endregion

            #region 工单自定义字段,页面暂无自定义
            if (tickUdfList != null && tickUdfList.Count > 0)
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in tickUdfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = string.IsNullOrEmpty(Request.Form[udf.id.ToString()]) ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.udfList = list;
            }
            #endregion

            return(param);
        }
コード例 #11
0
ファイル: EditCompany.aspx.cs プロジェクト: evelh/Done
        /// <summary>
        /// 保存并关闭 修改客户的点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void save_close_Click(object sender, EventArgs e)
        {
            var param = new CompanyUpdateDto();

            param.general_update = AssembleModel <CompanyUpdateDto.General_Update>();
            // param.general_update.is_active = (sbyte)(isactive.Checked ? 1 : 0);
            param.general_update.is_optout_survey = (sbyte)(is_optoutSurvey.Checked ? 1 : 0);
            param.general_update.taxExempt        = Tax_Exempt.Checked;
            param.additional_info    = AssembleModel <CompanyUpdateDto.Additional_Info>();
            param.alerts             = AssembleModel <CompanyUpdateDto.Alerts>();
            param.site_configuration = AssembleModel <CompanyUpdateDto.Site_Configuration>();


            if (company_udfList != null && company_udfList.Count > 0)                      // 首先判断是否有自定义信息
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in company_udfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = Request.Form[udf.id.ToString()] == "" ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.general_update.udf = list;
            }

            if (site_udfList != null && site_udfList.Count > 0)                      // 首先判断是否有自定义信息
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in site_udfValueList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = Request.Form[udf.id.ToString()] == "" ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.site_configuration.udf = list;
            }

            //try
            //{out string updateLocationContact,out string updateFaxPhoneContact
            string updateLocationContact = "";
            string updateFaxPhoneContact = "";
            var    result = new CompanyBLL().Update(param, GetLoginUserId(), out updateLocationContact, out updateFaxPhoneContact);

            if (result == ERROR_CODE.PARAMS_ERROR)   // 必填参数丢失,重写
            {
                ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('必填参数丢失,请重新填写');</script>");
            }
            else if (result == ERROR_CODE.CRM_ACCOUNT_NAME_EXIST)      // 用户名称已经存在,重新填写用户名称
            {
                ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('客户已经存在');</script>");
            }
            else if (result == ERROR_CODE.PHONE_OCCUPY)      // 用户名称已经存在,重新填写用户名称
            {
                ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('电话已有人在使用,请更换电话。');</script>");
                //Response.Write("<script>alert('电话已有人在使用,请更换电话。'); </script>");
            }
            else if (result == ERROR_CODE.USER_NOT_FIND)               // 用户丢失
            {
                Response.Write("<script>alert('查询不到用户,请重新登陆');</script>");
                Response.Redirect("../Login.aspx");
            }
            else if (result == ERROR_CODE.SUCCESS)                    // 修改用户成功
            {
                if (updateLocationContact == "" && updateFaxPhoneContact == "")
                {
                    Response.Write("<script>alert('修改客户成功!');window.close();self.opener.location.reload();</script>");  //  关闭添加页面的同时,刷新父页面
                }
                else
                {
                    Response.Write("<script>alert('修改客户成功!');window.open('UpdateContact.aspx?account_id=" + param.general_update.id + "&updateLocationContact=" + updateLocationContact + "&updateFaxPhoneContact=" + updateFaxPhoneContact + "','" + (int)EMT.DoneNOW.DTO.OpenWindow.OpportunityAdd + "','left= 200, top = 200, width = 960, height = 750', false);window.close();</script>");  //
                    //Response.Redirect("UpdateContact.aspx?account_id=" + param.general_update.id + "&updateLocationContact=" + updateLocationContact + "&updateFaxPhoneContact=" + updateFaxPhoneContact);
                }
            }
        }
コード例 #12
0
ファイル: TaskModify.aspx.cs プロジェクト: evelh/Done
        protected void save_Click(object sender, EventArgs e)
        {
            var stDal        = new sdk_task_dal();
            var ids          = Request.QueryString["taskIds"];
            var thisTaskList = stDal.GetTaskByIds(ids, $" and type_id in ({(int)DicEnum.TASK_TYPE.PROJECT_TASK},{(int)DicEnum.TASK_TYPE.PROJECT_ISSUE})");

            if (thisTaskList != null && thisTaskList.Count > 0)
            {
                var pageTitle           = Request.Form["title"];
                var pageStatu           = Request.Form["status_id"];
                var pagePriority        = Request.Form["priority"];
                var displayIsChange     = noChange.Checked;
                var pageEstimated_hours = Request.Form["estimated_hours"];
                var pageDepa            = Request.Form["department_id"];
                var pageRes             = Request.Form["owner_resource_id"];
                var user   = UserInfoBLL.GetUserInfo(GetLoginUserId());
                var ctaDal = new v_task_all_dal();
                foreach (var thisTask in thisTaskList)
                {
                    if (pageTitle != "多个值-保持不变")
                    {
                        if (!string.IsNullOrEmpty(pageTitle))
                        {
                            thisTask.title = pageTitle;
                        }
                    }
                    if (pageStatu != "0")
                    {
                        thisTask.status_id = int.Parse(pageStatu);
                    }
                    if (!string.IsNullOrEmpty(pagePriority))
                    {
                        thisTask.priority = int.Parse(pagePriority);
                    }
                    if (!displayIsChange)  // 代表页面上选择进行更改
                    {
                        if (DisplayInCapNone.Checked)
                        {
                            thisTask.is_visible_in_client_portal = 0;
                        }
                        else
                        {
                            thisTask.is_visible_in_client_portal = 1;
                            if (DisplayInCapYes.Checked)
                            {
                                thisTask.can_client_portal_user_complete_task = 1;
                            }
                            else if (DisplayInCapYesNoComplete.Checked)
                            {
                                thisTask.can_client_portal_user_complete_task = 0;
                            }
                        }
                    }
                    if (!typeNoChange.Checked)
                    {
                        if (TaskTypeFixedWork.Checked)
                        {
                            thisTask.estimated_type_id = (int)DicEnum.TIME_ENTRY_METHOD_TYPE.FIXWORK;
                        }
                        else if (TaskTypeFixedDuration.Checked)
                        {
                            thisTask.estimated_type_id = (int)DicEnum.TIME_ENTRY_METHOD_TYPE.FIXDURATION;
                        }
                    }
                    if (!string.IsNullOrEmpty(pageEstimated_hours))
                    {
                        thisTask.estimated_hours = decimal.Parse(pageEstimated_hours);
                        var vTask = ctaDal.FindById(thisTask.id);
                        if (vTask != null)
                        {
                            thisTask.projected_variance = (vTask.worked_hours == null ? 0 : (decimal)vTask.worked_hours) - (thisTask.estimated_hours + (vTask.change_Order_Hours == null ? 0 : (decimal)vTask.change_Order_Hours)) + (vTask.remain_hours == null ? 0 : (decimal)vTask.remain_hours);
                        }
                    }
                    if (pageDepa != "0")
                    {
                        if (!string.IsNullOrEmpty(pageDepa))
                        {
                            thisTask.department_id = int.Parse(pageDepa);
                        }
                        else
                        {
                            thisTask.department_id = null;
                        }
                    }
                    if (pageRes != "0")
                    {
                        if (!string.IsNullOrEmpty(pageRes))
                        {
                            thisTask.owner_resource_id = long.Parse(pageRes);
                        }
                        else
                        {
                            thisTask.owner_resource_id = null;
                        }
                    }
                    OperLogBLL.OperLogUpdate <sdk_task>(thisTask, stDal.FindNoDeleteById(thisTask.id), thisTask.id, GetLoginUserId(), OPER_LOG_OBJ_CATE.PROJECT_TASK, "修改task");
                    stDal.Update(thisTask);
                    var thisUdfValue = udfBLL.GetUdfValue(UDF_CATE.TASK, thisTask.id, udfTaskPara);
                    if (udfTaskPara != null && udfTaskPara.Count > 0)                      // 首先判断是否有自定义信息
                    {
                        var list = new List <UserDefinedFieldValue>();
                        foreach (var udf in udfTaskPara)                            // 循环添加
                        {
                            var new_udf = new UserDefinedFieldValue();
                            // if(udf.data_type != (int)EMT.DoneNOW.DTO.DicEnum.UDF_DATA_TYPE.LIST) // todo,根据类型去取值
                            new_udf.id = udf.id;
                            var thisvv = Request.Form[udf.id.ToString()];
                            if (thisvv == "多个值-保持不变")
                            {
                                new_udf.value = thisUdfValue.FirstOrDefault(_ => _.id == udf.id).value;
                            }
                            else
                            {
                                new_udf.value = thisvv == "" ? null : thisvv;
                            }
                            list.Add(new_udf);
                        }
                        udfBLL.UpdateUdfValue(UDF_CATE.TASK, udfTaskPara, thisTask.id, list, user, OPER_LOG_OBJ_CATE.PROJECT_TASK);
                    }
                }
            }
            ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('保存成功!');window.close();self.opener.location.reload();</script>");
        }
コード例 #13
0
        /// <summary>
        /// 获取到页面参数
        /// </summary>
        /// <returns></returns>
        private ConfigurationItemAddDto GetPara()
        {
            // ConfigurationItemAddDto param = new ConfigurationItemAddDto() {};
            param        = AssembleModel <ConfigurationItemAddDto>();
            param.terms  = AssembleModel <Terms>();
            param.status = is_active_.Checked ? 1 : 0;
            if (iProduct_udfList != null && iProduct_udfList.Count > 0)                      // 首先判断是否有自定义信息
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in iProduct_udfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = Request.Form[udf.id.ToString()] == "" ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.udf = list;
            }

            if (isAdd)
            {
            }
            else
            {
                param.id = iProduct.id;
            }
            var ccMe        = !string.IsNullOrEmpty(Request.Form["ccMe"]) && Request.Form["ccMe"].Equals("on");
            var ccAccMan    = !string.IsNullOrEmpty(Request.Form["ccAccMan"]) && Request.Form["ccAccMan"].Equals("on");
            var sendFromSys = !string.IsNullOrEmpty(Request.Form["sendFromSys"]) && Request.Form["sendFromSys"].Equals("on");

            if ((ccMe || ccAccMan) && !string.IsNullOrEmpty(Request.Form["notify_temp"]))
            {
                param.notice = new Notice()
                {
                    ckToMe                = ccMe,
                    ckToAccMan            = ccAccMan,
                    ckSendBySys           = sendFromSys,
                    resources             = Request.Form["notifyResIds"],
                    contacts              = Request.Form["notifyConIds"],
                    notification_template = int.Parse(Request.Form["notify_temp"]),
                    subject               = Request.Form["notify_title"],
                    other_emails          = Request.Form["notify_others"],
                    additional_email_text = Request.Form["notify_description"],
                };
            }
            if (param.contract_id != null)
            {
                param.reviewByContract = 1;
            }
            else
            {
                if (!string.IsNullOrEmpty(Request.Form["ckByContract"]) && Request.Form["ckByContract"].Equals("on"))
                {
                    param.reviewByContract = 1;
                }
                else
                {
                    param.reviewByContract = 0;
                }
            }

            return(param);
        }
コード例 #14
0
        /// <summary>
        /// 保存并创建商机
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void save_create_opportunity_Click(object sender, EventArgs e)
        {
            var param = new CompanyAddDto();

            param.general            = AssembleModel <CompanyAddDto.General>();
            param.general.tax_exempt = taxExempt.Checked;
            param.contact            = AssembleModel <CompanyAddDto.Contact>();
            param.location           = AssembleModel <CompanyAddDto.Location>();
            param.note = AssembleModel <CompanyAddDto.Note>();
            param.site = AssembleModel <CompanyAddDto.Site>();
            param.todo = AssembleModel <CompanyAddDto.Todo>();
            // var param = AssembleModel<CompanyAddDto>();
            if (company_udfList != null && company_udfList.Count > 0)                      // 首先判断是否有自定义信息
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in company_udfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = Request.Form[udf.id.ToString()] == "" ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.general.udf = list;
            }

            if (contact_udfList != null && contact_udfList.Count > 0)
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in contact_udfList)
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = Request.Form[udf.id.ToString()] == "" ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.contact.udf = list;
            }

            if (site_udfList != null && site_udfList.Count > 0)
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in site_udfList)
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = Request.Form[udf.id.ToString()] == "" ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.site.udf = list;
            }
            var id     = "";
            var result = new CompanyBLL().Insert(param, GetLoginUserId(), out id);

            if (result != ERROR_CODE.SUCCESS)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "校验名字", "<script>document.getElementById('isCheckCompanyName').value = 'yes';</script>");
            }
            if (result == ERROR_CODE.PARAMS_ERROR)   // 必填参数丢失,重写
            {
                ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('必填参数丢失,请重新填写');</script>");
            }
            else if (result == ERROR_CODE.CRM_ACCOUNT_NAME_EXIST)      // 用户名称已经存在,重新填写用户名称
            {
                ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('客户已经存在');</script>");
            }
            else if (result == ERROR_CODE.USER_NOT_FIND)               // 用户丢失
            {
                Response.Write("<script>alert('查询不到用户,请重新登陆');</script>");
                Response.Redirect("../Login.aspx");
            }
            else if (result == ERROR_CODE.MOBILE_PHONE_OCCUPY)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('电话名称重复');</script>");
            }
            else if (result == ERROR_CODE.SUCCESS)
            {
                if (!string.IsNullOrEmpty(CallBack))
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "执行事件", "<script>alert('添加客户成功!');window.opener." + CallBack + "('" + id + "');</script>");
                }
                else
                {
                    Response.Write("<script>alert('添加客户成功!');self.opener.location.reload();window.close();window.open('../Opportunity/OpportunityAddAndEdit.aspx?oppo_account_id=" + id + "','" + (int)EMT.DoneNOW.DTO.OpenWindow.OpportunityAdd + "','left= 200, top = 200, width = 960, height = 750', false);</script>");  //
                }
            }
        }
コード例 #15
0
ファイル: ProductAdd.aspx.cs プロジェクト: evelh/Done
        //处理数据
        #region 处理需要保存的数据
        private bool save_deal()
        {
            if (id > 0)
            {
                product = pbll.GetProduct(id);
            }
            //需要进行唯一性校验
            product.name = this.Product_Name.Text.ToString();
            string cate, code;

            //物料
            if (!string.IsNullOrEmpty(Request.Form["kkCallBackHidden"].ToString()))
            {
                code = Convert.ToString(Request.Form["kkCallBackHidden"]);
                code = code.TrimEnd(',');
                product.cost_code_id = Convert.ToInt32(code);
            }
            //产品种类
            if (Request.Form["accCallBackHidden"] != null && !string.IsNullOrEmpty(Request.Form["accCallBackHidden"].ToString()))
            {
                cate            = Convert.ToString(Request.Form["accCallBackHidden"]);
                cate            = cate.TrimEnd(',');
                product.cate_id = Convert.ToInt32(cate);
            }
            product.description = this.Product_Description.Text.ToString();
            if (!string.IsNullOrEmpty(this.Unit_Cost.Text.ToString()))
            {
                product.unit_cost = Convert.ToDecimal(this.Unit_Cost.Text.ToString());
            }
            if (!string.IsNullOrEmpty(this.Unit_Price.Text.ToString()))
            {
                product.unit_price = Convert.ToDecimal(this.Unit_Price.Text.ToString());
            }
            if (!string.IsNullOrEmpty(this.MSRP.Text.ToString()))
            {
                product.msrp = Convert.ToDecimal(this.MSRP.Text.ToString());
            }
            product.internal_id = this.Internal_Product_ID.Text.ToString();
            product.external_id = this.External_Product_ID.Text.ToString();
            product.link        = this.Product_Link.Text.ToString();
            if (this.Item_Type.SelectedValue.ToString() != "0")
            {
                product.installed_product_cate_id = Convert.ToInt32(this.Item_Type.SelectedValue.ToString());
            }
            if (this.Period_Type.SelectedValue.ToString() != "0")
            {
                product.period_type_id = Convert.ToInt32(this.Period_Type.SelectedValue.ToString());
            }
            if (this.Active.Checked)
            {
                product.is_active = 1;
            }
            if (this.Serialized.Checked)
            {
                product.is_serialized = 1;
            }
            if (this.does_not_require_procurement.Checked)
            {
                product.does_not_require_procurement = 1;
            }
            product.manu_name       = this.Manufacturer.Text.ToString();
            product.manu_product_no = this.Manufacturer_Product_Number.Text.ToString();
            product.sku             = this.Product_SKU.Text.ToString();
            string t = Request.Form["vendor_data"].ToString();

            t = t.Replace("[,", "[").Replace(",]", "]");
            var tt = new EMT.Tools.Serialize().DeserializeJson <VendorData>(t);

            if (product_udfList != null && product_udfList.Count > 0)                      // 首先判断是否有自定义信息
            {
                udfv_list = new List <UserDefinedFieldValue>();
                foreach (var udf in product_udfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = Request.Form[udf.id.ToString()] == null ? "" : Request.Form[udf.id.ToString()],
                    };
                    udfv_list.Add(new_udf);
                }
            }

            #endregion

            //更新
            if (id > 0)
            {
                var result = pbll.UpdateProductAndVendor(product, tt, udfv_list, GetLoginUserId());
                switch (result)
                {
                case ERROR_CODE.EXIST: Response.Write("<script>alert(\"已经存在该名称的产品,请修改后保存!\");</script>"); break; //存在相同名称产品

                case ERROR_CODE.ERROR: Response.Write("<script>alert(\"保存失败!\");</script>"); break;              //操作失败

                case ERROR_CODE.USER_NOT_FIND:
                    Response.Write("<script>alert('查询不到用户,请重新登陆');</script>");
                    Response.Redirect("../Login.aspx");; break;     //获取操作者信息失败

                case ERROR_CODE.SUCCESS: Response.Write("<script>alert(\"产品修改成功!\");</script>");
                    return(true);                                                                                                       //成功

                default: Response.Write("<script>alert('异常错误,返回上一级!');window.close();self.opener.location.reload();</script>");; break; //失败
                }
            }
            //新增
            else
            {
                var result = pbll.InsertProductAndVendor(product, tt, udfv_list, GetLoginUserId());
                switch (result)
                {
                case ERROR_CODE.EXIST: Response.Write("<script>alert(\"已经存在该名称的产品,请修改后保存!\");</script>"); break; //存在相同名称产品

                case ERROR_CODE.ERROR: Response.Write("<script>alert(\"保存失败!\");</script>"); break;              //操作失败

                case ERROR_CODE.USER_NOT_FIND:
                    Response.Write("<script>alert('查询不到用户,请重新登陆');</script>");
                    Response.Redirect("../Login.aspx");; break;                                                                         //获取操作者信息失败

                case ERROR_CODE.SUCCESS: Response.Write("<script>alert(\"产品新增成功!\");</script>"); return(true);                          //成功

                default: Response.Write("<script>alert('异常错误,返回上一级!');window.close();self.opener.location.reload();</script>");; break; //失败
                }
            }
            return(false);
        }
コード例 #16
0
ファイル: ContractAdd.aspx.cs プロジェクト: evelh/Done
        protected void Page_Load(object sender, EventArgs e)
        {
            udfList      = new UserDefinedFieldsBLL().GetUdf(DicEnum.UDF_CATE.CONTRACTS);
            resourceList = new DAL.sys_resource_dal().GetSourceList();
            roleList     = new DAL.sys_role_dal().GetList();
            long quoteId = 0;

            if (!string.IsNullOrEmpty(Request.QueryString["quoteId"]) && long.TryParse(Request.QueryString["quoteId"], out quoteId))
            {
                quote = new QuoteBLL().GetQuote(quoteId);
                if (quote != null)
                {
                    account = new CompanyBLL().GetCompany(quote.account_id);
                }
            }

            if (IsPostBack)
            {
                ContractAddDto dto = new ContractAddDto();
                dto.contract = AssembleModel <ctt_contract>();

                if (!string.IsNullOrEmpty(Request.Form["isSdtDefault"]) && Request.Form["isSdtDefault"].Equals("on"))
                {
                    dto.contract.is_sdt_default = 1;
                }

                if (!string.IsNullOrEmpty(Request.Form["needTimeSheet"]) && Request.Form["needTimeSheet"].Equals("on"))
                {
                    dto.contract.timeentry_need_begin_end = 1;
                }
                else
                {
                    dto.contract.timeentry_need_begin_end = 0;
                }

                if (dto.contract.type_id == (int)DicEnum.CONTRACT_TYPE.BLOCK_HOURS)
                {
                    if (!string.IsNullOrEmpty(Request.Form["enableOverage"]) && Request.Form["enableOverage"].Equals("on"))
                    {
                        dto.contract.enable_overage_billing_rate = 1;
                    }
                }

                if (dto.contract.type_id == (int)DicEnum.CONTRACT_TYPE.FIXED_PRICE)
                {
                    if (!string.IsNullOrEmpty(Request.Form["applyPayment"]) && Request.Form["applyPayment"].Equals("on"))
                    {
                        decimal price = 0;
                        if (decimal.TryParse(Request.Form["alreadyReceived"], out price) && price > 0)
                        {
                            dto.alreadyReceived = price;
                        }
                        if (decimal.TryParse(Request.Form["toBeInvoiced"], out price) && price > 0)
                        {
                            dto.toBeInvoiced = price;
                        }
                        long code = 0;
                        if (long.TryParse(Request.Form["defaultCostCode"], out code))
                        {
                            dto.defaultCostCode = code;
                        }
                    }
                }

                if (udfList != null && udfList.Count > 0)                      // 首先判断是否有自定义信息
                {
                    var list = new List <UserDefinedFieldValue>();
                    foreach (var udf in udfList)                            // 循环添加
                    {
                        var new_udf = new UserDefinedFieldValue()
                        {
                            id    = udf.id,
                            value = Request.Form[udf.id.ToString()] == "" ? null : Request.Form[udf.id.ToString()],
                        };
                        list.Add(new_udf);
                    }
                    dto.udf = list;
                }

                // 服务
                dto.serviceList = new List <ServiceInfoDto>();
                if (dto.contract.type_id == (int)DicEnum.CONTRACT_TYPE.SERVICE)
                {
                    if (!string.IsNullOrEmpty(Request.Form["AddServiceIds"]))   // 服务
                    {
                        string[] ids = Request.Form["AddServiceIds"].Split(',');
                        foreach (string id in ids)
                        {
                            ServiceInfoDto si = new ServiceInfoDto();
                            si.price     = decimal.Parse(Request.Form["price" + id]);
                            si.number    = decimal.Parse(Request.Form["num" + id]);
                            si.serviceId = long.Parse(id);
                            si.type      = 1;
                            dto.serviceList.Add(si);
                        }
                    }
                    if (!string.IsNullOrEmpty(Request.Form["AddSerBunIds"]))    // 服务包
                    {
                        string[] ids = Request.Form["AddSerBunIds"].Split(',');
                        foreach (string id in ids)
                        {
                            ServiceInfoDto si = new ServiceInfoDto();
                            si.price     = decimal.Parse(Request.Form["price" + id]);
                            si.number    = decimal.Parse(Request.Form["num" + id]);
                            si.serviceId = long.Parse(id);
                            si.type      = 2;
                            dto.serviceList.Add(si);
                        }
                    }
                }

                // 里程碑
                dto.milestone = new List <ctt_contract_milestone>();
                if (dto.contract.type_id == (int)DicEnum.CONTRACT_TYPE.FIXED_PRICE && (!string.IsNullOrEmpty(Request.Form["milestoneAddList"])))
                {
                    string[] ids = Request.Form["milestoneAddList"].Split(',');
                    foreach (string id in ids)
                    {
                        ctt_contract_milestone mil = new ctt_contract_milestone();
                        mil.name        = Request.Form["MilName" + id];
                        mil.description = Request.Form["MilDetail" + id];
                        decimal dollar = 0;
                        if (!decimal.TryParse(Request.Form["MilAmount" + id], out dollar))
                        {
                            dollar = 0;
                        }
                        mil.dollars      = dollar;
                        mil.due_date     = DateTime.Parse(Request.Form["MilDate" + id]);
                        mil.cost_code_id = long.Parse(Request.Form["MilCode" + id]);
                        mil.status_id    = int.Parse(Request.Form["isBill" + id]);
                        dto.milestone.Add(mil);
                    }
                }

                // 角色费率
                dto.rateList = new List <ContractRateDto>();
                if (dto.contract.type_id != (int)DicEnum.CONTRACT_TYPE.SERVICE &&
                    dto.contract.type_id != (int)DicEnum.CONTRACT_TYPE.PER_TICKET)
                {
                    foreach (var role in roleList)
                    {
                        if (Request.Form["cbRoleRate" + role.id] != null && Request.Form["cbRoleRate" + role.id].Equals("on"))
                        {
                            var roleRate = new ContractRateDto();
                            roleRate.roleId = role.id;
                            roleRate.rate   = decimal.Parse(Request.Form["txtRoleRate" + role.id]);
                            dto.rateList.Add(roleRate);
                        }
                    }
                }

                // 邮件通知
                dto.notifyUserIds = new List <long>();
                foreach (var res in resourceList)
                {
                    if (Request.Form["notify" + res.id] != null && Request.Form["notify" + res.id].Equals("on"))
                    {
                        dto.notifyUserIds.Add(res.id);
                    }
                }
                if (dto.notifyUserIds.Count != 0)
                {
                    dto.notifySubject = Request.Form["notifyTitle"];
                    dto.notifyMessage = Request.Form["notifyContent"];
                    dto.notifyEmails  = Request.Form["notifyEmails"];
                }

                contractId   = bll.Insert(dto, GetLoginUserId());
                contractType = dto.contract.type_id;
                isFinish     = 1;
            }
            else
            {
                if (!int.TryParse(Request.QueryString["type"], out contractType))
                {
                    contractType = 0;
                }
                isFinish = 0;
            }

            Dictionary <string, object> dics = bll.GetField();

            contractCate = dics["cate"] as List <DictionaryEntryDto>;
            periodType   = dics["periodType"] as List <DictionaryEntryDto>;
            periodType.Remove(periodType.Find(pt => pt.val.Equals(((int)DicEnum.QUOTE_ITEM_PERIOD_TYPE.ONE_TIME).ToString())));
            billPostType = dics["billPostType"] as List <DictionaryEntryDto>;
            slaList      = bll.GetSLAList();

            contractTypeName = bll.GetContractTypeName(contractType);
        }
コード例 #17
0
        /// <summary>
        /// 获取相应参数
        /// </summary>
        private TaskSaveDto GetParam()
        {
            TaskSaveDto param = AssembleModel <TaskSaveDto>();

            param.resDepIds  = Request.Form["resDepList"]; // 员工角色 Id
            param.contactIds = Request.Form["conIds"];     // 联系人 ID
            var preTaskIds = Request.Form["preIds"];       // 前驱任务IDs

            if (!string.IsNullOrEmpty(preTaskIds))
            {
                var preTasArr = preTaskIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                Dictionary <long, int> predic = new Dictionary <long, int>();
                foreach (var preTasId in preTasArr)
                {
                    var layDays = Request.Form[preTasId + "_lagDays"];
                    if ((!string.IsNullOrEmpty(layDays)) && (!string.IsNullOrWhiteSpace(layDays)))
                    {
                        predic.Add(long.Parse(preTasId), int.Parse(layDays));
                    }
                }
                param.predic = predic;
            }
            var pageTask = AssembleModel <sdk_task>();

            pageTask.cost_code_id = pageTask.cost_code_id == 0 ? null : pageTask.cost_code_id;
            if (pageTask.parent_id == null)
            {
                var subList = new sdk_task_dal().GetAllProTask(thisProject.id);
                if (subList != null && subList.Count >= 99)
                {
                    if (isAdd)
                    {
                        Response.Write("<script>alert('项目下任务过多,不能添加!');window.close();</script>");
                        return(null);
                    }
                    else
                    {
                        if (!subList.Any(_ => _.id == thisTask.id))
                        {
                            Response.Write("<script>alert('项目下任务过多,不能保存!');window.close();</script>");
                            return(null);
                        }
                    }
                }
            }
            //if (parTask != null)
            //{
            //    pageTask.parent_id = parTask.id;
            //}
            if (type_id != (int)DicEnum.TASK_TYPE.PROJECT_PHASE)
            {
                pageTask.is_visible_in_client_portal          = (sbyte)(DisplayInCapNone.Checked ? 1 : 0);
                pageTask.can_client_portal_user_complete_task = (sbyte)(DisplayInCapYes.Checked ? 1 : 0);
                if (TaskTypeFixedWork.Checked)
                {
                    pageTask.estimated_type_id = (int)DicEnum.TIME_ENTRY_METHOD_TYPE.FIXWORK;
                }
                else if (TaskTypeFixedDuration.Checked)
                {
                    pageTask.estimated_type_id = (int)DicEnum.TIME_ENTRY_METHOD_TYPE.FIXDURATION;
                }
            }
            else
            {
                if (rateList != null && rateList.Count > 0)
                {
                    Dictionary <long, decimal> rateDic = new Dictionary <long, decimal>();
                    foreach (var rate in rateList)
                    {
                        var hours = Request.Form[rate.id + "_esHours"];
                        if (!string.IsNullOrEmpty(hours) && !string.IsNullOrWhiteSpace(hours))
                        {
                            rateDic.Add(rate.id, decimal.Parse(hours));
                        }
                    }
                    param.rateDic = rateDic;
                }
                pageTask.status_id = (int)DicEnum.TICKET_STATUS.NEW;
            }

            var startString        = Request.Form["estimated_beginTime"];
            var estimated_start    = Request.Form["estimated_start"];
            var estimated_end_time = Request.Form["estimated_end_time_"];

            if (!string.IsNullOrEmpty(startString) && !string.IsNullOrEmpty(estimated_end_time) && !string.IsNullOrEmpty(estimated_start))
            {
                pageTask.estimated_end_time   = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(estimated_end_time));
                pageTask.estimated_begin_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(startString + " " + estimated_start));
                // if (type_id == (int)DicEnum.TASK_TYPE.PROJECT_PHASE) // d
                //{
                TimeSpan ts1 = new TimeSpan((DateTime.Parse(startString)).Ticks);
                TimeSpan ts2 = new TimeSpan(Tools.Date.DateHelper.ConvertStringToDateTime((long)pageTask.estimated_end_time).Ticks);
                TimeSpan ts  = ts1.Subtract(ts2).Duration();

                //pageTask.estimated_duration = ts.Days + 1;
                // }
                // RetrunMaxTime 计算结束时间
                if (type_id != (int)DicEnum.TASK_TYPE.PROJECT_PHASE)
                {
                    if (thisProject.use_resource_daily_hours == 1)  // 用工作量为固定工作任务计算时间
                    {
                        decimal teaNum       = 0;
                        var     dayWorkHours = (decimal)thisProject.resource_daily_hours;
                        if (!string.IsNullOrEmpty(param.resDepIds))
                        {
                            teaNum += param.resDepIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Count();
                        }
                        if (pageTask.owner_resource_id != null)
                        {
                            teaNum += 1;
                        }
                        teaNum = teaNum == 0 ? 1 : teaNum;
                        var workHours = pageTask.estimated_hours;
                        pageTask.estimated_duration = (int)Math.Ceiling(((workHours / teaNum) / dayWorkHours));
                        pageTask.estimated_end_time = Tools.Date.DateHelper.ToUniversalTimeStamp(new TaskBLL().RetrunMaxTime(thisProject.id, DateTime.Parse(startString), (int)pageTask.estimated_duration));
                    }
                    else
                    {
                    }
                }
                else
                {
                    pageTask.estimated_duration = new TaskBLL().GetDayByTime((long)pageTask.estimated_begin_time, (long)pageTask.estimated_end_time, (long)thisProject.id);
                }
            }
            if (isAdd)
            {
                param.task            = pageTask;
                param.task.type_id    = type_id;
                param.task.project_id = thisProject.id;
                param.task.account_id = thisProject.account_id;
            }
            else
            {
                // thisTask
                thisTask.title       = pageTask.title;
                thisTask.parent_id   = pageTask.parent_id;
                thisTask.description = pageTask.description;
                if (thisTask.estimated_begin_time != pageTask.estimated_begin_time)
                {
                    thisTask.estimated_begin_time       = pageTask.estimated_begin_time;
                    thisTask.start_no_earlier_than_date = Tools.Date.DateHelper.ConvertStringToDateTime((long)thisTask.estimated_begin_time);
                }
                if (thisTask.estimated_end_time != pageTask.estimated_end_time)
                {
                    thisTask.estimated_end_time = pageTask.estimated_end_time;
                    thisTask.estimated_duration = new TaskBLL().GetDayByTime((long)thisTask.estimated_begin_time, (long)pageTask.estimated_end_time, (long)thisTask.project_id);
                }
                else
                {
                    if (thisTask.estimated_duration != pageTask.estimated_duration)
                    {
                        thisTask.estimated_end_time = Tools.Date.DateHelper.ToUniversalTimeStamp(new TaskBLL().RetrunMaxTime(thisProject.id, DateTime.Parse(startString), (int)pageTask.estimated_duration));
                        thisTask.estimated_duration = pageTask.estimated_duration;
                    }
                    else
                    {
                        thisTask.estimated_end_time = pageTask.estimated_end_time;
                        thisTask.estimated_duration = pageTask.estimated_duration;
                    }
                }



                if (!isPhase)
                {
                    thisTask.status_id         = pageTask.status_id;
                    thisTask.priority          = pageTask.priority;
                    thisTask.purchase_order_no = pageTask.purchase_order_no;
                    thisTask.can_client_portal_user_complete_task = pageTask.can_client_portal_user_complete_task;
                    thisTask.is_visible_in_client_portal          = pageTask.is_visible_in_client_portal;
                    thisTask.is_project_issue        = pageTask.is_project_issue;
                    thisTask.issue_report_contact_id = pageTask.issue_report_contact_id;
                    thisTask.estimated_type_id       = pageTask.estimated_type_id;
                    thisTask.estimated_hours         = pageTask.estimated_hours;
                    //      thisTask.estimated_duration = pageTask.estimated_duration;
                    thisTask.hours_per_resource = pageTask.hours_per_resource;
                    if (thisTask.start_no_earlier_than_date == null)
                    {
                        thisTask.start_no_earlier_than_date = pageTask.start_no_earlier_than_date;
                    }

                    thisTask.department_id     = pageTask.department_id;
                    thisTask.cost_code_id      = pageTask.cost_code_id;
                    thisTask.owner_resource_id = pageTask.owner_resource_id;
                    thisTask.template_id       = pageTask.template_id;
                    var IsEditEsTime = this.IsEditEsTime.Value; //Request.Form["IsEditEsTime"];
                    var thisVt       = new v_task_all_dal().FindById(thisTask.id);
                    if (!string.IsNullOrEmpty(IsEditEsTime))
                    {
                        if (IsEditEsTime == "1")
                        {
                            thisTask.projected_variance = (thisVt.worked_hours == null ? 0 : (decimal)thisVt.worked_hours) - (thisTask.estimated_hours + (thisVt.change_Order_Hours == null ? 0 : (decimal)thisVt.change_Order_Hours)) + (thisVt.remain_hours == null ? 0 : (decimal)thisVt.remain_hours);
                        }
                        else if (IsEditEsTime == "0")
                        {
                            thisTask.projected_variance = (thisVt.worked_hours == null ? 0 : (decimal)thisVt.worked_hours) - (thisTask.estimated_hours + (thisVt.change_Order_Hours == null ? 0 : (decimal)thisVt.change_Order_Hours));
                        }
                    }
                    else
                    {
                    }
                }
                param.task = thisTask;
            }

            if (task_udfList != null && task_udfList.Count > 0)
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in task_udfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = string.IsNullOrEmpty(Request.Form[udf.id.ToString()]) ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                param.udf = list;
            }



            return(param);
        }