/// <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); }
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>"); } }
/// <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; }
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); }
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); }
/// <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); }
/// <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); }
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>"); } }
/// <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); }
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); }
/// <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); } } }
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>"); }
/// <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); }
/// <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>"); // } } }
//处理数据 #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); }
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); }
/// <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); }