/// <summary>
        /// 打印
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ViewResult Print(string id)
        {
            Item result = PrManageBll.GetPrManageObjById(inn, id);
            //拆解数据
            PrManageModel model = new PrManageModel();

            model.id                   = result.getProperty("id");
            model.b_PrRecordNo         = result.getProperty("b_prrecordno");
            model.b_PrType             = result.getProperty("b_prtype");
            model.b_BusinessDepartment = result.getProperty("b_businessdepartment");
            model.b_Budget             = decimal.Parse(result.getProperty("b_budget"));
            model.b_ApplicantId        = result.getProperty("b_applicantid");
            model.b_Applicant          = result.getProperty("b_applicant");
            model.b_RaisedDate         = DateTime.Parse(result.getProperty("b_raiseddate")).ToString("yyyy-MM-dd");
            model.b_EmailAddress       = result.getProperty("b_emailaddress");
            model.b_PhoneNo            = result.getProperty("b_phoneno");
            model.b_ProjectName        = result.getProperty("b_projectname");
            model.b_BudgetCode         = result.getProperty("b_budgetcode");
            model.b_ProjectLeader      = result.getProperty("b_projectleader");
            model.b_ProjectManager     = result.getProperty("b_projectmanager");
            model.b_ProjectDirector    = result.getProperty("b_projectdirector");
            model.b_BudgetStatus       = result.getProperty("b_budgetstatus");
            model.b_BuyerId            = result.getProperty("b_buyerid");
            model.b_Buyer              = result.getProperty("b_buyer");
            model.b_UrgentPurchase     = result.getProperty("b_urgentpurchase") == "0" ? false : true;
            model.b_RepetitivePurchase = result.getProperty("b_repetitivepurchase") == "0" ? false : true;
            model.b_AuthorizedPurchase = result.getProperty("b_authorizedpurchase") == "0" ? false : true;
            //model.b_SourcedSupplier = result.getProperty("b_sourcedsupplier");
            //model.b_ContractPrice = result.getProperty("b_contractprice");
            //model.b_PoNo = result.getProperty("b_pono");
            //model.b_ContractProperty = result.getProperty("b_contractproperty");
            model.b_PurchaseContent  = result.getProperty("b_purchasecontent");
            model.b_ContractParty    = result.getProperty("b_contractparty");
            model.b_ApplicantAddress = result.getProperty("b_applicantaddress");
            model.b_IsSingleSupplier = result.getProperty("b_issinglesupplier") == "0" ? false : true;
            model.b_ContractType     = result.getProperty("b_contracttype");
            model.b_DeptManager      = result.getProperty("b_deptmanager");
            model.b_DeptDirector     = result.getProperty("b_deptdirector");
            model.b_CostCenter       = result.getProperty("b_costcenter");
            model.b_PurchasingReason = result.getProperty("b_purchasingreason");
            model.b_AdditionalBudget = result.getProperty("b_additionalbudget");
            model.b_DeptVP           = result.getProperty("b_deptvp");
            model.UserName           = Userinfo.UserName;
            model.status             = Common.GetItemStatus(id);
            Item Relation = result.getRelationships("b_RequestInfo");

            if (Relation.getItemCount() > 0)
            {
                model.PrManageItems = new List <PrManageItem>();
                for (int i = 0; i < Relation.getItemCount(); i++)
                {
                    Item         ItemObJ   = Relation.getItemByIndex(i).getRelatedItem();
                    PrManageItem itemModel = new PrManageItem();
                    itemModel.id                      = ItemObJ.getProperty("id");
                    itemModel.b_No                    = ItemObJ.getProperty("b_no");
                    itemModel.b_RequestList           = ItemObJ.getProperty("b_requestlist");
                    itemModel.b_SpecificationQuantity = ItemObJ.getProperty("b_specificationquantity");
                    itemModel.b_ProjectNo             = ItemObJ.getProperty("b_projectno");
                    itemModel.b_TaskNo                = ItemObJ.getProperty("b_taskno");
                    itemModel.b_Qty                   = int.Parse(ItemObJ.getProperty("b_qty"));
                    itemModel.b_Unit                  = ItemObJ.getProperty("b_unit");
                    model.PrManageItems.Add(itemModel);
                }
            }
            List <string> listRoleName = IdentityDA.GetIdentityByUserName(Userinfo.UserName);

            model.IsPurchasingAuth = false;

            if (model.UserName == model.b_Buyer || listRoleName.Contains("采购员") || listRoleName.Contains("采购部接收PR") || listRoleName.Contains("PRReader") || Userinfo.LoginName == "admin")
            {
                model.IsPurchasingAuth = true;
                //询价信息
                Item quotationRelation = result.getRelationships("b_QuotationItem");
                if (quotationRelation.getItemCount() > 0)
                {
                    model.PrQuotationItems = new List <PrQuotationItem>();
                    for (int i = 0; i < quotationRelation.getItemCount(); i++)
                    {
                        Item            itemObj   = quotationRelation.getItemByIndex(i).getRelatedItem();
                        PrQuotationItem itemModel = new PrQuotationItem();
                        itemModel.id          = itemObj.getProperty("id");
                        itemModel.b_Supplier  = itemObj.getProperty("b_supplier");
                        itemModel.b_Quotation = itemObj.getProperty("b_quotation");
                        itemModel.b_Remarks   = itemObj.getProperty("b_remarks");
                        model.PrQuotationItems.Add(itemModel);
                    }
                }

                //获取重复信息
                Item repeatedPurchasing = result.getRelationships("b_RepeatedPurchasing");
                if (repeatedPurchasing.getItemCount() > 0)
                {
                    model.PrRepeateItems = new List <PrRepeateItem>();
                    for (int i = 0; i < repeatedPurchasing.getItemCount(); i++)
                    {
                        Item          itemObj   = repeatedPurchasing.getItemByIndex(i).getRelatedItem();
                        PrRepeateItem itemModel = new PrRepeateItem();
                        itemModel.id                 = itemObj.getProperty("id");
                        itemModel.b_PrRecordNo       = itemObj.getProperty("b_prrecordno");
                        itemModel.b_PreviousSupplier = itemObj.getProperty("b_previoussupplier");
                        itemModel.b_ContractNo       = itemObj.getProperty("b_contractno");
                        //itemModel.b_ContractPrice = itemObj.getProperty("b_contractprice");
                        itemModel.b_PreviousBuyer = itemObj.getProperty("b_previousbuyer");
                        model.PrRepeateItems.Add(itemModel);
                    }
                }

                //获取挑选的供应商
                Item b_ChoiceSuppliers = result.getRelationships("b_ChoiceSuppliers");
                if (b_ChoiceSuppliers.getItemCount() > 0)
                {
                    model.PrChoiceSupplierItems = new List <PrChoiceSupplierItem>();
                    for (int i = 0; i < b_ChoiceSuppliers.getItemCount(); i++)
                    {
                        Item itemObj = b_ChoiceSuppliers.getItemByIndex(i).getRelatedItem();
                        PrChoiceSupplierItem itemModel = new PrChoiceSupplierItem();
                        itemModel.id                 = itemObj.getProperty("id");
                        itemModel.b_Supplier         = itemObj.getProperty("b_supplier");
                        itemModel.b_ContractPrice    = itemObj.getProperty("b_contractprice");
                        itemModel.b_PoNo             = itemObj.getProperty("b_pono");
                        itemModel.b_ContractProperty = itemObj.getProperty("b_contractproperty");
                        itemModel.b_PaymentClause    = itemObj.getProperty("b_paymentclause");
                        model.PrChoiceSupplierItems.Add(itemModel);
                    }
                }
            }
            model.HistoryList = GetPrManageHistoryList(model.id);
            foreach (var item in model.HistoryList)
            {
                item.Created_on = item.Create_onStr.GetValueOrDefault().ToString("yyyy-MM-dd HH:mm:ss");
                item.ItemStatus = Common.GetChineseValueByParam(item.ItemStatus, "PrManageWorkFlow", "WorkFlow", Userinfo.language);
                item.OperateStr = Common.GetChineseValueByParam(item.OperateStr, "PrManageWorkFlow", "WorkFlow", Userinfo.language);
            }
            return(View("~/Views/PrManage/PrintPrManage.cshtml", model));
        }
        /// <summary>
        /// 完成任务
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public JsonResult CompleteActivity(CompleteActivityModel model)
        {
            var retModel = new JsonReturnModel();

            try
            {
                WORKFLOW_PROCESS_PATH path = new WORKFLOW_PROCESS_PATH();
                Item itemPrManage          = inn.newItem("B_PRMANAGE", "get");
                itemPrManage.setAttribute("id", model.itemId);
                itemPrManage = itemPrManage.apply();
                string prRecordNo           = itemPrManage.getProperty("b_prrecordno");
                string b_BusinessDepartment = itemPrManage.getProperty("b_businessdepartment");
                string b_Applicant          = itemPrManage.getProperty("b_applicant");

                if (string.IsNullOrEmpty(model.comments))
                {
                    retModel.AddError("errorMessage", @OABordrinCommon.Common.GetLanguageValueByParam("退回必须填写备注!", "ERCommon", "ERItemType", ViewBag.language));
                    return(Json(retModel, JsonRequestBehavior.AllowGet));
                }

                //获取当前退回人员权重
                var ActivityAssignmentItem = ActivityAssignmentDA.GetActivityAssignmentById(inn, model.activityAssignmentId);
                if (!ActivityAssignmentItem.isError() && ActivityAssignmentItem.getItemCount() > 0)
                {
                    int voting_weight = int.Parse(ActivityAssignmentItem.getItemByIndex(0).getProperty("voting_weight"));
                    //修改权重
                    if (voting_weight < 100)
                    {
                        //获取Admin的Aras 连接
                        var adminInn = WorkFlowBll.GetAdminInnovator();
                        if (adminInn != null)
                        {
                            //获取Admin 对当前任务权限数据
                            Item activityItem = ActivityDA.GetActivityByItemId(adminInn, model.itemId, "Administrators", "B_PrManage");
                            if (!activityItem.isError())
                            {
                                string activityId           = activityItem.getProperty("activityid");
                                string activityAssignmentId = activityItem.getProperty("activityassignmentid");
                                ActivityDA.CompleteActivity(adminInn, activityId, activityAssignmentId, model.pathId, "", "", Userinfo.UserName + "对单据进行了退回操作! 备注:" + model.comments);
                            }
                        }
                    }
                    else
                    {
                        string result = ActivityDA.CompleteActivity(inn, model.activityId, model.activityAssignmentId, model.pathId, "", "", model.comments);
                        if (!string.IsNullOrEmpty(result))
                        {
                            retModel.AddError("errorMessage", result);
                            return(Json(retModel, JsonRequestBehavior.AllowGet));
                        }
                    }
                }
                path = WorkflowProcessPathDA.GetWorkflowProcessPathById(model.pathId);
                PrManageBll.SendEmailByOperation(inn, prRecordNo, b_Applicant, "", path, model.itemId);

                string b_remark = PrManageBll.AddRemark(inn, model.comments, model.itemId, Userinfo.UserName);
                var    itemRoot = inn.newItem("B_PRMANAGE", "edit");
                itemRoot.setAttribute("id", model.itemId);
                itemRoot.setProperty("b_remark", b_remark);
                itemRoot = itemRoot.apply();
            }
            catch (Exception ex)
            {
                retModel.AddError("errorMessage", ex.Message);
            }
            return(Json(retModel, JsonRequestBehavior.AllowGet));
        }