| | |
| | | trigger AttachmentTrigger on Attachment (before insert,after insert,before delete,after delete) { |
| | | List<String> rentalIds = new List<String>(); |
| | | List<String> attIds = new List<String>(); |
| | | List<String> rentaldelIds = new List<String>(); |
| | | List<String> attdelIds = new List<String>(); |
| | | List<String> rentalApplyIds = new List<String>(); |
| | | List<String> accIds = new List<String>(); |
| | | // LHJ CHAN-BCLD4P 20190618 Start |
| | | List<String> specIds = new List<String>(); |
| | | List<String> specDelIds = new List<String>(); |
| | | // LHJ CHAN-BCLD4P 20190618 End |
| | | |
| | | // MZY SWAG-BXXBKA 2021-02-19 start |
| | | List<String> opdIds = new List<String>(); |
| | | Map<String,String> opdMap = new Map<String,String>(); |
| | | // MZY SWAG-BXXBKA 2021-02-19 end |
| | | |
| | | List<String> OpporFileIds = new List<String>(); |
| | | Map<String,String> OpporFileUndeleteMap = new Map<String,String>(); |
| | | List<String> DeleteReIds = new List<String>(); |
| | | Map<String,String> OppordeleteReUserMap = new Map<String,String>(); |
| | | Map<String,Datetime> OppordeleteReTimeMap = new Map<String,Datetime>(); |
| | | //CHAN-BCNCRB ---XHL----Start----- |
| | | List<String> opportunity_FileIds = new List<String>(); |
| | | |
| | | List<String> opportunityFileOrderIds = new List<String>(); |
| | | List<String> oFOrderIds = new List<String>(); |
| | | Map<String,Boolean> oFOrderIdMap = new Map<String,Boolean>(); |
| | | trigger AttachmentTrigger on Attachment (before insert, after insert, before update, before delete, after delete) { |
| | | if (Trigger.isBefore && Trigger.isInsert) { |
| | | for (Attachment att : Trigger.new) { |
| | | if(String.valueOf(att.ParentId).startsWith(System.Label.Oppor_sepKey)){ |
| | | opportunity_FileIds.add(att.ParentId); |
| | | } |
| | | |
| | | if(String.valueOf(att.ParentId).startsWith('a3Z')){ |
| | | opportunityFileOrderIds.add(att.ParentId); |
| | | } |
| | | } |
| | | AttachmentTriggerHandler.fileCheck(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AttachmentTriggerHandler.fileCheck5(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AttachmentTriggerHandler.UploadTradeCustomerManagerFile(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | } |
| | | //CHAN-BCNCRB ---XHL----End----- |
| | | if (Trigger.isAfter && Trigger.isInsert) { |
| | | for (Attachment att : Trigger.new) { |
| | | //if (att.Name.toUpperCase() == '合同书.PDF' && String.valueOf(att.ParentId).startsWith('a0t')) { |
| | | // 添付した契約書のファイル名は指定できない |
| | | if (String.valueOf(att.ParentId).startsWith('a2K')) { |
| | | rentalIds.add(att.ParentId); |
| | | attIds.add(att.Id); |
| | | } |
| | | if (String.valueOf(att.ParentId).startsWith('a0t')) { |
| | | rentalApplyIds.add(att.ParentId); |
| | | } |
| | | if (String.valueOf(att.ParentId).startsWith('001')) { |
| | | accIds.add(att.ParentId); |
| | | } |
| | | if(String.valueOf(att.ParentId).startsWith(System.Label.Oppor_sepKey)){ |
| | | OpporFileIds.add(att.ParentId); |
| | | } |
| | | // LHJ CHAN-BCLD4P 20190618 Start |
| | | if(String.valueOf(att.ParentId).startsWith(System.Label.OppSpecialApply)){ |
| | | specIds.add(att.ParentId); |
| | | } |
| | | // LHJ CHAN-BCLD4P 20190618 End |
| | | |
| | | // MZY SWAG-BXXBKA 2021-02-19 start |
| | | if(String.valueOf(att.ParentId).startsWith('a3E')){ |
| | | opdIds.add(att.ParentId); |
| | | opdMap.put(att.ParentId,att.Name); |
| | | } |
| | | // MZY SWAG-BXXBKA 2021-02-19 end |
| | | |
| | | if(String.valueOf(att.ParentId).startsWith('a3Z')){ |
| | | oFOrderIds.add(att.ParentId); |
| | | oFOrderIdMap.put(att.ParentId,true); |
| | | } |
| | | } |
| | | AttachmentTriggerHandler.uploadContract(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AttachmentTriggerHandler.AfterPassUpload(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AttachmentTriggerHandler.fileCheck4(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AttachmentTriggerHandler.AfterUploadToUserFaultInfo(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | } |
| | | if (Trigger.isBefore && Trigger.isUpdate) { |
| | | AttachmentTriggerHandler.fileCheck3(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AttachmentTriggerHandler.updateTradeCustomerManagerFile(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | } |
| | | if (Trigger.isBefore && Trigger.isDelete) { |
| | | for (Attachment att : Trigger.old) { |
| | | //if (att.Name.toUpperCase() == '合同书.PDF' && String.valueOf(att.ParentId).startsWith('a0t')) { |
| | | // 添付した契約書のファイル名は指定できない |
| | | if (String.valueOf(att.ParentId).startsWith('a2K')) { |
| | | rentaldelIds.add(att.ParentId); |
| | | attdelIds.add(att.Id); |
| | | } |
| | | if(String.valueOf(att.ParentId).startsWith(System.Label.Oppor_sepKey)){ |
| | | OpporFileIds.add(att.ParentId); |
| | | } |
| | | // LHJ CHAN-BCLD4P 20190618 Start |
| | | if(String.valueOf(att.ParentId).startsWith(System.Label.OppSpecialApply)){ |
| | | specDelIds.add(att.ParentId); |
| | | } |
| | | // LHJ CHAN-BCLD4P 20190618 End |
| | | if(String.valueOf(att.ParentId).startsWith('a3Z')){ |
| | | oFOrderIds.add(att.ParentId); |
| | | oFOrderIdMap.put(att.ParentId,false); |
| | | } |
| | | } |
| | | AttachmentTriggerHandler.fileCheck2(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AttachmentTriggerHandler.fileCheck6(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AttachmentTriggerHandler.DeleteTradeCustomerManagerFile(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | } |
| | | if (Trigger.isAfter && Trigger.isDelete) { |
| | | for (Attachment att : Trigger.old) { |
| | | if (String.valueOf(att.ParentId).startsWith('001')) { |
| | | accIds.add(att.ParentId); |
| | | } |
| | | // LHJ CHAN-BCLD4P 20190618 Start |
| | | if(String.valueOf(att.ParentId).startsWith(System.Label.OppSpecialApply)){ |
| | | specIds.add(att.ParentId); |
| | | } |
| | | // LHJ CHAN-BCLD4P 20190618 End |
| | | } |
| | | } |
| | | |
| | | |
| | | if (rentaldelIds.size() > 0) { |
| | | List<Consumable_accessories_invoice__c> rentaldelList = new List<Consumable_accessories_invoice__c>(); |
| | | for (Consumable_accessories_invoice__c ra : [select Id from Consumable_accessories_invoice__c where Invoice_code__c in :rentaldelIds and Attachment_ID__c in :attdelIds]) { |
| | | rentaldelList.add(ra); |
| | | } |
| | | ControllerUtil.delConsumableAccessoriesInvoiceSet(rentaldelList); |
| | | } |
| | | |
| | | if (rentalIds.size() > 0) { |
| | | List<Consumable_order__c> rentalList = new List<Consumable_order__c>(); |
| | | for (Consumable_order__c ra : [select Id from Consumable_order__c where Id in :rentalIds]) { |
| | | ra.Consumable_pdf_insert_day__c = Date.today(); |
| | | ra.Order_Attachment__c = attIds[0]; |
| | | //ra.Order_status__c = '录入完成'; |
| | | //ra.Contract_pdf_updated__c = true; |
| | | rentalList.add(ra); |
| | | } |
| | | ControllerUtil.updRentalApplyList(rentalList); |
| | | } |
| | | if (rentalApplyIds.size() > 0) { |
| | | List<Rental_Apply__c> rentalApplyList = new List<Rental_Apply__c>(); |
| | | for (Rental_Apply__c ra : [select Id from Rental_Apply__c where Id in :rentalApplyIds]) { |
| | | ra.Contract_pdf_update_day__c = Date.today(); |
| | | ra.Contract_pdf_updated__c = true; |
| | | rentalApplyList.add(ra); |
| | | } |
| | | ControllerUtil.updRentalApplyList(rentalApplyList); |
| | | } |
| | | |
| | | if (accIds.size() > 0) { |
| | | Map<String, String> attMap = new Map<String, String>(); |
| | | List<Attachment> attList = [select Id, ParentId from Attachment where ParentId = :accIds order by ParentId]; |
| | | for (Attachment att : attList) { |
| | | attMap.put(att.ParentId, att.ParentId); |
| | | } |
| | | List<Account> updAccList = new List<Account>(); |
| | | for (String accid : accIds) { |
| | | Account acc = new Account(Id = accid); |
| | | acc.Is_upload_file__c = attMap.containsKey(accid); |
| | | updAccList.add(acc); |
| | | } |
| | | if (updAccList.size() > 0) update updAccList; |
| | | } |
| | | // LHJ CHAN-BCLD4P 20190618 Start |
| | | if (specIds.size() > 0) { |
| | | |
| | | Map<String, String> attMap = new Map<String, String>(); |
| | | List<Attachment> attList = [select Id, ParentId from Attachment where ParentId = :specIds order by ParentId]; |
| | | for (Attachment att : attList) { |
| | | attMap.put(att.ParentId, att.ParentId); |
| | | } |
| | | List<OpportunitySpecialApply__c> updSpecList = new List<OpportunitySpecialApply__c>(); |
| | | for (String specId : specIds) { |
| | | OpportunitySpecialApply__c spec = new OpportunitySpecialApply__c(Id = specId); |
| | | spec.Is_upload_file__c = attMap.containsKey(specId); |
| | | updSpecList.add(spec); |
| | | } |
| | | if (updSpecList.size() > 0) update updSpecList; |
| | | } |
| | | // LHJ CHAN-BCLD4P 20190618 End |
| | | |
| | | // MZY SWAG-BXXBKA 2021-02-19 start |
| | | System.debug('SWAG-BXXBKA start'); |
| | | if (opdIds.size()>0) { |
| | | List<OPDPlan__c> updateOPDs = new List<OPDPlan__c>(); |
| | | |
| | | OPDPlan__c tempOPD = new OPDPlan__c(); |
| | | for (String i :opdIds ) { |
| | | tempOPD.id = i; |
| | | tempOPD.AttachmentCertificate__c = opdMap.get(i); |
| | | updateOPDs.add(tempOPD); |
| | | } |
| | | System.debug('临时OPD :'+tempOPD); |
| | | if (updateOPDs.size()>0){ |
| | | update updateOPDs; |
| | | } |
| | | } |
| | | System.debug('SWAG-BXXBKA end'); |
| | | // MZY SWAG-BXXBKA 2021-02-19 end |
| | | |
| | | if(OpporFileIds.size()>0){ |
| | | List<Opportunity_File__c> OpporList = [select id,Last_upload_time__c, |
| | | Is_Locked__c, |
| | | Last_upload_user__c, |
| | | Stock_apply_time__c |
| | | from Opportunity_File__c |
| | | where id |
| | | in:OpporFileIds ]; |
| | | if(OpporList.size()>0){ |
| | | for(Opportunity_File__c ofc : OpporList){ |
| | | if(!ofc.Is_Locked__c){ |
| | | ofc.Last_upload_user__c = UserInfo.getUserId(); |
| | | ofc.Last_upload_time__c = System.now(); |
| | | System.debug(ofc+'23333'); |
| | | }else{ |
| | | OpporFileUndeleteMap.put(ofc.id,ofc.id); |
| | | System.debug(ofc+'23333444444'); |
| | | } |
| | | } |
| | | update OpporList; |
| | | } |
| | | } |
| | | System.debug(Trigger.isDelete+'Trigger.isDelete'); |
| | | System.debug(Trigger.isBefore+'Trigger.isBefore'); |
| | | |
| | | |
| | | |
| | | if(Trigger.isDelete && Trigger.isBefore){ |
| | | for(Attachment att : Trigger.old){ |
| | | if(OpporFileUndeleteMap.containsKey(att.ParentID)){ |
| | | att.addError('备货已审批,不可删除附件'); |
| | | |
| | | return; |
| | | }else{ |
| | | } |
| | | } |
| | | } |
| | | if(Trigger.isDelete && Trigger.isAfter){ |
| | | for(Attachment att : Trigger.old){ |
| | | if(OpporFileUndeleteMap.containsKey(att.ParentID)){ |
| | | att.addError('备货已审批,不可删除附件'); |
| | | |
| | | return; |
| | | }else{ |
| | | DeleteReIds.add(att.ParentId); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | if(Trigger.isInsert){ |
| | | for(Attachment att : Trigger.new){ |
| | | if(OpporFileUndeleteMap.containsKey(att.ParentID)){ |
| | | att.addError('备货已审批,不可删除附件'); |
| | | |
| | | return; |
| | | }else{ |
| | | DeleteReIds.add(att.ParentId); |
| | | } |
| | | } |
| | | } |
| | | List<Attachment> atcList = [select id,ParentId,createddate,createdbyid from Attachment where ParentId in:DeleteReIds]; |
| | | System.debug(DeleteReIds+'222222222222'); |
| | | if(atcList.size()>0){ |
| | | for(String ids : DeleteReIds){ |
| | | for(Attachment atc : atcList){ |
| | | if(OppordeleteReTimeMap.containsKey(ids)){ |
| | | if(atc.createddate > OppordeleteReTimeMap.get(ids)){ |
| | | OppordeleteReTimeMap.put(ids,atc.createddate); |
| | | OppordeleteReUserMap.put(ids,atc.createdbyid); |
| | | }else{ |
| | | continue; |
| | | } |
| | | }else{ |
| | | OppordeleteReTimeMap.put(ids,atc.createddate); |
| | | OppordeleteReUserMap.put(ids,atc.createdbyid); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | List<Opportunity_File__c> reDateList = [select id,Last_upload_time__c, |
| | | Is_Locked__c, |
| | | Last_upload_user__c |
| | | from Opportunity_File__c |
| | | where id |
| | | in:DeleteReIds ]; |
| | | if(reDateList.size()>0){ |
| | | for(Opportunity_File__c ofc : reDateList){ |
| | | ofc.Last_upload_time__c = OppordeleteReTimeMap.get(ofc.id); |
| | | ofc.Last_upload_user__c = OppordeleteReUserMap.get(ofc.id); |
| | | System.debug(ofc+'233333333'); |
| | | } |
| | | update reDateList; |
| | | } |
| | | }else{ |
| | | List<Opportunity_File__c> reDateList = [select id,Last_upload_time__c, |
| | | Is_Locked__c, |
| | | Last_upload_user__c |
| | | from Opportunity_File__c |
| | | where id |
| | | in:DeleteReIds ]; |
| | | if(reDateList.size()>0){ |
| | | for(Opportunity_File__c ofc : reDateList){ |
| | | ofc.Last_upload_time__c = null; |
| | | ofc.Last_upload_user__c = null; |
| | | } |
| | | update reDateList; |
| | | } |
| | | } |
| | | //CHAN-BCNCRB ---XHL----Start----- |
| | | if (opportunity_FileIds.size() > 0) { |
| | | List<Opportunity_File__c> opporList = [select id,Last_upload_time__c, |
| | | Is_Locked__c, |
| | | Last_upload_user__c, |
| | | Stock_apply_time__c, |
| | | Oppor_File_Stage__c |
| | | from Opportunity_File__c |
| | | where id in:opportunity_FileIds And Oppor_File_Stage__c = 'G']; |
| | | List<String> ofIds = new List<String>(); |
| | | if (opporList.size() > 0) { |
| | | |
| | | for (Opportunity_File__c oppf : opporList) { |
| | | ofIds.add(oppf.Id); |
| | | } |
| | | |
| | | if (ofIds.size() > 0 ) { |
| | | List<Attachment> atcList = [select id,ParentId,createddate,createdbyid from Attachment where ParentId in:ofIds]; |
| | | |
| | | if (atcList.size() > 0) { |
| | | delete atcList; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | //CHAN-BCNCRB ---XHL----End----- |
| | | |
| | | |
| | | if (opportunityFileOrderIds.size() > 0) { |
| | | List<OpportunityFileOrder__c> ofoList = [select id, |
| | | OpporFileStage__c |
| | | from OpportunityFileOrder__c |
| | | where Id in:opportunityFileOrderIds And OpporFileStage__c = 'G']; |
| | | List<String> ofoIds = new List<String>(); |
| | | if (ofoList.size() > 0) { |
| | | |
| | | for (OpportunityFileOrder__c ofo : ofoList) { |
| | | ofoIds.add(ofo.Id); |
| | | } |
| | | |
| | | if (ofoIds.size() > 0 ) { |
| | | List<Attachment> atcList = [select id,ParentId,createddate,createdbyid from Attachment where ParentId in:ofoIds]; |
| | | |
| | | if (atcList.size() > 0) { |
| | | delete atcList; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | if (oFOrderIdMap.size() > 0) { |
| | | |
| | | List<OpportunityFileOrder__c> oFOrderList = [select Id,Name,LatestUploadUser__c,LatestUploadTime__c |
| | | from OpportunityFileOrder__c |
| | | where Id In : oFOrderIdMap.keySet()]; |
| | | if (oFOrderList.size() > 0 ) { |
| | | |
| | | for (OpportunityFileOrder__c oFOrder :oFOrderList) { |
| | | |
| | | if (oFOrderIdMap.get(oFOrder.Id)) { |
| | | oFOrder.LatestUploadUser__c = UserInfo.getUserId(); |
| | | oFOrder.LatestUploadTime__c = System.now(); |
| | | } else if (oFOrderIdMap.get(oFOrder.Id) == false){ |
| | | oFOrder.LatestUploadUser__c = null; |
| | | oFOrder.LatestUploadTime__c = null; |
| | | } |
| | | } |
| | | |
| | | update oFOrderList; |
| | | |
| | | } |
| | | AttachmentTriggerHandler.deleteContract(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AttachmentTriggerHandler.deleteconfirm(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | } |
| | | } |