Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // sync enrollments from SF to LMS. This emulates the click of the "Convert to LMS" button on Port Authority SF page
- // More than 3 records at a time may result in Too Many SOQL queries exception
- // This can be run in SF developer console
- List<Section__c> allSections = [select id, Semester__c, name, course__r.name, course__r.course_code__c
- from Section__C
- where Semester__c like '%201903%'
- and name like '%PUBH%'
- and Non_LMS__c = False
- and ((NOT course__r.name like '%6271%') and (NOT course__r.name like '%6061%')
- and (NOT course__r.name like '%6416%') and (NOT course__r.name like '%6014%'))
- and Start__c > 2019-08-25T00:00:00z and id in (
- 'a2Y0V0000058cix',
- 'a2Y0V0000058cj7',
- 'a2Y0V0000058eJ6')
- ];
- // case RecordType for the given org
- ID SFRecordTypeId = '012d0000001121HAAQ',
- System.debug('allSections :' + allSections.size() );
- for (Section__c s: allSections){
- s.Non_LMS__c = True;
- // MAIN
- setSectionNonLmsFalse(s);
- List<Case> enrollmentCases = generateEnrollmentCases(s.id);
- upsert enrollmentCases;
- System.debug('enrollmentCases:' + enrollmentCases);
- List<Case> approvedEnrollmentCases = approveEnrollmentCases(enrollmentCases);
- upsert approvedEnrollmentCases;
- System.debug('approvedEnrollmentCases:' + approvedEnrollmentCases);
- }
- //***********************************************************
- public Case enrollmentCase(Enrollment__c enrollment) {
- return new Case(Subject='Enrollment Request',
- Description='Enrollment Request',
- RecordTypeId=SFRecordTypeId,
- Reason='Requested',
- Change_Object__c='Student Enrollment',
- Change_Type__c='new',
- Student__c=enrollment.Student__c,
- Section__c=enrollment.Section__c,
- Enrollment__c=enrollment.Id,
- Enrollment_Status__c='Enrolled',
- Reason_For_Request__c = 'Requested');
- }
- private List<Case> generateEnrollmentCases(id section_id) {
- List<Case> enrollmentCases = new List<Case>();
- for(Enrollment__c enrollment: getEnrollments(section_id)) {
- enrollmentCases.add(enrollmentCase(enrollment));
- }
- return enrollmentCases;
- }
- private List<Case> approveEnrollmentCases(List<Case> enrollmentCases) {
- for(Case enrollmentCase: enrollmentCases) {
- enrollmentCase.Approval__c = 'Approved';
- }
- return enrollmentCases;
- }
- private List<Enrollment__c> getEnrollments(id section_id) {
- return [SELECT Id,
- Status__c,
- Student__c,
- Section__c
- FROM Enrollment__c
- WHERE Section__c = : section_id
- AND Student__c <> null
- AND Status__c = 'Enrolled'];
- }
- private void setSectionNonLmsFalse(Section__c s) {
- s.Non_LMS__c = false;
- upsert s;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement