public with sharing class CampaignMeetingcostController { private String camId; public Boolean status { get; set; } public Boolean canseePage { get; set; } public Campaign camMain { get; set; } public Campaign_Cost__c CampaignCostMain { get; set; } public String errorMessage { get; set; } public Boolean errorflg { get; set; } public CampaignMeetingcostController() { camId = ApexPages.currentPage().getParameters().get('id'); } //SWAG-BBG8AK 添加批准列表 start public CampaignMeetingcostController(ApexPages.StandardController controller) { this(); } //SWAG-BBG8AK 添加批准列表 end public void init() { canseePage = true; errorMessage = ''; errorflg = false; status = false; String userid = UserInfo.getUserId(); camMain = [select id, CostStatus__c , OwnerId, Meeting_Type__c, cost_Create_Date__c, JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c, ZongjianApprovalManager_CancleShen__c, Sponsor_Ones_Post__c from Campaign WHERE id = : camId]; List memberG = new List(); if (camMain != null && camMain.Sponsor_Ones_Post__c == '1.华北') { memberG = [SELECT Id FROM GroupMember WHERE Group.DeveloperName = 'X00_Meetingfee_Huabei' and UserorGroupId = :userid]; } List CampaignCostList = [SELECT id, OwnerId , totalMeetingCost__c , medicalInsititute__c, medicalInsitituteCost__c , nonMedicalInstitute__c, nonMedicalInstituteCost__c , standFittingCompany__c, StandFittingComCost__c , broadcastingCompany__c, broadcastingCompanyCost__c , OtherSponsorCost__c, animalExperienceCost__c , isStand__c, IsSatelliteMeeting__c, isTitle__c, IsDocLOGO__c, IsShowingEquipment__c , IsAnimalExperience__c, isOther__c , standArea__c, AnimalExperienceNumber__c , satelliteMeetingHours__c, showingEquipmentNumber__c , titleArea__c, otherWords__c , DocLOGOcontent__c , paymentFromCompany__c, paymentFromCooperator__c, livingCost__c , tansportCost__c, travelByAir__c, travelByTrain__c, travelByCar__c , banquetCost__c, lunchCost__c, teaBreakCost__c, broadcastingCost__c , publicityCost__c, sundriesCost__c , sundryContent__c, hostCompany__c , hostCompanyCostAndTax__c , Campaign__r.CostStatus__c, Campaign__r.cost_Create_Date__c // SWAG-BBG8AK 费用状态和会议费用创建日 FROM Campaign_Cost__c WHERE Campaign__c = : camId]; if (camMain == null || (memberG.size() == 0 && camMain.OwnerId != userid && userid != camMain.JingliApprovalManager__c && userid != camMain.BuchangApprovalManager__c && userid != camMain.ZongjianApprovalManager__c && userid != camMain.ZongjianApprovalManager_CancleShen__c && UserInfo.getProfileId() != system.label.ProfileId_SystemAdmin)) { errorMessage = '您无权查看会议费用情况。'; errorflg = true; canseePage = false; return; } if (CampaignCostList.size() > 0) { CampaignCostMain = CampaignCostList[0]; } else { CampaignCostMain = new Campaign_Cost__c(); CampaignCostMain.Campaign__c = camId; CampaignCostMain.OwnerId = camMain.OwnerId; } //system.debug('CampaignCostMain:' + CampaignCostMain.Campaign__r.CostStatus__c); if (camMain != null && ( (camMain.OwnerId == userid && (camMain.CostStatus__c == null || camMain.CostStatus__c == '费用已填写') ) || UserInfo.getProfileId() == system.label.ProfileId_SystemAdmin )) { status = true; } } public void dummy() { } // 判断是否显示赞助会 public boolean getshowSponsor() { boolean temp = false; if (camMain != null && camMain.Meeting_Type__c != null && camMain.Meeting_Type__c.equals('赞助会')) { temp = true; } return temp; } // 判断是否显示自办会//共同主办会 public boolean getshowHost() { boolean temp = false; if (camMain != null && camMain.Meeting_Type__c != null && ( camMain.Meeting_Type__c.equals('主办会') || camMain.Meeting_Type__c.equals('共同主办会') || CampaignCostMain.IsSatelliteMeeting__c == true)) { temp = true; } return temp; } @TestVisible private Campaign_Cost__c setupSaveCampaign() { Campaign_Cost__c camCostUP = new Campaign_Cost__c(); camCostUP.id = CampaignCostMain.id; camCostUP.JingliApprovalManager__c = camMain.JingliApprovalManager__c; camCostUP.BuchangApprovalManager__c = camMain.BuchangApprovalManager__c; camCostUP.ZongjianApprovalManager__c = camMain.ZongjianApprovalManager__c; camCostUP.Campaign__c = camMain.id; camCostUP.OwnerId = camMain.OwnerId; if (getshowSponsor()) { camCostUP.medicalInsititute__c = CampaignCostMain.medicalInsititute__c; camCostUP.medicalInsitituteCost__c = CampaignCostMain.medicalInsitituteCost__c; camCostUP.nonMedicalInstitute__c = CampaignCostMain.nonMedicalInstitute__c; camCostUP.nonMedicalInstituteCost__c = CampaignCostMain.nonMedicalInstituteCost__c; camCostUP.standFittingCompany__c = CampaignCostMain.standFittingCompany__c; camCostUP.StandFittingComCost__c = CampaignCostMain.StandFittingComCost__c; camCostUP.broadcastingCompany__c = CampaignCostMain.broadcastingCompany__c; camCostUP.broadcastingCompanyCost__c = CampaignCostMain.broadcastingCompanyCost__c; camCostUP.OtherSponsorCost__c = CampaignCostMain.OtherSponsorCost__c; camCostUP.animalExperienceCost__c = CampaignCostMain.animalExperienceCost__c; } else { camCostUP.medicalInsititute__c = null; camCostUP.medicalInsitituteCost__c = null; camCostUP.nonMedicalInstitute__c = null; camCostUP.nonMedicalInstituteCost__c = null; camCostUP.standFittingCompany__c = null; camCostUP.StandFittingComCost__c = null; camCostUP.broadcastingCompany__c = null; camCostUP.broadcastingCompanyCost__c = null; camCostUP.OtherSponsorCost__c = null; camCostUP.animalExperienceCost__c = null; } camCostUP.isStand__c = CampaignCostMain.isStand__c; camCostUP.IsSatelliteMeeting__c = CampaignCostMain.IsSatelliteMeeting__c; camCostUP.isTitle__c = CampaignCostMain.isTitle__c; camCostUP.IsDocLOGO__c = CampaignCostMain.IsDocLOGO__c; camCostUP.IsShowingEquipment__c = CampaignCostMain.IsShowingEquipment__c; camCostUP.IsAnimalExperience__c = CampaignCostMain.IsAnimalExperience__c; camCostUP.isOther__c = CampaignCostMain.isOther__c; if (camCostUP.isStand__c == true) { camCostUP.standArea__c = CampaignCostMain.standArea__c; } else { camCostUP.standArea__c = null; } if (camCostUP.IsAnimalExperience__c == true) { camCostUP.AnimalExperienceNumber__c = CampaignCostMain.AnimalExperienceNumber__c; } else { camCostUP.AnimalExperienceNumber__c = null; } if (camCostUP.IsSatelliteMeeting__c == true) { camCostUP.satelliteMeetingHours__c = CampaignCostMain.satelliteMeetingHours__c; } else { camCostUP.satelliteMeetingHours__c = null; } if (camCostUP.IsShowingEquipment__c == true) { camCostUP.showingEquipmentNumber__c = CampaignCostMain.showingEquipmentNumber__c; } else { camCostUP.showingEquipmentNumber__c = null; } if (camCostUP.isTitle__c == true) { camCostUP.titleArea__c = CampaignCostMain.titleArea__c; } else { camCostUP.titleArea__c = null; } if (camCostUP.isOther__c == true) { camCostUP.otherWords__c = CampaignCostMain.otherWords__c; } else { camCostUP.otherWords__c = null; } if (camCostUP.IsDocLOGO__c == true) { camCostUP.DocLOGOcontent__c = CampaignCostMain.DocLOGOcontent__c; } else { camCostUP.DocLOGOcontent__c = null; } if (getshowHost()) { camCostUP.paymentFromCompany__c = CampaignCostMain.paymentFromCompany__c; camCostUP.paymentFromCooperator__c = CampaignCostMain.paymentFromCooperator__c; camCostUP.livingCost__c = CampaignCostMain.livingCost__c; camCostUP.tansportCost__c = CampaignCostMain.tansportCost__c; camCostUP.travelByAir__c = CampaignCostMain.travelByAir__c; camCostUP.travelByTrain__c = CampaignCostMain.travelByTrain__c; camCostUP.travelByCar__c = CampaignCostMain.travelByCar__c; camCostUP.banquetCost__c = CampaignCostMain.banquetCost__c; camCostUP.lunchCost__c = CampaignCostMain.lunchCost__c; camCostUP.teaBreakCost__c = CampaignCostMain.teaBreakCost__c; camCostUP.broadcastingCost__c = CampaignCostMain.broadcastingCost__c; camCostUP.publicityCost__c = CampaignCostMain.publicityCost__c; camCostUP.sundriesCost__c = CampaignCostMain.sundriesCost__c; camCostUP.sundryContent__c = CampaignCostMain.sundryContent__c; camCostUP.hostCompany__c = CampaignCostMain.hostCompany__c; camCostUP.hostCompanyCostAndTax__c = CampaignCostMain.hostCompanyCostAndTax__c; } else { camCostUP.paymentFromCompany__c = null; camCostUP.paymentFromCooperator__c = null; camCostUP.livingCost__c = null; camCostUP.tansportCost__c = null; camCostUP.travelByAir__c = false; camCostUP.travelByTrain__c = false; camCostUP.travelByCar__c = false; camCostUP.banquetCost__c = null; camCostUP.lunchCost__c = null; camCostUP.teaBreakCost__c = null; camCostUP.broadcastingCost__c = null; camCostUP.publicityCost__c = null; camCostUP.sundriesCost__c = null; camCostUP.sundryContent__c = null; camCostUP.hostCompany__c = null; camCostUP.hostCompanyCostAndTax__c = null; } if (camMain.cost_Create_Date__c == null) { camMain.cost_Create_Date__c = date.today(); camMain.CostStatus__c = '费用已填写'; } return camCostUP; } private Decimal NullZero(Decimal d ) { return d == null ? 0 : d; } //SWAG-BBG8AK 提交待审批后台逻辑 start public void submit() { Campaign_Cost__c camCostUP = setupSaveCampaign(); // SWAG-C3RBA8 20210608S Start Decimal costTotal = NullZero(camCostUP.medicalInsitituteCost__c) + NullZero(camCostUP.nonMedicalInstituteCost__c) + NullZero(camCostUP.StandFittingComCost__c) + NullZero(camCostUP.broadcastingCompanyCost__c ) + NullZero(camCostUP.animalExperienceCost__c) + NullZero(camCostUP.OtherSponsorCost__c) + NullZero(camCostUP.paymentFromCompany__c) + NullZero(camCostUP.paymentFromCooperator__c) + NullZero(camCostUP.livingCost__c) + NullZero(camCostUP.tansportCost__c) + NullZero(camCostUP.banquetCost__c) + NullZero(camCostUP.lunchCost__c ) + NullZero(camCostUP.teaBreakCost__c) + NullZero(camCostUP.broadcastingCost__c ) + NullZero(camCostUP.publicityCost__c) + NullZero(camCostUP.sundriesCost__c) + NullZero(camCostUP.hostCompanyCostAndTax__c); if (costTotal == 0) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '金额为0,不能提交审批。')); return; } // SWAG-C3RBA8 20210608S End Savepoint sp = Database.setSavepoint(); try { status = false; upsert camCostUP; CampaignCostMain = camCostUP; camMain.CostStatus__c = '费用已提交'; camMain.Campaign_Cost__c = camCostUP.id; update camMain; ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '已提交审批。')); } catch (Exception e) { Database.rollback(sp); ApexPages.addMessages(e); } } //SWAG-BBG8AK 提交待审批后台逻辑 end //保存画面数据 public void save() { errorMessage = ''; Campaign_Cost__c camCostUP = setupSaveCampaign(); system.debug('camMain:' + camMain); try { upsert camCostUP; CampaignCostMain = camCostUP; camMain.Campaign_Cost__c = camCostUP.id; update camMain; ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, ' 保存完了。')); } catch (Exception e) { ApexPages.addMessages(e); } } }