{"version":3,"sources":["store/SecurityStore.js","store/reducers/auth.js","store/actions/actionTypes.js","store/actions/auth.js","components/ViewUtils.js","components/layout/header.js","components/layout/menu.js","components/layout/sidebar.js","components/widgets/Forms.jsx","components/widgets/BaseField.jsx","components/widgets/CustomTextField.jsx","components/etqa/employer/EmployerSearchForm.jsx","components/widgets/MenuButton.jsx","components/widgets/Toolbar.jsx","components/widgets/ResponsiveTable.jsx","components/widgets/Prompt.jsx","components/widgets/AlertItem.jsx","components/widgets/SearchView.js","components/widgets/Card.jsx","components/View.jsx","components/etqa/LinkDialog.jsx","components/etqa/UserSearchForm.jsx","components/etqa/UserSearch.js","components/widgets/withMenuPermission.js","components/etqa/employer/EmployerSearch.js","components/widgets/TabPanel.jsx","components/widgets/SelectItem.jsx","components/widgets/CustomDatePicker.jsx","components/widgets/AddressCodeItem.jsx","components/widgets/GPSCoordinatesAPI.js","components/widgets/CustomCheckbox.jsx","components/widgets/LookupField.jsx","components/etqa/consultant/ConsultantSearchForm.jsx","components/etqa/consultant/ConsultantSearch.js","components/etqa/employer/EmployerForm.jsx","components/etqa/employer/Employer.js","components/etqa/workplace/WorkplaceSearchForm.jsx","components/etqa/workplace/WorkplaceSearch.js","components/etqa/workplace/WorkplaceForm.jsx","components/etqa/workplace/Workplace.js","components/etqa/crm/Comments.jsx","components/etqa/crm/Documents.jsx","components/etqa/crm/Emails.jsx","components/etqa/crm/CommentsDialog.jsx","components/widgets/DocumentViewer.jsx","components/widgets/DocumentUpload.jsx","components/etqa/crm/DocumentsDialog.jsx","components/etqa/crm/EmailDialog.jsx","components/etqa/workplace/WorkplaceCRM.js","components/etqa/assessor/AssessorSearchForm.jsx","components/etqa/assessor/AssessorSearch.js","components/etqa/facilitator/FacilitatorSearchForm.jsx","components/etqa/facilitator/FacilitatorSearch.js","components/etqa/projectowner/ProjectOwnerSearchForm.jsx","components/etqa/projectowner/ProjectOwnerSearch.js","components/etqa/assessor/AuditTrial.js","components/etqa/SchoolEMISSearchForm.jsx","components/etqa/SchoolEMISSearch.js","components/etqa/STATSSAAreaCodeSearchForm.jsx","components/etqa/STATSSAAreaCodeSearch.js","components/etqa/assessor/AssessorForm.jsx","components/etqa/assessor/Assessor.js","components/etqa/facilitator/FacilitatorForm.jsx","components/etqa/facilitator/Facilitator.js","components/etqa/projectowner/ProjectOwnerForm.jsx","components/etqa/projectowner/ProjectOwner.js","components/etqa/consultant/ConsultantForm.jsx","components/etqa/consultant/Consultant.js","components/etqa/consultant/ConsultantCRM.js","components/LoadingIndicator.js","components/widgets/Table.jsx","components/etqa/bda/BDASearchForm.jsx","components/etqa/bda/BDASearch.js","components/etqa/person/PersonSearchForm.jsx","components/etqa/person/PersonSearch.js","components/etqa/grants/grantsetup/GrantSearchForm.jsx","components/etqa/grants/grantsetup/GrantSetupSearch.js","components/etqa/learner/LearnerSearchForm.jsx","components/etqa/learner/LearnerSearch.js","components/etqa/program/QualificationSetupSearchForm.jsx","components/etqa/program/QualificationSetupSearch.js","components/etqa/program/OFOSearchForm.jsx","components/etqa/program/OFOSearch.js","components/etqa/program/InstitutionSearchForm.jsx","components/etqa/program/InstitutionSearch.js","components/etqa/learner/EducationalHistoryDocuments.jsx","components/etqa/learner/LearnerDocumentDialog.jsx","components/etqa/learner/LearnerForm.jsx","components/etqa/learner/Learner.js","components/etqa/learner/LearnerCRMBulkUploadDialog.jsx","components/etqa/learner/LearnerCRM.js","components/etqa/learner/LearnerCRMBulkUpload.js","components/etqa/learner/ExperientialLearningDocuments.jsx","components/etqa/learner/ExperientialLearningDialog.jsx","components/etqa/learner/EmploymentHistoryDocuments.jsx","components/etqa/learner/EmploymentHistoryDialog.jsx","components/etqa/person/PersonForm.jsx","components/etqa/person/Person.js","components/etqa/program/SkillsProgramSetupSearchForm.jsx","components/etqa/learner/LearnerSkillsProgram.js","components/etqa/program/AbsorptionSetupSearchForm.jsx","components/etqa/learner/LearnerAbsorption.js","components/etqa/program/SponsorshipSetupSearchForm.jsx","components/etqa/learner/LearnerSponsorship.js","components/etqa/program/EnterpriseDevelopmentSetupSearchForm.jsx","components/etqa/learner/LearnerEnterpriseDevelopment.js","components/etqa/program/SupplierDevelopmentSetupSearchForm.jsx","components/etqa/learner/LearnerSupplierDevelopment.js","components/etqa/program/BursarySetupSearchForm.jsx","components/etqa/learner/LearnerBursary.js","components/etqa/program/UnitStandardSetupSearchForm.jsx","components/etqa/learner/LearnerUnitStandard.js","components/etqa/program/CandidacySetupSearchForm.jsx","components/etqa/learner/LearnerCandidacy.js","components/etqa/program/InternshipsSetupSearchForm.jsx","components/etqa/learner/LearnerInternships.js","components/etqa/program/AETSetupSearchForm.jsx","components/etqa/learner/LearnerAET.js","components/etqa/program/FETSetupSearchForm.jsx","components/etqa/learner/LearnerFET.js","components/etqa/learner/LearnerQualification.js","components/etqa/UnitStandardsTable.js","components/etqa/program/UnitStandardSetupSearch.js","components/etqa/learner/LearnerQualificationUSSearch.js","components/etqa/program/TradeSetupSearchForm.jsx","components/etqa/learner/LearnerTrade.js","components/etqa/program/LearnershipSetupSearchForm.jsx","components/etqa/learner/LearnerLearnership.js","components/etqa/learner/LearnerLearnershipAchievement.js","components/etqa/learner/LearnerUnitStandardAchievement.js","components/etqa/learner/LearnerQualificationAchievement.js","components/etqa/learner/LearnerSkillsProgrammeAchievement.js","components/etqa/learner/LearnerLearnershipAssessment.js","components/etqa/learner/ViewLearnershipAchievementUS.js","components/etqa/learner/ViewSkillsProgrammeAchievementUS.js","components/etqa/learner/ViewQualificationAchievementUS.js","components/etqa/moderator/ModeratorSearchForm.jsx","components/etqa/moderator/ModeratorSearch.js","components/etqa/learner/AssessmentHeaderForm.jsx","components/etqa/learner/ViewLearnershipAssessment.js","components/etqa/learner/ViewSkillsProgrammeAssessment.js","components/etqa/learner/ViewBursaryAssessment.js","components/etqa/learner/ViewQualificationAssessment.js","components/etqa/learner/ViewUnitStandardAssessment.js","components/etqa/learner/LearnerUnitStandardAssessment.js","components/etqa/learner/LearnerQualificationAssessment.js","components/etqa/learner/LearnerSkillsProgrammeAssessment.js","components/etqa/learner/LearnerBursaryAssessment.js","components/etqa/moderator/ModeratorForm.jsx","components/etqa/moderator/Moderator.js","components/etqa/program/SkillsProgramSetupSearch.js","components/etqa/moderator/OutComeStatusForm.jsx","components/etqa/FormDialog.jsx","components/etqa/moderator/ModeratorInterventionAudit.js","components/etqa/moderator/ModeratorSkillsProgramme.js","components/etqa/program/BursarySetupSearch.js","components/etqa/moderator/ModeratorBursary.js","components/etqa/moderator/ModeratorQualification.js","components/etqa/program/LearnershipSetupSearch.js","components/etqa/moderator/ModeratorLearnerships.js","components/etqa/moderator/ModeratorUnitStandards.js","components/etqa/provider/ProviderSearchForm.jsx","components/etqa/provider/ProviderSearch.js","components/etqa/moderator/ModeratorProviders.js","components/etqa/moderator/ModeratorRegistrationDetailsForm.jsx","components/etqa/moderator/ModeratorRegistrationDetails.js","components/etqa/assessor/AssessorInterventionAudit.js","components/etqa/common/OutcomeStatusForm.jsx","components/etqa/assessor/AssessorSkillsProgramme.js","components/etqa/assessor/AssessorBursary.js","components/etqa/facilitator/FacilitatorInterventionAudit.js","components/etqa/facilitator/FacilitatorSkillsProgramme.js","components/etqa/assessor/AssessorQualifications.js","components/etqa/facilitator/FacilitatorQualifications.js","components/etqa/assessor/AssessorLearnerships.js","components/etqa/facilitator/FacilitatorLearnerships.js","components/etqa/assessor/AssessorLearnershipUSSearch.js","components/etqa/facilitator/FacilitatorLearnershipUSSearch.js","components/etqa/moderator/AuditTrial.js","components/etqa/moderator/RegistrationHistory.js","components/etqa/moderator/ModeratorCRM.js","components/etqa/bulkupload/editable.js","components/etqa/bulkupload/personExcelPage.js","components/etqa/bulkupload/uploadPerson.js","components/etqa/bulkupload/LearnershipExcelPage.js","components/etqa/bulkupload/uploadLearnership.js","components/etqa/bulkupload/SkillsExcelPage.js","components/etqa/bulkupload/uploadSkills.js","components/etqa/bulkupload/BursariesExcelPage.js","components/etqa/bulkupload/uploadBursaries.js","components/etqa/bulkupload/InternshipExcelPage.js","components/etqa/bulkupload/uploadInternship.js","components/etqa/bulkupload/AETExcelPage.js","components/etqa/bulkupload/uploadAET.js","components/etqa/bulkupload/CandidacyExcelPage.js","components/etqa/bulkupload/uploadCandidacy.js","components/etqa/bulkupload/FETExcelPage.js","components/etqa/bulkupload/uploadFET.js","components/etqa/bulkupload/QualificationExcelPage.js","components/etqa/bulkupload/uploadQualification.js","components/etqa/bulkupload/UnitStandardExcelPage.js","components/etqa/bulkupload/uploadUnitStandard.js","components/etqa/bulkupload/AchievementExcelPage.js","components/etqa/bulkupload/uploadAchievement.js","components/etqa/assessor/RegistrationHistory.js","components/etqa/facilitator/AuditTrial.js","components/etqa/facilitator/RegistrationHistory.js","components/etqa/program/registration/LearnerSkillsProgramForm.jsx","components/etqa/learner/AddLearnerSkillsProgram.js","components/etqa/program/registration/LearnerBursaryForm.jsx","components/etqa/learner/AddLearnerBursary.js","components/etqa/program/LearnerQualificationSearch.js","components/etqa/crm/ProgramDocuments.jsx","components/etqa/crm/ProgramDocumentsDialog.jsx","components/etqa/program/registration/LearnerInternshipForm.jsx","components/etqa/learner/AddLearnerInternships.js","components/etqa/program/PivotalProgrammeSearchForm.jsx","components/etqa/program/PivotalProgrammeSearch.js","components/etqa/program/registration/LearnerLearnershipForm.jsx","components/etqa/learner/AddLearnerLearnership.js","components/etqa/program/registration/LearnerQualificationForm.jsx","components/etqa/learner/AddLearnerQualification.js","components/etqa/program/registration/LearnerUnitStandardForm.jsx","components/etqa/learner/AddLearnerUnitStandard.js","components/etqa/program/AETSetupSearch.js","components/etqa/program/registration/LearnerAETForm.jsx","components/etqa/learner/AddLearnerAET.js","components/etqa/program/registration/LearnerFETForm.jsx","components/etqa/learner/AddLearnerFET.js","components/etqa/program/registration/LearnerCandidacyForm.jsx","components/etqa/learner/AddLearnerCandidacy.js","components/etqa/program/TradeSetupSearch.js","components/etqa/grants/grantsetup/ProjectSearchForm.jsx","components/etqa/grants/grantsetup/ProjectSearch.js","components/etqa/program/registration/LearnerTradeForm.jsx","components/etqa/learner/AddLearnerTrade.js","components/etqa/assessor/AssessorUnitStandards.js","components/etqa/facilitator/FacilitatorUnitStandards.js","components/etqa/assessor/AssessorProvider.js","components/etqa/facilitator/FacilitatorProvider.js","components/etqa/assessor/AssessorRegistrationDetailsForm.jsx","components/etqa/assessor/AssessorRegistrationDetails.js","components/etqa/facilitator/FacilitatorRegistrationDetailsForm.jsx","components/etqa/facilitator/FacilitatorRegistrationDetails.js","components/etqa/crm/Sms.jsx","components/etqa/crm/SmsDialog.jsx","components/etqa/assessor/AssessorCRM.js","components/etqa/facilitator/FacilitatorCRM.js","components/etqa/employer/EmployerCRM.js","components/etqa/facilitator/FacilitatorProjectSearch.js","components/etqa/crm/MonitoringAndEvaluationComment.jsx","components/skills/organisation/OrganisationDocumentsDialog.jsx","components/etqa/crm/MonitoringAndEvaluationCommentDialog.jsx","components/skills/organisation/OrganisationCRM.js","components/etqa/grants/grantsetup/AddEditTrancheForm.jsx","components/etqa/grants/grantsetup/AddEditTranche.js","components/etqa/grants/grantsetup/LinkTrancheForm.jsx","components/etqa/grants/grantsetup/TrancheDetails.js","components/etqa/program/GrantSetupElectiveUSSearchModule.js","components/etqa/grants/grantsetup/GrantSetupElectiveUSSearch.js","components/etqa/grants/grantsetup/TrancheSetupProjectCostForm.jsx","components/etqa/grants/grantsetup/TrancheSetupProjectCost.js","components/etqa/grants/controls/LearnerSearchForm.jsx","components/etqa/grants/controls/LearnerSearch.js","components/etqa/grants/grantsetup/GrantSetupLearnerSearch.js","components/etqa/grants/grantsetup/GrantSetupCRMBulkUploadDialog.jsx","components/etqa/grants/grantsetup/GrantSetupCRM.js","components/etqa/grants/grantsetup/GrantSetupCRMBulkUpload.js","components/etqa/grants/grantsetup/TrancheSetupEAPTargetDetailsForm.jsx","components/etqa/grants/grantsetup/TrancheSetupEAPTargetAddDialog.jsx","components/etqa/grants/grantsetup/TrancheSetupEAPTargetEditDialog.jsx","components/etqa/grants/grantsetup/TrancheSetupEAPTarget.jsx","components/etqa/grants/grantprocessing/ProcessingNav.js","components/etqa/grants/grantprocessing/GenerateClaimSearchForm.jsx","components/etqa/grants/grantprocessing/GenerateClaimSearch.js","components/etqa/grants/grantprocessing/ApproveClaimSearchForm.jsx","components/etqa/grants/grantprocessing/ApproveClaimSearch.js","components/etqa/grants/grantprocessing/GrantClaimFormReversalSearchForm.jsx","components/etqa/grants/grantprocessing/GrantClaimReversalDetailForm.jsx","components/etqa/grants/grantprocessing/GrantClaimFormReversalSearch.js","components/etqa/grants/grantprocessing/DownloadClaimSearchForm.jsx","components/etqa/grants/grantprocessing/DownloadClaimSearch.js","components/etqa/grants/grantprocessing/ProcessSearchFormShared.jsx","components/etqa/grants/grantprocessing/GenerateBatchSearch.js","components/etqa/grants/grantprocessing/DownloadBatchSearch.js","components/etqa/grants/grantprocessing/AXProcessorSearch.js","components/etqa/grants/grantprocessing/GrantReversalsSearchForm.jsx","components/etqa/grants/grantprocessing/GrantReversalsSearch.js","components/etqa/grants/grantassociations/BulkAssociationSearchForm.jsx","components/etqa/grants/grantassociations/BulkGrantAssociation.js","components/etqa/grants/grantassociations/DiAssociationDetailForm.jsx","components/etqa/grants/grantassociations/BulkGrantDiAssociation.js","components/etqa/grants/grantsetup/TrackingAddTaskForm.jsx","components/etqa/grants/grantsetup/TrancheTracking.js","components/etqa/provider/ProviderCRM.js","components/etqa/assessor/AssessorIDDocument.js","components/etqa/provider/ProviderForm.jsx","components/etqa/provider/Provider.js","components/etqa/program/OutcomeForm.jsx","components/etqa/program/Outcome.js","components/etqa/provider/MonitoringAndEvaluationForm.jsx","components/widgets/GridItem.jsx","components/etqa/EditableTable.jsx","components/etqa/provider/ProviderMonitoringAndEvaluation.js","components/etqa/program/Trade/TradeSetupSearchForm.jsx","components/etqa/program/Trade/TradeSetupSearch.js","components/etqa/provider/ProviderTrade.js","components/etqa/provider/ProviderAddContactForm.jsx","components/etqa/provider/ProviderContact.js","components/etqa/provider/ProviderAddUserForm.jsx","components/etqa/provider/ProviderUsers.js","components/etqa/provider/ProviderSiteVisitForm.jsx","components/etqa/provider/ProviderSiteVisits.js","components/etqa/provider/ProviderAccreditationForm.jsx","components/etqa/provider/ProviderAccreditation.js","components/etqa/provider/ProviderAccreditationHistory.js","components/etqa/provider/ProviderLearner.js","components/etqa/provider/ProviderInterventionAudit.js","components/etqa/provider/ProviderUnitStandards.js","components/etqa/program/ProviderQualificationSearchModule.js","components/etqa/provider/ProviderQualificationsSearch.js","components/etqa/program/SkillsProgrammeOutcomeForm.jsx","components/etqa/program/ProviderSkillsProgramSearchModule.js","components/etqa/provider/ProviderSkillsProgrammeSearch.js","components/etqa/provider/ProviderSkillsProgrammeUSSearch.js","components/etqa/program/BursaryOutcomeForm.jsx","components/etqa/program/ProviderBursarySearchModule.js","components/etqa/provider/ProviderBursarySearch.js","components/etqa/provider/ProviderLearnershipUSSearch.js","components/etqa/provider/ProviderQualificationUSSearch.js","components/etqa/program/LearnershipOutcomeForm.jsx","components/etqa/provider/ProviderLearnershipSearch.js","components/etqa/provider/ProviderAssessors.js","components/etqa/provider/ProviderModeratorSearch.js","components/etqa/externalmoderator/ExternalModeratorSearchForm.jsx","components/etqa/externalmoderator/ExternalModeratorSearch.js","components/etqa/program/UnitStandardSetupForm.jsx","components/etqa/program/UnitStandardSetup.js","components/etqa/program/QualificationSetupForm.jsx","components/etqa/program/QualificationSetup.js","components/etqa/program/AET/AETSetupSearchForm.jsx","components/etqa/program/AET/AETSetupSearch.js","components/etqa/program/AET/AETSetupForm.jsx","components/etqa/program/AET/AETSetup.js","components/etqa/program/Trade/TradesDetailsSetupForm.jsx","components/etqa/program/Trade/TradeSetup.js","components/etqa/program/LearnershipUnitStandardSearch.js","components/etqa/program/LearnershipSetupForm.jsx","components/etqa/program/LearnershipSetup.js","components/etqa/program/LearnershipSetupCRMBulkUploadDialog.jsx","components/etqa/program/LearnershipSetupCRM.js","components/etqa/program/LearnershipSetupCRMBulkUpload.js","components/etqa/program/SAQAXMLImportForm.jsx","components/etqa/program/SAQAXMLImport.js","components/etqa/program/ShortCourseSetupSearchForm.jsx","components/etqa/program/ShortCourseSetupSearch.js","components/etqa/program/SkillsProgramSetupForm.jsx","components/etqa/program/SkillsProgramSetup.js","components/etqa/program/SkillsProgrammeSetupCRMBulkUploadDialog.jsx","components/etqa/program/SkillsProgrammeSetupCRM.js","components/etqa/program/SkillsProgrammeSetupCRMBulkUpload.js","components/etqa/program/BursarySetupForm.jsx","components/etqa/program/BursarySetup.js","components/etqa/program/BursarySetupCRMBulkUploadDialog.jsx","components/etqa/program/BursarySetupCRM.js","components/etqa/program/BursarySetupCRMBulkUpload.js","components/etqa/program/ArtisansSetupSearchForm.jsx","components/etqa/program/ArtisansSetupSearch.js","components/etqa/employer/EmployerLearnerSearch.js","components/etqa/employer/EmployerProjectSearch.js","components/etqa/employer/EmployerAddUserForm.jsx","components/etqa/employer/EmployerUserSearch.js","components/etqa/employer/EmployerAddContactForm.jsx","components/etqa/employer/EmployerContactSearch.js","components/etqa/employer/EmployerAddBillingContactForm.jsx","components/etqa/employer/EmployerBillingContactSearch.js","components/widgets/LinearFlowHeading.jsx","components/etqa/learner/AddLearnerIDUploadForm.jsx","components/etqa/learner/AddLearnerSearch.js","components/etqa/learner/AddLearnerDetails.js","components/etqa/learner/AddLearnerPrograms.js","components/etqa/learner/AccreditationHistory.jsx","components/etqa/learner/AddLearnerAccreditationHistory.js","components/etqa/learner/AddLearnerFlow.js","components/etqa/person/AddPersonIDUploadForm.jsx","components/etqa/person/AddPersonSearch.js","components/etqa/person/AddPersonDetails.js","components/etqa/person/AddPersonFlow.js","components/etqa/person/AddPersonRoleIDUploadForm.jsx","components/etqa/person/AddPersonRoleSearch.js","components/etqa/assessor/AddAssessorDetails.js","components/etqa/assessor/AddAssessorRegistrationDetails.js","components/etqa/assessor/AddAssessorProgrammeDetails.js","components/etqa/assessor/AddAssessorTrainingProvider.js","components/etqa/assessor/AddAssessorFlow.js","components/etqa/moderator/AddModeratorDetails.js","components/etqa/moderator/AddModeratorRegistrationDetails.js","components/etqa/moderator/AssessorUnitStandards.js","components/etqa/moderator/AssessorSkillsProgramme.js","components/etqa/moderator/AssessorQualifications.js","components/etqa/moderator/AssessorLearnerships.js","components/etqa/moderator/AddModeratorProgrammeDetails.js","components/etqa/moderator/AddModeratorTrainingProvider.js","components/etqa/moderator/AddModeratorFlow.js","components/etqa/facilitator/AddFacilitatorDetails.js","components/etqa/facilitator/AddFacilitatorRegistrationDetails.js","components/etqa/facilitator/AddFacilitatorProgrammeDetails.js","components/etqa/facilitator/AddFacilitatorTrainingProvider.js","components/etqa/facilitator/AddFacilitatorFlow.js","components/etqa/consultant/AddConsultantDetails.js","components/etqa/consultant/AddConsultantFlow.js","components/etqa/projectowner/AddProjectOwnerDetails.js","components/etqa/projectowner/AddProjectOwnerFlow.js","components/barchart/barchart.js","components/piechart/piechart.js","components/widgets/Dashboard.jsx","components/Dashboards/SDFDashboard.jsx","components/Dashboards/StakeholderDashboard.jsx","components/Dashboards/SkillsDashboard.jsx","components/etqa/program/QualificationUnitStandardSearch.js","components/etqa/program/SkillsUnitStandardSearch.js","components/etqa/program/BursaryUnitStandardSearch.js","components/skills/sdf/SDFSearchForm.jsx","components/skills/sdf/SDFSearch.js","components/maintenance/Role/RoleSearchForm.jsx","components/maintenance/Role/RoleSearch.js","components/maintenance/User/UserSearchForm.jsx","components/maintenance/User/UserSearch.js","components/maintenance/User/UserDetailForm.jsx","components/maintenance/User/UserDetail.js","components/maintenance/User/UserRoleForm.jsx","components/maintenance/User/UserRoles.js","components/maintenance/Clients/ClientsEmailsSearchForm.jsx","components/maintenance/Clients/ClientsEmailsSearch.js","components/maintenance/Clients/AudienceOptionsForm.jsx","components/maintenance/Clients/AudienceOptions.js","components/maintenance/Clients/EmailAddForm.jsx","components/maintenance/Clients/EmailAdd.js","components/widgets/SearchForm.jsx","components/maintenance/Skills/SkillsLetterCreationSearchForm.jsx","components/maintenance/Skills/SkillsLetterCreationSearch.js","components/maintenance/Skills/SkillsLetterCreationForm.jsx","components/maintenance/Skills/SkillsLetterCreation.js","components/maintenance/Skills/SkillsQueryReasonSearchForm.jsx","components/maintenance/Skills/SkillsQueryReasonSearch.js","components/maintenance/Skills/SkillsQueryReasonForm.jsx","components/maintenance/Skills/SkillsQueryReason.js","components/maintenance/Skills/SkillsRejectionReasonSearchForm.jsx","components/maintenance/Skills/SkillsRejectionReasonSearch.js","components/maintenance/Skills/SkillsRejectionReasonForm.jsx","components/maintenance/Skills/SkillsRejectionReason.js","components/maintenance/Skills/SkillsTNumberConversionForm.jsx","components/maintenance/Skills/SkillsTNumberConversionSearch.js","components/maintenance/Skills/SkillsTNumberConversionCreationForm.jsx","components/maintenance/Skills/SkillsTNumberConversion.js","components/maintenance/Benefits/CreateBenefitsDescriptionSearchForm.jsx","components/maintenance/Benefits/CreateBenefitsDescriptionSearch.js","components/maintenance/Benefits/BenefitsDescriptionSearchForm.jsx","components/maintenance/Benefits/BenefitsDescriptionsSearch.js","components/maintenance/Benefits/CreateInterventionTitlesForm.jsx","components/maintenance/Benefits/CreateInterventionTitles.js","components/maintenance/Benefits/BenefitsTargetAddForm.jsx","components/maintenance/Benefits/BenefitsTargetAddFormSearch.js","components/maintenance/Benefits/BenefitsTargetsForm.jsx","components/maintenance/Benefits/BenefitsTargetsSearch.js","components/maintenance/Benefits/InterventionTitlesForm.jsx","components/maintenance/Benefits/InterventionTitlesSearch.js","components/maintenance/Benefits/LinkingSearchForm.jsx","components/maintenance/Benefits/LinkingSearch.js","components/maintenance/Benefits/BenefitsUploadForm.jsx","components/maintenance/Benefits/BenefitsUpload.js","components/maintenance/Benefits/CreatingLinkingSearchForm.jsx","components/maintenance/Benefits/CreateLinkingSearch.js","components/maintenance/DG/DGLetterCreationForm.jsx","components/maintenance/DG/DGLetterCreation.js","components/maintenance/DG/DGLetterCreationSearchForm.jsx","components/maintenance/DG/DGLetterCreationSearch.js","components/maintenance/DG/DGQueryReasonSearchForm.jsx","components/maintenance/DG/DGQueryReasonSearch.js","components/maintenance/DG/DGQueryReasonForm.jsx","components/maintenance/DG/DGQueryReason.js","components/maintenance/DG/DGRejectionReasonSearchForm.jsx","components/maintenance/DG/DGRejectionReasonSearch.js","components/maintenance/DG/DGRejectionReasonForm.jsx","components/maintenance/DG/DGRejectionReason.js","components/maintenance/Role/RoleForm.jsx","components/maintenance/Role/Role.js","components/maintenance/Role/RolePermissionSearchForm.jsx","components/maintenance/Role/RolePermissionSearch.js","components/maintenance/Role/Controls/NavigationSearchForm.jsx","components/maintenance/Role/Controls/NavigationSearch.js","components/maintenance/Role/RolePermissionForm.jsx","components/maintenance/Role/RolePermission.js","components/skills/sdf/SDFForm.jsx","components/skills/sdf/SDF.js","components/skills/organisation/OrganisationSearchForm.jsx","components/skills/sdf/SDFOrganisationSearch.js","components/skills/sdf/SDFOrganisationForm.jsx","components/skills/sdf/SDFOrganisations.jsx","components/dg/organisation/DGOrganisationSearchForm.jsx","components/dg/organisation/DGOrganisationSearch.js","components/dg/organisation/DGOrganistaionDetailsForm.jsx","components/dg/organisation/DGOrganisation.js","components/dg/stakeholder/StakeholderSearchForm.jsx","components/dg/stakeholder/StakeholderSearch.js","components/dg/stakeholder/StakeholderForm.jsx","components/dg/stakeholder/Stakeholder.js","components/dg/stakeholder/StakeholderOrganisationAddSearch.js","components/dg/stakeholder/StakeholderOrganisationDetailsForm.jsx","components/dg/stakeholder/StakeholderOrganisationDetails.js","components/dg/organisation/OrganisationContactForm.jsx","components/dg/organisation/DGOrganisationContact.js","components/dg/documentuploads/DGDocumentUploadsSearchForm.jsx","components/dg/documentuploads/DGDocumentUploadsForm.jsx","components/dg/documentuploads/DGDocumentUploadsDialog.jsx","components/dg/documentuploads/DGDocumentUploads.jsx","components/dg/organisation/OrganisationStakeholderEditForm.jsx","components/dg/organisation/OrganisationStakeholderEditDialog.jsx","components/dg/organisation/OrganisationStakeholder.jsx","components/dg/organisation/DGOrganisationDocumentsDialog.jsx","components/dg/organisation/DGOrganisationCRM.js","components/skills/organisation/OrganisationDetailsForm.jsx","components/skills/organisation/Organisation.js","components/skills/organisation/OrganisationSearch.js","components/skills/organisation/OrganisationContactForm.jsx","components/skills/organisation/OrganisationContact.js","components/skills/organisation/OrganisationBankDetailsForm.jsx","components/skills/organisation/OrganisationBankingDetails.js","components/skills/organisation/LinkOrganisationForm.jsx","components/skills/organisation/ChildOrganisationSearch.js","components/skills/organisation/ChildOrganisation.jsx","components/skills/organisation/OrganisationCFODetailsForm.jsx","components/skills/organisation/OrganisationCFODetails.js","components/skills/organisation/UnionForm.jsx","components/skills/organisation/UnionCreateDialog.jsx","components/skills/organisation/UnionEditDialog.jsx","components/skills/organisation/TrainingCommitteeRecords.js","components/skills/organisation/TrainingCommitteeForm.jsx","components/skills/organisation/TrainingCommittee.js","components/skills/organisation/UnionRecords.js","components/skills/WspAtrForms/WspAtrForms.jsx","components/skills/WspAtrForms/Controls/OFOSearchForm.jsx","components/skills/WspAtrForms/Controls/OFOSearch.js","components/skills/WspAtrForms/Forms/2022/EmploymentNumberForm.jsx","components/skills/WspAtrForms/Controls/WSPATRBulkImportDialog.jsx","components/skills/WspAtrForms/Forms/2022/EmploymentNumber.js","components/skills/WspAtrForms/Forms/2022/EmploymentNumberSmallForm.jsx","components/skills/WspAtrForms/Forms/2022/EmploymentNumberSmall.js","components/skills/WspAtrForms/Forms/2022/AnnualTrainingReportForm.jsx","components/skills/WspAtrForms/Forms/2022/AnnualTrainingReport.js","components/skills/WspAtrForms/Forms/2022/ActualPivotalTrainingForm.jsx","components/skills/WspAtrForms/Forms/2022/ActualPivotalTraining.js","components/skills/WspAtrForms/Forms/2022/WorkplaceSkillsPlanForm.jsx","components/skills/WspAtrForms/Forms/2022/WorkplaceSkillsPlan.js","components/skills/WspAtrForms/Forms/2022/QualificationProfileForm.jsx","components/skills/WspAtrForms/Forms/2022/QualificationProfile.js","components/skills/WspAtrForms/Forms/2022/PlannedPivotalTrainingForm.jsx","components/skills/WspAtrForms/Forms/2022/PlannedPivotalTraining.js","components/skills/WspAtrForms/Forms/2022/ActualBeneficiariesTrainingForm.jsx","components/skills/WspAtrForms/Forms/2022/ActualBeneficiariesTraining.js","components/skills/WspAtrForms/Forms/2022/ActualAETForm.jsx","components/skills/WspAtrForms/Forms/2022/ActualAET.js","components/skills/WspAtrForms/Controls/MunicipalitySearchForm.jsx","components/skills/WspAtrForms/Controls/MunicipalitySearch.js","components/skills/WspAtrForms/Forms/2022/PlannedBeneficiariesTrainingForm.jsx","components/skills/WspAtrForms/Forms/2022/PlannedBeneficiariesTraining.js","components/skills/WspAtrForms/Forms/2022/ProvincialDetailsForm.jsx","components/skills/WspAtrForms/Forms/2022/ProvincialDetails.js","components/skills/WspAtrForms/Forms/2022/PlannedAETForm.jsx","components/skills/WspAtrForms/Forms/2022/PlannedAET.js","components/skills/WspAtrForms/Forms/2022/ImpactAssessmentForm.jsx","components/skills/WspAtrForms/Forms/2022/ImpactAssessment.js","components/skills/WspAtrForms/Forms/2022/HardToFillVacanciesForm.jsx","components/skills/WspAtrForms/Forms/2022/HardToFillVacancies.js","components/skills/WspAtrForms/Forms/2022/CheckList.jsx","components/skills/WspAtrForms/WSPandATRCreateForm.jsx","components/skills/WspAtrForms/WSPandATREditForm.jsx","components/skills/WspAtrForms/Controls/LetterReasonDialog.jsx","components/skills/WspAtrForms/WspAtrEditDialog.jsx","components/LoadingIndicatorLogin.js","components/skills/WspAtrForms/WspAtrPrintReport.js","components/skills/WspAtrForms/WspAtrDashboard.js","components/skills/WspAtrForms/WspAtrUploadsSearchForm.jsx","components/skills/WspAtrForms/WspAtrUploadForm.jsx","components/skills/WspAtrForms/UploadDialog.jsx","components/skills/WspAtrForms/DocumentsUpload.jsx","components/skills/WspAtrForms/WSPATRVerificationSearchForm.jsx","components/skills/WspAtrForms/WSPATRVerificationSearch.js","components/skills/WspAtrForms/WSPATRVerificationMain.jsx","components/skills/WspAtrForms/WSPATREvaluationSearchForm.jsx","components/skills/WspAtrForms/WSPATREvaluationSearch.js","components/skills/WspAtrForms/WSPATREvaluationMain.jsx","components/skills/WspAtrForms/ApprovalDetailsForm.jsx","components/skills/WspAtrForms/Approval.jsx","components/skills/WspAtrForms/WSPATRApprovalSearchForm.jsx","components/skills/WspAtrForms/WSPATRApprovalBulkForm.jsx","components/skills/WspAtrForms/WSPATRApprovalBulkDialog.jsx","components/skills/WspAtrForms/WSPATRApprovalSearch.js","components/skills/WspAtrForms/WSPATRApprovalMain.jsx","components/skills/WspAtrForms/VerificationForm.jsx","components/skills/WspAtrForms/Verification.jsx","components/skills/WspAtrForms/EvaluationForm.jsx","components/skills/WspAtrForms/Evaluation.jsx","components/skills/organisation/StackholderfeedbackForm.jsx","components/skills/organisation/Stackholderfeedback.jsx","components/skills/WspAtrForms/ExtensionSearchForm.jsx","components/skills/WspAtrForms/ExtensionDetailsForm.jsx","components/skills/WspAtrForms/ExtensionRequestDialog.jsx","components/skills/WspAtrForms/RequestExtensionEditForm.jsx","components/skills/WspAtrForms/RequestExtensionEditDialog.jsx","components/skills/WspAtrForms/Extension.jsx","components/skills/WspAtrForms/LodgeApealSearchForm.jsx","components/skills/WspAtrForms/LodgeApealDetailsForm.jsx","components/skills/WspAtrForms/LodgeApealDialog.jsx","components/skills/WspAtrForms/LodgeApealEditForm.jsx","components/skills/WspAtrForms/LodgeApealEditDialog.jsx","components/skills/WspAtrForms/LodgeApeal.jsx","components/skills/organisation/OrganisationSDFEditForm.jsx","components/skills/organisation/OrganisationSDFEditDialog.jsx","components/skills/organisation/OrganisationSDF.jsx","components/skills/organisation/GrantsLeviesForm.jsx","components/skills/organisation/OrganisationGrantsLevies.jsx","components/skills/organisation/Levies.jsx","components/skills/organisation/Grants.jsx","components/skills/organisation/DiscretionaryGrants.jsx","components/skills/organisation/InterSetaTransferSearchForm.jsx","components/skills/organisation/ExperientialLearningDialog.jsx","components/skills/organisation/InterSetaTransferDetailsForm.jsx","components/skills/organisation/InterSetaTransferDialog.jsx","components/skills/organisation/InterSetaTransferEditForm.jsx","components/skills/organisation/InterSetaTransferEditDialog.jsx","components/skills/organisation/InterSetaTransfer.jsx","components/skills/organisation/SDFComplianceLetterForm.jsx","components/skills/organisation/OrganisationSDFComplianceLetter.jsx","components/skills/EmployerFileImport/EmployerFileImportDialog.jsx","components/skills/EmployerFileImport/EmployerFileImport.js","components/reports/etqa/ETQAReportSearchForm.jsx","components/reports/etqa/ETQAReportSearch.js","components/reports/Controls/ProviderSearchForm.jsx","components/reports/Controls/ProviderSearch.js","components/reports/etqa/ETQAReportForm.jsx","components/reports/etqa/ETQAReport.js","components/reports/skills/SkillsReportSearchForm.jsx","components/reports/skills/SkillsReportSearch.js","components/reports/skills/SkillsReportForm.jsx","components/reports/skills/SkillsReport.js","components/reports/masterfiles/MasterFileSearchForm.jsx","components/reports/masterfiles/MasterFileSearch.js","components/reports/masterfiles/ProviderSearchForm.jsx","components/reports/masterfiles/ProviderSearch.js","components/reports/masterfiles/EmployerSearchForm.jsx","components/reports/masterfiles/EmployerSearch.js","components/reports/masterfiles/MasterFileForm.jsx","components/reports/masterfiles/MasterFile.js","components/reports/setmisfiles/SETMISFileForm.jsx","components/reports/setmisfiles/SETMISFileSearch.js","components/reports/setmisfiles/SETMISFile.js","components/reports/dg/DGReportSearchForm.jsx","components/reports/dg/DGReportSearch.js","components/reports/dg/DGReportForm.jsx","components/reports/dg/DGReport.js","components/reports/customreports/CustomReports.js","components/reports/admin/AdminReportSearchForm.jsx","components/reports/admin/AdminReportSearch.js","components/reports/admin/AdminReportForm.jsx","components/reports/admin/AdminReport.js","components/reports/provider/ProviderReportSearchForm.jsx","components/reports/provider/ProviderReportSearch.js","components/reports/provider/ProviderReportForm.jsx","components/reports/provider/ProviderReport.js","components/etqa/approval and certification/ProviderDocumentSearchForm.jsx","components/etqa/approval and certification/ProviderDocuments.js","components/etqa/approval and certification/AssessorDocumentSearchForm.jsx","components/etqa/approval and certification/AssessorDocuments.js","components/etqa/approval and certification/ModeratorDocumentSearchForm.jsx","components/etqa/approval and certification/ModeratorDocuments.js","components/etqa/approval and certification/LearnerDocumentSearchForm.jsx","components/etqa/approval and certification/LearnerDocuments.js","components/etqa/approval and certification/LearnerAttendanceSearchForm.jsx","components/etqa/approval and certification/LearnerAttendance.js","components/etqa/approval and certification/BulkApprovalSearchForm.jsx","components/etqa/approval and certification/BulkApproval.js","components/widgets/CustomMaterialTable.js","components/etqa/expiry notification/ExpiryNotification.js","components/etqa/approval and certification/LearnerEndorsementLetterSearchForm.jsx","components/etqa/approval and certification/LearnerEndorsementLetter.js","components/etqa/proof of registration/ProofOfRegistrationSearchForm.jsx","components/etqa/proof of registration/ProofOfRegistrationSearch.js","components/TestForm.jsx","components/Test.js","components/test components/Table.js","components/test components/TestTableDemo.js","components/dg/application/DGApplicationCreationForm.jsx","components/dg/application/DGApplication.jsx","components/dg/application/DGApplicationSearchForm.jsx","components/dg/application/DGPrintReport.js","components/dg/application/DGApplicationDashboard.js","components/dg/application/Forms/DGForms.jsx","components/dg/verification/DGVerificationSearchForm.jsx","components/dg/verification/DGVerificationSearch.js","components/dg/verification/DGVerificationMain.jsx","components/dg/evaluation/DGEvaluationSearchForm.jsx","components/dg/evaluation/DGEvaluationSearch.jsx","components/dg/application/Controls/DGLetterReasonDialog.jsx","components/dg/evaluation/DGEvaluationMain.jsx","components/dg/approval/DGApprovalSearchForm.jsx","components/dg/approval/DGApprovalSearch.js","components/dg/approval/DGApprovalMain.jsx","components/dg/contracts/DGContracts.js","components/dg/application/Controls/TradeSearchForm.jsx","components/dg/application/Controls/TradeSearch.js","components/dg/application/Forms/2022/ArtisanForm.jsx","components/dg/application/Forms/2022/Artisan.js","components/dg/application/Controls/ProviderSearchForm.jsx","components/dg/application/Controls/ProviderSearch.js","components/dg/application/Forms/2022/AETForm.jsx","components/dg/application/Forms/2022/AET.js","components/dg/application/Controls/QualificationsSearchForm.jsx","components/dg/application/Controls/QualificationsSearch.js","components/dg/application/Controls/InstitutionSearchForm.jsx","components/dg/application/Controls/InstitutionSearch.js","components/dg/application/Forms/2022/BursaryForm.jsx","components/dg/application/Forms/2022/Bursary.js","components/dg/application/Forms/2022/LearnershipForm.jsx","components/dg/application/Forms/2022/Learnership.js","components/dg/application/Forms/2022/CandidacyForm.jsx","components/dg/application/Forms/2022/Candidacy.js","components/dg/application/Forms/2022/TVETForm.jsx","components/dg/application/Forms/2022/TVET.js","components/dg/application/Controls/LearnershipSearchForm.jsx","components/dg/application/Controls/LearnershipSearch.js","components/dg/application/Forms/2022/LearnershipRPLForm.jsx","components/dg/application/Forms/2022/LearnershipRPL.js","components/dg/application/Forms/2022/InternshipForm.jsx","components/dg/application/Forms/2022/Internship.js","components/dg/application/Controls/SkillsProgrammeSearchForm.jsx","components/dg/application/Controls/SkillsProgrammeSearch.js","components/dg/application/Forms/2022/SkillsProgrammeForm.jsx","components/dg/application/Forms/2022/SkillsProgramme.js","components/dg/application/Controls/OFOSearchForm.jsx","components/dg/application/Controls/OFOSearch.js","components/dg/application/Forms/2022/WorkExperienceForm.jsx","components/dg/application/Forms/2022/WorkExperience.js","components/helpdesk/Request/HelpdeskRequestSearchForm.jsx","components/helpdesk/Request/HelpdeskRequestAddForm.jsx","components/helpdesk/Request/HelpdeskRequestSearch.js","components/helpdesk/Request/HelpdeskComments.jsx","components/helpdesk/Request/HelpdeskRequestForm.jsx","components/helpdesk/Request/HelpdeskRequest.js","components/helpdesk/Report/HelpDeskReport.js","components/QALPDashboardCharts/TrainingProviderListPerAccreditationStatusLineChart.js","components/QALPDashboardCharts/TrainingProviderListPerAccreditationStatusBarChart.js","components/QALPDashboardCharts/TrainingProviderListPerAccreditationStatusPieChart.js","components/QALPDashboardCharts/TrainingProviderListPerRegionBarChart.js","components/QALPDashboardCharts/TrainingProviderListPerRegionLineChart.js","components/QALPDashboardCharts/TrainingProviderListPerRegionPieChart.js","components/QALPDashboardCharts/TrainingProviderListPerProviderClassPieChart.js","components/QALPDashboardCharts/TrainingProviderListPerProviderClassBarChart.js","components/QALPDashboardCharts/TrainingProviderListPerProviderClassLineChart.js","components/QALPDashboardCharts/AssessorPerRegionBarChart.js","components/QALPDashboardCharts/AssessorPerRegionLineChart.js","components/QALPDashboardCharts/AssessorPerRegionPieChart.js","components/QALPDashboardCharts/AssessorPerRegistrationStatusBarChart.js","components/QALPDashboardCharts/AssessorPerRegistrationStatusLineChart.js","components/QALPDashboardCharts/AssessorPerRegistrationStatusPieChart.js","components/QALPDashboardCharts/AssessorPerAssessorTypeBarChart.js","components/QALPDashboardCharts/AssessorPerAssessorTypeLineChart.js","components/QALPDashboardCharts/AssessorPerAssessorTypePieChart.js","components/QALPDashboardCharts/ModeratorPerModeratorTypeBarChart.js","components/QALPDashboardCharts/ModeratorPerModeratorTypeLineChart.js","components/QALPDashboardCharts/ModeratorPerModeratorTypePieChart.js","components/QALPDashboardCharts/ModeratorPerRegistrationStatusBarChart.js","components/QALPDashboardCharts/ModeratorPerRegistrationStatusLineChart.js","components/QALPDashboardCharts/ModeratorPerRegistrationStatusPieChart.js","components/QALPDashboardCharts/ModeratorPerRegionBarChart.js","components/QALPDashboardCharts/ModeratorPerRegionLineChart.js","components/QALPDashboardCharts/ModeratorPerRegionPieChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerMunicipalityBarChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerMunicipalityLineChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerMunicipalityPieChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerSponsorshipBarChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerSponsorshipLineChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerSponsorshipPieChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerAgreementStatusBarChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerAgreementStatusLineChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerAgreementStatusPieChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerLearnershipTitleBarChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerLearnershipTitleLineChart.js","components/QALPDashboardCharts/LearnerLearnershipsPerLearnershipTitlePieChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerMunicipalityBarChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerMunicipalityLineChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerMunicipalityPieChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryNameBarChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryNameLineChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryNamePieChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerSponsorshipBarChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerSponsorshipLineChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerSponsorshipPieChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryStatusBarChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryStatusLineChart.js","components/QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryStatusPieChart.js","components/QALPDashboardCharts/LearnerBursaryPerMunicipalityBarChart.js","components/QALPDashboardCharts/LearnerBursaryPerMunicipalityLineChart.js","components/QALPDashboardCharts/LearnerBursaryPerMunicipalityPieChart.js","components/QALPDashboardCharts/LearnerBursaryPerBursaryNameBarChart.js","components/QALPDashboardCharts/LearnerBursaryPerBursaryNameLineChart.js","components/QALPDashboardCharts/LearnerBursaryPerBursaryNamePieChart.js","components/QALPDashboardCharts/LearnerBursaryPerSponsorshipBarChart.js","components/QALPDashboardCharts/LearnerBursaryPerSponsorshipLineChart.js","components/QALPDashboardCharts/LearnerBursaryPerSponsorshipPieChart.js","components/QALPDashboardCharts/LearnerBursaryPerBursaryStatusBarChart.js","components/QALPDashboardCharts/LearnerBursaryPerBursaryStatusLineChart.js","components/QALPDashboardCharts/LearnerBursaryPerBursaryStatusPieChart.js","components/QALPDashboardCharts/LearnerPerAllocationStatusBarChart.js","components/QALPDashboardCharts/LearnerPerAllocationStatusLineChart.js","components/QALPDashboardCharts/LearnerPerAllocationStatusPieChart.js","components/Dashboards/QALPDashboard.jsx","components/Routes.jsx","components/widgets/Footer.jsx","components/layout/main.js","components/security/Login.js","components/security/ADAuthConfig.js","components/security/ADLoginHandler.js","components/security/ADLogin.js","components/security/forgot.js","components/security/reset.js","components/security/RoleSelect.js","components/security/ProviderSelect.js","components/security/EmployerSelect.js","components/security/confirmOTP.js","InterfaceVersion.js","App.js","components/widgets/AlertTemplate.jsx","registerServiceWorker.js","index.js","store/configureStore.js","content/images/logos/sims_logo_loading.png","../node_modules/react-pdf/node_modules/pdfjs-dist/build sync","content/templates/PersonUpload_Template_V2.xlsx","content/templates/LearnershipUpload_Template.xlsx","content/templates/SkillsProgrammeUpload_Template.xlsx","content/templates/BursariesUpload_Template.xlsx","content/templates/InternshipUpload_Template.xlsx","content/templates/AETUpload_Template.xlsx","content/templates/CandidacyUpload_Template.xlsx","content/templates/FETPlacementUpload_Template.xlsx","content/templates/QualificationUpload_Template.xlsx","content/templates/UnitStandardUpload_Template.xlsx","content/templates/AchievementUpload_Template.xlsx","content/images/sims_dashboardsidenav_background.png"],"names":["initialState","userDetails","hashdetails","validdetails","isLoading","roleSet","error","userRoles","selectedRole","currentMenuJson","currentUserDetails","currenUserRoles","currentHashDetails","currentValidDetails","reducer","state","action","type","Object","objectSpread","JSON","parse","roleDetails","errorMessage","redirectToLogin","userLoginTimer","userLogoutTimer","autoLogout","menuPermissionsDetails","interfaceVersionShouldBeChecked","interfaceVersionUpdateConfirm","arguments","length","undefined","authUserStart","authUserData","authUserLoginTimer","loginRedirectToLoginPath","authUserSuccess","authUserError","authUserFail","authUserRedirectToLogin","Message","authOTPStart","authOTPSuccess","authOTPFail","authRoleGetStart","authRoleGetSuccess","authRoleGetFail","authRoleSelectStart","newUserDetails","Roles","RoleKey","authRoleSelectSuccess","authRoleSelectFail","authLogout","authProviderSelectStart","authProviderSelectSuccess","authProviderSelectFail","authEmployerSelectStart","authEmployerSelectSuccess","authEmployerSelectFail","authSwitchProfileStart","authSwitchProfileSuccess","authSwitchProfileFail","authForgotPasswordStart","authForgotPasswordSuccess","authForgotPasswordFail","Username","authResetPasswordStart","authResetPasswordSuccess","authResetPasswordFail","authMenuPermissionStart","authMenuPermissionData","authMenuPermissionSuccess","authMenuPermissionError","authMenuPermissionFail","timer","loginPath","CheckError","response","status","json","Error","statusText","localStorage","removeItem","authMenuPermission","dispatch","fetchConfig","method","headers","Accept","Content-Type","Authorization","getItem","fetch","concat","process","then","responseJson","catch","interfaceVersionCheck","ViewUtils","_this","this","classCallCheck","SYSTEM_ERROR_MESSAGE","showMessage","viewRef","message","isNull","messageType","setState","messageStyle","CheckHeader","store","window","globalAppRXStore","getState","auth","parseInt","get","GetInterfaceVersion","actions","console","log","value","authUserDetails","find","_ref","Id","Name","viewMode","config","items","i","buttons","j","modes","visible","split","includes","stringify","id","settings","fields","field","name","formId","getField","required","isStringEmpty","getFields","val","trim","className","inputFields","form","document","getElementById","inputDivs","getElementsByClassName","inputs","getElementsByTagName","push","values","currentValue","validateField","regex","result","valid","hasErrors","toString","match","currentPage","curretRowsPerPage","currentSearchParameters","paged","request","pageSize","searchParameters","queryParameterState","viewName","color","legends","style","text","legend","innerHTML","formRef","url","saveForm","successCallback","errorCallback","updateForm","date","yearOffset","monthOffset","dayOffset","year","getFullYear","day","getDate","month","getMonth","Date","newDate","autoFillDateName","refDateName","_this2","stateDate","tempDate","getTime","defineProperty","autoFillDate","offsetDate","current","setValue","invokeUrl","_this3","trackPromise","expirationDate","ExpiresInMin","setItem","AccessToken","e","clearTimeout","adStore","globalAppADStore","getAllAccounts","logoutPopup","loginResponse","invokeUrlExternal","viewRoute","entityId","_this4","formValue","getValue","props","location","selection","data","fullUrl","MessageType","EntityId","history","pathname","body","_this5","_this6","runConsole","utils","withRouter","connect","UserInfo","onAuthLogout","onAuthSwitchProfile","Authenticated","OTPSent","setTimeout","_React$useState","React","useState","_React$useState2","slicedToArray","anchorEl","setAnchorEl","_React$useState3","open","_React$useState4","setOpen","classes","_useMsal","useMsal","accounts","inProgress","instance","useEffect","react_default","a","createElement","AppBar","position","clsx","appBar","Toolbar","variant","IconButton","edge","aria-label","onClick","handleOpenMenu","Menu_default","Typography","marginRight","marginLeft","fontWeight","event","currentTarget","aria-controls","AccountCircle_default","Menu","keepMounted","Boolean","onClose","MenuItem","Link","to","InteractionStatus","None","Token","useStyles","makeStyles","theme","textItemIconStyle","fontSize","paddingLeft","margin","palette","main","menuListItem","fill","nested","spacing","nestedMore","menuList","MenuList","menuState","setMenuState","toggleMenuItem","arr","newMenuState","map","item","isOpen","Modules","subMenu","subItem","toConsumableArray","getIcon","iconText","Dashboard_default","AccountTreeOutlined_default","Assessment_default","SettingsApplications_default","Build_default","AccountBalance_default","Help_default","renderMenu","menuItems","level","List","component","Url","ListItem","button","ListItemIcon","IconText","ListItemText","disableTypography","primary","ExpandMore_default","ExpandLess_default","Collapse","in","timeout","unmountOnExit","Tooltip","title","backgroundColor","closeMenu","SideBar","_clsx","_clsx2","useTheme","Drawer","anchor","drawer","drawerOpen","drawerClose","paper","fullHeightDrawer","react_custom_scrollbars_lib","autoHide","renderThumbVertical","objectWithoutProperties","assign","layout_menu","Divider","toolbar","direction","ChevronRight_default","ChevronLeft_default","container","display","flexWrap","width","& tr td","verticalAlign","select","minWidth","minHeight","selectEmpty","marginTop","root","EntityForm","forwardRef","ref","setValues","setSettings","viewId","entityLookupController","entityLookupId","org","useCustomSettings","_React$useState5","_React$useState6","setFields","_React$useState7","_React$useState8","fieldParentErrors","setFieldParentErrors","findParameters","_React$useState9","_React$useState10","setKey","fetchSettings","touch","settingsUrl","parseValues","parsedValues","dataURL","defaultHandlerObj","path","getValuePath","objectValue","valueObject","valueProperty","parseValue","dataArrivedHandler","valueChangeHandler","useImperativeHandle","localFields","onCheckFieldValitationArray","parentErrors","validate","parentId","setLegendColor","doGetValue","doUpdateValue","updateValue","doHandleChange","IsExternal","childId","parentParameterName","childParameterName","invalid","isParentInvalid","currentValues","tokens","vo","groupField","validationGroup","getValidationGroup","groupFieldId","getId","Math","random","overflowY","maxHeight","children","handleCheckboxChange","target","checked","handleSelectItemChange","options","selectedId","selectedValue","clearSelectItemChange","handleChange","isFieldRequired","isFieldVisible","addField","splice","removeField","setFieldError","setLookupSelection","warn","setSelection","BaseField","hasError","setHasError","setErrorMessage","reference","setReference","setValueObject","setValueProperty","_React$useState11","_React$useState12","setRequired","requiredRef","useRef","loadingRef","doValidation","validationRegex","validationMessage","validator","script","componentRef","createRef","valueParser","CustomTextFieldComponent","multiline","base","TextField","InputProps","inputProps","label","String","defaultHander","styles","TextArea","onChange","onKeyPress","helperText","disabled","size","hidden","CustomTextField","readOnly","rowsMax","EmployerSearchForm","onKeyUp","menu","& .MuiPaper-root","&:hover","MuiButtonDefault","MuiButtonWhite","MenuButton","handleClose","Button","defaultStyle","aria-haspopup","tooltip","arrow","contextIcon","Add_default","Save_default","Edit_default","Info_default","Visibility_default","Email_default","CloudDownload_default","Backspace_default","Link_default","LinkOff_default","Print_default","CloudUpload_default","AddComment_default","Timeline_default","Update_default","Sms_default","Create_default","VerifiedUser_default","LockOpen_default","VpnKey_default","Delete_default","TransitionComponent","Fade","marginBottom","divider","alignSelf","height","themeButton","&:hover, &:focus","opacity","StyledToggleButtonGroup","withStyles","grouped","border","padding","&:not(:first-child)","borderRadius","shape","&:first-child","ToggleButtonGroup","EnhancedToolbar","alignment","setAlignment","buttonDisability","setButtonDisability","setConfig","itemKeyCounter","buttonKeyCounter","handleAlignment","newAlignment","setButtonDisabled","mode","processToolbarConfig","temp","Paper","elevation","exclusive","key","contextMenu","ToggleButton","buttonClickHandler","icon","Publish_default","background","buttonMenuClickHandler","description","orientation","MULTI_SELECT_CHECKBOX_COL_WIDTH","evaluateTableCellWidth","multiSelect","headCell","headCellCount","widthRatio","desc","b","orderBy","EnhancedTableHead","onSelectAllClick","order","numSelected","rowCount","onRequestSort","headCells","allSelected","SuperResponsiveTable","tableHead","scrollWidth","Checkbox","indeterminate","align","numeric","disablePadding","sortDirection","tableHeaderCell","TableSortLabel","active","property","visuallyHidden","zIndex","scrollPadding","noScrollPadding","tableBody","overflow","textAlign","tableSelected","tableRow","tableWrapper","table","clip","top","tableRowBold","EnhancedTable","setOrder","setOrderBy","selected","setSelected","selectedRowDetails","setSelectedRowDetails","totalNumberOfRows","setTotalNumberOfRows","selectedRow","setSelectedRow","_React$useState13","_React$useState14","page","setPage","_React$useState15","rows","_React$useState16","setRows","_React$useState17","_React$useState18","setAllSelected","_React$useState19","_React$useState20","setScrollWidth","_React$useState21","_React$useState22","dense","_React$useState23","autoFetchData","_React$useState24","fetchEnabled","setFetchEnabled","_React$useState25","_React$useState26","rowsPerPage","setRowsPerPage","actionsToolbar","makeRowBold","_React$useState27","_React$useState28","setSearchParameters","_React$useState29","autoHeader","_React$useState30","setheadCells","updateScrollBarPadding","tbody","offsetWidth","clientWidth","getRequestJson","doGetRequestJson","doHandleClick","selectedIndex","indexOf","newSelected","slice","pageRowIds","n","otherPageSelectedRowDetails","filter","selectedRows","row","newSelectedRowDetails","onSelectionChange","checkSelectedAllValue","getNumberSelected","handleCellClick","contentType","onCellSelectionChange","handleCellValueChange","column","editedRow","cellValueChangeHandler","clearGrid","onGridCleared","clearSelectedRow","onClearSelectedRow","dataUrl","encodedSearchParameters","searchParam","Value","searchParamValue","Description","encodeURIComponent","requiredValidation","onSearchRequiredFieldCheck","checkToken","checkRefreshToken","keys","Data","ColumnwidthRatio","replace","TotalNumberOfRows","onDataArrive","onresize","cellspacing","aria-labelledby","concatArray","concatArrayRowDetails","bodyMaxHeight","array","cmp","stabilizedThis","el","index","sort","stableSort","getSorting","isItemSelected","labelId","counter","hover","role","aria-checked","tabIndex","widgets_Toolbar","highlight","buttonId","ResponsiveTable_TableCellContent","cellChangeHandler","contentValue","editor","TablePagination","rowsPerPageOptions","count","backIconButtonProps","nextIconButtonProps","onChangePage","newPage","onChangeRowsPerPage","TableCellContent","possibleConstructorReturn","getPrototypeOf","call","getFormattedDate","handleDateChange","optionsLoaded","objectReferenceValue","prevProps","displayValue","linkStyle","cursor","textDecoration","handleValueChange","useUtils_cfb96ac9","DateFnsUtils","Grid_Grid","justify","DatePicker","format","inputVariant","KeyboardButtonProps","handleSelectValueChange","allowEmptyValue","option","download","href","Component","Prompt","promptContent","content","setContent","promptTitle","setTitle","okPrompt","handleNo","closePrompt","Dialog","aria-describedby","DialogTitle","DialogContent","DialogContentText","DialogActions","handleOk","handleYes","autoFocus","& > * + *","AlertItem","setMessage","alertStyle","setAlertStyle","alertTitle","NewlineText","msg","str","Alert","severity","toLowerCase","AlertTitle","SearchView","model","setModel","setMessageStyle","showToolBar","toolbarRef","promptOpen","setPromptOpen","keyUpSwitch","setKeyUpSwitch","search","SearchParameters","properties","getOwnPropertyNames","searchParameter","handleObject","searchLabel","allowClear","clearPress","DeleteSweep_default","Search_default","buttonPath","addViewPath","entityViewPath","preSelectedProp","preSelectedPropB","object","handleToolbarButtonClick","toolbarConfig","onLookupValueChange","selectionCallbackMode","objectReferences","_loop","objectReference","SecondDescriptionProp","descriptionProp","SecondDescription","handleSelectionChange","customMessage","handleDataArrived","rowid","columnid","handleCell","handleSearchCell","deleteUrl","useDeletePost","invokeUrlDelete","CardLayout","setLegend","Card","Body","ViewContainer","widgets_Card","paddingTop","topPadding","LinkDialog","dialogTitle","MessageStyle","buttonName","setButtonName","isCancel","linked","closeHandler","fullWidth","maxWidth","disableBackdropClick","paddingRight","cloneElement","postUrl","linkHandler","Type","ProgrammeId","programmeId","selectionId","linkName","usePost","UserSearchForm","UserSearch","handleSelection","selectedUser","FirstName","Surname","IDNo","ID","charCode","showTitle","hasButtonClickHandler","onkeyup","mapStateToProps","menuPermissionList","PermissionList","withMenuPermission","WrappedComponent","rest","permissionArr","menuPermissionItem","MenuId","View","Add","Edit","Delete","onMenuSpecificPermissionItem","urlLocation","permissionSpecificArr","filterParameters","dataField","EmployerSearch","selectedEmployer","linkDialogOpen","viewOnly","OrganisationTradeName","OrganisationSDLNumber","OrganisationLegalName","parameters","selectedLinkType","isCancelled","dialogActionHandler","etqa_UserSearch","formTabContainer","formTabPanel","FormTabContainer","join","TabPanel","other","Box","p","SelectItemComponent","setOptions","setOptionsLoaded","loadFullOptionList","setLoadFullOptionList","hasDependency","dependency","setDependency","hasDefault","clearOptions","clearOptionsHandler","defaultOptions","SelectProps","onOpen","displayEmpty","filterOptions","SelectItem","CustomDatePickerComponent","defaultDate","selectedDate","setSelectedDate","setHours","CustomDatePicker","_React$createElement","AddressCodeItemComponent","provinceId","setProvinceId","municipalityId","setMunicipalityId","districtId","setDistrictId","suburbId","setSuburbId","cityId","setCityId","urbanRuralId","setUrbanRuralId","hasProvinceID","hasUrbanRuralID","hasCityID","hasMunicipalityID","hasDistrictID","hasSuburbID","handleFormValueChange","DistrictID","MunicipalityID","ProvinceID","UrbanRuralID","SuburbID","CityID","addressId","requiredURFlag","AddressCodeItem","autoComplete","CheckboxComponent","FormControlLabel","control","CustomCheckbox","componentForm","street_number","route","sublocality_level_1","locality","administrative_area_level_2","administrative_area_level_1","country","postal_code","handleScriptLoad","updateQuery","controlID","updateGPSAddress","input","google","maps","places","Autocomplete","types","addListener","place","getPlace","address","address_components","addressType","streetnumberpar","routepar","sublocalitylevel1par","localitypar","adminarealevel2par","adminarealevel1par","countrypar","postalcodepar","latitude","geometry","lat","longitude","lng","gpscoordinates","toDegreesMinutesAndSeconds","coordinate","pad","degrees","minutes","seconds","milliseconds","convertDMS","handlePlaceSelect","navigator","geolocation","getCurrentPosition","coords","setBounds","dms","trunc","Number","toFixed","max","GPSCoordinatesComponent","_useState","_useState2","query","setQuery","scripts","src","isMyScriptLoaded","callback","readyState","onreadystatechange","onload","appendChild","loadScript","GPSCoordinatesAPI","LookupFieldComponent","currentSelection","setCurrentSelection","valueMode","valign","LookupField","ConsultantSearchForm","ConsultantSearch","selectedConsultant","MiddleName","a11yProps","EmployerForm","tabValue","setTabValue","postalCodeValue","setPostalCodeValue","physicalCodeValue","setPhysicalCodeValue","handleTabChange","newValue","handleUsePhysicalAddressForPostal","cellPadding","editPermission","boxShadow","borderBottom","Tabs","indicatorColor","textColor","Tab","wrapped","consultant_ConsultantSearch","PhysicalProvinceID","PhysicalMunicipalityID","PhysicalDistrictID","PhysicalUrbanRuralID","PhysicalSuburbID","PhysicalCityID","PostalProvinceID","PostalMunicipalityID","PostalDistrictID","PostalUrbanRuralID","PostalSuburbID","PostalCityID","Employer","employerDetails","LegalName","SDLNumber","newValues","ConsultantID","ConsultantNumber","ConsultantEmail","save","closeView","employerId","employerName","employerSDLNo","isAdd","Document","getEmployerDetails","EmployerId","clear","WorkplaceSearchForm","WorkplaceSearch","selectedWorkplace","CompanyName","WorkplaceForm","Workplace","workplaceDetails","WorkplaceID","WorkplaceName","Comments","moduleName","commentsDataUrl","Documents","IsSkills","showEmployerDocumentType","showLearnerDocumentType","DocumentTypeID","documentsDataUrl","Emails","Email","Subject","emailsDataUrl","CommentsDialog","comment","setComment","& .MuiOutlinedInput-inputMultiline","scroll","EntityID","pdfjs","GlobalWorkerOptions","workerSrc","version","DocumentViewer","pageNumber","numPages","setNumPages","file","entry","base64","onLoadSuccess","onDocumentLoadSuccess","imageStyle","errorMessageDisplay","DocumentUploadComponent","initialFile","viewerFile","setViewerFile","files","setFiles","loading","setLoading","multiple","show","showUploadFileMessage","setShowUploadFileMessage","setSelectionAsValue","setUpload","accept","allFiles","reader","FileReader","readAsDataURL","fileInfo","round","onUploadHandler","onloadend","htmlFor","buttonLabel","onProcessHandler","downloadUrl","filename","showViewer","widgets_DocumentViewer","uploadFileMessage","DocumentUpload","DocumentsDialog","setFilename","setSize","setBase64","setType","setEntityId","lookupArray","setLookupArray","lookupArrayID","setLookupArrayID","getEmployerDocumentType","getLearnerDocumentType","cancel","handleChecklistArrayCI","lookupitem","OriginalFileName","DocumentRelatesID","EmailDialog","toAddress","setToAddress","subject","setSubject","setBody","ToAddress","emailSubject","emailBody","showMultilineToAddress","comments","documents","emails","WorkplaceCRM","CommunicationType","dialogues","commentsDialogOpen","emailsDialogOpen","documentsDialogOpen","emailAddress","FileDownload","section","blob","Blob","base64ToArrayBuffer","Base64","URL","createObjectURL","link","click","messsageAlert","submitted","binary_string","atob","len","bytes","Uint8Array","charCodeAt","buffer","saveMessage","hasSaveError","SetCommunicationType","Fragment","placeholder","email","dist_index_esm","added","postAddHandler","postUploadHandler","AccessorSearchForm","AssessorSearch","selectedAssessor","RegistrationNumber","FacilitatorSearch","selectedFacilitator","FacilitatorSearchForm_AccessorSearchForm","ProjectOwnerSearch","selectedProjectOwner","ProjectOwnerSearchForm_AccessorSearchForm","AuditTrialSearch","selectedLinkStandards","AssessorID","handleToolbarButtonMenuClick","formControl","SchoolEMISSearchForm","labelWidth","setLabelWidth","labelRef","FormControl","InputLabel","OutlinedInput","ev","SchoolEMIS","SchoolEMISSearch","Code","STATSSAAreaCodeSearchForm","STATSSAAreaCodeSearch","AreaCode","MuiSelectSelectMenu","& .MuiSelect-selectMenu","AssessorForm","assessorRef","Assessor","AssessorDetails","Person","close","AssessorName","AssessorIDNo","alert","enabled","FacilitatorForm","facilitatorRef","Facilitator","FacilitatorDetails","FacilitatorID","FacilitatorName","FacilitatorIDNo","ProjectOwnerForm","projectownerRef","ProjectOwner","ProjectOwnerDetails","ConsultantForm","consultantRef","Consultant","ConsultantDetails","ConsultantName","ConsultantIDNo","ConsultantCRM","LoadingIndicator","usePromiseTracker","promiseInProgress","justifyContent","alignItems","react_loader_spinner_default","CustomSwitch","switchBase","&$checked","&$checked + $track","track","Switch","TableHead","TableRow","TableCell","hasVScroll","setHasVScroll","setDense","scrollHeight","clientHeight","res","Table","Table_EnhancedTableHead","newSelecteds","TableBody","Table_TableCellContent","formatDate","BDASearchForm","organisationLegalName","organisationTradeName","OrganisationSdlNUmber","BDASearch","organisationSDLNUmber","bind","Table_EnhancedTable","PersonSearchForm","PersonSearch","GrantSearchForm","disableFields","GrantSetupSearch","selectedGrant","TrancheID","hideFields","FinancialYearID","DiscretionaryGrantTypeID","Client","LearnerSearchForm","grantsetup_GrantSetupSearch","LearnerSearch","QualificationSetupSearchForm","QualificationSetupSearch","SAQAQualificationID","SAQAQualificationTitle","exclusions","Exclusions","personId","PersonID","_model","clearSearch","OFOSearchForm","OFOCode","OFODescription","OFOSearch","InstitutionSearchForm","InstitutionName","InstitutionType","InstitutionSearch","EducationalHistoryDocuments","LearnerDocumentDialog","fileName","setHighestEducation","setEeducationTitle","setInstitute","HighestEducation","EducationTitle","Institute","clearValues","_setFilename","LearnerForm","setdocumentsDialogOpen","setEHdocumentsDialogOpen","DocURL","setDocURL","showTable","setshowTable","setehDocURL","showLeanerDialog","setShowLeanerDialog","setShowExperientialDialog","leanerFileName","setLeanerFileName","getDescription","getOFODescription","setAddEducationHistoryFormVisible","scrollButtons","program_InstitutionSearch","react","handleCellSelect","program_QualificationSetupSearch","program_OFOSearch","learnerRef","Learner","LearnerDetails","LearnerID","LearnerName","learnerID","learnerNames","LearnerCRMBulkUploadDialog","missingDocTypesArray","LearnerCRM","displayMissingDocTypes","missingDocDailogOpen","getMissingDocTypes","postUrls","docTypeUrls","LearnerCRMBulkUpload","documentPageInfo","savedSuccessfully","handleArrayChange","pageInfo","itemIndex","findIndex","PageNumber","dropDownItem","getArrayValue","uploadDocument","saveObject","FileInfo","DocumentPageInfo","getlookup","pages","ExperientialLearningDocuments","ExperientialLearningDialog","ReferenceTitleID","ExperienceWork","ExperienceWorkDateFrom","ExperienceWorkDateTo","ReferenceTitle","NatureOfWork","ReferenceName","ReferenceSurname","ReferenceContactNumber","WhereExperientialWorWasUndertaken","EmploymentHistoryDocuments","EmploymentHistoryDialog","Position","Company","Duration","Location","PersonForm","ELdocumentsDialogOpen","setELdocumentsDialogOpen","EHdocumentsDialogOpen","elDocURL","setelDocURL","ehDocURL","ELconfig","EHconfig","setDialogOpen","setelDialogOpen","setehDialogOpen","colSpan","etqa_SchoolEMISSearch","etqa_STATSSAAreaCodeSearch","es_button","personRef","personDetails","PersonDetails","personData","getEntityViewTitle","SkillsProgramSetupSearchForm","LearnerSkillsProgram","SkillsProgrammeID","permissions","selectedLearnerSkillsProgram","ProjectID","SkillsProgramTitle","ProgrammeID","AbsorptionSetupSearchForm","LearnerAbsorption","selectedLearnerProgramme","SponsorshipSetupSearchForm","LearnerSponsorship","TrancheSetupID","TrancheSetupSponsorshipTypeID","EnterpriseDevelopmentSetupSearchForm","LearnerEnterpriseDevelopment","LearnerSupplierDevelopment","SupplierDevelopmentSetupSearchForm_AbsorptionSetupSearchForm","BursarySetupSearchForm","LearnerBursary","BursaryID","selectedLearnerBursary","BursaryTitle","UnitStandardSetupSearchForm","LearnerUnitStandard","UnitStandardID","selectedLearnerUnitStandard","SAQAUnitStandardID","SAQAUnitStandardTitle","CandidacySetupSearchForm","LearnerCandidacy","CandidacyID","selectedLearnerCandidacy","InternshipsSetupSearchForm","LearnerInternship","InternshipID","selectedLearnerInternship","AETSetupSearchForm","LearnerAET","AETID","selectedLearnerAET","AETProgrammeCode","AETProgrammeDescription","FETSetupSearchForm","LearnerFET","FETID","selectedLearnerFET","LearnerQualification","QualificationID","selectedLearnerQualification","LearnershipID","selectedLearnerLearnership","UnitStandardsTable","TotalCredits","setTotalCredits","Credits","setCredits","MinimumElectiveCredits","setMinimumElectiveCredits","TotalElectiveCredits","setTotalElectiveCredits","paddingBottom","handleDataArrive","modelTemplate","UnitStandardSetupSearch","programmeType","ProgrammeType","modelClearTemplate","LearnerQualificationUSSearch","_this$setState","selectedUnitStandard","propmtOpen","QualificationTitle","postLinkHandler","program_UnitStandardSetupSearch","unlinkUnitstandard","TradeSetupSearchForm","LearnerTrade","TradeID","selectedLearnerTrade","TradeProgrammeCode","TradeProgrammeDescription","LearnershipSetupSearchForm","LearnerLearnership","LearnershipProgrammeCode","LearnershipProgrammeDescription","LearnerLearnershipAchievement","LearnerLearnershipID","selectedLearnership","LearnerUnitStandardAchievement","UnitStandardProgrammeCode","UnitStandardProgrammeDescription","LearnerQualificationAchievement","LearnerQualificationID","selectedQualification","QualificationProgrammeCode","QualificationProgrammeDescription","LearnerSkillsProgrammeAchievement","LearnerSkillsProgrammeID","selectedSkillsProgramme","SkillsProgrammeProgrammeCode","SkillsProgrammeProgrammeDescription","LearnerLearnershipAssessment","LearnershipCode","LearnershipTitle","ViewLearnershipAchievementUS","LearnershipDetails","ViewSkillsProgrammeAchievementUS","SkillsProgrammeDetails","ViewQualificationAchievementUS","QualificationDetails","ModeratorSearchForm","ModeratorSearch","selectedModerator","AssessmentHeaderForm","assessor_AssessorSearch","controllerName","formValues","currentDate","AssessmentDate","moderator_ModeratorSearch","ModerationDate","ViewLearnershipAssessment","updateUSDocuments","removeAssessments","closeOff","qaApproval","successCloseOffandQA","handleToolbarButtonClickClose","GetQAPermission","selectedUnitStandards","AssessmentID","updateUSd","UnitStandardIDs","Result","GetClosePermission","ViewSkillsProgrammeAssessment","ViewBursaryAssessment","ViewQualificationAssessment","ViewUnitStandardAssessment","successQA","LearnerUnitStandardAssessment","LearnerQualificationAssessment","LearnerSkillsProgrammeAssessment","selectedLearnerSkillsProgramme","SkillsProgrammeCode","SkillsProgrammeTitle","LearnerBursaryAssessment","BursaryCode","ModeratorForm","moderatorRef","Moderator","ModeratorDetails","ModeratorID","ModeratorName","SkillsProgramSetupSearch","OutComeStatusForm","FormDialog","isView","datamodel","entityInfo","multiEntity","IDs","hasDocumentUpload","saveUrl","usePut","ModeratorInterventionAudit","auditDialogOpen","selectedInterventionRecord","addFormRef","SkillsProgrammeSearch","updateDialogOpen","successUnlinkCallback","removeMessage","removeMessageStyle","unsuccessfulUnlinkCallback","SAQASkillsProgrammeID","SAQASkillsProgrammeTitle","selectedSiteVisit","program_SkillsProgramSetupSearch","moderator_ModeratorInterventionAudit","unlinkSkillsProgramme","BursarySetupSearch","BursarySearch","selectedBursary","program_BursarySetupSearch","unlinkBursary","QualificationSearch","qualificationTitle","unlinkQualification","LearnershipSetupSearch","LearnershipSearch","program_LearnershipSetupSearch","unlinkLearnership","UnitStandardSearch","ProviderSearchForm","ProviderSearch","selectedProvider","TradeName","ProviderAccreditationNumber","ModeratorProviderSearch","provider_ProviderSearch","unlinkModeratorProvider","ModeratorRegistrationDetailsForm","RegistrationStartDate","autoSetDate","InputProp","RegistrationEndDate","ModeratorRegistrationDetails","AssessorInterventionAudit","skillsProgrammeHeadCells","AssessorSkillsProgrammeSearch","formDialogOpen","OutcomeStatusForm_OutComeStatusForm","assessor_AssessorInterventionAudit","BursaryHeadCells","AssessorBursarySearch","FacilitatorInterventionAudit","FacilitatorSkillsProgrammeSearch","facilitator_FacilitatorInterventionAudit","qualificationHeadCells","AssessorQualificationSearch","FacilitatorQualificationSearch","learnershipHeadCells","AssessorLearnershipSearch","AssessorLearnershipID","FacilitatorLearnershipSearch","FacilitatorLearnershipID","facilitatorName","AssessorLearnershipUSSearch","LearnershipType","selectedLinkTypeDesc","FacilitatorLearnershipUSSearch","registrationHistoryHeadCells","ModeratorRegistrationHistory","selectedAuditTrial","moderator_AuditTrial","ModeratorCRM","EditableContext","createContext","EditableCell","_React$Component","_getPrototypeOf2","_len","args","Array","_key","apply","editing","toggleEdit","focus","_this$props","record","handleSave","validateFields","renderCell","_this$props2","dataIndex","es_form","Item","getFieldDecorator","rules","initialValue","es_input","node","onPressEnter","onBlur","inherits","createClass","_this$props3","editable","restProps","Consumer","ExcelPage","newData","fileHandler","fileList","fileObj","documentGenerated","ExcelRenderer","err","resp","newRows","Initials","TitleID","AlternateIDTypeID","DateOfBirth","GenderID","EquityID","NationalityID","HomeLanguageID","CitizenResidentialStatusID","SeeingID","HearingID","CommunicatingID","WalkingID","RememberingID","SelfcareID","TelephoneNumber","FaxNumber","CellPhoneNumber","EMail","PhysicalCode","PhysicalAddress1","PhysicalAddress2","PhysicalAddress3","PostalCode","PostalAddress1","PostalAddress2","PostalAddress3","SocioEconomicStatusID","cols","AssessmentEndDate","handleSubmit","asyncToGenerator","regenerator_default","mark","_callee","wrap","_context","prev","next","documentName","stop","handleDelete","handleAdd","_this$state","age","gender","columns","components","cell","col","onCell","es_row","gutter","es_col","span","personUploadTemplate","upload","beforeUpload","onRemove","showUploadList","Icon","rowClassName","dataSource","BulkIpload","hight","personExcelPage_ExcelPage","LearnershipExcelPage","LearnerIDNo","LeadProviderSDLNumber","LeadEmployerSDLNumber","Sponsorship","ProjectCode","FinancialYear","CommencementDate","CompletionDate","SocioEconomicStatus","LGANumber","AgreementReferenceNumber","learnershipUploadTemplate","rel","LearnershipExcelPage_LearnershipExcelPage","SkillsExcelPage","ProviderSDLNumber","EmployerSDLNumber","skillsprogrammeUploadTemplate","SkillsExcelPage_SkillsExcelPage","BursariesExcelPage","getJsDateFromExcel","excelDate","yyyy","mm","dd","Project","BursaryStartDate","BursaryEndDate","NQFLevel","ProviderSDLNo","EmployerSDLNo","QualificationSAQA","CumulativeSpend","bursariesUploadTemplate","BursariesExcelPage_BursariesExcelPage","InternshipExcelPage","InternshipStartDate","InternshipEndDate","InternshipType","QualificationAchievementDate","YearOfStudy","PlacementType","internshipUploadTemplate","InternshipExcelPage_InternshipExcelPage","AETExcelPage","AETProgrammeTitle","AETStartDate","AETEndDate","StatusEffectiveDate","MostRecentRegistrationDate","aetUploadTemplate","AETExcelPage_AETExcelPage","CandidacyExcelPage","CandidacyStartDate","CandidacyEndDate","ReferenceNumber","candidacyUploadTemplate","CandidacyExcelPage_CandidacyExcelPage","FETExcelPage","WorkplaceStartDate","WorkplaceEndDate","HighestEducationLevel","QualificationCode","ContractNumber","IsIndustrySpecific","IndustryNonSpecific","AmountSpent","FET","FETType","ContactPerson","ContactPersonEmailAddress","fetPlacementUploadTemplate","FETExcelPage_FETExcelPage","QualificationExcelPage","qualUploadTemplate","QualificationExcelPage_QualificationExcelPage","UnitStandardExcelPage","UnitStandardCode","unitstandardUploadTemplate","UnitStandardExcelPage_UnitStandardExcelPage","AchievementExcelPage","LearningProgrammeType","LearningProgrammeCode","ModeratorIDNo","AssessmentStatus","achievementUploadTemplate","AchievementExcelPage_AchievementExcelPage","RegistrationHistorySearch","AuditTrial","facilitator_AuditTrial","LearnerSkillsProgramForm","TerminationCheck","terminationReasonCheck","StatusCheck","programmeID","SocioCheck","trancheSetupDetailsHandler","employer_EmployerSearch","getCurrentRole","SkillsProgramRef","AddLearnerSkillsProgram","SkillsProgramDetails","SkillsProgramCode","CurrentProgramme","CreateNewFlag","NavPerm","SkillsProgramSetupDetails","ProviderID","InterventionID","StartDate","EndDate","lid","LearnerBursaryForm","handleReplacementChange","onChangeBursaryTypeIDHandler","xs","lg","BursaryRef","AddLearnerBursary","BursaryTypeID","BursaryDetails","BursarySetupDetails","newModel","NQFLevelID","LearnerQualificationSearchSearch","ProgramDocuments","ProgramDocumentsDialog","docType","setDocType","DocumentType","LearnerInternshipForm","SponsorCheck","LearnerQualificationSearch","InternshipRef","AddLearnerInternship","InternshipDetails","assertThisInitialized","InternshipSetupDetails","keep","PivotalProgrammeSearchForm","PivotalProgrammeName","SAQACode","PivotalProgrammeSearch","LearnerLearnershipForm","newregend","workplace_WorkplaceSearch","LearnershipRef","AddLearnerLearnership","LearnershipSetupDetails","LeadProviderID","LearnerQualificationForm","QualificationRef","AddLearnerQualification","SAQAQualificationCode","QualificationSetupDetails","LearnerUnitStandardForm","checkProviderParam","unitStandardRef","AddLearnerUnitStandard","unitStandardDetails","SAQAUnitStandardCode","unitstandardSetupDetails","AETSetupSearch","LearnerAETForm","program_AETSetupSearch","AETRef","AddLearnerAET","AETDetails","AETSetupDetails","AETTitle","LearnerFETForm","FETRef","AddLearnerFET","FETDetails","FETetupDetails","LearnerCandidacyForm","CandidacyRef","AddLearnerCandidacy","CandidacyDetails","CandidacyetupDetails","TradeSetupSearch","TradeTitle","ProjectSearchForm","ProjectSearch","selectedProject","LearnerTradeForm","_React$createElement2","_React$createElement3","program_TradeSetupSearch","TradeRef","AddLearnerTrade","TradeDetails","TradeSetupDetails","unitStandardHeadCells","successfulRemoveCallback","unsuccessfulRemoveCallback","AssessorProviderSearch","unlinkAssessorProvider","FacilitatorProviderSearch","unlinkFacilitatorProvider","AssessorRegistrationDetailsForm","AssessorRegistrationDetails","FacilitatorRegistrationDetailsForm","FacilitatorRegistrationDetails","Sms","smsDataUrl","SmsDialog","number","setNumber","dataUrls","AssessorCRM","smsDialogOpen","Sms_Sms","sms","FacilitatorCRM","EmployerCRM","FacilitatorProjectSearch","mneDataUrl","DocumentDialog","documentRelates","setdocumentRelates","Comment","mne","OrganisationCRM","monitoringComentDialogDialogOpen","organisationID","organisationName","sdlnumber","MonitoringAndEvaluationComment_Comments","MonitoringAndEvaluationCommentDialog_CommentsDialog","AddEditTrancheForm","InterventionTypeRender","intervention","checkBValue","manageReqFlag","manageReqFlagV2","fieldName","LabelRenderForEnterpriseSupplier","redirect","projectowner_ProjectOwnerSearch","ComponentToRender","InterventionSearch","_ComponentToRender","_ComponentToRender2","_ComponentToRender3","InterventionTypeChange","showAbledFields","showDisabledFields","facilitator_FacilitatorSearch","facilitatorRedirect","InterventionTypeRenderForEnterpriseSupplier","TrancheSetupEnterpriseSupplier","OtherRenderForEnterpriseSupplier","maxLength","TrancheRef","AddEditTranche","TrancheDetails","ClientID","ClientSDLNumber","showAbled","showDisabled","TrancheSetupDisabilityID","NumberOfLearnersDisabled","NumberOfLearnersRemainingDisabled","NumberOfLearners","NumberOfLearnersRemaining","DownloadSLAProjectAnnexure","resubmit","GrantID","ProjectNumber","EmployerID","trancheData","redirectToClient","redirectToFacilitator","LinkTrancheForm","getTrancheType","identity","updateFormRef","TrancheHistoryID","selectedTrancheRec","listedTranches","totalAmount","GetTotalAmounts","currentAmount","currentTotalAmount","GrantSetupElectiveUSSearchModule","GrantSetupElectiveUSSearch","selectedUnitStandardTitle","program_GrantSetupElectiveUSSearchModule","removeSkillsProgramme","TrancheSetupProjectCostForm","showEnterpriseDevelopmentAmount","TrancheSetupProjectCost","showForm","getTrancheSetupProgrammeType","ProgrammeTypeID","LearnerSearchForm_LearnerSearchForm","GrantSetupLearnerSearch","learnerHeadCellsColumns","learnerHeadCells","selectedLearner","deleteRecord","errResult","Item1","Item2","Learners","learner_LearnerSearch","controls_LearnerSearch","GrantSetupCRM","showTableDocuments","GrantSetupCRMBulkUploadDialog_LearnerCRMBulkUploadDialog","GrantSetupCRMBulkUpload","TrancheSetupEAPTargetDetailsForm","TrancheSetupEAPTargetAddDialog","grantsetup_TrancheSetupEAPTargetDetailsForm","TrancheSetupEAPTargetEditDialog","TrancheSetupEAPTarget","addDialogOpen","editDialogOpen","Letterhead","AuthorisedSignatory","Reasons","remove","ProcessingNav","GenerateClaimSearchForm","GenerateClaimSearch","handleSelections","selectedClaims","generateClaimBulk","TrancheTypeID","ApproveClaimSearchForm","ApproveClaimSearch","downloadClaim","claimApprove","GrantClaimFormReversalSearchForm","GrantClaimReversalDetailForm","GrantClaimFormReversalSearch","DownloadClaimSearch","selectedClaim","ClaimNumber","ApprovedID","DownloadClaimSearchForm_GrantClaimFormReversalSearchForm","ProcessSearchFormShared","GenerateBatchSearch","downloadBatch","DownloadBatchSearch","AXProcessorSearch","downloadBatchForm","processBatch","GrantReversalsSearchForm","GrantReversalsSearch","reverseGrants","BulkAssociationSearchForm","BulkGrantAssociation","associationSelectedGrants","selectedAssociations","LearnerCount","GrantsLinked","DiAssociationDetailForm","BulkGrantDeAssociation","diassociationSelectedGrants","TrackingAddTaskForm","setFile","TaskCheck","editFormRef","TrancheTracking","selectedTask","successfulTaskRemoveCallback","unsuccessfulTaskRemoveCallback","editFormDialogOpen","removeTask","ProviderCRM","providerName","providerSDLNumber","AssessorIDDocument","unlinkMessage","unlinkMessageStyle","ProviderForm","AccreditationTypeCheck","providerRef","Provider","ProviderDetails","AccreditationCheck","RequiredFields","ProviderAccreditationStatusID","AccreditationStartDate","DHETRegistrationStartDate","DHETRegistrationEndDate","DHETRegistrationNumber","isAccredited","getProviderDetails","ProviderId","providerID","requiredFields","OutComeForm","outcomeRef","Outcome","OutcomeDetails","ProviderUnitStandardID","ModeOfDelivery","ProgramOutcome","Specialisation","MonitoringAndEvaluationForm","GridItemComponent","changedColumn","valueRow","GridItem","EditableTable","ProviderMonitoringAndEvaluation","isUpdate","selectedTrade","TradeSetupSearchForm_TradeSetupSearchForm","tableRef","ProviderTradeSearch","selectedTrades","datesToUpdate","trade","TrainingEndDate","update","Objects","EditableContent","Trades","Trade_TradeSetupSearch","removeTrades","ProviderAddContactForm","CellphoneNumber","ProviderContactSearch","selectedContact","successfulContactRemoveCallback","unsuccessfulContactRemoveCallback","removeContact","ProviderAddUserForm","ProviderUsersSearch","successfulUserRemoveCallback","unsuccessfulUserRemoveCallback","removeUser","ProviderSiteVisitForm","ProviderSiteVisitsSearch","removeSiteVisit","ProviderAccreditationForm","BEEProvider","ProviderAccreditation","providerDetails","ProviderAccreditationHistory","ProviderLearner","selectedLearnerID","viewLearner","removeLearner","ProviderInterventionAudit","widthRation","ProviderUnitStandardSearch","provider_ProviderInterventionAudit","removeUnitStandards","ProviderQualificationSearchModule","ProviderQualificationSearch","selectedQualificationTitle","viewRecords","ProviderQualificationID","program_ProviderQualificationSearchModule","removeQualifications","SkillsProgrammeOutcomeForm","ProviderSkillsProgramSearchModule","ProviderSkillsProgrammeSearch","selectedSkillsProgrammeTitle","ProviderSkillsProgrammeID","SkillsTitle","program_ProviderSkillsProgramSearchModule","ProviderSkillsProgrammeUSSearch","BursaryOutcomeForm","ProviderBursarySearchModule","ProviderBursarySearch","selectedBursaryTitle","ProviderBursaryID","program_ProviderBursarySearchModule","removeBursary","ProviderLearnershipUSSearch","ProviderLearnershipID","ProviderQualificationUSSearch","LearnershipOutcomeForm","ProviderLearnershipSearch","selectedLearnershipTitle","removeLearnerships","ProviderAssessorSearch","selectedPerson","removeAssessors","ProviderModeratorSearch","removeModerator","ExternalModeratorSearchForm","firstName","middleName","surname","toolbarButtons","ExternalModeratorSearch","idNumber","UnitStandardForm","handleReRegisteredChange","_React$createElement5","LastEnrolmentDate","LastAchievementDate","IsReregistered","NewRegistrationStartDate","NewRegistrationEndDate","NewLastEnrolmentDate","NewLastAchievementDate","IsReplacement","UnitStandardSetup","ReplacementUnitStandardID","QualityAssuranceBodyID","QualificationForm","dateChange","newlastenrolment","newlastachievement","esm_Form","Row","Col","md","savedOriginalFileName","qualificationRef","Qualification","handleFileUpload","initialUnitStandardType","QualificationTypeID","qualificationSetupDetails","currentOriginalFileName","qualType","QualificationType","OFOOccupationID","QualificationToBeReplacedID","defaultModel","qualificationId","credits","selectedAETProgramme","AETSetupSearchForm_AETSetupSearchForm","AETSetupForm","AETSetup","AETProgrammeID","TradesDetailsSetupForm","tradeRef","TradeSetup","GeneratedOFOVersionNumber","ArtisanCode","ArtisanTitle","LearnershipUnitStandardSearch","LearnershipSetupForm","leanershipRef","LearnershipSetup","initialLearnershipType","learnershipSetupDetails","LearnershipTypeID","LearnershipName","LearnershipSetupCRMBulkUploadDialog","LearnershipSetupCRM","LearnershipSetupCRMBulkUpload","SAQAXMLImportForm","saqaxmlimportRef","SAQAXMLImport","errorCallBack","ShortCourseSetupSearchForm","courseCode","courseTitle","ShortCourseSetupSearch","ShortCourseCode","ShortCourseTitle","SkillsProgrammeSetup","leadsToQualification","setLeadsToQualification","skillsRef","SkillsProgramme","skillsProgrammeSetupDetails","typeId","SkillsProgrammeTypeID","skillsID","SkillsProgrammeName","SkillsProgrammeSetupCRMBulkUploadDialog","SkillsProgrammeSetupCRM","SkillsProgrammeSetupCRMBulkUpload","BursarySetup","bursaryRef","Bursary","BursarySetupTypeID","bursaryID","BursaryName","BursarySetupForm_BursarySetup","BursarySetupCRMBulkUploadDialog","BursarySetupCRM","BursarySetupCRMBulkUpload","ArtisansSetupSearchForm","ArtisansSetupSearch","EmployerLearnerSearch","EmployerProjectSearch","EmployerAddUserForm","employerUsersSearch","EmployerAddContactForm","employerContactSearch","EmployerAddBillingContactForm_EmployerAddContactForm","dot","line","spacer","vDot","secondary","visitedLine","vText","LinearFlowHeading","steps","segmentPercentage","currentIndex","graphicsCounter","step","whiteSpace","AddLearnerIDUploadForm","HasSAIDcheck","isSouthAfricanFlag","nextToolbarConfig","createNewToolbarConfig","AddLearnerSearch","formData","searchResult","searched","currentIdNumber","isSouthAfrican","HasSouthAfricanID","HandleDropChange","DateofBirth","idnumberDetails","residentailStatus","charAt","prevState","stepHandler","currentParameters","RoleRecordFound","DataValid","InvalidDataMessage","isEmptyObject","fileUploadHandler","processFileHandler","PersonFound","IdVerificationMessage","IdValid","AddLearnerDetails","permissionItem","learnershipFormRef","skillsProgramFormRef","unitStandardFormRef","qualificationFormRef","tradeFormRef","internshipFormRef","bursaryFormRef","aetFormRef","fetFormRef","candidacyFormRef","AddLearnerProgram","Intervension","selectedIntervension","handleProgrammeFormValueChange","historyHeadCells","activeProgrammeHeadCells","AccreditationHistory","AddLearnerAccreditationHistory","openDialog","AccreditationHistory_AccreditationHistory","AddLearnerFlow","currentStepIndex","learnerDetails","learnerProgrammeRegistration","program","forward","dataObject","LearnerLearnershipDto","SecondaryProvider","Scope","SecondaryProviderID","LeadEmployerID","SecondaryEmployer","SecondaryEmployerID","LearnerSkillsProgrammeDto","LearnerUnitStandardDto","LearnerQualificationDto","LearnerTradeDto","LearnerInternshipDto","LearnerBusaryDto","LearnerAETDto","LearnerFETDto","LearnerCandidacyDto","learnerData","increament","learner_AddLearnerSearch","learner_AddLearnerDetails","learner_AddLearnerAccreditationHistory","AddLearnerPrograms","AddPersonIDUploadForm","AddPersonSearch","AddPersonDetails","AddPersonFlow","PersonDto","person_AddPersonSearch","person_AddPersonDetails","AddPersonRoleIDUploadForm","AddPersonRoleSearch","identityDetails","personRoleDetails","registrationDetails","linkToolbarRef","AddAssessorProgrammeDetails","selectedProgrammeId","nextButtonDisabled","scopeDetails","qualifications","skillsProgrammes","unitStandards","qualificationIds","getIdList","skillsProgrammeIds","unitStandardIds","learnershipIds","learnerships","Intervention","selectedIntervention","assessorName","linkToolbarConfig","programmeName","programmes","newProgrammes","newIds","AssessorAssessmentEndDate","saveProgramme","saveSkillsProgrammes","saveUnitStandards","saveQualifications","saveLearnerships","AddAssessorTrainingProvider","selectedTrainingProviderId","trainingProviderDetails","trainingProviders","trainingProviderIds","newTrainingProviders","saveTrainingProvider","AddAssesorFlow","navigate","assessorData","RegistrationDetails","TrainingProviders","person_AddPersonRoleSearch","alreadyExistErrorMessage","AddAssessorDetails","AddAssessorRegistrationDetails","assessor_AddAssessorTrainingProvider","assessor_AddAssessorProgrammeDetails","input:hover ~ &","input:disabled ~ &","checkedIcon","&:before","StyledRadio","Radio","disableRipple","handleScopeSelected","scopeDescription","AutoGrabAssessorScopes","scopeSelected","_objectSpread4","RadioGroup","defaultValue","AddModeratorTrainingProvider","ModeratorAssessmentEndDate","trainingProviderIdList","AddModeratorFlow","ModeratorData","AddModeratorDetails","AddModeratorRegistrationDetails","moderator_AddModeratorTrainingProvider","AddModeratorProgrammeDetails","AddFacilitatorDetails","AddFacilitatorProgrammeDetails","FacilitatorAssessmentEndDate","AddFacilitatorTrainingProvider","AddFacilitatorFlow","facilitatorData","facilitator_AddFacilitatorDetails","AddFacilitatorRegistrationDetails","facilitator_AddFacilitatorTrainingProvider","facilitator_AddFacilitatorProgrammeDetails","AddConsultantDetails","AddConsultantFlow","consultantData","consultant_AddConsultantDetails","AddProjectOwnerDetails","projectowner_AddProjectOwnerDetails","BarChart","series","dataLabels","rotation","y","fontFamily","Highcharts","chart","renderTo","subtitle","xAxis","labels","yAxis","min","pointFormat","plotOptions","colum","highChartsRender","chartOptions","hoverData","sm","Header","as","fullHeightCard","PieChart","allowPointSelect","showInLegend","styledMode","categories","Dashboard","barchart","piechart_piechart","SDFDashboard","OrganisationId","SDFID","IsDashboard","sdfName","LookupUrl","SDFStatus","OrganisationID","formArray","getDashboardDetails","newsearchParameters","class","bgcolor","StakeholderDashboard","StakeholderID","stakeholderName","Status","toolbarRef2","SkillsDashboard","isDashboard","handleSelectionChange2","toolbarConfig2","QualificationunitStandardSearch","SkillsUnitStandardSearch","BursaryUnitStandardSearch","SDFSearchForm","SDFSearch","selectedOrganisation","isLinkSearch","RoleSearchForm","RoleSearch","selectedRoleID","RoleName","selectedRoleName","RoleSAQACode","selectedSAQACode","selectedFirstName","selectedSurname","UserSearchForm_UserSearchForm","UserDetailForm","UserDetails","postCloseHandler","passwordDialogOpen","userID","UnlockAccount","resetPassword","UserRoleForm","UserID","PermissionSearch","selectedUserRole","successfulUserRoletRemoveCallback","unsuccessfulUserRoleRemoveCallback","LastName","removeUserRole","ClientsEmailsSearchForm","ClientsEmailsSearch","dialogOpen","AudienceOptionsForm","PrimarySDF","SecondarySDF","TrainingProvider","Assessors","Moderators","Employers","userRef","AudienceOptions","EmailAddForm","EmailAdd","SkillsLetterCreationSearchForm","SearchForm_EntityForm","SkillsLetterCreationSearch","CRMLetterGrantTypeID","CRMLetterTypeID","SkillsLetterCreationForm","onTextChange","SkillsLetterCreation","BodyACharactersLeft","BodyBCharactersLeft","SkillsQueryReasonFormSearch","SkillsQueryReasonSearch","selectedQueryReason","SkillsQueryReasonForm","SkillsQueryReason","LetterType","SkillsRejectionReasonSearchForm","SkillsRejectionReasonSearch","selectedRejectReason","SkillsRejectionReasonForm","SkillsRejectionReason","SkillsTNumberConversionForm","TemporaryNumber","PossibleSDLNumber","TNumberConversionSearch","TemporaryNumberme","SkillsTNumberConversionCreationForm","SkillsTNumberConversion","CreateBenefitsDescriptionSearchForm","CreateBenefitsDescriptionSearch","BenefitsDescriptionSearchForm","Create","BenefitsDescriptionsSearch","CreateInterventionTitlesForm","CreateInterventionTitles","BenefitsTargetAddForm","BenefitsTargetAddFormSearch","BenefitsTargetsForm","BenefitsTargetsSearch","InterventionTitlesForm","LinkingSearchForm","Benefit","LinkingSearch","Target","BenefitsUploadForm","esm_Button","block","BenefitsUpload","CreatingLinkingSearchForm","CreateLinkingSearch","DGLetterCreationForm","getParameter","DGLetterCreation","DGLetterCreationSearchForm","DGLetterCreationSearch","DGFinancialYearID","DGLetterTypeID","DGQueryReasonSearchForm","DGQueryReasonSearch","DGQueryReasonForm","DGQueryReason","DGRejectionReasonSearchForm","DGRejectionReasonSearch","DGRejectionReasonForm","DGRejectionReason","RoleForm","roleRef","modal","RolePermissionSearchForm","MenuItemName","RolePermissionSearch","RoleID","selectedPermissionID","NavigationSearchForm","NavigationSearch","selectedOFO","RolePermissionForm","Controls_NavigationSearch","RolePermission","NavigationID","bullet","transform","pos","SDFForm","setForm","DocRequiredCheck","toUpperCase","Card_Card","CardContent","SDFCertificateDocumentName","HaveyoucompletedaSDFTrainingProgrammeprovidedbyanaccreditedtrainingprovider","SDF","sdfDetails","saveFormExternal","OrganisationSearchForm","SDFOrganisationSearch","SDFOrganisationForm","disableSecondaryPrimarySDFCheck","sdf_SDFOrganisationSearch","SDFOrganisations","sdfUrl","invokeUrlDeleteExternal","OrganisationSearch","SICCodeID","DGOrganisationSearchForm_OrganisationSearchForm","DGOrganisationDetailsForm","ConfirmDetailsDisableCheck","DGOrganisation","organisationDetails","StakeholderSearchForm","StakeholderSearch","StakeholderForm","Stakeholder","stakeholderDetails","checkIDNumber","isNaN","StakeholderOrganisationAddSearch","StakeholderOrganisationDetailsForm","stakeholder_StakeholderOrganisationAddSearch","StakeholderOrganisations","promptFinishOpen","promptFinishTitle","promptFinishContent","Finalize","OrganisationContactForm","DGOrganisationContact","DGDocumentsUploadSearchForm","DGDocumentUploadsForm","docName","DGDocumentUploadsDialog","AddDiasbaled","setAddDiasbaled","DGDocumentTypeID","docID","DGDocumentsUpload","selectedDocument","successfulDocumentRemoveCallback","unsuccessfulDocumentRemoveCallback","DocumentDescription","DocumentDesc","temp_element","OrganisationStakeholderEditForm","OrganisationStakeholderEditDialog","organisation_OrganisationStakeholderEditForm","OrganisationStakeholder","DGOrganisationCRM","DGOrganisationDocumentsDialog_DocumentDialog","OrganisationDetailsForm","Organisation","Width","OrganisationContact","OrganisationContactForm_OrganisationContactForm","OrganisationBankingDetailsForm","Bankfilename","setBankFilename","Regfilename","setRegFilename","onBankUploadHandler","onRegUploadHandler","BankDetailsDocumentName","OrganisationBankingDetails","refreshId","LinkOrganisationForm","endlink","edit","organisation_OrganisationSearch","ParentOrganisationId","endLinkFormRef","ChildOrganisationSearch","LinkOrganisationDialog","endLinkDialogOpen","LinkOrganisation","organisationRef","ChildOrganisation","OrganisationCFODetailsForm","OrganisationCFODetails","UnionForm","addTrainingCommittee","UnionCreateDialog","UnionEditDialog","TrainingCommitteeSearchRecord","TrainingCommitteeForm","OrganisationTrainingCommittee","UnionSearchRecord","StyledTableCell","head","common","white","StyledTableTextCell","StyledTableRow","&:nth-of-type(odd)","WspAtrForms","objectProps","OrganisationName","WSPATRID","getForms","getFormHead","GetWSPATRFormSubmissionCheck","WSPStatus","CanSubmit","DGType","orgId","WSPATRobject","submit","tablerows","scope","FormName","FormDescription","DueDate","WSPATRFormsID","WSPATRFormName","submitrow","buttonSubmitClickHandler","OFOSearchForm_OFOSearchForm","& .MuiTextField-root","inputForm","inputCenter","shadows","EmploymentNumberForm","Controls_OFOSearch","EmploymentNumberForm_StyledTableCell","EmploymentNumberForm_StyledTableRow","EmploymentNumberForm_StyledTableTextCell","WSPATRBulkImportDialog","showReport","setShowReport","EmploymentNumber","RecordID","adddisabled","bulkimportdisabled","removedisabled","removealldisabled","editdisabled","updatedisabled","canceldisabled","EditFormData","removeAll","bulkImportOpen","reportName","formPermission","addDefaultObject","AfricanMale","AfricanFemale","AfricanDisabled","ColouredMale","ColouredFemale","ColouredDisabled","IndianMale","IndianFemale","IndianDisabled","WhiteMale","WhiteFemale","WhiteDisabled","Age1","Age2","Age3","add","CheckRaceGenderRules","RaceGender","ErrorMessage","bulkimport","results","GetWSPATRFormPermissionCheck","CaptureFormEdit","CaptureFormAdd","handleFormValueChangeAdd","ReportDownload","removeRecord","bulkimportImport","EmploymentNumberSmallForm","EmploymentNumberSmallForm_StyledTableCell","EmploymentNumberSmallForm_StyledTableRow","EmploymentNumberSmallForm_StyledTableTextCell","EmploymentNumberSmall","AnnualTrainingReportForm","AnnualTrainingReportForm_StyledTableCell","AnnualTrainingReportForm_StyledTableRow","AnnualTrainingReportForm_StyledTableTextCell","AnnualTrainingReport","EntryLevel","IntermediateLevel","AdvancedLevel","ActualCost","parseFloat","ActualPivotalTrainingForm","ActualPivotalTrainingForm_StyledTableCell","ActualPivotalTrainingForm_StyledTableRow","ActualPivotalTrainingForm_StyledTableTextCell","ActualPivotalTraining","WorkplaceSkillsPlanForm","WorkplaceSkillsPlanForm_StyledTableCell","WorkplaceSkillsPlanForm_StyledTableRow","WorkplaceSkillsPlanForm_StyledTableTextCell","WorkplaceSkillsPlan","QualificationProfileForm","QualificationProfileForm_StyledTableCell","QualificationProfileForm_StyledTableRow","QualificationProfileForm_StyledTableTextCell","QualificationProfile","PlannedPivotalTrainingForm","PlannedPivotalTrainingForm_StyledTableCell","PlannedPivotalTrainingForm_StyledTableRow","PlannedPivotalTrainingForm_StyledTableTextCell","PlannedPivotalTraining","ActualBeneficiariesTrainingForm","ActualBeneficiariesTrainingForm_StyledTableCell","ActualBeneficiariesTrainingForm_StyledTableRow","ActualBeneficiariesTrainingForm_StyledTableTextCell","ActualBeneficiariesTraining","ActualAETForm","ActualAETForm_StyledTableCell","ActualAETForm_StyledTableRow","ActualAETForm_StyledTableTextCell","ActualAET","NoOfLearnersMale","NoOfLearnersFemale","MunicipalitySearchForm","MunicipalityName","CityName","MunicipalitySearch","selectedMunicipality","PlannedBeneficiariesTrainingForm","Controls_MunicipalitySearch","PlannedBeneficiariesTrainingForm_StyledTableCell","PlannedBeneficiariesTrainingForm_StyledTableRow","PlannedBeneficiariesTrainingForm_StyledTableTextCell","PlannedBeneficiariesTraining","ProvincialDetailsForm","ProvincialDetailsForm_StyledTableTextCell","ProvincialDetailsForm_StyledTableCell","ProvincialDetailsForm_StyledTableRow","ProvincialDetails","WesternCape","NorthernCape","EasternCape","FreeState","Gauteng","Mpumalanga","Limpopo","NorthWest","KZN","Total","CheckProvincialDetailsRules","PlannedAETForm","PlannedAETForm_StyledTableCell","PlannedAETForm_StyledTableRow","PlannedAETForm_StyledTableTextCell","PlannedAET","ImpactAssessmentForm","ImpactAssessment","HardToFillVacanciesForm","otherTextFieldVisible","setOtherTextFieldVisible","handleMainReasonsChange","MainReasons","HardToFillVacancies","EditMainReasons","MainReasonsIDs","HardToFillVacancyReasonIDs","getMainReasons","CheckList","Section","Completed","WSPandATRCreateForm","WSPandATREditForm","LetterReasonDialog","WspAtrEditDialog","showReasons","setShowReasons","reasonUrl","setReasonUrl","FormData","setFormData","selectedReasons","setSelectedReasons","FinalData","ReasonsList","WSPStatusID","RejectionReasons","QueryReasons","Controls_LetterReasonDialog","WspAtrId","WspAtrForms_WSPandATREditForm","LoadingIndicatorLogin","WspAtrPrintReport","queueData","checkGenerateReportActive","WSPATRReportsPrintQueueStatusID","GenerateReport","CheckProgress","TableContainer","DateUpdated","Transition","Slide","WspAtrDashboard","selectedWSPATR","ClosePrintDialog","OpenPrintDialog","fullScreen","Close_default","typography","WspAtrForms_WspAtrPrintReport","flex","WspAtrDocumentsUploadForm","WspAtrUploadForm","UploadDialog","WspAtrDocumentsUpload","WSPATRVerificationSearchForm","WSPATRVerificationSearch","WSPATRVerificationMain","formObject","WSPATRVerificationChecklistDtoList","indexObject","ConfirmInformationYesNoID","finalObject","handleChecklistArrayIO","InformationOutstandingYesNoID","handleChecklistArrayC","handleChecklistArrayD","DeviationID","handleStatus","WSPATREvaluationVerificationStatusID","handleComment","VerificationComment","SaveChecklist","CheckStatus","SaveVerification","QueryReasonsList","SaveObject","CloseForm","OpenDialog","formViewURL","formName","fileSize","fileBase64","fileType","lookupVArray","lookupDArray","VerificationPermission","CheckVerificationPermissions","formUrl","fName","_this7","LinkInformation","WSPATRVerificationMain_StyledTableRow","WSPATRVerificationMain_StyledTableCell","OpenForm","DataURL","Web_default","Calculation","FileDeviationDownload","lookupVitem","Verifier","DateVerified","WSPATREvaluationSearch","selectedWSPATRs","WSPATRList","wspatrs","showBulk","WSPATREvaluationSearchForm_WSPATRVerificationSearchForm","WSPATREvaluationMain","WSPATREvaluationChecklist","WSPATREvaluationStatusID","EvaluationComment","SaveEvaluation","RejectionReasonsList","EvaluationPermission","CheckEvaluationPermissions","WSPATREvaluationMain_StyledTableRow","WSPATREvaluationMain_StyledTableCell","Evaluator","DateEvaluated","CommentInput","ApprovalForm","setproofOfBankingDetailsComment","setworkplaceSkillsPlanComment","setplannedPivotalTrainingComment","setplannedBeneficiariesofTrainingComment","setannualTrainingReportComment","setactualPivotalTrainingComment","setactualBeneficiariesofTrainingComment","setproofofTrainingUploadedComment","setauthorisationPageUploadedComment","settrainingImplementedComment","ApprovalDetailsForm_StyledTableRow","ApprovalDetailsForm_StyledTableCell","ApprovalDetailsForm_StyledTableTextCell","ApprovalDetailsForm_CommentInput","Approval","approvalRef","_useState3","_useState4","ApprovalDetailsForm","WSPATRApprovalSearchForm","WSPATRApprovalBulkForm","WSPATRApprovalBulkDialog","WspAtrForms_WSPATRApprovalBulkForm","WSTATRIDList","WSPATRIDs","BoardApprovalStatusID","readOnlyError","WSPATRApprovalSearch","WSPATRApprovalMain","WSPATRApprovalChecklist","WSPATREvaluationApprovalStatusID","WSPATRApprovalMain_StyledTableRow","WSPATRApprovalMain_StyledTableCell","Approver","DateApproved","VerificationForm","setVerificationComment","VerificationForm_StyledTableRow","VerificationForm_StyledTableCell","VerificationForm_StyledTableTextCell","VerificationForm_CommentInput","Ref","Verification","setFinancialYear","WspAtrForms_VerificationForm","EvaluationForm","setEvaluationComment","EvaluationForm_StyledTableRow","EvaluationForm_StyledTableCell","EvaluationForm_StyledTableTextCell","EvaluationForm_CommentInput","Evaluation","WspAtrForms_EvaluationForm","RadioButton","initial","_value","StackholderfeedbackForm_StyledRadio","isRequired","question1","question2","createData","checkList","confirmation","submited","StakeholderfeedbackForm","Stakeholderfeedback","StackholderfeedbackForm_RadioButton","Question1YesNoID","StackholderfeedbackForm_CommentInput","Question1YesComment","Question1NoComment","initial2","Question2YesNoID","Question2YesComment","Question2NoComment","Question3YesNoID","Question3YesComment","Question3NoComment","Question4YesNoID","Question4YesComment","Question4NoComment","Question5YesNoID","Question5YesComment","Question5NoComment","Question6YesNoID","Question6YesComment","Question6NoComment","Question7YesNoID","Question7YesComment","Question7NoComment","StackholderfeedbackForm_StyledTableCell","StackholderfeedbackForm_StyledTableRow","Feedback","financialStakeholderFeedback","StakeholderfeedbackUpdate","forceUpdate","FinancialYearObject","StackholderfeedbackForm","RequestExtensionForm","LodgeApealDetailsForm","RequestExtensionDialog","ExtensionDetailsForm","CommentCheck","RequestExtensionEditForm","RequestExtensionEditDialog","WspAtrForms_RequestExtensionEditForm","RequestExtension","LodgeAppealForm","LodgeApealDialog","WspAtrForms_LodgeApealDetailsForm","LodgeApealEditForm","LodgeApealEditDialog","WspAtrForms_LodgeApealEditForm","LodgeAppeal","OrganisationSDFEditForm","OrganisationSDFEditDialog","setLinkDialogOpen","organisation_OrganisationSDFEditForm","SDFStatusID","OrganisationSDF","StyleSheet","create","header","flexDirection","image","borderStyle","borderColor","borderWidth","borderRightWidth","borderBottomWidth","tableColHeader","borderBottomColor","borderLeftWidth","borderTopWidth","tableCol","tableCellHeader","_tableCellHeader","tableCell","_tableCell","GrantsLeviesPrint","initiateHeaderValue","substr","GrantData","GrantSummaryDto","innerItem","Year","Amount","LevyData","LevySummaryDto","SARSArrivalDate","DatePosted","StakeholderLevyCalculated","NSFCalculation","TotalReceivedBySETA","MandatoryLevy","Discretionary","Admin","Penalty","Interest","FinSummaryData","FinancialSummaryDto","GrantContents","react_pdf_browser_es","fixed","dataItem","LevyContents","FinSummaryContents","MyDoc","simslogoLoading","Municipality","headGrantCells","headLevyCells","headFinCells","OrganisationGrantsLevies","handleSection","SectionID","FinYearDisabled","handleFinancialYear","getData","openPrintDialog","lookupFinArray","Levies","_useState5","_useState6","_useState7","_useState8","_useState9","_useState10","_useState11","_useState12","PhysicalAddressLine1","_useState13","_useState14","_useState15","_useState16","_useState17","_useState18","_useState19","_useState20","_useState21","_useState22","ContactTelephoneNumber","_useState23","_useState24","_useState25","_useState26","PostalAddressLine1","_useState27","_useState28","_useState29","_useState30","_useState31","_useState32","Levies_StyledTableCell","colspan","Levies_StyledTableRow","Levies_StyledTableTextCell","Grants","getGrantData","Grants_StyledTableCell","Grants_StyledTableRow","Grants_StyledTableTextCell","DiscretionaryGrants","getDiscretionaryGrantData","DiscretionaryGrants_StyledTableCell","DiscretionaryGrants_StyledTableRow","DiscretionaryGrants_StyledTableTextCell","InterSetaTransferDetailsForm","InterSetaTransferDialog","organisation_InterSetaTransferDetailsForm","ISTSuccessfulPostedBool","ISTSuccessfulPosted","DateSETAReceivedApplication","DateAdvisementLetterSent","DateRequestSentToDeloitte","SubmissionNumber","InterSetaTransferEditForm","InterSetaTransferEditDialog","organisation_InterSetaTransferEditForm","SDFComplianceLetterForm","SDFComplianceLetter","FileEmail","selectedID","invokeApiPut","EmployerFileImportDialog","EmployerFileImport","newemployersreport","newemployerreportdone","ETQAReportSearchForm","ETQAReportSearch","ReportName","ReportDescription","ProviderSearchForm_ProviderSearch","ETQAReportForm","paramArray","ETQAReportDetails","ReportParameters","getName","newText","checkUppercase","checkPuctuation","checkDigit","checkLetter","isInteger","parameter","Controls_ProviderSearch","ETQAReportRef","ETQAReport","handleExecuteReport","_step","_iterator","_createForOfIteratorHelper","s","done","f","SkillsReportSearchForm","SkillsReportSearch","SkillsReportForm","skillsReportDetails","SkillsReportRef","SkillsReport","MasterFilesSearchForm","MasterFileSearch","MuiOutlinedInput-input","ETQSearchForm","MuiOutlinedInputInput","AccreditationStatus","Province","OrganisationSdlNumber","EmployerSearchForm_EmployerSearchForm","MasterFileForm","masterfiles_ProviderSearch","masterfiles_EmployerSearch","masterfileRef","MasterFile","masterfileDetails","sdfID","SETMISFileForm","SETMISFileSearch","setmisfileRef","SETMISFile","DGReportSearchForm","DGReportSearch","DGReportForm","dgReportDetails","DGReportRef","DGReport","CustomReports","UniqueID","CustomReportingToolPath","origin","protocol","host","AdminReportSearchForm","AdminReportSearch","AdminReportForm","AdminReportDetails","AdminReportRef","AdminReport","ProviderReportSearchForm","ProviderReportSearch","ProviderReportForm","ProviderReportDetails","ProviderReportRef","ProviderReport","ProviderReport_createForOfIteratorHelper","ProviderDocumentSearchForm","searchFormRef","ProviderDocuments","generateDocuments","ProviderIDs","selectedProviders","documentInfo","selectedAssessors","documentsGenerated","approval_and_certification_ProviderDocumentSearchForm","AssessorDocumentSearchForm","AssessorDocuments","AssessorIDs","ModeratorDocumentSearchForm","ModeratorDocuments","ModeratorIDs","selectedModerators","LearnerDocumentSearchForm","LearnerDocuments","LearnerProgrammeIDs","selectedLearners","PrintTypeID","approval_and_certification_LearnerDocumentSearchForm","LearnerAttendanceSearchForm","LearnerAttendance","approval_and_certification_LearnerAttendanceSearchForm","BulkApprovalSearchForm","BulkApproval","approve","ApprovalTypeID","approvalTypeID","learnersApproved","approval_and_certification_BulkApprovalSearchForm","actionIcons","delete","tableContainer","CustomMaterialTable","setData","remoteData","dist_default","icons","tableTitle","actionsColumnIndex","paging","headerStyle","draggable","propTyles","PropTypes","customCellRender","rowData","columnIndex","rowId","columnId","ExpiryNotification_this","cellStyle","render","ExpiryNotification","widgets_CustomMaterialTable","LearnerEndorsementLetterSearchForm","LearnerEndorsementLetter","ReasonForReprintID","PrintingErrorReason","approval_and_certification_LearnerEndorsementLetterSearchForm","ProofOfRegistrationSearchForm","generateLetter","EmailLetter","LearningProgrammeID","RegistrationDateFrom","RegistrationDateTo","QualificationName","SponsorshipID","proof_of_registration_ProofOfRegistrationSearchForm","testHeadCells","TestForm","testFormRef","Test","valueType","testColumn","testData","testFile","testDate","setColumns","applyCustomCellRender","newColumns","tableData","test_components_Table_TableCellContent","TestTableDemo","test_components_Table","DGApplicationCreationForm","setDGType","DGTypeID","DGApplication","DGApplicationSearchForm","DGPrintReport","DGReportsPrintQueueStatusID","DGApplicationID","DGApplicationDashboard","selectedDGApplication","GetDGPermissionCheck","successfulApplicationRemoveCallback","unsuccessfulApplicationRemoveCallback","handleCreateFormValueChange","selectedDG","dgTypeID","DGID","application_DGApplicationSearchForm","application_DGApplicationCreationForm","removeApplication","application_DGPrintReport","DGForms","GetDGFormSubmissionCheck","DGForms_StyledTableRow","DGForms_StyledTableCell","DGObject","DGFormID","DGFormName","DGForms_StyledTableTextCell","DGVerificationSearchForm","DGVerificationSearch","financialYearID","FundingWindowID","DGVerificationMain","getHeaders","handleChecklistArrayEV","DGVerificationDocumentsDto","DGEvidenceVerifiedID","handleChecklistArrayQV","DGVerificationInterventionDto","DGVerificationInterventionData","QualificationVerificationStatusID","newDGVerificationInterventionDto","handleChecklistArrayQC","QualificationVerificationComments","DGStatusID","lookupQVArray","getVerification","getVerificationStatusList","VerificationStatusListObject","doctablerows","DGVerificationMain_StyledTableRow","DGVerificationMain_StyledTableCell","EvidenceAvaialble","DGDocumentUploadID","inttableheader","FriendlyColumnNames","inttablerows","statuslistrows","VerificationDate","DGStatus","DGEvaluationSearchForm","DGEvaluationSearch","DGLetterReasonDialog","NewDGStatusID","DGEvaluationMain","handleChecklistArrayQN","DGEvaluationInterventionDto","DGEvaluationInterventionData","NumberRecommendedForApproval","newDGEvaluationInterventionDto","QualificationEvaluationStatusID","QualificationEvaluationComments","linkDialogTitle","LinkDialogName","lookupEArray","lookupQEArray","getEvaluation","DGEvaluationMain_StyledTableCell","DGEvaluationMain_StyledTableRow","EvaluatedBy","EvaluationDate","linkDialogName","Controls_DGLetterReasonDialog","DGApprovalSearchForm","DGApprovalSearch","DGApprovalMain","handleChecklistArrayAD","DGApprovalInterventionDto","DGApprovalInterventionData","DGApprovalDetailStatusID","newDGApprovalInterventionDto","handleChecklistArrayNLA","NoOfLearnersApproved","SaveApproval","ReverseDGApproval","EmailDGLetter","DownloadDGApprovalLetter","lookupADArray","ApprovalPermission","getApproval","getApprovalStatusList","CheckApprovalPermissions","ApprovalStatusListObject","DGApprovalMain_StyledTableCell","DGApprovalMain_StyledTableRow","ApprovalDate","ApprovedBy","ApprovedDate","IsLetterGenerated","HasApproval","ShowLetterButton","DisableLetterButton","CanReverse","DGContracts","emailContract","downloadContract","TradeSearchForm","TradeCode","TradeSearch","selectedQual","ArtisanForm","Controls_TradeSearch","ArtisanForm_StyledTableCell","ArtisanForm_StyledTableRow","ArtisanForm_StyledTableTextCell","Artisan","NoOfLearners","Controls_ProviderSearchForm_ProviderSearch","AETForm","application_Controls_ProviderSearch","AETForm_StyledTableCell","AETForm_StyledTableRow","AETForm_StyledTableTextCell","AET","NumberOfLiteracyLearners","NumberOfNumeracyLearners","GetDGFormPermissionCheck","QualificationsSearch","QualificationsSearchForm_QualificationsSearch","ProviderCode","InstitutionSearchForm_InstitutionSearch","BursaryForm","Controls_QualificationsSearch","Controls_InstitutionSearch","BursaryForm_StyledTableCell","BursaryForm_StyledTableRow","BursaryForm_StyledTableTextCell","NumberLearners","LearnershipForm","LearnershipForm_StyledTableCell","LearnershipForm_StyledTableRow","LearnershipForm_StyledTableTextCell","Learnership","CandidacyForm","CandidacyForm_StyledTableCell","CandidacyForm_StyledTableRow","CandidacyForm_StyledTableTextCell","Candidacy","NoOfGraduates","EmploymentAssistance","TVETForm","TVETForm_StyledTableCell","TVETForm_StyledTableRow","TVETForm_StyledTableTextCell","TVET","NoOfLearnersEmployed","selectedLShip","LearnershipSearchForm_LearnershipSearch","LearnershipRPLForm","Controls_LearnershipSearch","LearnershipRPLForm_StyledTableCell","LearnershipRPLForm_StyledTableRow","LearnershipRPLForm_StyledTableTextCell","LearnershipRPL","InternshipForm","InternshipForm_StyledTableCell","InternshipForm_StyledTableRow","InternshipForm_StyledTableTextCell","Internship","selectedSP","SkillsProgrammeSearchForm_SkillsProgrammeSearch","SkillsProgrammeForm","Controls_SkillsProgrammeSearch","SkillsProgrammeForm_StyledTableCell","SkillsProgrammeForm_StyledTableRow","SkillsProgrammeForm_StyledTableTextCell","Controls_OFOSearchForm_OFOSearchForm","WorkExperienceForm","application_Controls_OFOSearch","WorkExperienceForm_StyledTableCell","WorkExperienceForm_StyledTableRow","WorkExperienceForm_StyledTableTextCell","WorkExperience","HelpdeskRequestSearchForm","HelpdeskRequestAddForm","UploadFilename","setUploadFilename","HelpdeskRequestSearch","selectedRequest","RequestTypeID","StatusID","PriorityID","HelpdeskComments","DataUrl","HelpdeskRequestForm","CommentURL","setCommentURL","HelpdeskRequestForm_this","HelpdeskRequest","HelpDeskReport","xAxisCategory","yAxisCategory","TrainingProviderListPerAccreditationStatusLineChart","Values","o","point","events","x","ExportAllToExcel","TrainingProviderListPerAccreditationStatusBarChart","TrainingProviderListPerAccreditationStatusPieChart","TrainingProviderListPerRegionBarChart","TrainingProviderListPerRegionLineChart","TrainingProviderListPerRegionPieChart","TrainingProviderListPerProviderClassPieChart","TrainingProviderListPerProviderClassBarChart","TrainingProviderListPerProviderClassLineChart","AssessorPerRegionBarChart","AssessorPerRegionLineChart","AssessorPerRegionPieChart","AssessorPerRegistrationStatusBarChart","AssessorPerRegistrationStatusLineChart","AssessorPerRegistrationStatusPieChart","AssessorPerAssessorTypeBarChart","AssessorPerAssessorTypeLineChart","AssessorPerAssessorTypePieChart","ModeratorPerModeratorTypeBarChart","ModeratorPerModeratorTypeLineChart","ModeratorPerModeratorTypePieChart","ModeratorPerRegistrationStatusBarChart","ModeratorPerRegistrationStatusLineChart","ModeratorPerRegistrationStatusPieChart","ModeratorPerRegionBarChart","ModeratorPerRegionLineChart","ModeratorPerRegionPieChart","LearnerLearnershipsPerMunicipalityBarChart","LearnerLearnershipsPerMunicipalityLineChart","LearnerLearnershipsPerMunicipalityPieChart","LearnerLearnershipsPerSponsorshipBarChart","LearnerLearnershipsPerSponsorshipLineChart","LearnerLearnershipsPerSponsorshipPieChart","LearnerLearnershipsPerAgreementStatusBarChart","LearnerLearnershipsPerAgreementStatusLineChart","LearnerLearnershipsPerAgreementStatusPieChart","LearnerLearnershipsPerLearnershipTitleBarChart","LearnerLearnershipsPerLearnershipTitleLineChart","LearnerLearnershipsPerLearnershipTitlePieChart","LearnerSkillsProgrammesPerMunicipalityBarChart","LearnerSkillsProgrammesPerMunicipalityLineChart","LearnerSkillsProgrammesPerMunicipalityPieChart","LearnerSkillsProgrammesPerBursaryNameBarChart","LearnerSkillsProgrammesPerBursaryNameLineChart","LearnerSkillsProgrammesPerBursaryNamePieChart","LearnerSkillsProgrammesPerSponsorshipBarChart","LearnerSkillsProgrammesPerSponsorshipLineChart","LearnerSkillsProgrammesPerSponsorshipPieChart","LearnerSkillsProgrammesPerBursaryStatusBarChart","LearnerSkillsProgrammesPerBursaryStatusLineChart","LearnerSkillsProgrammesPerBursaryStatusPieChart","LearnerBursaryPerMunicipalityBarChart","LearnerBursaryPerMunicipalityLineChart","LearnerBursaryPerMunicipalityPieChart","LearnerBursaryPerBursaryNameBarChart","LearnerBursaryPerBursaryNameLineChart","LearnerBursaryPerBursaryNamePieChart","LearnerBursaryPerSponsorshipBarChart","LearnerBursaryPerSponsorshipLineChart","LearnerBursaryPerSponsorshipPieChart","LearnerBursaryPerBursaryStatusBarChart","LearnerBursaryPerBursaryStatusLineChart","LearnerBursaryPerBursaryStatusPieChart","LearnerPerAllocationStatusBarChart","LearnerPerAllocationStatusLineChart","LearnerPerAllocationStatusPieChart","QALPDashboard","handleReportNameChanged","divToShow","trainingproviderlistperaccreditationstatusshow","trainingproviderlistperregionshow","trainingproviderlistperproviderclassshow","assessorperregionshow","assessorperregistrationstatusshow","assessorperassessortypeshow","moderatorpermoderatortypeshow","moderatorperregistrationstatusshow","moderatorperregionshow","learnerlearnershipsperagreementstatusshow","learnerlearnershipspermunicipalityshow","learnerlearnershipspersponsorshipshow","learnerlearnershipsperlearnershiptitleshow","learnerskillsprogrammespermunicipalityshow","learnerskillsprogrammesperbursarynameshow","learnerskillsprogrammespersponsorshipshow","learnerskillsprogrammesperbursarystatusshow","learnerbursarypermunicipalityshow","learnerbursaryperbursarynameshow","learnerbursarypersponsorshipshow","learnerbursaryperbursarystatusshow","learnerperallocationstatusshow","QALPDashboardCharts_TrainingProviderListPerAccreditationStatusPieChart","QALPDashboardCharts_TrainingProviderListPerAccreditationStatusLineChart","QALPDashboardCharts_TrainingProviderListPerAccreditationStatusBarChart","QALPDashboardCharts_TrainingProviderListPerRegionPieChart","QALPDashboardCharts_TrainingProviderListPerRegionLineChart","QALPDashboardCharts_TrainingProviderListPerRegionBarChart","QALPDashboardCharts_TrainingProviderListPerProviderClassPieChart","QALPDashboardCharts_TrainingProviderListPerProviderClassLineChart","QALPDashboardCharts_TrainingProviderListPerProviderClassBarChart","QALPDashboardCharts_AssessorPerRegionPieChart","QALPDashboardCharts_AssessorPerRegionLineChart","QALPDashboardCharts_AssessorPerRegionBarChart","QALPDashboardCharts_AssessorPerRegistrationStatusPieChart","QALPDashboardCharts_AssessorPerRegistrationStatusLineChart","QALPDashboardCharts_AssessorPerRegistrationStatusBarChart","QALPDashboardCharts_AssessorPerAssessorTypePieChart","QALPDashboardCharts_AssessorPerAssessorTypeLineChart","QALPDashboardCharts_AssessorPerAssessorTypeBarChart","QALPDashboardCharts_ModeratorPerModeratorTypePieChart","QALPDashboardCharts_ModeratorPerModeratorTypeLineChart","QALPDashboardCharts_ModeratorPerModeratorTypeBarChart","QALPDashboardCharts_ModeratorPerRegistrationStatusBarChart","QALPDashboardCharts_ModeratorPerRegistrationStatusPieChart","QALPDashboardCharts_ModeratorPerRegistrationStatusLineChart","QALPDashboardCharts_ModeratorPerRegionBarChart","QALPDashboardCharts_ModeratorPerRegionPieChart","QALPDashboardCharts_ModeratorPerRegionLineChart","QALPDashboardCharts_LearnerLearnershipsPerAgreementStatusPieChart","QALPDashboardCharts_LearnerLearnershipsPerAgreementStatusLineChart","QALPDashboardCharts_LearnerLearnershipsPerAgreementStatusBarChart","QALPDashboardCharts_LearnerLearnershipsPerMunicipalityPieChart","QALPDashboardCharts_LearnerLearnershipsPerMunicipalityLineChart","QALPDashboardCharts_LearnerLearnershipsPerMunicipalityBarChart","QALPDashboardCharts_LearnerLearnershipsPerSponsorshipPieChart","QALPDashboardCharts_LearnerLearnershipsPerSponsorshipLineChart","QALPDashboardCharts_LearnerLearnershipsPerSponsorshipBarChart","QALPDashboardCharts_LearnerLearnershipsPerLearnershipTitlePieChart","QALPDashboardCharts_LearnerLearnershipsPerLearnershipTitleLineChart","QALPDashboardCharts_LearnerLearnershipsPerLearnershipTitleBarChart","QALPDashboardCharts_LearnerSkillsProgrammesPerMunicipalityBarChart","QALPDashboardCharts_LearnerSkillsProgrammesPerMunicipalityLineChart","QALPDashboardCharts_LearnerSkillsProgrammesPerMunicipalityPieChart","QALPDashboardCharts_LearnerSkillsProgrammesPerBursaryNamePieChart","QALPDashboardCharts_LearnerSkillsProgrammesPerBursaryNameLineChart","QALPDashboardCharts_LearnerSkillsProgrammesPerBursaryNameBarChart","QALPDashboardCharts_LearnerSkillsProgrammesPerSponsorshipPieChart","QALPDashboardCharts_LearnerSkillsProgrammesPerSponsorshipLineChart","QALPDashboardCharts_LearnerSkillsProgrammesPerSponsorshipBarChart","QALPDashboardCharts_LearnerSkillsProgrammesPerBursaryStatusPieChart","QALPDashboardCharts_LearnerSkillsProgrammesPerBursaryStatusLineChart","QALPDashboardCharts_LearnerSkillsProgrammesPerBursaryStatusBarChart","QALPDashboardCharts_LearnerBursaryPerMunicipalityPieChart","QALPDashboardCharts_LearnerBursaryPerMunicipalityLineChart","QALPDashboardCharts_LearnerBursaryPerMunicipalityBarChart","QALPDashboardCharts_LearnerBursaryPerBursaryNamePieChart","QALPDashboardCharts_LearnerBursaryPerBursaryNameLineChart","QALPDashboardCharts_LearnerBursaryPerBursaryNameBarChart","QALPDashboardCharts_LearnerBursaryPerSponsorshipPieChart","QALPDashboardCharts_LearnerBursaryPerSponsorshipLineChart","QALPDashboardCharts_LearnerBursaryPerSponsorshipBarChart","QALPDashboardCharts_LearnerBursaryPerBursaryStatusPieChart","QALPDashboardCharts_LearnerBursaryPerBursaryStatusLineChart","QALPDashboardCharts_LearnerBursaryPerBursaryStatusBarChart","QALPDashboardCharts_LearnerPerAllocationStatusPieChart","QALPDashboardCharts_LearnerPerAllocationStatusLineChart","QALPDashboardCharts_LearnerPerAllocationStatusBarChart","Routes","Route","EmployerUserSearch","EmployerContactSearch","EmployerBillingContactSearch","AddLearnerInternships","LearnerSkillsProgrammeSearch","LearnerAbsorptionSearch","LearnerSponsorshipSearch","LearnerEnterpriseDevelopmentSearch","LearnerSupplierDevelopmentSearch","LearnerBursarySearch","LearnerAETSearch","LearnerFETSearch","LearnerLearnershipSearch","LearnerTradeSearch","LearnerInternshipsSearch","LearnerCandidacySearch","LearnerUnitStandardSearch","LearnerLearnershipAchievements","LearnerLearnershipAssessments","Moderatorlearnership","ModeratorSkillsProgramme","ModeratorBursary","ModeratorQualification","ModeratorUnitStandards","UploadPerson","UploadLearnership","UploadSkills","UploadBursaries","UploadInternship","UploadAET","UploadCandidacy","UploadFET","UploadQualification","UploadUnitStandard","UploadAchievement","AssessorRegistrationHistory","AssessorUnitStandards","FacilitatorRegistrationHistory","FacilitatorUnitStandards","SkillsTNumberConversionSearch","InterventionTitlesSearch","ProviderTrade","ProviderContact","ProviderUsers","ProviderUnitStandards","ExternalProviderSearch","QualificationSetup","QualificationUnitStandardSearch","SkillsProgramSetup","AddAssessorFlow","AddProjectOwnerFlow","RoleMaintenanceSearch","UserMaintenanceSearch","UserRoleSearch","UserDetailsMaintenanceSearch","Role","SDFOrganisationDetails","DGOrganisationSearch","ArtisanForm2022","AETForm2022","BursaryForm2022","LearnershipForm2022","CandidacyForm2022","TVETForm2022","LearnershipRPLForm2022","InternshipForm2022","SkillsProgrammeForm2022","WorkExperienceForm2022","StakeholderOrganisationDetails","TrainingCommittee","InterSetaTransfer","EmploymentNumberForm2022","EmploymentNumberSmallForm2022","AnnualTrainingReportForm2022","ActualPivotalTrainingForm2022","WorkplaceSkillsPlanForm2022","QualificationProfileForm2022","PlannedPivotalTrainingForm2022","ActualBeneficiariesTrainingForm2022","ActualAETForm2022","PlannedBeneficiariesTrainingForm2022","ProvincialDetailsForm2022","PlannedAETForm2022","ImpactAssessmentForm2022","HardToFillVacanciesForm2022","CheckListForm2022","WspAtrVerification","WSPATREvaluation","WspAtrApproval","LodgeApeal","POR","TrancheSetupLearners","TrancheSetupCRM","TrancheSetupCRMBulkUpload","FooterPage","transition","transitions","easing","sharp","duration","leavingScreen","appBarShift","enteringScreen","menuButton","hide","flexShrink","backgroundRepeat","backgroundImage","simsDashboard","backgroundPosition","backgroundSize","overflowX","flexGrow","colorScrollBar","MainLayout","isMenuOpen","setIsMenuOpen","isDesktop","useMediaQuery","breakpoints","up","defaultMatches","layout_header","components_Routes","Footer","footer","Login","username","password","passwordShown","login","validateUserName","validatePassword","onUserAuth","showAlert","togglePassword","msgType","authenticated","otpSent","passwordExpired","loginErrorMessage","loginMessage","Input","endAdornment","InputAdornment","VisibilityOff_default","PasswordExpired","Password","withAlert","msalConfig","clientId","authority","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","containsPii","LogLevel","Info","info","Verbose","debug","Warning","loginRequest","scopes","ADLoginHandler","callLogin","isAuthenticated","msalContext","msalInstance","loginPopup","onUserADAuth","accessToken","withMsal","ADLogin","security_ADLoginHandler","Forgot","_Component","reset","validateUsername","onAuthForgotPassword","successMessage","onSubmit","forgotPasswordSuccess","ForgotPasswordSuccess","Reset","Currentpassword","Newpassword","Confirmpassword","Valid","passwordShown1","passwordShown2","passwordShown3","validateCurrentPassword","validateNewPassword","validateConfirmPassword","onAuthResetPassword","togglePassword1","togglePassword2","togglePassword3","passwordReset","loginRedirectToLogin","PasswordResetDone","CurrentPassword","NewPassword","ConfirmPassword","RoleSelect","UserKey","onGetRoles","onGetMenuPermissions","menuPermissions","dashboardURL","IsProvider","IsEmployer","userKeyRetrieved","onSelectRoles","userRole","back","DashboardInfo","DashboardURL","ProviderSelect","onSelectProvider","userProviders","userProvider","Providers","ProviderKey","EmployerSelect","onSelectEmployer","userEmployers","userEmployer","EmployerKey","confirmOTP","otp","validateOTP","onConfirmOTP","OTP","InterfaceVersion","onInterfaceVersionCheck","onInterfaceVersionShouldCheck","reload","interfaceVersionValue","getInterfaceVersion","localStoreName","getCount","createMuiTheme","App","Redirect","ThemeProvider","BrowserRouter","basename","components_security_Login","ConfirmOTP","skills_sdf_SDF","SDFOrganisation","dg_stakeholder_Stakeholder","StakeholderOrganisation","exact","src_InterfaceVersion","AlertStyle","textTransform","boxSizing","alertButtonStyle","AlertTemplate","xmlns","viewBox","stroke","stroke-width","stroke-linecap","stroke-linejoin","AlertTemplate_NewlineText","hostname","reducers","security","Security","authReducer","middleware","thunk","enhancers","rootReducer","combineReducers","createStore","compose","applyMiddleware","configureStore","initialReduxState","pca","PublicClientApplication","rootElement","ReactDOM","es","react_alert","template","offset","containerStyle","msal_react_esm","src_App","serviceWorker","ready","registration","unregister","module","exports","__webpack_require__","webpackEmptyContext","req","code","resolve"],"mappings":"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","file":"static/js/main.6ddcdfd2.chunk.js","sourcesContent":["const requestType = 'REQUEST';\r\nconst requestUserDetails = \"REQUEST_USER_DETAILS\";\r\nconst receiveUserDetailsType = 'RECEIVE_USER_DETAILS';\r\nconst receiveRoleDetailsType = 'RECEIVE_ROLE_DETAILS';\r\nconst selectRoleResponseType = 'SELECT_ROLE_RESPONSE';\r\nconst requestPasswordReset = 'REQUEST_PASSWORD_RESET';\r\nconst receivePasswordReset = 'RECEIVE_PASSWORD_RESET';\r\nconst requestValidateReset = \"REQUEST_PASSWORD_VALIDATE\";\r\nconst receiveValidateReset = \"RECEIVE_PASSWORD_VALIDATE\";\r\n\r\nconst initialState = {\r\n userDetails: {},\r\n hashdetails: {},\r\n validdetails: {},\r\n isLoading: false, \r\n roleSet: false, \r\n error: false, \r\n userRoles: [], \r\n selectedRole: {}, \r\n currentMenuJson: \"\"\r\n};\r\n\r\nlet currentUserDetails = {};\r\nlet currenUserRoles = [];\r\nlet currentHashDetails = {};\r\nlet currentValidDetails = {};\r\n\r\nexport const actionCreators = {\r\n //login: (username, password) => async (dispatch) => {\r\n // dispatch({ type: requestUserDetails });\r\n // let domain = \"SG\";\r\n // var arr = username.split(\"\\\\\");\r\n // if (arr.length > 1) {\r\n // domain = arr[0];\r\n // username = arr[1];\r\n // }\r\n // const url = `${process.env.PUBLIC_URL}/api/indicium/security/login/v1/s1/${domain}/${username}/${password}`;\r\n // const response = await fetch(url);\r\n // const userDetails = await response.json();\r\n // dispatch({ type: receiveUserDetailsType, userDetails });\r\n //},\r\n //confirmOTP: (id) => async (dispatch) => {\r\n // const url = `${process.env.PUBLIC_URL}/api/indicium/security/confirmotp/${id}`;\r\n // const response = await fetch(url);\r\n // const userDetails = await response.json();\r\n // dispatch({ type: receiveUserDetailsType, userDetails });\r\n //},\r\n //getRoles: () => async (dispatch) => {\r\n // dispatch({ type: requestType });\r\n // const url = `${process.env.PUBLIC_URL}/api/indicium/security/roles`;\r\n // const response = await fetch(url);\r\n // const roleDetails = await response.json();\r\n // dispatch({ type: receiveRoleDetailsType, roleDetails });\r\n //},\r\n //selectRole: (selectedRole, username) => async (dispatch) => {\r\n // dispatch({ type: requestType });\r\n // const url = `${process.env.PUBLIC_URL}/api/indicium/security/setRole?id=${selectedRole}&username=${username}`;\r\n // const response = await fetch(url);\r\n // const tokenDetails = await response.json();\r\n // localStorage.setItem(\"token\", tokenDetails);\r\n // if (response.ok) {\r\n // dispatch({ type: selectRoleResponseType, error: false });\r\n // } else {\r\n // dispatch({ type: selectRoleResponseType, error: true });\r\n // }\r\n //},\r\n\r\n reset: (email) => async (dispatch) => {\r\n dispatch({ type: requestPasswordReset });\r\n const url = `${process.env.PUBLIC_URL}/api/indicium/security/reset/${email}`;\r\n const response = await fetch(url);\r\n const hashdetails = await response.json();\r\n dispatch({ type: receivePasswordReset, hashdetails });\r\n },\r\n\r\n TokenValid: (tknid, servername, IP) => async (dispatch) => {\r\n dispatch({ type: requestValidateReset });\r\n const url = `${process.env.PUBLIC_URL}/api/indicium/security/TokenValid/${tknid}/${servername}/${IP}`;\r\n const response = await fetch(url);\r\n const validdetails = await response.json();\r\n dispatch({ type: receiveValidateReset, validdetails });\r\n },\r\n\r\n sendPasswordResetData: (ConfirmPassword, urlElelement, addon , add ) => async (dispatch) => {\r\n dispatch({ type: requestValidateReset });\r\n const url = `${process.env.PUBLIC_URL}/api/indicium/security/sendPasswordResetData/${ConfirmPassword}/${urlElelement}/${addon}/${add}`;\r\n const response = await fetch(url);\r\n const validdetails = await response.json();\r\n dispatch({ type: receiveValidateReset, validdetails });\r\n }\r\n}\r\n\r\nexport const reducer = (state, action) => {\r\n state = state || initialState;\r\n if (action.type === requestUserDetails) {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n error: false,\r\n userDetails: {},\r\n userRoles: [],\r\n roleSet: false\r\n };\r\n }\r\n\r\n if (action.type === requestType) {\r\n return { ...state, isLoading: true }\r\n }\r\n\r\n if (action.type === selectRoleResponseType) {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n roleSet: !action.error,\r\n error: action.error\r\n };\r\n }\r\n\r\n if (action.type === receiveUserDetailsType) {\r\n currentUserDetails = JSON.parse(action.userDetails);\r\n return {\r\n ...state,\r\n userDetails: currentUserDetails,\r\n isLoading: false\r\n };\r\n }\r\n\r\n if (action.type === receiveRoleDetailsType) {\r\n currenUserRoles = JSON.parse(action.roleDetails);\r\n return {\r\n ...state,\r\n userRoles: currenUserRoles,\r\n isLoading: false\r\n };\r\n }\r\n\r\n if (action.type === receivePasswordReset) {\r\n currentHashDetails = JSON.parse(action.hashdetails);\r\n return {\r\n ...state,\r\n hashdetails: currentHashDetails,\r\n isLoading: false\r\n };\r\n }\r\n\r\n if (action.type === receiveValidateReset) {\r\n currentValidDetails = JSON.parse(action.validdetails);\r\n return {\r\n ...state,\r\n validdetails: currentValidDetails,\r\n isLoading: false\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n","import * as actionTypes from '../actions/actionTypes';\r\n\r\nconst initialState = {\r\n userDetails: null,\r\n isLoading: false,\r\n errorMessage: null,\r\n redirectToLogin: false,\r\n userLoginTimer: null,\r\n userLogoutTimer: null,\r\n autoLogout: false,\r\n menuPermissionsDetails: null,\r\n interfaceVersionShouldBeChecked: true,\r\n interfaceVersionUpdateConfirm: false\r\n};\r\n\r\nconst authUserStart = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: null,\r\n isLoading: true,\r\n errorMessage: null,\r\n redirectToLogin: false,\r\n userLoginTimer: null\r\n };\r\n};\r\n\r\nconst authUserSuccess = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: action.authUserData,\r\n isLoading: false,\r\n userLoginTimer: action.authUserLoginTimer,\r\n autoLogout: false,\r\n loginRedirectToLoginPath: action.loginRedirectToLoginPath\r\n };\r\n};\r\n\r\nconst authUserFail = (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n errorMessage: action.authUserError,\r\n autoLogout: false\r\n };\r\n};\r\n\r\nconst authUserRedirectToLogin = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: null,\r\n redirectToLogin: true,\r\n userLoginTimer: null\r\n };\r\n}\r\n\r\nconst authOTPStart = (state, action) => {\r\n let userDetails = { ...state.userDetails };\r\n userDetails.Message = null;\r\n return {\r\n ...state,\r\n userDetails: userDetails,\r\n isLoading: true,\r\n errorMessage: null\r\n };\r\n};\r\n\r\nconst authOTPSuccess = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: action.authUserData,\r\n isLoading: false\r\n };\r\n};\r\n\r\nconst authOTPFail = (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n errorMessage: action.authUserError\r\n };\r\n};\r\n\r\nconst authRoleGetStart = (state, action) => {\r\n let userDetails = { ...state.userDetails };\r\n userDetails.Message = null;\r\n return {\r\n ...state,\r\n userDetails: userDetails,\r\n isLoading: true,\r\n errorMessage: null\r\n };\r\n};\r\n\r\nconst authRoleGetSuccess = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: action.authUserData,\r\n isLoading: false\r\n };\r\n};\r\n\r\nconst authRoleGetFail = (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n errorMessage: action.authUserError\r\n };\r\n};\r\n\r\nconst authRoleSelectStart = (state, action) => {\r\n let userDetails = { ...state.userDetails };\r\n userDetails.Message = null;\r\n return {\r\n ...state,\r\n userDetails: userDetails,\r\n isLoading: true,\r\n errorMessage: null\r\n };\r\n};\r\n\r\nconst authRoleSelectSuccess = (state, action) => {\r\n let currentUserDetails = { ...state.userDetails };\r\n let newUserDetails = { ...action.authUserData };\r\n newUserDetails.Roles = currentUserDetails.Roles;\r\n return {\r\n ...state,\r\n userDetails: newUserDetails,\r\n isLoading: false,\r\n Roles: newUserDetails.Roles,\r\n RoleKey: newUserDetails.RoleKey,\r\n userLogoutTimer: action.userLogoutTimer\r\n };\r\n};\r\n\r\nconst authRoleSelectFail = (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n errorMessage: action.authUserError\r\n };\r\n};\r\n\r\nconst authLogout = (state, action) => {\r\n return {\r\n userDetails: null,\r\n isLoading: false,\r\n errorMessage: null,\r\n redirectToLogin: false,\r\n userLoginTimer: null,\r\n userLogoutTimer: null,\r\n autoLogout: true,\r\n loginRedirectToLoginPath: state.loginRedirectToLoginPath,\r\n menuPermissionsDetails: null\r\n }\r\n};\r\n\r\nconst authProviderSelectStart = (state, action) => {\r\n let userDetails = { ...state.userDetails };\r\n userDetails.Message = null;\r\n return {\r\n ...state,\r\n userDetails: userDetails,\r\n isLoading: true,\r\n errorMessage: null\r\n };\r\n};\r\n\r\nconst authProviderSelectSuccess = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: action.authUserData,\r\n isLoading: false,\r\n userLogoutTimer: action.userLogoutTimer\r\n };\r\n};\r\n\r\nconst authProviderSelectFail = (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n errorMessage: action.authUserError\r\n };\r\n};\r\n\r\nconst authEmployerSelectStart = (state, action) => {\r\n let userDetails = { ...state.userDetails };\r\n userDetails.Message = null;\r\n return {\r\n ...state,\r\n userDetails: userDetails,\r\n isLoading: true,\r\n errorMessage: null\r\n };\r\n};\r\n\r\nconst authEmployerSelectSuccess = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: action.authUserData,\r\n isLoading: false,\r\n userLogoutTimer: action.userLogoutTimer\r\n };\r\n};\r\n\r\nconst authEmployerSelectFail = (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n errorMessage: action.authUserError\r\n };\r\n};\r\n\r\nconst authSwitchProfileStart = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: null,\r\n isLoading: true,\r\n errorMessage: null,\r\n redirectToLogin: false,\r\n userLoginTimer: null,\r\n menuPermissionsDetails: null\r\n };\r\n};\r\n\r\nconst authSwitchProfileSuccess = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: action.authUserData,\r\n isLoading: false,\r\n userLoginTimer: action.authUserLoginTimer,\r\n autoLogout: false,\r\n loginRedirectToLoginPath: action.loginRedirectToLoginPath\r\n };\r\n};\r\n\r\nconst authSwitchProfileFail = (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n errorMessage: action.authUserError,\r\n autoLogout: false\r\n };\r\n};\r\n\r\n\r\nconst authForgotPasswordStart = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: null,\r\n isLoading: true,\r\n errorMessage: null\r\n };\r\n};\r\n\r\nconst authForgotPasswordSuccess = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: action.authUserData,\r\n isLoading: false\r\n };\r\n};\r\n\r\nconst authForgotPasswordFail = (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n errorMessage: action.authUserError\r\n };\r\n};\r\n\r\nconst authResetPasswordStart = (state, action) => {\r\n let newUserDetails = { Username: state.userDetails.Username }\r\n return {\r\n ...state,\r\n userDetails: newUserDetails,\r\n isLoading: true,\r\n errorMessage: null\r\n };\r\n};\r\n\r\nconst authResetPasswordSuccess = (state, action) => {\r\n return {\r\n ...state,\r\n userDetails: action.authUserData,\r\n isLoading: false\r\n };\r\n};\r\n\r\nconst authResetPasswordFail = (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n errorMessage: action.authUserError\r\n };\r\n};\r\n\r\nconst authMenuPermissionStart = (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n errorMessage: null\r\n };\r\n};\r\n\r\nconst authMenuPermissionSuccess = (state, action) => {\r\n return {\r\n ...state,\r\n menuPermissionsDetails: action.authMenuPermissionData,\r\n isLoading: false\r\n };\r\n};\r\n\r\nconst authMenuPermissionFail = (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n errorMessage: action.authMenuPermissionError\r\n };\r\n};\r\n\r\nconst interfaceVersionUpdateConfirm = (state, action) => {\r\n return {\r\n ...state,\r\n interfaceVersionUpdateConfirm: action.interfaceVersionUpdateConfirm\r\n };\r\n};\r\n\r\nconst interfaceVersionShouldBeChecked = (state, action) => {\r\n return {\r\n ...state,\r\n interfaceVersionShouldBeChecked: action.interfaceVersionShouldBeChecked\r\n };\r\n};\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.AUTH_USER_START: return authUserStart(state, action);\r\n case actionTypes.AUTH_USER_SUCCESS: return authUserSuccess(state, action);\r\n case actionTypes.AUTH_USER_FAIL: return authUserFail(state, action);\r\n case actionTypes.AUTH_USER_REDIRECTTOLOGIN: return authUserRedirectToLogin(state, action);\r\n case actionTypes.AUTH_OTP_START: return authOTPStart(state, action);\r\n case actionTypes.AUTH_OTP_SUCCESS: return authOTPSuccess(state, action);\r\n case actionTypes.AUTH_OTP_FAIL: return authOTPFail(state, action);\r\n case actionTypes.AUTH_ROLEGET_START: return authRoleGetStart(state, action);\r\n case actionTypes.AUTH_ROLEGET_SUCCESS: return authRoleGetSuccess(state, action);\r\n case actionTypes.AUTH_ROLEGET_FAIL: return authRoleGetFail(state, action);\r\n case actionTypes.AUTH_ROLESELECT_START: return authRoleSelectStart(state, action);\r\n case actionTypes.AUTH_ROLESELECT_SUCCESS: return authRoleSelectSuccess(state, action);\r\n case actionTypes.AUTH_ROLESELECT_FAIL: return authRoleSelectFail(state, action);\r\n case actionTypes.AUTH_LOGOUT: return authLogout(state, action);\r\n case actionTypes.AUTH_PROVIDERSELECT_START: return authProviderSelectStart(state, action);\r\n case actionTypes.AUTH_PROVIDERSELECT_SUCCESS: return authProviderSelectSuccess(state, action);\r\n case actionTypes.AUTH_PROVIDERSELECT_FAIL: return authProviderSelectFail(state, action);\r\n case actionTypes.AUTH_EMPLOYERSELECT_START: return authEmployerSelectStart(state, action);\r\n case actionTypes.AUTH_EMPLOYERSELECT_SUCCESS: return authEmployerSelectSuccess(state, action);\r\n case actionTypes.AUTH_EMPLOYERSELECT_FAIL: return authEmployerSelectFail(state, action);\r\n case actionTypes.AUTH_SWITCHPROFILE_START: return authSwitchProfileStart(state, action);\r\n case actionTypes.AUTH_SWITCHPROFILE_SUCCESS: return authSwitchProfileSuccess(state, action);\r\n case actionTypes.AUTH_SWITCHPROFILE_FAIL: return authSwitchProfileFail(state, action);\r\n case actionTypes.AUTH_FORGOTPASSWORD_START: return authForgotPasswordStart(state, action);\r\n case actionTypes.AUTH_FORGOTPASSWORD_SUCCESS: return authForgotPasswordSuccess(state, action);\r\n case actionTypes.AUTH_FORGOTPASSWORD_FAIL: return authForgotPasswordFail(state, action);\r\n case actionTypes.AUTH_RESETPASSWORD_START: return authResetPasswordStart(state, action);\r\n case actionTypes.AUTH_RESETPASSWORD_SUCCESS: return authResetPasswordSuccess(state, action);\r\n case actionTypes.AUTH_RESETPASSWORD_FAIL: return authResetPasswordFail(state, action);\r\n case actionTypes.AUTH_MENUPERMISSION_START: return authMenuPermissionStart(state, action);\r\n case actionTypes.AUTH_MENUPERMISSION_SUCCESS: return authMenuPermissionSuccess(state, action);\r\n case actionTypes.AUTH_MENUPERMISSION_FAIL: return authMenuPermissionFail(state, action);\r\n case actionTypes.INTERFACE_VERSION_CHECK: return interfaceVersionUpdateConfirm(state, action);\r\n case actionTypes.INTERFACE_VERSION_CHECK_UPDATE: return interfaceVersionShouldBeChecked(state, action);\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;","export const AUTH_USER_START = 'AUTH_USER_START';\r\nexport const AUTH_USER_SUCCESS = 'AUTH_USER_SUCCESS';\r\nexport const AUTH_USER_FAIL = 'AUTH_USER_FAIL';\r\nexport const AUTH_USER_REDIRECTTOLOGIN = 'AUTH_USER_REDIRECTTOLOGIN';\r\n\r\nexport const AUTH_OTP_START = 'AUTH_OTP_START';\r\nexport const AUTH_OTP_SUCCESS = 'AUTH_OTP_SUCESS';\r\nexport const AUTH_OTP_FAIL = 'AUTH_OTP_FAIL';\r\n\r\nexport const AUTH_ROLEGET_START = 'AUTH_ROLEGET_START';\r\nexport const AUTH_ROLEGET_SUCCESS = 'AUTH_ROLEGET_SUCESS';\r\nexport const AUTH_ROLEGET_FAIL = 'AUTH_ROLEGET_FAIL';\r\n\r\nexport const AUTH_ROLESELECT_START = 'AUTH_ROLESELECT_START';\r\nexport const AUTH_ROLESELECT_SUCCESS = 'AUTH_ROLESELECT_SUCESS';\r\nexport const AUTH_ROLESELECT_FAIL = 'AUTH_ROLESELECT_FAIL';\r\nexport const AUTH_LOGOUT = 'AUTH_LOGOUT';\r\n\r\nexport const AUTH_PROVIDERSELECT_START = 'AUTH_PROVIDERSELECT_START';\r\nexport const AUTH_PROVIDERSELECT_SUCCESS = 'AUTH_PROVIDERSELECT_SUCESS';\r\nexport const AUTH_PROVIDERSELECT_FAIL = 'AUTH_PROVIDERSELECT_FAIL';\r\n\r\nexport const AUTH_EMPLOYERSELECT_START = 'AUTH_EMPLOYERSELECT_START';\r\nexport const AUTH_EMPLOYERSELECT_SUCCESS = 'AUTH_EMPLOYERSELECT_SUCESS';\r\nexport const AUTH_EMPLOYERSELECT_FAIL = 'AUTH_EMPLOYERSELECT_FAIL';\r\n\r\nexport const AUTH_SWITCHPROFILE_START = 'AUTH_SWITCHPROFILE_START';\r\nexport const AUTH_SWITCHPROFILE_SUCCESS = 'AUTH_SWITCHPROFILE_SUCESS';\r\nexport const AUTH_SWITCHPROFILE_FAIL = 'AUTH_SWITCHPROFILE_FAIL';\r\n\r\nexport const AUTH_FORGOTPASSWORD_START = 'AUTH_FORGOTPASSWORD_START';\r\nexport const AUTH_FORGOTPASSWORD_SUCCESS = 'AUTH_FORGOTPASSWORD_SUCESS';\r\nexport const AUTH_FORGOTPASSWORD_FAIL = 'AUTH_FORGOTPASSWORD_FAIL';\r\n\r\nexport const AUTH_RESETPASSWORD_START = 'AUTH_RESETPASSWORD_START';\r\nexport const AUTH_RESETPASSWORD_SUCCESS = 'AUTH_RESETPASSWORD_SUCESS';\r\nexport const AUTH_RESETPASSWORD_FAIL = 'AUTH_RESETPASSWORD_FAIL';\r\n\r\nexport const AUTH_MENUPERMISSION_START = 'AUTH_MENUPERMISSION_START';\r\nexport const AUTH_MENUPERMISSION_SUCCESS = 'AUTH_MENUPERMISSION_SUCESS';\r\nexport const AUTH_MENUPERMISSION_FAIL = 'AUTH_MENUPERMISSION_FAIL';\r\n\r\nexport const INTERFACE_VERSION_CHECK = 'INTERFACE_VERSION_CHECK';\r\nexport const INTERFACE_VERSION_CHECK_UPDATE = 'INTERFACE_VERSION_CHECK_UPDATE';\r\n\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const authUserStart = () => {\r\n return {\r\n type: actionTypes.AUTH_USER_START\r\n };\r\n};\r\n\r\nexport const authUserSuccess = (authUserData, timer, loginPath) => {\r\n return {\r\n type: actionTypes.AUTH_USER_SUCCESS,\r\n authUserData: authUserData,\r\n authUserLoginTimer: timer,\r\n loginRedirectToLoginPath: loginPath\r\n };\r\n};\r\n\r\nexport const authUserFail = (authUserError) => {\r\n return {\r\n type: actionTypes.AUTH_USER_FAIL,\r\n authUserError: authUserError\r\n };\r\n};\r\n\r\nexport const authUserRedirectToLogin = () => {\r\n return {\r\n type: actionTypes.AUTH_USER_REDIRECTTOLOGIN\r\n };\r\n};\r\n\r\nfunction CheckError(response) {\r\n if (response.status >= 200 && response.status <= 299) {\r\n return response.json();\r\n } else {\r\n throw Error(response.statusText);\r\n }\r\n}\r\n\r\nexport const authUser = (username, password, loginPath) => {\r\n return dispatch => {\r\n dispatch(authUserStart());\r\n const fetchConfig = {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ Username: username, Password: password })\r\n };\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/security/login`, fetchConfig)\r\n .then(CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n let timer;\r\n if (response.Authenticated || response.OTPSent) {\r\n timer = setTimeout(() => {\r\n dispatch(authUserRedirectToLogin());\r\n }, 300000);\r\n }\r\n dispatch(authUserSuccess(response, timer, loginPath));\r\n }).catch((error) => {\r\n dispatch(authUserFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n };\r\n};\r\n\r\nexport const authADUser = (/*username, password,*/ loginPath, Token) => {\r\n return dispatch => {\r\n dispatch(authUserStart());\r\n const fetchConfig = {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'bearer ' + Token\r\n }/*,\r\n body: JSON.stringify({ Username: username, Password: password })*/\r\n };\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/ADsecurity/login`, fetchConfig)\r\n .then(CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n let timer;\r\n if (response.Authenticated || response.OTPSent) {\r\n timer = setTimeout(() => {\r\n dispatch(authUserRedirectToLogin());\r\n }, 300000);\r\n }\r\n dispatch(authUserSuccess(response, timer, loginPath));\r\n }).catch((error) => {\r\n dispatch(authUserFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n };\r\n};\r\n\r\nexport const authOTPStart = () => {\r\n return {\r\n type: actionTypes.AUTH_OTP_START\r\n };\r\n};\r\n\r\nexport const authOTPSuccess = (authUserData) => {\r\n return {\r\n type: actionTypes.AUTH_OTP_SUCCESS,\r\n authUserData: authUserData\r\n };\r\n};\r\n\r\nexport const authOTPFail = (authOTPError) => {\r\n return {\r\n type: actionTypes.AUTH_OTP_FAIL,\r\n authUserError: authOTPError\r\n };\r\n};\r\n\r\nexport const authOTP = (OTP, UserKey) => {\r\n return dispatch => {\r\n dispatch(authOTPStart());\r\n const fetchConfig = {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ OTP: OTP, UserKey: UserKey })\r\n };\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/security/confirmOTP`, fetchConfig)\r\n .then(CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n dispatch(authOTPSuccess(response));\r\n }).catch((error) => {\r\n dispatch(authOTPFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n };\r\n};\r\n\r\nexport const authRoleGetStart = () => {\r\n return {\r\n type: actionTypes.AUTH_ROLEGET_START\r\n };\r\n};\r\n\r\nexport const authRoleGetSuccess = (authUserData) => {\r\n return {\r\n type: actionTypes.AUTH_ROLEGET_SUCCESS,\r\n authUserData: authUserData\r\n };\r\n};\r\n\r\nexport const authRoleGetFail = (authRoleGetError) => {\r\n return {\r\n type: actionTypes.AUTH_ROLEGET_FAIL,\r\n authUserError: authRoleGetError\r\n };\r\n};\r\n\r\nexport const authRoleGet = (UserKey) => {\r\n return dispatch => {\r\n dispatch(authRoleGetStart());\r\n const fetchConfig = {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ UserKey: UserKey })\r\n };\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/security/roles`, fetchConfig)\r\n .then(CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n dispatch(authRoleGetSuccess(response));\r\n }).catch((error) => {\r\n dispatch(authRoleGetFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n };\r\n};\r\n\r\nexport const authRoleSelectStart = () => {\r\n return {\r\n type: actionTypes.AUTH_ROLESELECT_START\r\n };\r\n};\r\n\r\nexport const authRoleSelectSuccess = (authUserData, timer) => {\r\n return {\r\n type: actionTypes.AUTH_ROLESELECT_SUCCESS,\r\n authUserData: authUserData,\r\n userLogoutTimer: timer\r\n };\r\n};\r\n\r\nexport const authRoleSelectFail = (authRoleGetError) => {\r\n return {\r\n type: actionTypes.AUTH_ROLESELECT_FAIL,\r\n authUserError: authRoleGetError\r\n };\r\n};\r\n\r\nexport const authLogout = () => {\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('expirationDate');\r\n return {\r\n type: actionTypes.AUTH_LOGOUT\r\n };\r\n};\r\n\r\nexport const authRoleSelect = (UserKey, RoleKey) => {\r\n return dispatch => {\r\n dispatch(authRoleSelectStart());\r\n const fetchConfig = {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ UserKey: UserKey, RoleKey: RoleKey })\r\n };\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/security/setRole`, fetchConfig)\r\n .then(CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n let timer = null;\r\n if (response.Token) {\r\n //const expirationDate = new Date(response.Token.ExpiresIn);\r\n const expirationDate = new Date(new Date().getTime() + response.Token.ExpiresInMin * 60000);\r\n localStorage.setItem('token', response.Token.AccessToken);\r\n localStorage.setItem('expirationDate', expirationDate);\r\n //let ExpiresIn = (expirationDate.getTime() - new Date().getTime());\r\n //timer = setTimeout(() => {\r\n // dispatch(authLogout());\r\n //}, ExpiresIn);\r\n }\r\n dispatch(authRoleSelectSuccess(response, timer));\r\n }).catch((error) => {\r\n dispatch(authRoleSelectFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n };\r\n};\r\n\r\nexport const authProviderSelectStart = () => {\r\n return {\r\n type: actionTypes.AUTH_PROVIDERSELECT_START\r\n };\r\n};\r\n\r\nexport const authProviderSelectSuccess = (authUserData, timer) => {\r\n return {\r\n type: actionTypes.AUTH_PROVIDERSELECT_SUCCESS,\r\n authUserData: authUserData,\r\n userLogoutTimer: timer\r\n };\r\n};\r\n\r\nexport const authProviderSelectFail = (authRoleGetError) => {\r\n return {\r\n type: actionTypes.AUTH_PROVIDERSELECT_FAIL,\r\n authUserError: authRoleGetError\r\n };\r\n};\r\n\r\nexport const authProviderSelect = (UserKey, RoleKey, ProviderKey) => {\r\n return dispatch => {\r\n dispatch(authProviderSelectStart());\r\n const fetchConfig = {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ UserKey: UserKey, RoleKey: RoleKey, ProviderKey: ProviderKey })\r\n };\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/security/setProviderRole`, fetchConfig)\r\n .then(CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n let timer = null;\r\n if (response.Token) {\r\n //const expirationDate = new Date(response.Token.ExpiresIn);\r\n const expirationDate = new Date(new Date().getTime() + response.Token.ExpiresInMin * 60000);\r\n localStorage.setItem('token', response.Token.AccessToken);\r\n localStorage.setItem('expirationDate', expirationDate);\r\n //let ExpiresIn = (expirationDate.getTime() - new Date().getTime());\r\n //timer = setTimeout(() => {\r\n // dispatch(authLogout());\r\n //}, ExpiresIn);\r\n }\r\n dispatch(authProviderSelectSuccess(response, timer));\r\n }).catch((error) => {\r\n dispatch(authProviderSelectFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n };\r\n};\r\n\r\nexport const authEmployerSelectStart = () => {\r\n return {\r\n type: actionTypes.AUTH_EMPLOYERSELECT_START\r\n };\r\n};\r\n\r\nexport const authEmployerSelectSuccess = (authUserData, timer) => {\r\n return {\r\n type: actionTypes.AUTH_EMPLOYERSELECT_SUCCESS,\r\n authUserData: authUserData,\r\n userLogoutTimer: timer\r\n };\r\n};\r\n\r\nexport const authEmployerSelectFail = (authRoleGetError) => {\r\n return {\r\n type: actionTypes.AUTH_EMPLOYERSELECT_FAIL,\r\n authUserError: authRoleGetError\r\n };\r\n};\r\n\r\nexport const authEmployerSelect = (UserKey, RoleKey, EmployerKey) => {\r\n return dispatch => {\r\n dispatch(authEmployerSelectStart());\r\n const fetchConfig = {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ UserKey: UserKey, RoleKey: RoleKey, EmployerKey: EmployerKey })\r\n };\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/security/setEmployerRole`, fetchConfig)\r\n .then(CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n let timer = null;\r\n if (response.Token) {\r\n //const expirationDate = new Date(response.Token.ExpiresIn);\r\n const expirationDate = new Date(new Date().getTime() + response.Token.ExpiresInMin * 60000);\r\n localStorage.setItem('token', response.Token.AccessToken);\r\n localStorage.setItem('expirationDate', expirationDate);\r\n //let ExpiresIn = (expirationDate.getTime() - new Date().getTime());\r\n //timer = setTimeout(() => {\r\n // dispatch(authLogout());\r\n //}, ExpiresIn);\r\n }\r\n dispatch(authEmployerSelectSuccess(response, timer));\r\n }).catch((error) => {\r\n dispatch(authEmployerSelectFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n };\r\n};\r\n\r\nexport const authSwitchProfileStart = () => {\r\n return {\r\n type: actionTypes.AUTH_SWITCHPROFILE_START\r\n };\r\n};\r\n\r\nexport const authSwitchProfileSuccess = (authUserData, timer, loginPath) => {\r\n return {\r\n type: actionTypes.AUTH_SWITCHPROFILE_SUCCESS,\r\n authUserData: authUserData,\r\n authUserLoginTimer: timer,\r\n loginRedirectToLoginPath: loginPath\r\n };\r\n};\r\n\r\nexport const authSwitchProfileFail = (authUserError) => {\r\n return {\r\n type: actionTypes.AUTH_SWITCHPROFILE_FAIL,\r\n authUserError: authUserError\r\n };\r\n};\r\n\r\nexport const authSwitchProfile = (loginPath) => {\r\n return dispatch => {\r\n dispatch(authSwitchProfileStart());\r\n const url = 'api/sims/security/SwitchProfile';\r\n let fetchConfig = {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + localStorage.getItem(\"token\")\r\n }\r\n };\r\n\r\n const ExpirationDate = new Date(localStorage.getItem(\"expirationDate\"));\r\n const currentDate = new Date();\r\n var secondBetweenTwoDate = ((ExpirationDate - currentDate.getTime()) / 1000);\r\n\r\n if (secondBetweenTwoDate < 10) {\r\n const refreshFetchConfig = {\r\n method: 'POST'\r\n }\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/security/SetRefreshToken`, refreshFetchConfig)\r\n .then(CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n const expirationDate = new Date(new Date().getTime() + response.ExpiresInMin * 60000);\r\n localStorage.setItem('token', response.AccessToken);\r\n localStorage.setItem('expirationDate', expirationDate);\r\n fetchConfig.headers.Authorization = 'Bearer ' + localStorage.getItem(\"token\");\r\n fetch(`${process.env.PUBLIC_URL}/` + url, fetchConfig)\r\n .then(CheckError)//.then(res => res.json())\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n let timer;\r\n if (response.Authenticated || response.OTPSent) {\r\n timer = setTimeout(() => {\r\n dispatch(authUserRedirectToLogin());\r\n }, 300000);\r\n }\r\n dispatch(authSwitchProfileSuccess(response, timer, loginPath));\r\n }).catch((e) => {\r\n dispatch(authSwitchProfileFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n }).catch((e) => {\r\n console.log('Error');\r\n console.log(e);\r\n const store = window.globalAppRXStore;\r\n const auth = store.getState().auth;\r\n //Logout Logic\r\n clearTimeout(auth.userLogoutTimer);\r\n if (auth.loginRedirectToLoginPath !== '/ADlogin') {\r\n store.dispatch(authLogout());\r\n }\r\n else {\r\n const adStore = window.globalAppADStore;\r\n const isAuthenticated = adStore.getAllAccounts().length > 0;\r\n if (isAuthenticated) {\r\n adStore.logoutPopup().then((loginResponse) => {\r\n store.dispatch(authLogout());\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n } else {\r\n store.dispatch(authLogout());\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n fetch(`${process.env.PUBLIC_URL}/` + url, fetchConfig)\r\n .then(CheckError)//.then(res => res.json())\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n let timer;\r\n if (response.Authenticated || response.OTPSent) {\r\n timer = setTimeout(() => {\r\n dispatch(authUserRedirectToLogin());\r\n }, 300000);\r\n }\r\n dispatch(authSwitchProfileSuccess(response, timer, loginPath));\r\n }).catch((e) => {\r\n dispatch(authSwitchProfileFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const authForgotPasswordStart = () => {\r\n return {\r\n type: actionTypes.AUTH_FORGOTPASSWORD_START\r\n };\r\n};\r\n\r\nexport const authForgotPasswordSuccess = (authUserData) => {\r\n return {\r\n type: actionTypes.AUTH_FORGOTPASSWORD_SUCCESS,\r\n authUserData: authUserData\r\n };\r\n};\r\n\r\nexport const authForgotPasswordFail = (authRoleGetError) => {\r\n return {\r\n type: actionTypes.AUTH_FORGOTPASSWORD_FAIL,\r\n authUserError: authRoleGetError\r\n };\r\n};\r\n\r\nexport const authForgotPassword = (Username) => {\r\n return dispatch => {\r\n dispatch(authForgotPasswordStart());\r\n const fetchConfig = {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ Username: Username })\r\n };\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/security/forgotpassword`, fetchConfig)\r\n .then(CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n dispatch(authForgotPasswordSuccess(response));\r\n }).catch((error) => {\r\n dispatch(authForgotPasswordFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n };\r\n};\r\n\r\nexport const authResetPasswordStart = () => {\r\n return {\r\n type: actionTypes.AUTH_RESETPASSWORD_START\r\n };\r\n};\r\n\r\nexport const authResetPasswordSuccess = (authUserData) => {\r\n return {\r\n type: actionTypes.AUTH_RESETPASSWORD_SUCCESS,\r\n authUserData: authUserData\r\n };\r\n};\r\n\r\nexport const authResetPasswordFail = (authRoleGetError) => {\r\n return {\r\n type: actionTypes.AUTH_RESETPASSWORD_FAIL,\r\n authUserError: authRoleGetError\r\n };\r\n};\r\n\r\nexport const authResetPassword = (Username, Password, NewPassword, ConfirmPassword) => {\r\n return dispatch => {\r\n dispatch(authResetPasswordStart());\r\n const fetchConfig = {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ Username: Username, Password: Password, NewPassword: NewPassword, ConfirmPassword: ConfirmPassword })\r\n };\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/security/reset`, fetchConfig)\r\n .then(CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n dispatch(authResetPasswordSuccess(response));\r\n }).catch((error) => {\r\n dispatch(authResetPasswordFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n };\r\n};\r\n\r\nexport const authMenuPermissionStart = () => {\r\n return {\r\n type: actionTypes.AUTH_MENUPERMISSION_START\r\n };\r\n};\r\n\r\nexport const authMenuPermissionSuccess = (authMenuPermissionData) => {\r\n return {\r\n type: actionTypes.AUTH_MENUPERMISSION_SUCCESS,\r\n authMenuPermissionData: authMenuPermissionData\r\n };\r\n};\r\n\r\nexport const authMenuPermissionFail = (authMenuPermissionError) => {\r\n return {\r\n type: actionTypes.AUTH_MENUPERMISSION_FAIL,\r\n authMenuPermissionError: authMenuPermissionError\r\n };\r\n};\r\n\r\nexport const authMenuPermission = () => {\r\n return dispatch => {\r\n dispatch(authMenuPermissionStart());\r\n const fetchConfig = {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + localStorage.getItem(\"token\")\r\n }\r\n };\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/security/getmenus`, fetchConfig)\r\n .then(CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n dispatch(authMenuPermissionSuccess(response));\r\n }).catch((error) => {\r\n dispatch(authMenuPermissionFail(\"A system error has occured. Please contact your system administrator\"));\r\n });\r\n };\r\n};\r\n\r\nexport const interfaceVersionCheck = (interfaceVersionUpdateConfirm) => {\r\n return {\r\n type: actionTypes.INTERFACE_VERSION_CHECK,\r\n interfaceVersionUpdateConfirm: interfaceVersionUpdateConfirm\r\n };\r\n};\r\n\r\nexport const interfaceVersionShouldCheck = (interfaceVersionShouldBeChecked) => {\r\n return {\r\n type: actionTypes.INTERFACE_VERSION_CHECK_UPDATE,\r\n interfaceVersionShouldBeChecked: interfaceVersionShouldBeChecked\r\n };\r\n};","import { trackPromise } from 'react-promise-tracker';\r\nimport * as actions from '../store/actions/auth';\r\n\r\nexport default class ViewUtils {\r\n constructor() {\r\n }\r\n\r\n SYSTEM_ERROR_MESSAGE = \"A system error has occured. Please contact your system administrator\";\r\n\r\n isNull(value) {\r\n return value === null || typeof value === 'undefined';\r\n }\r\n\r\n getCurrentRole() {\r\n const store = window.globalAppRXStore;\r\n const authUserDetails = store.getState().auth;\r\n const currentRole = authUserDetails.Roles.find(({ Id }) => Id === authUserDetails.RoleKey);\r\n\r\n return currentRole.Name;\r\n }\r\n\r\n processToolbarConfig(viewMode, config) {\r\n let items = config.items;\r\n for (var i = 0; i < items.length; i++) {\r\n let type = items[i].type;\r\n if (type === 'buttonGroup') {\r\n let buttons = items[i].buttons;\r\n for (var j = 0; j < buttons.length; j++) {\r\n let modes = buttons[j].modes;\r\n if (!this.isNull(modes)) {\r\n buttons[j].visible = modes.split(\",\").includes(viewMode);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Force a new instance so that change event will be fired\r\n return JSON.parse(JSON.stringify(config));\r\n }\r\n\r\n getField(id, settings) {\r\n if (settings != null) {\r\n for (var i = 0; i < settings.fields.length; i++) {\r\n var field = settings.fields[i];\r\n if (field.name === id) {\r\n return field;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n isFieldRequired(id, settings, formId) {\r\n if (typeof settings !== 'undefined' && settings !== null) {\r\n let field = this.getField(id, settings);\r\n if (field != null) {\r\n return field.required;\r\n }\r\n }\r\n\r\n if (!this.isStringEmpty(formId)) {\r\n let fields = this.getFields(formId, 'validate');\r\n for (var i = 0; i < fields.length; i++) {\r\n if (fields[i].id === id) {\r\n return fields[i].required;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isFieldVisible(id, settings) {\r\n if (typeof settings !== 'undefined' && settings !== null) {\r\n let field = this.getField(id, settings);\r\n if (field != null) {\r\n return field.visible;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n isStringEmpty(val) {\r\n return typeof val === 'undefined' || val === null || val.trim().length === 0;\r\n }\r\n\r\n getFields(formId, className) {\r\n let inputFields = [];\r\n let form = document.getElementById(formId);\r\n if (!this.isNull(form)) {\r\n let inputDivs = form.getElementsByClassName(className);\r\n for (let i = 0; i < inputDivs.length; i++) {\r\n let inputs = inputDivs[i].getElementsByTagName(\"input\");\r\n for (let j = 0; j < inputs.length; j++) {\r\n inputFields.push(inputs[j]);\r\n }\r\n }\r\n }\r\n\r\n return inputFields;\r\n }\r\n\r\n validateField(id, required, values, currentValue) {\r\n return this.validateField(id, required, values, currentValue, null, null);\r\n }\r\n\r\n validateField(id, required, values, currentValue, message) {\r\n return this.validateField(id, required, values, currentValue, null, message);\r\n }\r\n\r\n validateField(id, required, values, currentValue, regex, message) {\r\n let result = {};\r\n result.valid = true;\r\n result.message = \"\";\r\n\r\n let value;\r\n if (currentValue !== null) {\r\n value = currentValue;\r\n } else {\r\n value = values[id];\r\n }\r\n\r\n let hasErrors = false;\r\n\r\n if (required && (this.isNull(value) || this.isStringEmpty(value.toString()))) {\r\n result.message = !this.isNull(message) ? message : \"* Required\";\r\n hasErrors = true;\r\n } else {\r\n result.message = \"\";\r\n }\r\n\r\n if (!hasErrors && !this.isNull(regex) && !this.isNull(value)) {\r\n hasErrors = this.isNull(value.toString().match(regex));\r\n if (hasErrors) {\r\n result.message = !this.isNull(message) ? message : \"This field is invalid\";\r\n }\r\n }\r\n\r\n result.valid = !hasErrors;\r\n return result;\r\n }\r\n\r\n doGetRequestJson(currentPage, curretRowsPerPage, currentSearchParameters, paged) {\r\n var request = {};\r\n request.pageSize = curretRowsPerPage;\r\n request.currentPage = currentPage;\r\n request.searchParameters = currentSearchParameters;\r\n request.paged = typeof paged === 'undefined' || paged === null || paged;\r\n\r\n return JSON.stringify(request);\r\n }\r\n\r\n getEntityViewTitle(queryParameterState, viewName, ...fields) {\r\n if (this.isNull(queryParameterState)) {\r\n return !this.isNull(viewName) ? viewName + \" > Add\" : \"Add\";\r\n } else {\r\n return viewName;\r\n }\r\n\r\n let props = \"\";\r\n for (let i = 0; i < fields.length; i++) {\r\n if (!this.isNull(fields[i])) {\r\n props += fields[i].trim();\r\n props += \" \";\r\n }\r\n }\r\n\r\n props = props.trim();\r\n let prefix = this.isNull(viewName) ? \"\" : \" > \";\r\n return (this.isNull(viewName) ? \"\" : viewName) + (props.length > 0 ? (prefix + props) : \"\");\r\n }\r\n\r\n setLegendColor(color) {\r\n let legends = document.getElementsByClassName(\"legend\");\r\n for (let i = 0; i < legends.length; i++) {\r\n legends[i].style.color = color;\r\n }\r\n }\r\n\r\n setLegend(text) {\r\n if (!this.isNull(text)) {\r\n let legend = document.getElementById(\"globalLegend\");\r\n if (legend) { legend.innerHTML = text; }\r\n }\r\n }\r\n\r\n showMessage = (viewRef, message, type) => {\r\n if (this.isNull(message)) {\r\n message = \"\";\r\n }\r\n\r\n //let messageType = type === \"ERROR\" ? \"danger\" : (this.isNull(type) ? \"message\" : type);\r\n let messageType = (this.isNull(type) ? \"message\" : type);\r\n viewRef.setState({ message: message, messageStyle: messageType });\r\n }\r\n\r\n saveForm(viewRef, formRef, url) {\r\n this.saveForm(viewRef, formRef, url, null, null, null);\r\n }\r\n\r\n saveForm(viewRef, formRef, url, successCallback, errorCallback) {\r\n this.saveForm(viewRef, formRef, url, successCallback, errorCallback, null);\r\n }\r\n\r\n\r\n\r\n updateForm(viewRef, formRef, url) {\r\n this.updateForm(viewRef, formRef, url, null, null, null);\r\n }\r\n\r\n updateForm(viewRef, formRef, url, successCallback, errorCallback) {\r\n this.updateForm(viewRef, formRef, url, successCallback, errorCallback, null);\r\n }\r\n\r\n\r\n\r\n offsetDate(date, yearOffset, monthOffset, dayOffset) {\r\n let year = date.getFullYear() + yearOffset;\r\n let day = date.getDate() + dayOffset;\r\n let month = date.getMonth() + monthOffset;\r\n\r\n return new Date(year, month, day);\r\n }\r\n\r\n\r\n autoSetDate(viewRef, formRef, newDate, yearOffset, monthOffset, dayOffset, autoFillDateName, refDateName) {\r\n let stateDate = viewRef.state[refDateName];\r\n let tempDate = stateDate\r\n if (this.isNull(stateDate) || stateDate.getTime() !== newDate.getTime()) {\r\n viewRef.setState({ ...viewRef.state, [refDateName]: newDate }, () => {\r\n if (!this.isNull(tempDate) && !this.isNull(viewRef.state.id)) {\r\n let autoFillDate = this.offsetDate(newDate, yearOffset, monthOffset, dayOffset);\r\n formRef.current.setValue(autoFillDateName, autoFillDate);\r\n }\r\n else if (this.isNull(viewRef.state.id)) {\r\n let autoFillDate = this.offsetDate(newDate, yearOffset, monthOffset, dayOffset);\r\n formRef.current.setValue(autoFillDateName, autoFillDate);\r\n }\r\n });\r\n }\r\n }\r\n\r\n CheckError(response) {\r\n if (response.status >= 200 && response.status <= 299) {\r\n return response.json();\r\n } else {\r\n throw Error(response.statusText);\r\n }\r\n }\r\n\r\n CheckHeader = (response) => {\r\n try {\r\n const store = window.globalAppRXStore;\r\n const auth = store.getState().auth;\r\n if (auth.interfaceVersionShouldBeChecked) {\r\n const interfaceVersionLatest = parseInt(response.headers.get('x-fe-version-header'));\r\n if (interfaceVersionLatest > this.GetInterfaceVersion(false)) {\r\n store.dispatch(actions.interfaceVersionCheck(true));\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n return response;\r\n }\r\n\r\n //API calls default to this method, with GET as the\r\n invokeUrl(url, successCallback, errorCallback) {\r\n this.invokeUrl(url, successCallback, errorCallback, null);\r\n }\r\n\r\n invokeUrl(url, successCallback, errorCallback, config) {\r\n let fetchConfig = this.isNull(config) ? {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + localStorage.getItem(\"token\")\r\n }\r\n } : config;\r\n\r\n\r\n const ExpirationDate = new Date(localStorage.getItem(\"expirationDate\"));\r\n const currentDate = new Date();\r\n var secondBetweenTwoDate = ((ExpirationDate - currentDate.getTime()) / 1000);\r\n\r\n if (secondBetweenTwoDate < 10) {\r\n const refreshFetchConfig = {\r\n method: 'POST'\r\n }\r\n trackPromise(\r\n fetch(`${process.env.PUBLIC_URL}/api/sims/security/SetRefreshToken`, refreshFetchConfig)\r\n .then(this.CheckError)\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n const expirationDate = new Date(new Date().getTime() + response.ExpiresInMin * 60000);\r\n localStorage.setItem('token', response.AccessToken);\r\n localStorage.setItem('expirationDate', expirationDate);\r\n fetchConfig.headers.Authorization = 'Bearer ' + localStorage.getItem(\"token\");\r\n trackPromise(\r\n fetch(`${process.env.PUBLIC_URL}/` + url, fetchConfig)\r\n .then(this.CheckHeader)\r\n .then(this.CheckError)//.then(res => res.json())\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n if (successCallback !== null) {\r\n successCallback(response);\r\n }\r\n }).catch((e) => {\r\n if (errorCallback !== null) {\r\n errorCallback(e);\r\n }\r\n }));\r\n\r\n }).catch((e) => {\r\n const store = window.globalAppRXStore;\r\n const auth = store.getState().auth;\r\n //Logout Logic\r\n clearTimeout(auth.userLogoutTimer);\r\n if (auth.loginRedirectToLoginPath !== '/ADlogin') {\r\n store.dispatch(actions.authLogout());\r\n }\r\n else {\r\n const adStore = window.globalAppADStore;\r\n const isAuthenticated = adStore.getAllAccounts().length > 0;\r\n if (isAuthenticated) {\r\n adStore.logoutPopup().then((loginResponse) => {\r\n store.dispatch(actions.authLogout());\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n } else {\r\n store.dispatch(actions.authLogout());\r\n }\r\n }\r\n }));\r\n }\r\n else {\r\n trackPromise(\r\n fetch(`${process.env.PUBLIC_URL}/` + url, fetchConfig)\r\n .then(this.CheckHeader)\r\n .then(this.CheckError)//.then(res => res.json())\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n if (successCallback !== null) {\r\n successCallback(response);\r\n }\r\n }).catch((e) => {\r\n if (errorCallback !== null) {\r\n errorCallback(e);\r\n }\r\n }));\r\n }\r\n }\r\n\r\n //API calls default to this method, with DELETE as the default\r\n invokeUrlDelete(url, successCallback, errorCallback) {\r\n const config = {\r\n method: 'DELETE',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + localStorage.getItem(\"token\")\r\n }\r\n }\r\n this.invokeUrl(url, successCallback, errorCallback, config);\r\n }\r\n\r\n //API calls default to this method, with GET as the - external\r\n invokeUrlExternal(url, successCallback, errorCallback) {\r\n this.invokeUrl(url, successCallback, errorCallback, null);\r\n }\r\n\r\n invokeUrlExternal(url, successCallback, errorCallback, config) {\r\n let fetchConfig = this.isNull(config) ? {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + localStorage.getItem(\"token\")\r\n }\r\n } : config;\r\n\r\n trackPromise(\r\n fetch(`${process.env.PUBLIC_URL}/` + url, fetchConfig)\r\n .then(this.CheckError)//.then(res => res.json())\r\n .then((responseJson) => {\r\n let response = typeof responseJson === \"object\" ? responseJson : JSON.parse(responseJson);\r\n if (successCallback !== null) {\r\n successCallback(response);\r\n }\r\n }).catch((e) => {\r\n if (errorCallback !== null) {\r\n errorCallback(e);\r\n }\r\n }));\r\n }\r\n\r\n invokeUrlDeleteExternal(url, successCallback, errorCallback) {\r\n const config = {\r\n method: 'DELETE',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + localStorage.getItem(\"token\")\r\n }\r\n }\r\n this.invokeUrlExternal(url, successCallback, errorCallback, config);\r\n }\r\n\r\n buildLinkURL(url) {\r\n return `${process.env.PUBLIC_URL}/` + url\r\n }\r\n\r\n saveForm(viewRef, formRef, url, successCallback, errorCallback, viewRoute, entityId) {\r\n viewRef.setState({ message: \"\", messageStyle: \"message\" });\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n if (!this.isNull(entityId)) {\r\n formValue.id = entityId;\r\n }\r\n else if (!this.isNull(viewRef.props.location.state) && !this.isNull(viewRef.props.location.state.selection)) {\r\n formValue.id = viewRef.props.location.state.selection;\r\n }\r\n\r\n let data = JSON.stringify(formValue);\r\n const fullUrl = url;\r\n this.invokeUrl(fullUrl, (response) => {\r\n this.showMessage(viewRef, response.Message, response.MessageType);\r\n if (successCallback !== null) {\r\n successCallback(response);\r\n }\r\n\r\n if (!this.isNull(viewRoute) && !this.isNull(response.EntityId) && response.EntityId !== 0) {\r\n viewRef.setState({ id: response.EntityId }, () => {\r\n viewRef.props.history.push({\r\n pathname: viewRoute,\r\n state: { selection: viewRef.state.id }\r\n })\r\n })\r\n }\r\n }, (e) => {\r\n this.showMessage(viewRef, this.SYSTEM_ERROR_MESSAGE, \"ERROR\");\r\n if (errorCallback !== null) {\r\n errorCallback(e);\r\n }\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n );\r\n }\r\n }\r\n updateForm(viewRef, formRef, url, successCallback, errorCallback, viewRoute, entityId) {\r\n viewRef.setState({ message: \"\", messageStyle: \"message\" });\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n if (!this.isNull(entityId)) {\r\n formValue.id = entityId;\r\n }\r\n else if (!this.isNull(viewRef.props.location.state) && !this.isNull(viewRef.props.location.state.selection)) {\r\n formValue.id = viewRef.props.location.state.selection;\r\n }\r\n\r\n let data = JSON.stringify(formValue);\r\n const fullUrl = url;\r\n this.invokeUrl(fullUrl, (response) => {\r\n this.showMessage(viewRef, response.Message, response.MessageType);\r\n if (successCallback !== null) {\r\n successCallback(response);\r\n }\r\n\r\n if (!this.isNull(viewRoute) && !this.isNull(response.EntityId) && response.EntityId !== 0) {\r\n viewRef.setState({ id: response.EntityId }, () => {\r\n viewRef.props.history.push({\r\n pathname: viewRoute,\r\n state: { selection: viewRef.state.id }\r\n })\r\n })\r\n }\r\n }, (e) => {\r\n this.showMessage(viewRef, this.SYSTEM_ERROR_MESSAGE, \"ERROR\");\r\n if (errorCallback !== null) {\r\n errorCallback(e);\r\n }\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n );\r\n }\r\n }\r\n saveFormExternal(viewRef, formRef, url, successCallback, errorCallback, viewRoute, entityId) {\r\n viewRef.setState({ message: \"\", messageStyle: \"message\" });\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n if (!this.isNull(entityId)) {\r\n formValue.id = entityId;\r\n }\r\n else if (!this.isNull(viewRef.props.location.state) && !this.isNull(viewRef.props.location.state.selection)) {\r\n formValue.id = viewRef.props.location.state.selection;\r\n }\r\n\r\n let data = JSON.stringify(formValue);\r\n const fullUrl = url;\r\n this.invokeUrlExternal(fullUrl, (response) => {\r\n this.showMessage(viewRef, response.Message, response.MessageType);\r\n if (successCallback !== null) {\r\n successCallback(response);\r\n }\r\n\r\n if (!this.isNull(viewRoute) && !this.isNull(response.EntityId) && response.EntityId !== 0) {\r\n viewRef.setState({ id: response.EntityId }, () => {\r\n viewRef.props.history.push({\r\n pathname: viewRoute,\r\n state: { selection: viewRef.state.id }\r\n })\r\n })\r\n }\r\n }, (e) => {\r\n this.showMessage(viewRef, this.SYSTEM_ERROR_MESSAGE, \"ERROR\");\r\n if (errorCallback !== null) {\r\n errorCallback(e);\r\n }\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n );\r\n }\r\n }\r\n invokeApiPut(data, url, successCallback, errorCallback, viewRoute, entityId) {\r\n\r\n const fullUrl = url;\r\n this.invokeUrl(fullUrl, (response) => {\r\n\r\n if (successCallback !== null) {\r\n successCallback(response);\r\n }\r\n\r\n }, (e) => {\r\n if (errorCallback !== null) {\r\n errorCallback(e);\r\n }\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n );\r\n\r\n }\r\n\r\n GetInterfaceVersion(runConsole) {\r\n var interfaceVersionValue = 999999;\r\n if (runConsole) {\r\n console.log(\"Current Interface Version: \" + interfaceVersionValue);\r\n }\r\n return interfaceVersionValue;\r\n\r\n }\r\n}\r\n","import React from \"react\";\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport clsx from 'clsx';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport AccountCircle from '@material-ui/icons/AccountCircle';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport simslogoLoading from '../../content/images/logos/sims_logo_loading.png'\r\nimport { connect } from 'react-redux';\r\nimport * as actions from '../../store/actions/auth';\r\nimport { InteractionStatus } from \"@azure/msal-browser\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst header = (props) => {\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [open, setOpen] = React.useState(props.open);\r\n const classes = props.classes;\r\n const { accounts, inProgress, instance } = useMsal();\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n //window.location.href = 'http://simsbat.solugrowth.com/';\r\n };\r\n\r\n const handleSwitchRole = () => {\r\n clearTimeout(props.userLogoutTimer);\r\n props.history.push('/role');\r\n props.onAuthSwitchProfile(props.loginRedirectToLoginPath);\r\n };\r\n\r\n const handleLogout = () => {\r\n clearTimeout(props.userLogoutTimer);\r\n let url = \"api/sims/security/SetRevokeToken\";\r\n const data = { Token: null };\r\n utils.invokeUrl(url, (response) => {\r\n if (props.loginRedirectToLoginPath !== '/ADlogin') {\r\n props.onAuthLogout();\r\n props.history.push(props.loginRedirectToLoginPath);\r\n }\r\n else {\r\n const isAuthenticated = accounts.length > 0;\r\n if (isAuthenticated && inProgress === InteractionStatus.None) {\r\n instance.logoutPopup().then((loginResponse) => {\r\n props.onAuthLogout();\r\n props.history.push(props.loginRedirectToLoginPath);\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n } else {\r\n props.onAuthLogout();\r\n props.history.push(props.loginRedirectToLoginPath);\r\n }\r\n }\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n }\r\n\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n SKILLS COLLEGE\r\n \r\n\r\n \r\n {props.UserInfo}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n Switch Role\r\n \r\n Logout\r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n userLogoutTimer: state.auth.userLogoutTimer,\r\n loginRedirectToLoginPath: state.auth.loginRedirectToLoginPath,\r\n UserInfo: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.UserInfo : \"\"\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onAuthLogout: () => dispatch(actions.authLogout()),\r\n onAuthSwitchProfile: (loginPath) => dispatch(actions.authSwitchProfile(loginPath))\r\n };\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(header));","import React from \"react\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Link, withRouter } from \"react-router-dom\";\r\nimport ViewUtils from \"../ViewUtils\";\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport DashboardIcon from '@material-ui/icons/Dashboard';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport BuildIcon from '@material-ui/icons/Build';\r\nimport ExpandLess from '@material-ui/icons/ExpandLess';\r\nimport ExpandMore from '@material-ui/icons/ExpandMore';\r\nimport AssessmentIcon from '@material-ui/icons/Assessment';\r\nimport BuildOutlinedIcon from '@material-ui/icons/BuildOutlined';\r\nimport SettingsApplicationsIcon from '@material-ui/icons/SettingsApplications';\r\nimport AccountBalanceIcon from '@material-ui/icons/AccountBalance';\r\nimport AccountTreeOutlinedIcon from '@material-ui/icons/AccountTreeOutlined';\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { Icon } from \"@material-ui/core\";\r\nimport { connect } from 'react-redux';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n textItemIconStyle: {\r\n fontWeight: 'bold',\r\n fontSize: \"15px\",\r\n paddingLeft: '5px',\r\n margin: '0',\r\n color: theme.palette.action.main\r\n },\r\n menuListItem: {\r\n color: theme.palette.action.main,\r\n fill: theme.palette.action.main\r\n },\r\n nested: {\r\n paddingLeft: theme.spacing(4),\r\n },\r\n nestedMore: {\r\n paddingLeft: theme.spacing(8),\r\n },\r\n\r\n}));\r\n\r\nconst utils = new ViewUtils();\r\n/*const views = [\r\n {\r\n id : 1,\r\n name: \"Dashboard\",\r\n url: \"/dashboard\",\r\n icon: ,\r\n iconText: null,\r\n selected: false,\r\n },\r\n {\r\n id: 2,\r\n name: \"ETQA\",\r\n selected: false,\r\n isOpen: false,\r\n icon: ,\r\n iconText: null,\r\n modules: [\r\n { id: 3, name: \"Assessor\", url: \"/assessorSearch\", selected: false, icon: null, iconText: 'A' },\r\n { id: 4, name: \"Moderator\", url: \"/moderatorSearch\", selected: false, icon: null, iconText: 'M' },\r\n { id: 5, name: \"Learner\", url: \"/learners\", selected: false, icon: null, iconText: 'LNR' },\r\n { id: 6, name: \"Provider\", url: \"/providerSearch\", selected: false, icon: null, iconText: 'PR' },\r\n { id: 7, name: \"Employer\", url: \"/employers\", selected: false, icon: null, iconText: 'E' },\r\n { id: 8, name: \"Person\", url: \"/persons\", selected: false, icon: null, iconText: 'P' },\r\n { id: 9, name: \"Expiry Notification\", url: \"/expiryNotification\", selected: false, icon: null, iconText: 'EX' },\r\n {\r\n id: 10,\r\n name: \"Programme Setup\",\r\n selected: false,\r\n isOpen: false,\r\n icon: null,\r\n iconText: 'PS',\r\n modules: [\r\n { id: 11, name: \"Qualification\", url: \"/qualificationsetupSearch\", selected: false, icon: null, iconText: 'Q' },\r\n { id: 12, name: \"Unit Standard\", url: \"/unitstandardsetupSearch\", selected: false, icon: null, iconText: 'US' },\r\n { id: 13, name: \"Skills Programme\", url: \"/skillsProgrammeSetupSearch\", selected: false, icon: null, iconText: 'SP' },\r\n { id: 14, name: \"Learnership\", url: \"/learnershipsetupSearch\", selected: false, icon: null, iconText: 'LS' },\r\n { id: 15, name: \"Trade\", url: \"/tradeSetupSearch\", selected: false, icon: null, iconText: 'T' },\r\n { id: 16, name: \"AET\", url: \"/AETSetupSearch\", selected: false, icon: null, iconText: 'A' }\r\n ]\r\n },\r\n {\r\n id: 17,\r\n name: \"QA Approval And Certification\",\r\n selected: false,\r\n isOpen: false,\r\n icon: null,\r\n iconText: 'QA',\r\n modules: [\r\n { id: 18, name: \"Bulk QA Approval\", url: \"/bulkApproval\", selected: false, icon: null, iconText: 'QA' },\r\n { id: 19, name: \"Provider\", url: \"/providerDocuments\", selected: false, icon: null, iconText: 'PR' },\r\n { id: 20, name: \"Assessor\", url: \"/assessorDocuments\", selected: false, icon: null, iconText: 'A' },\r\n { id: 21, name: \"Moderator\", url: \"/moderatorDocuments\", selected: false, icon: null, iconText: 'M' },\r\n { id: 22, name: \"Learner\", url: \"/learnerDocuments\", selected: false, icon: null, iconText: 'L' }\r\n ]\r\n },\r\n {\r\n id: 24,\r\n name: \"Bulk Upload\",\r\n selected: false,\r\n isOpen: false,\r\n icon: null,\r\n iconText: 'BU',\r\n modules: [\r\n { id: 25, name: \"Person Uploading\", url: \"/uploadPerson\", selected: false, icon: null, iconText: 'PU' },\r\n { id: 26, name: \"Learnership Programme Registration Uploading\", url: \"/uploadLearnership\", selected: false, icon: null, iconText: 'LP' },\r\n { id: 27, name: \"Skills Programme Registration Uploading\", url: \"/uploadSkills\", selected: false, icon: null, iconText: 'SP' },\r\n { id: 28, name: \"Bursary Registration Uploading\", url: \"/uploadBursaries\", selected: false, icon: null, iconText: 'BUR' },\r\n { id: 29, name: \"Internship Registration Uploading\", url: \"/uploadInternship\", selected: false, icon: null, iconText: 'INT' },\r\n { id: 30, name: \"AET Registration Uploading\", url: \"/uploadAET\", selected: false, icon: null, iconText: 'AET' },\r\n { id: 31, name: \"Candidacy Registration Uploading\", url: \"/uploadCandidacy\", selected: false, icon: null, iconText: 'CAN' },\r\n { id: 32, name: \"FET Registration Uploading\", url: \"/uploadFET\", selected: false, icon: null, iconText: 'FET' },\r\n { id: 33, name: \"Qualification Registration Uploading\", url: \"/uploadQualification\", selected: false, icon: null, iconText: 'Q' },\r\n { id: 34, name: \"Unit Standard Registration Uploading\", url: \"/uploadUnitStandard\", selected: false, icon: null, iconText: 'US' },\r\n { id: 34, name: \"Achievement Uploading\", url: \"/uploadAchievement\", selected: false, icon: null, iconText: 'A' }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n id: 24,\r\n name: \"Skills\",\r\n selected: false,\r\n isOpen: false,\r\n icon: ,\r\n modules: []\r\n },\r\n {\r\n id: 25,\r\n name: \"DG\",\r\n selected: false,\r\n isOpen: false,\r\n icon: ,\r\n modules: []\r\n },\r\n {\r\n id: 26,\r\n name: \"Maintenance\",\r\n selected: false,\r\n isOpen: false,\r\n icon: ,\r\n modules: []\r\n },\r\n {\r\n id: 27,\r\n name: \"Reports\",\r\n url: \"/CustomReports\",\r\n selected: false,\r\n isOpen: false,\r\n icon: ,\r\n modules: []\r\n },\r\n];*/\r\n\r\nconst menu = (props) => {\r\n const [menuState, setMenuState] = React.useState(JSON.parse(JSON.stringify(props.menuList)));\r\n const [open, setOpen] = React.useState(props.open);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n const toggleMenuItem = (arr, name) => {\r\n if (!utils.isNull(arr)) {\r\n const newMenuState = arr.map((item) => {\r\n if (item.Name === name) {\r\n const updatedItem = {\r\n ...item, isOpen: !item.isOpen\r\n };\r\n return updatedItem\r\n }\r\n else if (!utils.isNull(item.Modules)) {\r\n const subMenu = item.Modules.map(subItem => {\r\n if (subItem.Name === name) {\r\n const updatedSub = {\r\n ...subItem, isOpen: !subItem.isOpen\r\n };\r\n return updatedSub;\r\n }\r\n return subItem;\r\n });\r\n\r\n item.Modules = [...subMenu];\r\n }\r\n return item;\r\n });\r\n setMenuState(newMenuState);\r\n }\r\n }\r\n\r\n const getIcon = (iconText) => {\r\n if (iconText === 'DashboardIcon') {\r\n return ;\r\n }\r\n else if (iconText === 'AccountTreeOutlinedIcon') {\r\n return ;\r\n }\r\n else if (iconText === 'AssessmentIcon') {\r\n return ;\r\n }\r\n else if (iconText === 'SettingsApplicationsIcon') {\r\n return ;\r\n }\r\n else if (iconText === 'BuildIcon') {\r\n return ;\r\n }\r\n else if (iconText === 'AccountBalanceIcon') {\r\n return ;\r\n }\r\n else if (iconText === 'HelpIcon') {\r\n return ;\r\n }\r\n else {\r\n return {iconText};\r\n }\r\n }\r\n\r\n const renderMenu = (menuItems, level) => {\r\n\r\n return (\r\n \r\n {\r\n menuItems.map((item) => {\r\n if (!utils.isNull(item.Url) && !utils.isStringEmpty(item.Url)) {\r\n if (open === true) {\r\n \r\n return (\r\n \r\n \r\n {/*item.icon*/}\r\n {getIcon(item.IconText)}\r\n \r\n \r\n \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n \r\n \r\n {/*item.icon*/}\r\n {getIcon(item.IconText)}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n else {\r\n if (open === true) {\r\n return (\r\n
\r\n toggleMenuItem(menuState, item.Name)} className={level == 1 ? classes.nested : level == 2 ? classes.nestedMore : null}>\r\n \r\n {/*item.icon*/}\r\n {getIcon(item.IconText)}\r\n \r\n \r\n {item.isOpen ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n {renderMenu(item.Modules, level + 1)}\r\n \r\n
\r\n );\r\n }\r\n else {\r\n return (\r\n
\r\n \r\n toggleMenuItem(menuState, item.Name)}>\r\n \r\n {/*item.icon*/}\r\n {getIcon(item.IconText)}\r\n \r\n \r\n {item.isOpen ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n \r\n {renderMenu(item.Modules, level + 1)}\r\n \r\n
\r\n );\r\n }\r\n }\r\n })\r\n }\r\n
\r\n )\r\n }\r\n\r\n return (renderMenu(menuState, 0)) /*(
{renderMenu(menuState)}
)*/\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n menuList: state.auth.menuPermissionsDetails.MenuList\r\n };\r\n}\r\n\r\n\r\nexport default withRouter(connect(mapStateToProps, null)(menu));","import React from \"react\";\r\nimport {useTheme } from '@material-ui/core/styles';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport clsx from 'clsx';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\r\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Menu from \"./menu\";\r\n//import List from '@material-ui/core/List';\r\n//import ListItem from '@material-ui/core/ListItem';\r\n//import ListItemText from '@material-ui/core/ListItemText';\r\nimport { Scrollbars } from 'react-custom-scrollbars';\r\nimport { ListItem, ListItemText } from \"@material-ui/core\";\r\nimport { Link, withRouter } from \"react-router-dom\";\r\n//import { Route, Link } from \"react-router-dom\";\r\n\r\nexport default function SideBar(props) {\r\n const theme = useTheme();\r\n const classes = props.classes;\r\n const [open, setOpen] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n const renderThumb = ({ style, ...props }) => {\r\n const thumbStyle = {\r\n backgroundColor: 'white'\r\n };\r\n return (\r\n \r\n );\r\n }\r\n\r\n //const wspColor = {color: '#fffff'}\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n
\r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n
\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport ViewUtils from '../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n width: '100%',\r\n \"& tr td\": {\r\n verticalAlign: \"top\"\r\n }\r\n },\r\n select: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n minHeight: 48\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n root: {\r\n }\r\n}));\r\n\r\nexport const EntityForm = React.forwardRef((props, ref) => {\r\n const [values, setValues] = React.useState(!utils.isNull(props.values) ? props.values : {});\r\n const [settings, setSettings] = React.useState(null);\r\n const viewId = props.viewId;\r\n const entityLookupController = props.entityLookupController;\r\n const entityLookupId = props.entityLookupId;\r\n const org = props.org;\r\n const useCustomSettings = props.useCustomSettings;\r\n const classes = useStyles();\r\n const [fields, setFields] = React.useState([]);\r\n const [fieldParentErrors, setFieldParentErrors] = React.useState({});\r\n const findParameters = props.findParameters;\r\n const [key, setKey] = React.useState(null);\r\n\r\n const doGetValue = () => {\r\n\r\n let localFields = [...fields];\r\n\r\n if (!utils.isNull(props.onCheckFieldValitationArray)) {\r\n localFields = props.onCheckFieldValitationArray(localFields, values);\r\n }\r\n\r\n let parentErrors = {};\r\n let currentValue = values;\r\n for (let i = 0; i < localFields.length; i++) {\r\n let field = localFields[i];\r\n\r\n if (field.ref.validate(values, null) === false) {\r\n currentValue = null;\r\n if (!utils.isNull(field.parentId)) {\r\n parentErrors[field.parentId] = true;\r\n }\r\n }\r\n }\r\n\r\n setFieldParentErrors(parentErrors);\r\n if (currentValue === null) {\r\n utils.setLegendColor(\"red\");\r\n } else {\r\n utils.setLegendColor(null);\r\n }\r\n\r\n if (!utils.isNull(props.onCheckFieldValitationArray)) {\r\n if (JSON.stringify(fields) !== JSON.stringify(localFields)) {\r\n setFields(localFields);\r\n }\r\n }\r\n\r\n return currentValue;\r\n }\r\n\r\n React.useImperativeHandle(ref, () => ({\r\n getValue: () => {\r\n return doGetValue();\r\n },\r\n\r\n doUpdateValue: (name, value) => {\r\n return updateValue(name, value);\r\n },\r\n\r\n setValue: (id, value) => {\r\n doHandleChange(id, value)\r\n }\r\n }));\r\n\r\n function fetchSettings(touch) {\r\n const settingsUrl = `api/sims/` + viewId + `/getViewSettings?organisationId=` + org + `&viewId=` + viewId;\r\n utils.invokeUrl(settingsUrl, (data) => {\r\n setSettings(data);\r\n }, null);\r\n }\r\n\r\n function parseValues(data) {\r\n let parsedValues = JSON.parse(JSON.stringify(data));\r\n\r\n if (!utils.isNull(props.dataURL) && utils.isNull(props.entityLookupId) && !utils.isNull(props.defaultHandlerObj)) {\r\n for (let i = 0; i < fields.length; i++) {\r\n let field = fields[i];\r\n let path = getValuePath(field.id, props.defaultHandlerObj);\r\n let objectValue = path.valueObject[path.valueProperty];\r\n path.valueObject[path.valueProperty] = field.ref.parseValue(objectValue);\r\n }\r\n setValues(props.defaultHandlerObj);\r\n }\r\n else {\r\n for (let i = 0; i < fields.length; i++) {\r\n let field = fields[i];\r\n let path = getValuePath(field.id, parsedValues);\r\n let objectValue = path.valueObject[path.valueProperty];\r\n path.valueObject[path.valueProperty] = field.ref.parseValue(objectValue);\r\n }\r\n setValues(parsedValues);\r\n }\r\n\r\n\r\n if (!utils.isNull(props.dataArrivedHandler)) {\r\n props.dataArrivedHandler(parsedValues);\r\n }\r\n\r\n if (!utils.isNull(props.valueChangeHandler)) {\r\n props.valueChangeHandler(parsedValues);\r\n }\r\n\r\n if (useCustomSettings) {\r\n fetchSettings(true);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.values)) {\r\n parseValues(props.values);\r\n }\r\n }, [props.values]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (typeof entityLookupId !== 'undefined' && entityLookupId !== null) {\r\n // const url = `api/sims/orgdetail/FindOrganisationDetailsById?organisationId=` + entityLookupId;\r\n \r\n const url = props.dataURL ? `${props.dataURL}?id=${entityLookupId}` :\r\n `api/sims/` + (entityLookupController != null ? entityLookupController : viewId) + `/find?id=${entityLookupId}`;\r\n if (props.IsExternal) {\r\n utils.invokeUrlExternal(url, (data) => {\r\n parseValues(data);\r\n }, null);\r\n }\r\n else {\r\n utils.invokeUrl(url, (data) => {\r\n parseValues(data);\r\n }, null);\r\n }\r\n }\r\n if (useCustomSettings) {\r\n fetchSettings(false);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(findParameters)) {\r\n const { parentId, childId, parentParameterName, childParameterName } = findParameters;\r\n const url = `${props.dataURL}?parentId=${parentId}&childId=${childId}&parentParameterName=${parentParameterName}&childParameterName=${childParameterName}`;\r\n\r\n utils.invokeUrl(url, (data) => {\r\n parseValues(data);\r\n }, null);\r\n }\r\n\r\n if (useCustomSettings) {\r\n fetchSettings(false);\r\n }\r\n\r\n }, []);\r\n\r\n\r\n const getField = (id) => {\r\n for (let i = 0; i < fields.length; i++) {\r\n if (fields[i].id === id) {\r\n return fields[i];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const removeField = (id) => {\r\n for (let i = 0; i < fields.length; i++) {\r\n if (fields[i].id === id) {\r\n fields.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n const validateField = (field, id, value) => {\r\n field.error = null;\r\n let invalid = field.ref.validate({ ...values, [id]: value }, value) === false;\r\n if (!utils.isNull(field.parentId)) {\r\n let isParentInvalid = invalid;\r\n for (let i = 0; i < fields.length; i++) {\r\n if (fields[i] !== field && fields[i].parentId === field.parentId) {\r\n isParentInvalid = isParentInvalid || !(utils.isNull(fields[i].error) || fields[i].error.length === 0);\r\n }\r\n }\r\n\r\n setFieldParentErrors({ ...fieldParentErrors, [field.parentId]: isParentInvalid });\r\n }\r\n\r\n return invalid;\r\n }\r\n\r\n const getValuePath = (id, currentValues) => {\r\n let path = {};\r\n if (currentValues === null) {\r\n currentValues = values;\r\n }\r\n\r\n let tokens = id.split(\".\");\r\n if (tokens.length === 1) {\r\n path.valueObject = currentValues;\r\n path.valueProperty = tokens[0];\r\n } else if (tokens.length > 1) {\r\n let vo = currentValues;\r\n for (let i = 0; i < tokens.length - 1; i++) {\r\n vo = vo[tokens[i]];\r\n }\r\n\r\n if (!utils.isNull(vo)) {\r\n path.valueObject = vo;\r\n path.valueProperty = tokens[tokens.length - 1];\r\n }\r\n }\r\n\r\n return path;\r\n }\r\n\r\n const doHandleChange = (id, value) => {\r\n let path = getValuePath(id, null);\r\n\r\n if (!utils.isNull(path.valueObject) && !utils.isNull(path.valueProperty)) {\r\n path.valueObject[path.valueProperty] = value;\r\n let invalid = false;\r\n let field = getField(id);\r\n\r\n if (!utils.isNull(field)) {\r\n invalid = validateField(field, id, value);\r\n for (let i = 0; i < fields.length; i++) {\r\n let groupField = fields[i];\r\n let validationGroup = groupField.ref.getValidationGroup();\r\n if (!utils.isNull(validationGroup)) {\r\n if (field !== groupField && validationGroup === field.ref.getValidationGroup()) {\r\n let groupFieldId = groupField.ref.getId();\r\n validateField(groupField, groupFieldId, values[groupFieldId]);\r\n }\r\n }\r\n }\r\n\r\n // This will force a refresh\r\n //setValues({ ...values, [\"key\"]: Math.random() });\r\n setKey(Math.random());\r\n }\r\n\r\n if (!utils.isNull(props.valueChangeHandler)) {\r\n //props.valueChangeHandler(invalid ? null : { ...values, [id]: value });\r\n props.valueChangeHandler(invalid ? null : values);\r\n }\r\n }\r\n }\r\n\r\n const handleChange = (id) => event => {\r\n doHandleChange(id, event.target.value);\r\n };\r\n\r\n const setFieldError = (id, error) => {\r\n let field = getField(id);\r\n if (!utils.isNull(field)) {\r\n field.error = error;\r\n }\r\n }\r\n\r\n const addField = (id, ref, parentId) => {\r\n let field = getField(id);\r\n let error = null;\r\n\r\n if (ref.current !== null) {\r\n if (!utils.isNull(field)) {\r\n error = field.error;\r\n removeField(id);\r\n }\r\n\r\n field = {};\r\n field.id = id;\r\n field.ref = ref.current;\r\n field.error = error;\r\n field.parentId = parentId;\r\n fields.push(field);\r\n }\r\n\r\n return field;\r\n }\r\n\r\n const handleSelectItemChange = (name, options) => event => {\r\n let selectedId = event.target.value;\r\n let selectedValue = null;\r\n\r\n for (let i = 0; i < options.length; i++) {\r\n if (options[i].Id === selectedId) {\r\n selectedValue = options[i];\r\n }\r\n }\r\n\r\n doHandleChange(name, selectedValue);\r\n };\r\n\r\n const clearSelectItemChange = (name) => {\r\n doHandleChange(name, '');\r\n };\r\n\r\n const handleCheckboxChange = name => event => {\r\n doHandleChange(name, event.target.checked);\r\n };\r\n\r\n const updateValue = (name, value) => {\r\n setValues({ ...values, [name]: value });\r\n props.valueChangeHandler({ ...values, [name]: value });\r\n };\r\n\r\n const isFieldRequired = name => {\r\n return utils.isFieldRequired(name, settings, viewId + \"Form\");\r\n };\r\n\r\n const isFieldVisible = name => {\r\n return utils.isFieldVisible(name, settings);\r\n };\r\n\r\n const setLookupSelection = (id, value) => {\r\n let field = getField(id);\r\n if (utils.isNull(field)) {\r\n console.warn(\"Form.jsx - NULL REF \" + id + \" on setLookupSelection\");\r\n } else {\r\n field.ref.setSelection(value);\r\n }\r\n };\r\n\r\n return
\r\n {props.children({\r\n handleCheckboxChange: handleCheckboxChange,\r\n handleSelectItemChange: handleSelectItemChange,\r\n clearSelectItemChange: clearSelectItemChange,\r\n updateValue: updateValue,\r\n handleChange: handleChange,\r\n doHandleChange: doHandleChange,\r\n isFieldRequired: isFieldRequired,\r\n isFieldVisible: isFieldVisible,\r\n classes: classes,\r\n values: values,\r\n settings: settings,\r\n addField: addField,\r\n setFieldError: setFieldError,\r\n fields: fields,\r\n fieldParentErrors: fieldParentErrors,\r\n getValuePath: getValuePath,\r\n setLookupSelection: setLookupSelection\r\n })}
\r\n})\r\n","import React from 'react';\r\nimport ViewUtils from '../ViewUtils';\r\n\r\nexport const BaseField = React.forwardRef((props, ref) => {\r\n const utils = new ViewUtils();\r\n const [hasError, setHasError] = React.useState(false);\r\n const [errorMessage, setErrorMessage] = React.useState(\"\");\r\n const [reference, setReference] = React.useState(ref);\r\n const [valueObject, setValueObject] = React.useState({});\r\n const [valueProperty, setValueProperty] = React.useState(null);\r\n const [required, setRequired] = React.useState(props.required === true || props.form.isFieldRequired(props.id));\r\n const requiredRef = React.useRef(required);\r\n const loadingRef = React.useRef(true);\r\n\r\n const doValidation = (values, currentValue) => {\r\n let path = props.form.getValuePath(props.id, values);\r\n let result = utils.validateField(path.valueProperty, requiredRef.current,\r\n path.valueObject, currentValue,\r\n props.validationRegex, props.validationMessage);\r\n\r\n if (result.valid && !utils.isNull(props.validator) && !utils.isNull(props.validator.script)) {\r\n result = {};\r\n result.valid = props.validator.script(values);\r\n if (!result.valid) {\r\n result.message = props.validator.message;\r\n }\r\n }\r\n\r\n setErrorMessage(result.message);\r\n setHasError(!result.valid);\r\n\r\n props.form.setFieldError(props.id, typeof result.message === 'undefined' ? null : result.message);\r\n\r\n return result.valid;\r\n }\r\n\r\n React.useEffect(() => {\r\n setRequired(props.required);\r\n requiredRef.current = props.required;\r\n if (!loadingRef.current) {\r\n doValidation(props.form.values, null);\r\n }\r\n\r\n loadingRef.current = false;\r\n }, [props.required]);\r\n\r\n React.useEffect(() => {\r\n let path = props.form.getValuePath(props.id, null);\r\n if (!utils.isNull(path.valueObject) && !utils.isNull(path.valueProperty)) {\r\n setValueObject(path.valueObject);\r\n setValueProperty(path.valueProperty);\r\n }\r\n }, [props.form.values]);\r\n\r\n React.useEffect(() => {\r\n let componentRef = reference === null ? React.createRef() : reference;\r\n setReference(componentRef);\r\n let field = props.form.addField(props.id, componentRef, props.parentId);\r\n\r\n if (!utils.isNull(field) && !utils.isNull(field.error)) {\r\n if (field.error.length > 0) {\r\n setHasError(true);\r\n setErrorMessage(field.error);\r\n }\r\n }\r\n });\r\n\r\n React.useImperativeHandle(ref, () => ({\r\n validate: (values, currentValue) => {\r\n return doValidation(values, currentValue);\r\n },\r\n parseValue: (value) => {\r\n if (!utils.isNull(props.valueParser)) {\r\n return props.valueParser(value);\r\n }\r\n\r\n return value;\r\n },\r\n getId: () => {\r\n return props.id;\r\n },\r\n getValidationGroup: () => {\r\n return props.validationGroup;\r\n }\r\n }));\r\n\r\n return \r\n {props.children({\r\n reference: reference,\r\n required: required,\r\n valueObject: valueObject,\r\n valueProperty: valueProperty,\r\n hasError: hasError,\r\n doValidation: doValidation,\r\n errorMessage: errorMessage\r\n })}\r\n \r\n})\r\n","import React from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { BaseField } from \"./BaseField\";\r\nimport ViewUtils from '../ViewUtils';\r\nconst utils = new ViewUtils();\r\n\r\nconst CustomTextFieldComponent = React.forwardRef((props, ref) => {\r\n const [multiline] = React.useState(props.multiline);\r\n const base = props.base;\r\n\r\n const onHandleChange = () => event => {\r\n props.form.handleChange(props.id)(event);\r\n if (!utils.isNull(props.onChange)) {\r\n props.onChange(props.form, props.id, event.target.value);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n\r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport ToggleButton from '@material-ui/lab/ToggleButton';\r\nimport ToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport MenuButton from './MenuButton'\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport MenuList from '@material-ui/core/MenuList';\r\nimport ViewUtils from '../ViewUtils';\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport DownloadIcon from '@material-ui/icons/CloudDownload';\r\nimport CloseIcon from '@material-ui/icons/Backspace';\r\nimport LinkIcon from '@material-ui/icons/Link';\r\nimport LinkOffIcon from '@material-ui/icons/LinkOff';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport UploadIcon from '@material-ui/icons/CloudUpload';\r\nimport BulkUploadIcon from '@material-ui/icons/Publish';\r\nimport AddCommentIcon from '@material-ui/icons/AddComment';\r\nimport TimelineIcon from '@material-ui/icons/Timeline';\r\nimport UpdateIcon from '@material-ui/icons/Update';\r\nimport SmsIcon from '@material-ui/icons/Sms';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport ApproveIcon from '@material-ui/icons/VerifiedUser';\r\nimport LockOpenIcon from '@material-ui/icons/LockOpen';\r\nimport PasswordIcon from '@material-ui/icons/VpnKey';\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n paper: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n marginBottom: '5px'\r\n },\r\n divider: {\r\n alignSelf: 'stretch',\r\n height: 'auto',\r\n width: '1px',\r\n margin: theme.spacing(1, 0.5),\r\n backgroundColor: theme.palette.primary.main\r\n },\r\n themeButton: {\r\n color: 'white',\r\n fontSize: '12px',\r\n height: '30px',\r\n backgroundColor: theme.palette.primary.main,\r\n \"&:hover, &:focus\": {\r\n color: 'white',\r\n backgroundColor: theme.palette.primary.main,\r\n opacity: '0.7'\r\n \r\n }\r\n },\r\n}));\r\n\r\nconst StyledToggleButtonGroup = withStyles(theme => ({\r\n grouped: {\r\n margin: theme.spacing(0.5),\r\n border: 'none',\r\n padding: theme.spacing(0, 1),\r\n '&:not(:first-child)': {\r\n borderRadius: theme.shape.borderRadius,\r\n },\r\n '&:first-child': {\r\n borderRadius: theme.shape.borderRadius,\r\n },\r\n },\r\n}))(ToggleButtonGroup);\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst EnhancedToolbar = React.forwardRef((props, ref) => {\r\n const [alignment, setAlignment] = React.useState('left');\r\n const [buttonDisability, setButtonDisability] = React.useState({});\r\n const [config, setConfig] = React.useState(props.config);\r\n let itemKeyCounter = 0;\r\n let buttonKeyCounter = 0;\r\n\r\n const handleAlignment = (event, newAlignment) => {\r\n setAlignment(newAlignment);\r\n };\r\n\r\n const setButtonDisabled = (name, disabled) => {\r\n buttonDisability[name] = disabled\r\n // Force a refresh\r\n //setButtonDisability(JSON.parse(JSON.stringify(buttonDisability)));\r\n setButtonDisability({ ...buttonDisability, [\"key\"]: Math.random() });\r\n };\r\n\r\n React.useImperativeHandle(ref, () => ({\r\n setButtonDisabled: (name, disabled) => {\r\n return setButtonDisabled(name, disabled);\r\n }\r\n }));\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.mode)) {\r\n setConfig(utils.processToolbarConfig(props.mode, props.config));\r\n } else {\r\n setConfig(props.config);\r\n }\r\n\r\n let items = config.items;\r\n let temp = {};\r\n for (var i = 0; i < items.length; i++) {\r\n let type = items[i].type;\r\n if (type === 'buttonGroup') {\r\n let buttons = items[i].buttons;\r\n for (var j = 0; j < buttons.length; j++) {\r\n let button = buttons[j];\r\n temp[button.id] = !utils.isNull(button.disabled) && button.disabled;\r\n }\r\n }\r\n }\r\n\r\n setButtonDisability(temp);\r\n }, [props.mode, props.config]);\r\n\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n {config !== null ? config.items.map(item => (\r\n item.type === 'buttonGroup' ?\r\n \r\n {\r\n item.buttons.map(button => (\r\n button.visible === null || typeof button.visible === \"undefined\" || button.visible === true ?\r\n button.contextMenu === null || typeof button.contextMenu === \"undefined\" ?\r\n props.buttonClickHandler(button.id)} className={button.theme === true ? classes.themeButton : \"\"}\r\n onClick={() => props.buttonClickHandler(button.id, button.path===undefined?null:button.path)} className={button.theme === true ? classes.themeButton : \"\"}\r\n style={{ width: button.width !== null && typeof button.width !== 'undefined' ? button.width : 'auto' }}\r\n >\r\n \r\n {button.icon !== null && typeof button.icon !== 'undefined' ?\r\n button.icon === \"AddIcon\" ? < AddIcon /> : \r\n (button.icon === \"SaveIcon\" ? < SaveIcon /> :\r\n (button.icon === \"EditIcon\" ? < EditIcon /> : \r\n (button.icon === \"InfoIcon\") ? : \r\n (button.icon === \"ViewIcon\") ? : \r\n (button.icon === \"EmailIcon\") ? :\r\n (button.icon === \"DownloadIcon\") ? :\r\n (button.icon === \"CloseIcon\") ? :\r\n (button.icon === \"LinkIcon\") ? :\r\n (button.icon === \"LinkOffIcon\") ? :\r\n (button.icon === \"PrintIcon\") ? :\r\n (button.icon === \"UploadIcon\") ? :\r\n (button.icon === 'BulkUploadIcon') ? :\r\n (button.icon === \"AddCommentIcon\") ? :\r\n (button.icon === \"AuditIcon\") ? :\r\n (button.icon === \"UpdateIcon\") ? :\r\n (button.icon === \"SmsIcon\") ? :\r\n (button.icon === \"CreateIcon\") ? :\r\n (button.icon === \"ApproveIcon\") ? :\r\n (button.icon === \"LockOpenIcon\") ? :\r\n (button.icon === \"PasswordIcon\") ? :\r\n )) :\r\n
{button.label}
\r\n }\r\n
\r\n
\r\n :\r\n
\r\n \r\n \r\n {button.contextMenu.map(menu => (\r\n props.buttonMenuClickHandler(menu)}>{menu.description}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n :\r\n \"\"\r\n ))\r\n }\r\n :\r\n item.type === 'devider' && item.visible === null || typeof item.visible === \"undefined\" || item.visible === true ?\r\n : null\r\n )) : null}\r\n
\r\n
\r\n );\r\n})\r\n\r\nexport default EnhancedToolbar;\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Table, Thead, Tbody, Tr, Th, Td } from 'react-super-responsive-table';\r\nimport 'react-super-responsive-table/dist/SuperResponsiveTableStyle.css'\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport EnhancedToolbar from './Toolbar';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport ViewUtils from '../ViewUtils';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n DatePicker,\r\n} from '@material-ui/pickers';\r\nimport '../widgets/ResponsiveTable.css';\r\nconst utils = new ViewUtils();\r\n\r\nconst MULTI_SELECT_CHECKBOX_COL_WIDTH = 60;\r\n\r\nfunction evaluateTableCellWidth(multiSelect, headCell, headCellCount) {\r\n return multiSelect === true ?\r\n \"calc(\" + (typeof headCell.widthRatio !== 'undefined' ? (100 * headCell.widthRatio) + \"%\" : (100 / headCellCount) + \"%\") + \" - \" + (MULTI_SELECT_CHECKBOX_COL_WIDTH / headCellCount) + \"px)\"\r\n :\r\n (typeof headCell.widthRatio !== 'undefined' ? (100 * headCell.widthRatio) + \"%\" : (100 / headCellCount) + \"%\");\r\n}\r\n\r\nfunction desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map(el => el[0]);\r\n}\r\n\r\nfunction getSorting(order, orderBy) {\r\n return order === 'desc' ? (a, b) => desc(a, b, orderBy) : (a, b) => -desc(a, b, orderBy);\r\n}\r\n\r\nfunction EnhancedTableHead(props) {\r\n const { classes, onSelectAllClick, order, orderBy, numSelected, rowCount, onRequestSort, headCells, allSelected } = props;\r\n const createSortHandler = property => event => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n props.multiSelect === true ?\r\n \r\n 0 && numSelected < rowCount}\r\n //checked={numSelected === rowCount}\r\n checked={allSelected}\r\n onChange={onSelectAllClick}\r\n inputProps={{ 'aria-label': 'select all' }}\r\n />\r\n : null\r\n\r\n }\r\n {headCells.map(headCell => (\r\n \r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.oneOf(['asc', 'desc']).isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%',\r\n marginTop: theme.spacing(3),\r\n },\r\n paper: {\r\n width: '100%',\r\n height: '100%',\r\n position: 'relative',\r\n zIndex: '0',\r\n },\r\n scrollPadding: {\r\n padding: '8px !important'\r\n },\r\n noScrollPadding: {\r\n padding: '0 !important',\r\n width: '1px !important'\r\n },\r\n tableBody: {\r\n display: 'block',\r\n overflowY: 'auto'\r\n },\r\n tableHeaderCell: {\r\n overflow: 'inherit',\r\n textAlign: 'left !important',\r\n color: '#FFFFFF',\r\n border: '1px solid white'\r\n },\r\n tableHead: {\r\n fontSize: '14px !important',\r\n display: 'block',\r\n overflow: 'inherit',\r\n color: '#FFFFFF',\r\n backgroundColor: '#01579B'\r\n },\r\n tableSelected: {\r\n backgroundColor: '#00ACC1',\r\n color: '#FFFFFF',\r\n },\r\n tableRow: {\r\n },\r\n tableWrapper: {\r\n height: '100%'\r\n },\r\n table: {\r\n height: '100%',\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n tableRowBold: { fontWeight: 'bold' }\r\n}));\r\n\r\nexport default function EnhancedTable(props) {\r\n\r\n const utils = new ViewUtils();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('id');\r\n const [selected, setSelected] = React.useState([]);\r\n const [selectedRowDetails, setSelectedRowDetails] = React.useState([]);\r\n const [totalNumberOfRows, setTotalNumberOfRows] = React.useState(0);\r\n const [selectedRow, setSelectedRow] = React.useState(\"\");\r\n const [page, setPage] = React.useState(0);\r\n const [rows, setRows] = React.useState(!utils.isNull(props.rows) ? props.rows : []);\r\n const [allSelected, setAllSelected] = React.useState(false);\r\n const [scrollWidth, setScrollWidth] = React.useState(0);\r\n const [dense, setDense] = React.useState(true);\r\n const [fetchEnabled, setFetchEnabled] = React.useState(utils.isNull(props.autoFetchData) || props.autoFetchData === true);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const { actionsToolbar, makeRowBold } = props;\r\n const [searchParameters, setSearchParameters] = React.useState(props.searchParameters);\r\n const [headCells, setheadCells] = React.useState(utils.isNull(props.autoHeader) ? props.headCells : []);\r\n\r\n if (!props.autoHeader) {\r\n for (let i = 0; i < props.headCells.length; i++) {\r\n let headCell = props.headCells[i];\r\n headCell.width = evaluateTableCellWidth(props.multiSelect, headCell, props.headCells.length);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.rows)) {\r\n setRows(props.rows);\r\n }\r\n }, [props.rows]);\r\n\r\n React.useEffect(() => {\r\n if (props.clearGrid) {\r\n setRows([]);\r\n setPage(0);\r\n setRowsPerPage(10);\r\n setSelectedRow(\"\");\r\n setSelected([]);\r\n setAllSelected(false);\r\n setSelectedRowDetails([]);\r\n props.onGridCleared();\r\n }\r\n }, [props.clearGrid]);\r\n\r\n React.useEffect(() => {\r\n if (props.clearSelectedRow) {\r\n setSelectedRow(\"\");\r\n setSelected([]);\r\n setAllSelected(false);\r\n setSelectedRowDetails([]);\r\n props.onClearSelectedRow();\r\n }\r\n }, [props.clearSelectedRow]);\r\n\r\n React.useEffect(() => {\r\n if (fetchEnabled && !utils.isNull(props.searchParameters) && !utils.isNull(props.dataUrl)) {\r\n setSelectedRowDetails([]);\r\n setSelected([]);\r\n if (!utils.isNull(props.onSelectionChange)) {\r\n props.onSelectionChange([]);\r\n }\r\n setSearchParameters(props.searchParameters);\r\n let encodedSearchParameters = props.searchParameters;\r\n if (!utils.isNull(props.searchParameters) && props.searchParameters.length > 0) {\r\n encodedSearchParameters = [];\r\n for (let i = 0; i < props.searchParameters.length; i++) {\r\n if (!utils.isNull(props.searchParameters[i])) {\r\n let searchParam = { ...props.searchParameters[i] };\r\n if (!utils.isNull(props.searchParameters[i].Value)) {\r\n let searchParamValue = null;\r\n if (typeof props.searchParameters[i].Value === 'object' && props.searchParameters[i].Value !== null) {\r\n searchParamValue = { ...props.searchParameters[i].Value };\r\n searchParamValue.Description = encodeURIComponent(searchParamValue.Description);\r\n }\r\n else {\r\n searchParamValue = encodeURIComponent(props.searchParameters[i].Value);\r\n }\r\n searchParam.Value = searchParamValue;\r\n }\r\n encodedSearchParameters.push(searchParam);\r\n }\r\n }\r\n }\r\n\r\n let requiredValidation = true;\r\n if (!utils.isNull(props.onSearchRequiredFieldCheck)) {\r\n requiredValidation = props.onSearchRequiredFieldCheck()\r\n }\r\n if (requiredValidation) {\r\n let checkToken = true;\r\n if (typeof props.checkRefreshToken !== 'undefined' && props.checkRefreshToken !== null) {\r\n checkToken = props.checkRefreshToken;\r\n }\r\n if (checkToken) {\r\n utils.invokeUrl(props.dataUrl + \"?request=\" + utils.doGetRequestJson(page, rowsPerPage, encodedSearchParameters, props.paged), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n if (props.autoHeader) {\r\n\r\n const headCells = []\r\n if (data) {\r\n for (let i = 0; i < Object.keys(result.Data[0]).length; i++) {\r\n if ((Object.keys(result.Data[0]))[i] !== \"Id\") {\r\n let ColumnwidthRatio = .047;\r\n\r\n if ((Object.keys(result.Data[0]))[i] === \"Occupation\") {\r\n ColumnwidthRatio = .154\r\n }\r\n headCells.push({\r\n id: (Object.keys(result.Data[0]))[i],\r\n numeric: false,\r\n disablePadding: false,\r\n label: (Object.keys(result.Data[0]))[i].replace(/([A-Z])/g, ' $1').trim(),\r\n widthRatio: ColumnwidthRatio\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < headCells.length; i++) {\r\n let headCell = headCells[i];\r\n headCell.width = evaluateTableCellWidth(props.multiSelect, headCell, props.headCells.length);\r\n }\r\n\r\n setheadCells(headCells);\r\n\r\n }\r\n\r\n if (!utils.isNull(result) && !utils.isNull(result.Data)) {\r\n setRows(result.Data);\r\n setTotalNumberOfRows(result.TotalNumberOfRows);\r\n if (!utils.isNull(props.onDataArrive)) {\r\n props.onDataArrive(result);\r\n }\r\n\r\n updateScrollBarPadding();\r\n }\r\n }, null);\r\n } else {\r\n utils.invokeUrlExternal(props.dataUrl + \"?request=\" + utils.doGetRequestJson(page, rowsPerPage, encodedSearchParameters, props.paged), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n if (props.autoHeader) {\r\n\r\n const headCells = []\r\n if (data) {\r\n for (let i = 0; i < Object.keys(result.Data[0]).length; i++) {\r\n if ((Object.keys(result.Data[0]))[i] !== \"Id\") {\r\n let ColumnwidthRatio = .047;\r\n\r\n if ((Object.keys(result.Data[0]))[i] === \"Occupation\") {\r\n ColumnwidthRatio = .154\r\n }\r\n headCells.push({\r\n id: (Object.keys(result.Data[0]))[i],\r\n numeric: false,\r\n disablePadding: false,\r\n label: (Object.keys(result.Data[0]))[i].replace(/([A-Z])/g, ' $1').trim(),\r\n widthRatio: ColumnwidthRatio\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < headCells.length; i++) {\r\n let headCell = headCells[i];\r\n headCell.width = evaluateTableCellWidth(props.multiSelect, headCell, props.headCells.length);\r\n }\r\n\r\n setheadCells(headCells);\r\n\r\n }\r\n\r\n if (!utils.isNull(result) && !utils.isNull(result.Data)) {\r\n setRows(result.Data);\r\n setTotalNumberOfRows(result.TotalNumberOfRows);\r\n if (!utils.isNull(props.onDataArrive)) {\r\n props.onDataArrive(result);\r\n }\r\n\r\n updateScrollBarPadding();\r\n }\r\n }, null);\r\n }\r\n }\r\n }\r\n setFetchEnabled(true);\r\n return;\r\n }, [props.searchParameters]);\r\n\r\n React.useEffect(() => {\r\n updateScrollBarPadding();\r\n }, [rows]);\r\n\r\n function updateScrollBarPadding() {\r\n var tbody = document.getElementById('mainTableBody');\r\n if (tbody !== null && typeof tbody !== 'undefined') {\r\n setScrollWidth(tbody.offsetWidth - tbody.clientWidth);\r\n }\r\n }\r\n\r\n window.onresize = function onresize() {\r\n updateScrollBarPadding();\r\n }\r\n\r\n function getRequestJson(currentPage, curretRowsPerPage, paged) {\r\n return utils.doGetRequestJson(currentPage, curretRowsPerPage, searchParameters, paged);\r\n }\r\n\r\n function handleRequestSort(event, property) {\r\n const isDesc = orderBy === property && order === 'desc';\r\n setOrder(isDesc ? 'asc' : 'desc');\r\n setOrderBy(property);\r\n }\r\n\r\n function handleSelectAllClick(event) {\r\n if (event.target.checked) {\r\n const pageRowIds = rows.map(n => { return n.Id });\r\n const currentSelected = selected.filter(e => !pageRowIds.includes(e));\r\n const concatArray = currentSelected.concat(pageRowIds);\r\n\r\n const otherPageSelectedRowDetails = selectedRowDetails.filter(e => !pageRowIds.includes(e.Id));\r\n const concatArrayRowDetails = otherPageSelectedRowDetails.concat(rows);\r\n\r\n setSelected(concatArray);\r\n setSelectedRowDetails(concatArrayRowDetails);\r\n props.onSelectionChange(concatArrayRowDetails);\r\n checkSelectedAllValue(concatArray, rows);\r\n }\r\n else {\r\n const pageRowIds = rows.map(n => n.Id);\r\n const newSelected = selected.filter(e => !pageRowIds.includes(e));\r\n const otherPageSelectedRowDetails = selectedRowDetails.filter(e => !pageRowIds.includes(e.Id));\r\n\r\n setSelected(newSelected);\r\n setSelectedRowDetails(otherPageSelectedRowDetails);\r\n props.onSelectionChange(otherPageSelectedRowDetails);\r\n checkSelectedAllValue(newSelected, rows);\r\n }\r\n }\r\n\r\n function doHandleClick(event, id) {\r\n const selectedIndex = selected.indexOf(id);\r\n let newSelected = [];\r\n\r\n if (props.multiSelect === true) {\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, id);\r\n\r\n }\r\n else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n }\r\n else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n }\r\n else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n } else {\r\n newSelected.push(id);\r\n }\r\n\r\n const pageRowIds = rows.map(n => { return n.Id });\r\n const otherPageSelectedRowDetails = selectedRowDetails.filter(e => !pageRowIds.includes(e.Id));\r\n\r\n let selectedRows = [];\r\n for (var i = 0; i < rows.length; i++) {\r\n let row = rows[i];\r\n for (var j = 0; j < newSelected.length; j++) {\r\n if (row.Id === newSelected[j]) {\r\n selectedRows.push(row);\r\n }\r\n }\r\n }\r\n\r\n const newSelectedRowDetails = otherPageSelectedRowDetails.concat(selectedRows);\r\n setSelectedRowDetails(newSelectedRowDetails);\r\n setSelected(newSelected);\r\n if (!utils.isNull(props.onSelectionChange)) {\r\n props.onSelectionChange(newSelectedRowDetails);\r\n }\r\n setSelectedRow(id);\r\n checkSelectedAllValue(newSelected, rows);\r\n }\r\n\r\n function checkSelectedAllValue(newSelected, rows) {\r\n const selectedNumberRows = getNumberSelected(newSelected, rows);\r\n if (selectedNumberRows === rows.length) {\r\n setAllSelected(true);\r\n }\r\n else {\r\n setAllSelected(false);\r\n }\r\n }\r\n\r\n function handleClick(event, id) {\r\n if (!utils.isNull(props.onCellSelectionChange)) {\r\n return;\r\n }\r\n doHandleClick(event, id);\r\n }\r\n\r\n function handleCellClick(event, id, headCell) {\r\n if (headCell.contentType !== \"document\" && !utils.isNull(props.onCellSelectionChange)) {\r\n // TODO : Evaluate if this call is necessary\r\n doHandleClick(event, id);\r\n }\r\n\r\n else if (!utils.isNull(props.onCellSelectionChange)) {\r\n props.onCellSelectionChange(id, headCell);\r\n }\r\n }\r\n\r\n function handleChangePage(event, newPage) {\r\n if (utils.isNull(props.multiSelect)) {\r\n setSelectedRowDetails([]);\r\n setSelected([]);\r\n if (!utils.isNull(props.onSelectionChange)) {\r\n props.onSelectionChange([]);\r\n }\r\n }\r\n let checkToken = true;\r\n if (typeof props.checkRefreshToken !== 'undefined' && props.checkRefreshToken !== null) {\r\n checkToken = props.checkRefreshToken;\r\n }\r\n if (checkToken) {\r\n utils.invokeUrl(props.dataUrl + \"?request=\" + getRequestJson(newPage, rowsPerPage, true), (data) => {\r\n setRows(data.Data);\r\n setPage(newPage);\r\n checkSelectedAllValue(selected, data.Data);\r\n if (!utils.isNull(props.onDataArrive)) {\r\n props.onDataArrive(data);\r\n }\r\n\r\n }, null);\r\n } else {\r\n utils.invokeUrlExternal(props.dataUrl + \"?request=\" + getRequestJson(newPage, rowsPerPage, true), (data) => {\r\n setRows(data.Data);\r\n setPage(newPage);\r\n checkSelectedAllValue(selected, data.Data);\r\n if (!utils.isNull(props.onDataArrive)) {\r\n props.onDataArrive(data);\r\n }\r\n\r\n }, null);\r\n }\r\n }\r\n\r\n function handleChangeRowsPerPage(event) {\r\n if (utils.isNull(props.multiSelect)) {\r\n setSelectedRowDetails([]);\r\n setSelected([]);\r\n if (!utils.isNull(props.onSelectionChange)) {\r\n props.onSelectionChange([]);\r\n }\r\n }\r\n var curretRowsPerPage = + event.target.value;\r\n let checkToken = true;\r\n if (typeof props.checkRefreshToken !== 'undefined' && props.checkRefreshToken !== null) {\r\n checkToken = props.checkRefreshToken;\r\n }\r\n if (checkToken) {\r\n utils.invokeUrl(props.dataUrl + \"?request=\" + getRequestJson(0, curretRowsPerPage, true), (result) => {\r\n setRows(result.Data);\r\n setRowsPerPage(curretRowsPerPage);\r\n setPage(0);\r\n checkSelectedAllValue(selected, result.Data);\r\n if (!utils.isNull(props.onDataArrive)) {\r\n props.onDataArrive(result);\r\n }\r\n\r\n updateScrollBarPadding();\r\n }, null);\r\n } else {\r\n utils.invokeUrlExternal(props.dataUrl + \"?request=\" + getRequestJson(0, curretRowsPerPage, true), (result) => {\r\n setRows(result.Data);\r\n setRowsPerPage(curretRowsPerPage);\r\n setPage(0);\r\n checkSelectedAllValue(selected, result.Data);\r\n if (!utils.isNull(props.onDataArrive)) {\r\n props.onDataArrive(result);\r\n }\r\n\r\n updateScrollBarPadding();\r\n }, null);\r\n }\r\n }\r\n\r\n function handleChangeDense(event) {\r\n setDense(event.target.checked);\r\n updateScrollBarPadding();\r\n }\r\n\r\n function handleCellValueChange(value, row, column) {\r\n let editedRow = null;\r\n\r\n for (let i = 0; i < rows.length; i++) {\r\n if (row === rows[i].Id) {\r\n editedRow = rows[i];\r\n }\r\n }\r\n\r\n if (editedRow !== null) {\r\n editedRow[column] = value;\r\n\r\n if (!utils.isNull(props.cellValueChangeHandler)) {\r\n props.cellValueChangeHandler(editedRow, column);\r\n }\r\n }\r\n }\r\n\r\n\r\n const isSelected = id => selected.indexOf(id) !== -1;\r\n\r\n const getNumberSelected = (selected, rows) => {\r\n let number = 0;\r\n const pageRowIds = rows.map(n => n.Id);\r\n const newSelected = selected.filter(e => pageRowIds.includes(e));\r\n return newSelected.length;\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {stableSort(rows, getSorting(order, orderBy)).map((row, index) => {\r\n const isItemSelected = isSelected(row.Id);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n let counter = 0;\r\n\r\n return (\r\n handleClick(event, row.Id)}\r\n role=\"checkbox\"\r\n aria-checked={isItemSelected}\r\n tabIndex={-1}\r\n key={row.Id}\r\n selected={isItemSelected}\r\n className={selectedRow === row.Id ? classes.tableSelected : row.Id < 0 && makeRowBold === true ? classes.tableRowBold : classes.tableRow}\r\n\r\n >\r\n {\r\n props.multiSelect === true ?\r\n : null\r\n\r\n }\r\n {headCells.map(headCell => (\r\n counter++ === headCells.length - 1 && actionsToolbar !== null && typeof actionsToolbar !== \"undefined\" ?\r\n \r\n props.buttonClickHandler(buttonId)} config={actionsToolbar} />\r\n\r\n :\r\n headCell.numeric === true ?\r\n handleCellClick(event, row.Id, headCell)}\r\n >\r\n :\r\n handleCellClick(event, row.Id, headCell)}\r\n >\r\n \r\n \r\n\r\n ))}\r\n \r\n );\r\n })}\r\n \r\n
\r\n { doHandleClick(event, row.Id); }}\r\n />\r\n
\r\n\r\n
\r\n {props.paged === false ? \"\" : }\r\n
\r\n
\r\n\r\n );\r\n}\r\n\r\nclass TableCellContent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n contentValue: props.contentValue,\r\n contentType: props.contentType,\r\n className: props.className,\r\n options: [],\r\n optionsLoaded: false\r\n }\r\n }\r\n\r\n getFormattedDate = (date) => {\r\n if (!utils.isNull(date)) {\r\n let month = date.getMonth() < 10 ? '0' + date.getMonth() : date.getMonth();\r\n let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();\r\n let year = date.getFullYear();\r\n\r\n return day + '/' + month + '/' + year;\r\n }\r\n }\r\n\r\n handleDateChange = date => {\r\n this.setState({ contentValue: this.getFormattedDate(date) });\r\n this.props.cellChangeHandler(this.getFormattedDate(date), this.props.row, this.props.column);\r\n };\r\n\r\n handleValueChange(event) {\r\n this.setState({ contentValue: event.target.value });\r\n this.props.cellChangeHandler(event.target.value, this.props.row, this.props.column);\r\n };\r\n\r\n handleSelectValueChange(event) {\r\n let objectReferenceValue = null;\r\n let value = event.target.value;\r\n\r\n if (!utils.isNull(this.state.options)) {\r\n for (let i = 0; i < this.state.options.length; i++) {\r\n if (value === this.state.options[i].Id) {\r\n objectReferenceValue = this.state.options[i];\r\n }\r\n }\r\n }\r\n\r\n this.setState({ contentValue: objectReferenceValue });\r\n this.props.cellChangeHandler(objectReferenceValue, this.props.row, this.props.column);\r\n };\r\n\r\n\r\n componentDidMount() {\r\n if (!utils.isNull(this.props.editor) && !utils.isNull(this.props.editor.dataUrl)\r\n && !this.state.optionsLoaded) {\r\n utils.invokeUrl(this.props.editor.dataUrl, (data) => {\r\n this.setState({ options: data });\r\n }, null);\r\n\r\n this.setState({ optionsLoaded: true });\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.contentValue !== this.props.contentValue) {\r\n this.setState({ contentValue: this.props.contentValue });\r\n }\r\n }\r\n\r\n render() {\r\n let displayValue;\r\n\r\n const linkStyle = {\r\n cursor: 'pointer',\r\n textDecoration: 'underline',\r\n color: 'blue',\r\n }\r\n\r\n if (!utils.isNull(this.props.editor) && this.props.selected) {\r\n if (this.props.editor.type === \"TEXT\") {\r\n displayValue =\r\n this.handleValueChange(event)}\r\n margin=\"normal\"\r\n variant=\"outlined\">\r\n \r\n } else if (this.props.editor.type === \"DATE\") {\r\n displayValue =\r\n \r\n \r\n \r\n \r\n \r\n } else if (this.props.editor.type === \"SELECT\") {\r\n displayValue =\r\n this.handleSelectValueChange(event)}\r\n margin=\"normal\"\r\n variant=\"outlined\">\r\n {\r\n this.props.editor.allowEmptyValue === true ?\r\n \r\n None\r\n : \r\n }\r\n {this.state.options.map(option => (\r\n {utils.isNull(option.Description) ? \"\" : option.Description.trim()}\r\n ))}\r\n \r\n }\r\n else if (this.props.editor.type === \"DOCUMENT\") {\r\n displayValue =\r\n \r\n {!utils.isNull(this.state.contentValue) ? this.state.contentValue : \"No Document\"}\r\n \r\n }\r\n } else {\r\n if (this.state.contentType !== 'undefined' && this.state.contentType == 'document') {\r\n displayValue = {this.state.contentValue}\r\n }\r\n else {\r\n displayValue = this.state.contentValue;\r\n\r\n if (!utils.isNull(displayValue) && typeof displayValue === 'object') {\r\n displayValue = displayValue.Description;\r\n }\r\n }\r\n }\r\n\r\n return utils.isNull(displayValue) || displayValue.length === 0 ? \"\" : displayValue;\r\n }\r\n}","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n\r\nexport default function Prompt(props) {\r\n const [open, setOpen] = React.useState(false);\r\n const [content, setContent] = React.useState(props.promptContent)\r\n const [title, setTitle] = React.useState(props.promptTitle)\r\n const [okPrompt, setokPrompt] = React.useState(props.okPrompt)\r\n\r\n const handleNo = () => {\r\n setOpen(false)\r\n props.closePrompt()\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n React.useEffect(() => {\r\n setContent(props.promptContent);\r\n }, [props.promptContent]);\r\n\r\n React.useEffect(() => {\r\n setTitle(props.promptTitle);\r\n }, [props.promptTitle]);\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n \r\n \r\n {content}\r\n \r\n \r\n \r\n {okPrompt ? \r\n
\r\n
\r\n :\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport AlertTitle from '@material-ui/lab/AlertTitle';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport ViewUtils from \"../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%',\r\n '& > * + *': {\r\n marginTop: theme.spacing(2),\r\n },\r\n },\r\n}));\r\n\r\nexport default function AlertItem(props) {\r\n const classes = useStyles();\r\n const [message, setMessage] = React.useState(props.message);\r\n const [alertStyle, setAlertStyle] = React.useState(props.alertStyle);\r\n const [title, setTitle] = React.useState(props.alertTitle)\r\n\r\n React.useEffect(() => {\r\n setMessage(props.message);\r\n setAlertStyle(props.alertStyle)\r\n setTitle(props.alertTitle)\r\n }, [props.message, props.alertStyle, props.alertTitle]);\r\n\r\n function NewlineText(msg) {\r\n const text = msg.text;\r\n return text.split('\\n').map(str =>

{str}

);\r\n }\r\n\r\n return (\r\n
\r\n {!utils.isNull(message) && message.trim().length > 0 ?\r\n \r\n {title} \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport \"../View.css\";\r\nimport \"../Grid.css\";\r\nimport \"../Form.css\";\r\nimport \"../App.css\";\r\nimport EnhancedTable from './ResponsiveTable';\r\nimport EnhancedToolbar from './Toolbar';\r\nimport WithEvent from './WithEvent';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport DeleteSweepIcon from '@material-ui/icons/DeleteSweep';\r\nimport ViewUtils from '../ViewUtils';\r\nimport Prompt from './Prompt';\r\nimport AlertItem from \"./AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\n\r\nexport default function SearchView(props) {\r\n const utils = new ViewUtils();\r\n const [model, setModel] = React.useState(props.model);\r\n const [searchParameters, setSearchParameters] = React.useState(props.searchParameters);\r\n const [selection, setSelection] = React.useState([]);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [messageStyle, setMessageStyle] = React.useState(\"\");\r\n const [showToolBar] = React.useState(false);\r\n const [toolbarRef] = React.useState(props.toolbarRef || React.createRef());\r\n const [promptOpen, setPromptOpen] = React.useState(false);\r\n const [keyUpSwitch, setKeyUpSwitch] = React.useState(utils.isNull(props.keyUpSwitch) ? false : props.keyUpSwitch);\r\n\r\n const closePrompt = () => {\r\n setPromptOpen(false)\r\n }\r\n\r\n React.useEffect(() => {\r\n if (props.keyUpSwitch !== keyUpSwitch) {\r\n search();\r\n setKeyUpSwitch(props.keyUpSwitch);\r\n }\r\n }, [props.keyUpSwitch]);\r\n\r\n React.useEffect(() => {\r\n if (JSON.stringify(model) !== JSON.stringify(props.model)) {\r\n setModel(props.model);\r\n }\r\n\r\n }, [props.model]);\r\n\r\n React.useEffect(() => {\r\n if (JSON.stringify(props.searchParameters) !== JSON.stringify(searchParameters)) {\r\n search();\r\n setSearchParameters(props.searchParameters);\r\n }\r\n }, [props.SearchParameters]);\r\n\r\n const deleteRecord = () => {\r\n setPromptOpen(false);\r\n // TODO : support bulk delete when nulti select is enabled\r\n let url = `${props.deleteUrl}?id=${selection[0].Id}`;\r\n if (props.useDeletePost) {\r\n utils.invokeUrlDelete(url, (data) => {\r\n setSelection([]);\r\n setMessage(data.Message);\r\n setMessageStyle(data.MessageType.toLowerCase())\r\n toolbarRef.current.setButtonDisabled(\"edit\", true)\r\n toolbarRef.current.setButtonDisabled(\"delete\", true)\r\n search();\r\n }, null);\r\n } else {\r\n utils.invokeUrl(url, (data) => {\r\n setSelection([]);\r\n setMessage(data.Message);\r\n setMessageStyle(data.MessageType.toLowerCase())\r\n toolbarRef.current.setButtonDisabled(\"edit\", true)\r\n toolbarRef.current.setButtonDisabled(\"delete\", true)\r\n search();\r\n }, null);\r\n }\r\n }\r\n\r\n const handleToolbarButtonClick = (buttonId, buttonPath) => {\r\n\r\n if (\"add\" === buttonId) {\r\n props.history.push({ pathname: !utils.isNull(props.addViewPath) ? props.addViewPath : props.entityViewPath, state: { preSelectedProp: props.preSelectedProp, preSelectedPropB: props.preSelectedPropB } });\r\n // props.history.push(!utils.isNull(props.addViewPath) ? props.addViewPath : props.entityViewPath);\r\n } else if (\"close\" === buttonId) {\r\n props.history.push({ pathname: !utils.isNull(props.addViewPath) ? props.addViewPath : (!utils.isNull(buttonPath) ? buttonPath : props.entityViewPath), state: { preSelectedProp: props.preSelectedProp, preSelectedPropB: props.preSelectedPropB } });\r\n } else if (\"delete\" === buttonId) {\r\n setPromptOpen(true);\r\n } else {\r\n\r\n if (selection[0] !== undefined) {\r\n if (buttonPath !== undefined && buttonPath !== null && buttonPath !== false) {\r\n props.history.push({\r\n pathname: buttonPath,\r\n state: { selection: selection[0].Id, preSelectedProp: props.preSelectedProp, preSelectedPropB: props.preSelectedPropB, object: selection[0] }\r\n });\r\n } else {\r\n if (buttonPath !== false) {\r\n props.history.push({\r\n pathname: props.entityViewPath,\r\n state: { selection: selection[0].Id, preSelectedProp: props.preSelectedProp, preSelectedPropB: props.preSelectedPropB }\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n if (!utils.isNull(props.buttonClickHandler)) {\r\n props.buttonClickHandler(buttonId)\r\n }\r\n }\r\n\r\n const handleDataArrived = (data) => {\r\n if (!utils.isNull(data) && props.mode === 'lookup') {\r\n if (data.Data.length === 0) {\r\n if (!utils.isNull(props.customMessage)) {\r\n setMessage(props.customMessage);\r\n setMessageStyle(\"message\");\r\n }\r\n else {\r\n setMessage(\"No data records found\");\r\n setMessageStyle(\"message\");\r\n }\r\n } else {\r\n setMessage(\"\");\r\n setMessageStyle(\"\");\r\n }\r\n }\r\n }\r\n\r\n const isModelEmpty = () => {\r\n const properties = Object.getOwnPropertyNames(model);\r\n if (utils.isNull(properties) || properties.length === 0) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < properties.length; i++) {\r\n if (!utils.isStringEmpty(properties[properties[i]])) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n const search = () => {\r\n let searchParameters = [];\r\n const properties = Object.getOwnPropertyNames(model);\r\n if (!utils.isNull(properties) && properties.length > 0) {\r\n for (let i = 0; i < properties.length; i++) {\r\n let searchParameter = {};\r\n searchParameter.Name = properties[i];\r\n if (!utils.isNull(props.handleObject)) {\r\n if (searchParameter.Name.slice(searchParameter.Name.length - 2) == \"ID\" && model[properties[i]] !== null) {\r\n searchParameter.Value = model[properties[i]].Id\r\n }\r\n else {\r\n searchParameter.Value = model[properties[i]];\r\n }\r\n }\r\n else {\r\n searchParameter.Value = model[properties[i]];\r\n }\r\n\r\n searchParameters.push(searchParameter);\r\n }\r\n }\r\n\r\n setSearchParameters(searchParameters);\r\n }\r\n\r\n const handleSelectionChange = (selection) => {\r\n\r\n setSelection(selection);\r\n if (selection !== null && selection.length !== 0) {\r\n setMessage(\"\")\r\n }\r\n if (props.setSelection) {\r\n props.setSelection(selection)\r\n }\r\n\r\n if (!utils.isNull(props.onLookupValueChange)) {\r\n if (utils.isNull(props.selectionCallbackMode) || props.selectionCallbackMode === \"reference\") {\r\n let objectReferences = [];\r\n for (let i = 0; i < selection.length; i++) {\r\n let objectReference = {};\r\n objectReference.Id = selection[i].Id;\r\n if (selection[i][props.SecondDescriptionProp] !== undefined && selection[i][props.SecondDescriptionProp] !== null) {\r\n objectReference.Description = selection[i][props.descriptionProp] + ' ' + selection[i][props.SecondDescriptionProp];\r\n }\r\n else {\r\n objectReference.Description = selection[i][props.descriptionProp];\r\n }\r\n objectReference.SecondDescription = selection[i][props.SecondDescriptionProp];\r\n if (selection[i][props.SecondDescriptionProp] !== undefined && selection[i][props.SecondDescriptionProp] !== null) {\r\n objectReference.toString = () => { return selection[i][props.descriptionProp] + ' ' + selection[i][props.SecondDescriptionProp]; };\r\n }\r\n else {\r\n objectReference.toString = () => { return selection[i][props.descriptionProp] };\r\n }\r\n\r\n objectReferences.push(objectReference);\r\n }\r\n\r\n props.onLookupValueChange(props.multiSelect ? objectReferences : objectReferences[0]);\r\n } else {\r\n props.onLookupValueChange(selection);\r\n }\r\n }\r\n\r\n if (props.mode !== \"lookup\") {\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"delete\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"download\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"delink\", selection === null || selection.length === 0);\r\n }\r\n }\r\n\r\n const handleSearchCell = (rowid, columnid) => {\r\n if (!utils.isNull(props.handleCell)) {\r\n props.handleCell(rowid, columnid)\r\n }\r\n }\r\n\r\n return (\r\n\r\n
\r\n

\r\n {props.title}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n {(props.searchLabel !== undefined && props.searchLabel !== null) ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n {props.children}\r\n \r\n {props.search == false ? null :\r\n // search()}\r\n // aria-label=\"search\">\r\n // {props.searchLabel}\r\n // \r\n //\r\n search()}>\r\n {props.searchLabel}\r\n \r\n }\r\n \r\n {props.allowClear !== true ? null :\r\n props.clearPress()}\r\n aria-label=\"clear\">\r\n \r\n \r\n }\r\n
\r\n {props.children}\r\n \r\n {props.search == false ? null :\r\n search()}\r\n aria-label=\"search\">\r\n \r\n \r\n }\r\n \r\n {props.allowClear !== true ? null :\r\n props.clearPress()}\r\n aria-label=\"clear\">\r\n \r\n \r\n }\r\n
\r\n
\r\n {\r\n props.mode === \"lookup\" && !showToolBar ?\r\n \"\" :\r\n handleToolbarButtonClick(buttonId, buttonPath)}\r\n mode={props.mode}\r\n config={props.toolbarConfig} ref={toolbarRef} />\r\n }\r\n { handleSelectionChange(selection) }}\r\n dataUrl={props.dataUrl} onDataArrive={(data) => handleDataArrived(data)}\r\n mode={props.mode} autoFetchData={props.autoFetchData}\r\n height={props.mode === \"lookup\" && !showToolBar ? \"50vh\" : \"60vh\"}\r\n bodyMaxHeight={props.mode === \"lookup\" && !showToolBar ? \"65vh\" : \"60vh\"}\r\n searchParameters={searchParameters} multiSelect={props.multiSelect} onSearchRequiredFieldCheck={props.onSearchRequiredFieldCheck}\r\n clearGrid={props.clearGrid} onGridCleared={props.onGridCleared}\r\n onCellSelectionChange={(rowid, columnid) => { handleSearchCell(rowid, columnid) }}\r\n checkRefreshToken={props.checkRefreshToken}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { Card } from 'react-bootstrap';\r\nimport \"./widgets.css\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport { maxHeight } from '@material-ui/system';\r\n\r\nconst utils = new ViewUtils();\r\n//const styles = {\r\n// height: \"-webkit-fill-available\",\r\n//}\r\n\r\nconst CardLayout = (props) => {\r\n\r\n React.useEffect(() => {\r\n if (props.mode !== \"lookup\") {\r\n utils.setLegend(props.title);\r\n }\r\n }, [props.title]);\r\n\r\n return (\r\n \r\n \r\n {props.mode === \"lookup\" ?
{props.title}
: null}\r\n {props.children}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default CardLayout;","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport CardLayout from './widgets/Card';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n height: 'auto',\r\n // overflow: ' auto !important',\r\n width: '100%',\r\n margin: \"0px\"\r\n }\r\n}));\r\n\r\nexport function ViewContainer(props) {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n
\r\n {props.children}\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport ViewUtils from \"../ViewUtils\";\r\nimport AlertItem from \"../widgets/AlertItem\";\r\n\r\nexport default function LinkDialog(props) {\r\n const [open, setOpen] = React.useState(props.open);\r\n const [title, setTitle] = React.useState(props.dialogTitle)\r\n const [selection, setSelection] = React.useState(null)\r\n const [Message, setMessage] = React.useState(\"\")\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\")\r\n const [buttonName, setButtonName] = React.useState(props.buttonName);\r\n\r\n const utils = new ViewUtils();\r\n\r\n const handleClose = (isCancel, linked) => {\r\n setOpen(false);\r\n setMessage(\"\");\r\n setSelection(null);\r\n props.closeHandler(isCancel, linked);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n setTitle(props.dialogTitle)\r\n setButtonName(props.buttonName)\r\n }, [props.open]);\r\n\r\n const link = () => {\r\n if (!utils.isNull(props.postUrl)) {\r\n let data = {};\r\n if (!utils.isNull(props.type)) {\r\n data.Type = props.type;\r\n }\r\n\r\n data.ProgrammeId = !utils.isNull(props.programmeId) ? props.programmeId : props.selectionId\r\n data[props.linkName] = selection;\r\n if (props.usePost) {\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n if (!utils.isNull(response) && !utils.isNull(response.Message)) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n handleClose(false, true);\r\n }\r\n else {\r\n setMessage(response.Message);\r\n setMessageStyle(response.MessageType.toLowerCase());\r\n }\r\n }\r\n }, () => {\r\n setMessage(utils.SYSTEM_ERROR_MESSAGE);\r\n setMessageStyle(\"ERROR\");\r\n handleClose(false, false)\r\n }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n });\r\n }\r\n else {\r\n utils.invokeUrl(props.postUrl + \"?data=\" + JSON.stringify(data), (response) => {\r\n if (!utils.isNull(response) && !utils.isNull(response.Message)) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n handleClose(false, true);\r\n }\r\n else {\r\n setMessage(response.Message);\r\n setMessageStyle(response.MessageType.toLowerCase());\r\n }\r\n }\r\n }, () => {\r\n setMessage(utils.SYSTEM_ERROR_MESSAGE);\r\n setMessageStyle(\"ERROR\");\r\n handleClose(false, false)\r\n });\r\n }\r\n } else if (!utils.isNull(props.linkHandler)) {\r\n props.linkHandler(selection);\r\n handleClose(false, true);\r\n }\r\n };\r\n\r\n const handleSelectionChange = (selection) => {\r\n setSelection(selection)\r\n }\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n
\r\n \r\n
\r\n \r\n {React.cloneElement(props.children, { onLookupValueChange: (selection) => { handleSelectionChange(selection) } })}\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { EntityForm } from '../widgets/Forms';\r\nimport { CustomTextField } from '../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nexport default function UserSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../View.css\";\r\nimport \"./../Grid.css\";\r\nimport \"./../Form.css\";\r\nimport \"./../App.css\";\r\nimport SearchView from \"../widgets/SearchView\";\r\nimport UserSearchForm from './UserSearchForm';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { ViewContainer } from \"./../View.jsx\";\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: \"IDNo\", numeric: false, disablePadding: true, label: \"ID Number\"}\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove User\", icon: \"DeleteIcon\", disabled: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass UserSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n\r\n [\r\n { Name: \"ID\", Value: this.props.programmeId },\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n ]\r\n :\r\n\r\n [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n ]\r\n\r\n if (!utils.isNull(this.props.programmeId)) {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n ID: this.props.programmeId,\r\n },\r\n keyUpSwitch: false,\r\n selectedUser: null\r\n };\r\n }\r\n else {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n },\r\n keyUpSwitch: false,\r\n selectedUser: null\r\n };\r\n }\r\n\r\n \r\n }\r\n\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUser: selection })\r\n } else {\r\n this.setState({ selectedUser: null })\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n keyUpSwitch={this.state.keyUpSwitch}\r\n selectionCallbackMode={this.props.selectionCallbackMode}\r\n promptTitle={\"Remove Unit Standard\"}\r\n promptContent={\"Removing the user is a permanent action and the user will not be available going forward. Are you sure you want to remove this user?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(UserSearch)\r\n);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nconst withMenuPermission = (WrappedComponent) => {\r\n const withMenuPermissionChild = (props) => {\r\n const { menuPermissionList, dispatch, ...rest } = props;\r\n const permissionArr = menuPermissionList.filter(e => e.Url.toLowerCase() === props.history.location.pathname.toLowerCase());\r\n let menuPermissionItem = null;\r\n\r\n if (permissionArr.length === 1) {\r\n menuPermissionItem = { ...permissionArr[0] };\r\n } else {\r\n menuPermissionItem = {\r\n MenuId: 0,\r\n Url: \"\",\r\n View: false,\r\n Add: false,\r\n Edit: false,\r\n Delete: false\r\n };\r\n }\r\n\r\n const getSpecificPermissionItem = (urlLocation) => {\r\n const permissionSpecificArr = menuPermissionList.filter(e => e.Url.toLowerCase() === urlLocation.toLowerCase());\r\n let menuSpecificPermissionItem = null;\r\n if (permissionSpecificArr.length === 1) {\r\n menuSpecificPermissionItem = { ...permissionSpecificArr[0] };\r\n } else {\r\n menuSpecificPermissionItem = {\r\n MenuId: 0,\r\n Url: \"\",\r\n View: false,\r\n Add: false,\r\n Edit: false,\r\n Delete: false\r\n };\r\n }\r\n return menuSpecificPermissionItem;\r\n }\r\n\r\n return \r\n }\r\n return connect(mapStateToProps)(withMenuPermissionChild);\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n menuPermissionList: state.auth.menuPermissionsDetails!==null? state.auth.menuPermissionsDetails.PermissionList : []\r\n }\r\n}\r\n\r\nexport default withMenuPermission;","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Employer.css\";\r\nimport EmployerSearchForm from './EmployerSearchForm';\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport UserSearch from \"../UserSearch\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'OrganisationLegalName', numeric: true, disablePadding: false, label: 'Client Legal Name', widthRatio: .5 },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'Client SDL Number', widthRatio: .25 },\r\n {\r\n id: 'OrganisationTradeName', numeric: false, disablePadding: false, label: 'Client Trade Name', widthRatio: .25,\r\n }\r\n];\r\n\r\n\r\n\r\nconst filterParameters = [\r\n { dataField: \"OrganisationTradeName\", text: \"OrganisationTradeName\" },\r\n { dataField: \"OrganisationSDLNumber\", text: \"OrganisationSDLNumber\" },\r\n { dataField: \"OrganisationLegalName\", text: \"OrganisationLegalName\" }\r\n\r\n]\r\n\r\nclass EmployerSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n OrganisationTradeName: \"\",\r\n OrganisationSDLNumber: \"\",\r\n OrganisationLegalName: \"\"\r\n },\r\n parameters: {},\r\n keyUpSwitch: false,\r\n selectedEmployer: null\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n /*{ id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', visible: this.props.menuPermissionItem.View },*/\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit},\r\n { id: 'delete', label: '', tooltip: 'Delete Employer', icon: 'DeleteIcon', disabled: true, visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.searchParameters = this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"OrganisationTradeName\", Value: \"\" },\r\n { Name: \"OrganisationSDLNumber\", Value: \"\" },\r\n { Name: \"OrganisationLegalName\", Value: \"\" }\r\n ]\r\n :\r\n [\r\n { Name: \"OrganisationTradeName\", Value: \"\" },\r\n { Name: \"OrganisationSDLNumber\", Value: \"\" },\r\n { Name: \"OrganisationLegalName\", Value: \"\" }\r\n ]\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedEmployer: selection })\r\n } else {\r\n this.setState({ selectedEmployer: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"add\" === buttonId) {\r\n this.setState({ linkDialogOpen: true })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employer',\r\n state: {\r\n selection: this.state.selectedEmployer[0].Id,\r\n viewOnly: true\r\n }\r\n })\r\n }\r\n } \r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }} /> \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Add Employer`}\r\n linkName={\"Users\"} postUrl={\"api/indicium/employer/linkUsers\"}\r\n \r\n >\r\n {/*+27635097174 27631817067*/}\r\n \r\n \r\n \r\n\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(EmployerSearch));\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n formTabContainer: {\r\n height: 'inherit !important',\r\n overflow: 'hidden !important',\r\n width: '100%',\r\n zIndex: '0',\r\n paddingLeft: '16px'\r\n },\r\n formTabPanel: {\r\n width: '100%',\r\n height: 'inherit !important',\r\n overflow: 'hidden !important',\r\n zIndex: '0',\r\n paddingLeft: \"0px\"\r\n }\r\n}));\r\n\r\nexport function FormTabContainer(props) {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n {props.children}\r\n
\r\n );\r\n}\r\n\r\nexport default function TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n );\r\n}\r\n\r\nTabPanel.propTypes = {\r\n children: PropTypes.node,\r\n index: PropTypes.any.isRequired,\r\n value: PropTypes.any.isRequired,\r\n};\r\n\r\n\r\n","import React from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { BaseField } from \"./BaseField\";\r\n\r\nconst SelectItemComponent = React.forwardRef((props, ref) => {\r\n const [options, setOptions] = React.useState([]);\r\n const [optionsLoaded, setOptionsLoaded] = React.useState(false);\r\n const [loadFullOptionList, setLoadFullOptionList] = React.useState(false);\r\n const [hasDependency, setHasDependency] = React.useState(props.hasDependency);\r\n const [dependency, setDependency] = React.useState(props.dependency);\r\n const [hasDefault, sethasDefault] = React.useState(props.hasDefault);\r\n const utils = new ViewUtils();\r\n const base = props.base;\r\n\r\n const onHandleChange = () => event => {\r\n props.form.handleSelectItemChange(props.id, options)(event)\r\n if (!utils.isNull(props.onChange)) {\r\n props.onChange(props.form, props.id, event);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n if (props.clearOptions) {\r\n setLoadFullOptionList(false);\r\n setOptionsLoaded(false);\r\n setOptions([]);\r\n props.clearOptionsHandler();\r\n }\r\n }, [props.clearOptions]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(base.valueObject[base.valueProperty]) && !optionsLoaded) {\r\n let defaultOptions = [];\r\n defaultOptions.push(base.valueObject[base.valueProperty]);\r\n setOptions(defaultOptions);\r\n }\r\n }, [base.valueObject[base.valueProperty]]);\r\n\r\n React.useEffect(() => {\r\n if (loadFullOptionList === true || (!utils.isNull(props.dependency) && JSON.stringify(props.dependency) !== JSON.stringify(dependency))) {\r\n let url = props.dataUrl;\r\n if (!utils.isNull(props.dependency)) {\r\n url += JSON.stringify(props.dependency);\r\n setDependency(props.dependency);\r\n if (!utils.isNull(base.valueObject[base.valueProperty]) && !props.hasDefault) {\r\n props.form.clearSelectItemChange(props.id);\r\n }\r\n }\r\n let checkToken = true;\r\n if (typeof props.checkRefreshToken !== 'undefined' && props.checkRefreshToken !== null) {\r\n checkToken = props.checkRefreshToken;\r\n }\r\n if (checkToken) {\r\n utils.invokeUrl(url, (data) => {\r\n if (!utils.isNull(data) || !utils.isStringEmpty(data)) {\r\n setOptions(data);\r\n }\r\n }, null);\r\n }\r\n else {\r\n utils.invokeUrlExternal(url, (data) => {\r\n if (!utils.isNull(data) || !utils.isStringEmpty(data)) {\r\n setOptions(data);\r\n }\r\n }, null);\r\n }\r\n\r\n setOptionsLoaded(true);\r\n }\r\n }, [loadFullOptionList, props.dependency]);\r\n\r\n\r\n return (\r\n {\r\n if (!loadFullOptionList && !optionsLoaded) {\r\n setLoadFullOptionList(true);\r\n }\r\n },\r\n displayEmpty: props.allowEmptyValue || false\r\n }}\r\n value={!utils.isNull(base.valueObject[base.valueProperty]) ? base.valueObject[base.valueProperty].Id : ''}\r\n className={props.className}\r\n onChange={onHandleChange()}\r\n error={base.hasError}\r\n helperText={base.errorMessage}\r\n margin=\"normal\"\r\n size=\"small\"\r\n variant=\"outlined\">\r\n {options\r\n .filter(option => {\r\n if (props.filterOptions) {\r\n return props.filterOptions(option);\r\n }\r\n return true;\r\n })\r\n .map(option => (\r\n {utils.isNull(option.Description) ? \"\" : option.Description.trim()}\r\n \r\n ))\r\n }\r\n \r\n );\r\n})\r\n\r\nexport function SelectItem(props) {\r\n return (\r\n \r\n {base =>\r\n \r\n \r\n }\r\n \r\n );\r\n}","import React from 'react';\r\nimport 'date-fns';\r\nimport ViewUtils from '../ViewUtils';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { BaseField } from \"./BaseField\";\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n} from '@material-ui/pickers';\r\n\r\nconst utils = new ViewUtils();\r\nconst CustomDatePickerComponent = React.forwardRef((props, ref) => {\r\n const base = props.base;\r\n const defaultDate = !utils.isNull(base.valueObject[base.valueProperty]) ? new Date(base.valueObject[base.valueProperty]) : null;\r\n const [selectedDate, setSelectedDate] = React.useState(defaultDate);\r\n\r\n const handleDateChange = date => {\r\n setSelectedDate(new Date(date.setHours(0, 0, 0, 0)));\r\n props.form.doHandleChange(props.id, new Date(date.setHours(0, 0, 0, 0)));\r\n \r\n if (!utils.isNull(props.onChange)) {\r\n props.onChange(props.form, date);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n setSelectedDate(defaultDate);\r\n }, [props.base.valueObject[props.base.valueProperty]]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n})\r\n\r\nexport function CustomDatePicker(props) {\r\n return (\r\n {\r\n return !utils.isNull(value) && value.trim().length > 0 ? new Date(value) : null;\r\n }} form={props.form} required={props.required} id={props.id} className={props.className}>\r\n {base =>\r\n \r\n \r\n }\r\n \r\n );\r\n}","import React from 'react';\r\nimport ViewUtils from '../ViewUtils';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { BaseField } from \"./BaseField\"\r\n\r\nconst AddressCodeItemComponent = React.forwardRef((props, ref) => {\r\n const utils = new ViewUtils();\r\n const [provinceId, setProvinceId] = React.useState(props.provinceId);\r\n const [municipalityId, setMunicipalityId] = React.useState(props.municipalityId);\r\n const [districtId, setDistrictId] = React.useState(props.districtId);\r\n const [suburbId, setSuburbId] = React.useState(props.suburbId);\r\n const [cityId, setCityId] = React.useState(props.cityId);\r\n const [urbanRuralId, setUrbanRuralId] = React.useState(props.urbanRuralId);\r\n const [hasProvinceID, setHasProvinceID] = React.useState(props.hasProvinceID);\r\n const [hasUrbanRuralID, setHasUrbanRuralID] = React.useState(props.hasUrbanRuralID);\r\n const [hasCityID, setHasCityID] = React.useState(props.hasCityID);\r\n const [hasMunicipalityID, setHasMunicipalityID] = React.useState(props.hasMunicipalityID);\r\n const [hasDistrictID, setHasDistrictID] = React.useState(props.hasDistrictID);\r\n const [hasSuburbID, setHasSuburbID] = React.useState(props.hasSuburbID);\r\n const base = props.base;\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.value)) {\r\n handleFormValueChange(props.value);\r\n }\r\n }, [props.value])\r\n\r\n const handleFormValueChange = (value) => {\r\n if (props.base.doValidation(props.form.values, value)) {\r\n let checkToken = true;\r\n if (typeof props.checkRefreshToken !== 'undefined' && props.checkRefreshToken !== null) {\r\n checkToken = props.checkRefreshToken;\r\n }\r\n if (checkToken) {\r\n utils.invokeUrl(`api/sims/location/locationByCode?code=${value}`, (data) => {\r\n if (!utils.isNull(data)) {\r\n setDistrictId(data.DistrictID);\r\n setMunicipalityId(data.MunicipalityID);\r\n setProvinceId(data.ProvinceID);\r\n setUrbanRuralId(data.UrbanRuralID);\r\n setSuburbId(data.SuburbID);\r\n setCityId(data.CityID);\r\n\r\n props.form.updateValue(props.addressId + \"DistrictID\", data.DistrictID);\r\n props.form.updateValue(props.addressId + \"MunicipalityID\", data.MunicipalityID);\r\n props.form.updateValue(props.addressId + \"ProvinceID\", data.ProvinceID);\r\n props.form.updateValue(props.addressId + \"UrbanRuralID\", data.UrbanRuralID);\r\n props.form.updateValue(props.addressId + \"SuburbID\", data.SuburbID);\r\n props.form.updateValue(props.addressId + \"CityID\", data.CityID);\r\n }\r\n }, null);\r\n } else {\r\n utils.invokeUrlExternal(`api/sims/location/locationByCode?code=${value}`, (data) => {\r\n if (!utils.isNull(data)) {\r\n setDistrictId(data.DistrictID);\r\n setMunicipalityId(data.MunicipalityID);\r\n setProvinceId(data.ProvinceID);\r\n setUrbanRuralId(data.UrbanRuralID);\r\n setSuburbId(data.SuburbID);\r\n setCityId(data.CityID);\r\n\r\n props.form.updateValue(props.addressId + \"DistrictID\", data.DistrictID);\r\n props.form.updateValue(props.addressId + \"MunicipalityID\", data.MunicipalityID);\r\n props.form.updateValue(props.addressId + \"ProvinceID\", data.ProvinceID);\r\n props.form.updateValue(props.addressId + \"UrbanRuralID\", data.UrbanRuralID);\r\n props.form.updateValue(props.addressId + \"SuburbID\", data.SuburbID);\r\n props.form.updateValue(props.addressId + \"CityID\", data.CityID);\r\n }\r\n }, null);\r\n }\r\n }\r\n }\r\n \r\n const handleChange = (id) => event => {\r\n let value = event.target.value;\r\n props.form.doHandleChange(id, value);\r\n handleFormValueChange(value)\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n\r\n {\r\n hasProvinceID ?\r\n \r\n \r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n hasMunicipalityID ?\r\n \r\n \r\n :\r\n \"\"\r\n }\r\n \r\n {\r\n hasDistrictID ?\r\n \r\n \r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n hasUrbanRuralID ?\r\n \r\n \r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n hasSuburbID ?\r\n \r\n \r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n hasCityID ?\r\n \r\n \r\n :\r\n \"\"\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport function AddressCodeItem(props) {\r\n\r\n return (\r\n \r\n {base =>\r\n \r\n \r\n }\r\n \r\n );\r\n}","import React, { useState, useEffect, useRef } from 'react';\r\nimport { BaseField } from \"./BaseField\"\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { min } from 'date-fns';\r\n\r\nlet autoComplete;\r\nvar componentForm = {\r\n street_number: 'short_name',\r\n route: 'long_name',\r\n sublocality_level_1: 'long_name',\r\n locality: 'long_name',\r\n administrative_area_level_2: 'short_name',\r\n administrative_area_level_1: 'short_name',\r\n country: 'long_name',\r\n postal_code: 'short_name'\r\n};\r\n\r\nconst loadScript = (url, callback) => {\r\n let script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n\r\n if (script.readyState) {\r\n script.onreadystatechange = function () {\r\n if (script.readyState === \"loaded\" || script.readyState === \"complete\") {\r\n script.onreadystatechange = null;\r\n callback();\r\n }\r\n };\r\n }\r\n else {\r\n script.onload = () => callback();\r\n }\r\n\r\n script.src = url;\r\n document.getElementsByTagName(\"head\")[0].appendChild(script);\r\n}\r\n\r\nfunction isMyScriptLoaded(url) {\r\n if (!url) url = \"missingURL\";\r\n var scripts = document.getElementsByTagName('script');\r\n for (var i = scripts.length; i--;) {\r\n if (scripts[i].src == url) return true;\r\n }\r\n return false;\r\n}\r\n\r\nfunction handleScriptLoad(updateQuery, controlID, updateGPSAddress, form) {\r\n const input = document.getElementById(controlID);\r\n autoComplete = new window.google.maps.places.Autocomplete(\r\n input,\r\n { types: [\"geocode\"] }\r\n );\r\n\r\n autoComplete.setFields(['address_component', 'geometry.location']);\r\n\r\n autoComplete.addListener(\"place_changed\", () => {\r\n handlePlaceSelect(updateQuery, controlID, updateGPSAddress, form);\r\n });\r\n\r\n geolocate();\r\n}\r\n\r\nfunction handlePlaceSelect(updateQuery, controlID, updateGPSAddress, form) {\r\n const input = document.getElementById(controlID);\r\n updateQuery(input.value);\r\n\r\n const place = autoComplete.getPlace();\r\n let address = {}\r\n for (var i = 0; i < place.address_components.length; i++) {\r\n var addressType = place.address_components[i].types[0];\r\n if (componentForm[addressType]) {\r\n if (addressType == \"street_number\") {\r\n address.streetnumberpar = place.address_components[i][componentForm[addressType]];\r\n }\r\n else if (addressType == \"route\") {\r\n address.routepar = place.address_components[i][componentForm[addressType]];\r\n }\r\n else if (addressType == \"sublocality_level_1\") {\r\n address.sublocalitylevel1par = place.address_components[i][componentForm[addressType]];\r\n }\r\n else if (addressType == \"locality\") {\r\n address.localitypar = place.address_components[i][componentForm[addressType]];\r\n }\r\n else if (addressType == \"administrative_area_level_2\") {\r\n address.adminarealevel2par = place.address_components[i][componentForm[addressType]];\r\n }\r\n else if (addressType == \"administrative_area_level_1\") {\r\n address.adminarealevel1par = place.address_components[i][componentForm[addressType]];\r\n }\r\n else if (addressType == \"country\") {\r\n address.countrypar = place.address_components[i][componentForm[addressType]];\r\n }\r\n else if (addressType == \"postal_code\") {\r\n address.postalcodepar = place.address_components[i][componentForm[addressType]];\r\n }\r\n }\r\n }\r\n\r\n var latitude = place.geometry.location.lat();\r\n var longitude = place.geometry.location.lng();\r\n\r\n address.gpscoordinates = convertDMS(latitude, longitude);\r\n\r\n updateGPSAddress(address, form);\r\n}\r\n\r\nfunction toDegreesMinutesAndSeconds(coordinate) {\r\n\r\n const dms = {};\r\n\r\n var degrees = Math.trunc(coordinate);\r\n var minutes = Math.trunc((coordinate - degrees) * 60);\r\n var seconds = (((coordinate - degrees) * 60) - minutes) * 60;\r\n if (degrees < 0) {\r\n dms.degrees = degrees * -1;\r\n dms.minutes = minutes * -1;\r\n dms.seconds = Math.trunc(seconds * -1);\r\n dms.milliseconds = Number(String((seconds * -1).toFixed(3)).split('.')[1] || 0);\r\n }\r\n else {\r\n dms.degrees = degrees;\r\n dms.minutes = minutes;\r\n dms.seconds = Math.trunc(seconds);\r\n dms.milliseconds = Number(String((seconds).toFixed(3)).split('.')[1] || 0);\r\n }\r\n\r\n return dms;\r\n\r\n //var absolute = Math.abs(coordinate);\r\n //var degrees = Math.floor(absolute);\r\n //var minutesNotTruncated = (absolute - degrees) * 60;\r\n //var minutes = Math.floor(minutesNotTruncated);\r\n //var seconds = Math.floor((minutesNotTruncated - minutes) * 60);\r\n\r\n //return degrees + \" \" + minutes + \" \" + seconds;\r\n}\r\n\r\nfunction convertDMS(lat, lng) {\r\n var latitude = toDegreesMinutesAndSeconds(lat);\r\n //var latitudeCardinal = lat >= 0 ? \"N\" : \"S\";\r\n\r\n var longitude = toDegreesMinutesAndSeconds(lng);\r\n //var longitudeCardinal = lng >= 0 ? \"E\" : \"W\";\r\n\r\n //return latitude + \" \" + latitudeCardinal + \"\\n\" + longitude + \" \" + longitudeCardinal;\r\n const gpscoordinates = {};\r\n gpscoordinates.latitude = latitude;\r\n gpscoordinates.longitude = longitude;\r\n gpscoordinates.coordinate = \"-\" + pad(latitude.degrees,2) + \",\" + pad(latitude.minutes,2) + \",\"\r\n + pad(latitude.seconds, 2) + \".\" + pad(latitude.milliseconds, 3) + \" \" + pad(longitude.degrees, 2) + \",\"\r\n + pad(longitude.minutes, 2) + \",\" + pad(longitude.seconds, 2) + \".\" + pad(longitude.milliseconds, 3);\r\n\r\n return gpscoordinates;\r\n}\r\n\r\nfunction pad(str, max) {\r\n str = str.toString();\r\n return str.length < max ? pad(\"0\" + str, max) : str;\r\n}\r\n\r\nfunction geolocate() {\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(function (position) {\r\n var geolocation = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude\r\n };\r\n // var circle = new window.google.maps.Circle({\r\n // center: geolocation,\r\n // radius: position.coords.accuracy\r\n // });\r\n autoComplete.setBounds(geolocation);\r\n });\r\n }\r\n}\r\n\r\nconst GPSCoordinatesComponent = React.forwardRef((props, ref) => {\r\n const [query, setQuery] = useState(\"\");\r\n\r\n useEffect(() => {\r\n const url = `https://maps.googleapis.com/maps/api/js?key=AIzaSyCrq4Fws6p-Tye07zFZh2_Nz34YbMaFE1c&libraries=places`;\r\n if (!isMyScriptLoaded(url)) {\r\n loadScript(url,\r\n () => handleScriptLoad(setQuery, props.id, props.updateGPSAddress, props.form)\r\n );\r\n } else {\r\n handleScriptLoad(setQuery, props.id, props.updateGPSAddress, props.form);\r\n }\r\n }, []);\r\n\r\n const handleChange = (id) => event => {\r\n let value = event.target.value;\r\n setQuery(value);\r\n };\r\n\r\n return (\r\n //
\r\n // setQuery(event.target.value)}\r\n // placeholder=\"Enter Address\"\r\n // value={query}\r\n // />\r\n //
\r\n
\r\n \r\n \r\n
\r\n );\r\n})\r\n\r\nexport function GPSCoordinatesAPI(props) {\r\n\r\n return (\r\n \r\n {base =>\r\n \r\n \r\n }\r\n \r\n );\r\n}","import React from 'react';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { BaseField } from \"./BaseField\";\r\nimport ViewUtils from '../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nconst CheckboxComponent = React.forwardRef((props, ref) => {\r\n return (\r\n \r\n }\r\n label={props.label}\r\n />\r\n );\r\n})\r\n\r\nexport function CustomCheckbox(props) {\r\n\r\n return (\r\n \r\n {base =>\r\n \r\n \r\n }\r\n \r\n );\r\n}","import React from 'react';\r\nimport ViewUtils from '../ViewUtils';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport { BaseField } from \"./BaseField\";\r\n\r\nexport const LookupFieldComponent = React.forwardRef((props, ref) => {\r\n const [currentSelection, setCurrentSelection] = React.useState(null);\r\n const [value, setValue] = React.useState(props.base.valueObject[props.base.valueProperty]);\r\n const utils = new ViewUtils();\r\n const [open, setOpen] = React.useState(false);\r\n const base = props.base;\r\n\r\n React.useEffect(() => {\r\n if (props.base.valueObject[props.base.valueProperty] != null && props.valueMode !== \"ID\") {\r\n props.base.valueObject[props.base.valueProperty].toString = () => { return props.base.valueObject[props.base.valueProperty].Description };\r\n }\r\n\r\n setValue(props.base.valueObject[props.base.valueProperty]);\r\n }, [props.base.valueObject[props.base.valueProperty]]);\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n \r\n const setSelectionAsValue = () => {\r\n props.form.doHandleChange(props.id, props.valueMode === \"ID\" ? currentSelection.Id : currentSelection);\r\n handleClose();\r\n };\r\n\r\n const openSearch = () => {\r\n setOpen(true);\r\n }\r\n\r\n React.useImperativeHandle(base.reference, () => ({\r\n validate: (values, currentValue) => {\r\n return base.doValidation(values, currentValue);\r\n },\r\n setSelection: (selection) => {\r\n setCurrentSelection(selection);\r\n setValue(selection);\r\n },\r\n parseValue: (value) => {\r\n return value;\r\n },\r\n getId: () => {\r\n return props.id;\r\n },\r\n getValidationGroup: () => {\r\n return props.validationGroup;\r\n }\r\n }));\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {props.children}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n})\r\n\r\nexport function LookupField(props) {\r\n return (\r\n \r\n {base =>\r\n \r\n \r\n }\r\n \r\n );\r\n}","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nexport default function ConsultantSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Consultant.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ConsultantSearchForm from './ConsultantSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'MiddleName', numeric: false, disablePadding: true, label: 'Middle Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IdNumber', numeric: false, disablePadding: true, label: 'ID Number' }\r\n];\r\n\r\nconst searchParameters = [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n]\r\n\r\nconst filterParameters = [\r\n { dataField: \"FirstName\", text: \"FirstName\" },\r\n { dataField: \"MiddleName\", text: \"MiddleName\" },\r\n { dataField: \"Surname\", text: \"Surname\" },\r\n { dataField: \"IDNo\", text: \"IDNo\" }\r\n]\r\n\r\nclass ConsultantSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters = this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n\r\n [\r\n { Name: \"ID\", Value: this.props.programmeId },\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n ]\r\n :\r\n\r\n [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n ]\r\n\r\n if (!utils.isNull(this.props.programmeId)) {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n ID: this.props.programmeId,\r\n },\r\n keyUpSwitch: false,\r\n selectedConsultant: null\r\n };\r\n }\r\n else {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\"\r\n },\r\n keyUpSwitch: false,\r\n selectedConsultant: null\r\n };\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Consultant\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedConsultant: selection })\r\n } else {\r\n this.setState({ selectedConsultant: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddConsultantFlow'\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }} />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(ConsultantSearch));\r\n\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport ConsultantSearch from \"../consultant/ConsultantSearch\";\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const EmployerForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [selectedValue, showField] = React.useState(null);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [autoSDL, setautoSDL] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n\r\n\r\n\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n\r\n function AttemptSDLGeneration(form, LevyTypeID) {\r\n if (props.id == undefined && LevyTypeID !== undefined) {\r\n let url = \"api/sims/EmployerDetails/GetAutoSDLNumber?LevyTypeID=\" + LevyTypeID.Id;\r\n utils.invokeUrl(url, (response) => {\r\n setautoSDL(response)\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n if (autoSDL) {\r\n form.values['SDLNumber'] = autoSDL;\r\n }\r\n }\r\n\r\n const updateGPSAddress = (address, form) => {\r\n console.log(address);\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n const onChangeLegalStatusID = (e) => {\r\n let id = e.target.value\r\n if (id === 8) {\r\n\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function checkValue(value) {\r\n\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return false\r\n }\r\n else {\r\n return true\r\n }\r\n } else {\r\n return true\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {/**/}\r\n \r\n
\r\n \r\n {/**/}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {/**/}\r\n \r\n {/**/}\r\n
\r\n \r\n \r\n \r\n {/**/}\r\n
\r\n {/**/}\r\n \r\n {/**/}\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n {/**/}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ConsultantID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Employer.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { EmployerForm } from './EmployerForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { is } from \"date-fns/esm/locale\";\r\n\r\n\r\nconst formRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarRef = React.createRef();\r\nclass Employer extends Component {\r\n\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n employerDetails: {\r\n LegalName: \"\",\r\n SDLNumber: \"\"\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: 'learners', label: 'LEARNERS', tooltip: 'Registered learners employed by this organisation', disabled: utils.isNull(this.state.id) },\r\n { id: 'contacts', label: 'CONTACTS', tooltip: 'Contacts for this client', disabled: utils.isNull(this.state.id) },\r\n { id: 'users', label: 'Users', tooltip: 'Users for this organisation', disabled: utils.isNull(this.state.id) },\r\n { id: 'crm', label: 'CRM', tooltip: 'CRM', disabled: utils.isNull(this.state.id) },\r\n { id: 'billingcontacts', label: 'BILLING CONTACTS', tooltip: 'Billing Contacts for this client', disabled: utils.isNull(this.state.id) },\r\n { id: 'clientprojects', label: 'Projects', tooltip: 'Projects linked to this client', disabled: utils.isNull(this.state.id) },\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n employerDetails: {\r\n LegalName: values.LegalName,\r\n SDLNumber: values.SDLNumber\r\n }\r\n });\r\n }\r\n\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n if (!utils.isNull(this.state.ConsultantID) && this.state.ConsultantID != newValues.ConsultantID) {\r\n newValues.ConsultantNumber = null;\r\n newValues.ConsultantEmail = null;\r\n }\r\n this.setState({\r\n model: newValues,\r\n ConsultantID: newValues.ConsultantID\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"learners\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employerLearners',\r\n state: { employerId: this.state.id, employerName: this.state.employerDetails.LegalName, employerSDLNo: this.state.employerDetails.SDLNumber }\r\n });\r\n } else if (\"contacts\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employerContacts',\r\n state: { selection: this.state.id, employerName: this.state.employerDetails.LegalName, employerSDLNo: this.state.employerDetails.SDLNumber }\r\n });\r\n } else if (\"users\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employerUsers',\r\n state: {\r\n selection: this.state.id,\r\n employerName: this.state.employerDetails.LegalName, employerSDLNo: this.state.employerDetails.SDLNumber\r\n }\r\n });\r\n } else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/EmployerCRM',\r\n state: {\r\n selection: this.state.id,\r\n employerName: this.state.employerDetails.LegalName, employerSDLNo: this.state.employerDetails.SDLNumber\r\n }\r\n });\r\n } else if (\"billingcontacts\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employerBillingContacts',\r\n state: { selection: this.state.id, employerName: this.state.employerDetails.LegalName, employerSDLNo: this.state.employerDetails.SDLNumber }\r\n });\r\n } else if (\"clientprojects\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employerProjects',\r\n state: { employerId: this.state.id, employerName: this.state.employerDetails.LegalName, employerSDLNo: this.state.employerDetails.SDLNumber }\r\n });\r\n } \r\n }\r\n\r\n\r\n successCallback = (response) => {\r\n //this.setState({ message: \"Employer updated successfully\", messageStyle: \"SUCCESS\" });\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n\r\n save() {\r\n\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let isAdd = true;\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n formValue.Document = this.state.Document;\r\n const data = JSON.stringify(formValue);\r\n let url = \"api/sims/employerdetails/updateemployer\";\r\n if (!isAdd) {\r\n utils.invokeUrl(url, (response) => {\r\n //utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n this.getEmployerDetails(response, isAdd, formValue)\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n } else {\r\n url = \"api/sims/employerdetails/insertemployer\";\r\n utils.invokeUrl(url, (response) => {\r\n //utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n this.getEmployerDetails(response, isAdd, formValue)\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n }\r\n }\r\n }\r\n\r\n\r\n getEmployerDetails(response, isAdd, formValue) {\r\n \r\n if (response.MessageType === 'SUCCESS') {\r\n let dataURL = 'api/sims/employerdetails/getfind?id=';\r\n let EmployerId;\r\n if (isAdd) {\r\n dataURL = dataURL + response.EntityId;\r\n EmployerId = response.EntityId;\r\n } else {\r\n dataURL = dataURL + formValue.id;\r\n EmployerId = formValue.id;\r\n }\r\n utils.invokeUrl(dataURL, (response) => {\r\n console.clear();\r\n console.log(response);\r\n this.setState({ model: response, ConsultantID: null, id: EmployerId });\r\n },\r\n null\r\n )\r\n toolbarRef.current.setButtonDisabled(\"learners\", false);\r\n toolbarRef.current.setButtonDisabled(\"contacts\", false);\r\n toolbarRef.current.setButtonDisabled(\"users\", false);\r\n toolbarRef.current.setButtonDisabled(\"crm\", false);\r\n toolbarRef.current.setButtonDisabled(\"billingcontacts\", false);\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/employers');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Client \" + (this.state.employerDetails.LegalName !== null ? \"> \" + this.state.employerDetails.LegalName + (this.state.employerDetails.SDLNumber !== null ? \" - \" + this.state.employerDetails.SDLNumber : \"\") : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} editPermission={this.props.menuPermissionItem.Edit} viewOnly={this.props.location.state.viewOnly}\r\n data={this.state.model}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(Employer));\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\nexport default function WorkplaceSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n }","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Workplace.css\";\r\nimport WorkplaceSearchForm from './WorkplaceSearchForm';\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'CompanyName', numeric: true, disablePadding: false, label: 'Company Name', widthRatio: .5 },\r\n { id: 'Industry', numeric: false, disablePadding: false, label: 'Industry', widthRatio: .25 },\r\n {\r\n id: 'ContactPerson', numeric: false, disablePadding: false, label: 'Contact Person', widthRatio: .25,\r\n }\r\n];\r\n\r\n\r\n\r\nconst filterParameters = [\r\n { dataField: \"CompanyName\", text: \"CompanyName\" },\r\n]\r\n\r\nclass WorkplaceSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n CompanyName: \"\"\r\n },\r\n parameters: {},\r\n keyUpSwitch: false,\r\n selectedWorkplace: null\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n /*{ id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', visible: this.props.menuPermissionItem.View },*/\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit},\r\n { id: 'delete', label: '', tooltip: 'Delete Workplace', icon: 'DeleteIcon', disabled: true, visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.searchParameters = this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"CompanyName\", Value: \"\" }\r\n ]\r\n :\r\n [\r\n { Name: \"CompanyName\", Value: \"\" },\r\n ]\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedWorkplace: selection })\r\n } else {\r\n this.setState({ selectedWorkplace: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"add\" === buttonId) {\r\n this.setState({ linkDialogOpen: true })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/workplace',\r\n state: {\r\n selection: this.state.selectedWorkplace[0].Id,\r\n viewOnly: true\r\n }\r\n })\r\n }\r\n } \r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }} /> \r\n \r\n \r\n\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(WorkplaceSearch));\r\n\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const WorkplaceForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [selectedValue, showField] = React.useState(null);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [autoSDL, setautoSDL] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n\r\n\r\n\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n\r\n function AttemptSDLGeneration(form, LevyTypeID) {\r\n if (props.id == undefined && LevyTypeID !== undefined) {\r\n let url = \"api/sims/EmployerDetails/GetAutoSDLNumber?LevyTypeID=\" + LevyTypeID.Id;\r\n utils.invokeUrl(url, (response) => {\r\n setautoSDL(response)\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n if (autoSDL) {\r\n form.values['SDLNumber'] = autoSDL;\r\n }\r\n }\r\n\r\n const updateGPSAddress = (address, form) => {\r\n console.log(address);\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n const onChangeLegalStatusID = (e) => {\r\n let id = e.target.value\r\n if (id === 8) {\r\n\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function checkValue(value) {\r\n\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return false\r\n }\r\n else {\r\n return true\r\n }\r\n } else {\r\n return true\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Workplace.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { WorkplaceForm } from './WorkplaceForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst formRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarRef = React.createRef();\r\nclass Workplace extends Component {\r\n\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n workplaceDetails: {\r\n CompanyName: null\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relationship Management', visible: this.props.menuPermissionItem.Edit }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n workplaceDetails: {\r\n CompanyName: values.CompanyName\r\n }\r\n });\r\n }\r\n }\r\n \r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/workplaceCRM',\r\n state: {\r\n WorkplaceID: this.props.location.state.selection,\r\n WorkplaceName: `${this.state.workplaceDetails.CompanyName}`\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Workplace updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n\r\n save() {\r\n\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let isAdd = true;\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n formValue.Document = this.state.Document;\r\n const data = JSON.stringify(formValue);\r\n let url = \"api/sims/workplacedetails/updateworkplace\";\r\n if (!isAdd) {\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n } else {\r\n url = \"api/sims/workplacedetails/insertworkplace\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n }\r\n }\r\n }\r\n \r\n closeView() {\r\n this.props.history.push('/workplaceSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Workplace \" + (this.state.workplaceDetails.CompanyName !== null ? \"> \" + this.state.workplaceDetails.CompanyName : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} editPermission={this.props.menuPermissionItem.Edit} viewOnly={this.props.location.state.viewOnly} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(Workplace));\r\n","import React from 'react';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst headCells = [\r\n { id: 'Date', numeric: false, disablePadding: true, label: 'Date' },\r\n { id: 'Comment', numeric: false, disablePadding: true, label: 'Comment' },\r\n { id: 'CommentBy', numeric: false, disablePadding: true, label: 'Comment By' }\r\n]\r\n\r\nexport default function Comments(props, ref) {\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./CRM.css\"\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function Documents(props, ref) {\r\n\r\n const headCells = props.IsSkills ?\r\n [\r\n\r\n { id: 'UploadedBy', numeric: false, disablePadding: true, label: 'Uploaded By' },\r\n { id: 'UploadDate', numeric: false, disablePadding: true, label: 'Upload Date' },\r\n { id: 'DocumentRelates', numeric: false, disablePadding: true, label: 'Document Relates' },\r\n { id: 'Comment', numeric: false, disablePadding: true, label: 'Comment' },\r\n { id: 'DocumentName', numeric: false, disablePadding: true, label: 'Document Name', contentType: 'document' }\r\n ]\r\n :\r\n props.showEmployerDocumentType || props.showLearnerDocumentType ?\r\n [\r\n { id: 'UploadedBy', numeric: false, disablePadding: true, label: 'Uploaded By' },\r\n { id: 'UploadDate', numeric: false, disablePadding: true, label: 'Upload Date' },\r\n { id: 'DocumentRelates', numeric: false, disablePadding: true, label: 'Document Type' },\r\n { id: 'DocumentName', numeric: false, disablePadding: true, label: 'Document Name', contentType: 'document' }\r\n ]\r\n :\r\n [\r\n { id: 'UploadedBy', numeric: false, disablePadding: true, label: 'Uploaded By' },\r\n { id: 'UploadDate', numeric: false, disablePadding: true, label: 'Upload Date' },\r\n { id: 'DocumentName', numeric: false, disablePadding: true, label: 'Document Name', contentType: 'document' }\r\n ]\r\n\r\n const parameters = utils.isNull(props.DocumentTypeID) ? [\r\n { Name: `${props.moduleName}ID`, Value: props.selection }\r\n ] :\r\n [\r\n { Name: `${props.moduleName}ID`, Value: props.selection },\r\n { Name: 'DocumentTypeID', Value: props.DocumentTypeID }\r\n ]\r\n\r\n return (\r\n { props.handleCell(rowid, columnid) }}\r\n searchParameters={parameters}\r\n paged={true}\r\n dataUrl={props.documentsDataUrl}\r\n />\r\n );\r\n}\r\n","import React from 'react';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst headCells = [\r\n { id: 'EmailSentBy', numeric: false, disablePadding: true, label: 'Email Sent By' },\r\n { id: 'ToAddress', numeric: false, disablePadding: true, label: 'To Address' },\r\n { id: 'FromAddress', numeric: false, disablePadding: true, label: 'From Address' },\r\n { id: 'Subject', numeric: false, disablePadding: true, label: \"Subject\" },\r\n { id: \"Body\", numeric: false, disablePadding: true, label: \"Body\" },\r\n { id: \"MessageStatus\", numeric: false, disablePadding: true, label: \"Message Status\" },\r\n { id: \"DateSent\", numeric: false, disablePadding: true, label: \"Date Sent\" },\r\n { id: \"DocumentName\", numeric: false, disablePadding: true, label: \"Document Name\", contentType: \"document\"}\r\n]\r\n\r\nexport default function Emails(props, ref) {\r\n return (\r\n \r\n { props.handleCell(rowid, columnid) }}\r\n searchParameters={\r\n [\r\n {Name: `${props.moduleName}ID`, Value: props.selection }, \r\n {Name: 'EmailAddress', Value: props.Email}, \r\n {Name: 'Subject', Value: props.Subject}\r\n ]\r\n }\r\n paged={true}\r\n dataUrl={props.emailsDataUrl}\r\n />\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nexport default function CommentsDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [comment, setComment] = React.useState(null)\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n\r\n const handleClose = (isCancel) => {\r\n setOpen(true);\r\n props.closeHandler(!isCancel)\r\n };\r\n\r\n\r\n const cancel = () => {\r\n handleClose(true);\r\n };\r\n\r\n const add = () => {\r\n if (comment !== null || comment !== \"\") {\r\n let data = {};\r\n data.comment = comment;\r\n data.EntityID = props.EntityID;\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n }\r\n\r\n const handleFormValueChange = (values) => {\r\n setComment(values.comment)\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n New Comment\r\n

\r\n\r\n\r\n
\r\n handleFormValueChange(value)}>\r\n {form =>\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport \"./widgets.css\";\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport ViewUtils from '../ViewUtils';\r\n\r\nconst pdfVersion = \"2.6.347\"\r\nconst pdfWorkerUrl = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfVersion}/pdf.worker.js`\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nconst utils = new ViewUtils();\r\nconst DocumentViewer = (props) => {\r\n const [pageNumber] = React.useState(1);\r\n const [numPages, setNumPages] = React.useState(null);\r\n\r\n\r\n const onDocumentLoadSuccess = ({ numPages }) => {\r\n setNumPages(numPages);\r\n if (!utils.isNull(props.onDocumentLoadSuccess)) {\r\n props.onDocumentLoadSuccess(numPages);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {\r\n !utils.isNull(props.file) ?\r\n
\r\n {\r\n props.file.type === \"application/pdf\" ?\r\n
\r\n \r\n \r\n \r\n

Page {pageNumber} of {numPages}

\r\n
\r\n :\r\n
\r\n {props.imageStyle ?\r\n
\r\n \r\n {props.onDocumentLoadSuccess(1)}\r\n
\r\n : \r\n
\r\n \r\n {props.onDocumentLoadSuccess(1)}\r\n
\r\n }\r\n
\r\n }\r\n
\r\n :\r\n \"\"\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default DocumentViewer;","import React from 'react';\r\nimport \"./widgets.css\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport DocumentViewer from './DocumentViewer';\r\nimport ViewUtils from '../ViewUtils';\r\nconst utils = new ViewUtils();\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n button: {\r\n margin: theme.spacing(1),\r\n },\r\n input: {\r\n display: 'none',\r\n },\r\n errorMessageDisplay: {\r\n color: 'red'\r\n }\r\n}));\r\n\r\nexport const DocumentUploadComponent = React.forwardRef((props, ref) => {\r\n const [viewerFile, setViewerFile] = React.useState(!utils.isNull(props.initialFile) ? props.initialFile : null);\r\n const [files, setFiles] = React.useState(!utils.isNull(props.initialFile) ? [props.initialFile] : null);\r\n const [loading, setLoading] = React.useState(true);\r\n const [multiple] = React.useState(props.multiple === true);\r\n const [show, setShow] = React.useState(false)\r\n const classes = useStyles();\r\n const [reference, setReference] = React.useState(ref ? ref : React.createRef());\r\n const [hasError, setHasError] = React.useState(null);\r\n const [errorMessage, setErrorMessage] = React.useState(\"\");\r\n const [showUploadFileMessage, setShowUploadFileMessage] = React.useState(null);\r\n\r\n const doValidation = (values, currentValue) => {\r\n let required = props.required;\r\n let result = utils.validateField(props.id, required, values, currentValue);\r\n setErrorMessage(result.message);\r\n setHasError(!result.valid);\r\n\r\n props.form.setFieldError(props.id, typeof result.message === 'undefined' ? null : result.message);\r\n //console.log(props.id + \" - THE VAL \" + result.valid + \" MSG \" + result.message);\r\n return result.valid;\r\n }\r\n\r\n const setSelectionAsValue = (selection) => {\r\n props.form.doHandleChange(props.id, selection);\r\n setShowUploadFileMessage(true);\r\n };\r\n\r\n React.useImperativeHandle(ref, () => ({\r\n validate: (values, currentValue) => {\r\n return doValidation(values, currentValue);\r\n },\r\n setUpload: (selection) => {\r\n setSelectionAsValue(selection);\r\n },\r\n parseValue: (value) => {\r\n return value;\r\n },\r\n getValidationGroup: () => {\r\n return props.validationGroup;\r\n }\r\n }));\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.form)) {\r\n let componentRef = reference === null ? React.createRef() : reference;\r\n setReference(componentRef);\r\n let field = props.form.addField(props.id, componentRef, props.parentId);\r\n\r\n if (!utils.isNull(field) && !utils.isNull(field.error)) {\r\n if (field.error.length > 0) {\r\n setHasError(true);\r\n setErrorMessage(field.error);\r\n }\r\n }\r\n }\r\n });\r\n\r\n const handleViewerLoad = (numPages) => {\r\n setLoading(false);\r\n }\r\n\r\n const handleChange = () => event => {\r\n let files = event.target.files;\r\n var allFiles = [];\r\n for (var i = 0; i < files.length; i++) {\r\n let file = files[i];\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: file.name,\r\n type: file.type,\r\n size: Math.round(file.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n\r\n allFiles.push(fileInfo);\r\n if (allFiles.length == files.length) {\r\n if (multiple === true) {\r\n if (!utils.isNull(props.onUploadHandler)) {\r\n props.onUploadHandler(allFiles);\r\n }\r\n } else {\r\n if (!utils.isNull(props.onUploadHandler)) {\r\n props.onUploadHandler(allFiles[0]);\r\n }\r\n setLoading(true);\r\n setViewerFile(allFiles[0]);\r\n }\r\n\r\n setFiles(allFiles);\r\n }\r\n }\r\n reader.onloadend = () => {\r\n if (!utils.isNull(props.form)) {\r\n setSelectionAsValue(allFiles[0]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n\r\n {\r\n // \r\n }\r\n {\r\n !utils.isNull(props.onProcessHandler) && files !== null ?\r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n \r\n {props.filename}\r\n \r\n }\r\n\r\n
\r\n {\r\n props.showViewer && !multiple || show ?\r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n showUploadFileMessage ?\r\n props.uploadFileMessage\r\n :\r\n \"\"\r\n }\r\n {\r\n hasError ?\r\n {errorMessage}\r\n :\r\n \"\"\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default function DocumentUpload(props) {\r\n return (\r\n \r\n \r\n );\r\n}","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\nconst utils = new ViewUtils();\r\nexport default function DocumentsDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n const [entityId, setEntityId] = React.useState(props.EntityID);\r\n const [lookupArray, setLookupArray] = React.useState([]);\r\n const [lookupArrayID, setLookupArrayID] = React.useState({ Id: 0 });\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.EntityID)) {\r\n setEntityId(props.EntityID);\r\n }\r\n }, [props.EntityID]);\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.showEmployerDocumentType)) {\r\n utils.invokeUrl(props.getEmployerDocumentType, (response) => {\r\n setLookupArray(response);\r\n }, null);\r\n }\r\n }, [props.showEmployerDocumentType]);\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.showLearnerDocumentType)) {\r\n utils.invokeUrl(props.getLearnerDocumentType, (response) => {\r\n setLookupArray(response);\r\n }, null);\r\n }\r\n }, [props.showLearnerDocumentType]);\r\n\r\n const handleClose = (save, cancel) => {\r\n setOpen(false);\r\n props.closeHandler(save, cancel)\r\n };\r\n\r\n\r\n const cancel = () => {\r\n setLookupArrayID({ Id: 0 });\r\n setFilename(\"\");\r\n setSize(null);\r\n setBase64(null);\r\n setType(null);\r\n handleClose(false, true);\r\n };\r\n\r\n const handleChecklistArrayCI = (event) => {\r\n setLookupArrayID({ Id: event.target.value });\r\n }\r\n\r\n const save = () => {\r\n let data = {};\r\n data.OriginalFileName = filename;\r\n data.EntityID = entityId;\r\n data.Document = {};\r\n data.Document.name = filename;\r\n data.Document.size = size;\r\n data.Document.type = type;\r\n data.Document.base64 = base64;\r\n\r\n if (props.showEmployerDocumentType || props.showLearnerDocumentType) {\r\n data.DocumentRelatesID = lookupArrayID;\r\n }\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n setLookupArrayID({ Id: 0 });\r\n setFilename(\"\");\r\n setSize(null);\r\n setBase64(null);\r\n setType(null);\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n New Document\r\n

\r\n\r\n {\r\n props.showEmployerDocumentType ?\r\n
\r\n handleChecklistArrayCI(values)}>\r\n \r\n {lookupArray.map((lookupitem, index) => (\r\n\r\n {lookupitem.Description}\r\n\r\n ))}\r\n \r\n
\r\n : props.showLearnerDocumentType ?\r\n
\r\n handleChecklistArrayCI(values)}>\r\n \r\n {lookupArray.map((lookupitem, index) => (\r\n\r\n {lookupitem.Description}\r\n\r\n ))}\r\n \r\n
:\r\n null\r\n }\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function EmailDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [toAddress, setToAddress] = React.useState(null);\r\n const [subject, setSubject] = React.useState(\"\");\r\n const [body, setBody] = React.useState(\"\");\r\n const [selection, setSelection] = React.useState(null);\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n\r\n const handleClose = (isCancel) => {\r\n setOpen(true);\r\n props.closeHandler(!isCancel)\r\n };\r\n\r\n\r\n const cancel = () => {\r\n handleClose(true);\r\n };\r\n\r\n const add = () => {\r\n let data = {};\r\n\r\n if (props.showMultilineToAddress) {\r\n data.ToAddress = toAddress;\r\n }\r\n\r\n data.Subject = subject;\r\n data.Body = body;\r\n data.EntityID = props.EntityID\r\n data.OriginalFileName = filename;\r\n data.Document = {};\r\n data.Document.name = filename;\r\n data.Document.size = size;\r\n data.Document.type = type;\r\n data.Document.base64 = base64;\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n\r\n const handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n setToAddress(values.ToAddress);\r\n setSubject(values.emailSubject);\r\n setBody(values.emailBody);\r\n }\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name)\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n New Email\r\n

\r\n\r\n\r\n
\r\n { handleFormValueChange(values) }}>\r\n {form =>\r\n
\r\n
\r\n
\r\n {props.showMultilineToAddress && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../crm/Comments\";\r\nimport Documents from \"../crm/Documents\";\r\nimport Emails from \"../crm/Emails\";\r\nimport CommentsDialog from \"../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../crm/EmailDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Workplace\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/WorkplaceCRM/GetCRMComments\",\r\n documents: \"api/sims/WorkplaceCRM/GetCRMDocuments\",\r\n emails: \"api/sims/WorkplaceCRM/GetCRMEmail\",\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/WorkplaceCRM/AddCRMComment\",\r\n documents: \"api/sims/WorkplaceCRM/AddCRMDocument\",\r\n emails: \"api/sims/WorkplaceCRM/AddCRMEmail\",\r\n }\r\n}\r\n\r\nclass WorkplaceCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: \"1\",\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Workplace',\r\n state: { selection: this.props.location.state.WorkplaceID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/Workplace/getCRMDocument?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/workplacecrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n }\r\n\r\n SetCommunicationType(values) {\r\n\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {`Workplaces > ${this.props.location.state.WorkplaceName} > CRM`}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n { this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" \r\n />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({emailAddress: email, emailSubject: subject}, ()=>{\r\n this.setState({emailAddress: email, emailSubject: subject})\r\n })\r\n \r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n \r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Workplace Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Workplace Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.WorkplaceID} />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Workplace Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails} \r\n moduleName={config.moduleName} \r\n selection={this.props.location.state.WorkplaceID} \r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.WorkplaceID} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.WorkplaceID}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.WorkplaceID}\r\n showMultilineToAddress={true}\r\n />\r\n
\r\n }\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(WorkplaceCRM));\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nexport default function AccessorSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Assessor.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport AssessorSearchForm from './AssessorSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'MiddleName', numeric: false, disablePadding: true, label: 'Middle Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IdNumber', numeric: false, disablePadding: true, label: 'ID Number' }\r\n];\r\n\r\nconst searchParameters = [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"RegistrationNumber\", Value: \"\" }\r\n]\r\n\r\nconst filterParameters = [\r\n { dataField: \"FirstName\", text: \"FirstName\" },\r\n { dataField: \"MiddleName\", text: \"MiddleName\" },\r\n { dataField: \"Surname\", text: \"Surname\" },\r\n { dataField: \"IDNo\", text: \"IDNo\" },\r\n { dataField: \"RegistrationNumber\", text: \"RegistrationNumber\" }\r\n]\r\n\r\nclass AssessorSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters = this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n\r\n [\r\n { Name: \"ID\", Value: this.props.programmeId },\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"RegistrationNumber\", Value: \"\" }\r\n ]\r\n :\r\n\r\n [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"RegistrationNumber\", Value: \"\" }\r\n ]\r\n\r\n if (!utils.isNull(this.props.programmeId)) {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n RegistrationNumber: \"\",\r\n ID: this.props.programmeId,\r\n },\r\n keyUpSwitch: false,\r\n selectedAssessor: null\r\n };\r\n }\r\n else {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n RegistrationNumber: \"\"\r\n },\r\n keyUpSwitch: false,\r\n selectedAssessor: null\r\n };\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Assessor\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedAssessor: selection })\r\n } else {\r\n this.setState({ selectedAssessor: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddAssessorFlow'\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }} />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(AssessorSearch));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nexport default function AccessorSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Facilitator.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport FacilitatorSearchForm from './FacilitatorSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'MiddleName', numeric: false, disablePadding: true, label: 'Middle Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IdNumber', numeric: false, disablePadding: true, label: 'ID Number' }\r\n];\r\n\r\nconst searchParameters = [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"RegistrationNumber\", Value: \"\" }\r\n]\r\n\r\nconst filterParameters = [\r\n { dataField: \"FirstName\", text: \"FirstName\" },\r\n { dataField: \"MiddleName\", text: \"MiddleName\" },\r\n { dataField: \"Surname\", text: \"Surname\" },\r\n { dataField: \"IDNo\", text: \"IDNo\" },\r\n { dataField: \"RegistrationNumber\", text: \"RegistrationNumber\" }\r\n]\r\n\r\nclass FacilitatorSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters = this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n\r\n [\r\n { Name: \"ID\", Value: this.props.programmeId },\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"RegistrationNumber\", Value: \"\" }\r\n ]\r\n :\r\n\r\n [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"RegistrationNumber\", Value: \"\" }\r\n ]\r\n\r\n if (!utils.isNull(this.props.programmeId)) {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n RegistrationNumber: \"\",\r\n ID: this.props.programmeId,\r\n },\r\n keyUpSwitch: false,\r\n selectedFacilitator: null\r\n };\r\n }\r\n else {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n RegistrationNumber: \"\"\r\n },\r\n keyUpSwitch: false,\r\n selectedFacilitator: null\r\n };\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Facilitator\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedFacilitator: selection })\r\n } else {\r\n this.setState({ selectedFacilitator: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddFacilitatorFlow'\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }} />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(FacilitatorSearch));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nexport default function AccessorSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./ProjectOwner.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ProjectOwnerSearchForm from './ProjectOwnerSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'MiddleName', numeric: false, disablePadding: true, label: 'Middle Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IdNumber', numeric: false, disablePadding: true, label: 'ID Number' }\r\n];\r\n\r\nconst searchParameters = [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n]\r\n\r\nconst filterParameters = [\r\n { dataField: \"FirstName\", text: \"FirstName\" },\r\n { dataField: \"MiddleName\", text: \"MiddleName\" },\r\n { dataField: \"Surname\", text: \"Surname\" },\r\n { dataField: \"IDNo\", text: \"IDNo\" }\r\n]\r\n\r\nclass ProjectOwnerSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters = this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n\r\n [\r\n { Name: \"ID\", Value: this.props.programmeId },\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n ]\r\n :\r\n\r\n [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n ]\r\n\r\n if (!utils.isNull(this.props.programmeId)) {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n ID: this.props.programmeId,\r\n },\r\n keyUpSwitch: false,\r\n selectedProjectOwner: null\r\n };\r\n }\r\n else {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\"\r\n },\r\n keyUpSwitch: false,\r\n selectedProjectOwner: null\r\n };\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove ProjectOwner\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedProjectOwner: selection })\r\n } else {\r\n this.setState({ selectedProjectOwner: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddProjectOwnerFlow'\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }} />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(ProjectOwnerSearch));\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'ScopeType', numeric: false, disablePadding: true, label: 'Scope Type' },\r\n { id: 'ScopeCode', numeric: false, disablePadding: true, label: 'Scope Code' },\r\n { id: 'ScopeTitle', numeric: false, disablePadding: true, label: 'Scope Title' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n\r\n }\r\n \r\n\r\n ]\r\n};\r\n\r\nclass AuditTrialSearch extends Component {\r\n\r\n state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n postLinkHandler(linked) {\r\n //alert(linked + \" \" + JSON.stringify(this.state.selectedLinkType) + \" \" + JSON.stringify(this.state.selectedLinkStandards));\r\n this.setState({ linkDialogOpen: false, selectedLinkType: null, selectedLinkStandards: null });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={toolbarConfig} />\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AuditTrialSearch)\r\n);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function SchoolEMISSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n School EMIS\r\n\t\t\t\t\t\t\t\t\r\n props.model.SchoolEMIS = ev.target.value}\r\n labelWidth={labelWidth}\r\n onKeyPress={props.onKeyUp}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../View.css\";\r\nimport \"./../Grid.css\";\r\nimport \"./../Form.css\";\r\nimport \"./../App.css\";\r\nimport SearchView from \"../widgets/SearchView\";\r\nimport { ViewContainer } from \"./../View.jsx\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport SchoolEMISSearchForm from './SchoolEMISSearchForm';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"Description\", numeric: false, disablePadding: true, label: \"School EMIS\" },\r\n { id: \"Code\", numeric: false, disablePadding: true, label: \"Code\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select OFO Occupation from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nclass SchoolEMISSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n model: {\r\n SchoolEMIS: \"\",\r\n Code: \"\"\r\n },\r\n keyUpSwitch: false,\r\n }\r\n\r\n this.searchParameters = [\r\n { Name: \"SchoolEMIS\", Value: \"\" },\r\n { Name: \"Code\", Value: \"\" }\r\n ]\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}/>\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(SchoolEMISSearch)\r\n);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function STATSSAAreaCodeSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n STATSSA Area Code\r\n\t\t\t\t\t\t\t\t\r\n props.model.SchoolEMIS = ev.target.value}\r\n labelWidth={labelWidth}\r\n onKeyPress={props.onKeyUp}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../View.css\";\r\nimport \"./../Grid.css\";\r\nimport \"./../Form.css\";\r\nimport \"./../App.css\";\r\nimport SearchView from \"../widgets/SearchView\";\r\nimport { ViewContainer } from \"./../View.jsx\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport STATSSAAreaCodeSearchForm from './STATSSAAreaCodeSearchForm';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"Description\", numeric: false, disablePadding: true, label: \"Description\" },\r\n { id: \"Code\", numeric: false, disablePadding: true, label: \"Stats SA Area Code\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select OFO Occupation from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nclass STATSSAAreaCodeSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n model: {\r\n AreaCode: \"\",\r\n Description: \"\"\r\n },\r\n keyUpSwitch: false,\r\n }\r\n\r\n this.searchParameters = [\r\n { Name: \"AreaCode\", Value: \"\" },\r\n { Name: \"Description\", Value: \"\" }\r\n ]\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n \r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}\r\n\r\n />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(STATSSAAreaCodeSearch)\r\n);","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport SchoolEMISSearch from '../SchoolEMISSearch';\r\nimport STATSSAAreaCodeSearch from '../STATSSAAreaCodeSearch';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nconst utils = new ViewUtils();\r\nexport const AssessorForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n\r\n const updateGPSAddress = (address, form) => {\r\n console.log(address);\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/*
*/}\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"SchoolEMISID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n\r\n {/*
*/}\r\n {/* */}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"STATSSAAreaCodeID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/*
*/}\r\n {/*
*/}\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Assessor.css\";\r\nimport { AssessorForm } from './AssessorForm';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\n\r\nconst assessorRef = React.createRef();\r\n\r\nclass Assessor extends Component {\r\n\r\n state = {\r\n AssessorDetails: {\r\n Person: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\"\r\n }\r\n },\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' },\r\n \r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit},\r\n {\r\n contextMenu: [\r\n { id: \"registrationDetails\", description: \"Registration Details\"},\r\n { id: \"registrationHistory\", description: \"Registration History\" }\r\n ],\r\n id: \"registration\", label: \"Registration\", width: \"120px\", visible: this.props.menuPermissionItem.Edit\r\n },\r\n \r\n {\r\n contextMenu: [\r\n { id: \"skillsProgramme\", description: \"Skills Programme\" },\r\n { id: \"learnership\", description: \"Learnership\" },\r\n { id: \"bursary\", description: \"Bursary\" },\r\n ],\r\n id: 'programs', label: 'Programmes', width: \"120px\", visible: this.props.menuPermissionItem.Edit\r\n },\r\n \r\n { id: 'provider', label: 'Provider', tooltip: '', visible: this.props.menuPermissionItem.Edit },\r\n //{ id: 'idDocument', label: 'ID Document', tooltip: 'Identity Document' },\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relationship Management', visible: this.props.menuPermissionItem.Edit }\r\n \r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ AssessorDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.close();\r\n } else if (\"idDocument\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessorIDDocument',\r\n state: {\r\n AssessorID: this.props.location.state.selection,\r\n AssessorName: `${this.state.AssessorDetails.FirstName} ${this.state.AssessorDetails.Surname}`,\r\n AssessorIDNo: `${this.state.AssessorDetails.IDNo}`\r\n }\r\n })\r\n }else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessorCRM',\r\n state: {\r\n selection: this.props.location.state.selection,\r\n AssessorName: `${this.state.AssessorDetails.FirstName} ${this.state.AssessorDetails.Surname}`,\r\n AssessorIDNo: `${this.state.AssessorDetails.IDNo}`\r\n }\r\n })\r\n } else if (\"provider\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/AssessorProviderSearch',\r\n state: {\r\n AssessorID: this.props.location.state.selection,\r\n AssessorName: `${this.state.AssessorDetails.FirstName} ${this.state.AssessorDetails.Surname}`,\r\n AssessorIDNo: `${this.state.AssessorDetails.IDNo}`\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n if (\"registrationDetails\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/AssessorRegistrationDetails', \r\n state: {\r\n selection: this.props.location.state.selection,\r\n AssessorName: `${this.state.AssessorDetails.FirstName} ${this.state.AssessorDetails.Surname}`,\r\n AssessorIDNo: `${this.state.AssessorDetails.IDNo}`\r\n }\r\n })\r\n } else if (\"registrationHistory\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/AssessorRegistrationHistory',\r\n state: {\r\n AssessorID: this.props.location.state.selection,\r\n AssessorName: this.state.AssessorDetails.FirstName + \" \" + this.state.AssessorDetails.Surname,\r\n AssessorIDNo: `${this.state.AssessorDetails.IDNo}`\r\n }\r\n })\r\n\r\n } else if (\"skillsProgramme\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/AssessorSkillsProgrammeSearch',\r\n state: {\r\n AssessorID: this.props.location.state.selection,\r\n AssessorName: this.state.AssessorDetails.FirstName + \" \" + this.state.AssessorDetails.Surname,\r\n AssessorIDNo: `${this.state.AssessorDetails.IDNo}`\r\n }\r\n })\r\n } else if (\"learnership\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/Assessorlearnerships',\r\n state: {\r\n AssessorID: this.props.location.state.selection,\r\n AssessorName: this.state.AssessorDetails.FirstName + \" \" + this.state.AssessorDetails.Surname,\r\n AssessorIDNo: `${this.state.AssessorDetails.IDNo}`\r\n }\r\n })\r\n } else if (\"bursary\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/AssessorBursarySearch',\r\n state: {\r\n AssessorID: this.props.location.state.selection,\r\n AssessorName: this.state.AssessorDetails.FirstName + \" \" + this.state.AssessorDetails.Surname,\r\n AssessorIDNo: `${this.state.AssessorDetails.IDNo}`\r\n }\r\n })\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/assessorSearch');\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Assessor updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = assessorRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/assessordetails/UpdateAssessor\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n \r\n return (\r\n \r\n

\r\n {\"Assessor \" + (this.state.AssessorDetails.FirstName !== null ? \"> \" + this.state.AssessorDetails.FirstName + \" \" + this.state.AssessorDetails.Surname + (this.state.AssessorDetails.IDNo !== null ? \" - \" + this.state.AssessorDetails.IDNo : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true} config={this.state.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} editPermission = {this.props.menuPermissionItem.Edit} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(Assessor));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport SchoolEMISSearch from '../SchoolEMISSearch';\r\nimport STATSSAAreaCodeSearch from '../STATSSAAreaCodeSearch';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nconst utils = new ViewUtils();\r\nexport const FacilitatorForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n\r\n const updateGPSAddress = (address, form) => {\r\n console.log(address);\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/*
*/}\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"SchoolEMISID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n\r\n {/*
*/}\r\n {/* */}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"STATSSAAreaCodeID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/*
*/}\r\n {/*
*/}\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Facilitator.css\";\r\nimport { FacilitatorForm } from './FacilitatorForm';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\n\r\nconst facilitatorRef = React.createRef();\r\n\r\nclass Facilitator extends Component {\r\n\r\n state = {\r\n FacilitatorDetails: {\r\n Person: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\"\r\n }\r\n },\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' },\r\n \r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit},\r\n {\r\n contextMenu: [\r\n { id: \"registrationDetails\", description: \"Registration Details\"},\r\n { id: \"registrationHistory\", description: \"Registration History\" }\r\n ],\r\n id: \"registration\", label: \"Registration\", width: \"120px\", visible: this.props.menuPermissionItem.Edit\r\n },\r\n \r\n {\r\n contextMenu: [\r\n { id: \"skillsProgramme\", description: \"Skills Programme\" },\r\n { id: \"learnership\", description: \"Learnership\" }\r\n ],\r\n id: 'programs', label: 'Programmes', width: \"120px\", visible: this.props.menuPermissionItem.Edit\r\n },\r\n \r\n { id: 'provider', label: 'Provider', tooltip: '', visible: this.props.menuPermissionItem.Edit },\r\n //{ id: 'idDocument', label: 'ID Document', tooltip: 'Identity Document' },\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relationship Management', visible: this.props.menuPermissionItem.Edit },\r\n { id: 'facilitatorprojects', label: 'Projects', tooltip: 'Projects linked to this client', visible: this.props.menuPermissionItem.View },\r\n \r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ FacilitatorDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.close();\r\n } else if (\"idDocument\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitatorIDDocument',\r\n state: {\r\n FacilitatorID: this.props.location.state.selection,\r\n FacilitatorName: `${this.state.FacilitatorDetails.FirstName} ${this.state.FacilitatorDetails.Surname}`,\r\n FacilitatorIDNo: `${this.state.FacilitatorDetails.IDNo}`\r\n }\r\n })\r\n }else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitatorCRM',\r\n state: {\r\n selection: this.props.location.state.selection,\r\n FacilitatorName: `${this.state.FacilitatorDetails.FirstName} ${this.state.FacilitatorDetails.Surname}`,\r\n FacilitatorIDNo: `${this.state.FacilitatorDetails.IDNo}`\r\n }\r\n })\r\n } else if (\"provider\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/FacilitatorProviderSearch',\r\n state: {\r\n FacilitatorID: this.props.location.state.selection,\r\n FacilitatorName: `${this.state.FacilitatorDetails.FirstName} ${this.state.FacilitatorDetails.Surname}`,\r\n FacilitatorIDNo: `${this.state.FacilitatorDetails.IDNo}`\r\n }\r\n })\r\n } else if (\"facilitatorprojects\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitatorProjects',\r\n state: {\r\n FacilitatorID: this.props.location.state.selection,\r\n FacilitatorName: `${this.state.FacilitatorDetails.FirstName} ${this.state.FacilitatorDetails.Surname}`,\r\n FacilitatorIDNo: `${this.state.FacilitatorDetails.IDNo}`\r\n }\r\n });\r\n } \r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n if (\"registrationDetails\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/FacilitatorRegistrationDetails',\r\n state: {\r\n selection: this.props.location.state.selection,\r\n FacilitatorName: `${this.state.FacilitatorDetails.FirstName} ${this.state.FacilitatorDetails.Surname}`,\r\n FacilitatorIDNo: `${this.state.FacilitatorDetails.IDNo}`\r\n }\r\n })\r\n } else if (\"registrationHistory\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/FacilitatorRegistrationHistory',\r\n state: {\r\n FacilitatorID: this.props.location.state.selection,\r\n FacilitatorName: this.state.FacilitatorDetails.FirstName + \" \" + this.state.FacilitatorDetails.Surname,\r\n FacilitatorIDNo: `${this.state.FacilitatorDetails.IDNo}`\r\n }\r\n })\r\n\r\n } else if (\"skillsProgramme\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/FacilitatorSkillsProgrammeSearch',\r\n state: {\r\n FacilitatorID: this.props.location.state.selection,\r\n FacilitatorName: this.state.FacilitatorDetails.FirstName + \" \" + this.state.FacilitatorDetails.Surname,\r\n FacilitatorIDNo: `${this.state.FacilitatorDetails.IDNo}`\r\n }\r\n })\r\n } else if (\"learnership\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/Facilitatorlearnerships',\r\n state: {\r\n FacilitatorID: this.props.location.state.selection,\r\n FacilitatorName: this.state.FacilitatorDetails.FirstName + \" \" + this.state.FacilitatorDetails.Surname,\r\n FacilitatorIDNo: `${this.state.FacilitatorDetails.IDNo}`\r\n }\r\n })\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/facilitatorSearch');\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Facilitator updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = facilitatorRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/facilitatordetails/UpdateFacilitator\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n \r\n return (\r\n \r\n

\r\n {\"Facilitator \" + (this.state.FacilitatorDetails.FirstName !== null ? \"> \" + this.state.FacilitatorDetails.FirstName + \" \" + this.state.FacilitatorDetails.Surname + (this.state.FacilitatorDetails.IDNo !== null ? \" - \" + this.state.FacilitatorDetails.IDNo : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true} config={this.state.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} editPermission = {this.props.menuPermissionItem.Edit} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(Facilitator));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport SchoolEMISSearch from '../SchoolEMISSearch';\r\nimport STATSSAAreaCodeSearch from '../STATSSAAreaCodeSearch';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nconst utils = new ViewUtils();\r\nexport const ProjectOwnerForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n\r\n const updateGPSAddress = (address, form) => {\r\n console.log(address);\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {/**/}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {/**/}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/*
*/}\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"SchoolEMISID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n\r\n {/*
*/}\r\n {/* */}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"STATSSAAreaCodeID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/*
*/}\r\n {/*
*/}\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./ProjectOwner.css\";\r\nimport { ProjectOwnerForm } from './ProjectOwnerForm';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\n\r\nconst projectownerRef = React.createRef();\r\n\r\nclass ProjectOwner extends Component {\r\n\r\n state = {\r\n ProjectOwnerDetails: {\r\n Person: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\"\r\n }\r\n },\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' },\r\n\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit }\r\n\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ ProjectOwnerDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.close();\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n \r\n }\r\n\r\n close() {\r\n this.props.history.push('/projectownerSearch');\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Project Owner updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = projectownerRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/projectownerdetails/UpdateProjectOwner\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Project Owner \" + (this.state.ProjectOwnerDetails.FirstName !== null ? \"> \" + this.state.ProjectOwnerDetails.FirstName + \" \" + this.state.ProjectOwnerDetails.Surname + (this.state.ProjectOwnerDetails.IDNo !== null ? \" - \" + this.state.ProjectOwnerDetails.IDNo : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true} config={this.state.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} editPermission={this.props.menuPermissionItem.Edit} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(ProjectOwner));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport SchoolEMISSearch from '../SchoolEMISSearch';\r\nimport STATSSAAreaCodeSearch from '../STATSSAAreaCodeSearch';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nconst utils = new ViewUtils();\r\nexport const ConsultantForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n\r\n const updateGPSAddress = (address, form) => {\r\n console.log(address);\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {/**/}\r\n \r\n {/**/}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/*
*/}\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"SchoolEMISID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n\r\n {/*
*/}\r\n {/* */}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"STATSSAAreaCodeID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/*
*/}\r\n {/*
*/}\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Consultant.css\";\r\nimport { ConsultantForm } from './ConsultantForm';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\n\r\nconst consultantRef = React.createRef();\r\n\r\nclass Consultant extends Component {\r\n\r\n state = {\r\n ConsultantDetails: {\r\n Person: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\"\r\n }\r\n },\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' },\r\n \r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit},\r\n //{\r\n // contextMenu: [\r\n // { id: \"registrationDetails\", description: \"Registration Details\"},\r\n // { id: \"registrationHistory\", description: \"Registration History\" }\r\n // ],\r\n // id: \"registration\", label: \"Registration\", width: \"120px\", visible: this.props.menuPermissionItem.Edit\r\n //},\r\n \r\n //{\r\n // contextMenu: [\r\n // { id: \"skillsProgramme\", description: \"Skills Programme\" },\r\n // { id: \"learnership\", description: \"Learnership\" }\r\n // ],\r\n // id: 'programs', label: 'Programmes', width: \"120px\", visible: this.props.menuPermissionItem.Edit\r\n //},\r\n \r\n //{ id: 'provider', label: 'Provider', tooltip: '', visible: this.props.menuPermissionItem.Edit },\r\n ////{ id: 'idDocument', label: 'ID Document', tooltip: 'Identity Document' },\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relationship Management', visible: this.props.menuPermissionItem.Edit }\r\n \r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ ConsultantDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.close();\r\n } else if (\"idDocument\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/consultantIDDocument',\r\n state: {\r\n ConsultantID: this.props.location.state.selection,\r\n ConsultantName: `${this.state.ConsultantDetails.FirstName} ${this.state.ConsultantDetails.Surname}`,\r\n ConsultantIDNo: `${this.state.ConsultantDetails.IDNo}`\r\n }\r\n })\r\n }else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/consultantCRM',\r\n state: {\r\n ConsultantID: this.props.location.state.selection,\r\n ConsultantName: `${this.state.ConsultantDetails.FirstName} ${this.state.ConsultantDetails.Surname}`,\r\n ConsultantIDNo: `${this.state.ConsultantDetails.IDNo}`\r\n }\r\n })\r\n } else if (\"provider\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/ConsultantProviderSearch',\r\n state: {\r\n ConsultantID: this.props.location.state.selection,\r\n ConsultantName: `${this.state.ConsultantDetails.FirstName} ${this.state.ConsultantDetails.Surname}`,\r\n ConsultantIDNo: `${this.state.ConsultantDetails.IDNo}`\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n if (\"registrationDetails\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/ConsultantRegistrationDetails', \r\n state: {\r\n selection: this.props.location.state.selection,\r\n ConsultantName: `${this.state.ConsultantDetails.FirstName} ${this.state.ConsultantDetails.Surname}`,\r\n ConsultantIDNo: `${this.state.ConsultantDetails.IDNo}`\r\n }\r\n })\r\n } else if (\"registrationHistory\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/ConsultantRegistrationHistory',\r\n state: {\r\n ConsultantID: this.props.location.state.selection,\r\n ConsultantName: this.state.ConsultantDetails.FirstName + \" \" + this.state.ConsultantDetails.Surname,\r\n ConsultantIDNo: `${this.state.ConsultantDetails.IDNo}`\r\n }\r\n })\r\n\r\n } else if (\"skillsProgramme\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/ConsultantSkillsProgrammeSearch',\r\n state: {\r\n ConsultantID: this.props.location.state.selection,\r\n ConsultantName: this.state.ConsultantDetails.FirstName + \" \" + this.state.ConsultantDetails.Surname,\r\n ConsultantIDNo: `${this.state.ConsultantDetails.IDNo}`\r\n }\r\n })\r\n } else if (\"learnership\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/Consultantlearnerships',\r\n state: {\r\n ConsultantID: this.props.location.state.selection,\r\n ConsultantName: this.state.ConsultantDetails.FirstName + \" \" + this.state.ConsultantDetails.Surname,\r\n ConsultantIDNo: `${this.state.ConsultantDetails.IDNo}`\r\n }\r\n })\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/consultantSearch');\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Consultant updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = consultantRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/consultantdetails/UpdateConsultant\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n \r\n return (\r\n \r\n

\r\n {\"Consultant \" + (this.state.ConsultantDetails.FirstName !== null ? \"> \" + this.state.ConsultantDetails.FirstName + \" \" + this.state.ConsultantDetails.Surname + (this.state.ConsultantDetails.IDNo !== null ? \" - \" + this.state.ConsultantDetails.IDNo : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true} config={this.state.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} editPermission = {this.props.menuPermissionItem.Edit} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(Consultant));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../crm/Comments\";\r\nimport Documents from \"../crm/Documents\";\r\nimport Emails from \"../crm/Emails\";\r\nimport CommentsDialog from \"../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../crm/EmailDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Consultant\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/ConsultantCRM/GetCRMComments\",\r\n documents: \"api/sims/ConsultantCRM/GetCRMDocuments\",\r\n emails: \"api/sims/ConsultantCRM/GetCRMEmail\",\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/ConsultantCRM/AddCRMComment\",\r\n documents: \"api/sims/ConsultantCRM/AddCRMDocument\",\r\n emails: \"api/sims/ConsultantCRM/AddCRMEmail\",\r\n }\r\n}\r\n\r\nclass ConsultantCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: \"1\",\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Consultant',\r\n state: { selection: this.props.location.state.ConsultantID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/Consultant/getCRMDocument?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/consultantcrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n }\r\n\r\n SetCommunicationType(values) {\r\n\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {`Consultants > ${this.props.location.state.ConsultantName} > CRM`}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n { this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" \r\n />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({emailAddress: email, emailSubject: subject}, ()=>{\r\n this.setState({emailAddress: email, emailSubject: subject})\r\n })\r\n \r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n \r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Consultant Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Consultant Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.ConsultantID} />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Consultant Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails} \r\n moduleName={config.moduleName} \r\n selection={this.props.location.state.ConsultantID} \r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.ConsultantID} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.ConsultantID}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.ConsultantID}\r\n showMultilineToAddress={true}\r\n />\r\n
\r\n }\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(ConsultantCRM));\r\n","import React from 'react';\r\nimport { usePromiseTracker } from \"react-promise-tracker\";\r\nimport Loader from 'react-loader-spinner';\r\nimport \"./loader.css\"\r\n\r\nexport default function LoadingIndicator(props){\r\n const { promiseInProgress } = usePromiseTracker();\r\n\r\n return(\r\n promiseInProgress &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n};","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport EnhancedToolbar from './Toolbar';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { trackPromise } from 'react-promise-tracker';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n DatePicker,\r\n} from '@material-ui/pickers';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst CustomSwitch = withStyles({\r\n switchBase: {\r\n color: \"#003F6B\",\r\n '&$checked': {\r\n color: \"#003F6B\"\r\n },\r\n '&$checked + $track': {\r\n backgroundColor:\"#808080\",\r\n },\r\n },\r\n checked: {},\r\n track: {},\r\n })(Switch);\r\n\r\nfunction desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map(el => el[0]);\r\n}\r\n\r\nfunction getSorting(order, orderBy) {\r\n return order === 'desc' ? (a, b) => desc(a, b, orderBy) : (a, b) => -desc(a, b, orderBy);\r\n}\r\n\r\nfunction EnhancedTableHead(props) {\r\n const { classes, onSelectAllClick, order, orderBy, numSelected, rowCount, onRequestSort, headCells } = props;\r\n const createSortHandler = property => event => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n props.multiSelect === true ?\r\n \r\n 0 && numSelected < rowCount}\r\n checked={numSelected === rowCount}\r\n onChange={onSelectAllClick}\r\n inputProps={{ 'aria-label': 'select all' }}\r\n />\r\n : \r\n\r\n }\r\n {headCells.map(headCell => (\r\n \r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.oneOf(['asc', 'desc']).isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%',\r\n marginTop: theme.spacing(3),\r\n },\r\n paper: {\r\n width: '100%',\r\n height: \"100%\",\r\n marginBottom: theme.spacing(2),\r\n },\r\n scrollPadding: {\r\n padding: '8px !important'\r\n },\r\n noScrollPadding: {\r\n padding: '0 !important',\r\n width: '1px !important'\r\n },\r\n tableBody: {\r\n display: 'block',\r\n height: 'calc(100% - 64px)',\r\n overflowY: 'auto'\r\n },\r\n tableHeaderCell: {\r\n overflow: 'inherit'\r\n },\r\n tableHead: {\r\n display: 'block',\r\n height: '64px',\r\n overflow: 'inherit'\r\n },\r\n tableWrapper: {\r\n height: '100%'\r\n },\r\n table: {\r\n height: '100%'\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n }\r\n}));\r\n\r\nexport default function EnhancedTable(props) {\r\n const utils = new ViewUtils();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('id');\r\n const [selected, setSelected] = React.useState([]);\r\n const [totalNumberOfRows, setTotalNumberOfRows] = React.useState(0);\r\n const [page, setPage] = React.useState(0);\r\n const [rows, setRows] = React.useState([]);\r\n const [hasVScroll, setHasVScroll] = React.useState(true);\r\n const [dense, setDense] = React.useState(true);\r\n const [fetchEnabled, setFetchEnabled] = React.useState(utils.isNull(props.autoFetchData) || props.autoFetchData === true);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const { headCells } = props;\r\n const { actionsToolbar } = props;\r\n const [searchParameters, setSearchParameters] = React.useState(props.searchParameters);\r\n\r\n React.useEffect(() => {\r\n if (fetchEnabled && !utils.isNull(props.searchParameters)) {\r\n setSearchParameters(props.searchParameters);\r\n utils.invokeUrl(props.dataUrl + \"?request=\" + utils.doGetRequestJson(page, rowsPerPage, props.searchParameters, props.paged), (data) => {\r\n\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n setRows(result.Data);\r\n setTotalNumberOfRows(result.TotalNumberOfRows);\r\n\r\n if (!utils.isNull(props.onDataArrive)) {\r\n props.onDataArrive(result);\r\n }\r\n\r\n updateScrollBarPadding();\r\n }, null);\r\n trackPromise(\r\n fetch()\r\n .then(res => res.json())\r\n .then((data) => {\r\n }));\r\n }\r\n\r\n setFetchEnabled(true);\r\n }, [props.searchParameters]);\r\n\r\n function updateScrollBarPadding() {\r\n var tbody = document.getElementById('mainTableBody');\r\n if (tbody !== null && typeof tbody !== 'undefined') {\r\n setHasVScroll(tbody.scrollHeight > tbody.clientHeight);\r\n }\r\n }\r\n\r\n function getRequestJson(currentPage, curretRowsPerPage, paged) {\r\n return utils.doGetRequestJson(currentPage, curretRowsPerPage, searchParameters, paged);\r\n }\r\n\r\n function handleRequestSort(event, property) {\r\n const isDesc = orderBy === property && order === 'desc';\r\n setOrder(isDesc ? 'asc' : 'desc');\r\n setOrderBy(property);\r\n }\r\n\r\n function handleSelectAllClick(event) {\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map(n => n.name);\r\n setSelected(newSelecteds);\r\n props.onSelectionChange(newSelecteds);\r\n return;\r\n }\r\n\r\n setSelected([]);\r\n props.onSelectionChange([]);\r\n }\r\n\r\n function doHandleClick(event, id) {\r\n\r\n const selectedIndex = selected.indexOf(id);\r\n let newSelected = [];\r\n\r\n if (utils.isNull(id)) {\r\n console.warn(\"invalid state - NULL row ID\");\r\n return;\r\n }\r\n\r\n if (props.multiSelect === true) {\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, id);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n } else {\r\n newSelected.push(id);\r\n }\r\n\r\n let selectedRows = [];\r\n for (var i = 0; i < rows.length; i++) {\r\n let row = rows[i];\r\n for (var j = 0; j < newSelected.length; j++) {\r\n if (row.Id === newSelected[j]) {\r\n selectedRows.push(row);\r\n }\r\n }\r\n }\r\n\r\n setSelected(newSelected);\r\n if (!utils.isNull(props.onSelectionChange)) {\r\n props.onSelectionChange(selectedRows);\r\n }\r\n }\r\n\r\n function handleClick(event, id) {\r\n if (!utils.isNull(props.onCellSelectionChange)) {\r\n return;\r\n }\r\n\r\n doHandleClick(event, id);\r\n }\r\n\r\n function handleCellClick(event, id, headCell) {\r\n if (headCell.contentType !== \"document\") {\r\n // TODO : Evaluate if this call is necessary\r\n doHandleClick(event, id);\r\n }\r\n\r\n if (!utils.isNull(props.onCellSelectionChange)) {\r\n props.onCellSelectionChange(id, headCell);\r\n }\r\n }\r\n\r\n function handleChangePage(event, newPage) {\r\n utils.invokeUrl(props.dataUrl + \"?request=\" + getRequestJson(newPage, rowsPerPage, true), (data) => {\r\n setRows(data.Data);\r\n setPage(newPage);\r\n\r\n if (!utils.isNull(props.onDataArrive)) {\r\n props.onDataArrive(data);\r\n }\r\n\r\n updateScrollBarPadding();\r\n }, null);\r\n }\r\n\r\n function handleChangeRowsPerPage(event) {\r\n var curretRowsPerPage = + event.target.value;\r\n utils.invokeUrl(props.dataUrl + \"?request=\" + getRequestJson(0, curretRowsPerPage, true), (result) => {\r\n setRows(result.Data);\r\n setRowsPerPage(curretRowsPerPage);\r\n setPage(0);\r\n\r\n if (!utils.isNull(props.onDataArrive)) {\r\n props.onDataArrive(result);\r\n }\r\n\r\n updateScrollBarPadding();\r\n }, null);\r\n }\r\n\r\n function handleChangeDense(event) {\r\n setDense(event.target.checked);\r\n updateScrollBarPadding();\r\n }\r\n \r\n function handleCellValueChange(value, row, column) {\r\n let editedRow = null;\r\n\r\n for (let i = 0; i < rows.length; i++) {\r\n if (row === rows[i].Id) {\r\n editedRow = rows[i];\r\n }\r\n }\r\n\r\n if (editedRow !== null) {\r\n editedRow[column] = value;\r\n\r\n if (!utils.isNull(props.cellValueChangeHandler)) {\r\n props.cellValueChangeHandler(editedRow, column);\r\n }\r\n }\r\n }\r\n\r\n const isSelected = id => selected.indexOf(id) !== -1;\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {stableSort(rows, getSorting(order, orderBy)).map((row, index) => {\r\n const isItemSelected = isSelected(row.Id);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n let counter = 0;\r\n\r\n return (\r\n handleClick(event, row.Id)}\r\n role=\"checkbox\"\r\n aria-checked={isItemSelected}\r\n tabIndex={-1}\r\n key={row.Id}\r\n selected={isItemSelected}\r\n >\r\n {\r\n props.multiSelect === true ?\r\n \r\n \r\n : \r\n\r\n }\r\n {headCells.map(headCell => (\r\n counter++ === headCells.length - 1 && actionsToolbar !== null && typeof actionsToolbar !== \"undefined\" ?\r\n \r\n props.buttonClickHandler(buttonId)} config={actionsToolbar} />\r\n :\r\n headCell.numeric === true ?\r\n handleCellClick(event, row.Id, headCell)}\r\n key={headCell.id}>\r\n \r\n :\r\n handleCellClick(event, row.Id, headCell)}\r\n key={headCell.id}>\r\n \r\n \r\n\r\n ))}\r\n\r\n \r\n \r\n\r\n \r\n );\r\n })}\r\n \r\n
\r\n
\r\n {props.paged === false ? \"\" : }\r\n\r\n
\r\n }\r\n label=\"Dense\"\r\n />\r\n
\r\n );\r\n}\r\n\r\nclass TableCellContent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n contentValue: props.contentValue,\r\n contentType: props.contentType,\r\n className: props.className,\r\n options: [],\r\n optionsLoaded: false\r\n }\r\n }\r\n\r\n getFormattedDate = (date) => {\r\n let month = date.getMonth() < 10 ? '0' + date.getMonth() : date.getMonth();\r\n let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();\r\n let year = date.getFullYear();\r\n\r\n return year + '/' + month + '/' + day;\r\n }\r\n\r\n handleDateChange = date => {\r\n this.setState({ contentValue: this.getFormattedDate(date) });\r\n this.props.cellChangeHandler(this.getFormattedDate(date), this.props.row, this.props.column);\r\n };\r\n\r\n handleValueChange(event) {\r\n this.setState({ contentValue: event.target.value });\r\n this.props.cellChangeHandler(event.target.value, this.props.row, this.props.column);\r\n };\r\n \r\n handleSelectValueChange(event) {\r\n let objectReferenceValue = null;\r\n let value = event.target.value;\r\n\r\n if (!utils.isNull(this.state.options)) {\r\n for (let i = 0; i < this.state.options.length; i++) {\r\n if (value === this.state.options[i].Id) {\r\n objectReferenceValue = this.state.options[i];\r\n }\r\n }\r\n }\r\n\r\n this.setState({ contentValue: objectReferenceValue });\r\n this.props.cellChangeHandler(objectReferenceValue, this.props.row, this.props.column);\r\n };\r\n\r\n componentDidMount() {\r\n if (!utils.isNull(this.props.editor) && !utils.isNull(this.props.editor.dataUrl)\r\n && !this.state.optionsLoaded) {\r\n utils.invokeUrl(this.props.editor.dataUrl, (data) => {\r\n this.setState({ options: data });\r\n }, null);\r\n\r\n this.setState({ optionsLoaded: true });\r\n }\r\n }\r\n\r\n render() {\r\n let displayValue;\r\n\r\n const linkStyle = {\r\n cursor: 'pointer',\r\n textDecoration: 'underline'\r\n }\r\n\r\n if (!utils.isNull(this.props.editor) && this.props.selected) {\r\n if (this.props.editor.type === \"TEXT\") {\r\n displayValue =\r\n this.handleValueChange(event)}\r\n margin=\"normal\"\r\n variant=\"outlined\">\r\n \r\n } else if (this.props.editor.type === \"DATE\") {\r\n displayValue =\r\n \r\n \r\n {this.getFormattedDate()}}\r\n onChange={this.handleDateChange}\r\n inputVariant=\"outlined\"\r\n size=\"small\"\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n style={{minWidth: \"170px\"}}\r\n />\r\n \r\n \r\n } else if (this.props.editor.type === \"SELECT\") {\r\n displayValue =\r\n this.handleSelectValueChange(event)}\r\n margin=\"normal\"\r\n variant=\"outlined\">\r\n {\r\n this.props.editor.allowEmptyValue === true ?\r\n \r\n None\r\n : \r\n }\r\n {this.state.options.map(option => (\r\n {utils.isNull(option.Description) ? \"\" : option.Description.trim()}\r\n ))}\r\n \r\n }\r\n } else {\r\n if (this.state.contentType !== 'undefined' && this.state.contentType == 'document') {\r\n displayValue = {this.state.contentValue}\r\n }\r\n else {\r\n displayValue = this.state.contentValue;\r\n\r\n if (!utils.isNull(displayValue) && typeof displayValue === 'object') {\r\n displayValue = displayValue.Description;\r\n }\r\n }\r\n }\r\n\r\n return utils.isNull(displayValue) || displayValue.length === 0 ? \"\" : displayValue;\r\n }\r\n}","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function BDASearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Legal Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.organisationLegalName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Trade Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.organisationTradeName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n SDL Number\r\n\t\t\t\t\t\t\t\t\r\n props.model.OrganisationSdlNUmber = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./bda.css\";\r\nimport EnhancedTable from '../../widgets/Table';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport BDASearchForm from './BDASearchForm';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nconst headCells = [\r\n { id: 'OrganisationLegalName', numeric: false, disablePadding: true, label: 'Organisation Legal Name' },\r\n { id: 'OrganisationSDLNUmber', numeric: false, disablePadding: true, label: 'Organisation SDL Number' },\r\n { id: 'OrganisationTradeName', numeric: false, disablePadding: true, label: 'Organisation Trade Name' }\r\n\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst handler = (state) => {\r\n return {\r\n //isLoading: state.learner.isLoading,\r\n //message: state.learner.message\r\n };\r\n};\r\n\r\nclass BDASearch extends Component {\r\n\r\n state = {\r\n model: {},\r\n searchParameters: [{ Name: \"OrganisationTradeName\", Value: \"\" },\r\n { Name: \"OrganisationSDLNUmber\", Value: \"\" },\r\n { Name: \"OrganisationLegalName\", Value: \"\" }],\r\n selection: []\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"add\" === buttonId) {\r\n this.props.history.push('/external-moderator');\r\n } else {\r\n this.props.history.push({\r\n pathname: '/external-moderator',\r\n state: { selection: this.state.selection[0] }\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.message !== this.props.message && this.props.message) {\r\n this.setState({ message: this.props.message });\r\n }\r\n }\r\n \r\n search() {\r\n this.setState({\r\n searchParameters: [{ Name: \"OrganisationTradeName\", Value: this.state.model.organisationTradeName },\r\n { Name: \"OrganisationSDLNUmber\", Value: this.state.model.organisationSDLNUmber },\r\n { Name: \"OrganisationLegalName\", Value: this.state.model.organisationLegalName }]\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

\r\n BDA\r\n

\r\n

\r\n {this.state.message}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={typeof this.state.selection !== 'undefined' && this.state.selection !== null && this.state.selection.length > 0} config={toolbarConfig}/>\r\n this.setState({ selection: selection})}\r\n dataUrl=\"api/indicium/bda/search\" paged={false}\r\n searchParameters={this.state.searchParameters} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BDASearch)\r\n);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function PersonSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n ID Number\r\n\t\t\t\t\t\t\t\t\r\n props.model.IDNo = ev.target.value}\r\n labelWidth={labelWidth}\r\n onKeyPress={props.onKeyUp}\r\n />\r\n \r\n \r\n \r\n \r\n Surname\r\n\t\t\t\t\t\t\t\t\r\n props.model.Surname = ev.target.value}\r\n labelWidth={labelWidth}\r\n onKeyPress={props.onKeyUp}\r\n />\r\n \r\n \r\n \r\n \r\n First Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.FirstName = ev.target.value}\r\n labelWidth={labelWidth}\r\n onKeyPress={props.onKeyUp}\r\n />\r\n \r\n \r\n \r\n \r\n Middle Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.MiddleName = ev.target.value}\r\n labelWidth={labelWidth}\r\n onKeyPress={props.onKeyUp}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Person.css\";\r\nimport PersonSearchForm from './PersonSearchForm';\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport CardLayout from '../../widgets/Card';\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'MiddleName', numeric: false, disablePadding: true, label: 'Middle Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IdNumber', numeric: false, disablePadding: true, label: 'ID Number' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\n\r\nclass PersonSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n console.log(SearchView);\r\n }\r\n\r\n state = {\r\n model: {},\r\n searchParameters: [{ Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }],\r\n selection: [],\r\n keyUpSwitch: false\r\n };\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(PersonSearch)\r\n);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\n/*import { LookupField } from '../../../widgets/LookupField';*/\r\n/*import EmployerSearch from '../../employer/EmployerSearch';*/\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\n\r\n\r\nexport default function GrantSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n {/**/}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"ClientID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.mode != 'lookup' ?\r\n : null\r\n }\r\n \r\n
\r\n
\r\n \r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport GrantSearchForm from './GrantSearchForm';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'ProjectNumber', numeric: false, disablePadding: false, label: 'Project Number' },\r\n { id: 'FinancialYear', numeric: false, disablePadding: false, label: 'Time Period' },\r\n { id: 'DiscretionaryGrantType', numeric: false, disablePadding: false, label: 'Intervention Type' },\r\n/* { id: 'VendorSDLNumber', numeric: false, disablePadding: false, label: 'Vendor SDL Number' },*/\r\n { id: 'SocioEconomicStatus', numeric: false, disablePadding: false, label: 'Employment' },\r\n { id: 'Programme', numeric: false, disablePadding: false, label: 'Intervention' }\r\n];\r\n\r\n\r\nclass GrantSetupSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n \r\n\r\n this.state = {\r\n selectedGrant: null,\r\n model: {\r\n FinancialYearID: null,\r\n DiscretionaryGrantTypeID: null,\r\n Client: null\r\n },\r\n keyUpSwitch: false\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Create New', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit, disabled: utils.isNull(this.state.selectedGrant) },\r\n { id: 'delete', label: '', tooltip: 'Remove Grant', icon: 'DeleteIcon', visible: this.props.menuPermissionItem.Delete, disabled: utils.isNull(this.state.selectedGrant) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedGrant: selection })\r\n } else {\r\n this.setState({ selectedGrant: null })\r\n }\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"delete\", selection === null || selection.length === 0);\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values, selectedGrant: null });\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"delete\", true);\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: 0,\r\n hideFields: true\r\n }\r\n })\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: this.state.selectedGrant[0].Id,\r\n hideFields: false\r\n }\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n this.handleFormValueChange(values)} mode={this.props.mode} />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(GrantSetupSearch));\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport GrantSetupSearch from '../grants/grantsetup/GrantSetupSearch';\r\n\r\nexport default function LearnerSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n {props.mode !== \"lookup\" &&
\r\n \r\n {\r\n form.setLookupSelection(\"ProjectID\", value);\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Learner.css\";\r\nimport LearnerSearchForm from './LearnerSearchForm';\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: false, label: 'First Name' },\r\n { id: 'MiddleName', numeric: false, disablePadding: false, label: 'Middle Name' },\r\n { id: 'Surname', numeric: false, disablePadding: false, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: false, label: 'ID Number' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n let model = !utils.isNull(this.props.programmeId) ?\r\n {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n id: this.props.programmeId\r\n }\r\n :\r\n {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\"\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n selection: [],\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Capture New Learner', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Update Current Learner', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit }\r\n\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n this.searchParameters = this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"ProjectID\", Value: null },\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n ]\r\n :\r\n [\r\n { Name: \"ProjectID\", Value: null },\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n ]\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n mode={this.props.mode}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerSearch));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function QualificationSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./QualificationSetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport QualificationSetupSearchForm from './QualificationSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'Qualification ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: true, label: 'Qualification Title' }\r\n];\r\n\r\nclass QualificationSetupSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n\r\n this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" }\r\n ]\r\n :\r\n [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" },\r\n ]\r\n\r\n let model = !utils.isNull(this.props.programmeId) ?\r\n {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationID: \"\",\r\n id: this.props.programmeId\r\n }\r\n :\r\n {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\"\r\n }\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n if (!utils.isNull(props.personId)) {\r\n model.PersonID = props.personId;\r\n this.searchParameters.push({Name: \"PersonID\", Value: props.personId})\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: '', tooltip: 'Remove Qualification', icon: 'DeleteIcon', disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n clearSearch(e) {\r\n this.setState({\r\n model: {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationID: \"\",\r\n id: this.props.programmeId\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.clearSearch(e) }} allowClear={this.props.allowClear}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(QualificationSetupSearch));\r\n\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function OFOSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n OFO Code\r\n\t\t\t\t\t\t\t\t\r\n props.model.OFOCode = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n OFODescription\r\n\t\t\t\t\t\t\t\t\r\n props.model.OFODescription = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport OFOSearchForm from './OFOSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"OFOCode\", numeric: false, disablePadding: true, label: \"OFO Code\" },\r\n { id: \"OFODescription\", numeric: false, disablePadding: true, label: \"OFO Description\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select OFO Occupation from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nconst searchParameters = [\r\n { Name: \"OFOCode\", Value: \"\" },\r\n { Name: \"OFODescription\", Value: \"\" }\r\n]\r\n\r\nclass OFOSearch extends Component {\r\n state = {\r\n model: {\r\n OFOCode: \"\",\r\n OFODescription: \"\"\r\n },\r\n keyUpSwitch: false\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(OFOSearch)\r\n);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function InstitutionSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Institution Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.InstitutionName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Institution Type\r\n\t\t\t\t\t\t\t\t\r\n props.model.InstitutionType = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport InstitutionSearchForm from './InstitutionSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"InstitutionName\", numeric: false, disablePadding: true, label: \"Institution Name\" },\r\n { id: \"InstitutionType\", numeric: false, disablePadding: true, label: \"Institution Type\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select Institution from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nconst searchParameters = [\r\n { Name: \"InstitutionName\", Value: \"\" },\r\n { Name: \"InstitutionType\", Value: \"\" }\r\n]\r\n\r\nclass InstitutionSearch extends Component {\r\n state = {\r\n model: {\r\n InstitutionName: \"\",\r\n InstitutionType: \"\"\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(InstitutionSearch)\r\n);","import React from 'react';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./LearnerDocuments.css\"\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst headCells = [\r\n { id: 'HighestEducationLevel', numeric: false, disablePadding: true, label: 'Highest Education Level' },\r\n { id: 'InstitutionName', numeric: false, disablePadding: true, label: 'Institution Name' },\r\n { id: 'EducationTitle', numeric: false, disablePadding: true, label: 'Education Title' },\r\n { id: 'UploadedBy', numeric: false, disablePadding: true, label: 'Uploaded By' },\r\n { id: 'UploadDate', numeric: false, disablePadding: true, label: 'Upload Date' },\r\n { id: 'DocumentName', numeric: false, disablePadding: true, label: 'Document Name', contentType: 'document' }\r\n]\r\n\r\nexport default function EducationalHistoryDocuments(props, ref) {\r\n return (\r\n { props.handleCell(rowid, columnid) }} searchParameters={[{ Name: `${props.moduleName}ID`, Value: props.selection }]} paged={false}\r\n dataUrl={props.documentsDataUrl !== null ? props.documentsDataUrl : null} \r\n />\r\n );\r\n}\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nexport default function LearnerDocumentDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [filename, setFilename] = React.useState(props.fileName);\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n const [entityId, setEntityId] = React.useState(props.EntityID);\r\n const [highestEducation, setHighestEducation] = React.useState('');\r\n const [educationTitle, setEeducationTitle] = React.useState('');\r\n const [institute, setInstitute] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.EntityID)) {\r\n setEntityId(props.EntityID);\r\n }\r\n if (!utils.isNull(props.HighestEducation)) {\r\n setHighestEducation(props.HighestEducation);\r\n }\r\n if (!utils.isNull(props.EducationTitle)) {\r\n setEeducationTitle(props.EducationTitle);\r\n }\r\n if (!utils.isNull(props.Institute)) {\r\n setInstitute(props.Institute);\r\n }\r\n }, [props.EntityID]);\r\n\r\n const handleClose = (save, cancel) => {\r\n clearValues();\r\n setOpen(false);\r\n props.closeHandler(save, cancel)\r\n };\r\n\r\n const clearValues = () => {\r\n if (!utils.isNull(props.form)) {\r\n props.form.values[\"EducationTitle\"] = null;\r\n props.form.values[\"HighestEducationLevelID\"] = null;\r\n props.form.values[\"InstitutionID\"] = { Id: null, Description: '' };\r\n setFilename(null);\r\n props._setFilename(null);\r\n setSize(null);\r\n setBase64(null);\r\n setType(null);\r\n }\r\n }\r\n\r\n\r\n const cancel = () => {\r\n clearValues();\r\n handleClose(false, true);\r\n };\r\n\r\n const save = () => {\r\n\r\n let data = {};\r\n data.OriginalFileName = filename;\r\n data.EntityID = entityId;\r\n data.EducationTitle = props.EducationTitle;\r\n data.HighestEducation = props.HighestEducation.Id;\r\n data.Institute = props.Institute.Id;\r\n data.Document = {};\r\n data.Document.name = filename;\r\n data.Document.size = size;\r\n data.Document.type = type;\r\n data.Document.base64 = base64;\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n props._setFilename(data.name);\r\n console.log(\"learnerDOC\");\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {!utils.isNull(props.HighestEducation) && (\r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport SchoolEMISSearch from '../SchoolEMISSearch';\r\nimport STATSSAAreaCodeSearch from '../STATSSAAreaCodeSearch';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport OFOSearch from '../program/OFOSearch';\r\nimport InstitutionSearch from '../program/InstitutionSearch';\r\nimport Button from '@material-ui/core/Button';\r\nimport EducationalHistoryDocuments from \"./EducationalHistoryDocuments\";\r\nimport LearnerDocumentDialog from \"./LearnerDocumentDialog\";\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const LearnerForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [documentsDialogOpen, setdocumentsDialogOpen] = React.useState(false);\r\n const [EHdocumentsDialogOpen, setEHdocumentsDialogOpen] = React.useState(false);\r\n const [DocURL, setDocURL] = React.useState(null);\r\n const [showTable, setshowTable] = React.useState(true);\r\n const [ehDocURL, setehDocURL] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n\r\n const [showLeanerDialog, setShowLeanerDialog] = React.useState(false);\r\n const [showExperientialDialog, setShowExperientialDialog] = React.useState(false);\r\n\r\n\r\n const [leanerFileName, setLeanerFileName] = React.useState('');\r\n const [experientFileName, setExperientFileName] = React.useState('');\r\n\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n if (newValue == 3) {\r\n setDocURL(\"api/sims/learnerdetails/GetPostSchoolDocuments\");\r\n }\r\n else {\r\n setDocURL(null);\r\n setehDocURL(null);\r\n }\r\n };\r\n\r\n const setDocumentDialogTabs = (type) => {\r\n //setShowLeanerDialog(false)\r\n setShowExperientialDialog(false)\r\n //if (type === 'showLeanerDialog') {\r\n // setShowLeanerDialog(true)\r\n //} else\r\n if (type === 'showExperientialDialog') {\r\n setShowExperientialDialog(true)\r\n } else {\r\n\r\n }\r\n }\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n const updateGPSAddress = (address, form) => {\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n function getDescription(values, form) {\r\n if (values !== undefined && values !== null) {\r\n if (values[\"SecondDescription\"] !== undefined) {\r\n form.values[\"QualificationTitle\"] = values[\"SecondDescription\"];\r\n }\r\n }\r\n }\r\n\r\n function getOFODescription(values, form) {\r\n if (values !== undefined && values !== null) {\r\n if (values[\"SecondDescription\"] !== undefined) {\r\n form.values[\"LinkedOFODescription\"] = values[\"SecondDescription\"];\r\n }\r\n }\r\n }\r\n\r\n const config = {\r\n moduleName: \"Learner\",\r\n\r\n dataUrls: {\r\n documents: null,\r\n },\r\n\r\n postUrls: {\r\n documents: \"api/sims/learnerdetails/AddEducationHistoryDocument\"\r\n }\r\n };\r\n\r\n\r\n const setDialogOpen = () => {\r\n setdocumentsDialogOpen(true);\r\n };\r\n\r\n const setehDialogOpen = () => {\r\n setEHdocumentsDialogOpen(true);\r\n };\r\n\r\n const setAddEducationHistoryFormVisible = () => {\r\n setshowTable(false);\r\n setShowLeanerDialog(true);\r\n };\r\n\r\n const handleCellSelect = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/sims/learnerdetails/getEvidenceofQualification?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n };\r\n\r\n const postUploadHandler = (save, cancel) => {\r\n //Successful upload\r\n if (save === true) {\r\n setshowTable(false);\r\n setdocumentsDialogOpen(false);\r\n setEHdocumentsDialogOpen(false);\r\n setshowTable(true);\r\n setShowLeanerDialog(false);\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n setdocumentsDialogOpen(false);\r\n setEHdocumentsDialogOpen(false);\r\n setshowTable(true);\r\n setShowLeanerDialog(false);\r\n }\r\n //Error on upload\r\n else {\r\n setdocumentsDialogOpen(false);\r\n setEHdocumentsDialogOpen(false);\r\n }\r\n };\r\n\r\n const checkEducationHistoryCheck = () => {\r\n return showLeanerDialog ? 'block' : 'none'\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n { setDocumentDialogTabs('showLeanerDialog') }} label=\"Educational History\" {...a11yProps(3)} style={{ color: form.fieldParentErrors[3] === true ? \"red\" : null, fontSize: 12, fontWeight: 500 }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {/**/}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"InstitutionID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n\r\n
\r\n postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={form.values[\"IDNo\"]}\r\n form={form}\r\n buttonLabel={\"Evidence of Qualification\"}\r\n EducationTitle={form.values[\"EducationTitle\"]}\r\n HighestEducation={form.values[\"HighestEducationLevelID\"]}\r\n Institute={form.values[\"InstitutionID\"]}\r\n fileName={leanerFileName}\r\n _setFilename={(name) => { setLeanerFileName(name) }}\r\n />\r\n
\r\n
\r\n\r\n {/* */}\r\n

\r\n {showTable == true && (\r\n \r\n \r\n handleCellSelect(rowid, headCell)}\r\n documentsDataUrl={DocURL} moduleName={config.moduleName} selection={form.values[\"IDNo\"]} />\r\n \r\n )}\r\n\r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n form.setLookupSelection(\"QualificationID\", values)} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Learner.css\";\r\nimport { LearnerForm } from './LearnerForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\n\r\nconst learnerRef = React.createRef();\r\nclass Learner extends Component {\r\n\r\n state = {\r\n LearnerDetails: {\r\n FirstName: \"\",\r\n Surname: \"\"\r\n },\r\n title: \"\",\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' },\r\n\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit },\r\n {\r\n contextMenu: [\r\n { id: \"registrationSkillsProgramme\", description: \"Skills Programme\" },\r\n { id: \"registrationLearnerships\", description: \"Learnerships\" },\r\n //{ id: \"registrationInternships\", description: \"Internships\" },\r\n { id: \"registrationBursaries\", description: \"Bursaries\" },\r\n //{ id: \"registrationAET\", description: \"AET\" },\r\n //{ id: \"registrationFETPlacement\", description: \"TVET Placement\" },\r\n //{ id: \"registrationCandidacyProgramme\", description: \"Candidacy Programme\" },\r\n //{ id: \"registrationTrades\", description: \"Trades\" }\r\n { id: \"registrationAbsorption\", description: \"Absorption\" },\r\n { id: \"registrationSponsorship\", description: \"Sponsorship\" },\r\n { id: \"registrationEnterpriseDevelopment\", description: \"Enterprise Development\" },\r\n { id: \"registrationSupplierDevelopment\", description: \"Supplier Development\" }\r\n ],\r\n id: 'registrations', label: 'REGISTRATIONS', tooltip: 'Registered Programmes'\r\n },\r\n {\r\n contextMenu: [\r\n { id: \"assessmentsSkillsProgramme\", description: \"Skills Programme\" },\r\n { id: \"assessmentsLearnerships\", description: \"Learnerships\" },\r\n { id: \"assessmentsBursary\", description: \"Bursaries\" }\r\n ],\r\n id: 'assessments', label: 'ASSESSMENTS', tooltip: 'Assessed Programmes'\r\n },\r\n {\r\n contextMenu: [\r\n { id: \"achievementsUnitStandards\", description: \"Unit Standards\" },\r\n { id: \"achievementsQualifications\", description: \"Qualifications\" },\r\n { id: \"achievementsSkillsProgramme\", description: \"Skills Programme\" },\r\n { id: \"achievementsLearnerships\", description: \"Learnerships\" }\r\n ],\r\n id: 'achievements', label: 'ACHIEVEMENTS', tooltip: 'Achieved Programmes'\r\n },\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relations Management' },\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ LearnerDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learnerCRM',\r\n state: {\r\n LearnerID: this.state.LearnerDetails.ID,\r\n LearnerName: `${this.state.LearnerDetails.FirstName} ${this.state.LearnerDetails.Surname}`\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n if (\"registrationSkillsProgramme\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerSkillsProgrammeSearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"registrationAbsorption\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerAbsorptionSearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"registrationSponsorship\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerSponsorshipSearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"registrationEnterpriseDevelopment\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerEnterpriseDevelopmentSearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"registrationSupplierDevelopment\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerSupplierDevelopmentSearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"registrationBursaries\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerBursarySearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"registrationLearnerships\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerLearnershipSearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"registrationTrades\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerTradeSearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"registrationInternships\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerInternshipsSearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"registrationAET\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerAETSearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"registrationFETPlacement\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerFETSearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"registrationCandidacyProgramme\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerCandidacySearch',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"achievementsLearnerships\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerLearnershipAchievements',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"achievementsSkillsProgramme\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerSkillsProgrammeAchievements',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"achievementsQualifications\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerQualificationAchievements',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"achievementsUnitStandards\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerUnitStandardAchievements',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"assessmentsLearnerships\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerLearnershipAssessments',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"assessmentsSkillsProgramme\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerSkillsProgrammeAssessment',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n else if (\"assessmentsBursary\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/LearnerBursaryAssessment',\r\n state: {\r\n learnerID: this.state.LearnerDetails.ID,\r\n learnerNames: this.state.LearnerDetails.FirstName + \" \" + this.state.LearnerDetails.Surname\r\n }\r\n })\r\n }\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Learner updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = learnerRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/learnerdetails/UpdateLearner\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/learners');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Learner \" + (this.state.LearnerDetails.FirstName !== null ? \"> \" + this.state.LearnerDetails.FirstName + (this.state.LearnerDetails.Surname !== null ? \" \" + this.state.LearnerDetails.Surname : \"\") : \"> Add\")}\r\n

\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={false}\r\n config={this.state.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} editPermission={this.props.menuPermissionItem.Edit} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(Learner));\r\n\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\nconst utils = new ViewUtils();\r\nexport default function LearnerCRMBulkUploadDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n\r\n const handleClose = (save, cancel) => {\r\n setOpen(false);\r\n props.closeHandler(save, cancel)\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(false, true);\r\n };\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n Outstanding documents to upload\r\n

\r\n\r\n\r\n
\r\n
    \r\n \r\n {props.missingDocTypesArray.map((lookupitem, index) => (\r\n
  • {lookupitem.Description}
  • \r\n ))}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../crm/Comments\";\r\nimport Documents from \"../crm/Documents\";\r\nimport Emails from \"../crm/Emails\";\r\nimport CommentsDialog from \"../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../crm/EmailDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport MissingDocumentsDialog from \"./LearnerCRMBulkUploadDialog\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Learner\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/LearnerCRM/GetCRMComments\",\r\n documents: \"api/sims/LearnerCRM/GetCRMDocuments\",\r\n emails: \"api/sims/LearnerCRM/GetCRMEmail\",\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/LearnerCRM/AddCRMComment\",\r\n documents: \"api/sims/LearnerCRM/AddCRMDocument\",\r\n emails: \"api/sims/LearnerCRM/AddCRMEmail\",\r\n },\r\n\r\n docTypeUrls: {\r\n documents: \"api/sims/learnercrm/GetLookupListLearnerDocumentType\"\r\n }\r\n}\r\n\r\nclass LearnerCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.SetCommunicationType)) ? this.props.location.state.SetCommunicationType : \"1\",\r\n displayMissingDocTypes: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.displayMissingDocTypes)) ? this.props.location.state.displayMissingDocTypes : null,\r\n missingDocTypesArray: [],\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n missingDocDailogOpen: false,\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n\r\n componentDidMount() {\r\n if (this.state.displayMissingDocTypes) {\r\n this.getMissingDocTypes();\r\n }\r\n }\r\n getMissingDocTypes() {\r\n let url = \"api/sims/learnerCRM/GetCRMBulkDocumentsNotUploaded?ID=\" + this.props.location.state.LearnerID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n missingDocTypesArray: response,\r\n displayMissingDocTypes: false,\r\n dialogues: { ...this.state.dialogues, missingDocDailogOpen: response.length > 0 }\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Learner',\r\n state: { selection: this.props.location.state.LearnerID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n else if (\"bulkAdd\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnerCRMBulkUpload',\r\n state: {\r\n LearnerID: this.props.location.state.LearnerID,\r\n LearnerName: this.props.location.state.LearnerName\r\n }\r\n });\r\n }\r\n else if (\"bulkDownload\" === buttonId) {\r\n utils.invokeUrl(\"api/sims/Learnercrm/DownloadCRMBulkDocuments?ID=\" + this.props.location.state.LearnerID, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/Learner/getCRMDocument?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/Learnercrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n }\r\n\r\n SetCommunicationType(values) {\r\n\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {`Learners > ${this.props.location.state.LearnerName} > CRM`}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n {this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({ emailAddress: email, emailSubject: subject }, () => {\r\n this.setState({ emailAddress: email, emailSubject: subject })\r\n })\r\n\r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Learner Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Learner Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'bulkAdd', label: '', tooltip: 'Upload Bulk Document', icon: 'BulkUploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'bulkDownload', label: '', tooltip: 'Download All Documents', icon: 'DownloadIcon', visible: this.props.menuPermissionItem.View }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.LearnerID} showLearnerDocumentType={true} />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Learner Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.LearnerID}\r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.LearnerID} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.LearnerID}\r\n showLearnerDocumentType={true}\r\n getLearnerDocumentType={config.docTypeUrls.documents}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.LearnerID}\r\n showMultilineToAddress={true}\r\n />\r\n this.postUploadHandler(save, cancel)}\r\n missingDocTypesArray={this.state.missingDocTypesArray}\r\n />\r\n
\r\n }\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(LearnerCRM));\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { withStyles } from '@material-ui/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst pdfVersion = \"2.6.347\"\r\nconst pdfWorkerUrl = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfVersion}/pdf.worker.js`\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nconst styles = theme => ({\r\n button: {\r\n margin: theme.spacing(1),\r\n },\r\n input: {\r\n display: 'none',\r\n },\r\n errorMessageDisplay: {\r\n color: 'red'\r\n }\r\n});\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n\r\n postUrls: {\r\n documents: \"api/sims/LearnerCRM/AddCRMDocumentBulkUpload\"\r\n },\r\n\r\n docTypeUrls: {\r\n documents: \"api/sims/learnercrm/GetLookupListLearnerDocumentType\"\r\n }\r\n}\r\n\r\nclass LearnerCRMBulkUpload extends Component {\r\n\r\n state = {\r\n fileInfo: null,\r\n numPages: 0,\r\n lookupArray: null,\r\n documentPageInfo: [],\r\n message: null,\r\n messageStyle: null,\r\n savedSuccessfully: false\r\n }\r\n\r\n componentDidMount() {\r\n this.getlookup();\r\n }\r\n\r\n getlookup() {\r\n let url = config.docTypeUrls.documents;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ lookupArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnerCRM',\r\n state: {\r\n LearnerID: this.props.location.state.LearnerID,\r\n LearnerName: this.props.location.state.LearnerName,\r\n SetCommunicationType: \"2\",\r\n displayMissingDocTypes: this.state.savedSuccessfully\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleChange = (event) => {\r\n if (event.target.files && event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: file.name,\r\n type: file.type,\r\n size: Math.round(file.size / 1000) + ' kB',\r\n base64: reader.result\r\n }\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n }\r\n }\r\n\r\n onDocumentLoadSuccess = ({ numPages }) => {\r\n this.setState({ numPages: numPages });\r\n }\r\n\r\n handleArrayChange = (event, pageNumber) => {\r\n const values = [...this.state.documentPageInfo];\r\n\r\n const itemIndex = values.findIndex((item) => {\r\n return item.PageNumber === pageNumber;\r\n });\r\n\r\n const dropDownItem = this.state.lookupArray.find((item) => {\r\n return item.Id === event.target.value;\r\n });\r\n\r\n let pageInfo;\r\n if (itemIndex > -1) {\r\n pageInfo = { ...values[itemIndex] };\r\n pageInfo.DocumentTypeID = { Id: event.target.value, Description: dropDownItem.Description };\r\n values.splice(itemIndex, 1, pageInfo);\r\n }\r\n else {\r\n pageInfo = {\r\n PageNumber: pageNumber,\r\n DocumentTypeID: { Id: event.target.value, Description: dropDownItem.Description }\r\n };\r\n values.push(pageInfo);\r\n }\r\n\r\n this.setState({ documentPageInfo: values });\r\n }\r\n\r\n getArrayValue = (pageNumber) => {\r\n const item = this.state.documentPageInfo.find((item) => {\r\n return item.PageNumber === pageNumber;\r\n });\r\n\r\n if (item) {\r\n return item.DocumentTypeID.Id;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n uploadDocument = () => {\r\n\r\n let saveObject = {\r\n EntityID: this.props.location.state.LearnerID,\r\n FileInfo: this.state.fileInfo,\r\n DocumentPageInfo: this.state.documentPageInfo\r\n }\r\n\r\n let url = config.postUrls.documents;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(saveObject)\r\n }\r\n )\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({ savedSuccessfully: true }, () => { this.handleToolbarButtonClick('close'); });\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n let pages = null;\r\n if (this.state.numPages > 0) {\r\n pages = [];\r\n for (let i = 0; i < this.state.numPages; i++) {\r\n pages.push(\r\n
\r\n \r\n

{'Page ' + (i + 1)} of {this.state.numPages}

\r\n

Document Type:

\r\n this.handleArrayChange(values, i + 1)}>\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n\r\n {lookupitem.Description}\r\n\r\n ))}\r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n

\r\n {`Learners > ${this.props.location.state.LearnerName} > CRM > Bulk Document Upload`}\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Learner CRM', icon: 'CloseIcon' },\r\n ]\r\n }\r\n ]\r\n }} />\r\n\r\n \r\n \r\n {\r\n \r\n {this.state.fileInfo ? this.state.fileInfo.name : null}\r\n \r\n }\r\n {\r\n this.state.fileInfo ?\r\n
\r\n \r\n {pages}\r\n \r\n  \r\n \r\n
\r\n : null\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(withStyles(styles)(LearnerCRMBulkUpload)));\r\n","import React from 'react';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./LearnerDocuments.css\"\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst headCells = [\r\n { id: 'ExperienceWork', numeric: false, disablePadding: true, label: 'Experience Work' },\r\n { id: 'ExperienceWorkDateFrom', numeric: false, disablePadding: true, label: 'Work Date From' },\r\n { id: 'ExperienceWorkDateTo', numeric: false, disablePadding: true, label: 'Work Date To' },\r\n { id: 'ReferenceTitle', numeric: false, disablePadding: true, label: 'Reference Title' },\r\n { id: 'NatureOfWork', numeric: false, disablePadding: true, label: 'Nature Of Work' },\r\n { id: 'ReferenceName', numeric: false, disablePadding: true, label: 'Reference Name' },\r\n { id: 'ReferenceSurname', numeric: false, disablePadding: true, label: 'Reference Surname' },\r\n { id: 'ReferenceContactNumber', numeric: false, disablePadding: true, label: 'Reference Contact Number' },\r\n { id: 'WhereExperientialWorWasUndertaken', numeric: false, disablePadding: true, label: 'Where Experiential Work Was Undertaken' },\r\n { id: 'DocumentName', numeric: false, disablePadding: true, label: 'Document Name', contentType: 'document' }\r\n]\r\n\r\nexport default function ExperientialLearningDocuments(props, ref) {\r\n return (\r\n { props.handleCell(rowid, columnid) }} searchParameters={[{ Name: `${props.moduleName}ID`, Value: props.selection }]} paged={false}\r\n dataUrl={props.documentsDataUrl !== null ? props.documentsDataUrl : null} \r\n />\r\n );\r\n}\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nexport default function ExperientialLearningDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [filename, setFilename] = React.useState(props.fileName);\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n const [entityId, setEntityId] = React.useState(props.EntityID);\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.EntityID)) {\r\n setEntityId(props.EntityID);\r\n }\r\n }, [props.EntityID]);\r\n\r\n const handleClose = (save, cancel) => {\r\n setOpen(false);\r\n props.closeHandler(save, cancel)\r\n };\r\n\r\n\r\n const cancel = () => {\r\n handleClose(false, true);\r\n };\r\n\r\n const save = () => {\r\n let data = {};\r\n data.OriginalFileName = filename;\r\n data.EntityID = entityId;\r\n data.ExperienceWork = props.ExperienceWork;\r\n data.ExperienceWorkDateFrom = props.ExperienceWorkDateFrom;\r\n data.ExperienceWorkDateTo = props.ExperienceWorkDateTo;\r\n data.ReferenceTitle = props.ReferenceTitleID.Id;\r\n data.NatureOfWork = props.NatureOfWork;\r\n data.ReferenceName = props.ReferenceName;\r\n data.ReferenceSurname = props.ReferenceSurname;\r\n data.ReferenceContactNumber = props.ReferenceContactNumber;\r\n data.WhereExperientialWorWasUndertaken = props.WhereExperientialWorWasUndertaken;\r\n data.Document = {};\r\n data.Document.name = filename;\r\n data.Document.size = size;\r\n data.Document.type = type;\r\n data.Document.base64 = base64;\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n props._setFilename(data.name);\r\n console.log(\"EXP doc\");\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {props.ReferenceTitleID!==undefined && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./LearnerDocuments.css\"\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst headCells = [\r\n { id: 'Position', numeric: false, disablePadding: true, label: 'Position' },\r\n { id: 'Company', numeric: false, disablePadding: true, label: 'Company' },\r\n { id: 'Duration', numeric: false, disablePadding: true, label: 'Duration' },\r\n { id: 'Location', numeric: false, disablePadding: true, label: 'Location' },\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Description' },\r\n { id: 'DocumentName', numeric: false, disablePadding: true, label: 'Document Name', contentType: 'document' }\r\n]\r\n\r\nexport default function EmploymentHistoryDocuments(props, ref) {\r\n return (\r\n { props.handleCell(rowid, columnid) }} searchParameters={[{ Name: `${props.moduleName}ID`, Value: props.selection }]} paged={false}\r\n dataUrl={props.documentsDataUrl !== null ? props.documentsDataUrl : null} \r\n />\r\n );\r\n}\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nexport default function EmploymentHistoryDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [filename, setFilename] = React.useState(props.fileName);\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n const [entityId, setEntityId] = React.useState(props.EntityID);\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.EntityID)) {\r\n setEntityId(props.EntityID);\r\n }\r\n }, [props.EntityID]);\r\n\r\n const handleClose = (save, cancel) => {\r\n setOpen(false);\r\n props.closeHandler(save, cancel)\r\n };\r\n\r\n\r\n const cancel = () => {\r\n handleClose(false, true);\r\n };\r\n\r\n const save = () => {\r\n let data = {};\r\n data.OriginalFileName = filename;\r\n data.EntityID = entityId;\r\n data.Position = props.Position;\r\n data.Company = props.Company;\r\n data.Duration = props.Duration;\r\n data.Location = props.Location;\r\n data.Description = props.Description;\r\n data.Document = {};\r\n data.Document.name = filename;\r\n data.Document.size = size;\r\n data.Document.type = type;\r\n data.Document.base64 = base64;\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n props._setFilename(data.name);\r\n console.log(\"EH doc\");\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport SchoolEMISSearch from '../SchoolEMISSearch';\r\nimport STATSSAAreaCodeSearch from '../STATSSAAreaCodeSearch';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport OFOSearch from '../program/OFOSearch';\r\nimport InstitutionSearch from '../program/InstitutionSearch';\r\nimport { Button } from \"antd\";\r\nimport Icon from '@ant-design/icons';\r\nimport EducationalHistoryDocuments from \"../learner/EducationalHistoryDocuments\";\r\nimport LearnerDocumentDialog from \"../learner/LearnerDocumentDialog\";\r\nimport ExperientialLearningDocuments from \"../learner/ExperientialLearningDocuments\";\r\nimport ExperientialLearningDialog from \"../learner/ExperientialLearningDialog\";\r\nimport EmploymentHistoryDocuments from \"../learner/EmploymentHistoryDocuments\";\r\nimport EmploymentHistoryDialog from \"../learner/EmploymentHistoryDialog\";\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const PersonForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [documentsDialogOpen, setdocumentsDialogOpen] = React.useState(false);\r\n const [ELdocumentsDialogOpen, setELdocumentsDialogOpen] = React.useState(false);\r\n const [EHdocumentsDialogOpen, setEHdocumentsDialogOpen] = React.useState(false);\r\n const [DocURL, setDocURL] = React.useState(null);\r\n const [elDocURL, setelDocURL] = React.useState(null);\r\n const [ehDocURL, setehDocURL] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n if (newValue == 5) {\r\n setDocURL(\"api/indicium/person/getCRMDocuments\");\r\n }\r\n else if (newValue == 6) {\r\n setelDocURL(\"api/indicium/person/getExperientialLearningDocuments\");\r\n }\r\n else if (newValue == 7) {\r\n setehDocURL(\"api/indicium/person/getEmploymentHistoryDocuments\");\r\n }\r\n else {\r\n setDocURL(null);\r\n setelDocURL(null);\r\n setehDocURL(null);\r\n }\r\n };\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAddressForPostalAddress', event.target.checked);\r\n }\r\n\r\n const updateGPSAddress = (address, form) => {\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n function getDescription(values, form) {\r\n if (values !== undefined && values !== null) {\r\n if (values[\"SecondDescription\"] !== undefined) {\r\n form.values[\"QualificationTitle\"] = values[\"SecondDescription\"];\r\n }\r\n }\r\n }\r\n\r\n function getOFODescription(values, form) {\r\n if (values !== undefined && values !== null) {\r\n if (values[\"SecondDescription\"] !== undefined) {\r\n form.values[\"LinkedOFODescription\"] = values[\"SecondDescription\"];\r\n }\r\n }\r\n }\r\n\r\n const config = {\r\n moduleName: \"Person\",\r\n\r\n dataUrls: {\r\n documents: null,\r\n },\r\n\r\n postUrls: {\r\n documents: \"api/indicium/Person/addEvidenceofQualification\"\r\n }\r\n };\r\n\r\n const ELconfig = {\r\n moduleName: \"Person\",\r\n\r\n dataUrls: {\r\n documents: null,\r\n },\r\n\r\n postUrls: {\r\n documents: \"api/indicium/Person/addELDocument\"\r\n }\r\n };\r\n\r\n const EHconfig = {\r\n moduleName: \"Person\",\r\n\r\n dataUrls: {\r\n documents: null,\r\n },\r\n\r\n postUrls: {\r\n documents: \"api/indicium/Person/addEHDocument\"\r\n }\r\n };\r\n\r\n\r\n const setDialogOpen = () => {\r\n setdocumentsDialogOpen(true);\r\n };\r\n\r\n const setelDialogOpen = () => {\r\n setELdocumentsDialogOpen(true);\r\n };\r\n\r\n const setehDialogOpen = () => {\r\n setEHdocumentsDialogOpen(true);\r\n };\r\n\r\n const handleCellSelect = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/Person/getEvidenceofQualification?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n };\r\n\r\n const postUploadHandler = (save, cancel) => {\r\n //Successful upload\r\n if (save === true) {\r\n setdocumentsDialogOpen(false);\r\n setELdocumentsDialogOpen(false);\r\n setEHdocumentsDialogOpen(false);\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n setdocumentsDialogOpen(false);\r\n setELdocumentsDialogOpen(false);\r\n setEHdocumentsDialogOpen(false);\r\n }\r\n //Error on upload\r\n else {\r\n setdocumentsDialogOpen(false);\r\n setELdocumentsDialogOpen(false);\r\n setEHdocumentsDialogOpen(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"SchoolEMISID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n\r\n \r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"STATSSAAreaCodeID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n form.setLookupSelection(\"QualificationID\", values)} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"InstitutionID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n\r\n \r\n

\r\n handleCellSelect(rowid, headCell)}\r\n documentsDataUrl={DocURL} moduleName={config.moduleName} selection={form.values[\"IDNo\"]} />\r\n\r\n\r\n
\r\n postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={form.values[\"IDNo\"]}\r\n EducationTitle={form.values[\"EducationTitle\"]}\r\n HighestEducation={form.values[\"HighestEducationLevelID\"]}\r\n Institute={form.values[\"InstitutionID\"]}\r\n />\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n

\r\n handleCellSelect(rowid, headCell)}\r\n documentsDataUrl={elDocURL} moduleName={ELconfig.moduleName} selection={form.values[\"IDNo\"]} />\r\n\r\n
\r\n
\r\n
\r\n postUploadHandler(save, cancel)}\r\n postUrl={ELconfig.postUrls.documents}\r\n EntityID={form.values[\"IDNo\"]}\r\n ExperienceWork={form.values[\"ExperienceWork\"]}\r\n ExperienceWorkDateFrom={form.values[\"ExperienceWorkDateFrom\"]}\r\n ExperienceWorkDateTo={form.values[\"ExperienceWorkDateTo\"]}\r\n ReferenceTitleID={form.values[\"ReferenceTitleID\"]}\r\n NatureOfWork={form.values[\"NatureOfWork\"]}\r\n ReferenceName={form.values[\"ReferenceName\"]}\r\n ReferenceSurname={form.values[\"ReferenceSurname\"]}\r\n ReferenceContactNumber={form.values[\"ReferenceContactNumber\"]}\r\n WhereExperientialWorWasUndertaken={form.values[\"WhereExperientialWorWasUndertaken\"]}\r\n />\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n

\r\n handleCellSelect(rowid, headCell)}\r\n documentsDataUrl={ehDocURL} moduleName={EHconfig.moduleName} selection={form.values[\"IDNo\"]} />\r\n\r\n
\r\n
\r\n
\r\n postUploadHandler(save, cancel)}\r\n postUrl={EHconfig.postUrls.documents}\r\n EntityID={form.values[\"IDNo\"]}\r\n Position={form.values[\"EmploymentHistoryPosition\"]}\r\n Company={form.values[\"EmploymentHistoryCompany\"]}\r\n Duration={form.values[\"EmploymentHistoryDuration\"]}\r\n Location={form.values[\"EmploymentHistoryLocation\"]}\r\n Description={form.values[\"EmploymentHistoryDescription\"]}\r\n />\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n

\r\n \r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Person.css\";\r\nimport { PersonForm } from './PersonForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n }\r\n ]\r\n};\r\n\r\nconst personRef = React.createRef();\r\nclass Person extends Component {\r\n\r\n state = {\r\n personDetails: {\r\n FirstName: \"\",\r\n Surname: \"\"\r\n },\r\n title: \"\"\r\n };\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ PersonDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n \r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Person updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = personRef.current.getValue();\r\n let input = JSON.stringify(formValue);\r\n let personData = {};\r\n personData.data = input;\r\n\r\n\r\n utils.invokeUrl(\"api/indicium/person/updatePersonRecord\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(personData)\r\n });\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/persons');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true}\r\n config={toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Person);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function SkillsProgramSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport SkillsProgramSetupSearchForm from '../program/SkillsProgramSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'SkillsProgrammeCode', numeric: false, disablePadding: true, label: 'Skills Programme Code' },\r\n { id: 'SkillsProgrammeTitle', numeric: false, disablePadding: true, label: 'Skills Programme Title' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'SkillsProgrammeRegistrationStartDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'SkillsProgrammeRegistrationEndDate', numeric: false, disablePadding: true, label: 'Completion Date' },\r\n { id: 'Client', numeric: false, disablePadding: true, label: 'Client' },\r\n { id: 'ProjectNumber', numeric: false, disablePadding: true, label: 'Project Number' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerSkillsProgram extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n console.log(this.props.programmeId);\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"SkillsProgrammeID\", Value: \"\" },\r\n { Name: \"SkillsProgramTitle\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"SkillsProgrammeID\", Value: \"\" },\r\n { Name: \"SkillsProgramTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n SkillsProgrammeID: \"\",\r\n SkillsProgramTitle: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n SkillsProgrammeID: \"\",\r\n SkillsProgramTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', visible: this.props.menuPermissionItem.View },\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: \"\", tooltip: \"Remove skills programme\", icon: \"DeleteIcon\", visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'project', label: 'GO TO PROJECT', tooltip: 'go to project', visible: this.props.onMenuSpecificPermissionItem('/GrantSetupSearch').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for unit standard removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerSkillsProgram',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n SkillsProgrammeID: 0,\r\n hideFields: true,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerSkillsProgram',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n SkillsProgrammeID: this.state.selectedLearnerSkillsProgram[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"view\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerSkillsProgram',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n SkillsProgrammeID: this.state.selectedLearnerSkillsProgram[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem,\r\n viewOnly: true\r\n }\r\n })\r\n }\r\n else if (buttonId === \"project\") {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: this.state.selectedLearnerSkillsProgram[0].ProjectID,\r\n hideFields: false\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerSkillsProgram: selection })\r\n } else {\r\n this.setState({ selectedLearnerSkillsProgram: selection })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Skills Programmes > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Skills Programme\"}\r\n promptContent={\"Are you sure you want to remove the learner Skills Programme record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerSkillsProgram));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function AbsorptionSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport AbsorptionSetupSearchForm from '../program/AbsorptionSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeType', numeric: false, disablePadding: true, label: 'Programme Type' },\r\n { id: 'Workplace', numeric: false, disablePadding: true, label: 'Workplace' },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date' },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date' },\r\n { id: 'Client', numeric: false, disablePadding: true, label: 'Client' },\r\n { id: 'ProjectNumber', numeric: false, disablePadding: true, label: 'Project Number' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerAbsorption extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n console.log(this.props.programmeId);\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"Client\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"Client\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n Client: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n Client: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'project', label: 'GO TO PROJECT', tooltip: 'go to project', visible: this.props.onMenuSpecificPermissionItem('/GrantSetupSearch').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for unit standard removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"project\") {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: this.state.selectedLearnerProgramme[0].Id,\r\n hideFields: false\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerProgramme: selection })\r\n } else {\r\n this.setState({ selectedLearnerProgramme: selection })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Absorption > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Absorption\"}\r\n promptContent={\"Are you sure you want to remove the learner Absorption record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerAbsorption));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function SponsorshipSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport SponsorshipSetupSearchForm from '../program/SponsorshipSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeType', numeric: false, disablePadding: true, label: 'Programme Type' },\r\n { id: 'SponsorshipType', numeric: false, disablePadding: true, label: 'Sponsorship Type' },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date' },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date' },\r\n { id: 'Client', numeric: false, disablePadding: true, label: 'Client' },\r\n { id: 'ProjectNumber', numeric: false, disablePadding: true, label: 'Project Number' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerSponsorship extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"Client\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"TrancheSetupSponsorshipTypeID\", Value: { Id: 1, Description: \"Bursary\" } },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"Client\", Value: \"\" },\r\n { Name: \"TrancheSetupSponsorshipTypeID\", Value: { Id: 1, Description: \"Bursary\" } },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n Client: \"\",\r\n TrancheSetupSponsorshipTypeID: { Id: 1, Description: \"Bursary\" },\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n Client: \"\",\r\n TrancheSetupSponsorshipTypeID: { Id: 1, Description: \"Bursary\" },\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n }\r\n ,\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'project', label: 'GO TO PROJECT', tooltip: 'go to project', visible: this.props.onMenuSpecificPermissionItem('/GrantSetupSearch').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for unit standard removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"project\") {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: this.state.selectedLearnerProgramme[0].TrancheSetupID,\r\n hideFields: false\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerProgramme: selection })\r\n } else {\r\n this.setState({ selectedLearnerProgramme: selection })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Sponsorship > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Sponsorship\"}\r\n promptContent={\"Are you sure you want to remove the learner Sponsorship record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerSponsorship));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function EnterpriseDevelopmentSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport EnterpriseDevelopmentSetupSearchForm from '../program/EnterpriseDevelopmentSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeType', numeric: false, disablePadding: true, label: 'Programme Type' },\r\n { id: 'SpendAllocation', numeric: false, disablePadding: true, label: 'Spend Allocation' },\r\n { id: 'Enterprise', numeric: false, disablePadding: true, label: 'Enterprise' },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date' },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date' },\r\n { id: 'Client', numeric: false, disablePadding: true, label: 'Client' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerEnterpriseDevelopment extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n console.log(this.props.programmeId);\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"Client\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"Client\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n Client: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n Client: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View Project', icon: 'ViewIcon', visible: this.props.onMenuSpecificPermissionItem('/GrantSetupSearch').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for unit standard removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"view\") {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: this.state.selectedLearnerProgramme[0].Id,\r\n hideFields: false\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerProgramme: selection })\r\n } else {\r\n this.setState({ selectedLearnerProgramme: selection })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Enterprise Development > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Enterprise Development\"}\r\n promptContent={\"Are you sure you want to remove the learner Enterprise Development record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerEnterpriseDevelopment));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function AbsorptionSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport SupplierDevelopmentSetupSearchForm from '../program/SupplierDevelopmentSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeType', numeric: false, disablePadding: true, label: 'Programme Type' },\r\n { id: 'SpendAllocation', numeric: false, disablePadding: true, label: 'Spend Allocation' },\r\n { id: 'Supplier', numeric: false, disablePadding: true, label: 'Supplier' },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date' },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date' },\r\n { id: 'Client', numeric: false, disablePadding: true, label: 'Client' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerSupplierDevelopment extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n console.log(this.props.programmeId);\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"Client\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"Client\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n Client: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n Client: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View Project', icon: 'ViewIcon', visible: this.props.onMenuSpecificPermissionItem('/GrantSetupSearch').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for unit standard removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"view\") {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: this.state.selectedLearnerProgramme[0].Id,\r\n hideFields: false\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerProgramme: selection })\r\n } else {\r\n this.setState({ selectedLearnerProgramme: selection })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Supplier Development > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Supplier Development\"}\r\n promptContent={\"Are you sure you want to remove the learner Supplier Development record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerSupplierDevelopment));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function BursarySetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport BursarySetupSearchForm from '../program/BursarySetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'BursaryCode', numeric: false, disablePadding: true, label: 'Bursary Code' },\r\n { id: 'BursaryTitle', numeric: false, disablePadding: true, label: 'Bursary Title' },\r\n { id: 'ContractNumber', numeric: false, disablePadding: true, label: 'Contract Number' },\r\n { id: 'BursaryStatus', numeric: false, disablePadding: true, label: 'Bursary Status' },\r\n { id: 'BursaryStartDate', numeric: false, disablePadding: true, label: 'Bursary Start Date' },\r\n { id: 'BursaryEndDate', numeric: false, disablePadding: true, label: 'Bursary End Date' },\r\n { id: 'Client', numeric: false, disablePadding: true, label: 'Client' },\r\n { id: 'ProjectNumber', numeric: false, disablePadding: true, label: 'Project Number' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerBursary extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"BursaryID\", Value: \"\" },\r\n { Name: \"BursaryTitle\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"BursaryID\", Value: \"\" },\r\n { Name: \"BursaryTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n BursaryID: \"\",\r\n BursaryTitle: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n BursaryID: \"\",\r\n BursaryTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false, \r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', visible: this.props.menuPermissionItem.View },\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove bursary\", icon: \"DeleteIcon\", visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'project', label: 'GO TO PROJECT', tooltip: 'go to project', visible: this.props.onMenuSpecificPermissionItem('/GrantSetupSearch').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for Bursary removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerBursary',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n BursaryID: 0,\r\n hideFields: true,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"edit\") {\r\n console.log(this.state.selectedLearnerBursary[0].Id);\r\n this.props.history.push({\r\n pathname: '/AddLearnerBursary',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n BursaryID: this.state.selectedLearnerBursary[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"view\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerBursary',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n BursaryID: this.state.selectedLearnerBursary[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem,\r\n viewOnly: true\r\n }\r\n })\r\n }\r\n else if (buttonId === \"project\") {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: this.state.selectedLearnerBursary[0].ProjectID,\r\n hideFields: false\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerBursary: selection })\r\n } else {\r\n this.setState({ selectedLearnerBursary: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Bursaries > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Bursary\"}\r\n promptContent={\"Are you sure you want to remove the learner Bursary record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerBursary));\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function UnitStandardSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport UnitStandardSetupSearchForm from '../program/UnitStandardSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'Unit Standard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardRegistrationStartDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'UnitStandardRegistrationEndDate', numeric: false, disablePadding: true, label: 'Completion Date' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' }\r\n];\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerUnitStandard extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n console.log(this.props.programmeId);\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"SAQAUnitStandardID\", Value: \"\" },\r\n { Name: \"SAQAUnitStandardTitle\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"SAQAUnitStandardID\", Value: \"\" },\r\n { Name: \"SAQAUnitStandardTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID \r\n\r\n }\r\n :\r\n {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID \r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n \r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: \"\", tooltip: 'Remove unit standard', icon: \"DeleteIcon\", visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for unit standard removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n })\r\n }\r\n else if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerUnitStandard',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n UnitStandardID: 0,\r\n hideFields: true,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerUnitStandard',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n UnitStandardID: this.state.selectedLearnerUnitStandard[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n \r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerUnitStandard: selection })\r\n } else {\r\n this.setState({ selectedLearnerUnitStandard: null })\r\n }\r\n }\r\n \r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Unit Standards > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Unit Standard\"}\r\n promptContent={\"Are you sure you want to remove the learner unit standard record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerUnitStandard));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function CandidacySetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport CandidacySetupSearchForm from '../program/CandidacySetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'SAQA Qualification ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: true, label: 'SAQA Qualification Title' },\r\n { id: 'ContractNumber', numeric: false, disablePadding: true, label: 'Contract Number' },\r\n { id: 'CandidacyType', numeric: false, disablePadding: true, label: 'Candidacy Type' },\r\n { id: 'CandidacyStatus', numeric: false, disablePadding: true, label: 'Candidacy Status' },\r\n { id: 'CandidacyStartDate', numeric: false, disablePadding: true, label: 'Candidacy Start Date' },\r\n { id: 'CandidacySEndDate', numeric: false, disablePadding: true, label: 'Candidacy End Date' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerCandidacy extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', visible: this.props.menuPermissionItem.View },\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: \"\", tooltip: \"Remove candidacy\", icon: \"DeleteIcon\", visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for Candidacy removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerCandidacy',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n CandidacyID: 0,\r\n hideFields: true,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"edit\") {\r\n console.log(this.state.selectedLearnerCandidacy[0].Id);\r\n this.props.history.push({\r\n pathname: '/AddLearnerCandidacy',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n CandidacyID: this.state.selectedLearnerCandidacy[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"view\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerCandidacy',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n CandidacyID: this.state.selectedLearnerCandidacy[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem,\r\n viewOnly: true\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerCandidacy: selection })\r\n } else {\r\n this.setState({ selectedLearnerCandidacy: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Candidacies > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Candidacy\"}\r\n promptContent={\"Are you sure you want to remove the learner Candidacy record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerCandidacy));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function InternshipsSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport InternshipsSetupSearchForm from '../program/InternshipsSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'SAQA Qualification ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: true, label: 'SAQA Qualification Title' },\r\n { id: 'ContractNumber', numeric: false, disablePadding: true, label: 'Contract Number' },\r\n { id: 'InternshipType', numeric: false, disablePadding: true, label: 'Internship Type' },\r\n { id: 'InternshipStatus', numeric: false, disablePadding: true, label: 'Internship Status' },\r\n { id: 'InternshipStartDate', numeric: false, disablePadding: true, label: 'Internship Start Date' },\r\n { id: 'InternshipEndDate', numeric: false, disablePadding: true, label: 'Internship End Date' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerInternship extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', visible: this.props.menuPermissionItem.View },\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: \"\", tooltip: \"Remove internship\", icon: \"DeleteIcon\", visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for Internship removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerInternships',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n InternshipID: 0,\r\n hideFields: true,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerInternships',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n InternshipID: this.state.selectedLearnerInternship[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"view\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerInternships',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n InternshipID: this.state.selectedLearnerInternship[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem,\r\n viewOnly: true\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerInternship: selection })\r\n } else {\r\n this.setState({ selectedLearnerInternship: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Internships > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Internship\"}\r\n promptContent={\"Are you sure you want to remove the learner Internship record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerInternship));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function AETSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AETSetupSearchForm from '../program/AETSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'AETProgrammeCode', numeric: false, disablePadding: true, label: 'AET Programme Code' },\r\n { id: 'AETProgrammeDescription', numeric: false, disablePadding: true, label: 'AET Programme Title' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date' },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerAET extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n console.log(this.props.programmeId);\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"AETProgrammeCode\", Value: \"\" },\r\n { Name: \"AETProgrammeDescription\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"AETProgrammeCode\", Value: \"\" },\r\n { Name: \"AETProgrammeDescription\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n AETProgrammeCode: \"\",\r\n AETProgrammeDescription: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n AETProgrammeCode: \"\",\r\n AETProgrammeDescription: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', visible: this.props.menuPermissionItem.View },\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon',visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: \"\", tooltip: \"Remove AET\", icon: \"DeleteIcon\",visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for AET removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerAET',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n AETID: 0,\r\n hideFields: true,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerAET',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n AETID: this.state.selectedLearnerAET[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"view\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerAET',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n AETID: this.state.selectedLearnerAET[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem,\r\n viewOnly: true\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerAET: selection })\r\n } else {\r\n this.setState({ selectedLearnerAET: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > AET's > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner AET\"}\r\n promptContent={\"Are you sure you want to remove the learner AET record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerAET));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function FETSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport FETSetupSearchForm from '../program/FETSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'SAQA Qualification ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: true, label: 'SAQA Qualification Title' },\r\n { id: 'FETType', numeric: false, disablePadding: true, label: 'TVET Type' },\r\n { id: 'FETStatus', numeric: false, disablePadding: true, label: 'TVET Status' },\r\n { id: 'FETStartDate', numeric: false, disablePadding: true, label: 'TVET Start Date' },\r\n { id: 'FETEndDate', numeric: false, disablePadding: true, label: 'TVET End Date' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerFET extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', visible: this.props.menuPermissionItem.View },\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove TVET\", icon: \"DeleteIcon\", visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for Candidacy removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerFET',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n FETID: 0,\r\n hideFields: true,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"edit\") {\r\n console.log(this.state.selectedLearnerFET[0].Id);\r\n this.props.history.push({\r\n pathname: '/AddLearnerFET',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n FETID: this.state.selectedLearnerFET[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"view\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerFET',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n FETID: this.state.selectedLearnerFET[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem,\r\n viewOnly: true\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerFET: selection })\r\n } else {\r\n this.setState({ selectedLearnerFET: null })\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > TVET > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner TVET\"}\r\n promptContent={\"Are you sure you want to remove the learner TVET record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n /> \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerFET));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport QualificationSetupSearchForm from '../program/QualificationSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'Qualification ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: true, label: 'Qualification Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'Completion Date' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerQualification extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n console.log(this.props.programmeId);\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false, \r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', visible: this.props.menuPermissionItem.View },\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: \"\", tooltip: \"Remove qualification\", icon: \"DeleteIcon\", visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for unit standard removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerQualification',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n QualificationID: 0,\r\n hideFields: true,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerQualification',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n QualificationID: this.state.selectedLearnerQualification[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"view\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerQualification',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n LearnershipID: this.state.selectedLearnerLearnership[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem,\r\n viewOnly: true\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerQualification: selection })\r\n } else {\r\n this.setState({ selectedLearnerQualification: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Qualifications > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Qualification\"}\r\n promptContent={\"Are you sure you want to remove the learner qualification record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerQualification));\r\n","import React from \"react\";\r\nimport \"../View.css\";\r\nimport \"../Grid.css\";\r\nimport \"../Form.css\";\r\nimport \"../App.css\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport EnhancedTable from '../widgets/ResponsiveTable';\r\nimport { Alert } from \"react-bootstrap\";\r\nconst utils = new ViewUtils();\r\n\r\n\r\nexport default function UnitStandardsTable(props) {\r\n const [TotalCredits, setTotalCredits] = React.useState(0);\r\n const [Credits, setCredits] = React.useState(0);\r\n const [MinimumElectiveCredits, setMinimumElectiveCredits] = React.useState(0);\r\n const [TotalElectiveCredits, setTotalElectiveCredits] = React.useState(0);\r\n\r\n const handleDataArrive = (data) => {\r\n setTotalCredits(data.TotalCredits);\r\n setCredits(data.Credits);\r\n setMinimumElectiveCredits(data.MinimumElectiveCredits);\r\n setTotalElectiveCredits(data.TotalElectiveCredits);\r\n\r\n if (!utils.isNull(props.onDataArrive)) {\r\n props.onDataArrive(data);\r\n }\r\n }\r\n\r\n const creditFuc = (TotalCredits, Credits) => {\r\n if (parseInt(TotalCredits) < parseInt(Credits)) { \r\n return '50vh';\r\n }\r\n return '40vh';\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {(parseInt(TotalCredits) < parseInt(Credits) || (parseInt(TotalElectiveCredits) < parseInt(MinimumElectiveCredits) )) ? \r\n
\r\n Please note:The total credits must be equal or more than the minimum qualification credits, and elective credits must be equal or more than minimum elective credits.\r\n
\r\n :null\r\n }\r\n
{Credits >= 0 ? 'Minimum Qualification Credits: ' + Credits : null}
\r\n
{MinimumElectiveCredits > 0 ? 'Minimum Elective Credits: ' + MinimumElectiveCredits : null}
\r\n
{TotalCredits >= 0 ? 'Total Credits: ' + TotalCredits : null}
\r\n
\r\n { handleDataArrive(data) }}\r\n searchParameters={props.searchParameters} paged={!utils.isNull(props.paged) ? props.paged : false} />\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./UnitStandardSetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport UnitStandardSetupSearchForm from './UnitStandardSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' }\r\n];\r\n\r\nconst modelTemplate = [\r\n { Name: \"SAQAUnitStandardID\", Value: \"\" },\r\n { Name: \"SAQAUnitStandardTitle\", Value: \"\" }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass UnitStandardSetupSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = !utils.isNull(this.props.programmeId) ? [\r\n { Name: \"SAQAUnitStandardID\", Value: \"\" },\r\n { Name: \"SAQAUnitStandardTitle\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"ProgrammeType\", Value: this.props.programmeType }\r\n ]\r\n :\r\n [\r\n { Name: \"SAQAUnitStandardID\", Value: \"\" },\r\n { Name: \"SAQAUnitStandardTitle\", Value: \"\" }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.programmeId) ?\r\n {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n ProgrammeType: this.props.programmeType\r\n }\r\n :\r\n {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\"\r\n }\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n if (!utils.isNull(props.personId)) {\r\n model.PersonID = props.personId;\r\n this.searchParameters.push({ Name: \"PersonID\", Value: props.personId })\r\n }\r\n\r\n this.state = !utils.isNull(this.props.programmeId) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n }; \r\n\r\n //TODO: Add url for unit standard removal\r\n this.deleteUrl = \"\"\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: '', tooltip: 'Remove Unit Standard', icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n clearSearch(e) {\r\n this.setState({\r\n model: {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n ProgrammeType: this.props.programmeType\r\n }\r\n });\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n \r\n\r\n render() {\r\n return (\r\n \r\n { this.clearSearch(e) }}\r\n model={this.state.model} toolbarConfig={this.toolbarConfig} modelClearTemplate={modelTemplate}\r\n searchParameters={this.searchParameters} onLookupValueChange={this.props.onLookupValueChange}\r\n descriptionProp=\"SAQAUnitStandardID\" mode={this.props.mode} allowClear={this.props.allowClear}\r\n history={this.props.history} multiSelect={this.props.multiSelect}\r\n hasButtonClickHandler={true} buttonClickHandler={this.handleToolbarButtonClick}\r\n keyUpSwitch={this.state.keyUpSwitch} \r\n title='Unit Standards' \r\n selectionCallbackMode={this.props.selectionCallbackMode}\r\n promptTitle={\"Remove Unit Standard\"}\r\n promptContent={\"Removing the unit standard is a permanent action and the unit standard will not be available going forward. Are you sure you want to remove this unit standard?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(UnitStandardSetupSearch));","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport UnitStandardsTable from '../UnitStandardsTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardType', numeric: false, disablePadding: true, label: 'Unit Standard Type' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\n\r\nclass LearnerQualificationUSSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n keyUpSwitch: false,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From The Learners Qualification\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the Learners qualification?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [\r\n { Name: \"LearnerQualificationID\", Value: this.props.location.state.QualificationID },\r\n { Name: \"LearnerID\", Value: this.props.location.state.LearnerID }\r\n ]\r\n \r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n contextMenu: [\r\n { id: 1, description: \"Elective\" }\r\n ],\r\n id: 'link', label: 'Link', tooltip: 'link the selected unit standard to the Learners qualification', width: \"60px\"\r\n },\r\n { id: 'link', label: '', contextIcon: 'LinkIcon', tooltip: 'Link unit standard/s to the Learners qualification'},\r\n { id: 'unlink', label: '', icon: 'LinkOffIcon', tooltip: 'Un-link the selected unit standard from the Learners qualification', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/AddLearnerQualification',\r\n state: {\r\n LearnerID: this.props.location.state.LearnerID,\r\n QualificationID: this.props.location.state.QualificationID,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n } else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&LearnerQualificationID=${this.props.location.state.QualificationID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Learner Qualification Unit Standards\"}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/LearnerQualification/GetLearnerQualificationUSSearch\"\r\n height={\"50vh\"}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to the Qualification for Learner: ${this.props.location.state.learnerNames}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/LearnerQualification/linkQualificationUnitStandards\"} usePost={true}\r\n programmeId={this.props.location.state.QualificationID}\r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/LearnerQualification/unlinkLearnerqualificationUnitstandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnerQualificationUSSearch)\r\n);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function TradeSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport TradeSetupSearchForm from '../program/TradeSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'TradeCode', numeric: false, disablePadding: true, label: 'Trade Code' },\r\n { id: 'TradeTitle', numeric: false, disablePadding: true, label: 'Trade Title' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'CompletionDate' }\r\n];\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerTrade extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n console.log(this.props.programmeId);\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"TradeProgrammeCode\", Value: \"\" },\r\n { Name: \"TradeProgrammeDescription\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"TradeProgrammeCode\", Value: \"\" },\r\n { Name: \"TradeProgrammeDescription\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n TradeProgrammeCode: \"\",\r\n TradeProgrammeDescription: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n TradeProgrammeCode: \"\",\r\n TradeProgrammeDescription: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', visible: this.props.menuPermissionItem.View },\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Trade\", icon: \"DeleteIcon\", visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for Trade removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerTrade',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n TradeID: 0,\r\n hideFields: true,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"edit\") {\r\n console.log(this.state.selectedLearnerTrade[0].Id);\r\n this.props.history.push({\r\n pathname: '/AddLearnerTrade',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n TradeID: this.state.selectedLearnerTrade[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"view\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerTrade',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n TradeID: this.state.selectedLearnerTrade[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem,\r\n viewOnly: true\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerTrade: selection })\r\n } else {\r\n this.setState({ selectedLearnerTrade: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Trades > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Trade\"}\r\n promptContent={\"Are you sure you want to remove the learner Trade record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerTrade));\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function LearnershipSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport LearnershipSetupSearchForm from '../program/LearnershipSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'LearnershipCode', numeric: false, disablePadding: true, label: 'Learnership Code' },\r\n { id: 'LearnershipTitle', numeric: false, disablePadding: true, label: 'Learnership Title' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'CompletionDate' },\r\n { id: 'Client', numeric: false, disablePadding: true, label: 'Client' },\r\n { id: 'ProjectNumber', numeric: false, disablePadding: true, label: 'Project Number' }\r\n];\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerLearnership extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n console.log(this.props.programmeId);\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"LearnershipProgrammeCode\", Value: \"\" },\r\n { Name: \"LearnershipProgrammeDescription\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: this.props.programmeId },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"LearnershipProgrammeCode\", Value: \"\" },\r\n { Name: \"LearnershipProgrammeDescription\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n LearnershipProgrammeCode: \"\",\r\n LearnershipProgrammeDescription: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n LearnershipProgrammeCode: \"\",\r\n LearnershipProgrammeDescription: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false, \r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', visible: this.props.menuPermissionItem.View },\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: \"\", tooltip: \"Remove learnership\", icon: \"DeleteIcon\", visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'project', label: 'GO TO PROJECT', tooltip: 'go to project', visible: this.props.onMenuSpecificPermissionItem('/GrantSetupSearch').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for Learnership removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerLearnership',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n LearnershipID: 0,\r\n hideFields: true,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerLearnership',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n LearnershipID: this.state.selectedLearnerLearnership[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem\r\n }\r\n })\r\n }\r\n else if (buttonId === \"view\") {\r\n this.props.history.push({\r\n pathname: '/AddLearnerLearnership',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n LearnershipID: this.state.selectedLearnerLearnership[0].Id,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames,\r\n permissions: this.props.menuPermissionItem,\r\n viewOnly: true\r\n }\r\n })\r\n }\r\n else if (buttonId === \"project\") {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: this.state.selectedLearnerLearnership[0].ProjectID,\r\n hideFields: false\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerLearnership: selection })\r\n } else {\r\n this.setState({ selectedLearnerLearnership: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Learnerships > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Learner Learnership\"}\r\n promptContent={\"Are you sure you want to remove the learner Learnership record?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerLearnership));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst headCells = [\r\n { id: 'AgreementReferenceNumber', numeric: false, disablePadding: true, label: 'Agreement Reference No.' },\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'ProgrammeCode' },\r\n { id: 'ProgrammeTitle', numeric: false, disablePadding: true, label: 'ProgrammeTitle' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'Completion Date' },\r\n { id: 'RequiredCredits', numeric: false, disablePadding: true, label: 'Required Credits' },\r\n { id: 'TotalCredits', numeric: false, disablePadding: true, label: 'Total Credits' },\r\n { id: 'AchievedCredits', numeric: false, disablePadding: true, label: 'Achieved Credits' },\r\n { id: 'CertificateNumber', numeric: false, disablePadding: true, label: 'Certificate Number' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'TrainingProvider', numeric: false, disablePadding: true, label: 'Training Provider' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass LearnerLearnershipAchievement extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n \r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n LearnershipProgrammeCode: \"\",\r\n LearnershipProgrammeDescription: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n LearnershipProgrammeCode: \"\",\r\n LearnershipProgrammeDescription: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n this.state = \r\n {\r\n model: model,\r\n showTable: true,\r\n selectedLearnership: null,\r\n searchParameters: [{ Name: \"LearnerID\", Value: this.props.location.state.learnerID }],\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [{\r\n id: 'achievements', label: 'ACHIEVEMENTS', tooltip: 'View achieved details',\r\n disabled: utils.isNull(this.state.selectedLearnership)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n \r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"achievements\") {\r\n this.props.history.push({\r\n pathname: '/ViewLearnershipAchievementUS',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n LearnerLearnershipID: this.state.selectedLearnership,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnership: selection[0].Id });\r\n } else {\r\n this.setState({ selectedLearnership: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"achievements\", selection === null || selection.length === 0);\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Learnership Achievements > ${this.props.location.state.learnerNames}`}\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />)}\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnerLearnershipAchievement)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst headCells = [\r\n { id: 'AgreementReferenceNumber', numeric: false, disablePadding: true, label: 'Unit Standard Reference No.' },\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'Unit Standard Code' },\r\n { id: 'ProgrammeTitle', numeric: false, disablePadding: true, label: 'Unit Standard Title' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'Completion Date' },\r\n { id: 'RequiredCredits', numeric: false, disablePadding: true, label: 'Required Credits' },\r\n { id: 'TotalCredits', numeric: false, disablePadding: true, label: 'Total Credits' },\r\n { id: 'AchievedCredits', numeric: false, disablePadding: true, label: 'Achieved Credits' },\r\n { id: 'CertificateNumber', numeric: false, disablePadding: true, label: 'Certificate Number' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'TrainingProvider', numeric: false, disablePadding: true, label: 'Training Provider' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass LearnerUnitStandardAchievement extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n \r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n UnitStandardProgrammeCode: \"\",\r\n UnitStandardProgrammeDescription: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n UnitStandardProgrammeCode: \"\",\r\n UnitStandardProgrammeDescription: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n this.state = \r\n {\r\n model: model,\r\n showTable: true,\r\n selectedUnitStandard: null,\r\n searchParameters: [{ Name: \"LearnerID\", Value: this.props.location.state.learnerID }],\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n \r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUnitStandard: selection[0].Id });\r\n } else {\r\n this.setState({ selectedUnitStandard: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"achievements\", selection === null || selection.length === 0);\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Unit Standard Achievements > ${this.props.location.state.learnerNames}`}\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />)}\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnerUnitStandardAchievement)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst headCells = [\r\n { id: 'AgreementReferenceNumber', numeric: false, disablePadding: true, label: 'Qualification Reference No.' },\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'Qualification Code' },\r\n { id: 'ProgrammeTitle', numeric: false, disablePadding: true, label: 'Qualification Title' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'Completion Date' },\r\n { id: 'RequiredCredits', numeric: false, disablePadding: true, label: 'Required Credits' },\r\n { id: 'TotalCredits', numeric: false, disablePadding: true, label: 'Total Credits' },\r\n { id: 'AchievedCredits', numeric: false, disablePadding: true, label: 'Achieved Credits' },\r\n { id: 'CertificateNumber', numeric: false, disablePadding: true, label: 'Certificate Number' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'TrainingProvider', numeric: false, disablePadding: true, label: 'Training Provider' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass LearnerQualificationAchievement extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n \r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n QualificationProgrammeCode: \"\",\r\n QualificationProgrammeDescription: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n QualificationProgrammeCode: \"\",\r\n QualificationProgrammeDescription: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n this.state = \r\n {\r\n model: model,\r\n showTable: true,\r\n selectedQualification: null,\r\n searchParameters: [{ Name: \"LearnerID\", Value: this.props.location.state.learnerID }],\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [{\r\n id: 'achievements', label: 'ACHIEVEMENTS', tooltip: 'View achieved details',\r\n disabled: utils.isNull(this.state.selectedQualification)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n \r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"achievements\") {\r\n this.props.history.push({\r\n pathname: '/ViewQualificationAchievementUS',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n LearnerQualificationID: this.state.selectedQualification,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedQualification: selection[0].Id });\r\n } else {\r\n this.setState({ selectedQualification: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"achievements\", selection === null || selection.length === 0);\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Qualification Achievements > ${this.props.location.state.learnerNames}`}\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />)}\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnerQualificationAchievement)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst headCells = [\r\n { id: 'AgreementReferenceNumber', numeric: false, disablePadding: true, label: 'Skills Programme Reference No.' },\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'Skills Programme Code' },\r\n { id: 'ProgrammeTitle', numeric: false, disablePadding: true, label: 'Skills Programme Title' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'Completion Date' },\r\n { id: 'RequiredCredits', numeric: false, disablePadding: true, label: 'Required Credits' },\r\n { id: 'TotalCredits', numeric: false, disablePadding: true, label: 'Total Credits' },\r\n { id: 'AchievedCredits', numeric: false, disablePadding: true, label: 'Achieved Credits' },\r\n { id: 'CertificateNumber', numeric: false, disablePadding: true, label: 'Certificate Number' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'TrainingProvider', numeric: false, disablePadding: true, label: 'Training Provider' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass LearnerSkillsProgrammeAchievement extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n \r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n SkillsProgrammeProgrammeCode: \"\",\r\n SkillsProgrammeProgrammeDescription: \"\",\r\n ProgrammeID: this.props.programmeId,\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n SkillsProgrammeProgrammeCode: \"\",\r\n SkillsProgrammeProgrammeDescription: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n this.state = \r\n {\r\n model: model,\r\n showTable: true,\r\n selectedSkillsProgramme: null,\r\n searchParameters: [{ Name: \"LearnerID\", Value: this.props.location.state.learnerID }],\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [{\r\n id: 'achievements', label: 'ACHIEVEMENTS', tooltip: 'View achieved details',\r\n disabled: utils.isNull(this.state.selectedSkillsProgramme)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n \r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"achievements\") {\r\n this.props.history.push({\r\n pathname: '/ViewSkillsProgrammeAchievementUS',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n LearnerSkillsProgrammeID: this.state.selectedSkillsProgramme,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedSkillsProgramme: selection[0].Id });\r\n } else {\r\n this.setState({ selectedSkillsProgramme: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"achievements\", selection === null || selection.length === 0);\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Skills Programme Achievements > ${this.props.location.state.learnerNames}`}\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />)}\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnerSkillsProgrammeAchievement)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport LearnershipSetupSearchForm from '../program/LearnershipSetupSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'Learnership Code' },\r\n { id: 'ProgrammeTitle', numeric: false, disablePadding: true, label: 'Learnership Title' },\r\n { id: 'StudentNumber', numeric: false, disablePadding: true, label: 'Student Number' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'Completion Date' },\r\n { id: 'ContractNumber', numeric: false, disablePadding: true, label: 'Contract Number' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'CertificateNumber', numeric: false, disablePadding: true, label: 'Certificate Number' },\r\n { id: 'DateCertificateCreated', numeric: false, disablePadding: true, label: 'Date Certificate Created' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerLearnershipAssessment extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = !utils.isNull(this.props.location.state.learnerID) ? [\r\n { Name: \"LearnershipCode\", Value: \"\" },\r\n { Name: \"LearnershipTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n :\r\n [\r\n { Name: \"LearnershipCode\", Value: \"\" },\r\n { Name: \"LearnershipTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ];\r\n\r\n let model = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n LearnershipCode: \"\",\r\n LearnershipTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n :\r\n {\r\n LearnershipCode: \"\",\r\n LearnershipTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n }\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'View', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for Candidacy removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.props.history.push({\r\n pathname: '/ViewLearnershipAssessment',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n LearnershipID: this.state.selectedLearnerLearnership[0].Id,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerLearnership: selection })\r\n } else {\r\n this.setState({ selectedLearnerLearnership: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n

\r\n {`Learner > Learnership Assessments > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(LearnerLearnershipAssessment));\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\n\r\nconst headCells = [\r\n { id: 'UnitStandardCode', numeric: false, disablePadding: true, label: 'Unit Standard Code' },\r\n { id: 'UnitStandardDescription', numeric: false, disablePadding: true, label: 'Unit Standard Description' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'AssessmentDate', numeric: false, disablePadding: true, label: 'Assessment Date' },\r\n { id: 'Assessor', numeric: false, disablePadding: true, label: 'Assessor' },\r\n { id: 'ModerationDate', numeric: false, disablePadding: true, label: 'Moderation Date' },\r\n { id: 'Moderator', numeric: false, disablePadding: true, label: 'Moderator' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass ViewLearnershipAchievementUS extends Component {\r\n\r\n state = {\r\n LearnershipDetails: {\r\n LearnershipProgrammeDescription: \"\",\r\n LearnershipProgrammeCode: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n showTable: true,\r\n searchParameters: [{ Name: \"LearnerLearnershipID\", Value: this.props.location.state.LearnerLearnershipID }],\r\n Learner: this.props.location.state.LearnerID\r\n };\r\n\r\n toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/LearnerLearnershipAchievements',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Achieved Learnership Unit Standards > ${this.props.location.state.learnerNames}`}\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />)}\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ViewLearnershipAchievementUS);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\n\r\nconst headCells = [\r\n { id: 'UnitStandardCode', numeric: false, disablePadding: true, label: 'Unit Standard Code' },\r\n { id: 'UnitStandardDescription', numeric: false, disablePadding: true, label: 'Unit Standard Description' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'AssessmentDate', numeric: false, disablePadding: true, label: 'Assessment Date' },\r\n { id: 'Assessor', numeric: false, disablePadding: true, label: 'Assessor' },\r\n { id: 'ModerationDate', numeric: false, disablePadding: true, label: 'Moderation Date' },\r\n { id: 'Moderator', numeric: false, disablePadding: true, label: 'Moderator' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass ViewSkillsProgrammeAchievementUS extends Component {\r\n\r\n state = {\r\n SkillsProgrammeDetails: {\r\n SkillsProgrammeProgrammeDescription: \"\",\r\n SkillsProgrammeProgrammeCode: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n showTable: true,\r\n searchParameters: [{ Name: \"LearnerSkillsProgrammeID\", Value: this.props.location.state.LearnerSkillsProgrammeID }],\r\n Learner: this.props.location.state.LearnerID\r\n };\r\n\r\n toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/LearnerSkillsProgrammeAchievements',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Achieved Skills Programme Unit Standards > ${this.props.location.state.learnerNames}`}\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />)}\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ViewSkillsProgrammeAchievementUS);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\n\r\nconst headCells = [\r\n { id: 'UnitStandardCode', numeric: false, disablePadding: true, label: 'Unit Standard Code' },\r\n { id: 'UnitStandardDescription', numeric: false, disablePadding: true, label: 'Unit Standard Description' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'AssessmentDate', numeric: false, disablePadding: true, label: 'Assessment Date' },\r\n { id: 'Assessor', numeric: false, disablePadding: true, label: 'Assessor' },\r\n { id: 'ModerationDate', numeric: false, disablePadding: true, label: 'Moderation Date' },\r\n { id: 'Moderator', numeric: false, disablePadding: true, label: 'Moderator' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass ViewQualificationAchievementUS extends Component {\r\n\r\n state = {\r\n QualificationDetails: {\r\n QualificationProgrammeDescription: \"\",\r\n QualificationProgrammeCode: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n showTable: true,\r\n searchParameters: [{ Name: \"LearnerQualificationID\", Value: this.props.location.state.LearnerQualificationID }],\r\n Learner: this.props.location.state.LearnerID\r\n };\r\n\r\n toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/LearnerQualificationAchievements',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Achieved Qualification Unit Standards > ${this.props.location.state.learnerNames}`}\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />)}\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ViewQualificationAchievementUS);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\n\r\nexport default function ModeratorSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport \"./../../App.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../View.css\";\r\nimport \"./Moderator.css\";\r\nimport ModeratorSearchForm from './ModeratorSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'MiddleName', numeric: false, disablePadding: true, label: 'Middle Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'ID Number' },\r\n { id: 'RegistrationNumber', numeric: false, disablePadding: true, label: 'Registration Number' }\r\n];\r\n\r\n\r\nconst searchParameters = [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"RegistrationNumber\", Value: \"\" }\r\n]\r\n\r\nconst filterParameters = [\r\n { dataField: \"FirstName\", text: \"FirstName\" },\r\n { dataField: \"MiddleName\", text: \"MiddleName\" },\r\n { dataField: \"Surname\", text: \"Surname\" },\r\n { dataField: \"IDNo\", text: \"IDNo\" },\r\n { dataField: \"RegistrationNumber\", text: \"RegistrationNumber\" }\r\n]\r\n\r\nclass ModeratorSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters = this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n\r\n [\r\n { Name: \"ID\", Value: this.props.programmeId },\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"RegistrationNumber\", Value: \"\" }\r\n ]\r\n :\r\n\r\n [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"RegistrationNumber\", Value: \"\" }\r\n ]\r\n\r\n if (!utils.isNull(this.props.programmeId)) {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n RegistrationNumber: \"\",\r\n ID: this.props.programmeId,\r\n },\r\n keyUpSwitch: false,\r\n selectedModerator: null\r\n };\r\n }\r\n else {\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n RegistrationNumber: \"\"\r\n },\r\n keyUpSwitch: false,\r\n selectedModerator: null\r\n };\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Learnership\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedModerator: selection })\r\n } else {\r\n this.setState({ selectedModerator: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/addModderatorFlow'\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }} />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(ModeratorSearch));\r\n\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from \"../../ViewUtils\";\r\nimport AssessorSearch from \"../assessor/AssessorSearch\";\r\nimport ModeratorSearch from \"../moderator/ModeratorSearch\";\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n\r\nconst utils = new ViewUtils();\r\nexport const AssessmentHeaderForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n \r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Update Assessment Below:
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"Assessor\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n {\r\n let currentDate = new Date();\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.AssessmentDate)\r\n && formValues.AssessmentDate.getTime() < currentDate.getTime()\r\n }, message: \"Assessment date must be prior to the current date\"\r\n }}\r\n />\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"Moderator\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n {\r\n let currentDate = new Date();\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.ModerationDate)\r\n && formValues.ModerationDate.getTime() < currentDate.getTime()\r\n }, message: \"Moderation date must be prior to the current date\"\r\n }}\r\n />\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { AssessmentHeaderForm } from './AssessmentHeaderForm';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Code' },\r\n { id: \"ProgrammeTitle\", numeric: false, disablePadding: true, label: \"SAQA Unit Standard Title\" },\r\n { id: \"Credits\", numeric: false, disablePadding: true, label: \"Credits\" },\r\n { id: \"UnitStandardType\", numeric: false, disablePadding: true, label: \"Unit Standard Type\" },\r\n { id: \"RPL\", numeric: false, disablePadding: true, label: \"RPL\" },\r\n { id: \"Assessor\", numeric: false, disablePadding: true, label: \"Assessor\" },\r\n { id: \"AssessmentDate\", numeric: false, disablePadding: true, label: \"Assessment Date\" },\r\n { id: \"Moderator\", numeric: false, disablePadding: true, label: \"Moderator\" },\r\n { id: \"ModerationDate\", numeric: false, disablePadding: true, label: \"Moderation Date\" },\r\n { id: \"Status\", numeric: false, disablePadding: true, label: \"Status\" },\r\n]\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst learnerRef = React.createRef();\r\n\r\nclass ViewLearnershipAssessment extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n AssessmentID: null\r\n },\r\n selectedUnitStandards: null,\r\n keyUpSwitch: false,\r\n updateUSd: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n showTable: true,\r\n searchParameters: [{ Name: \"AssessmentID\", Value: this.props.location.state.LearnershipID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'cancel', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'updateUS', label: '', tooltip: 'UPDATE UNIT STANDARDS', icon: 'UpdateIcon' },\r\n { id: 'remove', label: '', tooltip: 'REMOVE SELECTED ASSESSMENTS', icon: \"DeleteIcon\" },\r\n { id: 'closeoff', label: 'CLOSE OFF', tooltip: 'CLOSE OFF', disabled: true },\r\n { id: 'qaapproval', label: 'QA APPROVAL', tooltip: 'QA APPROVAL', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"updateUS\" === buttonId) {\r\n this.updateUSDocuments();\r\n }\r\n else if (\"cancel\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnerLearnershipAssessments',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n } else if (\"remove\" === buttonId) {\r\n this.removeAssessments();\r\n\r\n } else if (\"closeoff\" === buttonId) {\r\n this.closeOff();\r\n\r\n } else if (\"qaapproval\" === buttonId) {\r\n this.qaApproval();\r\n\r\n }\r\n }\r\n\r\n removeAssessments() {\r\n const UnitStandardIDs = this.state.selectedUnitStandards.map(e => e.Id);\r\n let data = {\r\n UnitStandardIDs: UnitStandardIDs,\r\n ...this.state.model\r\n }\r\n let input = JSON.stringify(data);\r\n utils.invokeUrl(\"api/sims/LearnerLearnershipAssessment/RemoveLearnerLearnershipAssessment\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n\r\n closeOff() {\r\n let url = \"api/sims/LearnerLearnershipAssessment/CloseOffAssessment?AssessmentID=\" + this.props.location.state.LearnershipID;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCloseOffandQA(response)\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", true);\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n qaApproval() {\r\n let url = \"api/sims/LearnerLearnershipAssessment/ApproveAssessment?AssessmentID=\" + this.props.location.state.LearnershipID;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCloseOffandQA(response)\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", true);\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n successCloseOffandQA = (response) => {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n showTable: true\r\n })\r\n });\r\n }\r\n\r\n handleToolbarButtonClickClose = (buttonId) => {\r\n if (\"cancel\" === buttonId) {\r\n \r\n }\r\n }\r\n\r\n GetQAPermission() {\r\n let url = \"api/sims/LearnerLearnershipAssessment/GetQAPermission?AssessmentID=\" + this.props.location.state.LearnershipID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"1\") {\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", true);\r\n }\r\n else {\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", false);\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n GetClosePermission() {\r\n let url = \"api/sims/LearnerLearnershipAssessment/GetClosePermission?AssessmentID=\" + this.props.location.state.LearnershipID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"1\") {\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", true);\r\n }\r\n else {\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", false);\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n componentDidMount() {\r\n this.GetClosePermission();\r\n this.GetQAPermission();\r\n }\r\n\r\n successCallback = (response) => {\r\n this.setState({\r\n showTable: false,\r\n message: response.Message, messageStyle: response.MessageType\r\n }, () => {\r\n this.setState({ showTable: true, message: response.Message, messageStyle: response.MessageType })\r\n });\r\n this.GetQAPermission();\r\n }\r\n\r\n updateUSDocuments() {\r\n const UnitStandardIDs = this.state.selectedUnitStandards.map(e => e.Id);\r\n let data = {\r\n UnitStandardIDs: UnitStandardIDs,\r\n ...this.state.model\r\n }\r\n let input = JSON.stringify(data);\r\n utils.invokeUrl(\"api/sims/LearnerLearnershipAssessment/UpdateLearnerLearnershipAssessment\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUnitStandards: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedUnitStandards: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n Message: \"\"\r\n });\r\n\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", true);\r\n toolbarRef.current.setButtonDisabled(\"Cancel\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Update Learnership Assessment > ${this.props.location.state.learnerNames}`}\r\n

\r\n \r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)}\r\n controllerName={\"LearnerLearnershipAssessment\"}\r\n dataURL='api/sims/LearnerLearnershipAssessment/GetLearnerLearnershipAssessmentHeaderDetails' />\r\n )}\r\n \r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n \r\n \r\n
\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ViewLearnershipAssessment)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { AssessmentHeaderForm } from './AssessmentHeaderForm';\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Code' },\r\n { id: \"ProgrammeTitle\", numeric: false, disablePadding: true, label: \"SAQA Unit Standard Title\" },\r\n { id: \"Credits\", numeric: false, disablePadding: true, label: \"Credits\" },\r\n { id: \"UnitStandardType\", numeric: false, disablePadding: true, label: \"Unit Standard Type\" },\r\n { id: \"RPL\", numeric: false, disablePadding: true, label: \"RPL\" },\r\n { id: \"Assessor\", numeric: false, disablePadding: true, label: \"Assessor\" },\r\n { id: \"AssessmentDate\", numeric: false, disablePadding: true, label: \"Assessment Date\" },\r\n { id: \"Moderator\", numeric: false, disablePadding: true, label: \"Moderator\" },\r\n { id: \"ModerationDate\", numeric: false, disablePadding: true, label: \"Moderation Date\" },\r\n { id: \"Status\", numeric: false, disablePadding: true, label: \"Status\" },\r\n]\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst learnerRef = React.createRef();\r\n\r\nclass ViewSkillsProgrammeAssessment extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n AssessmentID: null\r\n },\r\n selectedUnitStandards: null,\r\n keyUpSwitch: false,\r\n updateUSd: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n showTable: true,\r\n searchParameters: [{ Name: \"AssessmentID\", Value: this.props.location.state.SkillsProgrammeID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'cancel', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'updateUS', label: '', tooltip: 'UPDATE UNIT STANDARDS', icon: 'UpdateIcon' },\r\n { id: 'remove', label: '', tooltip: 'REMOVE SELECTED ASSESSMENTS', icon: \"DeleteIcon\" },\r\n { id: 'closeoff', label: 'CLOSE OFF', tooltip: 'CLOSE OFF', disabled: true },\r\n { id: 'qaapproval', label: 'QA APPROVAL', tooltip: 'QA APPROVAL', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"updateUS\" === buttonId) {\r\n this.updateUSDocuments();\r\n\r\n } else if (\"remove\" === buttonId) {\r\n this.removeAssessments();\r\n\r\n } else if (\"cancel\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnerSkillsProgrammeAssessment',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n } else if (\"closeoff\" === buttonId) {\r\n this.closeOff();\r\n\r\n } else if (\"qaapproval\" === buttonId) {\r\n this.qaApproval();\r\n\r\n }\r\n }\r\n\r\n handleToolbarButtonClickClose = (buttonId) => {\r\n if (\"cancel\" === buttonId) {\r\n \r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n this.setState({\r\n showTable: false,\r\n message: response.Message, messageStyle: response.MessageType\r\n }, () => {\r\n this.setState({ showTable: true, message: response.Message, messageStyle: response.MessageType })\r\n });\r\n }\r\n\r\n successCloseOffandQA = (response) => {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n showTable: true\r\n })\r\n });\r\n }\r\n\r\n closeOff() {\r\n let url = \"api/sims/LearnerSkillsProgrammeAssessment/CloseOffAssessment?AssessmentID=\" + this.props.location.state.SkillsProgrammeID;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCloseOffandQA(response)\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", true);\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n qaApproval() {\r\n let url = \"api/sims/LearnerSkillsProgrammeAssessment/ApproveAssessment?AssessmentID=\" + this.props.location.state.SkillsProgrammeID;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCloseOffandQA(response)\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", true);\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n removeAssessments() {\r\n const UnitStandardIDs = this.state.selectedUnitStandards.map(e => e.Id);\r\n let data = {\r\n UnitStandardIDs: UnitStandardIDs,\r\n ...this.state.model\r\n }\r\n let input = JSON.stringify(data);\r\n utils.invokeUrl(\"api/sims/LearnerSkillsProgrammeAssessment/RemoveLearnerSkillsProgrammeAssessment\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.GetClosePermission();\r\n this.GetQAPermission();\r\n }\r\n\r\n GetQAPermission() {\r\n let url = \"api/sims/LearnerSkillsProgrammeAssessment/GetQAPermission?AssessmentID=\" + this.props.location.state.SkillsProgrammeID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"1\") {\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", true);\r\n }\r\n else {\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", false);\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n GetClosePermission() {\r\n let url = \"api/sims/LearnerSkillsProgrammeAssessment/GetClosePermission?AssessmentID=\" + this.props.location.state.SkillsProgrammeID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"1\") {\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", true);\r\n }\r\n else {\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", false);\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n updateUSDocuments() {\r\n const UnitStandardIDs = this.state.selectedUnitStandards.map(e => e.Id);\r\n let data = {\r\n UnitStandardIDs: UnitStandardIDs,\r\n ...this.state.model\r\n }\r\n let input = JSON.stringify(data);\r\n utils.invokeUrl(\"api/sims/LearnerSkillsProgrammeAssessment/UpdateLearnerSkillsProgrammeAssessment\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUnitStandards: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedUnitStandards: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n Message: \"\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", true);\r\n toolbarRef.current.setButtonDisabled(\"Cancel\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Update Skills Programme Assessment > ${this.props.location.state.learnerNames}`}\r\n

\r\n \r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)}\r\n controllerName={\"LearnerSkillsProgrammeAssessment\"}\r\n dataURL='api/sims/LearnerSkillsProgrammeAssessment/GetLearnerSkillsProgrammeAssessmentHeaderDetails' />\r\n )}\r\n \r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n \r\n \r\n
\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ViewSkillsProgrammeAssessment)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { AssessmentHeaderForm } from './AssessmentHeaderForm';\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Code' },\r\n { id: \"ProgrammeTitle\", numeric: false, disablePadding: true, label: \"SAQA Unit Standard Title\" },\r\n { id: \"Credits\", numeric: false, disablePadding: true, label: \"Credits\" },\r\n { id: \"UnitStandardType\", numeric: false, disablePadding: true, label: \"Unit Standard Type\" },\r\n { id: \"RPL\", numeric: false, disablePadding: true, label: \"RPL\" },\r\n { id: \"Assessor\", numeric: false, disablePadding: true, label: \"Assessor\" },\r\n { id: \"AssessmentDate\", numeric: false, disablePadding: true, label: \"Assessment Date\" },\r\n { id: \"Moderator\", numeric: false, disablePadding: true, label: \"Moderator\" },\r\n { id: \"ModerationDate\", numeric: false, disablePadding: true, label: \"Moderation Date\" },\r\n { id: \"Status\", numeric: false, disablePadding: true, label: \"Status\" },\r\n]\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst learnerRef = React.createRef();\r\n\r\nclass ViewBursaryAssessment extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n AssessmentID: null\r\n },\r\n selectedUnitStandards: null,\r\n keyUpSwitch: false,\r\n updateUSd: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n showTable: true,\r\n searchParameters: [{ Name: \"AssessmentID\", Value: this.props.location.state.BursaryID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'cancel', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'updateUS', label: '', tooltip: 'UPDATE UNIT STANDARDS', icon: 'UpdateIcon' },\r\n { id: 'remove', label: '', tooltip: 'REMOVE SELECTED ASSESSMENTS', icon: \"DeleteIcon\" },\r\n { id: 'closeoff', label: 'CLOSE OFF', tooltip: 'CLOSE OFF', disabled: true },\r\n { id: 'qaapproval', label: 'QA APPROVAL', tooltip: 'QA APPROVAL', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"updateUS\" === buttonId) {\r\n this.updateUSDocuments();\r\n\r\n } else if (\"remove\" === buttonId) {\r\n this.removeAssessments();\r\n\r\n } else if (\"cancel\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnerBursaryAssessment',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n } else if (\"closeoff\" === buttonId) {\r\n this.closeOff();\r\n\r\n } else if (\"qaapproval\" === buttonId) {\r\n this.qaApproval();\r\n\r\n }\r\n }\r\n\r\n handleToolbarButtonClickClose = (buttonId) => {\r\n if (\"cancel\" === buttonId) {\r\n \r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n this.setState({\r\n showTable: false,\r\n message: response.Message, messageStyle: response.MessageType\r\n }, () => {\r\n this.setState({ showTable: true, message: response.Message, messageStyle: response.MessageType })\r\n });\r\n }\r\n\r\n successCloseOffandQA = (response) => {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n showTable: true\r\n })\r\n });\r\n }\r\n\r\n closeOff() {\r\n let url = \"api/sims/LearnerBursaryAssessment/CloseOffAssessment?AssessmentID=\" + this.props.location.state.BursaryID;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCloseOffandQA(response)\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", true);\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n qaApproval() {\r\n let url = \"api/sims/LearnerBursaryAssessment/ApproveAssessment?AssessmentID=\" + this.props.location.state.BursaryID;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCloseOffandQA(response)\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", true);\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n removeAssessments() {\r\n const UnitStandardIDs = this.state.selectedUnitStandards.map(e => e.Id);\r\n let data = {\r\n UnitStandardIDs: UnitStandardIDs,\r\n ...this.state.model\r\n }\r\n let input = JSON.stringify(data);\r\n utils.invokeUrl(\"api/sims/LearnerBursaryAssessment/RemoveLearnerBursaryAssessment\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.GetClosePermission();\r\n this.GetQAPermission();\r\n }\r\n\r\n GetQAPermission() {\r\n let url = \"api/sims/LearnerBursaryAssessment/GetQAPermission?AssessmentID=\" + this.props.location.state.BursaryID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"1\") {\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", true);\r\n }\r\n else {\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", false);\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n GetClosePermission() {\r\n let url = \"api/sims/LearnerBursaryAssessment/GetClosePermission?AssessmentID=\" + this.props.location.state.BursaryID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"1\") {\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", true);\r\n }\r\n else {\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", false);\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n updateUSDocuments() {\r\n const UnitStandardIDs = this.state.selectedUnitStandards.map(e => e.Id);\r\n let data = {\r\n UnitStandardIDs: UnitStandardIDs,\r\n ...this.state.model\r\n }\r\n let input = JSON.stringify(data);\r\n utils.invokeUrl(\"api/sims/LearnerBursaryAssessment/UpdateLearnerBursaryAssessment\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUnitStandards: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedUnitStandards: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n Message: \"\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", true);\r\n toolbarRef.current.setButtonDisabled(\"Cancel\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Update Bursary Assessment > ${this.props.location.state.learnerNames}`}\r\n

\r\n \r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)}\r\n controllerName={\"LearnerBursaryAssessment\"}\r\n dataURL='api/sims/LearnerBursaryAssessment/GetLearnerBursaryAssessmentHeaderDetails' />\r\n )}\r\n \r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n \r\n \r\n
\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ViewBursaryAssessment)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { AssessmentHeaderForm } from './AssessmentHeaderForm';\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Code' },\r\n { id: \"ProgrammeTitle\", numeric: false, disablePadding: true, label: \"SAQA Unit Standard Title\" },\r\n { id: \"Credits\", numeric: false, disablePadding: true, label: \"Credits\" },\r\n { id: \"UnitStandardType\", numeric: false, disablePadding: true, label: \"Unit Standard Type\" },\r\n { id: \"RPL\", numeric: false, disablePadding: true, label: \"RPL\" },\r\n { id: \"Assessor\", numeric: false, disablePadding: true, label: \"Assessor\" },\r\n { id: \"AssessmentDate\", numeric: false, disablePadding: true, label: \"Assessment Date\" },\r\n { id: \"Moderator\", numeric: false, disablePadding: true, label: \"Moderator\" },\r\n { id: \"ModerationDate\", numeric: false, disablePadding: true, label: \"Moderation Date\" },\r\n { id: \"Status\", numeric: false, disablePadding: true, label: \"Status\" },\r\n]\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst learnerRef = React.createRef();\r\n\r\nclass ViewQualificationAssessment extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n AssessmentID: null\r\n },\r\n selectedUnitStandards: null,\r\n keyUpSwitch: false,\r\n updateUSd: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n showTable: true,\r\n searchParameters: [{ Name: \"AssessmentID\", Value: this.props.location.state.QualificationID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'cancel', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'updateUS', label: '', tooltip: 'UPDATE UNIT STANDARDS', icon: 'UpdateIcon' },\r\n { id: 'remove', label: '', tooltip: 'REMOVE SELECTED ASSESSMENTS', icon: \"DeleteIcon\" },\r\n { id: 'closeoff', label: 'CLOSE OFF', tooltip: 'CLOSE OFF', disabled: true },\r\n { id: 'qaapproval', label: 'QA APPROVAL', tooltip: 'QA APPROVAL', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"updateUS\" === buttonId) {\r\n this.updateUSDocuments();\r\n }\r\n else if (\"cancel\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnerQualificationAssessment',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n } else if (\"remove\" === buttonId) {\r\n this.removeAssessments();\r\n\r\n } else if (\"closeoff\" === buttonId) {\r\n this.closeOff();\r\n\r\n } else if (\"qaapproval\" === buttonId) {\r\n this.qaApproval();\r\n\r\n }\r\n }\r\n\r\n handleToolbarButtonClickClose = (buttonId) => {\r\n if (\"cancel\" === buttonId) {\r\n \r\n }\r\n }\r\n\r\n removeAssessments() {\r\n const UnitStandardIDs = this.state.selectedUnitStandards.map(e => e.Id);\r\n let data = {\r\n UnitStandardIDs: UnitStandardIDs,\r\n ...this.state.model\r\n }\r\n let input = JSON.stringify(data);\r\n utils.invokeUrl(\"api/sims/LearnerQualificationAssessment/RemoveLearnerQualificationAssessment\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n\r\n successCallback = (response) => {\r\n this.setState({\r\n showTable: false,\r\n message: response.Message, messageStyle: response.MessageType\r\n }, () => {\r\n this.setState({ showTable: true, message: response.Message, messageStyle: response.MessageType })\r\n });\r\n }\r\n\r\n GetQAPermission() {\r\n let url = \"api/sims/LearnerQualificationAssessment/GetQAPermission?AssessmentID=\" + this.props.location.state.QualificationID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"1\") {\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", true);\r\n }\r\n else {\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", false);\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n componentDidMount() {\r\n this.GetClosePermission();\r\n this.GetQAPermission();\r\n }\r\n\r\n GetClosePermission() {\r\n let url = \"api/sims/LearnerQualificationAssessment/GetClosePermission?AssessmentID=\" + this.props.location.state.QualificationID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"1\") {\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", true);\r\n }\r\n else {\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", false);\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n qaApproval() {\r\n let url = \"api/sims/LearnerQualificationAssessment/ApproveAssessment?AssessmentID=\" + this.props.location.state.QualificationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCloseOffandQA(response)\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", true);\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n successCloseOffandQA = (response) => {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n showTable: true\r\n })\r\n });\r\n }\r\n\r\n closeOff() {\r\n let url = \"api/sims/LearnerQualificationAssessment/CloseOffAssessment?AssessmentID=\" + this.props.location.state.QualificationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCloseOffandQA(response)\r\n toolbarRef.current.setButtonDisabled(\"closeoff\", true);\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n updateUSDocuments() {\r\n const UnitStandardIDs = this.state.selectedUnitStandards.map(e => e.Id);\r\n let data = {\r\n UnitStandardIDs: UnitStandardIDs,\r\n ...this.state.model\r\n }\r\n let input = JSON.stringify(data);\r\n utils.invokeUrl(\"api/sims/LearnerQualificationAssessment/UpdateLearnerQualificationAssessment\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUnitStandards: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedUnitStandards: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n Message: \"\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", true);\r\n toolbarRef.current.setButtonDisabled(\"Cancel\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Update Qualification Assessment > ${this.props.location.state.learnerNames}`}\r\n

\r\n \r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)}\r\n controllerName={\"LearnerQualificationAssessment\"}\r\n dataURL='api/sims/LearnerQualificationAssessment/GetLearnerQualificationAssessmentHeaderDetails' />\r\n )}\r\n \r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n \r\n \r\n
\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ViewQualificationAssessment)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { AssessmentHeaderForm } from './AssessmentHeaderForm';\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Code' },\r\n { id: \"ProgrammeTitle\", numeric: false, disablePadding: true, label: \"SAQA Unit Standard Title\" },\r\n { id: \"Credits\", numeric: false, disablePadding: true, label: \"Credits\" },\r\n { id: \"UnitStandardType\", numeric: false, disablePadding: true, label: \"Unit Standard Type\" },\r\n { id: \"RPL\", numeric: false, disablePadding: true, label: \"RPL\" },\r\n { id: \"Assessor\", numeric: false, disablePadding: true, label: \"Assessor\" },\r\n { id: \"AssessmentDate\", numeric: false, disablePadding: true, label: \"Assessment Date\" },\r\n { id: \"Moderator\", numeric: false, disablePadding: true, label: \"Moderator\" },\r\n { id: \"ModerationDate\", numeric: false, disablePadding: true, label: \"Moderation Date\" },\r\n { id: \"Status\", numeric: false, disablePadding: true, label: \"Status\" },\r\n]\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst learnerRef = React.createRef();\r\n\r\nclass ViewUnitStandardAssessment extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n AssessmentID: null\r\n },\r\n selectedUnitStandards: null,\r\n keyUpSwitch: false,\r\n updateUSd: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n showTable: true,\r\n searchParameters: [{ Name: \"AssessmentID\", Value: this.props.location.state.UnitStandardID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'cancel', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'updateUS', label: '', tooltip: 'UPDATE UNIT STANDARDS', icon: 'UpdateIcon' },\r\n { id: 'remove', label: '', tooltip: 'REMOVE SELECTED ASSESSMENTS', icon: \"DeleteIcon\" },\r\n { id: 'qaapproval', label: 'QA APPROVAL', tooltip: 'QA APPROVAL', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"updateUS\" === buttonId) {\r\n this.updateUSDocuments();\r\n }\r\n else if (\"cancel\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnerUnitStandardAssessment',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n } else if (\"remove\" === buttonId) {\r\n this.removeAssessments();\r\n\r\n } else if (\"closeoff\" === buttonId) {\r\n this.closeOff();\r\n\r\n } else if (\"qaapproval\" === buttonId) {\r\n this.qaApproval();\r\n\r\n }\r\n }\r\n\r\n removeAssessments() {\r\n const UnitStandardIDs = this.state.selectedUnitStandards.map(e => e.Id);\r\n let data = {\r\n UnitStandardIDs: UnitStandardIDs,\r\n ...this.state.model\r\n }\r\n let input = JSON.stringify(data);\r\n utils.invokeUrl(\"api/sims/LearnerUnitStandardAssessment/RemoveLearnerUSAssessment\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n\r\n handleToolbarButtonClickClose = (buttonId) => {\r\n if (\"cancel\" === buttonId) {\r\n \r\n }\r\n }\r\n\r\n GetQAPermission() {\r\n let url = \"api/sims/LearnerUnitStandardAssessment/GetQAPermission?AssessmentID=\" + this.props.location.state.UnitStandardID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"1\") {\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", true);\r\n }\r\n else {\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", false);\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n qaApproval() {\r\n let url = \"api/sims/LearnerUnitStandardAssessment/ApproveAssessment?AssessmentID=\" + this.props.location.state.UnitStandardID;\r\n utils.invokeUrl(url, (response) => {\r\n this.successQA(response)\r\n toolbarRef.current.setButtonDisabled(\"qaapproval\", true);\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n successQA = (response) => {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n showTable: true\r\n })\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.GetQAPermission();\r\n }\r\n\r\n successCallback = (response) => {\r\n this.setState({\r\n showTable: false,\r\n message: response.Message, messageStyle: response.MessageType\r\n }, () => {\r\n this.setState({ showTable: true, message: response.Message, messageStyle: response.MessageType })\r\n });\r\n }\r\n\r\n updateUSDocuments() {\r\n const UnitStandardIDs = this.state.selectedUnitStandards.map(e => e.Id);\r\n let data = {\r\n UnitStandardIDs: UnitStandardIDs,\r\n ...this.state.model\r\n }\r\n let input = JSON.stringify(data);\r\n utils.invokeUrl(\"api/sims/LearnerUnitStandardAssessment/UpdateLearnerUnitStandardAssessment\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUnitStandards: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedUnitStandards: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n Message: \"\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"updateUS\", true);\r\n toolbarRef.current.setButtonDisabled(\"Cancel\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Update Unit Standard Assessment > ${this.props.location.state.learnerNames}`}\r\n

\r\n \r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)}\r\n controllerName={\"LearnerUnitStandardAssessment\"}\r\n dataURL='api/sims/LearnerUnitStandardAssessment/GetLearnerUnitStandardAssessmentHeaderDetails' />\r\n )}\r\n \r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n \r\n \r\n
\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ViewUnitStandardAssessment)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport UnitStandardSetupSearchForm from '../program/UnitStandardSetupSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'ProgrammeTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' },\r\n { id: 'StudentNumber', numeric: false, disablePadding: true, label: 'Student Number' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'Completion Date' },\r\n { id: 'ContractNumber', numeric: false, disablePadding: true, label: 'Contract Number' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'CertificateNumber', numeric: false, disablePadding: true, label: 'Certificate Number' },\r\n { id: 'DateCertificateCreated', numeric: false, disablePadding: true, label: 'Date Certificate Created' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerUnitStandardAssessment extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = [\r\n { Name: \"SAQAUnitStandardID\", Value: \"\" },\r\n { Name: \"SAQAUnitStandardTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n\r\n let model = \r\n {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'View', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for Candidacy removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"edit\") {\r\n console.log(this.state.selectedLearnerUnitStandard[0].Id);\r\n this.props.history.push({\r\n pathname: '/ViewUnitStandardAssessment',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n UnitStandardID: this.state.selectedLearnerUnitStandard[0].Id,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerUnitStandard: selection })\r\n } else {\r\n this.setState({ selectedLearnerUnitStandard: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {`Learner > Unit Standard Assessments > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(LearnerUnitStandardAssessment));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport QualificationSetupSearchForm from '../program/QualificationSetupSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'SAQA Qualification ID' },\r\n { id: 'ProgrammeTitle', numeric: false, disablePadding: true, label: 'SAQA Qualification Title' },\r\n { id: 'StudentNumber', numeric: false, disablePadding: true, label: 'Student Number' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'Completion Date' },\r\n { id: 'ContractNumber', numeric: false, disablePadding: true, label: 'Contract Number' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'CertificateNumber', numeric: false, disablePadding: true, label: 'Certificate Number' },\r\n { id: 'DateCertificateCreated', numeric: false, disablePadding: true, label: 'Date Certificate Created' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerQualificationAssessment extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n\r\n let model = \r\n {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'View', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for Candidacy removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"edit\") {\r\n console.log(this.state.selectedLearnerQualification[0].Id);\r\n this.props.history.push({\r\n pathname: '/ViewQualificationAssessment',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n QualificationID: this.state.selectedLearnerQualification[0].Id,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerQualification: selection })\r\n } else {\r\n this.setState({ selectedLearnerQualification: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n

\r\n {`Learner > Qualification Assessments > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(LearnerQualificationAssessment));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport SkillsProgramSetupSearchForm from '../program/SkillsProgramSetupSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'Skills Programme Code' },\r\n { id: 'ProgrammeTitle', numeric: false, disablePadding: true, label: 'Skills Programme Title' },\r\n { id: 'StudentNumber', numeric: false, disablePadding: true, label: 'Student Number' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'Completion Date' },\r\n { id: 'ContractNumber', numeric: false, disablePadding: true, label: 'Contract Number' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' },\r\n { id: 'CertificateNumber', numeric: false, disablePadding: true, label: 'Certificate Number' },\r\n { id: 'DateCertificateCreated', numeric: false, disablePadding: true, label: 'Date Certificate Created' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerSkillsProgrammeAssessment extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = [\r\n { Name: \"SkillsProgrammeCode\", Value: \"\" },\r\n { Name: \"SkillsProgrammeTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n\r\n let model = \r\n {\r\n SkillsProgrammeCode: \"\",\r\n SkillsProgrammeTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'View', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for Candidacy removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.props.history.push({\r\n pathname: '/ViewSkillsProgrammeAssessment',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n SkillsProgrammeID: this.state.selectedLearnerSkillsProgramme[0].Id,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerSkillsProgramme: selection })\r\n } else {\r\n this.setState({ selectedLearnerSkillsProgramme: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n

\r\n {`Learner > Skills Programme Assessments > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(LearnerSkillsProgrammeAssessment));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport BursarySetupSearchForm from '../program/BursarySetupSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'ProgrammeCode', numeric: false, disablePadding: true, label: 'Bursary Code' },\r\n { id: 'ProgrammeTitle', numeric: false, disablePadding: true, label: 'Bursary Title' },\r\n { id: 'CommencementDate', numeric: false, disablePadding: true, label: 'Commencement Date' },\r\n { id: 'CompletionDate', numeric: false, disablePadding: true, label: 'Completion Date' },\r\n { id: 'ContractNumber', numeric: false, disablePadding: true, label: 'Contract Number' },\r\n { id: 'ProgrammeStatus', numeric: false, disablePadding: true, label: 'Programme Status' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerBursaryAssessment extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = [\r\n { Name: \"BursaryCode\", Value: \"\" },\r\n { Name: \"BursaryTitle\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: this.props.location.state.learnerID }\r\n ]\r\n\r\n let model = \r\n {\r\n BursaryCode: \"\",\r\n BursaryTitle: \"\",\r\n LearnerID: this.props.location.state.learnerID\r\n\r\n }\r\n\r\n this.state = !utils.isNull(this.props.location.state.learnerID) ?\r\n {\r\n model: model,\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'View', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n :\r\n {\r\n model: model,\r\n keyUpSwitch: false\r\n };\r\n\r\n //TODO: Add url for Candidacy removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.props.location.state.learnerID\r\n }\r\n });\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.props.history.push({\r\n pathname: '/ViewBursaryAssessment',\r\n state: {\r\n LearnerID: this.props.location.state.learnerID,\r\n BursaryID: this.state.selectedLearnerBursary[0].Id,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnerBursary: selection })\r\n } else {\r\n this.setState({ selectedLearnerBursary: null })\r\n }\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n

\r\n {`Learner > Bursary Assessments > ${this.props.location.state.learnerNames}`}\r\n

\r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(LearnerBursaryAssessment));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport SchoolEMISSearch from '../SchoolEMISSearch';\r\nimport STATSSAAreaCodeSearch from '../STATSSAAreaCodeSearch';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nconst utils = new ViewUtils();\r\nexport const ModeratorForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n\r\n const updateGPSAddress = (address, form) => {\r\n console.log(address);\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/*
*/}\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"SchoolEMISID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/* */}\r\n {/* */}\r\n\r\n {/* */}\r\n\r\n {/*
*/}\r\n {/* */}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"STATSSAAreaCodeID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
*/}\r\n {/* */}\r\n {/*
*/}\r\n {/*
*/}\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Moderator.css\";\r\nimport { Alert } from \"react-bootstrap\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ModeratorForm } from './ModeratorForm';\r\nimport { ViewContainer } from \"../../View\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\n\r\nconst moderatorRef = React.createRef();\r\n\r\nclass Moderator extends Component {\r\n\r\n state = {\r\n ModeratorDetails: {\r\n Person: {\r\n FirstName: \"\",\r\n Surname: \"\"\r\n }\r\n },\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' },\r\n\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit },\r\n {\r\n contextMenu: [\r\n { id: \"registrationDetails\", description: \"Registration Details\" },\r\n { id: \"registrationHistory\", description: \"Registration History\" }\r\n ],\r\n id: \"registration\", label: \"Registration\"\r\n },\r\n\r\n {\r\n contextMenu: [\r\n { id: \"skillsProgramme\", description: \"Skills Programme\" },\r\n { id: \"leanership\", description: \"Learnership\" },\r\n { id: \"bursary\", description: \"Bursary\" },\r\n ],\r\n id: 'programs', label: 'Programmes'\r\n },\r\n\r\n { id: 'provider', label: 'Provider', tooltip: '' },\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relationship Management' }\r\n\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ ModeratorDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n }\r\n else if (\"close\" === buttonId) {\r\n this.close();\r\n }\r\n else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/moderatorCRM',\r\n state: {\r\n ModeratorID: this.props.location.state.selection,\r\n ModeratorName: `${this.state.ModeratorDetails.FirstName} ${this.state.ModeratorDetails.Surname}`\r\n }\r\n })\r\n }\r\n else if (\"provider\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/moderatorProviderSearch',\r\n state: {\r\n ModeratorID: this.props.location.state.selection,\r\n ModeratorName: `${this.state.ModeratorDetails.FirstName} ${this.state.ModeratorDetails.Surname}`\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n if (\"registrationDetails\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/moderatorRegistrationDetails',\r\n state: {\r\n selection: this.props.location.state.selection,\r\n ModeratorName: `${this.state.ModeratorDetails.FirstName} ${this.state.ModeratorDetails.Surname}`\r\n }\r\n })\r\n } else if (\"registrationHistory\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/moderatorRegistrationHistory',\r\n state: {\r\n ModeratorID: this.props.location.state.selection,\r\n ModeratorName: this.state.ModeratorDetails.FirstName + \" \" + this.state.ModeratorDetails.Surname\r\n }\r\n })\r\n } else if (\"skillsProgramme\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/moderatorSkillsProgramme',\r\n state: {\r\n ModeratorID: this.props.location.state.selection,\r\n ModeratorName: this.state.ModeratorDetails.FirstName + \" \" + this.state.ModeratorDetails.Surname\r\n }\r\n })\r\n } else if (\"leanership\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/moderatorlearnership',\r\n state: {\r\n ModeratorID: this.props.location.state.selection,\r\n ModeratorName: this.state.ModeratorDetails.FirstName + \" \" + this.state.ModeratorDetails.Surname\r\n }\r\n })\r\n } else if (\"bursary\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/moderatorBursary',\r\n state: {\r\n ModeratorID: this.props.location.state.selection,\r\n ModeratorName: this.state.ModeratorDetails.FirstName + \" \" + this.state.ModeratorDetails.Surname\r\n }\r\n })\r\n }\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Moderator updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = moderatorRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/moderatordetails/UpdateModerator\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/moderatorSearch');\r\n }\r\n\r\n render() {\r\n\r\n\r\n return (\r\n \r\n

\r\n {\"Moderator \" + (this.state.ModeratorDetails.FirstName !== null ? \"> \" + this.state.ModeratorDetails.FirstName + (this.state.ModeratorDetails.Surname !== null ? \" \" + this.state.ModeratorDetails.Surname : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true} config={this.state.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} editPermission={this.props.menuPermissionItem.Edit} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(Moderator));\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./SkillsProgramSetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport SkillsProgramSetupSearchForm from './SkillsProgramSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport CardLayout from '../../widgets/Card';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'SkillsProgrammeCode', numeric: false, disablePadding: true, label: 'Skills Programme Code' },\r\n { id: 'SkillsProgrammeTitle', numeric: false, disablePadding: true, label: 'Skills Programme Title' }\r\n\r\n];\r\n\r\nclass SkillsProgramSetupSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n\r\n this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"SkillsProgrammeCode\", Value: \"\" },\r\n { Name: \"SkillsProgrammeTitle\", Value: \"\" }\r\n ]\r\n :\r\n [\r\n { Name: \"SkillsProgrammeCode\", Value: \"\" },\r\n { Name: \"SkillsProgrammeTitle\", Value: \"\" },\r\n ]\r\n\r\n let model = !utils.isNull(this.props.programmeId) ?\r\n {\r\n SkillsProgrammeCode: \"\",\r\n SkillsProgrammeTitle: \"\",\r\n id: this.props.programmeId\r\n }\r\n :\r\n {\r\n SkillsProgrammeCode: \"\",\r\n SkillsProgrammeTitle: \"\"\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n if (!utils.isNull(props.personId)) {\r\n model.PersonID = props.personId;\r\n this.searchParameters.push({ Name: \"PersonID\", Value: props.personId })\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: '', tooltip: 'Remove Skills Programme', icon: 'DeleteIcon', disabled: true, visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n clearSearch(e) {\r\n this.setState({\r\n model: {\r\n SkillsProgrammeCode: \"\",\r\n SkillsProgrammeTitle: \"\",\r\n id: this.props.programmeId\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.clearSearch(e) }} \r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(SkillsProgramSetupSearch));\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nexport const OutComeStatusForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport ViewUtils from \"../ViewUtils\";\r\nimport AlertItem from \"../widgets/AlertItem\";\r\n\r\nexport default function FormDialog(props) {\r\n const [open, setOpen] = React.useState(props.open);\r\n const [title, setTitle] = React.useState(props.dialogTitle);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const [values, setValues] = React.useState(null);\r\n const [isView, setIsView] = React.useState(props.isView);\r\n\r\n const utils = new ViewUtils();\r\n\r\n const handleClose = (cancel, save) => {\r\n props.closeHandler(cancel, save);\r\n setOpen(false);\r\n setMessage(\"\");\r\n };\r\n\r\n const cancel = () => {\r\n setOpen(false);\r\n handleClose(true, false);\r\n };\r\n\r\n React.useEffect(() => {\r\n\r\n setOpen(props.open);\r\n setTitle(props.dialogTitle)\r\n }, [props.open]);\r\n\r\n React.useEffect(() => {\r\n\r\n if (!utils.isNull(props.datamodel)) {\r\n setValues(props.datamodel)\r\n }\r\n }, [props.datamodel]);\r\n\r\n const save = () => {\r\n let formValue = props.formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n if (!utils.isNull(props.entityId)) {\r\n formValue.id = props.entityId;\r\n }\r\n else if (!utils.isNull(props.viewRef.props.location.state) && !utils.isNull(props.viewRef.props.location.state.selection)) {\r\n formValue.id = props.viewRef.props.location.state.selection;\r\n }\r\n if (!utils.isNull(props.entityInfo)) {\r\n formValue = { ...formValue, ...props.entityInfo }\r\n }\r\n if (!utils.isNull(props.multiEntity)) {\r\n formValue.IDs = props.multiEntity.map(e => e.Id);\r\n }\r\n let data = JSON.stringify(formValue);\r\n\r\n let fullUrl = utils.isNull(props.hasDocumentUpload) ? props.saveUrl + `?data=${data}` : props.saveUrl;\r\n\r\n let config = !utils.isNull(props.hasDocumentUpload) ?\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n :\r\n null\r\n\r\n if (props.usePost) {\r\n fullUrl = props.saveUrl;\r\n\r\n config =\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n }\r\n\r\n if (props.usePut) {\r\n fullUrl = props.saveUrl;\r\n\r\n config =\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n }\r\n\r\n if (props.IsExternal) {\r\n utils.invokeUrlExternal(fullUrl,\r\n (response) => {\r\n if (response.MessageType === 'SUCCESS') {\r\n if (!utils.isNull(response.Message)) {\r\n props.viewRef.setState({\r\n Message: response.Message,\r\n MessageStyle: response.MessageType\r\n })\r\n }\r\n props.closeHandler(false, true);\r\n } else {\r\n setMessage(response.Message);\r\n setMessageStyle(response.MessageType)\r\n\r\n }\r\n\r\n },\r\n (e) => {\r\n setMessage(e.Message);\r\n setMessageStyle(e.MessageType)\r\n // utils.showMessage(props.viewRef, utils.SYSTEM_ERROR_MESSAGE, \"ERROR\");\r\n\r\n },\r\n config\r\n );\r\n }\r\n else {\r\n utils.invokeUrl(fullUrl,\r\n (response) => {\r\n if (response.MessageType === 'SUCCESS') {\r\n if (!utils.isNull(response.Message)) {\r\n props.viewRef.setState({\r\n Message: response.Message,\r\n MessageStyle: response.MessageType\r\n })\r\n }\r\n props.closeHandler(false, true);\r\n } else {\r\n setMessage(response.Message);\r\n setMessageStyle(response.MessageType)\r\n\r\n }\r\n\r\n },\r\n (e) => {\r\n setMessage(e.Message);\r\n setMessageStyle(e.MessageType)\r\n // utils.showMessage(props.viewRef, utils.SYSTEM_ERROR_MESSAGE, \"ERROR\");\r\n\r\n },\r\n config\r\n );\r\n }\r\n }\r\n }\r\n\r\n const handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n setValues(values);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n
\r\n \r\n
\r\n\r\n \r\n {React.cloneElement(props.children, { valueChangeHandler: (values) => { !utils.isNull(props.valueChangeHandler) ? props.valueChangeHandler(values) : handleFormValueChange(values) } })}\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'Id', numeric: false, disablePadding: true, label: 'Nr' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' },\r\n { id: 'DateChanged', numeric: false, disablePadding: true, label: 'Date Changed' },\r\n { id: 'UserUpdated', numeric: false, disablePadding: true, label: 'User Updated' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n\r\n }\r\n \r\n\r\n ]\r\n};\r\n\r\nclass ModeratorInterventionAudit extends Component {\r\n\r\n state = {\r\n auditDialogOpen: false,\r\n selectedInterventionRecord: null\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/moderator',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true });\r\n }\r\n\r\n postLinkHandler(linked) {\r\n this.setState({ linkDialogOpen: false, selectedInterventionRecord: null });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={toolbarConfig} />\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ModeratorInterventionAudit)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport SkillsProgramSetupSearch from '../program/SkillsProgramSetupSearch';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { OutComeStatusForm } from '../moderator/OutComeStatusForm';\r\nimport FormDialog from \"../FormDialog\";\r\nimport ModeratorInterventionAudit from '../moderator/ModeratorInterventionAudit';\r\n\r\n\r\nconst headCells = [\r\n { id: 'SkillsProgrammeCode', numeric: false, disablePadding: true, label: 'Skills Programme ID' },\r\n { id: 'SkillsProgrammeTitle', numeric: false, disablePadding: true, label: 'Skills Programme Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass SkillsProgrammeSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQASkillsProgrammeID: \"\",\r\n SAQASkillsProgrammeTitle: \"\",\r\n ModeratorID: this.props.location.state.ModeratorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false,\r\n updateDialogOpen: false,\r\n selectedSkillsProgramme: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Skills Programme From Moderator\",\r\n promptContent: \"Are you sure you want to unlink this Skills Programme from the moderator?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"ModeratorID\", Value: this.props.location.state.ModeratorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Skills Programme/s to the moderator', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected skills programme', disabled: utils.isNull(this.state.selectedSkillsProgramme), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedSkillsProgramme) , icon: 'AuditIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link selected skills programme from the moderator', disabled: utils.isNull(this.state.selectedSkillsProgramme), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Moderator',\r\n state: { selection: this.props.location.state.ModeratorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedSkillsProgramme: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n successUnlinkCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedSkillsProgramme: null, removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() });\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unlinkSkillsProgramme(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedSkillsProgramme}&moderatorId=${this.props.location.state.ModeratorID}`;\r\n utils.invokeUrlDelete(fullUrl, this.successUnlinkCallback, this.unsuccessfulUnlinkCallback);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, auditDialogOpen: false, selectedSkillsProgramme: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedSkillsProgramme: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedSkillsProgramme: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n unsuccessfulUnlinkCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false, auditDialogOpen: false, selection: this.props.location.state.selection, selectedSkillsProgramme: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n\r\n

\r\n {\"Moderator > Skills Programmes \" + (this.props.location.state.ModeratorName !== null ? \"> \" + this.props.location.state.ModeratorName : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Skills Programmes to Moderator > ${this.props.location.state.ModeratorName}`}\r\n linkName={\"SkillsProgrammes\"} postUrl={\"api/sims/ModeratorSkillsProgramme/linkModeratorSkillsProgrammes\"}\r\n selectionId={this.props.location.state.ModeratorID} usePost={true}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedSkillsProgramme}\r\n >\r\n\r\n \r\n \r\n\r\n this.unlinkSkillsProgramme(\"api/sims/ModeratorSkillsProgramme/RemoveModeratorSkillsProgramme\")}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(SkillsProgrammeSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./BursarySetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport BursarySetupSearchForm from './BursarySetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport CardLayout from '../../widgets/Card';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'BursaryCode', numeric: false, disablePadding: true, label: 'Bursary Code' },\r\n { id: 'BursaryTitle', numeric: false, disablePadding: true, label: 'Bursary Title' }\r\n\r\n];\r\n\r\nclass BursarySetupSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n\r\n this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"BursaryCode\", Value: \"\" },\r\n { Name: \"BursaryTitle\", Value: \"\" }\r\n ]\r\n :\r\n [\r\n { Name: \"BursaryCode\", Value: \"\" },\r\n { Name: \"BursaryTitle\", Value: \"\" },\r\n ]\r\n\r\n let model = !utils.isNull(this.props.programmeId) ?\r\n {\r\n BursaryCode: \"\",\r\n BursaryTitle: \"\",\r\n id: this.props.programmeId\r\n }\r\n :\r\n {\r\n BursaryCode: \"\",\r\n BursaryTitle: \"\"\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n if (!utils.isNull(props.personId)) {\r\n model.PersonID = props.personId;\r\n this.searchParameters.push({ Name: \"PersonID\", Value: props.personId })\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: '', tooltip: 'Remove Bursary', icon: 'DeleteIcon', disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n clearSearch(e) {\r\n this.setState({\r\n model: {\r\n BursaryCode: \"\",\r\n BursaryTitle: \"\",\r\n id: this.props.programmeId\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.clearSearch(e) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(BursarySetupSearch));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport BursarySetupSearch from '../program/BursarySetupSearch';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { OutComeStatusForm } from '../moderator/OutComeStatusForm';\r\nimport FormDialog from \"../FormDialog\";\r\nimport ModeratorInterventionAudit from '../moderator/ModeratorInterventionAudit';\r\n\r\n\r\nconst headCells = [\r\n { id: 'BursaryCode', numeric: false, disablePadding: true, label: 'Bursary Code' },\r\n { id: 'BursaryTitle', numeric: false, disablePadding: true, label: 'Bursary Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass BursarySearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n BursaryCode: \"\",\r\n BursaryTitle: \"\",\r\n ModeratorID: this.props.location.state.ModeratorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false,\r\n updateDialogOpen: false,\r\n selectedBursary: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Bursary Programme From Moderator\",\r\n promptContent: \"Are you sure you want to unlink this Bursary from the moderator?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"ModeratorID\", Value: this.props.location.state.ModeratorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Bursary Programme/s to the moderator', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected bursary', disabled: utils.isNull(this.state.selectedBursary), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedBursary) , icon: 'AuditIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link selected bursary from the moderator', disabled: utils.isNull(this.state.selectedBursary), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Moderator',\r\n state: { selection: this.props.location.state.ModeratorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedBursary: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n successUnlinkCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedBursary: null, removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() });\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unlinkBursary(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedBursary}&moderatorId=${this.props.location.state.ModeratorID}`;\r\n utils.invokeUrlDelete(fullUrl, this.successUnlinkCallback, this.unsuccessfulUnlinkCallback);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, auditDialogOpen: false, selectedBursary: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedBursary: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedBursary: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n unsuccessfulUnlinkCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false, auditDialogOpen: false, selection: this.props.location.state.selection, selectedBursary: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n\r\n

\r\n {\"Moderator > Bursary Programmes \" + (this.props.location.state.ModeratorName !== null ? \"> \" + this.props.location.state.ModeratorName : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Bursaries to Moderator > ${this.props.location.state.ModeratorName}`}\r\n linkName={\"Bursaries\"} postUrl={\"api/sims/ModeratorBursary/linkModeratorBursaries\"}\r\n selectionId={this.props.location.state.ModeratorID} usePost={true}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedBursary}\r\n >\r\n\r\n \r\n \r\n\r\n this.unlinkBursary(\"api/sims/ModeratorBursary/RemoveModeratorBursary\")}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BursarySearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { OutComeStatusForm } from '../moderator/OutComeStatusForm';\r\nimport FormDialog from \"../FormDialog\";\r\nimport ModeratorInterventionAudit from '../moderator/ModeratorInterventionAudit';\r\n\r\n\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'Qualification ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: true, label: 'Qualification Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'QualificationRegistrationStartDate', numeric: false, disablePadding: true, label: 'Registration Start Date' },\r\n { id: 'QualificationRegistrationEndDate', numeric: false, disablePadding: true, label: 'Registration End Date' },\r\n { id: 'QualificationLastEnrolmentDate', numeric: false, disablePadding: true, label: 'Last Date For Enrolment' },\r\n { id: 'QualificationLastAchievementDate', numeric: false, disablePadding: true, label: 'Last Date For Achievement' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass QualificationSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n ModeratorID: this.props.location.state.ModeratorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false,\r\n updateDialogOpen: false,\r\n selectedQualification: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Qualification From Moderator\",\r\n promptContent: \"Are you sure you want to unlink this qualification from the moderator?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"ModeratorID\", Value: this.props.location.state.ModeratorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon : 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Qualification/s to the moderator', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected qualification', disabled: utils.isNull(this.state.selectedQualification), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedQualification) , icon: 'AuditIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link selected qualification from the moderator', disabled: utils.isNull(this.state.selectedQualification), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Moderator',\r\n state: { selection: this.props.location.state.ModeratorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedQualification: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n successUnlinkCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedQualification: null, removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() });\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unlinkQualification(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedQualification}&moderatorId=${this.props.location.state.ModeratorID}`;\r\n utils.invokeUrlDelete(fullUrl, this.successUnlinkCallback, this.unsuccessfulUnlinkCallback);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, auditDialogOpen: false, selectedQualification: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedQualification: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedQualification: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n unsuccessfulUnlinkCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false, auditDialogOpen: false, selection: this.props.location.state.selection, selectedQualification: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n\r\n

\r\n {\"Moderator > Qualifications \" + (this.props.location.state.ModeratorName !== null ? \"> \" + this.props.location.state.ModeratorName : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Qualifications to Moderator > ${this.props.location.state.ModeratorName}`}\r\n linkName={\"Qualifications\"} postUrl={\"api/sims/ModeratorQualification/linkModeratorQualifications\"}\r\n selectionId={this.props.location.state.ModeratorID} usePost={true}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedQualification}\r\n >\r\n\r\n \r\n \r\n\r\n this.unlinkQualification(\"api/sims/ModeratorQualification/RemoveModeratorQualification\")}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(QualificationSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./LearnershipSetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport LearnershipSetupSearchForm from './LearnershipSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'LearnershipCode', numeric: false, disablePadding: true, label: 'Learnership Code' },\r\n { id: 'LearnershipTitle', numeric: false, disablePadding: true, label: 'Learnership Title' }\r\n];\r\n\r\nclass LearnershipSetupSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n let model = { LearnershipCode: \"\", LearnershipTitle: \"\" };\r\n\r\n this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"LearnershipCode\", Value: \"\" },\r\n { Name: \"LearnershipTitle\", Value: \"\" }\r\n ]\r\n :\r\n [\r\n { Name: \"LearnershipCode\", Value: \"\" },\r\n { Name: \"LearnershipTitle\", Value: \"\" },\r\n ]\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n if (!utils.isNull(props.personId)) {\r\n model.PersonID = props.personId;\r\n this.searchParameters.push({ Name: \"PersonID\", Value: props.personId })\r\n }\r\n\r\n this.state = {\r\n model: !utils.isNull(this.props.programmeId) ? { ...model, id: this.props.programmeId }: model,\r\n keyUpSwitch: false,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: '', tooltip: 'Remove Learnership', icon: 'DeleteIcon', disabled: true, visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n clearSearch(e) {\r\n this.setState({\r\n model: {\r\n LearnershipCode: \"\", LearnershipTitle: \"\"\r\n }\r\n });\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.clearSearch(e) }} allowClear={this.props.allowClear}\r\n searchParameters={this.searchParameters} onLookupValueChange={this.props.onLookupValueChange}\r\n descriptionProp=\"LearnershipTitle\" mode={this.props.mode}\r\n history={this.props.history} multiSelect={this.props.multiSelect}\r\n keyUpSwitch={this.state.keyUpSwitch} \r\n deleteUrl={\"api/sims/LearnershipSetup/RemoveLearnership\"} useDeletePost={true}\r\n promptTitle={\"Remove Learnership\"} selectionCallbackMode={this.props.selectionCallbackMode}\r\n promptContent={\"Removing the learnership is a permanent action and the learnership will not be available going forward. Are you sure you want to remove this learnership?\"}\r\n editPermission={this.props.menuPermissionItem.Edit }\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnershipSetupSearch));\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport LearnershipSetupSearch from '../program/LearnershipSetupSearch';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { OutComeStatusForm } from '../moderator/OutComeStatusForm';\r\nimport FormDialog from \"../FormDialog\";\r\nimport ModeratorInterventionAudit from '../moderator/ModeratorInterventionAudit';\r\n\r\n\r\nconst headCells = [\r\n { id: 'LearnershipCode', numeric: false, disablePadding: true, label: 'Learnership ID' },\r\n { id: 'LearnershipTitle', numeric: false, disablePadding: true, label: 'Learnership Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'LearnershipRegistrationStartDate', numeric: false, disablePadding: true, label: 'Registration Start Date' },\r\n { id: 'LearnershipRegistrationEndDate', numeric: false, disablePadding: true, label: 'Registration End Date' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass LearnershipSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n LearnershipCode: \"\",\r\n LearnershipTitle: \"\",\r\n ModeratorID: this.props.location.state.ModeratorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false,\r\n updateDialogOpen: false,\r\n selectedLearnership: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Learnership From Moderator\",\r\n promptContent: \"Are you sure you want to unlink this Learnership from the moderator?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"ModeratorID\", Value: this.props.location.state.ModeratorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Learnership/s to the moderator', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected learnership', disabled: utils.isNull(this.state.selectedLearnership), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedLearnership), icon: 'AuditIcon' },\r\n { id: 'unlink', label: 'Unlink learnership', tooltip: 'Un-link selected learnership from the moderator', disabled: utils.isNull(this.state.selectedLearnership), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Moderator',\r\n state: { selection: this.props.location.state.ModeratorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedLearnership: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n successUnlinkCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedLearnership: null, removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() });\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unlinkLearnership(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedLearnership}&moderatorId=${this.props.location.state.ModeratorID}`;\r\n utils.invokeUrlDelete(fullUrl, this.successUnlinkCallback, this.unsuccessfulUnlinkCallback);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, auditDialogOpen: false, selectedLearnership: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedLearnership: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedLearnership: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n unsuccessfulUnlinkCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false, auditDialogOpen: false, selection: this.props.location.state.selection, selectedLearnership: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n\r\n

\r\n {\"Moderator > Learnerships \" + (this.props.location.state.ModeratorName !== null ? \"> \" + this.props.location.state.ModeratorName : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Learnerships to Moderator > ${this.props.location.state.ModeratorName}`}\r\n linkName={\"Learnerships\"} postUrl={\"api/sims/ModeratorLearnership/linkModeratorLearnerships\"}\r\n selectionId={this.props.location.state.ModeratorID} usePost={true}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedLearnership}\r\n >\r\n\r\n \r\n \r\n\r\n this.unlinkLearnership(\"api/sims/ModeratorLearnership/RemoveModeratorLearnership\")}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnershipSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { OutComeStatusForm } from '../moderator/OutComeStatusForm';\r\nimport FormDialog from \"../FormDialog\";\r\nimport ModeratorInterventionAudit from '../moderator/ModeratorInterventionAudit';\r\n\r\n\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'UnitStandard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'UnitStandard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardRegistrationStartDate', numeric: false, disablePadding: true, label: 'Registration Start Date' },\r\n { id: 'UnitStandardRegistrationEndDate', numeric: false, disablePadding: true, label: 'Registration End Date' },\r\n { id: 'UnitStandardLastEnrolmentDate', numeric: false, disablePadding: true, label: 'Last Date For Enrolment' },\r\n { id: 'UnitStandardLastAchievementDate', numeric: false, disablePadding: true, label: 'Last Date For Achievement' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass UnitStandardSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n ModeratorID: this.props.location.state.ModeratorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false,\r\n updateDialogOpen: false,\r\n selectedUnitStandard: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From Moderator\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the moderator?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"ModeratorID\", Value: this.props.location.state.ModeratorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Unit Standard/s to the moderator', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected unit standard', disabled: utils.isNull(this.state.selectedUnitStandard), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedUnitStandard) , icon: 'AuditIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link selected unit standard from the moderator', disabled: utils.isNull(this.state.selectedUnitStandard), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Moderator',\r\n state: { selection: this.props.location.state.ModeratorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n successUnlinkCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedUnitStandard: null, removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() });\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&moderatorId=${this.props.location.state.ModeratorID}`;\r\n utils.invokeUrlDelete(fullUrl, this.successUnlinkCallback, this.unsuccessfulUnlinkCallback);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, auditDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n unsuccessfulUnlinkCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false, auditDialogOpen: false , selection: this.props.location.state.selection, selectedUnitStandard: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n\r\n

\r\n {\"Moderator > Unit Standards \" + (this.props.location.state.ModeratorName !== null ? \"> \" + this.props.location.state.ModeratorName : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Moderator > ${this.props.location.state.ModeratorName}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/ModeratorUnitStandard/linkModeratorUnitStandards\"}\r\n selectionId={this.props.location.state.ModeratorID} usePost={true}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedUnitStandard}\r\n >\r\n\r\n \r\n \r\n\r\n this.unlinkUnitstandard(\"api/sims/ModeratorUnitStandard/RemoveModeratorUnitStandard\")}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(UnitStandardSearch)\r\n);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nexport default function ProviderSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Provider.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ProviderSearchForm from './ProviderSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\n//import OrganisationSearch from \"../../skills/organisation/OrganisationSearch\";\r\n//import OrganisationLinkDialog from \"../../skills/organisation/OrganisationLinkDialog\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nexport const headCells = [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Legal Name' },\r\n { id: 'TradeName', numeric: false, disablePadding: true, label: 'Trade Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: \"ProAccNumber\", numeric: false, disablePadding: true, label: \"Accreditation Number\" },\r\n { id: \"AccreditationStatus\", numeric: false, disablePadding: true, label: \"Accreditation Status\" },\r\n { id: \"Province\", numeric: false, disablePadding: true, label: \"Province\" }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass ProviderSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n //For search of providers that can be linked to a particular entity\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" },\r\n { Name: \"ProviderAccreditationNumber\", Value: \"\" }\r\n ]\r\n :\r\n //For search on the provider search screen\r\n [\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" },\r\n { Name: \"ProviderAccreditationNumber\", Value: \"\" }\r\n ]\r\n\r\n let model = !utils.isNull(this.props.programmeId) ?\r\n {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n TradeName: \"\",\r\n ProviderAccreditationNumber: \"\",\r\n id: this.props.programmeId\r\n }\r\n :\r\n {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n TradeName: \"\",\r\n ProviderAccreditationNumber: \"\"\r\n }\r\n\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedProvider: null,\r\n linkDialogOpen: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Delete\", icon: \"Delete\", disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedProvider: selection })\r\n } else {\r\n this.setState({ selectedProvider: null })\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ linkDialogOpen: true })\r\n }\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Provider\"}\r\n promptContent={\"Are you sure you want to remove this provider?\"}\r\n title='Provider'\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n\r\n \r\n\r\n {/* this.postLinkHandler(isCancelled, linked)}*/}\r\n {/* history={this.props.history}*/}\r\n {/* entityViewPath={\"/provider\"}*/}\r\n {/* linkName={\"Provider\"}*/}\r\n {/* postUrl={\"api/sims/provider/LinkOrganisationToProvider\"}*/}\r\n {/* usePost={true}*/}\r\n {/*>*/}\r\n {/* */}\r\n {/**/}\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(ProviderSearch));\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ProviderSearch from '../provider/ProviderSearch';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst headCells = [\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: \"TradeName\", numeric: false, disablePadding: true, label: \"Trade Name\" },\r\n { id: \"ProAccNumber\", numeric: false, disablePadding: true, label: \"Accreditation Number\" },\r\n { id: \"ModeratorModerationEndDate\", numeric: false, disablePadding: true, label: \"Moderator Moderation End Date\" },\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass ModeratorProviderSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n ModeratorID: this.props.location.state.ModeratorID\r\n },\r\n searchParameters: [\r\n { Name: \"ModeratorID\", Value: this.props.location.state.ModeratorID }\r\n ],\r\n linkDialogOpen: false,\r\n selectedProvider: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Training Provider From Moderator\",\r\n promptContent: \"Are you sure you want to unlink this training provider from the moderator?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Provider/s to the moderator', icon: 'LinkIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link the selected provider from the moderator', disabled: utils.isNull(this.state.selectedProvider), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Moderator',\r\n state: { selection: this.props.location.state.ModeratorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\"})\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedProvider: null });\r\n //Force a refresh\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase(),\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unsuccessfulUnlinkCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n unlinkModeratorProvider(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedProvider}&moderatorId=${this.props.location.state.ModeratorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, this.unsuccessfulUnlinkCallback);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedProvider: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedProvider: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedProvider: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Moderator > Providers \" + (this.props.location.state.ModeratorName !== null ? \"> \" + this.props.location.state.ModeratorName : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Training Provider to Moderator > ${this.props.location.state.ModeratorName}`}\r\n linkName={\"Providers\"} postUrl={\"api/sims/ModeratorProvider/linkModeratorProvider\"}\r\n selectionId={this.props.location.state.ModeratorID}\r\n usePost={true}\r\n >\r\n \r\n \r\n\r\n this.unlinkModeratorProvider(`api/sims/ModeratorProvider/RemoveModeratorProvider`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ModeratorProviderSearch)\r\n);","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const ModeratorRegistrationDetailsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n if (!utils.isNull(values.RegistrationStartDate)) {\r\n utils.autoSetDate(props.viewRef, ref, values.RegistrationStartDate, 3, 0, -1, \"RegistrationEndDate\", \"RegistrationStartDate\")\r\n }\r\n\r\n if (!utils.isNull(props.valueChangeHandler)) {\r\n props.valueChangeHandler(values);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n { handleFormValueChange(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.RegistrationStartDate)\r\n && formValues.RegistrationStartDate.getTime() < formValues.RegistrationEndDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n className='{classes.textField} w-100'\r\n form={form} \r\n disabled={!props.editPermission}\r\n />\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Moderator.css\";\r\nimport { ModeratorRegistrationDetailsForm } from './ModeratorRegistrationDetailsForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\n\r\nconst ref = React.createRef();\r\n\r\nclass ModeratorRegistrationDetails extends Component {\r\n state = {\r\n message: \"\",\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ ModeratorRegistrationDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/moderator',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Moderator Registration details updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = ref.current.getValue();\r\n let data = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/ModeratorRegistrationDetails/UpdateModeratorRegistrationDetails\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Moderator > Registration Details\" + (this.props.location.state.ModeratorName !== null ? \" > \" + this.props.location.state.ModeratorName : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={this.state.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} editPermission={this.props.menuPermissionItem.Edit }/>\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(ModeratorRegistrationDetails));\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'Id', numeric: false, disablePadding: true, label: 'Nr' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' },\r\n { id: 'DateUpdated', numeric: false, disablePadding: true, label: 'Date Changed' },\r\n { id: 'UpdatedBy', numeric: false, disablePadding: true, label: 'User Updated' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n\r\n }\r\n\r\n\r\n ]\r\n};\r\n\r\nclass AssessorInterventionAudit extends Component {\r\n\r\n state = {\r\n auditDialogOpen: false,\r\n selectedInterventionRecord: null\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true });\r\n }\r\n\r\n postLinkHandler(linked) {\r\n this.setState({ linkDialogOpen: false, selectedInterventionRecord: null });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={toolbarConfig} />\r\n \r\n\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AssessorInterventionAudit)\r\n);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nexport const OutComeStatusForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport SkillsProgramSetupSearch from '../program/SkillsProgramSetupSearch';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport AssessorInterventionAudit from '../assessor/AssessorInterventionAudit';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { OutComeStatusForm } from \"../common/OutcomeStatusForm\";\r\n\r\nexport const skillsProgrammeHeadCells = [\r\n { id: 'SkillsProgrammeCode', numeric: false, disablePadding: true, label: 'Skills Programme ID' },\r\n { id: 'SkillsProgrammeTitle', numeric: false, disablePadding: true, label: 'Skills Programme Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass AssessorSkillsProgrammeSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SkillsProgrammeCode: \"\",\r\n SkillsProgrammeTitle: \"\",\r\n AssessorID: this.props.location.state.AssessorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n updateDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n selectedSkillsProgramme: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Skills Programme From Assessor\",\r\n promptContent: \"Are you sure you want to unlink this skills programme from the assessor?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"AssessorID\", Value: this.props.location.state.AssessorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Skills Programme/s to the assessor', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected skills programme', disabled: utils.isNull(this.state.selectedSkillsProgramme), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedSkillsProgramme) , icon: 'AuditIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link selected skills programme from the assessor', disabled: utils.isNull(this.state.selectedSkillsProgramme), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedSkillsProgramme: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedSkillsProgramme}&assessorId=${this.props.location.state.AssessorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedSkillsProgramme: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedSkillsProgramme: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedSkillsProgramme: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, auditDialogOpen: false, linkDialogOpen: false, selection: this.props.location.state.selection, selectedSkillsProgramme: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Assessor > Skills Programmes\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.AssessorName + \" - \" + this.props.location.state.AssessorIDNo : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedQualification}\r\n >\r\n\r\n \r\n \r\n\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Skills Programme to Assessor: ${this.props.location.state.AssessorName}`}\r\n linkName={\"SkillsProgrammes\"} postUrl={\"api/sims/assessorskillsprogramme/LinkAssessorSkillsProgramme\"} usePost={true}\r\n selectionId={this.props.location.state.AssessorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/assessorskillsprogramme/RemoveAssessorSkillsProgramme`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AssessorSkillsProgrammeSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport BursarySetupSearch from '../program/BursarySetupSearch';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport AssessorInterventionAudit from '../assessor/AssessorInterventionAudit';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { OutComeStatusForm } from \"../common/OutcomeStatusForm\";\r\n\r\nexport const BursaryHeadCells = [\r\n { id: 'BursaryCode', numeric: false, disablePadding: true, label: 'Bursary Code' },\r\n { id: 'BursaryTitle', numeric: false, disablePadding: true, label: 'Bursary Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass AssessorBursarySearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n BursaryCode: \"\",\r\n BursaryTitle: \"\",\r\n AssessorID: this.props.location.state.AssessorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n updateDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n selectedBursary: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Bursary From Assessor\",\r\n promptContent: \"Are you sure you want to unlink this bursary from the assessor?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"AssessorID\", Value: this.props.location.state.AssessorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Bursary/ies to the assessor', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected bursary', disabled: utils.isNull(this.state.selectedBursary), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedBursary) , icon: 'AuditIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link selected bursary from the assessor', disabled: utils.isNull(this.state.selectedBursary), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedBursary: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedBursary}&assessorId=${this.props.location.state.AssessorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedBursary: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedBursary: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedBursary: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, auditDialogOpen: false, linkDialogOpen: false, selection: this.props.location.state.selection, selectedBursary: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Assessor > Bursaries\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.AssessorName + \" - \" + this.props.location.state.AssessorIDNo : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedQualification}\r\n >\r\n\r\n \r\n \r\n\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Bursary to Assessor: ${this.props.location.state.AssessorName}`}\r\n linkName={\"Bursaries\"} postUrl={\"api/sims/assessorbursary/LinkAssessorBursary\"} usePost={true}\r\n selectionId={this.props.location.state.AssessorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/assessorbursary/RemoveAssessorBursary`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AssessorBursarySearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'Id', numeric: false, disablePadding: true, label: 'Nr' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' },\r\n { id: 'DateUpdated', numeric: false, disablePadding: true, label: 'Date Changed' },\r\n { id: 'UpdatedBy', numeric: false, disablePadding: true, label: 'User Updated' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n\r\n }\r\n\r\n\r\n ]\r\n};\r\n\r\nclass FacilitatorInterventionAudit extends Component {\r\n\r\n state = {\r\n auditDialogOpen: false,\r\n selectedInterventionRecord: null\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Facilitator',\r\n state: { selection: this.props.location.state.FacilitatorID }\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true });\r\n }\r\n\r\n postLinkHandler(linked) {\r\n this.setState({ linkDialogOpen: false, selectedInterventionRecord: null });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={toolbarConfig} />\r\n \r\n\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(FacilitatorInterventionAudit)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport SkillsProgramSetupSearch from '../program/SkillsProgramSetupSearch';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport FacilitatorInterventionAudit from '../facilitator/FacilitatorInterventionAudit';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { OutComeStatusForm } from \"../common/OutcomeStatusForm\";\r\n\r\nexport const skillsProgrammeHeadCells = [\r\n { id: 'SkillsProgrammeCode', numeric: false, disablePadding: true, label: 'Skills Programme ID' },\r\n { id: 'SkillsProgrammeTitle', numeric: false, disablePadding: true, label: 'Skills Programme Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass FacilitatorSkillsProgrammeSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SkillsProgrammeCode: \"\",\r\n SkillsProgrammeTitle: \"\",\r\n FacilitatorID: this.props.location.state.FacilitatorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n updateDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n selectedSkillsProgramme: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Skills Programme From Facilitator\",\r\n promptContent: \"Are you sure you want to unlink this skills programme from the Facilitator?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"FacilitatorID\", Value: this.props.location.state.FacilitatorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Skills Programme/s to the Facilitator', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected skills programme', disabled: utils.isNull(this.state.selectedSkillsProgramme), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedSkillsProgramme) , icon: 'AuditIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link selected skills programme from the Facilitator', disabled: utils.isNull(this.state.selectedSkillsProgramme), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitator',\r\n state: { selection: this.props.location.state.FacilitatorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedSkillsProgramme: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedSkillsProgramme}&facilitatorId=${this.props.location.state.FacilitatorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedSkillsProgramme: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedSkillsProgramme: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedSkillsProgramme: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, auditDialogOpen: false, linkDialogOpen: false, selection: this.props.location.state.selection, selectedSkillsProgramme: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Facilitator > Skills Programmes\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.FacilitatorName + \" - \" + this.props.location.state.FacilitatorIDNo : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedQualification}\r\n >\r\n\r\n \r\n \r\n\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Skills Programme to Facilitator: ${this.props.location.state.FacilitatorName}`}\r\n linkName={\"SkillsProgrammes\"} postUrl={\"api/sims/facilitatorskillsprogramme/LinkFacilitatorSkillsProgramme\"} usePost={true}\r\n selectionId={this.props.location.state.FacilitatorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/facilitatorskillsprogramme/RemoveFacilitatorSkillsProgramme`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(FacilitatorSkillsProgrammeSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport AssessorInterventionAudit from '../assessor/AssessorInterventionAudit';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { OutComeStatusForm } from \"../common/OutcomeStatusForm\";\r\n\r\nexport const qualificationHeadCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'SAQA Qualification ID' },\r\n { id: \"SAQAQualificationTitle\", numeric: false, disablePadding: true, label: \"SAQA Qualification Title\" },\r\n { id: \"Credits\", numeric: false, disablePadding: true, label: \"Credits\" },\r\n { id: \"QualificationRegistrationStartDate\", numeric: false, disablePadding: true, label: \"Qualification Registration Start Date\" },\r\n { id: \"QualificationRegistrationEndDate\", numeric: false, disablePadding: true, label: \"Qualification Registration End Date\" },\r\n { id: \"QualificationLastDateForEnrolment\", numeric: false, disablePadding: true, label: \"Qualification Last Enrolment Date\" },\r\n { id: \"QualificationLastDateForAchievement\", numeric: false, disablePadding: true, label: \"Qualification Last Achievement Date\" },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\nclass AssessorQualificationSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n AssessorID: this.props.location.state.AssessorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n updateDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n selectedQualification: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Qualification From Assessor\",\r\n promptContent: \"Are you sure you want to unlink this qualification from the assessor?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"AssessorID\", Value: this.props.location.state.AssessorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon : 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Qualification/s to the assessor', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected qualification', disabled: utils.isNull(this.state.selectedQualification), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedQualification) , icon: 'AuditIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link selected qualification from the assessor', disabled: utils.isNull(this.state.selectedQualification), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedQualification: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkQualification(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedQualification}&assessorId=${this.props.location.state.AssessorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n linkDialogOpen: false, selectedQualification: null,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedQualification: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedQualification: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, auditDialogOpen: false, linkDialogOpen: false, selection: this.props.location.state.selection, selectedQualification: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Assessor > Qualifications\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.AssessorName + \" - \" + this.props.location.state.AssessorIDNo : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedQualification}\r\n >\r\n\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Qualification to Assessor: ${this.props.location.state.AssessorName}`}\r\n linkName={\"Qualifications\"} postUrl={\"api/sims/assessorqualification/LinkAssessorQualification\"} usePost={true}\r\n selectionId={this.props.location.state.AssessorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkQualification(`api/sims/assessorqualification/RemoveAssessorQualification`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(\r\n connect()(AssessorQualificationSearch)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport FacilitatorInterventionAudit from '../facilitator/FacilitatorInterventionAudit';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { OutComeStatusForm } from \"../common/OutcomeStatusForm\";\r\n\r\nexport const qualificationHeadCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'SAQA Qualification ID' },\r\n { id: \"SAQAQualificationTitle\", numeric: false, disablePadding: true, label: \"SAQA Qualification Title\" },\r\n { id: \"Credits\", numeric: false, disablePadding: true, label: \"Credits\" },\r\n { id: \"QualificationRegistrationStartDate\", numeric: false, disablePadding: true, label: \"Qualification Registration Start Date\" },\r\n { id: \"QualificationRegistrationEndDate\", numeric: false, disablePadding: true, label: \"Qualification Registration End Date\" },\r\n { id: \"QualificationLastDateForEnrolment\", numeric: false, disablePadding: true, label: \"Qualification Last Enrolment Date\" },\r\n { id: \"QualificationLastDateForAchievement\", numeric: false, disablePadding: true, label: \"Qualification Last Achievement Date\" },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\nclass FacilitatorQualificationSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n FacilitatorID: this.props.location.state.FacilitatorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n updateDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n selectedQualification: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Qualification From Facilitator\",\r\n promptContent: \"Are you sure you want to unlink this qualification from the Facilitator?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"FacilitatorID\", Value: this.props.location.state.FacilitatorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon : 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Qualification/s to the Facilitator', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected qualification', disabled: utils.isNull(this.state.selectedQualification), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedQualification) , icon: 'AuditIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link selected qualification from the Facilitator', disabled: utils.isNull(this.state.selectedQualification), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitator',\r\n state: { selection: this.props.location.state.FacilitatorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedQualification: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkQualification(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedQualification}&facilitatorId=${this.props.location.state.FacilitatorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n linkDialogOpen: false, selectedQualification: null,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedQualification: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedQualification: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, auditDialogOpen: false, linkDialogOpen: false, selection: this.props.location.state.selection, selectedQualification: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Facilitator > Qualifications\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.FacilitatorName + \" - \" + this.props.location.state.FacilitatorIDNo : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedQualification}\r\n >\r\n\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Qualification to Facilitator: ${this.props.location.state.FacilitatorName}`}\r\n linkName={\"Qualifications\"} postUrl={\"api/sims/facilitatorqualification/LinkFacilitatorQualification\"} usePost={true}\r\n selectionId={this.props.location.state.FacilitatorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkQualification(`api/sims/facilitatorqualification/RemoveFacilitatorQualification`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(\r\n connect()(FacilitatorQualificationSearch)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport LearnershipSetupSearch from '../program/LearnershipSetupSearch';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport AssessorInterventionAudit from '../assessor/AssessorInterventionAudit';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { OutComeStatusForm } from \"../common/OutcomeStatusForm\";\r\n\r\nexport const learnershipHeadCells = [\r\n { id: 'LearnershipCode', numeric: false, disablePadding: true, label: 'Learnership ID' },\r\n { id: 'LearnershipTitle', numeric: false, disablePadding: true, label: 'Learnership Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'LearnershipRegistrationStartDate', numeric: false, disablePadding: true, label: 'Registration Start Date' },\r\n { id: 'LearnershipRegistrationEndDate', numeric: false, disablePadding: true, label: 'Registration End Date' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n \r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass AssessorLearnershipSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n LearnershipCode: \"\",\r\n LearnershipTitle: \"\",\r\n AssessorID: this.props.location.state.AssessorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n updateDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n selectedLearnership: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Learnership From assessor\",\r\n promptContent: \"Are you sure you want to unlink this learnership from the assessor?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"AssessorID\", Value: this.props.location.state.AssessorID}]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Learnership/s to the assessor', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected learnership', disabled: utils.isNull(this.state.selectedLearnership), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedLearnership), icon: 'AuditIcon' },\r\n { id: 'unlink', label: 'Unlink learnership', tooltip: 'Un-link selected learnership from the assessor', disabled: utils.isNull(this.state.selectedLearnership), icon: 'LinkOffIcon' },\r\n { id: 'unitstandards', label: 'Unit Standards', tooltip: 'link selected unit standard(s) to the currently linked learnership', disabled: utils.isNull(this.state.selectedLearnership) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"unitstandards\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessorLearnershipUnitStandards',\r\n state: {\r\n AssessorLearnershipID: this.state.selectedLearnership,\r\n AssessorID: this.props.location.state.AssessorID,\r\n AssessorName: this.props.location.state.AssessorName,\r\n AssessorIDNo: this.props.location.state.AssessorIDNo\r\n }\r\n })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedLearnership: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkLearnership(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedLearnership}&assessorId=${this.props.location.state.AssessorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n linkDialogOpen: false, selectedLearnership: null,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedLearnership: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedLearnership: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unitstandards\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, auditDialogOpen: false, linkDialogOpen: false, selection: this.props.location.state.selection, selectedSkillsProgramme: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return(\r\n \r\n

\r\n {\"Assessor > Learnerships\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.AssessorName + \" - \" + this.props.location.state.AssessorIDNo : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedLearnership}\r\n >\r\n\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Learnership to Assessor: ${this.props.location.state.AssessorName}`}\r\n linkName={\"Learnerships\"} postUrl={\"api/sims/assessorlearnership/LinkAssessorLearnership\"} usePost={true}\r\n selectionId={this.props.location.state.AssessorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkLearnership(`api/sims/assessorlearnership/RemoveAssessorLearnership`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(\r\n connect()(AssessorLearnershipSearch)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport LearnershipSetupSearch from '../program/LearnershipSetupSearch';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport FacilitatorInterventionAudit from '../facilitator/FacilitatorInterventionAudit';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { OutComeStatusForm } from \"../common/OutcomeStatusForm\";\r\n\r\nexport const learnershipHeadCells = [\r\n { id: 'LearnershipCode', numeric: false, disablePadding: true, label: 'Learnership ID' },\r\n { id: 'LearnershipTitle', numeric: false, disablePadding: true, label: 'Learnership Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'LearnershipRegistrationStartDate', numeric: false, disablePadding: true, label: 'Registration Start Date' },\r\n { id: 'LearnershipRegistrationEndDate', numeric: false, disablePadding: true, label: 'Registration End Date' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n \r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass FacilitatorLearnershipSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n LearnershipCode: \"\",\r\n LearnershipTitle: \"\",\r\n FacilitatorID: this.props.location.state.FacilitatorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n updateDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n selectedLearnership: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Learnership From Facilitator\",\r\n promptContent: \"Are you sure you want to unlink this learnership from the Facilitator?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"FacilitatorID\", Value: this.props.location.state.FacilitatorID}]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Learnership/s to the Facilitator', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected learnership', disabled: utils.isNull(this.state.selectedLearnership), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedLearnership), icon: 'AuditIcon' },\r\n { id: 'unlink', label: 'Unlink learnership', tooltip: 'Un-link selected learnership from the Facilitator', disabled: utils.isNull(this.state.selectedLearnership), icon: 'LinkOffIcon' },\r\n { id: 'unitstandards', label: 'Unit Standards', tooltip: 'link selected unit standard(s) to the currently linked learnership', disabled: utils.isNull(this.state.selectedLearnership) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitator',\r\n state: { selection: this.props.location.state.FacilitatorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"unitstandards\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/FacilitatorLearnershipUnitStandards',\r\n state: {\r\n FacilitatorLearnershipID: this.state.selectedLearnership,\r\n FacilitatorID: this.props.location.state.FacilitatorID,\r\n FacilitatorName: this.props.location.state.FacilitatorName,\r\n FacilitatorIDNo: this.props.location.state.FacilitatorIDNo\r\n }\r\n })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedLearnership: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkLearnership(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedLearnership}&facilitatorId=${this.props.location.state.FacilitatorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n linkDialogOpen: false, selectedLearnership: null,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedLearnership: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedLearnership: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unitstandards\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, auditDialogOpen: false, linkDialogOpen: false, selection: this.props.location.state.selection, selectedSkillsProgramme: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return(\r\n \r\n

\r\n {\"Facilitator > Learnerships\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.FacilitatorName + \" - \" + this.props.location.state.FacilitatorIDNo : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedLearnership}\r\n >\r\n\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Learnership to facilitator: ${this.props.location.state.facilitatorName}`}\r\n linkName={\"Learnerships\"} postUrl={\"api/sims/facilitatorlearnership/LinkFacilitatorLearnership\"} usePost={true}\r\n selectionId={this.props.location.state.FacilitatorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkLearnership(`api/sims/facilitatorlearnership/RemoveFacilitatorLearnership`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(\r\n connect()(FacilitatorLearnershipSearch)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardType', numeric: false, disablePadding: true, label: 'Unit Standard Type' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\nclass AssessorLearnershipUSSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From Assessor Learnership\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the assessor learnership record?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"AssessorLearnershipID\", Value: this.props.location.state.AssessorLearnershipID }],\r\n LearnershipType: props.location.state.LearnershipType,\r\n selectedLinkTypeDesc: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n contextMenu: [\r\n { id: 1, description: \"Elective\" },\r\n { id: 2, description: \"Compulsory Elective\" }\r\n ],\r\n id: 'link', label: 'Link', tooltip: 'link the selected unit standard to the assessor learnership', width: \"60px\"\r\n },\r\n { id: 'unlink', label: 'Un-Link', tooltip: 'Un-link the selected unit standard from the assessor learnership', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n \r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Assessorlearnerships',\r\n state: {\r\n AssessorLearnershipID: this.state.selectedLearnership,\r\n AssessorID: this.props.location.state.AssessorID,\r\n AssessorName: this.props.location.state.AssessorName,\r\n AssessorIDNo: this.props.location.state.AssessorIDNo\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n })\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&AssessorLearnershipUSID=${this.state.selectedUnitStandard}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu, selectedLinkTypeDesc: menu.description });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", parseInt(this.state.LearnershipType) === 3)\r\n }\r\n )\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", parseInt(this.state.LearnershipType) === 3)\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Assessor > Learnership > Unit Standards\"}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl={`api/sims/assessorlearnership/GetSearchAssessorLearnershipUnitStandards`}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Learnership: ${this.props.location.state.LearnershipTitle}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/assessorlearnership/linkAssessorLearnershipUnitStandards\"} usePost={true}\r\n programmeId={this.props.location.state.AssessorLearnershipID} programmeType={this.state.selectedLinkType}\r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/assessorlearnership/unlinkAssessorLearnershipUnitstandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AssessorLearnershipUSSearch)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardType', numeric: false, disablePadding: true, label: 'Unit Standard Type' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\nclass FacilitatorLearnershipUSSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From Facilitator Learnership\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the Facilitator learnership record?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"FacilitatorLearnershipID\", Value: this.props.location.state.FacilitatorLearnershipID }],\r\n LearnershipType: props.location.state.LearnershipType,\r\n selectedLinkTypeDesc: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n contextMenu: [\r\n { id: 1, description: \"Elective\" },\r\n { id: 2, description: \"Compulsory Elective\" }\r\n ],\r\n id: 'link', label: 'Link', tooltip: 'link the selected unit standard to the Facilitator learnership', width: \"60px\"\r\n },\r\n { id: 'unlink', label: 'Un-Link', tooltip: 'Un-link the selected unit standard from the Facilitator learnership', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n \r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Facilitatorlearnerships',\r\n state: {\r\n FacilitatorLearnershipID: this.state.selectedLearnership,\r\n FacilitatorID: this.props.location.state.FacilitatorID,\r\n FacilitatorName: this.props.location.state.FacilitatorName,\r\n FacilitatorIDNo: this.props.location.state.FacilitatorIDNo\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n })\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&FacilitatorLearnershipUSID=${this.state.selectedUnitStandard}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu, selectedLinkTypeDesc: menu.description });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", parseInt(this.state.LearnershipType) === 3)\r\n }\r\n )\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", parseInt(this.state.LearnershipType) === 3)\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Facilitator > Learnership > Unit Standards\"}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl={`api/sims/facilitatorlearnership/GetSearchfacilitatorLearnershipUnitStandards`}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Learnership: ${this.props.location.state.LearnershipTitle}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/facilitatorlearnership/linkFacilitatorLearnershipUnitStandards\"} usePost={true}\r\n programmeId={this.props.location.state.FacilitatorLearnershipID} programmeType={this.state.selectedLinkType}\r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/facilitatorlearnership/unlinkFacilitatorLearnershipUnitstandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(FacilitatorLearnershipUSSearch)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'ScopeType', numeric: false, disablePadding: true, label: 'Scope Type' },\r\n { id: 'ScopeCode', numeric: false, disablePadding: true, label: 'Scope Code' },\r\n { id: 'ScopeTitle', numeric: false, disablePadding: true, label: 'Scope Title' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n\r\n }\r\n \r\n\r\n ]\r\n};\r\n\r\nclass AuditTrialSearch extends Component {\r\n\r\n state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/moderator',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n postLinkHandler(linked) {\r\n //alert(linked + \" \" + JSON.stringify(this.state.selectedLinkType) + \" \" + JSON.stringify(this.state.selectedLinkStandards));\r\n this.setState({ linkDialogOpen: false, selectedLinkType: null, selectedLinkStandards: null });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={toolbarConfig} />\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AuditTrialSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AuditTrial from './AuditTrial';\r\n\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport Prompt from '../../widgets/Prompt';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nexport const registrationHistoryHeadCells = [\r\n { id: 'ModeratorRegistrationStartDate', numeric: false, disablePadding: true, label: 'Moderator Registration Start Date' },\r\n { id: 'ModeratorRegistrationEndDate', numeric: false, disablePadding: true, label: 'Moderator Registration End Date' },\r\n { id: 'ModeratorRegistrationStatus', numeric: false, disablePadding: true, label: 'Moderator Registration Status' },\r\n { id: 'DateUpdated', numeric: false, disablePadding: true, label: 'Date Updated' },\r\n { id: 'UpdatedBy', numeric: false, disablePadding: true, label: 'Updated By' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass ModeratorRegistrationHistory extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n ModeratorID: this.props.location.state.ModeratorID\r\n },\r\n\r\n linkDialogOpen: false,\r\n selectedAuditTrial: null,\r\n propmtOpen: false,\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"ModeratorID\", Value: this.props.location.state.ModeratorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'ViewAudit', label: '', tooltip: 'View Audit Trial', disabled: utils.isNull(this.state.selectedAuditTrial), icon: 'ViewIcon' }\r\n\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Moderator',\r\n state: { selection: this.props.location.state.ModeratorID }\r\n });\r\n }\r\n else if (\"ViewAudit\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedAuditTrial: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedAuditTrial: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedAuditTrial: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedAuditTrial: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"ViewAudit\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Moderator > Audit Trail \" + (this.props.location.state.ModeratorName !== null ? \"> \" + this.props.location.state.ModeratorName : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection)}}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Audit Trail > ${this.props.location.state.ModeratorName}`}\r\n linkName={\"Audit Trail\"} postUrl={\"api/indicium/UnitStandardSetup/linkModeratorUnitStandards\"}\r\n selectionId={this.props.location.state.ModeratorID}\r\n >\r\n\r\n \r\n \r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ModeratorRegistrationHistory )\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../crm/Comments\";\r\nimport Documents from \"../crm/Documents\";\r\nimport Emails from \"../crm/Emails\";\r\nimport CommentsDialog from \"../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../crm/EmailDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Moderator\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/ModeratorCRM/GetCRMComments\",\r\n documents: \"api/sims/ModeratorCRM/GetCRMDocuments\",\r\n emails: \"api/sims/ModeratorCRM/GetCRMEmail\",\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/ModeratorCRM/AddCRMComment\",\r\n documents: \"api/sims/ModeratorCRM/AddCRMDocument\",\r\n emails: \"api/sims/ModeratorCRM/AddCRMEmail\",\r\n }\r\n}\r\n\r\nclass ModeratorCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: \"1\",\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Moderator',\r\n state: { selection: this.props.location.state.ModeratorID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/Moderator/getCRMDocument?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/moderatorcrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n }\r\n\r\n SetCommunicationType(values) {\r\n\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {`Moderators > ${this.props.location.state.ModeratorName} > CRM`}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n { this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" \r\n />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({emailAddress: email, emailSubject: subject}, ()=>{\r\n this.setState({emailAddress: email, emailSubject: subject})\r\n })\r\n \r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n \r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Moderator Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Moderator Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.ModeratorID} />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Moderator Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails} \r\n moduleName={config.moduleName} \r\n selection={this.props.location.state.ModeratorID} \r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.ModeratorID} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.ModeratorID}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.ModeratorID}\r\n showMultilineToAddress={true}\r\n />\r\n
\r\n }\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(ModeratorCRM));\r\n","import React from 'react'\r\nimport { Form, Input } from 'antd'\r\n\r\nconst EditableContext = React.createContext();\r\n\r\nconst EditableRow = ({ form, index, ...props }) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const EditableFormRow = \"\";\r\n\r\nexport class EditableCell extends React.Component {\r\n state = {\r\n editing: false\r\n };\r\n\r\n toggleEdit = () => {\r\n const editing = !this.state.editing;\r\n this.setState({ editing }, () => {\r\n if (editing) {\r\n this.input.focus();\r\n }\r\n });\r\n };\r\n\r\n save = e => {\r\n const { record, handleSave } = this.props;\r\n this.form.validateFields((error, values) => {\r\n if (error && error[e.currentTarget.id]) {\r\n return;\r\n }\r\n this.toggleEdit();\r\n handleSave({ ...record, ...values });\r\n });\r\n };\r\n\r\n renderCell = form => {\r\n this.form = form;\r\n const { children, dataIndex, record, title } = this.props;\r\n const { editing } = this.state;\r\n return editing ? (\r\n \r\n {form.getFieldDecorator(dataIndex, {\r\n rules: [\r\n {\r\n required: true,\r\n message: `${title} is required.`,\r\n },\r\n ],\r\n initialValue: record[dataIndex],\r\n })( (this.input = node)} onPressEnter={this.save} onBlur={this.save} />)}\r\n \r\n ) : (\r\n \r\n {children}\r\n \r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n editable,\r\n dataIndex,\r\n title,\r\n record,\r\n index,\r\n handleSave,\r\n children,\r\n ...restProps\r\n } = this.props;\r\n return (\r\n \r\n {editable ? (\r\n {this.renderCell}\r\n ) : (\r\n children\r\n )}\r\n \r\n );\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport { Table, Button, Popconfirm, Row, Col, Upload } from \"antd\";\r\nimport { ExcelRenderer } from \"react-excel-renderer\";\r\nimport { EditableFormRow, EditableCell } from \"./editable\";\r\nimport Icon from '@ant-design/icons';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport personUploadTemplate from \"../../../content/templates/PersonUpload_Template_V2.xlsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default class ExcelPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cols: [],\r\n rows: [],\r\n file: null,\r\n fileInfo: null,\r\n data: null,\r\n errorMessage: null,\r\n documentGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n columns: [\r\n {\r\n title: \"Surname\",\r\n dataIndex: \"Surname\",\r\n editable: false\r\n },\r\n {\r\n title: \"First Name\",\r\n dataIndex: \"FirstName\",\r\n editable: false\r\n },\r\n {\r\n title: \"Middle Name\",\r\n dataIndex: \"MiddleName\",\r\n editable: false\r\n },\r\n {\r\n title: \"Initials\",\r\n dataIndex: \"Initials\",\r\n editable: false\r\n },\r\n {\r\n title: \"Title\",\r\n dataIndex: \"TitleID\",\r\n editable: false\r\n },\r\n {\r\n title: \"ID No\",\r\n dataIndex: \"IDNo\",\r\n editable: false\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleSave = row => {\r\n const newData = [...this.state.rows];\r\n const index = newData.findIndex(item => row.key === item.key);\r\n const item = newData[index];\r\n newData.splice(index, 1, {\r\n ...item,\r\n ...row\r\n });\r\n this.setState({ rows: newData });\r\n };\r\n\r\n checkFile(file) {\r\n let errorMessage = \"\";\r\n if (!file || !file[0]) {\r\n return;\r\n }\r\n const isExcel =\r\n file[0].type === \"application/vnd.ms-excel\" ||\r\n file[0].type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isExcel) {\r\n errorMessage = \"You can only upload Excel file!\";\r\n }\r\n console.log(\"file\", file[0].type);\r\n const isLt2M = file[0].size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n errorMessage = \"File must be smaller than 2MB!\";\r\n }\r\n console.log(\"errorMessage\", errorMessage);\r\n return errorMessage;\r\n }\r\n\r\n fileHandler = fileList => {\r\n console.log(\"fileList\", fileList);\r\n let fileObj = fileList;\r\n\r\n if (!fileObj) {\r\n this.setState({\r\n errorMessage: \"No file uploaded!\"\r\n });\r\n return false;\r\n }\r\n console.log(\"fileObj.type:\", fileObj.type);\r\n if (\r\n !(\r\n fileObj.type === \"application/vnd.ms-excel\" ||\r\n fileObj.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n this.setState({\r\n errorMessage: \"Unknown file format. Only Excel files are uploaded!\"\r\n });\r\n return false;\r\n }\r\n this.setState({\r\n documentGenerated: false\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(fileObj);\r\n\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: fileObj.name,\r\n type: fileObj.type,\r\n size: Math.round(fileObj.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n //just pass the fileObj as parameter\r\n ExcelRenderer(fileObj, (err, resp) => {\r\n if (err) {\r\n console.log(err);\r\n\r\n } else {\r\n let newRows = [];\r\n resp.rows.slice(3).map((row, index) => {\r\n if (row && row !== \"undefined\") {\r\n newRows.push({\r\n Surname: row[0],\r\n FirstName: row[1],\r\n MiddleName: row[2],\r\n Initials: row[3],\r\n TitleID: row[4],\r\n IDNo: row[5],\r\n AlternateIDTypeID: row[6],\r\n DateOfBirth: row[7],\r\n GenderID: row[8],\r\n EquityID: row[9],\r\n NationalityID: row[10],\r\n HomeLanguageID: row[11],\r\n CitizenResidentialStatusID: row[12],\r\n SeeingID: row[13],\r\n HearingID: row[14],\r\n CommunicatingID: row[15],\r\n WalkingID: row[16],\r\n RememberingID: row[17],\r\n SelfcareID: row[18],\r\n TelephoneNumber: row[19],\r\n FaxNumber: row[20],\r\n CellPhoneNumber: row[21],\r\n EMail: row[22],\r\n PhysicalCode: row[23],\r\n PhysicalAddress1: row[24],\r\n PhysicalAddress2: row[25],\r\n PhysicalAddress3: row[26],\r\n PostalCode: row[30],\r\n PostalAddress1: row[31],\r\n PostalAddress2: row[22],\r\n PostalAddress3: row[33],\r\n SocioEconomicStatusID: row[34]\r\n });\r\n }\r\n });\r\n if (newRows.length === 0) {\r\n this.setState({\r\n errorMessage: \"No data found in file!\"\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n file: fileObj,\r\n cols: resp.cols,\r\n rows: newRows,\r\n errorMessage: null\r\n });\r\n }\r\n }\r\n });\r\n return false;\r\n };\r\n\r\n successCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedAssessor: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), AssessmentEndDate: \"\" });\r\n alert(JSON.stringify(response.Message))\r\n }\r\n }\r\n\r\n errorCallback = (response) => {\r\n //if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n // this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n //}\r\n }\r\n\r\n handleSubmit = async () => {\r\n\r\n const data = {\r\n Person: this.state.rows,\r\n Document: this.state.fileInfo\r\n\r\n };\r\n\r\n utils.invokeUrl(\"api/sims/LearnerUpload/BulkUploadPerson\", (response) => {\r\n if (response.MessageType !== undefined && response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n documentName: response.Message,\r\n documentGenerated: true,\r\n file: null,\r\n fileInfo: null,\r\n cols: [],\r\n rows: []\r\n });\r\n }\r\n else {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n\r\n };\r\n\r\n \r\n\r\n FileDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/LearnerUpload/BulkUploadGetReport?FileName=\" + this.state.documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleDelete = key => {\r\n const rows = [...this.state.rows];\r\n this.setState({ rows: rows.filter(item => item.key !== key) });\r\n };\r\n handleAdd = () => {\r\n const { count, rows } = this.state;\r\n const newData = {\r\n key: count,\r\n name: \"User's name\",\r\n age: \"22\",\r\n gender: \"Female\"\r\n };\r\n this.setState({\r\n rows: [newData, ...rows],\r\n count: count + 1\r\n });\r\n };\r\n\r\n render() {\r\n const components = {\r\n body: {\r\n row: EditableFormRow,\r\n cell: EditableCell\r\n }\r\n };\r\n const columns = this.state.columns.map(col => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: record => ({\r\n record,\r\n editable: col.editable,\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n handleSave: this.handleSave\r\n })\r\n };\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Dowload template\r\n \r\n \r\n \r\n {this.state.rows.length > 0 && (\r\n\r\n \r\n Import\r\n \r\n\r\n )}\r\n \r\n \r\n
\r\n this.setState({ rows: [] })}\r\n multiple={false}\r\n showUploadList={false}\r\n >\r\n \r\n \r\n
\r\n
\r\n {this.state.fileInfo && this.state.fileInfo.name}\r\n
\r\n
\r\n \"editable-row\"}\r\n dataSource={this.state.rows}\r\n columns={columns}\r\n />\r\n
\r\n\r\n \r\n {this.state.documentGenerated && (\r\n \r\n Click here to download Bulk Import success and exception report\r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ExcelPage from \"./personExcelPage\";\r\nimport \"antd/dist/antd.css\";\r\n\r\nclass BulkIpload extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Upload Bulk Learner\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkIpload)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Table, Button, Popconfirm, Row, Col, Upload } from \"antd\";\r\nimport { ExcelRenderer } from \"react-excel-renderer\";\r\nimport { EditableFormRow, EditableCell } from \"./editable\";\r\nimport Icon from '@ant-design/icons';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport learnershipUploadTemplate from \"../../../content/templates/LearnershipUpload_Template.xlsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default class LearnershipExcelPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cols: [],\r\n rows: [],\r\n file: null,\r\n fileInfo: null,\r\n data: null,\r\n errorMessage: null,\r\n documentGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n columns: [\r\n {\r\n title: \"ID Number\",\r\n dataIndex: \"LearnerIDNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Lead Provider SDL Number\",\r\n dataIndex: \"LeadProviderSDLNumber\",\r\n editable: false\r\n },\r\n {\r\n title: \"Learnership Code\",\r\n dataIndex: \"LearnershipCode\",\r\n editable: false\r\n },\r\n {\r\n title: \"Learnership Title\",\r\n dataIndex: \"LearnershipTitle\",\r\n editable: false\r\n },\r\n {\r\n title: \"Lead Employer SDL Number\",\r\n dataIndex: \"LeadEmployerSDLNumber\",\r\n editable: false\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleSave = row => {\r\n const newData = [...this.state.rows];\r\n const index = newData.findIndex(item => row.key === item.key);\r\n const item = newData[index];\r\n newData.splice(index, 1, {\r\n ...item,\r\n ...row\r\n });\r\n this.setState({ rows: newData });\r\n };\r\n\r\n checkFile(file) {\r\n let errorMessage = \"\";\r\n if (!file || !file[0]) {\r\n return;\r\n }\r\n const isExcel =\r\n file[0].type === \"application/vnd.ms-excel\" ||\r\n file[0].type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isExcel) {\r\n errorMessage = \"You can only upload Excel file!\";\r\n }\r\n console.log(\"file\", file[0].type);\r\n const isLt2M = file[0].size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n errorMessage = \"File must be smaller than 2MB!\";\r\n }\r\n console.log(\"errorMessage\", errorMessage);\r\n return errorMessage;\r\n }\r\n\r\n fileHandler = fileList => {\r\n console.log(\"fileList\", fileList);\r\n let fileObj = fileList;\r\n\r\n if (!fileObj) {\r\n this.setState({\r\n errorMessage: \"No file uploaded!\"\r\n });\r\n return false;\r\n }\r\n console.log(\"fileObj.type:\", fileObj.type);\r\n if (\r\n !(\r\n fileObj.type === \"application/vnd.ms-excel\" ||\r\n fileObj.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n this.setState({\r\n errorMessage: \"Unknown file format. Only Excel files are uploaded!\"\r\n });\r\n return false;\r\n }\r\n this.setState({\r\n documentGenerated: false\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(fileObj);\r\n\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: fileObj.name,\r\n type: fileObj.type,\r\n size: Math.round(fileObj.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n //just pass the fileObj as parameter\r\n ExcelRenderer(fileObj, (err, resp) => {\r\n if (err) {\r\n console.log(err);\r\n } else {\r\n let newRows = [];\r\n resp.rows.slice(3).map((row, index) => {\r\n if (row && row !== \"undefined\") {\r\n newRows.push({\r\n LearnerIDNo: row[0],\r\n LeadProviderSDLNumber: row[1],\r\n LearnershipCode: row[2],\r\n LearnershipTitle: row[3],\r\n LeadEmployerSDLNumber: row[4],\r\n Sponsorship: row[5],\r\n ProjectCode: row[6],\r\n FinancialYear: row[7],\r\n CommencementDate: row[8],\r\n CompletionDate: row[9],\r\n SocioEconomicStatus: row[10],\r\n LGANumber: row[11],\r\n AgreementReferenceNumber: row[12],\r\n });\r\n }\r\n });\r\n if (newRows.length === 0) {\r\n this.setState({\r\n errorMessage: \"No data found in file!\"\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n file: fileObj,\r\n cols: resp.cols,\r\n rows: newRows,\r\n errorMessage: null\r\n });\r\n }\r\n }\r\n });\r\n return false;\r\n };\r\n\r\n successCallback = (response) => {\r\n\r\n //if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n // this.setState({ selectedAssessor: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), AssessmentEndDate: \"\" });\r\n // //Force a refresh\r\n // this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n //}\r\n }\r\n\r\n errorCallback = (response) => {\r\n //if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n // this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n //}\r\n }\r\n\r\n handleSubmit = async () => {\r\n\r\n const data = {\r\n Person: this.state.rows,\r\n Document: this.state.fileInfo\r\n\r\n };\r\n\r\n utils.invokeUrl(\"api/sims/LearnerLearnershipUpload/BulkUploadLearnerLearnership\", (response) => {\r\n if (response.MessageType !== undefined && response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n documentName: response.Message,\r\n documentGenerated: true,\r\n file: null,\r\n fileInfo: null,\r\n cols: [],\r\n rows: []\r\n });\r\n }\r\n else {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n\r\n };\r\n\r\n FileDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/LearnerLearnershipUpload/BulkUploadGetReport?FileName=\" + this.state.documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleDelete = key => {\r\n const rows = [...this.state.rows];\r\n this.setState({ rows: rows.filter(item => item.key !== key) });\r\n };\r\n handleAdd = () => {\r\n const { count, rows } = this.state;\r\n const newData = {\r\n key: count,\r\n name: \"User's name\",\r\n age: \"22\",\r\n gender: \"Female\"\r\n };\r\n this.setState({\r\n rows: [newData, ...rows],\r\n count: count + 1\r\n });\r\n };\r\n\r\n render() {\r\n const components = {\r\n body: {\r\n row: EditableFormRow,\r\n cell: EditableCell\r\n }\r\n };\r\n const columns = this.state.columns.map(col => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: record => ({\r\n record,\r\n editable: col.editable,\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n handleSave: this.handleSave\r\n })\r\n };\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Dowload template\r\n \r\n \r\n \r\n {this.state.rows.length > 0 && (\r\n\r\n \r\n Import\r\n \r\n\r\n )}\r\n \r\n \r\n
\r\n this.setState({ rows: [] })}\r\n multiple={false}\r\n showUploadList={false}\r\n >\r\n \r\n \r\n
\r\n {this.state.fileInfo && this.state.fileInfo.name}\r\n
\r\n
\r\n
\r\n \"editable-row\"}\r\n dataSource={this.state.rows}\r\n columns={columns}\r\n />\r\n
\r\n \r\n {this.state.documentGenerated && (\r\n \r\n Click here to download Bulk Import success and exception report\r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ExcelPage from \"./LearnershipExcelPage\";\r\nimport \"antd/dist/antd.css\";\r\n\r\nclass BulkIpload extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Upload Learnership Programme Registration\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkIpload)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Table, Button, Popconfirm, Row, Col, Upload } from \"antd\";\r\nimport { ExcelRenderer } from \"react-excel-renderer\";\r\nimport { EditableFormRow, EditableCell } from \"./editable\";\r\nimport Icon from '@ant-design/icons';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport skillsprogrammeUploadTemplate from \"../../../content/templates/SkillsProgrammeUpload_Template.xlsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default class SkillsExcelPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cols: [],\r\n rows: [],\r\n file: null,\r\n fileInfo: null,\r\n data: null,\r\n errorMessage: null,\r\n documentGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n columns: [\r\n {\r\n title: \"ID Number\",\r\n dataIndex: \"LearnerIDNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Provider SDL Number\",\r\n dataIndex: \"ProviderSDLNumber\",\r\n editable: false\r\n },\r\n {\r\n title: \"SkillsProgramme Code\",\r\n dataIndex: \"SkillsProgrammeCode\",\r\n editable: false\r\n },\r\n {\r\n title: \"SkillsProgramme Title\",\r\n dataIndex: \"SkillsProgrammeTitle\",\r\n editable: false\r\n },\r\n {\r\n title: \"Employer SDL Number\",\r\n dataIndex: \"EmployerSDLNumber\",\r\n editable: false\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleSave = row => {\r\n const newData = [...this.state.rows];\r\n const index = newData.findIndex(item => row.key === item.key);\r\n const item = newData[index];\r\n newData.splice(index, 1, {\r\n ...item,\r\n ...row\r\n });\r\n this.setState({ rows: newData });\r\n };\r\n\r\n checkFile(file) {\r\n let errorMessage = \"\";\r\n if (!file || !file[0]) {\r\n return;\r\n }\r\n const isExcel =\r\n file[0].type === \"application/vnd.ms-excel\" ||\r\n file[0].type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isExcel) {\r\n errorMessage = \"You can only upload Excel file!\";\r\n }\r\n console.log(\"file\", file[0].type);\r\n const isLt2M = file[0].size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n errorMessage = \"File must be smaller than 2MB!\";\r\n }\r\n console.log(\"errorMessage\", errorMessage);\r\n return errorMessage;\r\n }\r\n\r\n fileHandler = fileList => {\r\n console.log(\"fileList\", fileList);\r\n let fileObj = fileList;\r\n\r\n if (!fileObj) {\r\n this.setState({\r\n errorMessage: \"No file uploaded!\"\r\n });\r\n return false;\r\n }\r\n console.log(\"fileObj.type:\", fileObj.type);\r\n if (\r\n !(\r\n fileObj.type === \"application/vnd.ms-excel\" ||\r\n fileObj.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n this.setState({\r\n errorMessage: \"Unknown file format. Only Excel files are uploaded!\"\r\n });\r\n return false;\r\n }\r\n this.setState({\r\n documentGenerated: false\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(fileObj);\r\n\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: fileObj.name,\r\n type: fileObj.type,\r\n size: Math.round(fileObj.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n //just pass the fileObj as parameter\r\n ExcelRenderer(fileObj, (err, resp) => {\r\n if (err) {\r\n console.log(err);\r\n } else {\r\n let newRows = [];\r\n resp.rows.slice(3).map((row, index) => {\r\n if (row && row !== \"undefined\") {\r\n newRows.push({\r\n LearnerIDNo: row[0],\r\n ProviderSDLNumber: row[1],\r\n SkillsProgrammeCode: row[2],\r\n SkillsProgrammeTitle: row[3],\r\n EmployerSDLNumber: row[4],\r\n Sponsorship: row[5],\r\n ProjectCode: row[6],\r\n FinancialYear: row[7],\r\n CommencementDate: row[8],\r\n CompletionDate: row[9],\r\n SocioEconomicStatus: row[10]\r\n });\r\n }\r\n });\r\n if (newRows.length === 0) {\r\n this.setState({\r\n errorMessage: \"No data found in file!\"\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n file: fileObj,\r\n cols: resp.cols,\r\n rows: newRows,\r\n errorMessage: null\r\n });\r\n }\r\n }\r\n });\r\n return false;\r\n };\r\n\r\n successCallback = (response) => {\r\n\r\n //if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n // this.setState({ selectedAssessor: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), AssessmentEndDate: \"\" });\r\n // //Force a refresh\r\n // this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n //}\r\n }\r\n\r\n errorCallback = (response) => {\r\n //if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n // this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n //}\r\n }\r\n\r\n handleSubmit = async () => {\r\n\r\n const data = {\r\n Person: this.state.rows,\r\n Document: this.state.fileInfo\r\n\r\n };\r\n\r\n utils.invokeUrl(\"api/sims/LearnerSkillsProgrammeUpload/BulkUploadLearnerSkillsProgramme\", (response) => {\r\n if (response.MessageType !== undefined && response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n documentName: response.Message,\r\n documentGenerated: true,\r\n file: null,\r\n fileInfo: null,\r\n cols: [],\r\n rows: []\r\n });\r\n }\r\n else {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n\r\n };\r\n\r\n FileDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/LearnerSkillsProgrammeUpload/BulkUploadGetReport?FileName=\" + this.state.documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleDelete = key => {\r\n const rows = [...this.state.rows];\r\n this.setState({ rows: rows.filter(item => item.key !== key) });\r\n };\r\n handleAdd = () => {\r\n const { count, rows } = this.state;\r\n const newData = {\r\n key: count,\r\n name: \"User's name\",\r\n age: \"22\",\r\n gender: \"Female\"\r\n };\r\n this.setState({\r\n rows: [newData, ...rows],\r\n count: count + 1\r\n });\r\n };\r\n\r\n render() {\r\n const components = {\r\n body: {\r\n row: EditableFormRow,\r\n cell: EditableCell\r\n }\r\n };\r\n const columns = this.state.columns.map(col => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: record => ({\r\n record,\r\n editable: col.editable,\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n handleSave: this.handleSave\r\n })\r\n };\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Dowload template\r\n \r\n \r\n \r\n {this.state.rows.length > 0 && (\r\n\r\n \r\n Import\r\n \r\n\r\n )}\r\n \r\n \r\n
\r\n this.setState({ rows: [] })}\r\n multiple={false}\r\n showUploadList={false}\r\n >\r\n \r\n \r\n
\r\n {this.state.fileInfo && this.state.fileInfo.name}\r\n
\r\n
\r\n
\r\n \"editable-row\"}\r\n dataSource={this.state.rows}\r\n columns={columns}\r\n />\r\n
\r\n \r\n {this.state.documentGenerated && (\r\n \r\n Click here to download Bulk Import success and exception report\r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ExcelPage from \"./SkillsExcelPage\";\r\nimport \"antd/dist/antd.css\";\r\n\r\nclass BulkIpload extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Upload Skills Programme Registration\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkIpload)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Table, Button, Popconfirm, Row, Col, Upload } from \"antd\";\r\nimport { ExcelRenderer } from \"react-excel-renderer\";\r\nimport { EditableFormRow, EditableCell } from \"./editable\";\r\nimport Icon from '@ant-design/icons';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport bursariesUploadTemplate from \"../../../content/templates/BursariesUpload_Template.xlsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default class BursariesExcelPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cols: [],\r\n rows: [],\r\n file: null,\r\n fileInfo: null,\r\n data: null,\r\n errorMessage: null,\r\n documentGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n columns: [\r\n {\r\n title: \"ID Number\",\r\n dataIndex: \"LearnerIDNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Sponsorship\",\r\n dataIndex: \"Sponsorship\",\r\n editable: false\r\n },\r\n {\r\n title: \"Project Number\",\r\n dataIndex: \"Project\",\r\n editable: false\r\n },\r\n {\r\n title: \"Bursary Start Date\",\r\n dataIndex: \"BursaryStartDate\",\r\n editable: false\r\n },\r\n {\r\n title: \"Bursary End Date\",\r\n dataIndex: \"BursaryEndDate\",\r\n editable: false\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleSave = row => {\r\n const newData = [...this.state.rows];\r\n const index = newData.findIndex(item => row.key === item.key);\r\n const item = newData[index];\r\n newData.splice(index, 1, {\r\n ...item,\r\n ...row\r\n });\r\n this.setState({ rows: newData });\r\n };\r\n\r\n checkFile(file) {\r\n let errorMessage = \"\";\r\n if (!file || !file[0]) {\r\n return;\r\n }\r\n const isExcel =\r\n file[0].type === \"application/vnd.ms-excel\" ||\r\n file[0].type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isExcel) {\r\n errorMessage = \"You can only upload Excel file!\";\r\n }\r\n console.log(\"file\", file[0].type);\r\n const isLt2M = file[0].size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n errorMessage = \"File must be smaller than 2MB!\";\r\n }\r\n console.log(\"errorMessage\", errorMessage);\r\n return errorMessage;\r\n }\r\n\r\n fileHandler = fileList => {\r\n console.log(\"fileList\", fileList);\r\n let fileObj = fileList;\r\n\r\n if (!fileObj) {\r\n this.setState({\r\n errorMessage: \"No file uploaded!\"\r\n });\r\n return false;\r\n }\r\n console.log(\"fileObj.type:\", fileObj.type);\r\n if (\r\n !(\r\n fileObj.type === \"application/vnd.ms-excel\" ||\r\n fileObj.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n this.setState({\r\n errorMessage: \"Unknown file format. Only Excel files are uploaded!\"\r\n });\r\n return false;\r\n }\r\n this.setState({\r\n documentGenerated: false\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(fileObj);\r\n\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: fileObj.name,\r\n type: fileObj.type,\r\n size: Math.round(fileObj.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n\r\n const getJsDateFromExcel = excelDate => {\r\n const date = new Date((excelDate - (25567 + 2)) * 86400 * 1000);\r\n var yyyy = date.getFullYear();\r\n var mm = date.getMonth() < 9 ? \"0\" + (date.getMonth() + 1) : (date.getMonth() + 1); // getMonth() is zero-based\r\n var dd = date.getDate() < 10 ? \"0\" + date.getDate() : date.getDate();\r\n return \"\".concat(yyyy).concat('/').concat(mm).concat('/').concat(dd);\r\n };\r\n\r\n //just pass the fileObj as parameter\r\n ExcelRenderer(fileObj, (err, resp) => {\r\n if (err) {\r\n console.log(err);\r\n } else {\r\n let newRows = [];\r\n resp.rows.slice(3).map((row, index) => {\r\n if (row && row !== \"undefined\") {\r\n newRows.push({\r\n LearnerIDNo: row[0],\r\n Sponsorship: row[1],\r\n Project: row[2],\r\n BursaryStartDate: getJsDateFromExcel(row[3]),\r\n BursaryEndDate: getJsDateFromExcel(row[4]),\r\n NQFLevel: row[5],\r\n OFOCode: row[6],\r\n ProviderSDLNo: row[7],\r\n EmployerSDLNo: row[8],\r\n SocioEconomicStatus: row[9],\r\n FinancialYear: row[10],\r\n QualificationSAQA: row[11],\r\n InstitutionType: row[12],\r\n InstitutionName: row[13],\r\n CumulativeSpend: row[14]\r\n });\r\n }\r\n });\r\n if (newRows.length === 0) {\r\n this.setState({\r\n errorMessage: \"No data found in file!\"\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n file: fileObj,\r\n cols: resp.cols,\r\n rows: newRows,\r\n errorMessage: null\r\n });\r\n }\r\n }\r\n });\r\n return false;\r\n };\r\n\r\n successCallback = (response) => {\r\n\r\n //if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n // this.setState({ selectedAssessor: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), AssessmentEndDate: \"\" });\r\n // //Force a refresh\r\n // this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n //}\r\n }\r\n\r\n errorCallback = (response) => {\r\n //if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n // this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n //}\r\n }\r\n\r\n handleSubmit = async () => {\r\n\r\n const data = {\r\n Person: this.state.rows,\r\n Document: this.state.fileInfo\r\n\r\n };\r\n\r\n utils.invokeUrl(\"api/sims/LearnerBursaryUpload/BulkUploadLearnerBursary\", (response) => {\r\n if (response.MessageType !== undefined && response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n documentName: response.Message,\r\n documentGenerated: true,\r\n file: null,\r\n fileInfo: null,\r\n cols: [],\r\n rows: []\r\n });\r\n }\r\n else {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n\r\n };\r\n\r\n FileDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/LearnerBursaryUpload/BulkUploadGetReport?FileName=\" + this.state.documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleDelete = key => {\r\n const rows = [...this.state.rows];\r\n this.setState({ rows: rows.filter(item => item.key !== key) });\r\n };\r\n handleAdd = () => {\r\n const { count, rows } = this.state;\r\n const newData = {\r\n key: count,\r\n name: \"User's name\",\r\n age: \"22\",\r\n gender: \"Female\"\r\n };\r\n this.setState({\r\n rows: [newData, ...rows],\r\n count: count + 1\r\n });\r\n };\r\n\r\n render() {\r\n const components = {\r\n body: {\r\n row: EditableFormRow,\r\n cell: EditableCell\r\n }\r\n };\r\n const columns = this.state.columns.map(col => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: record => ({\r\n record,\r\n editable: col.editable,\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n handleSave: this.handleSave\r\n })\r\n };\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Dowload template\r\n \r\n \r\n \r\n {this.state.rows.length > 0 && (\r\n\r\n \r\n Import\r\n \r\n\r\n )}\r\n \r\n \r\n
\r\n this.setState({ rows: [] })}\r\n multiple={false}\r\n showUploadList={false}\r\n >\r\n \r\n \r\n
\r\n {this.state.fileInfo && this.state.fileInfo.name}\r\n
\r\n
\r\n
\r\n \"editable-row\"}\r\n dataSource={this.state.rows}\r\n columns={columns}\r\n />\r\n
\r\n \r\n {this.state.documentGenerated && (\r\n \r\n Click here to download Bulk Import success and exception report\r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ExcelPage from \"./BursariesExcelPage\";\r\nimport \"antd/dist/antd.css\";\r\n\r\nclass BulkIpload extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Upload Bursary Registration\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkIpload)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Table, Button, Popconfirm, Row, Col, Upload } from \"antd\";\r\nimport { ExcelRenderer } from \"react-excel-renderer\";\r\nimport { EditableFormRow, EditableCell } from \"./editable\";\r\nimport Icon from '@ant-design/icons';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport internshipUploadTemplate from \"../../../content/templates/InternshipUpload_Template.xlsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default class InternshipExcelPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cols: [],\r\n rows: [],\r\n file: null,\r\n fileInfo: null,\r\n data: null,\r\n errorMessage: null,\r\n documentGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n columns: [\r\n {\r\n title: \"ID Number\",\r\n dataIndex: \"LearnerIDNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Sponsorship\",\r\n dataIndex: \"Sponsorship\",\r\n editable: false\r\n },\r\n {\r\n title: \"Internship Start Date\",\r\n dataIndex: \"InternshipStartDate\",\r\n editable: false\r\n },\r\n {\r\n title: \"Internship End Date\",\r\n dataIndex: \"InternshipEndDate\",\r\n editable: false\r\n },\r\n {\r\n title: \"Highest Education Level\",\r\n dataIndex: \"HighestEducationLevel\",\r\n editable: false\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleSave = row => {\r\n const newData = [...this.state.rows];\r\n const index = newData.findIndex(item => row.key === item.key);\r\n const item = newData[index];\r\n newData.splice(index, 1, {\r\n ...item,\r\n ...row\r\n });\r\n this.setState({ rows: newData });\r\n };\r\n\r\n checkFile(file) {\r\n let errorMessage = \"\";\r\n if (!file || !file[0]) {\r\n return;\r\n }\r\n const isExcel =\r\n file[0].type === \"application/vnd.ms-excel\" ||\r\n file[0].type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isExcel) {\r\n errorMessage = \"You can only upload Excel file!\";\r\n }\r\n console.log(\"file\", file[0].type);\r\n const isLt2M = file[0].size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n errorMessage = \"File must be smaller than 2MB!\";\r\n }\r\n console.log(\"errorMessage\", errorMessage);\r\n return errorMessage;\r\n }\r\n\r\n fileHandler = fileList => {\r\n console.log(\"fileList\", fileList);\r\n let fileObj = fileList;\r\n\r\n if (!fileObj) {\r\n this.setState({\r\n errorMessage: \"No file uploaded!\"\r\n });\r\n return false;\r\n }\r\n console.log(\"fileObj.type:\", fileObj.type);\r\n if (\r\n !(\r\n fileObj.type === \"application/vnd.ms-excel\" ||\r\n fileObj.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n this.setState({\r\n errorMessage: \"Unknown file format. Only Excel files are uploaded!\"\r\n });\r\n return false;\r\n }\r\n this.setState({\r\n documentGenerated: false\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(fileObj);\r\n\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: fileObj.name,\r\n type: fileObj.type,\r\n size: Math.round(fileObj.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n\r\n const getJsDateFromExcel = excelDate => {\r\n const date = new Date((excelDate - (25567 + 2)) * 86400 * 1000);\r\n var yyyy = date.getFullYear();\r\n var mm = date.getMonth() < 9 ? \"0\" + (date.getMonth() + 1) : (date.getMonth() + 1); // getMonth() is zero-based\r\n var dd = date.getDate() < 10 ? \"0\" + date.getDate() : date.getDate();\r\n return \"\".concat(yyyy).concat('/').concat(mm).concat('/').concat(dd);\r\n };\r\n\r\n //just pass the fileObj as parameter\r\n ExcelRenderer(fileObj, (err, resp) => {\r\n if (err) {\r\n console.log(err);\r\n } else {\r\n let newRows = [];\r\n resp.rows.slice(3).map((row, index) => {\r\n if (row && row !== \"undefined\") {\r\n newRows.push({\r\n LearnerIDNo: row[0],\r\n Sponsorship: row[1],\r\n InternshipStartDate: getJsDateFromExcel(row[2]),\r\n InternshipEndDate: getJsDateFromExcel(row[3]),\r\n NQFLevel: row[4],\r\n OFOCode: row[5],\r\n ProviderSDLNo: row[6],\r\n EmployerSDLNo: row[7],\r\n InternshipType: row[8],\r\n FinancialYear: row[9],\r\n SocioEconomicStatus: row[10],\r\n QualificationSAQA: row[11],\r\n QualificationAchievementDate: row[12],\r\n YearOfStudy: row[13],\r\n PlacementType: row[14],\r\n CumulativeSpend: row[15]\r\n });\r\n }\r\n });\r\n if (newRows.length === 0) {\r\n this.setState({\r\n errorMessage: \"No data found in file!\"\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n file: fileObj,\r\n cols: resp.cols,\r\n rows: newRows,\r\n errorMessage: null\r\n });\r\n }\r\n }\r\n });\r\n return false;\r\n };\r\n\r\n successCallback = (response) => {\r\n\r\n //if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n // this.setState({ selectedAssessor: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), AssessmentEndDate: \"\" });\r\n // //Force a refresh\r\n // this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n //}\r\n }\r\n\r\n errorCallback = (response) => {\r\n //if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n // this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n //}\r\n }\r\n\r\n handleSubmit = async () => {\r\n\r\n const data = {\r\n Person: this.state.rows,\r\n Document: this.state.fileInfo\r\n\r\n };\r\n\r\n utils.invokeUrl(\"api/sims/LearnerInternshipUpload/BulkUploadLearnerInternship\", (response) => {\r\n if (response.MessageType !== undefined && response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n documentName: response.Message,\r\n documentGenerated: true,\r\n file: null,\r\n fileInfo: null,\r\n cols: [],\r\n rows: []\r\n });\r\n }\r\n else {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n\r\n };\r\n\r\n FileDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/LearnerInternshipUpload/BulkUploadGetReport?FileName=\" + this.state.documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleDelete = key => {\r\n const rows = [...this.state.rows];\r\n this.setState({ rows: rows.filter(item => item.key !== key) });\r\n };\r\n handleAdd = () => {\r\n const { count, rows } = this.state;\r\n const newData = {\r\n key: count,\r\n name: \"User's name\",\r\n age: \"22\",\r\n gender: \"Female\"\r\n };\r\n this.setState({\r\n rows: [newData, ...rows],\r\n count: count + 1\r\n });\r\n };\r\n\r\n render() {\r\n const components = {\r\n body: {\r\n row: EditableFormRow,\r\n cell: EditableCell\r\n }\r\n };\r\n const columns = this.state.columns.map(col => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: record => ({\r\n record,\r\n editable: col.editable,\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n handleSave: this.handleSave\r\n })\r\n };\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Dowload template\r\n \r\n \r\n \r\n {this.state.rows.length > 0 && (\r\n\r\n \r\n Import\r\n \r\n\r\n )}\r\n \r\n \r\n
\r\n this.setState({ rows: [] })}\r\n multiple={false}\r\n showUploadList={false}\r\n >\r\n \r\n \r\n
\r\n {this.state.fileInfo && this.state.fileInfo.name}\r\n
\r\n
\r\n
\r\n \"editable-row\"}\r\n dataSource={this.state.rows}\r\n columns={columns}\r\n />\r\n
\r\n \r\n {this.state.documentGenerated && (\r\n \r\n Click here to download Bulk Import success and exception report\r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ExcelPage from \"./InternshipExcelPage\";\r\nimport \"antd/dist/antd.css\";\r\n\r\nclass BulkIpload extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Upload Internship Registration\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkIpload)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Table, Button, Popconfirm, Row, Col, Upload } from \"antd\";\r\nimport { ExcelRenderer } from \"react-excel-renderer\";\r\nimport { EditableFormRow, EditableCell } from \"./editable\";\r\nimport Icon from '@ant-design/icons';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport aetUploadTemplate from \"../../../content/templates/AETUpload_Template.xlsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default class AETExcelPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cols: [],\r\n rows: [],\r\n file: null,\r\n fileInfo: null,\r\n data: null,\r\n errorMessage: null,\r\n documentGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n columns: [\r\n {\r\n title: \"ID Number\",\r\n dataIndex: \"LearnerIDNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Provider SDL Number\",\r\n dataIndex: \"ProviderSDLNumber\",\r\n editable: false\r\n },\r\n {\r\n title: \"AET Programme Code\",\r\n dataIndex: \"AETProgrammeCode\",\r\n editable: false\r\n },\r\n {\r\n title: \"AET Programme Title\",\r\n dataIndex: \"AETProgrammeTitle\",\r\n editable: false\r\n },\r\n {\r\n title: \"Employer SDL Number\",\r\n dataIndex: \"EmployerSDLNumber\",\r\n editable: false\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleSave = row => {\r\n const newData = [...this.state.rows];\r\n const index = newData.findIndex(item => row.key === item.key);\r\n const item = newData[index];\r\n newData.splice(index, 1, {\r\n ...item,\r\n ...row\r\n });\r\n this.setState({ rows: newData });\r\n };\r\n\r\n checkFile(file) {\r\n let errorMessage = \"\";\r\n if (!file || !file[0]) {\r\n return;\r\n }\r\n const isExcel =\r\n file[0].type === \"application/vnd.ms-excel\" ||\r\n file[0].type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isExcel) {\r\n errorMessage = \"You can only upload Excel file!\";\r\n }\r\n console.log(\"file\", file[0].type);\r\n const isLt2M = file[0].size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n errorMessage = \"File must be smaller than 2MB!\";\r\n }\r\n console.log(\"errorMessage\", errorMessage);\r\n return errorMessage;\r\n }\r\n\r\n fileHandler = fileList => {\r\n console.log(\"fileList\", fileList);\r\n let fileObj = fileList;\r\n\r\n if (!fileObj) {\r\n this.setState({\r\n errorMessage: \"No file uploaded!\"\r\n });\r\n return false;\r\n }\r\n console.log(\"fileObj.type:\", fileObj.type);\r\n if (\r\n !(\r\n fileObj.type === \"application/vnd.ms-excel\" ||\r\n fileObj.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n this.setState({\r\n errorMessage: \"Unknown file format. Only Excel files are uploaded!\"\r\n });\r\n return false;\r\n }\r\n this.setState({\r\n documentGenerated: false\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(fileObj);\r\n\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: fileObj.name,\r\n type: fileObj.type,\r\n size: Math.round(fileObj.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n //just pass the fileObj as parameter\r\n ExcelRenderer(fileObj, (err, resp) => {\r\n if (err) {\r\n console.log(err);\r\n } else {\r\n let newRows = [];\r\n resp.rows.slice(3).map((row, index) => {\r\n if (row && row !== \"undefined\") {\r\n newRows.push({\r\n LearnerIDNo: row[0],\r\n ProviderSDLNumber: row[1],\r\n AETProgrammeCode: row[2],\r\n AETProgrammeTitle: row[3],\r\n EmployerSDLNumber: row[4],\r\n Sponsorship: row[5],\r\n AETStartDate: row[6],\r\n AETEndDate: row[7],\r\n SocioEconomicStatus: row[8],\r\n Project: row[9],\r\n StatusEffectiveDate: row[10],\r\n MostRecentRegistrationDate: row[11],\r\n CumulativeSpend: row[12]\r\n });\r\n }\r\n });\r\n if (newRows.length === 0) {\r\n this.setState({\r\n errorMessage: \"No data found in file!\"\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n file: fileObj,\r\n cols: resp.cols,\r\n rows: newRows,\r\n errorMessage: null\r\n });\r\n }\r\n }\r\n });\r\n return false;\r\n };\r\n\r\n successCallback = (response) => {\r\n\r\n //if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n // this.setState({ selectedAssessor: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), AssessmentEndDate: \"\" });\r\n // //Force a refresh\r\n // this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n //}\r\n }\r\n\r\n errorCallback = (response) => {\r\n //if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n // this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n //}\r\n }\r\n\r\n handleSubmit = async () => {\r\n\r\n const data = {\r\n Person: this.state.rows,\r\n Document: this.state.fileInfo\r\n\r\n };\r\n\r\n utils.invokeUrl(\"api/sims/LearnerAETUpload/BulkUploadLearnerAET\", (response) => {\r\n if (response.MessageType !== undefined && response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n documentName: response.Message,\r\n documentGenerated: true,\r\n file: null,\r\n fileInfo: null,\r\n cols: [],\r\n rows: []\r\n });\r\n }\r\n else {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n\r\n };\r\n\r\n FileDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/LearnerAETUpload/BulkUploadGetReport?FileName=\" + this.state.documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleDelete = key => {\r\n const rows = [...this.state.rows];\r\n this.setState({ rows: rows.filter(item => item.key !== key) });\r\n };\r\n handleAdd = () => {\r\n const { count, rows } = this.state;\r\n const newData = {\r\n key: count,\r\n name: \"User's name\",\r\n age: \"22\",\r\n gender: \"Female\"\r\n };\r\n this.setState({\r\n rows: [newData, ...rows],\r\n count: count + 1\r\n });\r\n };\r\n\r\n render() {\r\n const components = {\r\n body: {\r\n row: EditableFormRow,\r\n cell: EditableCell\r\n }\r\n };\r\n const columns = this.state.columns.map(col => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: record => ({\r\n record,\r\n editable: col.editable,\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n handleSave: this.handleSave\r\n })\r\n };\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Dowload template\r\n \r\n \r\n \r\n {this.state.rows.length > 0 && (\r\n\r\n \r\n Import\r\n \r\n\r\n )}\r\n \r\n \r\n
\r\n this.setState({ rows: [] })}\r\n multiple={false}\r\n showUploadList={false}\r\n >\r\n \r\n \r\n
\r\n {this.state.fileInfo && this.state.fileInfo.name}\r\n
\r\n
\r\n
\r\n \"editable-row\"}\r\n dataSource={this.state.rows}\r\n columns={columns}\r\n />\r\n
\r\n \r\n {this.state.documentGenerated && (\r\n \r\n Click here to download Bulk Import success and exception report\r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ExcelPage from \"./AETExcelPage\";\r\nimport \"antd/dist/antd.css\";\r\n\r\nclass BulkIpload extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Upload AET Registration\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkIpload)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Table, Button, Popconfirm, Row, Col, Upload } from \"antd\";\r\nimport { ExcelRenderer } from \"react-excel-renderer\";\r\nimport { EditableFormRow, EditableCell } from \"./editable\";\r\nimport Icon from '@ant-design/icons';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport candidacyUploadTemplate from \"../../../content/templates/CandidacyUpload_Template.xlsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default class CandidacyExcelPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cols: [],\r\n rows: [],\r\n file: null,\r\n fileInfo: null,\r\n data: null,\r\n errorMessage: null,\r\n documentGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n columns: [\r\n {\r\n title: \"ID Number\",\r\n dataIndex: \"LearnerIDNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Sponsorship\",\r\n dataIndex: \"Sponsorship\",\r\n editable: false\r\n },\r\n {\r\n title: \"Candidacy Start Date\",\r\n dataIndex: \"CandidacyStartDate\",\r\n editable: false\r\n },\r\n {\r\n title: \"Candidacy End Date\",\r\n dataIndex: \"CandidacyEndDate\",\r\n editable: false\r\n },\r\n {\r\n title: \"NQF Level\",\r\n dataIndex: \"NQFLevel\",\r\n editable: false\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleSave = row => {\r\n const newData = [...this.state.rows];\r\n const index = newData.findIndex(item => row.key === item.key);\r\n const item = newData[index];\r\n newData.splice(index, 1, {\r\n ...item,\r\n ...row\r\n });\r\n this.setState({ rows: newData });\r\n };\r\n\r\n checkFile(file) {\r\n let errorMessage = \"\";\r\n if (!file || !file[0]) {\r\n return;\r\n }\r\n const isExcel =\r\n file[0].type === \"application/vnd.ms-excel\" ||\r\n file[0].type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isExcel) {\r\n errorMessage = \"You can only upload Excel file!\";\r\n }\r\n console.log(\"file\", file[0].type);\r\n const isLt2M = file[0].size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n errorMessage = \"File must be smaller than 2MB!\";\r\n }\r\n console.log(\"errorMessage\", errorMessage);\r\n return errorMessage;\r\n }\r\n\r\n fileHandler = fileList => {\r\n console.log(\"fileList\", fileList);\r\n let fileObj = fileList;\r\n\r\n if (!fileObj) {\r\n this.setState({\r\n errorMessage: \"No file uploaded!\"\r\n });\r\n return false;\r\n }\r\n console.log(\"fileObj.type:\", fileObj.type);\r\n if (\r\n !(\r\n fileObj.type === \"application/vnd.ms-excel\" ||\r\n fileObj.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n this.setState({\r\n errorMessage: \"Unknown file format. Only Excel files are uploaded!\"\r\n });\r\n return false;\r\n }\r\n this.setState({\r\n documentGenerated: false\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(fileObj);\r\n\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: fileObj.name,\r\n type: fileObj.type,\r\n size: Math.round(fileObj.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n\r\n const getJsDateFromExcel = excelDate => {\r\n const date = new Date((excelDate - (25567 + 2)) * 86400 * 1000);\r\n var yyyy = date.getFullYear();\r\n var mm = date.getMonth() < 9 ? \"0\" + (date.getMonth() + 1) : (date.getMonth() + 1); // getMonth() is zero-based\r\n var dd = date.getDate() < 10 ? \"0\" + date.getDate() : date.getDate();\r\n return \"\".concat(yyyy).concat('/').concat(mm).concat('/').concat(dd);\r\n };\r\n\r\n //just pass the fileObj as parameter\r\n ExcelRenderer(fileObj, (err, resp) => {\r\n if (err) {\r\n console.log(err);\r\n } else {\r\n let newRows = [];\r\n resp.rows.slice(3).map((row, index) => {\r\n if (row && row !== \"undefined\") {\r\n newRows.push({\r\n LearnerIDNo: row[0],\r\n Sponsorship: row[1],\r\n CandidacyStartDate: getJsDateFromExcel(row[2]),\r\n CandidacyEndDate: getJsDateFromExcel(row[3]),\r\n NQFLevel: row[4],\r\n OFOCode: row[5],\r\n ProviderSDLNo: row[6],\r\n EmployerSDLNo: row[7],\r\n FinancialYear: row[8],\r\n SocioEconomicStatus: row[9],\r\n QualificationSAQA: row[10],\r\n MostRecentRegistrationDate: row[11],\r\n CumulativeSpend: row[12],\r\n ReferenceNumber: row[13]\r\n });\r\n }\r\n });\r\n if (newRows.length === 0) {\r\n this.setState({\r\n errorMessage: \"No data found in file!\"\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n file: fileObj,\r\n cols: resp.cols,\r\n rows: newRows,\r\n errorMessage: null\r\n });\r\n }\r\n }\r\n });\r\n return false;\r\n };\r\n\r\n successCallback = (response) => {\r\n\r\n //if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n // this.setState({ selectedAssessor: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), AssessmentEndDate: \"\" });\r\n // //Force a refresh\r\n // this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n //}\r\n }\r\n\r\n errorCallback = (response) => {\r\n //if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n // this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n //}\r\n }\r\n\r\n handleSubmit = async () => {\r\n\r\n const data = {\r\n Person: this.state.rows,\r\n Document: this.state.fileInfo\r\n\r\n };\r\n\r\n utils.invokeUrl(\"api/sims/LearnerCandidacyUpload/BulkUploadLearnerCandidacy\", (response) => {\r\n if (response.MessageType !== undefined && response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n documentName: response.Message,\r\n documentGenerated: true,\r\n file: null,\r\n fileInfo: null,\r\n cols: [],\r\n rows: []\r\n });\r\n }\r\n else {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n\r\n };\r\n\r\n FileDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/LearnerCandidacyUpload/BulkUploadGetReport?FileName=\" + this.state.documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleDelete = key => {\r\n const rows = [...this.state.rows];\r\n this.setState({ rows: rows.filter(item => item.key !== key) });\r\n };\r\n handleAdd = () => {\r\n const { count, rows } = this.state;\r\n const newData = {\r\n key: count,\r\n name: \"User's name\",\r\n age: \"22\",\r\n gender: \"Female\"\r\n };\r\n this.setState({\r\n rows: [newData, ...rows],\r\n count: count + 1\r\n });\r\n };\r\n\r\n render() {\r\n const components = {\r\n body: {\r\n row: EditableFormRow,\r\n cell: EditableCell\r\n }\r\n };\r\n const columns = this.state.columns.map(col => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: record => ({\r\n record,\r\n editable: col.editable,\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n handleSave: this.handleSave\r\n })\r\n };\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Dowload template\r\n \r\n \r\n \r\n {this.state.rows.length > 0 && (\r\n\r\n \r\n Import\r\n \r\n\r\n )}\r\n \r\n \r\n
\r\n this.setState({ rows: [] })}\r\n multiple={false}\r\n showUploadList={false}\r\n >\r\n \r\n \r\n
\r\n {this.state.fileInfo && this.state.fileInfo.name}\r\n
\r\n
\r\n
\r\n \"editable-row\"}\r\n dataSource={this.state.rows}\r\n columns={columns}\r\n />\r\n
\r\n \r\n {this.state.documentGenerated && (\r\n \r\n Click here to download Bulk Import success and exception report\r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ExcelPage from \"./CandidacyExcelPage\";\r\nimport \"antd/dist/antd.css\";\r\n\r\nclass BulkIpload extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Upload Candidacy Registration\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkIpload)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Table, Button, Popconfirm, Row, Col, Upload } from \"antd\";\r\nimport { ExcelRenderer } from \"react-excel-renderer\";\r\nimport { EditableFormRow, EditableCell } from \"./editable\";\r\nimport Icon from '@ant-design/icons';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport fetPlacementUploadTemplate from \"../../../content/templates/FETPlacementUpload_Template.xlsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default class FETExcelPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cols: [],\r\n rows: [],\r\n file: null,\r\n fileInfo: null,\r\n data: null,\r\n errorMessage: null,\r\n documentGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n columns: [\r\n {\r\n title: \"ID Number\",\r\n dataIndex: \"LearnerIDNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Sponsorship\",\r\n dataIndex: \"Sponsorship\",\r\n editable: false\r\n },\r\n {\r\n title: \"Workplace Start Date\",\r\n dataIndex: \"WorkplaceStartDate\",\r\n editable: false\r\n },\r\n {\r\n title: \"Workplace End Date\",\r\n dataIndex: \"WorkplaceEndDate\",\r\n editable: false\r\n },\r\n {\r\n title: \"Highest Education Level\",\r\n dataIndex: \"HighestEducationLevel\",\r\n editable: false\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleSave = row => {\r\n const newData = [...this.state.rows];\r\n const index = newData.findIndex(item => row.key === item.key);\r\n const item = newData[index];\r\n newData.splice(index, 1, {\r\n ...item,\r\n ...row\r\n });\r\n this.setState({ rows: newData });\r\n };\r\n\r\n checkFile(file) {\r\n let errorMessage = \"\";\r\n if (!file || !file[0]) {\r\n return;\r\n }\r\n const isExcel =\r\n file[0].type === \"application/vnd.ms-excel\" ||\r\n file[0].type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isExcel) {\r\n errorMessage = \"You can only upload Excel file!\";\r\n }\r\n console.log(\"file\", file[0].type);\r\n const isLt2M = file[0].size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n errorMessage = \"File must be smaller than 2MB!\";\r\n }\r\n console.log(\"errorMessage\", errorMessage);\r\n return errorMessage;\r\n }\r\n\r\n fileHandler = fileList => {\r\n console.log(\"fileList\", fileList);\r\n let fileObj = fileList;\r\n\r\n if (!fileObj) {\r\n this.setState({\r\n errorMessage: \"No file uploaded!\"\r\n });\r\n return false;\r\n }\r\n console.log(\"fileObj.type:\", fileObj.type);\r\n if (\r\n !(\r\n fileObj.type === \"application/vnd.ms-excel\" ||\r\n fileObj.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n this.setState({\r\n errorMessage: \"Unknown file format. Only Excel files are uploaded!\"\r\n });\r\n return false;\r\n }\r\n this.setState({\r\n documentGenerated: false\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(fileObj);\r\n\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: fileObj.name,\r\n type: fileObj.type,\r\n size: Math.round(fileObj.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n\r\n const getJsDateFromExcel = excelDate => {\r\n const date = new Date((excelDate - (25567 + 2)) * 86400 * 1000);\r\n var yyyy = date.getFullYear();\r\n var mm = date.getMonth() < 9 ? \"0\" + (date.getMonth() + 1) : (date.getMonth() + 1); // getMonth() is zero-based\r\n var dd = date.getDate() < 10 ? \"0\" + date.getDate() : date.getDate();\r\n return \"\".concat(yyyy).concat('/').concat(mm).concat('/').concat(dd);\r\n };\r\n\r\n //just pass the fileObj as parameter\r\n ExcelRenderer(fileObj, (err, resp) => {\r\n if (err) {\r\n console.log(err);\r\n } else {\r\n let newRows = [];\r\n resp.rows.slice(3).map((row, index) => {\r\n if (row && row !== \"undefined\") {\r\n newRows.push({\r\n LearnerIDNo: row[0],\r\n Sponsorship: row[1],\r\n WorkplaceStartDate: getJsDateFromExcel(row[2]),\r\n WorkplaceEndDate: getJsDateFromExcel(row[3]),\r\n HighestEducationLevel: row[4],\r\n NQFLevel: row[5],\r\n OFOCode: row[6],\r\n EmployerSDLNo: row[7],\r\n FinancialYear: row[8],\r\n SocioEconomicStatus: row[9],\r\n QualificationCode: row[10],\r\n YearOfStudy: row[11],\r\n Project: row[12],\r\n ContractNumber: row[13],\r\n IsIndustrySpecific: row[14],\r\n IndustryNonSpecific: row[15],\r\n AmountSpent: row[16],\r\n FET: row[17],\r\n FETType: row[18],\r\n ContactPerson: row[19],\r\n ContactPersonEmailAddress: row[20],\r\n MostRecentRegistrationDate: row[21]\r\n });\r\n }\r\n });\r\n if (newRows.length === 0) {\r\n this.setState({\r\n errorMessage: \"No data found in file!\"\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n file: fileObj,\r\n cols: resp.cols,\r\n rows: newRows,\r\n errorMessage: null\r\n });\r\n }\r\n }\r\n });\r\n return false;\r\n };\r\n\r\n successCallback = (response) => {\r\n\r\n //if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n // this.setState({ selectedAssessor: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), AssessmentEndDate: \"\" });\r\n // //Force a refresh\r\n // this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n //}\r\n }\r\n\r\n errorCallback = (response) => {\r\n //if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n // this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n //}\r\n }\r\n\r\n handleSubmit = async () => {\r\n\r\n const data = {\r\n Person: this.state.rows,\r\n Document: this.state.fileInfo\r\n\r\n };\r\n\r\n utils.invokeUrl(\"api/sims/LearnerFETUpload/BulkUploadLearnerFET\", (response) => {\r\n if (response.MessageType !== undefined && response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n documentName: response.Message,\r\n documentGenerated: true,\r\n file: null,\r\n fileInfo: null,\r\n cols: [],\r\n rows: []\r\n });\r\n }\r\n else {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n\r\n };\r\n\r\n FileDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/LearnerFETUpload/BulkUploadGetReport?FileName=\" + this.state.documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleDelete = key => {\r\n const rows = [...this.state.rows];\r\n this.setState({ rows: rows.filter(item => item.key !== key) });\r\n };\r\n handleAdd = () => {\r\n const { count, rows } = this.state;\r\n const newData = {\r\n key: count,\r\n name: \"User's name\",\r\n age: \"22\",\r\n gender: \"Female\"\r\n };\r\n this.setState({\r\n rows: [newData, ...rows],\r\n count: count + 1\r\n });\r\n };\r\n\r\n render() {\r\n const components = {\r\n body: {\r\n row: EditableFormRow,\r\n cell: EditableCell\r\n }\r\n };\r\n const columns = this.state.columns.map(col => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: record => ({\r\n record,\r\n editable: col.editable,\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n handleSave: this.handleSave\r\n })\r\n };\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Dowload template\r\n \r\n \r\n \r\n {this.state.rows.length > 0 && (\r\n\r\n \r\n Import\r\n \r\n\r\n )}\r\n \r\n \r\n
\r\n this.setState({ rows: [] })}\r\n multiple={false}\r\n showUploadList={false}\r\n >\r\n \r\n \r\n
\r\n {this.state.fileInfo && this.state.fileInfo.name}\r\n
\r\n
\r\n
\r\n \"editable-row\"}\r\n dataSource={this.state.rows}\r\n columns={columns}\r\n />\r\n
\r\n \r\n {this.state.documentGenerated && (\r\n \r\n Click here to download Bulk Import success and exception report\r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ExcelPage from \"./FETExcelPage\";\r\nimport \"antd/dist/antd.css\";\r\n\r\nclass BulkIpload extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Upload FET Placement Registration\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkIpload)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Table, Button, Popconfirm, Row, Col, Upload } from \"antd\";\r\nimport { ExcelRenderer } from \"react-excel-renderer\";\r\nimport { EditableFormRow, EditableCell } from \"./editable\";\r\nimport Icon from '@ant-design/icons';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport qualUploadTemplate from \"../../../content/templates/QualificationUpload_Template.xlsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default class QualificationExcelPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cols: [],\r\n rows: [],\r\n file: null,\r\n fileInfo: null,\r\n data: null,\r\n errorMessage: null,\r\n documentGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n columns: [\r\n {\r\n title: \"ID Number\",\r\n dataIndex: \"LearnerIDNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Provider SDL Number\",\r\n dataIndex: \"ProviderSDLNumber\",\r\n editable: false\r\n },\r\n {\r\n title: \"Qualification Code\",\r\n dataIndex: \"QualificationCode\",\r\n editable: false\r\n },\r\n {\r\n title: \"Employer SDL Number\",\r\n dataIndex: \"EmployerSDLNumber\",\r\n editable: false\r\n },\r\n {\r\n title: \"Commencement Date\",\r\n dataIndex: \"CommencementDate\",\r\n editable: false\r\n },\r\n {\r\n title: \"Completion Date\",\r\n dataIndex: \"CompletionDate\",\r\n editable: false\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleSave = row => {\r\n const newData = [...this.state.rows];\r\n const index = newData.findIndex(item => row.key === item.key);\r\n const item = newData[index];\r\n newData.splice(index, 1, {\r\n ...item,\r\n ...row\r\n });\r\n this.setState({ rows: newData });\r\n };\r\n\r\n checkFile(file) {\r\n let errorMessage = \"\";\r\n if (!file || !file[0]) {\r\n return;\r\n }\r\n const isExcel =\r\n file[0].type === \"application/vnd.ms-excel\" ||\r\n file[0].type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isExcel) {\r\n errorMessage = \"You can only upload Excel file!\";\r\n }\r\n console.log(\"file\", file[0].type);\r\n const isLt2M = file[0].size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n errorMessage = \"File must be smaller than 2MB!\";\r\n }\r\n console.log(\"errorMessage\", errorMessage);\r\n return errorMessage;\r\n }\r\n\r\n fileHandler = fileList => {\r\n console.log(\"fileList\", fileList);\r\n let fileObj = fileList;\r\n\r\n if (!fileObj) {\r\n this.setState({\r\n errorMessage: \"No file uploaded!\"\r\n });\r\n return false;\r\n }\r\n console.log(\"fileObj.type:\", fileObj.type);\r\n if (\r\n !(\r\n fileObj.type === \"application/vnd.ms-excel\" ||\r\n fileObj.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n this.setState({\r\n errorMessage: \"Unknown file format. Only Excel files are uploaded!\"\r\n });\r\n return false;\r\n }\r\n this.setState({\r\n documentGenerated: false\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(fileObj);\r\n\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: fileObj.name,\r\n type: fileObj.type,\r\n size: Math.round(fileObj.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n //just pass the fileObj as parameter\r\n\r\n const getJsDateFromExcel = excelDate => {\r\n const date = new Date((excelDate - (25567 + 2)) * 86400 * 1000);\r\n var yyyy = date.getFullYear();\r\n var mm = date.getMonth() < 9 ? \"0\" + (date.getMonth() + 1) : (date.getMonth() + 1); // getMonth() is zero-based\r\n var dd = date.getDate() < 10 ? \"0\" + date.getDate() : date.getDate();\r\n return \"\".concat(yyyy).concat('/').concat(mm).concat('/').concat(dd);\r\n };\r\n\r\n ExcelRenderer(fileObj, (err, resp) => {\r\n if (err) {\r\n console.log(err);\r\n } else {\r\n let newRows = [];\r\n resp.rows.slice(3).map((row, index) => {\r\n if (row && row !== \"undefined\") {\r\n newRows.push({\r\n LearnerIDNo: row[0],\r\n ProviderSDLNumber: row[1],\r\n QualificationCode: row[2],\r\n EmployerSDLNumber: row[3],\r\n CommencementDate: getJsDateFromExcel(row[4]),\r\n CompletionDate: getJsDateFromExcel(row[5]),\r\n });\r\n }\r\n });\r\n if (newRows.length === 0) {\r\n this.setState({\r\n errorMessage: \"No data found in file!\"\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n file: fileObj,\r\n cols: resp.cols,\r\n rows: newRows,\r\n errorMessage: null\r\n });\r\n }\r\n }\r\n });\r\n return false;\r\n };\r\n\r\n successCallback = (response) => {\r\n\r\n //if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n // this.setState({ selectedAssessor: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), AssessmentEndDate: \"\" });\r\n // //Force a refresh\r\n // this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n //}\r\n }\r\n\r\n errorCallback = (response) => {\r\n //if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n // this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n //}\r\n }\r\n\r\n handleSubmit = async () => {\r\n\r\n const data = {\r\n Person: this.state.rows,\r\n Document: this.state.fileInfo\r\n\r\n };\r\n\r\n utils.invokeUrl(\"api/sims/LearnerQualificationUpload/BulkUploadLearnerQualification\", (response) => {\r\n if (response.MessageType !== undefined && response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n documentName: response.Message,\r\n documentGenerated: true,\r\n file: null,\r\n fileInfo: null,\r\n cols: [],\r\n rows: []\r\n });\r\n }\r\n else {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n\r\n };\r\n\r\n FileDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/LearnerQualificationUpload/BulkUploadGetReport?FileName=\" + this.state.documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleDelete = key => {\r\n const rows = [...this.state.rows];\r\n this.setState({ rows: rows.filter(item => item.key !== key) });\r\n };\r\n handleAdd = () => {\r\n const { count, rows } = this.state;\r\n const newData = {\r\n key: count,\r\n name: \"User's name\",\r\n age: \"22\",\r\n gender: \"Female\"\r\n };\r\n this.setState({\r\n rows: [newData, ...rows],\r\n count: count + 1\r\n });\r\n };\r\n\r\n render() {\r\n const components = {\r\n body: {\r\n row: EditableFormRow,\r\n cell: EditableCell\r\n }\r\n };\r\n const columns = this.state.columns.map(col => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: record => ({\r\n record,\r\n editable: col.editable,\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n handleSave: this.handleSave\r\n })\r\n };\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Dowload template\r\n \r\n \r\n \r\n {this.state.rows.length > 0 && (\r\n\r\n \r\n Import\r\n \r\n\r\n )}\r\n \r\n \r\n
\r\n this.setState({ rows: [] })}\r\n multiple={false}\r\n showUploadList={false}\r\n >\r\n \r\n \r\n
\r\n {this.state.fileInfo && this.state.fileInfo.name}\r\n
\r\n
\r\n
\r\n \"editable-row\"}\r\n dataSource={this.state.rows}\r\n columns={columns}\r\n />\r\n
\r\n \r\n {this.state.documentGenerated && (\r\n \r\n Click here to download Bulk Import success and exception report\r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ExcelPage from \"./QualificationExcelPage\";\r\nimport \"antd/dist/antd.css\";\r\n\r\nclass BulkIpload extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Upload Qualification Registration\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkIpload)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Table, Button, Popconfirm, Row, Col, Upload } from \"antd\";\r\nimport { ExcelRenderer } from \"react-excel-renderer\";\r\nimport { EditableFormRow, EditableCell } from \"./editable\";\r\nimport Icon from '@ant-design/icons';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport unitstandardUploadTemplate from \"../../../content/templates/UnitStandardUpload_Template.xlsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default class UnitStandardExcelPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cols: [],\r\n rows: [],\r\n file: null,\r\n fileInfo: null,\r\n data: null,\r\n errorMessage: null,\r\n documentGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n columns: [\r\n {\r\n title: \"ID Number\",\r\n dataIndex: \"LearnerIDNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Provider SDL Number\",\r\n dataIndex: \"ProviderSDLNumber\",\r\n editable: false\r\n },\r\n {\r\n title: \"Unit Standard Code\",\r\n dataIndex: \"UnitStandardCode\",\r\n editable: false\r\n },\r\n {\r\n title: \"Employer SDL Number\",\r\n dataIndex: \"EmployerSDLNumber\",\r\n editable: false\r\n },\r\n {\r\n title: \"Commencement Date\",\r\n dataIndex: \"CommencementDate\",\r\n editable: false\r\n },\r\n {\r\n title: \"Completion Date\",\r\n dataIndex: \"CompletionDate\",\r\n editable: false\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleSave = row => {\r\n const newData = [...this.state.rows];\r\n const index = newData.findIndex(item => row.key === item.key);\r\n const item = newData[index];\r\n newData.splice(index, 1, {\r\n ...item,\r\n ...row\r\n });\r\n this.setState({ rows: newData });\r\n };\r\n\r\n checkFile(file) {\r\n let errorMessage = \"\";\r\n if (!file || !file[0]) {\r\n return;\r\n }\r\n const isExcel =\r\n file[0].type === \"application/vnd.ms-excel\" ||\r\n file[0].type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isExcel) {\r\n errorMessage = \"You can only upload Excel file!\";\r\n }\r\n console.log(\"file\", file[0].type);\r\n const isLt2M = file[0].size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n errorMessage = \"File must be smaller than 2MB!\";\r\n }\r\n console.log(\"errorMessage\", errorMessage);\r\n return errorMessage;\r\n }\r\n\r\n fileHandler = fileList => {\r\n console.log(\"fileList\", fileList);\r\n let fileObj = fileList;\r\n\r\n if (!fileObj) {\r\n this.setState({\r\n errorMessage: \"No file uploaded!\"\r\n });\r\n return false;\r\n }\r\n console.log(\"fileObj.type:\", fileObj.type);\r\n if (\r\n !(\r\n fileObj.type === \"application/vnd.ms-excel\" ||\r\n fileObj.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n this.setState({\r\n errorMessage: \"Unknown file format. Only Excel files are uploaded!\"\r\n });\r\n return false;\r\n }\r\n this.setState({\r\n documentGenerated: false\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(fileObj);\r\n\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: fileObj.name,\r\n type: fileObj.type,\r\n size: Math.round(fileObj.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n\r\n const getJsDateFromExcel = excelDate => {\r\n const date = new Date((excelDate - (25567 + 2)) * 86400 * 1000);\r\n var yyyy = date.getFullYear();\r\n var mm = date.getMonth() < 9 ? \"0\" + (date.getMonth() + 1) : (date.getMonth() + 1); // getMonth() is zero-based\r\n var dd = date.getDate() < 10 ? \"0\" + date.getDate() : date.getDate();\r\n return \"\".concat(yyyy).concat('/').concat(mm).concat('/').concat(dd);\r\n };\r\n\r\n //just pass the fileObj as parameter\r\n ExcelRenderer(fileObj, (err, resp) => {\r\n if (err) {\r\n console.log(err);\r\n } else {\r\n let newRows = [];\r\n resp.rows.slice(3).map((row, index) => {\r\n if (row && row !== \"undefined\") {\r\n newRows.push({\r\n LearnerIDNo: row[0],\r\n ProviderSDLNumber: row[1],\r\n UnitStandardCode: row[2],\r\n EmployerSDLNumber: row[3],\r\n CommencementDate: getJsDateFromExcel(row[4]),\r\n CompletionDate: getJsDateFromExcel(row[5]),\r\n });\r\n }\r\n });\r\n if (newRows.length === 0) {\r\n this.setState({\r\n errorMessage: \"No data found in file!\"\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n file: fileObj,\r\n cols: resp.cols,\r\n rows: newRows,\r\n errorMessage: null\r\n });\r\n }\r\n }\r\n });\r\n return false;\r\n };\r\n\r\n successCallback = (response) => {\r\n\r\n //if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n // this.setState({ selectedAssessor: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), AssessmentEndDate: \"\" });\r\n // //Force a refresh\r\n // this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n //}\r\n }\r\n\r\n errorCallback = (response) => {\r\n //if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n // this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n //}\r\n }\r\n\r\n handleSubmit = async () => {\r\n\r\n const data = {\r\n Person: this.state.rows,\r\n Document: this.state.fileInfo\r\n\r\n };\r\n\r\n utils.invokeUrl(\"api/sims/LearnerUnitStandardUpload/BulkUploadLearnerUnitStandard\", (response) => {\r\n if (response.MessageType !== undefined && response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n documentName: response.Message,\r\n documentGenerated: true,\r\n file: null,\r\n fileInfo: null,\r\n cols: [],\r\n rows: []\r\n });\r\n }\r\n else {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n\r\n };\r\n\r\n FileDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/LearnerUnitStandardUpload/BulkUploadGetReport?FileName=\" + this.state.documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleDelete = key => {\r\n const rows = [...this.state.rows];\r\n this.setState({ rows: rows.filter(item => item.key !== key) });\r\n };\r\n handleAdd = () => {\r\n const { count, rows } = this.state;\r\n const newData = {\r\n key: count,\r\n name: \"User's name\",\r\n age: \"22\",\r\n gender: \"Female\"\r\n };\r\n this.setState({\r\n rows: [newData, ...rows],\r\n count: count + 1\r\n });\r\n };\r\n\r\n render() {\r\n const components = {\r\n body: {\r\n row: EditableFormRow,\r\n cell: EditableCell\r\n }\r\n };\r\n const columns = this.state.columns.map(col => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: record => ({\r\n record,\r\n editable: col.editable,\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n handleSave: this.handleSave\r\n })\r\n };\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Dowload template\r\n \r\n \r\n \r\n {this.state.rows.length > 0 && (\r\n\r\n \r\n Import\r\n \r\n\r\n )}\r\n \r\n \r\n
\r\n this.setState({ rows: [] })}\r\n multiple={false}\r\n showUploadList={false}\r\n >\r\n \r\n \r\n
\r\n {this.state.fileInfo && this.state.fileInfo.name}\r\n
\r\n
\r\n
\r\n \"editable-row\"}\r\n dataSource={this.state.rows}\r\n columns={columns}\r\n />\r\n
\r\n \r\n {this.state.documentGenerated && (\r\n \r\n Click here to download Bulk Import success and exception report\r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ExcelPage from \"./UnitStandardExcelPage\";\r\nimport \"antd/dist/antd.css\";\r\n\r\nclass BulkIpload extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Upload Unit Standard Registration\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkIpload)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Table, Button, Popconfirm, Row, Col, Upload } from \"antd\";\r\nimport { ExcelRenderer } from \"react-excel-renderer\";\r\nimport { EditableFormRow, EditableCell } from \"./editable\";\r\nimport Icon from '@ant-design/icons';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport achievementUploadTemplate from \"../../../content/templates/AchievementUpload_Template.xlsx\"\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default class AchievementExcelPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cols: [],\r\n rows: [],\r\n file: null,\r\n fileInfo: null,\r\n data: null,\r\n errorMessage: null,\r\n documentGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n columns: [\r\n {\r\n title: \"ID Number\",\r\n dataIndex: \"LearnerIDNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Provider SDL Number\",\r\n dataIndex: \"ProviderSDLNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Learning Programme Type\",\r\n dataIndex: \"LearningProgrammeType\",\r\n editable: false\r\n },\r\n {\r\n title: \"Learning Programme Code\",\r\n dataIndex: \"LearningProgrammeCode\",\r\n editable: false\r\n },\r\n {\r\n title: \"Assessor ID\",\r\n dataIndex: \"AssessorIDNo\",\r\n editable: false\r\n },\r\n {\r\n title: \"Moderator ID\",\r\n dataIndex: \"ModeratorIDNo\",\r\n editable: false\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleSave = row => {\r\n const newData = [...this.state.rows];\r\n const index = newData.findIndex(item => row.key === item.key);\r\n const item = newData[index];\r\n newData.splice(index, 1, {\r\n ...item,\r\n ...row\r\n });\r\n this.setState({ rows: newData });\r\n };\r\n\r\n checkFile(file) {\r\n let errorMessage = \"\";\r\n if (!file || !file[0]) {\r\n return;\r\n }\r\n const isExcel =\r\n file[0].type === \"application/vnd.ms-excel\" ||\r\n file[0].type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isExcel) {\r\n errorMessage = \"You can only upload Excel file!\";\r\n }\r\n console.log(\"file\", file[0].type);\r\n const isLt2M = file[0].size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n errorMessage = \"File must be smaller than 2MB!\";\r\n }\r\n console.log(\"errorMessage\", errorMessage);\r\n return errorMessage;\r\n }\r\n\r\n fileHandler = fileList => {\r\n console.log(\"fileList\", fileList);\r\n let fileObj = fileList;\r\n\r\n if (!fileObj) {\r\n this.setState({\r\n errorMessage: \"No file uploaded!\"\r\n });\r\n return false;\r\n }\r\n console.log(\"fileObj.type:\", fileObj.type);\r\n if (\r\n !(\r\n fileObj.type === \"application/vnd.ms-excel\" ||\r\n fileObj.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n this.setState({\r\n errorMessage: \"Unknown file format. Only Excel files are uploaded!\"\r\n });\r\n return false;\r\n }\r\n this.setState({\r\n documentGenerated: false\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(fileObj);\r\n\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: fileObj.name,\r\n type: fileObj.type,\r\n size: Math.round(fileObj.size / 1000) + ' kB',\r\n base64: reader.result\r\n };\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n //just pass the fileObj as parameter\r\n ExcelRenderer(fileObj, (err, resp) => {\r\n if (err) {\r\n console.log(err);\r\n } else {\r\n let newRows = [];\r\n resp.rows.slice(3).map((row, index) => {\r\n if (row && row !== \"undefined\") {\r\n newRows.push({\r\n LearnerIDNo: row[0],\r\n ProviderSDLNo: row[1],\r\n LearningProgrammeType: row[2],\r\n LearningProgrammeCode: row[3],\r\n AssessorIDNo: row[4],\r\n ModeratorIDNo: row[5],\r\n AssessmentStatus: row[6],\r\n AssessmentDate: row[7],\r\n ModerationDate: row[8]\r\n });\r\n }\r\n });\r\n if (newRows.length === 0) {\r\n this.setState({\r\n errorMessage: \"No data found in file!\"\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n file: fileObj,\r\n cols: resp.cols,\r\n rows: newRows,\r\n errorMessage: null\r\n });\r\n }\r\n }\r\n });\r\n return false;\r\n };\r\n\r\n successCallback = (response) => {\r\n\r\n //if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n // this.setState({ selectedAssessor: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), AssessmentEndDate: \"\" });\r\n // //Force a refresh\r\n // this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n //}\r\n }\r\n\r\n errorCallback = (response) => {\r\n //if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n // this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n //}\r\n }\r\n\r\n handleSubmit = async () => {\r\n\r\n const data = {\r\n Person: this.state.rows,\r\n Document: this.state.fileInfo\r\n\r\n };\r\n\r\n utils.invokeUrl(\"api/sims/LearnerAchievementUpload/BulkUploadLearnerProgrammeAchievement\", (response) => {\r\n if (response.MessageType !== undefined && response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n documentName: response.Message,\r\n documentGenerated: true,\r\n file: null,\r\n fileInfo: null,\r\n cols: [],\r\n rows: []\r\n });\r\n }\r\n else {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n\r\n };\r\n\r\n FileDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/LearnerAchievementUpload/BulkUploadGetReport?FileName=\" + this.state.documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleDelete = key => {\r\n const rows = [...this.state.rows];\r\n this.setState({ rows: rows.filter(item => item.key !== key) });\r\n };\r\n handleAdd = () => {\r\n const { count, rows } = this.state;\r\n const newData = {\r\n key: count,\r\n name: \"User's name\",\r\n age: \"22\",\r\n gender: \"Female\"\r\n };\r\n this.setState({\r\n rows: [newData, ...rows],\r\n count: count + 1\r\n });\r\n };\r\n\r\n render() {\r\n const components = {\r\n body: {\r\n row: EditableFormRow,\r\n cell: EditableCell\r\n }\r\n };\r\n const columns = this.state.columns.map(col => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: record => ({\r\n record,\r\n editable: col.editable,\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n handleSave: this.handleSave\r\n })\r\n };\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Dowload template\r\n \r\n \r\n \r\n {this.state.rows.length > 0 && (\r\n\r\n \r\n Import\r\n \r\n\r\n )}\r\n \r\n \r\n
\r\n this.setState({ rows: [] })}\r\n multiple={false}\r\n showUploadList={false}\r\n >\r\n \r\n \r\n
\r\n {this.state.fileInfo && this.state.fileInfo.name}\r\n
\r\n
\r\n
\r\n \"editable-row\"}\r\n dataSource={this.state.rows}\r\n columns={columns}\r\n />\r\n
\r\n \r\n {this.state.documentGenerated && (\r\n \r\n Click here to download Bulk Import success and exception report\r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ExcelPage from \"./AchievementExcelPage\";\r\nimport \"antd/dist/antd.css\";\r\n\r\nclass BulkIpload extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Achievement Uploading\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkIpload)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AuditTrial from './AuditTrial';\r\n\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport Prompt from '../../widgets/Prompt';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nexport const registrationHistoryHeadCells = [\r\n { id: 'AssessorRegistrationStartDate', numeric: false, disablePadding: true, label: 'Assessor Registration Start Date' },\r\n { id: 'AssessorRegistrationEndDate', numeric: false, disablePadding: true, label: 'Assessor Registration End Date' },\r\n { id: 'AssessorRegistrationStatus', numeric: false, disablePadding: true, label: 'Assessor Registration Status' },\r\n { id: 'DateUpdated', numeric: false, disablePadding: true, label: 'Date Updated' },\r\n { id: 'UpdatedBy', numeric: false, disablePadding: true, label: 'Updated By' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass RegistrationHistorySearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n AssessorID: this.props.location.state.AssessorID\r\n },\r\n\r\n linkDialogOpen: false,\r\n selectedAuditTrial: null,\r\n propmtOpen: false,\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"AssessorID\", Value: this.props.location.state.AssessorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'ViewAudit', label: '', tooltip: 'View Audit Trial', icon:'AuditIcon', disabled: utils.isNull(this.state.selectedAuditTrial) }\r\n \r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n else if (\"ViewAudit\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedAuditTrial: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedAuditTrial}&assessorId=${this.props.location.state.AssessorID}`\r\n utils.invokeUrl(fullUrl, this.successCallback, null)\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedAuditTrial: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedAuditTrial: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedAuditTrial: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"ViewAudit\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Assessor > Registration History\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.AssessorName + \" - \" + this.props.location.state.AssessorIDNo : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Audit Trail: ${this.props.location.state.AssessorName}`}\r\n linkName={\"Audit Trail\"} postUrl={\"api/indicium/UnitStandardSetup/linkAssessorUnitStandards\"}\r\n selectionId={this.props.location.state.AssessorID}\r\n >\r\n\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(RegistrationHistorySearch )\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'ScopeType', numeric: false, disablePadding: true, label: 'Scope Type' },\r\n { id: 'ScopeCode', numeric: false, disablePadding: true, label: 'Scope Code' },\r\n { id: 'ScopeTitle', numeric: false, disablePadding: true, label: 'Scope Title' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n\r\n }\r\n \r\n\r\n ]\r\n};\r\n\r\nclass AuditTrialSearch extends Component {\r\n\r\n state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitator',\r\n state: { selection: this.props.location.state.FacilitatorID }\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n postLinkHandler(linked) {\r\n //alert(linked + \" \" + JSON.stringify(this.state.selectedLinkType) + \" \" + JSON.stringify(this.state.selectedLinkStandards));\r\n this.setState({ linkDialogOpen: false, selectedLinkType: null, selectedLinkStandards: null });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={toolbarConfig} />\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AuditTrialSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AuditTrial from './AuditTrial';\r\n\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport Prompt from '../../widgets/Prompt';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nexport const registrationHistoryHeadCells = [\r\n { id: 'FacilitatorRegistrationStartDate', numeric: false, disablePadding: true, label: 'Facilitator Registration Start Date' },\r\n { id: 'FacilitatorRegistrationEndDate', numeric: false, disablePadding: true, label: 'Facilitator Registration End Date' },\r\n { id: 'FacilitatorRegistrationStatus', numeric: false, disablePadding: true, label: 'Facilitator Registration Status' },\r\n { id: 'DateUpdated', numeric: false, disablePadding: true, label: 'Date Updated' },\r\n { id: 'UpdatedBy', numeric: false, disablePadding: true, label: 'Updated By' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass RegistrationHistorySearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n FacilitatorID: this.props.location.state.FacilitatorID\r\n },\r\n\r\n linkDialogOpen: false,\r\n selectedAuditTrial: null,\r\n propmtOpen: false,\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"FacilitatorID\", Value: this.props.location.state.FacilitatorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'ViewAudit', label: '', tooltip: 'View Audit Trial', icon:'AuditIcon', disabled: utils.isNull(this.state.selectedAuditTrial) }\r\n \r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitator',\r\n state: { selection: this.props.location.state.FacilitatorID }\r\n });\r\n }\r\n else if (\"ViewAudit\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedAuditTrial: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedAuditTrial}&facilitatorId=${this.props.location.state.FacilitatorID}`\r\n utils.invokeUrl(fullUrl, this.successCallback, null)\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedAuditTrial: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedAuditTrial: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedAuditTrial: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"ViewAudit\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Facilitator > Registration History\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.FacilitatorName + \" - \" + this.props.location.state.FacilitatorIDNo : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Audit Trail: ${this.props.location.state.FacilitatorName}`}\r\n linkName={\"Audit Trail\"} postUrl={\"api/indicium/UnitStandardSetup/linkFacilitatorUnitStandards\"}\r\n selectionId={this.props.location.state.FacilitatorID}\r\n >\r\n\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(RegistrationHistorySearch )\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomCheckbox } from '../../../widgets/CustomCheckbox';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport GrantSetupSearch from '../../grants/grantsetup/GrantSetupSearch';\r\nimport ProviderSearch from '../../provider/ProviderSearch';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport SkillsProgramSetupSearch from '../../program/SkillsProgramSetupSearch';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const LearnerSkillsProgramForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [completionDateCalc, setcompletionDateCalc] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n function TerminationCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Terminated\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Terminated\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function terminationReasonCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Other\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function StatusCheck(form, status, programmeID) {\r\n if (!props.hideFields && programmeID !== undefined && status !== null) {\r\n\r\n if (status.Description === \"Registered\") {\r\n let url = \"api/sims/learnerskillsprogramme/GetCompletionDate?SPID=\" + programmeID.Id;\r\n utils.invokeUrl(url, (response) => {\r\n form.values['CompletionDate'] = new Date(response);\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n }\r\n return false\r\n }\r\n\r\n function SocioCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Employed\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Unemployed\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function SponsorCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"SETA Funded\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Industry Funded\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n :\r\n \"\"\r\n }\r\n \r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n :\r\n \"\"\r\n }\r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n {\r\n (utils.getCurrentRole() == \"Administrator\") ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n\r\n\r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n\r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProjectID\", value);\r\n if (props.trancheSetupDetailsHandler) {\r\n props.trancheSetupDetailsHandler(value);\r\n }\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n form.setLookupSelection(\"SkillsProgrammeID\", value)} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"ClientID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return option.Id !== 14 && option.Description !== \"Terminated\";\r\n }}\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { LearnerSkillsProgramForm } from '../../etqa/program/registration/LearnerSkillsProgramForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: '', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst SkillsProgramRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddLearnerSkillsProgram extends Component {\r\n\r\n state = {\r\n SkillsProgramDetails: {\r\n SkillsProgramTitle: \"\",\r\n SkillsProgramCode: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n showTable: true,\r\n CurrentProgramme: this.props.location.state.SkillsProgrammeID,\r\n CreateNewFlag: this.props.location.state.hideFields,\r\n Learner: this.props.location.state.LearnerID,\r\n NavPerm: this.props.location.state.permissions,\r\n model: null\r\n };\r\n\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n this.setState({\r\n SkillsProgramSetupDetails: {\r\n SkillsProgramCode: values.SkillsProgrammeID,\r\n SkillsProgramTitle: values.SkillsProgramTitle\r\n },\r\n Learner: this.props.location.state.LearnerID\r\n });\r\n const newValues = { ...values };\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues\r\n });\r\n }\r\n }\r\n }\r\n\r\n trancheSetupDetailsHandler = (ProjectID) => {\r\n if (!utils.isNull(ProjectID)) {\r\n utils.invokeUrl(\"api/sims/learnerskillsprogramme/gettranchesetupdetails?id=\" + ProjectID.Id, (response) => {\r\n let model = {};\r\n if (this.state.model !== null && typeof this.state.model !== \"undefined\") {\r\n model = { ...this.state.model };\r\n }\r\n model.ProjectID = ProjectID;\r\n model.FinancialYearID = response.FinancialYearID;\r\n model.ProviderID = response.ProviderID;\r\n model.SkillsProgrammeID = response.InterventionID;\r\n model.CommencementDate = response.StartDate;\r\n model.CompletionDate = response.EndDate;\r\n model.SocioEconomicStatusID = response.SocioEconomicStatusID;\r\n\r\n this.setState({ model: model });\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = SkillsProgramRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n formValue.id = this.props.location.state.LearnerID;\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/learnerskillsprogramme/LinkLearnerSkillsProgramme\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n showTable: true,\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n CurrentProgramme: response.EntityId,\r\n CreateNewFlag: false\r\n })\r\n });\r\n }\r\n else {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n\r\n this.props.history.push({\r\n pathname: '/LearnerSkillsProgrammeSearch',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\r\n (this.props.location.state.hideFields) ?\r\n `Learner > Link New Skills Programme > ${this.props.location.state.learnerNames}`\r\n :\r\n `Learner > Update Skills Programme > ${this.props.location.state.learnerNames}`\r\n }\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={toolbarConfig} />\r\n
\r\n
\r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)}\r\n data={this.state.model}\r\n model={this.state.model}\r\n trancheSetupDetailsHandler={this.trancheSetupDetailsHandler}\r\n />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AddLearnerSkillsProgram);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomCheckbox } from '../../../widgets/CustomCheckbox';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport GrantSetupSearch from '../../grants/grantsetup/GrantSetupSearch';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport BursarySetupSearch from '../../program/BursarySetupSearch';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport OFOSearch from '../../program/OFOSearch';\r\nimport InstitutionSearch from '../../program/InstitutionSearch';\r\nimport { AddressCodeItem } from '../../../widgets/AddressCodeItem';\r\nimport { GPSCoordinatesAPI } from '../../../widgets/GPSCoordinatesAPI';\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const LearnerBursaryForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const [dependency, setDependency] = React.useState(props.dependency);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n React.useEffect(() => {\r\n setDependency(props.dependency);\r\n }, [props.dependency]);\r\n\r\n function GetBursaryTypeID(value) {\r\n //console.clear();\r\n //console.log(value);\r\n if (value !== undefined && value !== null) {\r\n return value.Id\r\n }\r\n else {\r\n return \"0\"\r\n }\r\n }\r\n\r\n const handleReplacementChange = form => event => {\r\n if (!event.target.checked) {\r\n }\r\n\r\n form.updateValue('IsVerified', event.target.checked);\r\n };\r\n\r\n function TerminationCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Terminated\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Terminated\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n const updateGPSAddress = (address, form) => {\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n function terminationReasonCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Other\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n\r\n function SponsorCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"SETA Funded\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Industry Funded\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n\r\n //function nqfchange(form) {\r\n // if (props.dependencyHander != null) {\r\n // form.values['NQFLevelID'] = props.dependencyHander;\r\n // }\r\n //}\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n {\r\n (utils.getCurrentRole() == \"Administrator\") ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProjectID\", value);\r\n if (props.trancheSetupDetailsHandler) {\r\n props.trancheSetupDetailsHandler(value);\r\n }\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n {/**/}\r\n \r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"InstitutionID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n form.setLookupSelection(\"BursaryID\", value)} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.BursaryStartDate)\r\n && formValues.BursaryStartDate.getTime() < formValues.BursaryEndDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n key={tabValue}\r\n label=\"Bursary End Date\"\r\n disabled={!utils.isNull(props.viewOnly) ? props.viewOnly : false}\r\n className='{classes.textField} w-100 '\r\n required\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n form={form}\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return option.Id !== 3 && option.Description !== \"Terminated\";\r\n }}\r\n required />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { LearnerBursaryForm } from '../../etqa/program/registration/LearnerBursaryForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\n\r\n\r\nconst BursaryRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddLearnerBursary extends Component {\r\n\r\n state = {\r\n model: {\r\n BursaryTypeID: null\r\n },\r\n BursaryDetails: {\r\n BursaryTitle: \"\",\r\n BursaryID: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n showTable: true,\r\n CurrentProgramme: this.props.location.state.BursaryID,\r\n //dependency: null,\r\n //postDependencyNQF: null,\r\n clearOptions: false,\r\n CreateNewFlag: this.props.location.state.hideFields,\r\n Learner: this.props.location.state.LearnerID,\r\n model: null,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: '', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n BursarySetupDetails: {\r\n BursaryID: values.BursaryID,\r\n BursaryTitle: values.BursaryTitle\r\n },\r\n Learner: this.props.location.state.LearnerID,\r\n /*postDependencyNQF: values.NQFLevelID*/\r\n });\r\n\r\n //if (!utils.isNull(values.BursaryTypeID) && JSON.stringify(this.state.dependency) !== JSON.stringify(values.BursaryTypeID)) {\r\n // const bursaryTypeID = {\r\n // Name: \"BursaryTypeID\",\r\n // Value: values.BursaryTypeID.Id\r\n // }\r\n // if (!utils.isNull(bursaryTypeID.Value)) {\r\n // this.setState({ dependency: bursaryTypeID })\r\n // }\r\n //};\r\n\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n //if (!utils.isNull(newValues.BursaryTypeID) && !utils.isNull(this.state.model.BursaryTypeID) && newValues.BursaryTypeID.Id !== this.state.model.BursaryTypeID.Id) {\r\n // newValues.NQFLevelID = null;\r\n // this.setState({ clearOptions: true });\r\n //}\r\n this.setState({\r\n model: newValues,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n onChangeBursaryTypeIDHandler = (form, id, event) => {\r\n let newModel = { ...form.values }\r\n newModel.NQFLevelID = null;\r\n this.setState({ model: newModel, clearOptions: true })\r\n }\r\n\r\n clearOptionsHandler = () => {\r\n this.setState({ clearOptions: false });\r\n }\r\n\r\n trancheSetupDetailsHandler = (ProjectID) => {\r\n if (!utils.isNull(ProjectID)) {\r\n utils.invokeUrl(\"api/sims/learnerbursary/gettranchesetupdetails?id=\" + ProjectID.Id, (response) => {\r\n let model = {};\r\n if (this.state.model !== null && typeof this.state.model !== \"undefined\") {\r\n model = { ...this.state.model };\r\n }\r\n model.ProjectID = ProjectID;\r\n model.BursaryID = response.InterventionID;\r\n model.BursaryStartDate = response.StartDate;\r\n model.BursaryEndDate = response.EndDate;\r\n\r\n this.setState({ model: model });\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n showTable: false, model: {\r\n BursaryTypeID: null\r\n }\r\n }, () => {\r\n this.setState({\r\n showTable: true,\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n CurrentProgramme: response.EntityId,\r\n CreateNewFlag: false\r\n })\r\n });\r\n }\r\n else {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = BursaryRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n formValue.id = this.props.location.state.LearnerID;\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/learnerbursary/LinkLearnerBursary\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n\r\n this.props.history.push({\r\n pathname: '/LearnerBursarySearch',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\r\n (this.props.location.state.hideFields) ?\r\n `Learner > Link New Bursary > ${this.props.location.state.learnerNames}`\r\n :\r\n `Learner > Update Bursary > ${this.props.location.state.learnerNames}`\r\n }\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.state.toolbarConfig} />\r\n
\r\n
\r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)}\r\n clearOptions={this.state.clearOptions}\r\n clearOptionsHandler={this.clearOptionsHandler}\r\n model={this.state.model}\r\n data={this.state.model}\r\n onChangeBursaryTypeIDHandler={this.onChangeBursaryTypeIDHandler}\r\n trancheSetupDetailsHandler={this.trancheSetupDetailsHandler}\r\n />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AddLearnerBursary));\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport QualificationSetupSearchForm from './QualificationSetupSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"SAQAQualificationID\", numeric: false, disablePadding: true, label: \"Qualification ID\" },\r\n { id: \"SAQAQualificationTitle\", numeric: false, disablePadding: true, label: \"Qualification Title\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select a Qualification from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nconst searchParameters = [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" }\r\n]\r\n\r\nclass LearnerQualificationSearchSearch extends Component {\r\n state = {\r\n model: {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\"\r\n },\r\n keyUpSwitch: false\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnerQualificationSearchSearch)\r\n);","import React from 'react';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./CRM.css\"\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst headCells = [\r\n { id: 'UploadedBy', numeric: false, disablePadding: true, label: 'Uploaded By' },\r\n { id: 'UploadDate', numeric: false, disablePadding: true, label: 'Upload Date' },\r\n { id: 'DocumentType', numeric: false, disablePadding: true, label: 'DocumentType' },\r\n { id: 'DocumentName', numeric: false, disablePadding: true, label: 'Document Name', contentType: 'document' }\r\n]\r\n\r\nexport default function ProgramDocuments(props, ref) {\r\n return (\r\n { props.handleCell(rowid, columnid) }} searchParameters={[{ Name: `${props.moduleName}ID`, Value: props.selection }]} paged={false}\r\n dataUrl={props.documentsDataUrl !== null ? props.documentsDataUrl : null } height=\"40vh\"\r\n />\r\n );\r\n}\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nexport default function ProgramDocumentsDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n const [entityId, setEntityId] = React.useState(props.EntityID);\r\n const [docType, setDocType] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.EntityID)) {\r\n setEntityId(props.EntityID);\r\n }\r\n }, [props.EntityID]);\r\n\r\n const handleClose = (save, cancel) => {\r\n setOpen(false);\r\n props.closeHandler(save, cancel)\r\n };\r\n\r\n const handleDocTypeChange = (DocumentType) => {\r\n setDocType(DocumentType);\r\n }\r\n \r\n\r\n const cancel = () => {\r\n handleClose(false, true);\r\n };\r\n\r\n const save = () => {\r\n let data = {};\r\n data.OriginalFileName = filename;\r\n data.EntityID = entityId;\r\n data.DocumentType = docType;\r\n data.Document = {};\r\n data.Document.name = filename;\r\n data.Document.size = size;\r\n data.Document.type = type;\r\n data.Document.base64 = base64;\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n New Document Upload \r\n

\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomCheckbox } from '../../../widgets/CustomCheckbox';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport Button from '@material-ui/core/Button';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport LearnerQualificationSearch from '../../program/LearnerQualificationSearch';\r\nimport InstitutionSearch from '../../program/InstitutionSearch';\r\nimport OFOSearch from '../../program/OFOSearch';\r\nimport ProgramDocuments from \"../../crm/ProgramDocuments\";\r\nimport ProgramDocumentsDialog from \"../../crm/ProgramDocumentsDialog\";\r\nimport { AddressCodeItem } from '../../../widgets/AddressCodeItem';\r\nimport { GPSCoordinatesAPI } from '../../../widgets/GPSCoordinatesAPI';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nexport const LearnerInternshipForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const [documentsDialogOpen, setdocumentsDialogOpen] = React.useState(false);\r\n const [DocURL, setDocURL] = React.useState(null);\r\n\r\n const config = {\r\n moduleName: \"InternshipsSetup\",\r\n\r\n dataUrls: {\r\n documents: null,\r\n },\r\n\r\n postUrls: {\r\n documents: \"api/indicium/InternshipsSetup/AddInternshipDocument\"\r\n }\r\n };\r\n\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n if (newValue == 1) {\r\n setDocURL(\"api/indicium/InternshipsSetup/getCRMDocuments\");\r\n }\r\n else {\r\n setDocURL(null);\r\n }\r\n };\r\n \r\n\r\n const setDialogOpen = () => {\r\n setdocumentsDialogOpen(true);\r\n };\r\n\r\n function TerminationCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Terminated\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Terminated\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function terminationReasonCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Other\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function SponsorCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"SETA Funded\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Industry Funded\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function nonSpecificCheck(value) {\r\n if (value === true) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n const updateGPSAddress = (address, form) => {\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n const handleCellSelect = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/InternshipsSetup/getCRMDocument?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n };\r\n\r\n const postUploadHandler = (save, cancel) => {\r\n //Successful upload\r\n if (save === true) {\r\n setdocumentsDialogOpen(false);\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n setdocumentsDialogOpen(false);\r\n }\r\n //Error on upload\r\n else {\r\n setdocumentsDialogOpen(false);\r\n }\r\n };\r\n\r\n \r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n :\r\n \"\"\r\n }\r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"InternQualificationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"InstitutionID\", value);\r\n form.values['PublicPrivateID'] = { Id: 1, Description: 'Public' };\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n

\r\n Documents\r\n

\r\n \r\n handleCellSelect(rowid, headCell)}\r\n documentsDataUrl={DocURL} moduleName={config.moduleName} selection={form.values[\"ID\"]} />\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={form.values[\"ID\"]}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { LearnerInternshipForm } from '../../etqa/program/registration/LearnerInternshipForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'keep', label: '', tooltip: 'Save', icon: 'SaveIcon'}\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst InternshipRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddLearnerInternship extends Component {\r\n\r\n state = {\r\n InternshipDetails: {\r\n SAQAQualificationTitle: \"\",\r\n SAQAQualificationID: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n showTable: true,\r\n CurrentProgramme: this.props.location.state.InternshipID,\r\n CreateNewFlag: this.props.location.state.hideFields,\r\n Learner: this.props.location.state.LearnerID\r\n };\r\n\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n if (!utils.isNull(values.InternshipStartDate)) {\r\n utils.autoSetDate(this, InternshipRef, values.InternshipStartDate, 1, 0, 0, \"InternshipEndDate\", \"InternshipStartDate\")\r\n }\r\n\r\n\r\n this.setState({\r\n InternshipSetupDetails: {\r\n SAQAQualificationID: values.SAQAQualificationID,\r\n SAQAQualificationTitle: values.SAQAQualificationTitle\r\n },\r\n Learner: this.props.location.state.LearnerID\r\n });\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"keep\" === buttonId) {\r\n this.keep();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n showTable: true,\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n CurrentProgramme: response.EntityId,\r\n CreateNewFlag: false\r\n })\r\n });\r\n }\r\n else {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n\r\n keep() {\r\n let formValue = InternshipRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n formValue.id = this.props.location.state.LearnerID;\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/learnerinternship/LinkLearnerInternship\", (response) => {\r\n this.successCallback(response);\r\n },() => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n\r\n this.props.history.push({\r\n pathname: '/LearnerInternshipsSearch',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\r\n (this.props.location.state.hideFields) ?\r\n `Learner > Link New Internship > ${this.props.location.state.learnerNames}`\r\n :\r\n `Learner > Update Internship > ${this.props.location.state.learnerNames}`\r\n }\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={toolbarConfig} />\r\n
\r\n
\r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)} />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AddLearnerInternship);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function PivotalProgrammeSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Pivotal Programme Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.PivotalProgrammeName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n SAQA Code\r\n\t\t\t\t\t\t\t\t\r\n props.model.SAQACode = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport PivotalProgrammeSearchForm from './PivotalProgrammeSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"PivotalProgrammeName\", numeric: false, disablePadding: true, label: \"Pivotal Programme Name\" },\r\n { id: \"SAQACode\", numeric: false, disablePadding: true, label: \"SAQA Code\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select PivotalProgramme from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nconst searchParameters = [\r\n { Name: \"PivotalProgrammeName\", Value: \"\" },\r\n { Name: \"SAQACode\", Value: \"\" }\r\n]\r\n\r\nclass PivotalProgrammeSearch extends Component {\r\n state = {\r\n model: {\r\n PivotalProgrammeName: \"\",\r\n SAQACode: \"\"\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(PivotalProgrammeSearch)\r\n);","import React, { useEffect } from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomCheckbox } from '../../../widgets/CustomCheckbox';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport GrantSetupSearch from '../../grants/grantsetup/GrantSetupSearch';\r\nimport ProviderSearch from '../../provider/ProviderSearch';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport PivotalProgrammeSearch from '../../program/PivotalProgrammeSearch';\r\nimport LearnershipSetupSearch from '../../program/LearnershipSetupSearch';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport { AddressCodeItem } from '../../../widgets/AddressCodeItem';\r\nimport { GPSCoordinatesAPI } from '../../../widgets/GPSCoordinatesAPI';\r\nimport WorkplaceSearch from '../../workplace/WorkplaceSearch';\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const LearnerLearnershipForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n function TerminationCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Terminated\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Terminated\") {\r\n return false\r\n }\r\n }\r\n }\r\n function SponsorCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"SETA Funded\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Industry Funded\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function offsetDate(date, yearOffset, monthOffset, dayOffset) {\r\n let year = date.getFullYear() + yearOffset;\r\n let day = date.getDate() + dayOffset;\r\n let month = date.getMonth() + monthOffset;\r\n\r\n return new Date(year, month, day);\r\n }\r\n\r\n function StatusCheck(form, status) {\r\n if (status !== undefined && status !== null) {\r\n if (status.Description !== \"Terminated\") {\r\n let currentDate = new Date();\r\n let newregend = offsetDate(currentDate, 0, 13, 0);\r\n\r\n form.values['CompletionDate'] = newregend;\r\n }\r\n else {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n const handleReplacementChange = form => event => {\r\n if (!event.target.checked) {\r\n }\r\n\r\n form.updateValue('RPL', event.target.checked);\r\n };\r\n\r\n function SocioCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Employed\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Employed\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n const updateGPSAddress = (address, form) => {\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n function terminationReasonCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Other\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [])\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n {\r\n (utils.getCurrentRole() == \"Administrator\") ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProjectID\", value);\r\n if (props.trancheSetupDetailsHandler) {\r\n props.trancheSetupDetailsHandler(value);\r\n }\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"LeadProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n form.setLookupSelection(\"LearnershipID\", value)} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"LeadEmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"SecondaryProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"SecondaryEmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n\r\n \r\n \r\n {\r\n form.setLookupSelection(\"WorkplaceID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return option.Id !== 14 && option.Description !== \"Terminated\";\r\n }}\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { LearnerLearnershipForm } from '../../etqa/program/registration/LearnerLearnershipForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: '', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst LearnershipRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddLearnerLearnership extends Component {\r\n\r\n state = {\r\n LearnershipDetails: {\r\n LearnershipProgrammeDescription: \"\",\r\n LearnershipProgrammeCode: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n showTable: true,\r\n CurrentProgramme: this.props.location.state.LearnershipID,\r\n CreateNewFlag: this.props.location.state.hideFields,\r\n Learner: this.props.location.state.LearnerID,\r\n model: null\r\n };\r\n\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n LearnershipSetupDetails: {\r\n LearnershipProgrammeCode: values.LearnershipID,\r\n LearnershipProgrammeDescription: values.LearnershipTitle\r\n },\r\n Learner: this.props.location.state.LearnerID\r\n });\r\n const newValues = { ...values };\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues\r\n });\r\n }\r\n }\r\n }\r\n\r\n trancheSetupDetailsHandler = (ProjectID) => {\r\n if (!utils.isNull(ProjectID)) {\r\n utils.invokeUrl(\"api/sims/learnerlearnership/gettranchesetupdetails?id=\" + ProjectID.Id, (response) => {\r\n let model = {};\r\n if (this.state.model !== null && typeof this.state.model !== \"undefined\") {\r\n model = { ...this.state.model };\r\n }\r\n model.ProjectID = ProjectID;\r\n model.LeadProviderID = response.ProviderID;\r\n model.LearnershipID = response.InterventionID;\r\n model.CommencementDate = response.StartDate;\r\n model.CompletionDate = response.EndDate;\r\n model.SocioEconomicStatusID = response.SocioEconomicStatusID;\r\n\r\n this.setState({ model: model });\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n showTable: true,\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n CurrentProgramme: response.EntityId,\r\n CreateNewFlag: false\r\n })\r\n });\r\n }\r\n else {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = LearnershipRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n formValue.id = this.props.location.state.LearnerID;\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/learnerlearnership/LinkLearnerLearnership\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/LearnerLearnershipSearch',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\r\n (this.props.location.state.hideFields) ?\r\n `Learner > Link New Learnership > ${this.props.location.state.learnerNames}`\r\n :\r\n `Learner > Update Learnership > ${this.props.location.state.learnerNames}`\r\n }\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={toolbarConfig} />\r\n
\r\n
\r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)}\r\n data={this.state.model}\r\n model={this.state.model}\r\n trancheSetupDetailsHandler={this.trancheSetupDetailsHandler}\r\n />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AddLearnerLearnership);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomCheckbox } from '../../../widgets/CustomCheckbox';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport ProviderSearch from '../../provider/ProviderSearch';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport QualificationSetupSearch from '../../program/QualificationSetupSearch';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const LearnerQualificationForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n function TerminationCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Terminated\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Terminated\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function terminationReasonCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Other\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n\r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n\r\n\r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n form.setLookupSelection(\"QualificationID\", value)} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.CommencementDate)\r\n && formValues.CommencementDate.getTime() < formValues.CompletionDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n key={tabValue}\r\n label=\"Completion Date\"\r\n className='{classes.textField} w-100 '\r\n required\r\n disabled={!utils.isNull(props.viewOnly) ? props.viewOnly : false}\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n form={form}\r\n />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { LearnerQualificationForm } from '../../etqa/program/registration/LearnerQualificationForm';\r\n\r\n\r\n\r\nconst QualificationRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddLearnerQualification extends Component {\r\n\r\n state = {\r\n QualificationDetails: {\r\n SAQAQualificationTitle: \"\",\r\n SAQAQualificationCode: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n Learner: this.props.location.state.LearnerID\r\n };\r\n\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n this.setState({\r\n QualificationSetupDetails: {\r\n SAQAQualificationCode: values.SAQAQualificationID,\r\n SAQAQualificationTitle: values.SAQAQualificationTitle\r\n },\r\n Learner: this.props.location.state.LearnerID\r\n });\r\n }\r\n }\r\n\r\n toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: '', tooltip: 'Save', icon: 'SaveIcon' },\r\n { id: 'unitstandard', label: 'UNIT STANDARDS', tooltip: 'Link/Un-Link Unit Standards', visible: this.props.location.state.hideFields === false },\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"unitstandard\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnerQualificationUSSearch',\r\n state: {\r\n LearnerID: this.props.location.state.LearnerID,\r\n QualificationID: this.props.location.state.QualificationID,\r\n hideFields: false,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n })\r\n }\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Learner Qualification updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = QualificationRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n formValue.id = this.props.location.state.LearnerID;\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/learnerqualification/LinkLearnerQualification\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n\r\n this.props.history.push({\r\n pathname: '/LearnerQualificationSearch',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\r\n (this.props.location.state.hideFields) ?\r\n `Learner > Link New Qualification > ${this.props.location.state.learnerNames}`\r\n :\r\n `Learner > Update Qualification > ${this.props.location.state.learnerNames}`\r\n }\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AddLearnerQualification);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport ProviderSearch from '../../provider/ProviderSearch';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport UnitStandardSetupSearch from '../../program/UnitStandardSetupSearch';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const LearnerUnitStandardForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n function TerminationCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Terminated\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Terminated\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function terminationReasonCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Other\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function checkParam(value) {\r\n if (value !== undefined && value !== null) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n\r\n }\r\n\r\n function checkProviderParam(value) {\r\n if (value !== undefined && value !== null) {\r\n return value.Id;\r\n }\r\n else {\r\n return 0;\r\n }\r\n\r\n }\r\n\r\n function SocioCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Employed\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Unemployed\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n :\r\n \"\"\r\n }\r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n\r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n\r\n\r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n form.setLookupSelection(\"UnitStandardID\", 0)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n form.setLookupSelection(\"UnitStandardID\", value)} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.CommencementDate)\r\n && formValues.CommencementDate.getTime() < formValues.CompletionDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n key={tabValue}\r\n label=\"Completion Date\"\r\n className='{classes.textField} w-100 '\r\n required\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n form={form}\r\n />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { LearnerUnitStandardForm } from '../../etqa/program/registration/LearnerUnitStandardForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: '', tooltip: 'Save', icon: 'SaveIcon'}\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst unitStandardRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddLearnerUnitStandard extends Component {\r\n\r\n state = {\r\n unitStandardDetails: {\r\n SAQAUnitStandardTitle: \"\",\r\n SAQAUnitStandardCode: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n showTable: true,\r\n CurrentProgramme: this.props.location.state.UnitStandardID,\r\n CreateNewFlag: this.props.location.state.hideFields,\r\n Learner: this.props.location.state.LearnerID\r\n };\r\n \r\n \r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n this.setState({\r\n unitstandardSetupDetails: {\r\n SAQAUnitStandardCode: values.SAQAUnitStandardID,\r\n SAQAUnitStandardTitle: values.SAQAUnitStandardTitle\r\n },\r\n Learner: this.props.location.state.LearnerID\r\n }); \r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n showTable: true,\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n CurrentProgramme: response.EntityId,\r\n CreateNewFlag: false\r\n })\r\n });\r\n }\r\n else {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = unitStandardRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n formValue.id = this.props.location.state.LearnerID;\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/learnerunitstandard/LinkLearnerUnitStandard\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n\r\n this.props.history.push({\r\n pathname: '/LearnerUnitStandardSearch',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\r\n (this.props.location.state.hideFields) ?\r\n `Learner > Link New Unit Standard > ${this.props.location.state.learnerNames}`\r\n :\r\n `Learner > Update Unit Standard > ${this.props.location.state.learnerNames}`\r\n }\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={toolbarConfig} />\r\n
\r\n
\r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)} />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AddLearnerUnitStandard);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./AETSetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport AETSetupSearchForm from './AETSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport CardLayout from '../../widgets/Card';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'AETProgrammeCode', numeric: false, disablePadding: true, label: 'AET Programme Code' },\r\n { id: 'AETProgrammeDescription', numeric: false, disablePadding: true, label: 'AET Programme Description' }\r\n];\r\n\r\nclass AETSetupSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n let model = {\r\n AETProgrammeCode: \"\",\r\n AETProgrammeDescription: \"\"\r\n }\r\n\r\n this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"AETProgrammeCode\", Value: \"\" },\r\n { Name: \"AETProgrammeDescription\", Value: \"\" }\r\n ]\r\n :\r\n [\r\n { Name: \"AETProgrammeCode\", Value: \"\" },\r\n { Name: \"AETProgrammeDescription\", Value: \"\" },\r\n ]\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n if (!utils.isNull(props.personId)) {\r\n model.PersonID = props.personId;\r\n this.searchParameters.push({ Name: \"PersonID\", Value: props.personId })\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: \"delete\", label: '', tooltip: 'Remove AET', icon: 'DeleteIcon', disabled: true}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AETSetupSearch)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomCheckbox } from '../../../widgets/CustomCheckbox';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport ProviderSearch from '../../provider/ProviderSearch';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport AETSetupSearch from '../../program/AETSetupSearch';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const LearnerAETForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n\r\n function TerminationCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Terminated\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Terminated\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function terminationReasonCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Other\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n\r\n function SocioCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Employed\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Unemployed\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function SponsorCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"SETA Funded\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Industry Funded\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n form.setLookupSelection(\"AETID\", value)} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.StartDate)\r\n && formValues.StartDate.getTime() < formValues.EndDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n form={form} \r\n />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { LearnerAETForm } from '../../etqa/program/registration/LearnerAETForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\n\r\n\r\nconst AETRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddLearnerAET extends Component {\r\n\r\n state = {\r\n AETDetails: {\r\n AETProgrammeDescription: \"\",\r\n AETProgrammeCode: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n showTable: true,\r\n Learner: this.props.location.state.LearnerID,\r\n CurrentProgramme: this.props.location.state.AETID,\r\n CreateNewFlag: this.props.location.state.hideFields,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: '', tooltip: 'Save', icon: 'SaveIcon'}\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n this.setState({\r\n AETSetupDetails: {\r\n AETProgrammeCode: values.AETID,\r\n AETProgrammeDescription: values.AETTitle\r\n },\r\n Learner: this.props.location.state.LearnerID\r\n });\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = AETRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n formValue.id = this.props.location.state.LearnerID;\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/learneraet/LinkLearnerAET\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n showTable: true,\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n CurrentProgramme: response.EntityId,\r\n CreateNewFlag: false\r\n })\r\n });\r\n }\r\n else {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n\r\n this.props.history.push({\r\n pathname: '/LearnerAETSearch',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\r\n (this.props.location.state.hideFields) ?\r\n `Learner > Link New AET > ${this.props.location.state.learnerNames}`\r\n :\r\n `Learner > Update AET > ${this.props.location.state.learnerNames}`\r\n }\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.state.toolbarConfig} />\r\n
\r\n
\r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)} />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AddLearnerAET));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomCheckbox } from '../../../widgets/CustomCheckbox';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport ProviderSearch from '../../provider/ProviderSearch';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport LearnerQualificationSearch from '../../program/LearnerQualificationSearch';\r\nimport InstitutionSearch from '../../program/InstitutionSearch';\r\nimport OFOSearch from '../../program/OFOSearch';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const LearnerFETForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n function TerminationCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Terminated\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Terminated\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n\r\n function terminationReasonCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Other\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function SponsorCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"SETA Funded\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Industry Funded\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function SocioCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Employed\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Unemployed\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function trackExtensionDate(value) {\r\n console.clear()\r\n console.log(value)\r\n if (value !== undefined && value !== null) {\r\n return true\r\n }\r\n else {\r\n return false\r\n }\r\n \r\n }\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n :\r\n \"\"\r\n }\r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n\r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"InstitutionID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"FETQualificationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { LearnerFETForm } from '../../etqa/program/registration/LearnerFETForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst FETRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddLearnerFET extends Component {\r\n\r\n state = {\r\n FETDetails: {\r\n SAQAQualificationTitle: \"\",\r\n SAQAQualificationID: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n Learner: this.props.location.state.LearnerID,\r\n CurrentProgramme: this.props.location.state.FETID,\r\n CreateNewFlag: this.props.location.state.hideFields,\r\n showTable: true,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: '', tooltip: 'Save', icon: 'SaveIcon'}\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n successCallback = (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n showTable: true,\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n CurrentProgramme: response.EntityId,\r\n CreateNewFlag: false\r\n })\r\n });\r\n }\r\n else {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n this.setState({\r\n FETetupDetails: {\r\n SAQAQualificationID: values.SAQAQualificationID,\r\n SAQAQualificationTitle: values.SAQAQualificationTitle\r\n },\r\n Learner: this.props.location.state.LearnerID\r\n });\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = FETRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n formValue.id = this.props.location.state.LearnerID;\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/learnerfet/LinkLearnerFET\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n\r\n this.props.history.push({\r\n pathname: '/LearnerFETSearch',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\r\n (this.props.location.state.hideFields) ?\r\n `Learner > Link New TVET > ${this.props.location.state.learnerNames}`\r\n :\r\n `Learner > Update TVET > ${this.props.location.state.learnerNames}`\r\n }\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.state.toolbarConfig} />\r\n
\r\n
\r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)} />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AddLearnerFET));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomCheckbox } from '../../../widgets/CustomCheckbox';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport ProviderSearch from '../../provider/ProviderSearch';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport LearnerQualificationSearch from '../../program/LearnerQualificationSearch';\r\nimport InstitutionSearch from '../../program/InstitutionSearch';\r\nimport OFOSearch from '../../program/OFOSearch';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const LearnerCandidacyForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n //const handleReplacementChange = form => event => {\r\n // if (!event.target.checked) {\r\n // }\r\n\r\n // form.updateValue('IsVerified', event.target.checked);\r\n //};\r\n\r\n function TerminationCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Terminated\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Terminated\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n\r\n function SponsorCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"SETA Funded\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Industry Funded\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function terminationReasonCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Other\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n :\r\n \"\"\r\n }\r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"InstitutionID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"CandidQualificationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { LearnerCandidacyForm } from '../../etqa/program/registration/LearnerCandidacyForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\n\r\n\r\nconst CandidacyRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddLearnerCandidacy extends Component {\r\n\r\n state = {\r\n CandidacyDetails: {\r\n SAQAQualificationTitle: \"\",\r\n SAQAQualificationID: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n Learner: this.props.location.state.LearnerID,\r\n CurrentProgramme: this.props.location.state.CandidacyID,\r\n CreateNewFlag: this.props.location.state.hideFields,\r\n showTable: true,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: '', tooltip: 'Save', icon: 'SaveIcon'}\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n this.setState({\r\n CandidacyetupDetails: {\r\n SAQAQualificationID: values.SAQAQualificationID,\r\n SAQAQualificationTitle: values.SAQAQualificationTitle\r\n },\r\n Learner: this.props.location.state.LearnerID\r\n });\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n\r\n successCallback = (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n showTable: true,\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n CurrentProgramme: response.EntityId,\r\n CreateNewFlag: false\r\n })\r\n });\r\n }\r\n else {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = CandidacyRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n formValue.id = this.props.location.state.LearnerID;\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/learnercandidacy/LinkLearnerCandidacy\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n\r\n this.props.history.push({\r\n pathname: '/LearnerCandidacySearch',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\r\n (this.props.location.state.hideFields) ?\r\n `Learner > Link New Candidacy > ${this.props.location.state.learnerNames}`\r\n :\r\n `Learner > Update Candidacy > ${this.props.location.state.learnerNames}`\r\n }\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.state.toolbarConfig} />\r\n
\r\n
\r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)} />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(AddLearnerCandidacy));\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./TradeSetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport TradeSetupSearchForm from './TradeSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport CardLayout from '../../widgets/Card';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'TradeID', numeric: false, disablePadding: true, label: 'Trade Code' },\r\n { id: 'TradeTitle', numeric: false, disablePadding: true, label: 'Trade Title' }\r\n];\r\n\r\nclass TradeSetupSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n let model = {\r\n TradeID: \"\",\r\n TradeTitle: \"\"\r\n }\r\n\r\n this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"TradeID\", Value: \"\" },\r\n { Name: \"TradeTitle\", Value: \"\" }\r\n ]\r\n :\r\n [\r\n { Name: \"TradeID\", Value: \"\" },\r\n { Name: \"TradeTitle\", Value: \"\" },\r\n ]\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n if (!utils.isNull(props.personId)) {\r\n model.PersonID = props.personId;\r\n this.searchParameters.push({ Name: \"PersonID\", Value: props.personId })\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Trade\", icon: \"DeleteIcon\", disabled: true}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(TradeSetupSearch)\r\n);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\n\r\nexport default function ProjectSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport ProjectSearchForm from './ProjectSearchForm';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'Id', numeric: true, disablePadding: false, label: 'Project ID', widthRatio: .5 },\r\n { id: 'Description', numeric: false, disablePadding: false, label: 'Description', widthRatio: .25 }\r\n];\r\n\r\n\r\n\r\nconst filterParameters = [\r\n { dataField: \"Id\", text: \"Id\" },\r\n { dataField: \"Description\", text: \"Description\" }\r\n\r\n]\r\n\r\nclass ProjectSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n Id: \"\",\r\n Description: \"\"\r\n },\r\n parameters: {},\r\n keyUpSwitch: false,\r\n selectedProject: null\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.searchParameters = \r\n\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"Description\", Value: \"\" }\r\n ]\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedProject: selection })\r\n } else {\r\n this.setState({ selectedProject: null })\r\n }\r\n \r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"add\" === buttonId) {\r\n this.setState({ linkDialogOpen: true })\r\n }\r\n } \r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }} /> \r\n \r\n \r\n\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(ProjectSearch));\r\n\r\n","import React, { useEffect } from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport ProviderSearch from '../../provider/ProviderSearch';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport TradeSetupSearch from '../../program/TradeSetupSearch';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport LearnerQualificationSearch from '../../program/LearnerQualificationSearch';\r\nimport ProjectSearch from '../../grants/grantsetup/ProjectSearch'\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const LearnerTradeForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n function TerminationCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Terminated\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Terminated\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function SponsorCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"SETA Funded\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Industry Funded\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function SocioCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Employed\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Employed\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n function terminationReasonCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Other\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [])\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n :\r\n \"\"\r\n }\r\n \r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n {\r\n (!props.hideFields) ?\r\n \r\n \r\n \r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"LeadProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"SecondaryProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"TradeID\", value);\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"TradeQualificationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.CommencementDate)\r\n && formValues.CommencementDate.getTime() < formValues.CompletionDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n form={form}\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { LearnerTradeForm } from '../../etqa/program/registration/LearnerTradeForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: '', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst TradeRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddLearnerTrade extends Component {\r\n\r\n state = {\r\n TradeDetails: {\r\n TradeProgrammeDescription: \"\",\r\n TradeProgrammeCode: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n showTable: true,\r\n CurrentProgramme: this.props.location.state.TradeID,\r\n CreateNewFlag: this.props.location.state.hideFields,\r\n Learner: this.props.location.state.LearnerID\r\n };\r\n\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n this.setState({\r\n TradeSetupDetails: {\r\n TradeProgrammeCode: values.TradeID,\r\n TradeProgrammeDescription: values.TradeTitle\r\n },\r\n Learner: this.props.location.state.LearnerID\r\n });\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n showTable: true,\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n CurrentProgramme: response.EntityId,\r\n CreateNewFlag: false\r\n })\r\n });\r\n }\r\n else {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = TradeRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n formValue.id = this.props.location.state.LearnerID;\r\n let input = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/learnerTrade/LinkLearnerTrade\", (response) => {\r\n this.successCallback(response);\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: input\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/LearnerTradeSearch',\r\n state: {\r\n learnerID: this.props.location.state.LearnerID,\r\n learnerNames: this.props.location.state.learnerNames\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\r\n (this.props.location.state.hideFields) ?\r\n `Learner > Link New Trade > ${this.props.location.state.learnerNames}`\r\n :\r\n `Learner > Update Trade > ${this.props.location.state.learnerNames}`\r\n }\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={toolbarConfig} />\r\n
\r\n
\r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)} />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AddLearnerTrade);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable'; \r\nimport Prompt from '../../widgets/Prompt';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport AssessorInterventionAudit from '../assessor/AssessorInterventionAudit';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { OutComeStatusForm } from \"../common/OutcomeStatusForm\";\r\n\r\nexport const unitStandardHeadCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'UnitStandard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'UnitStandard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardRegistrationStartDate', numeric: false, disablePadding: true, label: 'Unit Standard Registration Start Date' },\r\n { id: 'UnitStandardRegistrationEndDate', numeric: false, disablePadding: true, label: 'Unit Standard Registration End Date' },\r\n { id: 'UnitStandardLastDateForEnrolment', numeric: false, disablePadding: true, label: 'Unit Standard Last Enrolment Date' },\r\n { id: 'UnitStandardLastDateForAchievement', numeric: false, disablePadding: true, label: 'Unit Standard Last Achievement Date' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass UnitStandardSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n AssessorID: this.props.location.state.AssessorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n updateDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n selectedUnitStandard: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From Assessor\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the assessor?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"AssessorID\", Value: this.props.location.state.AssessorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Unit Standard/s to the assessor', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected unit standard', disabled: utils.isNull(this.state.selectedUnitStandard), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedUnitStandard) , icon: 'AuditIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link selected unit standard from the assessor', disabled: utils.isNull(this.state.selectedUnitStandard), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\"})\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&assessorId=${this.props.location.state.AssessorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, auditDialogOpen: false, linkDialogOpen: false, selection: this.props.location.state.selection, selectedUnitStandard: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Assessor > Unit Standards\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.AssessorName + \" - \" + this.props.location.state.AssessorIDNo : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedUnitStandard}\r\n >\r\n\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Assessor: ${this.props.location.state.AssessorName}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/assessorunitstandard/LinkAssessorUnitStandard\"} usePost={true}\r\n selectionId={this.props.location.state.AssessorID}\r\n > \r\n\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/assessorunitstandard/RemoveAssessorUnitStandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(UnitStandardSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable'; \r\nimport Prompt from '../../widgets/Prompt';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport FacilitatorInterventionAudit from '../facilitator/FacilitatorInterventionAudit';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { OutComeStatusForm } from \"../common/OutcomeStatusForm\";\r\n\r\nexport const unitStandardHeadCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'UnitStandard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'UnitStandard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardRegistrationStartDate', numeric: false, disablePadding: true, label: 'Unit Standard Registration Start Date' },\r\n { id: 'UnitStandardRegistrationEndDate', numeric: false, disablePadding: true, label: 'Unit Standard Registration End Date' },\r\n { id: 'UnitStandardLastDateForEnrolment', numeric: false, disablePadding: true, label: 'Unit Standard Last Enrolment Date' },\r\n { id: 'UnitStandardLastDateForAchievement', numeric: false, disablePadding: true, label: 'Unit Standard Last Achievement Date' },\r\n { id: 'Outcome', numeric: false, disablePadding: true, label: 'Outcome' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass UnitStandardSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n FacilitatorID: this.props.location.state.FacilitatorID\r\n },\r\n showTable: true,\r\n linkDialogOpen: false,\r\n updateDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n selectedUnitStandard: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From Facilitator\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the Facilitator?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"FacilitatorID\", Value: this.props.location.state.FacilitatorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Unit Standard/s to the Facilitator', icon: 'LinkIcon' },\r\n { id: 'update', label: '', tooltip: 'Update the status and outcome of the selected unit standard', disabled: utils.isNull(this.state.selectedUnitStandard), icon: 'UpdateIcon' },\r\n { id: 'audit', label: '', tooltip: 'View Record Audit Trail', disabled: utils.isNull(this.state.selectedUnitStandard) , icon: 'AuditIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link selected unit standard from the Facilitator', disabled: utils.isNull(this.state.selectedUnitStandard), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitator',\r\n state: { selection: this.props.location.state.FacilitatorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\"})\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&facilitatorId=${this.props.location.state.FacilitatorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n updateDialogOpen: false, selectedSiteVisit: null, auditDialogOpen: false, linkDialogOpen: false, selection: this.props.location.state.selection, selectedUnitStandard: null\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n updateDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Facilitator > Unit Standards\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.FacilitatorName + \" - \" + this.props.location.state.FacilitatorIDNo : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedUnitStandard}\r\n >\r\n\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Facilitator: ${this.props.location.state.FacilitatorName}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/facilitatorunitstandard/LinkFacilitatorUnitStandard\"} usePost={true}\r\n selectionId={this.props.location.state.FacilitatorID}\r\n > \r\n\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/facilitatorunitstandard/RemoveFacilitatorUnitStandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(UnitStandardSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ProviderSearch from '../provider/ProviderSearch';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst headCells = [\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: \"TradeName\", numeric: false, disablePadding: true, label: \"Trade Name\" },\r\n { id: \"ProAccNumber\", numeric: false, disablePadding: true, label: \"Accreditation Number\" },\r\n { id: \"AssessorAssessmentEndDate\", numeric: false, disablePadding: true, label: \"Assessor Assessment End Date\" },\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass AssessorProviderSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n AssessorID: this.props.location.state.AssessorID\r\n },\r\n searchParameters: [\r\n { Name: \"AssessorID\", Value: this.props.location.state.AssessorID }\r\n ],\r\n linkDialogOpen: false,\r\n selectedProvider: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Training Provider From Assessor\",\r\n promptContent: \"Are you sure you want to unlink this training provider from the assessor?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Provider/s to the assessor', icon: 'LinkIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link the selected provider from the assessor', disabled: utils.isNull(this.state.selectedProvider), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedProvider: null });\r\n //Force a refresh\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase(),\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unsuccessfulUnlinkCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n unlinkAssessorProvider(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedProvider}&assessorId=${this.props.location.state.AssessorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, this.unsuccessfulUnlinkCallback);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedProvider: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedProvider: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedProvider: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Assessor > Providers\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.AssessorName + \" - \" + this.props.location.state.AssessorIDNo : \"> Add\")}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Training Provider to Assessor: ${this.props.location.state.AssessorName}`}\r\n linkName={\"Providers\"} postUrl={\"api/sims/assessorprovider/LinkAssessorProvider\"} usePost={true}\r\n selectionId={this.props.location.state.AssessorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkAssessorProvider(`api/sims/assessorprovider/RemoveAssessorProvider`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AssessorProviderSearch)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ProviderSearch from '../provider/ProviderSearch';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst headCells = [\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: \"TradeName\", numeric: false, disablePadding: true, label: \"Trade Name\" },\r\n { id: \"ProAccNumber\", numeric: false, disablePadding: true, label: \"Accreditation Number\" },\r\n { id: \"FacilitatorAssessmentEndDate\", numeric: false, disablePadding: true, label: \"Facilitator Assessment End Date\" },\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass FacilitatorProviderSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n FacilitatorID: this.props.location.state.FacilitatorID\r\n },\r\n searchParameters: [\r\n { Name: \"FacilitatorID\", Value: this.props.location.state.FacilitatorID }\r\n ],\r\n linkDialogOpen: false,\r\n selectedProvider: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Training Provider From Facilitator\",\r\n promptContent: \"Are you sure you want to unlink this training provider from the Facilitator?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Provider/s to the Facilitator', icon: 'LinkIcon' },\r\n { id: 'unlink', label: '', tooltip: 'Un-link the selected provider from the Facilitator', disabled: utils.isNull(this.state.selectedProvider), icon: 'LinkOffIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitator',\r\n state: { selection: this.props.location.state.FacilitatorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedProvider: null });\r\n //Force a refresh\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase(),\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unsuccessfulUnlinkCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n unlinkFacilitatorProvider(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedProvider}&facilitatorId=${this.props.location.state.FacilitatorID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, this.unsuccessfulUnlinkCallback);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedProvider: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedProvider: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedProvider: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Facilitator > Providers\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.FacilitatorName + \" - \" + this.props.location.state.FacilitatorIDNo : \"> Add\")}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Training Provider to Facilitator: ${this.props.location.state.FacilitatorName}`}\r\n linkName={\"Providers\"} postUrl={\"api/sims/facilitatorprovider/LinkFacilitatorProvider\"} usePost={true}\r\n selectionId={this.props.location.state.FacilitatorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkFacilitatorProvider(`api/sims/facilitatorprovider/RemoveFacilitatorProvider`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(FacilitatorProviderSearch)\r\n);","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const AssessorRegistrationDetailsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n if (!utils.isNull(values.RegistrationStartDate)) {\r\n utils.autoSetDate(props.viewRef, ref, values.RegistrationStartDate, 3, 0, -1, \"RegistrationEndDate\", \"RegistrationStartDate\")\r\n }\r\n\r\n if (!utils.isNull(props.valueChangeHandler)) {\r\n props.valueChangeHandler(values);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n { handleFormValueChange(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.RegistrationStartDate)\r\n && formValues.RegistrationStartDate.getTime() < formValues.RegistrationEndDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n className='{classes.textField} w-100'\r\n form={form} \r\n disabled={!props.editPermission}\r\n />\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Assessor.css\";\r\nimport { AssessorRegistrationDetailsForm } from './AssessorRegistrationDetailsForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst ref = React.createRef();\r\n\r\nclass AssessorRegistrationDetails extends Component {\r\n state = {\r\n message: \"\",\r\n toolbarConfig:{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n \r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ AssessorRegistrationDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Assessor Registration details updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = ref.current.getValue();\r\n let data = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/assessorregistrationdetails/UpdateAssessorRegistrationDetails\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Assessor > Registration Details\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.AssessorName + \" - \" + this.props.location.state.AssessorIDNo : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={this.state.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} editPermission={this.props.menuPermissionItem.Edit }/>\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AssessorRegistrationDetails));\r\n\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const FacilitatorRegistrationDetailsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n if (!utils.isNull(values.RegistrationStartDate)) {\r\n utils.autoSetDate(props.viewRef, ref, values.RegistrationStartDate, 3, 0, -1, \"RegistrationEndDate\", \"RegistrationStartDate\")\r\n }\r\n\r\n if (!utils.isNull(props.valueChangeHandler)) {\r\n props.valueChangeHandler(values);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n { handleFormValueChange(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.RegistrationStartDate) ? formValues.RegistrationStartDate.getTime() < formValues.RegistrationEndDate.getTime() : true\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n className='{classes.textField} w-100'\r\n form={form}\r\n disabled={!props.editPermission}\r\n />\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Facilitator.css\";\r\nimport { FacilitatorRegistrationDetailsForm } from './FacilitatorRegistrationDetailsForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst ref = React.createRef();\r\n\r\nclass FacilitatorRegistrationDetails extends Component {\r\n state = {\r\n message: \"\",\r\n toolbarConfig:{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n \r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ FacilitatorRegistrationDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitator',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Facilitator Registration details updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = ref.current.getValue();\r\n let data = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/facilitatorregistrationdetails/UpdateFacilitatorRegistrationDetails\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Facilitator > Registration Details\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.FacilitatorName + \" - \" + this.props.location.state.FacilitatorIDNo : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={this.state.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} editPermission={this.props.menuPermissionItem.Edit }/>\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(FacilitatorRegistrationDetails));\r\n\r\n","import React from 'react';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst headCells = [\r\n { id: 'SentBy', numeric: false, disablePadding: true, label: 'Sent By' },\r\n { id: 'SentTo', numeric: false, disablePadding: true, label: 'Sent To' },\r\n { id: 'Message', numeric: false, disablePadding: true, label: 'Message Sent' },\r\n { id: 'Date', numeric: false, disablePadding: true, label: 'Date Sent' }\r\n\r\n\r\n\r\n]\r\n\r\nexport default function Sms(props, ref) {\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nexport default function SmsDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [message, setMessage] = React.useState(null)\r\n const [number, setNumber] = React.useState(null)\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n\r\n const handleClose = (isCancel) => {\r\n setOpen(true);\r\n props.closeHandler(!isCancel)\r\n };\r\n\r\n\r\n const cancel = () => {\r\n handleClose(true);\r\n };\r\n\r\n const add = () => {\r\n if (message !== null || message !== \"\") {\r\n let data = {};\r\n data.number = number;\r\n data.message = message;\r\n data.EntityID = props.EntityID;\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n }\r\n\r\n const handleFormValueChange = (values) => {\r\n setNumber(values.number)\r\n setMessage(values.message)\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n New Message\r\n

\r\n\r\n
\r\n handleFormValueChange(value)}>\r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../crm/Comments\";\r\nimport Documents from \"../crm/Documents\";\r\nimport Emails from \"../crm/Emails\";\r\nimport Sms from \"../crm/Sms\";\r\nimport CommentsDialog from \"../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../crm/EmailDialog\";\r\nimport SmsDialog from \"../crm/SmsDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Assessor\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/AssessorCRM/GetCRMComments\",\r\n documents: \"api/sims/AssessorCRM/GetCRMDocuments\",\r\n emails: \"api/sims/AssessorCRM/GetCRMEmail\",\r\n //sms: \"api/indicium/Assessor/GetCRMSms\"\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/AssessorCRM/AddCRMComment\",\r\n documents: \"api/sims/AssessorCRM/AddCRMDocument\",\r\n emails: \"api/sims/AssessorCRM/AddCRMEmail\",\r\n //sms: \"api/indicium/Assessor/AddCrmSms\"\r\n }\r\n}\r\n\r\nclass AssessorCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: \"1\",\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Assessor',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"4\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: true,\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n smsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"4\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: submitted\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/Assessor/getCRMDocument?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/assessorcrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n }\r\n\r\n SetCommunicationType(values) {\r\n\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {\"Assessor > Unit Standards\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.AssessorName + \" - \" + this.props.location.state.AssessorIDNo : \"> Add\")}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n {this.state.CommunicationType === 3 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({ emailAddress: email, emailSubject: subject }, () => {\r\n this.setState({ emailAddress: email, emailSubject: subject })\r\n })\r\n\r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Assessor Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Assessor Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.selection} />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Assessor Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.selection}\r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"4\" ?\r\n
\r\n

\r\n SMS\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Assessor Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send SMS', icon: 'SmsIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.selection} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.selection}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.selection}\r\n showMultilineToAddress={true}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.sms}\r\n EntityID={this.props.location.state.selection}\r\n />\r\n
\r\n }\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(AssessorCRM));","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../crm/Comments\";\r\nimport Documents from \"../crm/Documents\";\r\nimport Emails from \"../crm/Emails\";\r\nimport Sms from \"../crm/Sms\";\r\nimport CommentsDialog from \"../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../crm/EmailDialog\";\r\nimport SmsDialog from \"../crm/SmsDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Facilitator\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/FacilitatorCRM/GetCRMComments\",\r\n documents: \"api/sims/FacilitatorCRM/GetCRMDocuments\",\r\n emails: \"api/sims/FacilitatorCRM/GetCRMEmail\",\r\n //sms: \"api/indicium/Facilitator/GetCRMSms\"\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/FacilitatorCRM/AddCRMComment\",\r\n documents: \"api/sims/FacilitatorCRM/AddCRMDocument\",\r\n emails: \"api/sims/FacilitatorCRM/AddCRMEmail\",\r\n //sms: \"api/indicium/Facilitator/AddCrmSms\"\r\n }\r\n}\r\n\r\nclass FacilitatorCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: \"1\",\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitator',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"4\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: true,\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n smsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"4\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: submitted\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/Facilitator/getCRMDocument?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/facilitatorcrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n }\r\n\r\n SetCommunicationType(values) {\r\n\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {\"Facilitator > CRM\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.FacilitatorName + \" - \" + this.props.location.state.FacilitatorIDNo : \"> Add\")}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n {this.state.CommunicationType === 3 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({ emailAddress: email, emailSubject: subject }, () => {\r\n this.setState({ emailAddress: email, emailSubject: subject })\r\n })\r\n\r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Facilitator Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Facilitator Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.selection} />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Facilitator Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.selection}\r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"4\" ?\r\n
\r\n

\r\n SMS\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Facilitator Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send SMS', icon: 'SmsIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.selection} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.selection}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.selection}\r\n showMultilineToAddress={true}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.sms}\r\n EntityID={this.props.location.state.selection}\r\n />\r\n
\r\n }\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(FacilitatorCRM));","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../crm/Comments\";\r\nimport Documents from \"../crm/Documents\";\r\nimport Emails from \"../crm/Emails\";\r\nimport Sms from \"../crm/Sms\";\r\nimport CommentsDialog from \"../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../crm/EmailDialog\";\r\nimport SmsDialog from \"../crm/SmsDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Employer\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/employercrm/GetCRMComments\",\r\n documents: \"api/sims/employercrm/GetCRMDocuments\",\r\n emails: \"api/sims/employercrm/GetCRMEMail\",\r\n sms: \"api/sims/employercrm/GetCRMSMS\"\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/employercrm/AddCRMComment\",\r\n documents: \"api/sims/employercrm/AddCRMDocument\",\r\n emails: \"api/sims/employercrm/AddCRMEmail\",\r\n sms: \"api/sims/employercrm/AddCRMSMS\"\r\n },\r\n\r\n docTypeUrls: {\r\n documents: \"api/sims/employercrm/GetLookupListEmployerDocumentType\"\r\n }\r\n}\r\n\r\nclass EmployerCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: \"1\",\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n search() {\r\n alert(\"Search Button Clicke\")\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employer',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"4\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: true,\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n smsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"4\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: submitted\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell, section) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/Employer/DownloadCRM' + section + '?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/employercrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n }\r\n\r\n\r\n SetCommunicationType(values) {\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n
\r\n

\r\n {\"Client > CRM\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.employerName + (this.props.location.state.employerSDLNo !== null ? \" - \" + this.props.location.state.employerSDLNo : \"\") : \"> Add\")}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n\r\n\r\n
\r\n \r\n \r\n \r\n {this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({ emailAddress: email, emailSubject: subject }, () => {\r\n this.setState({ emailAddress: email, emailSubject: subject })\r\n })\r\n\r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Client Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n
\r\n\r\n\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Client Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.selection} showEmployerDocumentType={true} />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Client Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.selection}\r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"4\" ?\r\n
\r\n

\r\n SMS\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Client Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send SMS', icon: 'SmsIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.selection} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.selection}\r\n showEmployerDocumentType={true}\r\n getEmployerDocumentType={config.docTypeUrls.documents}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.selection}\r\n showMultilineToAddress={true}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.sms}\r\n EntityID={this.props.location.state.selection}\r\n />\r\n
\r\n }\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(EmployerCRM));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst headCells = [\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date' },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date' },\r\n { id: 'ProgrammeType', numeric: false, disablePadding: true, label: 'Programme Type' },\r\n { id: 'Intervention', numeric: false, disablePadding: true, label: 'Intervention' },\r\n { id: 'Employment', numeric: false, disablePadding: true, label: 'Employment' },\r\n { id: 'ProjectNumber', numeric: false, disablePadding: true, label: 'Project Number' }\r\n];\r\n\r\n\r\nclass FacilitatorProjectSearch extends Component {\r\n\r\n state = {\r\n searchParameters: [{ Name: \"FacilitatorID\", Value: this.props.location.state.FacilitatorID }],\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'project', label: 'GO TO PROJECT', tooltip: 'go to project', visible: this.props.onMenuSpecificPermissionItem('/GrantSetupSearch').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/facilitator',\r\n state: { selection: this.props.location.state.FacilitatorID }\r\n });\r\n }\r\n else if (\"project\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: this.state.selection[0].Id,\r\n hideFields: false\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Facilitator > Projects\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.FacilitatorName + \" - \" + this.props.location.state.FacilitatorIDNo : \"> Add\")}\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.state.toolbarConfig} />\r\n this.setState({ selection: selection })}\r\n dataUrl=\"api/sims/facilitatorproject/getFacilitatorProjects\" searchParameters={this.state.searchParameters} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n withMenuPermission(FacilitatorProjectSearch)\r\n);\r\n","import React from 'react';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst headCells = [\r\n { id: 'Date', numeric: false, disablePadding: true, label: 'Date' },\r\n { id: 'Comment', numeric: false, disablePadding: true, label: 'Comment' },\r\n { id: 'CommentBy', numeric: false, disablePadding: true, label: 'Comment By' }\r\n]\r\n\r\nexport default function Comments(props, ref) {\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function DocumentDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [documentRelates, setdocumentRelates] = React.useState(\"\");\r\n const [comment, setComment] = React.useState(\"\");\r\n const [selection, setSelection] = React.useState(null);\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n\r\n const handleClose = (isCancel) => {\r\n setOpen(true);\r\n setFilename(\"\");\r\n props.closeHandler(!isCancel)\r\n };\r\n\r\n\r\n const cancel = () => {\r\n handleClose(true);\r\n };\r\n\r\n const add = () => {\r\n let data = {};\r\n\r\n data.DocumentRelatesID = documentRelates;\r\n data.Comment = comment;\r\n data.EntityID = props.EntityID\r\n data.OriginalFileName = filename;\r\n data.Document = {};\r\n data.Document.name = filename;\r\n data.Document.size = size;\r\n data.Document.type = type;\r\n data.Document.base64 = base64;\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n\r\n const handleFormValueChange = (values) => {\r\n setdocumentRelates(values.DocumentRelatesID);\r\n setComment(values.Comment)\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name)\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n New Document\r\n

\r\n\r\n\r\n
\r\n { handleFormValueChange(values) }}>\r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport ViewUtils from \"../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nexport default function CommentsDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [comment, setComment] = React.useState(null)\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n\r\n const handleClose = (isCancel) => {\r\n setOpen(true);\r\n props.closeHandler(!isCancel)\r\n };\r\n\r\n\r\n const cancel = () => {\r\n handleClose(true);\r\n };\r\n\r\n const add = () => {\r\n if (comment !== null || comment !== \"\") {\r\n let data = {};\r\n data.comment = comment;\r\n data.EntityID = props.EntityID;\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n }\r\n\r\n const handleFormValueChange = (values) => {\r\n setComment(values.comment)\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n New Comment\r\n

\r\n\r\n\r\n
\r\n handleFormValueChange(value)}>\r\n {form =>\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../etqa/crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../../etqa/crm/Comments\";\r\nimport Documents from \"../../etqa/crm/Documents\";\r\nimport Emails from \"../../etqa/crm/Emails\";\r\nimport MonitoringComment from \"../../etqa/crm/MonitoringAndEvaluationComment\";\r\nimport CommentsDialog from \"../../etqa/crm/CommentsDialog\";\r\nimport DocumentsDialog from \"./OrganisationDocumentsDialog\";\r\nimport EmailDialog from \"../../etqa/crm/EmailDialog\";\r\nimport MonitoringComentDialog from \"../../etqa/crm/MonitoringAndEvaluationCommentDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Organisation\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/organisationcrm/GetCRMComments\",\r\n documents: \"api/sims/organisationcrm/GetCRMDocuments\",\r\n emails: \"api/sims/organisationcrm/GetCRMEMail\",\r\n mne: \"api/sims/organisationcrm/GetCRMME\"\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/organisationcrm/AddCRMComment\",\r\n documents: \"api/sims/organisationcrm/AddCRMDocument\",\r\n emails: \"api/sims/organisationcrm/AddCRMEmail\",\r\n mne: \"api/sims/organisationcrm/AddCRMME\"\r\n }\r\n}\r\n\r\nclass OrganisationCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: \"1\",\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: false,\r\n\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n search() {\r\n alert(\"Search Button Clicke\")\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true,\r\n monitoringComentDialogDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"5\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: true,\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"5\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: submitted\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/organisationcrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n }\r\n\r\n\r\n SetCommunicationType(values) {\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n
\r\n

\r\n {\"Organisation > CRM \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n\r\n\r\n
\r\n \r\n \r\n \r\n {this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({ emailAddress: email, emailSubject: subject }, () => {\r\n this.setState({ emailAddress: email, emailSubject: subject })\r\n })\r\n\r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Organisation Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n
\r\n\r\n\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Organisation Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.organisationID} IsSkills={ true } />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Organisation Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.organisationID}\r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"5\" ?\r\n
\r\n

\r\n Monitoring and Evaluation\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Organisation Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add Monitoring and Evaluation comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.organisationID} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.organisationID}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.organisationID}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.mne}\r\n EntityID={this.props.location.state.organisationID}\r\n />\r\n
\r\n }\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(OrganisationCRM));\r\n","import React, { useEffect } from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport ProviderSearch from '../../provider/ProviderSearch';\r\nimport ProjectOwnerSearch from '../../projectowner/ProjectOwnerSearch';\r\nimport ConsultantSearch from '../../consultant/ConsultantSearch';\r\nimport FacilitatorSearch from '../../facilitator/FacilitatorSearch';\r\nimport ModeratorSearch from '../../moderator/ModeratorSearch';\r\nimport AssessorSearch from '../../assessor/AssessorSearch';\r\nimport WorkplaceSearch from '../../workplace/WorkplaceSearch';\r\n/*import ProjectSearch from './ProjectSearch';*/\r\n//import ContractSearch from './ContractSearch';\r\n//import ActivitySearch from './ActivitySearch';\r\nimport * as InterventionSearch from './InterventionIndex';\r\n/*import { CustomCheckbox } from '../../../widgets/CustomCheckbox';*/\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const AddEditTrancheForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n function handleSelectionCallbackMode(value) {\r\n let objectReference = {};\r\n objectReference.Id = value[0].Id;\r\n objectReference.Description = value[0].Description;\r\n objectReference.toString = () => { return value[0].Description };\r\n return objectReference\r\n }\r\n\r\n function InterventionTypeChange(value, form) {\r\n if (typeof value !== 'undefined' && value !== null) {\r\n if (value.Description === \"Learnership\" || value.Description === \"Absorption\") {\r\n var type = 'LearnershipSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/GrantSetup/LearnershipSearch\" autoFetchData={false} selection={props.selection} />\r\n } else if (value.Description === \"Skills Programme\") {\r\n var type = 'SkillsProgramSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/GrantSetup/SkillsProgrammeSearch\" autoFetchData={false} selection={props.selection} />\r\n } else if (value.Description === \"AET\") {\r\n var type = 'AETSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/GrantSetup/AETSearch\" autoFetchData={false} selection={props.selection} />\r\n } else if (value.Description === \"Bursary\") {\r\n var type = 'BursarySetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/GrantSetup/BursarySearch\" autoFetchData={false} selection={props.selection} />\r\n }\r\n }\r\n }\r\n\r\n function LookupValidation(value) {\r\n if (value !== undefined && value !== null) {\r\n return false\r\n }\r\n else {\r\n return true\r\n }\r\n }\r\n\r\n function InterventionTypeRender(intervention, checkBValue) {\r\n if (intervention !== null && checkBValue !== null) {\r\n if (typeof intervention !== 'undefined' && intervention !== null) {\r\n if (intervention.Description === \"Learnership\" ||\r\n intervention.Description === \"Skills Programme\" ||\r\n intervention.Description === \"AET\" ||\r\n intervention.Description === \"Bursary\" ||\r\n intervention.Description === \"Absorption\") {\r\n if (checkBValue == false) { return false }\r\n else { return true }\r\n }\r\n else { return true; }\r\n }\r\n else { return true; }\r\n } else if (intervention !== null && (checkBValue == null || checkBValue == undefined)) {\r\n if (intervention.Description === \"Learnership\" ||\r\n intervention.Description === \"Skills Programme\" ||\r\n intervention.Description === \"AET\" ||\r\n intervention.Description === \"Bursary\" ||\r\n intervention.Description === \"Absorption\") {\r\n return false;\r\n } else { return true; }\r\n }\r\n else { return true; }\r\n }\r\n\r\n function manageReqFlag(intervention, checkBValue) {\r\n if (intervention !== null && checkBValue !== null) {\r\n if (checkBValue == false) {\r\n if (intervention.Description === \"Learnership\" ||\r\n intervention.Description === \"Skills Programme\" ||\r\n intervention.Description === \"AET\" ||\r\n intervention.Description === \"Bursary\") {\r\n return true;\r\n } else { return false; }\r\n }\r\n else { return false; }\r\n } else if (intervention !== null && (checkBValue == null || checkBValue == undefined)) {\r\n if (intervention.Description === \"Learnership\" ||\r\n intervention.Description === \"Skills Programme\" ||\r\n intervention.Description === \"AET\" ||\r\n intervention.Description === \"Bursary\") {\r\n return true;\r\n } else { return false; }\r\n }\r\n else { return false; }\r\n }\r\n\r\n function manageReqFlagV2(intervention, fieldName) {\r\n if (!utils.isNull(intervention) && !utils.isNull(fieldName)) {\r\n if (intervention.Description === \"Absorption\") {\r\n switch (fieldName) {\r\n case \"ProviderID\":\r\n return false;\r\n break;\r\n case \"EndDate\":\r\n return false;\r\n break;\r\n case \"TrancheSetupTypeOfTrainingID\":\r\n return false;\r\n break;\r\n default:\r\n return true;\r\n }\r\n }\r\n else if (intervention.Description === \"Enterprise Development\" || intervention.Description == \"Supplier Development\") {\r\n switch (fieldName) {\r\n case \"ProviderID\":\r\n return false;\r\n break;\r\n case \"SocioEconomicStatusID\":\r\n return false;\r\n break;\r\n case \"TrancheSetupTypeOfTrainingID\":\r\n return false;\r\n break;\r\n case \"TrancheSetupDisabilityID\":\r\n return false;\r\n break;\r\n default:\r\n return true;\r\n }\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n function InterventionTypeRenderForSponsorship(intervention) {\r\n if (intervention !== null) {\r\n if (typeof intervention !== 'undefined' && intervention !== null) {\r\n if (intervention.Description === \"Sponsorship\") {\r\n return true;\r\n }\r\n else { return false; }\r\n }\r\n else { return false; }\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n function InterventionTypeRenderForEnterpriseSupplier(intervention) {\r\n if (intervention !== null) {\r\n if (typeof intervention !== 'undefined' && intervention !== null) {\r\n if (intervention.Description === \"Enterprise Development\" || intervention.Description === \"Supplier Development\") {\r\n return true;\r\n }\r\n else { return false; }\r\n }\r\n else { return false; }\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n function LabelRenderForEnterpriseSupplier(intervention) {\r\n if (intervention !== null) {\r\n if (typeof intervention !== 'undefined' && intervention !== null) {\r\n if (intervention.Description === \"Enterprise Development\") {\r\n return \"Enterprise\";\r\n }\r\n else if (intervention.Description === \"Supplier Development\") {\r\n return \"Supplier\";\r\n }\r\n else { return \"\"; }\r\n }\r\n else { return \"\"; }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n function OtherRenderForEnterpriseSupplier(intervention, TrancheSetupEnterpriseSupplier) {\r\n if (intervention !== null) {\r\n if (typeof intervention !== 'undefined' && intervention !== null) {\r\n if (intervention.Description === \"Enterprise Development\" || intervention.Description === \"Supplier Development\") {\r\n if (typeof TrancheSetupEnterpriseSupplier !== 'undefined' && TrancheSetupEnterpriseSupplier !== null) {\r\n if (TrancheSetupEnterpriseSupplier.Description == \"Other\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n else { return false; }\r\n }\r\n else { return false; }\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [])\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.showAbledFields ?\r\n \r\n \r\n \r\n : null\r\n }\r\n {props.showDisabledFields ?\r\n \r\n \r\n \r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {InterventionTypeRenderForEnterpriseSupplier(form.values[\"ProgrammeType\"]) ?\r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n {OtherRenderForEnterpriseSupplier(form.values[\"ProgrammeType\"], form.values[\"TrancheSetupEnterpriseSupplierID\"]) ?\r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ClientID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n props.redirect(form.values[\"OrganisationID\"])}\r\n >\r\n GO TO CLIENT\r\n \r\n \r\n \r\n {/**/}\r\n
\r\n {/**/}\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"ProjectOwnerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n {/**/}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"ContractNumber\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/**/}\r\n
\r\n {/**/}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"ActivityNumber\", handleSelectionCallbackMode(value))*/}\r\n {/* form.values['VendorSDLNumber'] = value[0].VendorSDLNumber;*/}\r\n {/* form.values['ActivityAgreementNumber'] = value[0].ActivityAgreementNumber;*/}\r\n {/* form.values['NumberOfLearners'] = value[0].NumberOfLearners;*/}\r\n {/* form.values['BudgetAmount'] = value[0].ContractBudgetAmount;*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/**/}\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n {/**/}\r\n {/**/}\r\n \r\n \r\n {/**/}\r\n
\r\n {!InterventionTypeRenderForSponsorship(form.values[\"ProgrammeType\"]) ?\r\n \r\n {InterventionTypeChange(form.values[\"ProgrammeType\"], form)}\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ConsultantID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n */}\r\n {/* */}\r\n {/* {*/}\r\n {/* form.setLookupSelection(\"WorkplaceID\", value)*/}\r\n {/* }} autoFetchData={false} selection={props.selection} />*/}\r\n {/* */}\r\n {/*
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"FacilitatorID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n props.facilitatorRedirect(form.values[\"FacilitatorID\"])}\r\n >\r\n GO TO FACILITATOR\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ModeratorID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"AssessorID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../widgets/Toolbar';\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport { AddEditTrancheForm } from './AddEditTrancheForm';\r\n\r\n\r\n\r\nconst TrancheRef = React.createRef();\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass AddEditTranche extends Component {\r\n\r\n state = {\r\n /*Deciding on unique identifier for existing tranche details title*/\r\n TrancheDetails: {\r\n Description: \"\",\r\n Code: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n showTable: true,\r\n TrancheID: this.props.location.state.TrancheID,\r\n hideFields: this.props.location.state.hideFields,\r\n showAbledFields: null,\r\n showDisabledFields: null\r\n };\r\n\r\n toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'Submit', tooltip: 'Submit', icon: 'SaveIcon' },\r\n { id: 'download', label: 'Download SLA Project to Implement Annexure', tooltip: 'Download SLA Project to Implement Annexure', icon: 'DownloadIcon' },\r\n /*{ id: 'resubmit', label: 'Re-Submit', tooltip: 'Re-Submit', disabled: this.state.hideFields },*/\r\n /*{ id: 'tranchedetail', label: 'Tranche Details', tooltip: 'Edit Tranche Details', disabled: this.state.hideFields },*/\r\n { id: 'trancheprojectcost', label: 'Project Cost', tooltip: 'Edit Project Cost', disabled: this.state.hideFields },\r\n { id: 'trancheelectiveus', label: 'Elective Unit Standards', tooltip: 'Link Elective Unit Standards', disabled: this.state.hideFields },\r\n { id: 'learners', label: 'Learner', tooltip: 'Link Learner/s', disabled: this.state.hideFields },\r\n { id: 'eaptarget', label: 'EAP Target', tooltip: 'Link EAP Target/s', disabled: this.state.hideFields },\r\n { id: 'crm', label: 'CRM', tooltip: 'CRM', disabled: this.state.hideFields },\r\n { id: 'tracking', label: 'Tracking', tooltip: 'Tracking', disabled: this.state.hideFields }\r\n ]\r\n }\r\n\r\n ]\r\n };\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n if (!utils.isNull(this.state.ClientID) && this.state.ClientID != newValues.ClientID) {\r\n newValues.ClientSDLNumber = null;\r\n }\r\n let showAbled = this.state.showAbledFields;\r\n let showDisabled = this.state.showDisabledFields;\r\n if (!utils.isNull(newValues.TrancheSetupDisabilityID)) {\r\n if (newValues.TrancheSetupDisabilityID.Id == \"1\") {\r\n showAbled = true;\r\n showDisabled = false;\r\n newValues.NumberOfLearnersDisabled = '0'\r\n newValues.NumberOfLearnersRemainingDisabled = null\r\n if (newValues.NumberOfLearners === '0') {\r\n newValues.NumberOfLearners = null\r\n }\r\n } else if (newValues.TrancheSetupDisabilityID.Id == \"2\") {\r\n showAbled = false;\r\n showDisabled = true;\r\n newValues.NumberOfLearners = '0'\r\n newValues.NumberOfLearnersRemaining = null\r\n if (newValues.NumberOfLearnersDisabled === '0') {\r\n newValues.NumberOfLearnersDisabled = null\r\n }\r\n }\r\n else if (newValues.TrancheSetupDisabilityID.Id == \"3\") {\r\n showAbled = true;\r\n showDisabled = true;\r\n if (newValues.NumberOfLearners === '0') {\r\n newValues.NumberOfLearners = null\r\n }\r\n if (newValues.NumberOfLearnersDisabled === '0') {\r\n newValues.NumberOfLearnersDisabled = null\r\n }\r\n }\r\n }\r\n this.setState({\r\n model: newValues,\r\n ClientID: newValues.ClientID,\r\n TrancheSetupDisabilityID: newValues.TrancheSetupDisabilityID,\r\n showAbledFields: showAbled,\r\n showDisabledFields: showDisabled\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"download\" === buttonId) {\r\n this.DownloadSLAProjectAnnexure();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"resubmit\" === buttonId) {\r\n this.resubmit();\r\n } else if (\"tranchedetail\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/TrancheDetails',\r\n state: {\r\n GrantID: this.state.TrancheID\r\n }\r\n })\r\n }\r\n else if (\"trancheprojectcost\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/TrancheProjectCost',\r\n state: {\r\n selection: this.state.TrancheID,\r\n ProjectNumber: this.state.model.ProjectNumber\r\n }\r\n })\r\n }\r\n else if (\"trancheelectiveus\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/TrancheElectiveUS',\r\n state: {\r\n selection: this.state.TrancheID,\r\n ProjectNumber: this.state.model.ProjectNumber\r\n }\r\n })\r\n }\r\n else if (\"learners\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/TrancheLearners',\r\n state: {\r\n selection: this.state.TrancheID,\r\n ProjectNumber: this.state.model.ProjectNumber\r\n }\r\n })\r\n }\r\n else if (\"eaptarget\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/TrancheEAPTarget',\r\n state: {\r\n selection: this.state.TrancheID,\r\n ProjectNumber: this.state.model.ProjectNumber\r\n }\r\n })\r\n }\r\n else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/TrancheCRM',\r\n state: {\r\n TrancheID: this.state.TrancheID,\r\n ProjectNumber: this.state.model.ProjectNumber\r\n }\r\n })\r\n }\r\n else if (\"tracking\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/TrancheTracking',\r\n state: {\r\n TrancheID: this.state.TrancheID,\r\n ProjectNumber: this.state.model.ProjectNumber\r\n }\r\n })\r\n }\r\n }\r\n\r\n redirectToClient(EmployerID) {\r\n this.props.history.push({\r\n pathname: '/employer',\r\n state: {\r\n selection: EmployerID,\r\n viewOnly: false\r\n }\r\n })\r\n }\r\n\r\n redirectToFacilitator(Facilitator) {\r\n this.props.history.push({\r\n pathname: '/facilitator',\r\n state: {\r\n selection: Facilitator.Id,\r\n viewOnly: false\r\n }\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n showTable: true,\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n TrancheID: response.EntityId\r\n })\r\n });\r\n /*toolbarRef.current.setButtonDisabled(\"resubmit\", false);*/\r\n toolbarRef.current.setButtonDisabled(\"download\", false);\r\n toolbarRef.current.setButtonDisabled(\"tranchedetail\", false);\r\n toolbarRef.current.setButtonDisabled(\"trancheprojectcost\", false);\r\n toolbarRef.current.setButtonDisabled(\"trancheelectiveus\", false);\r\n toolbarRef.current.setButtonDisabled(\"learners\", false);\r\n }\r\n else {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = TrancheRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n\r\n utils.invokeUrl(\"api/sims/GrantSetup/grantSetupDetailsSubmit\", (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n resubmit() {\r\n let formValue = TrancheRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let input = JSON.stringify(formValue);\r\n let trancheData = {};\r\n trancheData.data = input;\r\n\r\n utils.invokeUrl(\"api/sims/GrantSetup/GrantSetupDetailsReSubmit\", (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(trancheData)\r\n }\r\n );\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/GrantSetupSearch'\r\n });\r\n }\r\n\r\n DownloadSLAProjectAnnexure = () => {\r\n let url = \"api/sims/GrantSetup/DownloadSLAProjectAnnexure?ID=\" + this.state.TrancheID;\r\n utils.invokeUrl(url, (response) => {\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Project Setup Details\"}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n
\r\n
\r\n {this.state.showTable === true && (\r\n this.handleFormValueChange(values)}\r\n redirect={(EmployerID) => this.redirectToClient(EmployerID)}\r\n facilitatorRedirect={(Facilitator) => this.redirectToFacilitator(Facilitator)}\r\n data={this.state.model}\r\n showAbledFields={this.state.showAbledFields}\r\n showDisabledFields={this.state.showDisabledFields}\r\n />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AddEditTranche);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nexport const LinkTrancheForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n function getTrancheType(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Progress\") {\r\n return false\r\n }\r\n else {\r\n return true\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport { LinkTrancheForm } from \"./LinkTrancheForm\";\r\nimport FormDialog from \"../../FormDialog\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\nconst updateFormRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'TrancheType', numeric: false, disablePadding: false, label: 'Tranche Type' },\r\n { id: 'TranchePercentage', numeric: false, disablePadding: false, label: 'Tranche Percentage' },\r\n { id: 'DueDate', numeric: false, disablePadding: false, label: 'Due Date' },\r\n { id: 'TrancheAmount', numeric: false, disablePadding: false, label: 'Tranche Amount' }\r\n];\r\n\r\n\r\nclass TrancheDetails extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n keyUpSwitch: false,\r\n showTable: true,\r\n linkDialogOpen: false,\r\n updateDialogOpen: false,\r\n TrancheHistoryID: this.props.location.state.GrantID,\r\n listedTranches: 0,\r\n propmtOpen: false,\r\n message: null,\r\n messageStyle: null,\r\n totalAmount: 0,\r\n selectedTrancheRec: null,\r\n searchParameters: [{ Name: \"TrancheSetupID\", Value: this.props.location.state.GrantID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'close', label: 'close', tooltip: 'Go back to setup', icon: 'CloseIcon'}\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'linktranche', label: 'Link Tranche', icon: 'LinkIcon', tooltip: 'Link Tranche'},\r\n {id: 'edittranche', label: 'Edit Tranche', icon: 'EditIcon', tooltip: 'Edit Tranche Record', disabled: utils.isNull(this.state.selectedTrancheRec)},\r\n {id: 'delete', label: 'Remove Tranche', icon: 'DeleteIcon', tooltip: 'Remove Tranche', disabled: utils.isNull(this.state.selectedTrancheRec)}\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"linktranche\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, removeMessage: \"\" })\r\n } else if (\"edittranche\" === buttonId) {\r\n this.setState({ updateDialogOpen: true, removeMessage: \"\" })\r\n } \r\n else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: this.state.TrancheHistoryID,\r\n hideFields: false\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedTrancheRec: selection[0].Id })\r\n } else {\r\n this.setState({ selectedTrancheRec: null })\r\n }\r\n toolbarRef.current.setButtonDisabled(\"edittranche\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"delete\", selection === null || selection.length === 0);\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedTrancheRec: null, updateDialogOpen: false\r\n }, () => {\r\n this.setState({ showTable: true })\r\n this.GetTotalAmounts();\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false,\r\n updateDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n \r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n \r\n }\r\n\r\n componentDidMount() {\r\n this.GetTotalAmounts();\r\n }\r\n\r\n GetTotalAmounts() {\r\n let url = \"api/sims/TrancheDetail/TrancheSetupGetTotalValues?TrancheID=\" + this.state.TrancheHistoryID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.currentAmount != null && response.currentTotalAmount != null) {\r\n if (response.currentAmount == response.currentTotalAmount) {\r\n this.setState({ listedTranches: response.currentAmount, totalAmount: response.currentTotalAmount, messageStyle: null, message: null})\r\n } else {\r\n this.setState({\r\n listedTranches: response.currentAmount, totalAmount: response.currentTotalAmount, messageStyle: \"WARNING\",\r\n message: \"Please note that the total amount from setup details tab does not match the amount for listed tranches below, and therefore any associations to learners will not be successful.\"\r\n })\r\n }\r\n }\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Grant Setup > Tranche Details\"}\r\n

\r\n {this.state.showTable === true && (\r\n { this.handleSelection(selection) }}\r\n >\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={'Link Tranche Record'}\r\n linkName={\"Tranches\"} saveUrl={\"api/sims/TrancheDetail/TrancheSetupPeriodInsert\"}\r\n usePost={true} entityId={this.props.location.state.GrantID}\r\n >\r\n\r\n \r\n \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={'Update Tranche Record'}\r\n linkName={\"Tranches\"} saveUrl={\"api/sims/TrancheDetail/TrancheSetupPeriodUpdate\"}\r\n usePost={true} entityId={this.props.location.state.GrantID}\r\n >\r\n\r\n \r\n \r\n \r\n )}\r\n \r\n
{'Total amount for listed tranches: R' + this.state.listedTranches}
\r\n
{'Total amount from setup details: R' + this.state.totalAmount}
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(TrancheDetails));\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./UnitStandardSetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport UnitStandardSetupSearchForm from './UnitStandardSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'SAQA UnitStandard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'SAQA UnitStandard Title' }\r\n\r\n];\r\n\r\nclass GrantSetupElectiveUSSearchModule extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n let model = {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n id: this.props.programmeId\r\n }\r\n\r\n this.searchParameters =\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"SAQAUnitStandardID\", Value: \"\" },\r\n { Name: \"SAQAUnitStandardTitle\", Value: \"\" }\r\n ]\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n if (!utils.isNull(props.personId)) {\r\n model.PersonID = props.personId;\r\n this.searchParameters.push({ Name: \"PersonID\", Value: props.personId })\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Unit Standard\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(GrantSetupElectiveUSSearchModule));\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport EnhancedTable from '../../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../../widgets/Toolbar';\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport Prompt from '../../../widgets/Prompt';\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport GrantSetupElectiveUSSearchModule from \"../../program/GrantSetupElectiveUSSearchModule\";\r\nimport LinkDialog from \"../../LinkDialog\";\r\n\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: false, label: 'SAQA UnitStandard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: false, label: \"SAQA UnitStandard Title\" },\r\n { id: 'RegistrationStartDate', numeric: false, disablePadding: false, label: 'Registration Start Date' },\r\n { id: 'RegistrationEndDate', numeric: false, disablePadding: false, label: 'Registration End Date' },\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass GrantSetupElectiveUSSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n showTable: true,\r\n selectedUnitStandard: null,\r\n selectedUnitStandardTitle: null,\r\n linkDialogOpen: false,\r\n searchParameters: [{ Name: \"TrancheSetupID\", Value: this.props.location.state.selection }],\r\n propmtOpen: false,\r\n promptTitle: \"Remove Elective Unit Standard from Project Setup\",\r\n promptContent: \"Are you sure you want to remove this elective unit standard from the project setup?\",\r\n removeMessage: \"\",\r\n removeMessageStyle: \"\",\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"link\", label: '', icon: 'LinkIcon', tooltip: \"Link elective unit standard to project setup\" },\r\n {\r\n id: 'remove', label: '', icon: 'DeleteIcon', tooltip: 'Remove elective unit standard from project setup',\r\n disabled: utils.isNull(this.state.selectedUnitStandard)\r\n }]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: { TrancheID: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, removeMessage: \"\" })\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false\r\n }, () => { this.setState({ showTable: true }) });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUnitStandard: selection[0].Id, removeMessage: \"\", selectedUnitStandardTitle: selection[0].SkillsProgrammeTitle });\r\n } else {\r\n this.setState({ selectedUnitStandard: null, removeMessage: \"\", selectedUnitStandardTitle: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n removeSkillsProgramme(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&tranchesetupId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Project Setup Details > Elective Unit Standards \" + (this.props.location.state.ProjectNumber !== null ? \"> \" + this.props.location.state.ProjectNumber : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Link Elective Unit Standards to Project Setup > ${this.props.location.state.ProjectNumber}`}\r\n linkName={\"unitstandards\"} postUrl={\"api/sims/electiveunitstandard/LinkElectiveUnitStandards\"} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n \r\n \r\n\r\n { this.removeSkillsProgramme(\"api/sims/electiveunitstandard/RemoveProviderSkillsProgramme\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(GrantSetupElectiveUSSearch);\r\n","import React from 'react';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const TrancheSetupProjectCostForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n if (!utils.isNull(props.valueChangeHandler)) {\r\n props.valueChangeHandler(values);\r\n }\r\n }\r\n }\r\n\r\n function manageReqFlagV2() {\r\n if (!props.showEnterpriseDevelopmentAmount) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n return (\r\n { handleFormValueChange(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {props.showEnterpriseDevelopmentAmount ?\r\n :\r\n null\r\n }\r\n
\r\n
\r\n
\r\n }\r\n
\r\n\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../widgets/Toolbar';\r\nimport \"../../../Grid.css\";\r\nimport \"../../../Form.css\";\r\nimport \"../../../App.css\";\r\nimport \"./TrancheSetupProjectCost.css\";\r\nimport { TrancheSetupProjectCostForm } from './TrancheSetupProjectCostForm';\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport { ViewContainer } from \"../../../View\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst ref = React.createRef();\r\n\r\nclass TrancheSetupProjectCost extends Component {\r\n state = {\r\n message: \"\",\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit }\r\n ]\r\n }\r\n ]\r\n },\r\n showForm: true,\r\n showEnterpriseDevelopmentAmount: false\r\n }\r\n\r\n componentDidMount() {\r\n this.getTrancheSetupProgrammeType();\r\n }\r\n\r\n getTrancheSetupProgrammeType() {\r\n let url = \"api/sims/projectcost/GetTrancheSetupDetails?id=\" + this.props.location.state.selection;\r\n utils.invokeUrl(url, (response) => {\r\n if (!utils.isNull(response.ProgrammeType) && (response.ProgrammeType.Id === 14 || response.ProgrammeType.Id === 15)) { //Enterprise Development, Supplier Development\r\n this.setState({ showEnterpriseDevelopmentAmount: true });\r\n }\r\n else {\r\n this.setState({\r\n ProgrammeTypeID: response.ProgrammeType,\r\n showTable: true\r\n })\r\n }\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ TrancheSetupProjectCost: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: { TrancheID: this.props.location.state.selection }\r\n });\r\n }\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Project Costs updated successfully\", messageStyle: \"SUCCESS\", showForm: false }, () => {\r\n this.setState({ showForm: true })\r\n });\r\n }\r\n\r\n save() {\r\n let formValue = ref.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n\r\n utils.invokeUrl(\"api/sims/projectcost/UpdateTrancheSetupProjectCosts\", this.successCallback, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Project Setup > Project Costs\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.ProjectNumber : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={this.state.toolbarConfig} />\r\n
\r\n
\r\n {this.state.showForm &&\r\n this.handleFormValueChange(values)}\r\n editPermission={this.props.menuPermissionItem.Edit}\r\n showEnterpriseDevelopmentAmount={this.state.showEnterpriseDevelopmentAmount}\r\n />\r\n }\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(TrancheSetupProjectCost));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport GrantSetupSearch from '../../grants/grantsetup/GrantSetupSearch';\r\n\r\nexport default function LearnerSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n {props.mode !== \"lookup\" &&
\r\n \r\n {\r\n form.setLookupSelection(\"ProjectID\", value);\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport \"./Learner.css\";\r\nimport LearnerSearchForm from './LearnerSearchForm';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: false, label: 'First Name' },\r\n { id: 'MiddleName', numeric: false, disablePadding: false, label: 'Middle Name' },\r\n { id: 'Surname', numeric: false, disablePadding: false, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: false, label: 'ID Number' },\r\n { id: 'StartDate', numeric: false, disablePadding: false, label: 'Start Date' },\r\n { id: 'EndDate', numeric: false, disablePadding: false, label: 'End Date' },\r\n { id: 'Race', numeric: false, disablePadding: false, label: 'Race' },\r\n { id: 'Gender', numeric: false, disablePadding: false, label: 'Gender' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnerSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n let model = !utils.isNull(this.props.programmeId) ?\r\n {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n id: this.props.programmeId\r\n }\r\n :\r\n {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\"\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n selection: [],\r\n keyUpSwitch: false,\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Capture New Learner', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Update Current Learner', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit }\r\n\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n this.searchParameters = this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"ProjectID\", Value: null },\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n ]\r\n :\r\n [\r\n { Name: \"ProjectID\", Value: null },\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n ]\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n mode={this.props.mode}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnerSearch));\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport EnhancedTable from '../../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../../widgets/Toolbar';\r\nimport LinkDialog from \"../../LinkDialog\";\r\nimport LearnerSearch from '../../../etqa/learner/LearnerSearch';\r\nimport LearnerSearchSponsorshipType from '../controls/LearnerSearch';\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport Prompt from '../../../widgets/Prompt';\r\n\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass GrantSetupLearnerSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n TrancheSetupID: this.props.location.state.selection\r\n },\r\n showTable: false,\r\n linkDialogOpen: false,\r\n LearnerID: null,\r\n updateDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n selectedLearner: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Learner From Project Setup\",\r\n promptContent: \"Are you sure you want to unlink this learner from the project setup?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"TrancheSetupID\", Value: this.props.location.state.selection }],\r\n ProgrammeTypeID: { Id: 0, Description: \"\" },\r\n promptOpen: false,\r\n learnerHeadCells: [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'MiddleName', numeric: false, disablePadding: true, label: 'Middle Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'IDNo' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Programme Status' }\r\n ],\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n /*{ id: 'view', label: '', tooltip: 'View the learner', disabled: utils.isNull(this.state.selectedLearner), icon: 'UpdateIcon' },*/\r\n { id: 'link', label: '', tooltip: 'Link Learner/s to the Project Setup', icon: 'LinkIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'learner', label: 'GO TO LEARNER', tooltip: 'go to learner', visible: this.props.onMenuSpecificPermissionItem('/learner').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getTrancheSetupProgrammeType();\r\n }\r\n\r\n getTrancheSetupProgrammeType = () => {\r\n let url = \"api/sims/GrantSetupLearner/GetTrancheSetupDetails?id=\" + this.props.location.state.selection;\r\n utils.invokeUrl(url, (response) => {\r\n let learnerHeadCellsColumns = [...this.state.learnerHeadCells];\r\n if (!utils.isNull(response.ProgrammeType) && response.ProgrammeType.Id === 13) {\r\n learnerHeadCellsColumns = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'MiddleName', numeric: false, disablePadding: true, label: 'Middle Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'IDNo' },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date' },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date' },\r\n { id: 'Race', numeric: false, disablePadding: true, label: 'Race' },\r\n { id: 'Gender', numeric: false, disablePadding: true, label: 'Gender' }\r\n ];\r\n }\r\n\r\n let toolbarConfig = this.state.toolbarConfig;\r\n\r\n if (!utils.isNull(response.ProgrammeType) && (response.ProgrammeType.Id === 12 || response.ProgrammeType.Id === 13\r\n || response.ProgrammeType.Id === 14 || response.ProgrammeType.Id === 15)) {\r\n toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n /*{ id: 'view', label: '', tooltip: 'View the learner', disabled: utils.isNull(this.state.selectedLearner), icon: 'UpdateIcon' },*/\r\n { id: 'link', label: '', tooltip: 'Link Learner/s to the Project Setup', icon: 'LinkIcon' },\r\n { id: 'removelearner', label: '', tooltip: 'Remove Learner', icon: 'DeleteIcon', visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'learner', label: 'GO TO LEARNER', tooltip: 'go to learner', visible: this.props.onMenuSpecificPermissionItem('/learner').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n this.setState({\r\n ProgrammeTypeID: response.ProgrammeType,\r\n learnerHeadCells: learnerHeadCellsColumns,\r\n toolbarConfig: toolbarConfig,\r\n showTable: true\r\n });\r\n },\r\n (e) => {\r\n console.log(e);\r\n },\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: { TrancheID: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"removelearner\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n //else if (\"view\" === buttonId) {\r\n // this.setState({ updateDialogOpen: true, message: \"\" })\r\n //}\r\n else if (\"learner\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.state.LearnerID\r\n }\r\n });\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n\r\n if (response.MessageType === \"WARNING\") {\r\n let errResult = JSON.parse(response.Message);\r\n let message = \"\";\r\n errResult.map((item, index) => (\r\n message += item.Item1 + ' : ' + item.Item2 + '\\n'\r\n ))\r\n this.setState({ message: message, messageStyle: response.MessageType });\r\n }\r\n else {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n }\r\n\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n /*searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),*/\r\n linkDialogOpen: false, selectedLearner: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n linkHandler(selection) {\r\n let data = {};\r\n data.ProgrammeId = this.props.location.state.selection;\r\n data.Learners = selection;\r\n let url = \"api/sims/GrantSetupLearner/LinkTrancheSetupLearner\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n console.log(selection);\r\n this.setState({\r\n selectedLearner: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\",\r\n LearnerID: selection[0].LearnerID\r\n });\r\n } else {\r\n this.setState({\r\n selectedLearner: null\r\n });\r\n }\r\n\r\n toolbarRef.current.setButtonDisabled(\"removelearner\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"learner\", selection === null || selection.length === 0);\r\n }\r\n\r\n deleteRecord = () => {\r\n this.setState({ promptOpen: false });\r\n let url = `api/sims/GrantSetupLearner/RemoveTrancheSetupLearner?id=${this.state.selectedLearner}&TrancheSetupID=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(url, (data) => {\r\n toolbarRef.current.setButtonDisabled(\"removelearner\", true);\r\n this.setState({ promptOpen: false, showTable: false }, () => { this.setState({ showTable: true }) });\r\n }, null);\r\n\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Project Setup > Learners\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.ProjectNumber : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.state.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Learner to Project Setup: ${this.props.location.state.ProjectNumber}`}\r\n linkName={\"Learners\"} linkHandler={(selection) => this.linkHandler(selection)} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n {this.state.ProgrammeTypeID.Id !== 13 ? :\r\n \r\n }\r\n\r\n \r\n\r\n \r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(withMenuPermission(GrantSetupLearnerSearch))\r\n);\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport \"../../../View.css\";\r\nimport \"../../../Grid.css\";\r\nimport \"../../../Form.css\";\r\nimport \"../../../App.css\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\nconst utils = new ViewUtils();\r\nexport default function LearnerCRMBulkUploadDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n\r\n const handleClose = (save, cancel) => {\r\n setOpen(false);\r\n props.closeHandler(save, cancel)\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(false, true);\r\n };\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n Outstanding documents to upload\r\n

\r\n\r\n\r\n
\r\n
    \r\n \r\n {props.missingDocTypesArray.map((lookupitem, index) => (\r\n
  • {lookupitem.Description}
  • \r\n ))}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../../widgets/Toolbar';\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport Comments from \"../../crm/Comments\";\r\nimport Documents from \"../../crm/Documents\";\r\nimport Emails from \"../../crm/Emails\";\r\nimport CommentsDialog from \"../../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../../crm/EmailDialog\";\r\nimport CardLayout from \"../../../widgets/Card\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport MissingDocumentsDialog from \"./GrantSetupCRMBulkUploadDialog\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"TrancheSetup\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/GrantSetupCRM/GetCRMComments\",\r\n documents: \"api/sims/GrantSetupCRM/GetCRMDocuments\",\r\n emails: \"api/sims/GrantSetupCRM/GetCRMEmail\",\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/GrantSetupCRM/AddCRMComment\",\r\n documents: \"api/sims/GrantSetupCRM/AddCRMDocument\",\r\n emails: \"api/sims/GrantSetupCRM/AddCRMEmail\",\r\n },\r\n\r\n docTypeUrls: {\r\n documents: \"api/sims/grantsetupcrm/GetLookupListTrancheSetupDocumentType\"\r\n }\r\n}\r\n\r\nclass GrantSetupCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.SetCommunicationType)) ? this.props.location.state.SetCommunicationType : \"1\",\r\n displayMissingDocTypes: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.displayMissingDocTypes)) ? this.props.location.state.displayMissingDocTypes : null,\r\n missingDocTypesArray: [],\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n missingDocDailogOpen: false,\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {},\r\n showTableDocuments: true\r\n }\r\n\r\n componentDidMount() {\r\n if (this.state.displayMissingDocTypes) {\r\n this.getMissingDocTypes();\r\n }\r\n }\r\n getMissingDocTypes() {\r\n let url = \"api/sims/grantsetupCRM/GetCRMBulkDocumentsNotUploaded?ID=\" + this.props.location.state.TrancheID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n missingDocTypesArray: response,\r\n displayMissingDocTypes: false,\r\n dialogues: { ...this.state.dialogues, missingDocDailogOpen: response.length > 0 }\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: { TrancheID: this.props.location.state.TrancheID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n else if (\"bulkAdd\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/TrancheCRMBulkUpload',\r\n state: {\r\n TrancheID: this.props.location.state.TrancheID,\r\n ProjectNumber: this.props.location.state.ProjectNumber\r\n }\r\n });\r\n }\r\n else if (\"bulkDownload\" === buttonId) {\r\n utils.invokeUrl(\"api/sims/grantsetupcrm/DownloadCRMBulkDocuments?ID=\" + this.props.location.state.TrancheID, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/grantsetupcrm/getCRMDocument?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/grantsetupcrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n }\r\n\r\n SetCommunicationType(values) {\r\n\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n\r\n if (!utils.isNull(values) && !utils.isNull(values.DocumentTypeID)) {\r\n this.setState({ DocumentTypeID: values.DocumentTypeID });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {`Project Setup > CRM > ${this.props.location.state.ProjectNumber}`}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n {this.state.CommunicationType === \"2\" && (\r\n \r\n \r\n {/**/}\r\n \r\n )}\r\n {this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
*/}\r\n {/* {*/}\r\n {/* // Please leave it like this, i had to make sure state are updated*/}\r\n {/* //let subject = document.getElementById('emailSubject').value*/}\r\n {/* //this.setState({ emailAddress: email, emailSubject: subject }, () => {*/}\r\n {/* // this.setState({ emailAddress: email, emailSubject: subject })*/}\r\n {/* //})*/}\r\n {/* this.setState({ showTableDocuments: false }, () => {*/}\r\n {/* this.setState({ showTableDocuments: true });*/}\r\n {/* });*/}\r\n {/* }}*/}\r\n {/* aria-label=\"search\">*/}\r\n {/* */}\r\n {/* */}\r\n {/*\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({ emailAddress: email, emailSubject: subject }, () => {\r\n this.setState({ emailAddress: email, emailSubject: subject })\r\n })\r\n\r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Project Setup Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Project Setup Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'bulkAdd', label: '', tooltip: 'Upload Bulk Document', icon: 'BulkUploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'bulkDownload', label: '', tooltip: 'Download All Documents', icon: 'DownloadIcon', visible: this.props.menuPermissionItem.View }\r\n ]\r\n }\r\n ]\r\n }} />\r\n {this.state.showTableDocuments && ( this.FileDownload(rowid, headCell, \"Document\")}\r\n documentsDataUrl={config.dataUrls.documents}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.TrancheID}\r\n showLearnerDocumentType={true}\r\n DocumentTypeID={this.state.DocumentTypeID} />)}\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Project Setup Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.TrancheID}\r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.TrancheID} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.TrancheID}\r\n showLearnerDocumentType={true}\r\n getLearnerDocumentType={config.docTypeUrls.documents}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.TrancheID}\r\n showMultilineToAddress={true}\r\n />\r\n this.postUploadHandler(save, cancel)}\r\n missingDocTypesArray={this.state.missingDocTypesArray}\r\n />\r\n
\r\n }\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(GrantSetupCRM));\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../../widgets/Toolbar';\r\nimport CardLayout from \"../../../widgets/Card\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { withStyles } from '@material-ui/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\n\r\nconst pdfVersion = \"2.6.347\"\r\nconst pdfWorkerUrl = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfVersion}/pdf.worker.js`\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nconst styles = theme => ({\r\n button: {\r\n margin: theme.spacing(1),\r\n },\r\n input: {\r\n display: 'none',\r\n },\r\n errorMessageDisplay: {\r\n color: 'red'\r\n }\r\n});\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n\r\n postUrls: {\r\n documents: \"api/sims/GrantSetupCRM/AddCRMDocumentBulkUpload\"\r\n },\r\n\r\n docTypeUrls: {\r\n documents: \"api/sims/grantsetupcrm/GetLookupListTrancheSetupDocumentType\"\r\n }\r\n}\r\n\r\nclass GrantSetupCRMBulkUpload extends Component {\r\n\r\n state = {\r\n fileInfo: null,\r\n numPages: 0,\r\n lookupArray: null,\r\n documentPageInfo: [],\r\n message: null,\r\n messageStyle: null,\r\n savedSuccessfully: false\r\n }\r\n\r\n componentDidMount() {\r\n this.getlookup();\r\n }\r\n\r\n getlookup() {\r\n let url = config.docTypeUrls.documents;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ lookupArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/TrancheCRM',\r\n state: {\r\n TrancheID: this.props.location.state.TrancheID,\r\n ProjectNumber: this.props.location.state.ProjectNumber,\r\n SetCommunicationType: \"2\",\r\n displayMissingDocTypes: this.state.savedSuccessfully\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleChange = (event) => {\r\n if (event.target.files && event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: file.name,\r\n type: file.type,\r\n size: Math.round(file.size / 1000) + ' kB',\r\n base64: reader.result\r\n }\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n }\r\n }\r\n\r\n onDocumentLoadSuccess = ({ numPages }) => {\r\n this.setState({ numPages: numPages });\r\n }\r\n\r\n handleArrayChange = (event, pageNumber) => {\r\n const values = [...this.state.documentPageInfo];\r\n\r\n const itemIndex = values.findIndex((item) => {\r\n return item.PageNumber === pageNumber;\r\n });\r\n\r\n const dropDownItem = this.state.lookupArray.find((item) => {\r\n return item.Id === event.target.value;\r\n });\r\n\r\n let pageInfo;\r\n if (itemIndex > -1) {\r\n pageInfo = { ...values[itemIndex] };\r\n pageInfo.DocumentTypeID = { Id: event.target.value, Description: dropDownItem.Description };\r\n values.splice(itemIndex, 1, pageInfo);\r\n }\r\n else {\r\n pageInfo = {\r\n PageNumber: pageNumber,\r\n DocumentTypeID: { Id: event.target.value, Description: dropDownItem.Description }\r\n };\r\n values.push(pageInfo);\r\n }\r\n\r\n this.setState({ documentPageInfo: values });\r\n }\r\n\r\n getArrayValue = (pageNumber) => {\r\n const item = this.state.documentPageInfo.find((item) => {\r\n return item.PageNumber === pageNumber;\r\n });\r\n\r\n if (item) {\r\n return item.DocumentTypeID.Id;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n uploadDocument = () => {\r\n\r\n let saveObject = {\r\n EntityID: this.props.location.state.TrancheID,\r\n FileInfo: this.state.fileInfo,\r\n DocumentPageInfo: this.state.documentPageInfo\r\n }\r\n\r\n let url = config.postUrls.documents;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(saveObject)\r\n }\r\n )\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({ savedSuccessfully: true }, () => { this.handleToolbarButtonClick('close'); });\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n let pages = null;\r\n if (this.state.numPages > 0) {\r\n pages = [];\r\n for (let i = 0; i < this.state.numPages; i++) {\r\n pages.push(\r\n
\r\n \r\n

{'Page ' + (i + 1)} of {this.state.numPages}

\r\n

Document Type:

\r\n this.handleArrayChange(values, i + 1)}>\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n\r\n {lookupitem.Description}\r\n\r\n ))}\r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n

\r\n {`Project Setup > CRM > ${this.props.location.state.ProjectNumber} > Bulk Document Upload`}\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Project Setup CRM', icon: 'CloseIcon' },\r\n ]\r\n }\r\n ]\r\n }} />\r\n\r\n \r\n \r\n {\r\n \r\n {this.state.fileInfo ? this.state.fileInfo.name : null}\r\n \r\n }\r\n {\r\n this.state.fileInfo ?\r\n
\r\n \r\n {pages}\r\n \r\n  \r\n \r\n
\r\n : null\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(withStyles(styles)(GrantSetupCRMBulkUpload)));\r\n","import React from 'react';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\n\r\nconst TrancheSetupEAPTargetDetailsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default TrancheSetupEAPTargetDetailsForm;","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport EAPTargetDetailsForm from './TrancheSetupEAPTargetDetailsForm';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function TrancheSetupEAPTargetAddDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const add = () => {\r\n let formValue = formRef.current.getValue();\r\n\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n formValue.TrancheSetupID = props.TrancheSetupID;\r\n const url = `api/sims/eaptarget/addeaptarget`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport EditForm from './TrancheSetupEAPTargetDetailsForm';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function TrancheSetupEAPTargetEditDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const update = () => {\r\n let formValue = formRef.current.getValue();\r\n //formValue.Id = props.Id;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const url = `api/sims/eaptarget/updateEAPTarget`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import { withRouter } from 'react-router-dom';\r\nimport React, { Component } from \"react\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport { ViewContainer } from \"../../../View.jsx\";\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport EnhancedToolbar from '../../../widgets/Toolbar';\r\nimport EnhancedTable from '../../../widgets/ResponsiveTable';\r\nimport AddDialog from './TrancheSetupEAPTargetAddDialog';\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport EditDialog from './TrancheSetupEAPTargetEditDialog';\r\nimport Prompt from '../../../widgets/Prompt';\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Equity', numeric: false, disablePadding: true, label: 'Race' },\r\n { id: 'Gender', numeric: false, disablePadding: true, label: 'Gender' },\r\n { id: 'Number', numeric: false, disablePadding: true, label: 'Number' }\r\n];\r\n\r\nclass TrancheSetupEAPTarget extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n Id: this.props.location.state.selection\r\n },\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: [{ Name: \"TrancheSetupID\", Value: this.props.location.state.selection }],\r\n Letterhead: null,\r\n AuthorisedSignatory: null,\r\n Reasons: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"Remove EAP Target\",\r\n promptContent: \"Are you sure you want to remove this EAP Target?\"\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add EAP Target', disabled: utils.isNull(this.state.FinancialYearID), icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit EAP Target', disabled: utils.isNull(this.state.selectedId), icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: 'remove', label: '', tooltip: 'Remove EAP Target', disabled: utils.isNull(this.state.selectedId), icon: 'DeleteIcon', visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.setState({ editDialogOpen: true });\r\n }\r\n else if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: \"/AddEditTranche\",\r\n state: { TrancheID: this.props.location.state.selection }\r\n })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n } else {\r\n // this.setState({ editDialogOpen: true });\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false });\r\n } else {\r\n this.setState({ selectedId: null, clearSelectedRow: false });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: \"success\",\r\n clearSelectedRow: true\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: \"warning\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n clearSelectedRow: true\r\n })\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n\r\n remove(url) {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedId}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null })\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedId: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(),\r\n clearSelectedRow: true\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Project Setup > EAP Targets \" + (this.props.location.state !== null ? \" > \" + this.props.location.state.ProjectNumber : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/eaptarget/GetSearch\"\r\n searchParameters={this.state.searchParameters}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n TrancheSetupID={this.props.location.state.selection}\r\n />\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n />\r\n\r\n { this.remove(\"api/sims/eaptarget/removeEAPTarget\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(TrancheSetupEAPTarget));","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport EnhancedToolbar from \"../../../widgets/Toolbar\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\n\r\nclass ProcessingNav extends Component {\r\n\r\n constructor(props) { \r\n super(props) \r\n this.state = {\r\n IDs: null,\r\n keyUpSwitch: false,\r\n messsageAlert: null,\r\n messageStyle: null\r\n };\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'generateClaim', label: 'Generate Claim', tooltip: 'Generate Claim' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'approveClaim', label: 'Approve Claim', tooltip: 'Approve Claim' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'grantClaimFormReversal', label: 'Grant Claim Form Reversal', tooltip: 'Grant Claim Form Reversal' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'downloadClaim', label: 'Download Claim', tooltip: 'Download Claim' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'generateBatch', label: 'Generate Batch', tooltip: 'Generate Batch' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'downloadBatch', label: 'Download Batch', tooltip: 'Download Batch' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'axProcessor', label: 'AX-Processor', tooltip: 'AX-Processor' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'grantReversals', label: 'Grant Reversals', tooltip: 'Grant Reversals' },\r\n ]\r\n },\r\n ]\r\n } \r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n console.log(buttonId)\r\n if (\"generateClaim\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/GenerateClaim'\r\n })\r\n } else if (\"approveClaim\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/ApproveClaim'\r\n })\r\n } else if (\"grantClaimFormReversal\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/GrantClaimFormReversal'\r\n })\r\n } else if (\"downloadClaim\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DownloadClaim'\r\n })\r\n } else if (\"generateBatch\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/GenerateBatch'\r\n })\r\n } else if (\"downloadBatch\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DownloadBatch'\r\n })\r\n } else if (\"axProcessor\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/AXProcessor'\r\n })\r\n } else if (\"grantReversals\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/GrantReversals'\r\n })\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Grant Processing\"}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true}\r\n config={this.toolbarConfig} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(ProcessingNav));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport * as InterventionSearch from './InterventionIndex';\r\n\r\n\r\nexport default function GenerateClaimSearchForm(props) {\r\n\r\n\r\n function InterventionTypeChange(value, form) {\r\n if (typeof value !== 'undefined' && value !== null) {\r\n if (value.Description === \"Learnership\") {\r\n var type = 'LearnershipSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/GenerateClaim/LearnershipSearch\" autoFetchData={false} selection={props.selection} />\r\n } else if (value.Description === \"Skills Programme\") {\r\n var type = 'SkillsProgramSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/GenerateClaim/SkillsProgrammeSearch\" autoFetchData={false} selection={props.selection} />\r\n } else if (value.Description === \"AET\") {\r\n var type = 'AETSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/GenerateClaim/AETSearch\" autoFetchData={false} selection={props.selection} />\r\n }\r\n }\r\n }\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {InterventionTypeChange(form.values[\"DiscretionaryGrantTypeID\"], form)}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport GenerateClaimSearchForm from './GenerateClaimSearchForm';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'LearnerName', numeric: false, disablePadding: false, label: 'Learner Name' },\r\n { id: 'LearnerIDNumber', numeric: false, disablePadding: false, label: 'Learner ID Number' },\r\n { id: 'TrancheType', numeric: false, disablePadding: false, label: 'Tranche Type' },\r\n { id: 'TrancheAmount', numeric: false, disablePadding: false, label: 'Tranche Amount' },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'Organisation SDL Number' },\r\n { id: 'InterventionCode', numeric: false, disablePadding: false, label: 'Intervention Code' },\r\n { id: 'SocioEconomicStatus', numeric: false, disablePadding: false, label: 'SocioEconomicStatus' }\r\n];\r\n\r\n\r\nclass GenerateClaimSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n \r\n\r\n this.state = {\r\n selectedClaims: null,\r\n model: {\r\n InterventionID: null,\r\n EmployerID: null,\r\n DiscretionaryGrantTypeID: null,\r\n SocioEconomicStatusID: null,\r\n FinancialYearID: null,\r\n TrancheTypeID: null,\r\n },\r\n keyUpSwitch: false,\r\n message: null,\r\n messageStyle: null\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'generateClaim', label: 'Generate Claim', icon: 'CreateIcon', tooltip: 'Generate Claim For Selected Records',disabled: utils.isNull(this.state.selectedClaims)}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelections = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedClaims: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generateClaim\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedClaims: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generateClaim\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values, selectedGrant: null });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: '/ProcessingNav'\r\n })\r\n } else if (\"generateClaim\" === buttonId) {\r\n this.generateClaimBulk();\r\n toolbarRef.current.setButtonDisabled(\"generateClaim\", true);\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n generateClaimBulk = () => {\r\n const IDs = this.state.selectedClaims.map(e => e.Id);\r\n let data = {\r\n IDs: IDs,\r\n Type: this.state.model.DiscretionaryGrantTypeID.Id\r\n }\r\n let url = \"api/sims/GenerateClaim/GrantClaimNumberUpdate\";\r\n utils.invokeUrl(url, (response) => {\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"generateClaim\", true);\r\n this.successCallback(response);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Grant Processing > Generate Claims\"}\r\n

\r\n \r\n { this.handleSelections(selection) }}\r\n >\r\n this.handleFormValueChange(values)} />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(GenerateClaimSearch));\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport * as InterventionSearch from './InterventionIndex';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\n\r\n\r\nexport default function ApproveClaimSearchForm(props) {\r\n\r\n function InterventionTypeChange(value, form) {\r\n if (typeof value !== 'undefined' && value !== null) {\r\n if (value.Description === \"Learnership\") {\r\n var type = 'LearnershipSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/ApproveClaim/LearnershipSearch\" autoFetchData={false} selection={props.selection} />\r\n } else if (value.Description === \"Skills Programme\") {\r\n var type = 'SkillsProgramSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/ApproveClaim/SkillsProgrammeSearch\" autoFetchData={false} selection={props.selection} />\r\n } else if (value.Description === \"AET\") {\r\n var type = 'AETSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/ApproveClaim/AETSearch\" autoFetchData={false} selection={props.selection} />\r\n }\r\n }\r\n }\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {InterventionTypeChange(form.values[\"DiscretionaryGrantTypeID\"], form)}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport ApproveClaimSearchForm from './ApproveClaimSearchForm';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'ClaimNumber', numeric: false, disablePadding: false, label: 'Claim Number' },\r\n { id: 'ClaimDate', numeric: false, disablePadding: false, label: 'Claim Date' },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'Organisation SDL Number' }\r\n];\r\n\r\n\r\nclass ApproveClaimSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n \r\n\r\n this.state = {\r\n selectedClaims: null,\r\n model: {\r\n InterventionID: null,\r\n EmployerID: null,\r\n DiscretionaryGrantTypeID: null,\r\n },\r\n keyUpSwitch: false\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'approveClaim', label: 'Approve Claim', icon: 'ApproveIcon', tooltip: 'Approve Claim For Selected Records',disabled: utils.isNull(this.state.selectedClaims)},\r\n {id: 'downloadClaim', label: 'Download Claim Form', icon: 'DownloadIcon', tooltip: 'Download claim form for selected record',disabled: utils.isNull(this.state.selectedClaims)}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n downloadClaim = () => {\r\n\r\n let data = {\r\n Id: this.state.selectedClaims[0].Id,\r\n DiscretionaryGrantTypeID: this.state.model.DiscretionaryGrantTypeID.Id\r\n }\r\n let url = \"api/sims/ApproveClaim/GrantClaimApproveDownload\";\r\n utils.invokeUrl(url, (response) => {\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"downloadClaim\", true);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n claimApprove = () => {\r\n const IDs = this.state.selectedClaims.map(e => e.Id);\r\n let data = {\r\n IDs: IDs\r\n }\r\n let url = \"api/sims/ApproveClaim/GrantClaimApprove\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelections = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedClaims: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"approveClaim\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"downloadClaim\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedClaims: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"approveClaim\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"downloadClaim\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values, selectedGrant: null });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: '/ProcessingNav'\r\n })\r\n } else if (\"approveClaim\" === buttonId) {\r\n this.claimApprove();\r\n toolbarRef.current.setButtonDisabled(\"approveClaim\", true);\r\n } else if (\"downloadClaim\" === buttonId) {\r\n this.downloadClaim();\r\n toolbarRef.current.setButtonDisabled(\"downloadClaim\", true);\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Grant Processing > Approve Claims\"}\r\n

\r\n \r\n { this.handleSelections(selection) }}\r\n >\r\n this.handleFormValueChange(values)} />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(ApproveClaimSearch));\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\n\r\n\r\nexport default function GrantClaimFormReversalSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n
\r\n
\r\n \r\n }\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nexport const GrantClaimReversalDetailForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport GrantClaimFormReversalSearchForm from './GrantClaimFormReversalSearchForm';\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport { GrantClaimReversalDetailForm } from \"./GrantClaimReversalDetailForm\";\r\nimport FormDialog from \"../../FormDialog\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'ClaimNumber', numeric: false, disablePadding: false, label: 'Claim Number' },\r\n { id: 'ClaimDate', numeric: false, disablePadding: false, label: 'Claim Date' },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'Organisation SDL Number' },\r\n { id: 'RequestedBy', numeric: false, disablePadding: false, label: 'Requested By' },\r\n { id: 'RequestedDate', numeric: false, disablePadding: false, label: 'Requested Date' }\r\n];\r\n\r\n\r\nclass GrantClaimFormReversalSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n model: {\r\n DiscretionaryGrantTypeID: null,\r\n EmployerID: null\r\n },\r\n IDs: null,\r\n keyUpSwitch: false,\r\n clearGrid: false,\r\n formDialogOpen: false,\r\n message: null,\r\n messageStyle: null,\r\n DiscretionaryGrantTypeID: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'claimReversal', label: 'Reverse Claim', tooltip: 'Reverse Claim',disabled: utils.isNull(this.state.IDs)},\r\n {id: 'downloadClaimForm', label: 'Download Claim Form', icon: 'DownloadIcon', tooltip: 'Download claim form for selected record',disabled: utils.isNull(this.state.selectedClaims)}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n downloadClaim = () => {\r\n\r\n let data = {\r\n Id: this.state.IDs[0].Id,\r\n DiscretionaryGrantTypeID: this.state.model.DiscretionaryGrantTypeID.Id\r\n }\r\n let url = \"api/sims/GrantClaimFormReversal/GrantClaimReveralDownload\";\r\n utils.invokeUrl(url, (response) => {\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"downloadClaimForm\", true);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n handleSelections = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ IDs: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"claimReversal\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"downloadClaimForm\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ IDs: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"claimReversal\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"downloadClaimForm\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values, selectedGrant: null });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: '/ProcessingNav'\r\n })\r\n } else if (\"claimReversal\" === buttonId) {\r\n this.setState({ formDialogOpen: true, removeMessage: \"\", DiscretionaryGrantTypeID: this.state.model.DiscretionaryGrantTypeID })\r\n } else if (\"downloadClaimForm\" === buttonId) {\r\n this.downloadClaim();\r\n toolbarRef.current.setButtonDisabled(\"downloadClaimForm\", true);\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n toolbarRef.current.setButtonDisabled(\"claimReversal\", true);\r\n toolbarRef.current.setButtonDisabled(\"downloadClaimForm\", true);\r\n this.setState({\r\n formDialogOpen: false, IDs: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Grant Processing > Grant Claim Reversals\"}\r\n

\r\n \r\n { this.handleSelections(selection) }}\r\n autoFetchData={false}\r\n toolbarRef={toolbarRef}\r\n searchLabel={\"SEARCH\"}\r\n handleObject={true}\r\n >\r\n this.handleFormValueChange(values)} />\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n\r\n \r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(GrantClaimFormReversalSearch));\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\n\r\n\r\nexport default function GrantClaimFormReversalSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport DownloadClaimSearchForm from './DownloadClaimSearchForm';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'ClaimNumber', numeric: false, disablePadding: false, label: 'Claim Number' },\r\n { id: 'ClaimDate', numeric: false, disablePadding: false, label: 'Claim Date' },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'Organisation SDL Number' },\r\n { id: 'RequestedBy', numeric: false, disablePadding: false, label: 'Requested By' },\r\n { id: 'RequestedDate', numeric: false, disablePadding: false, label: 'Requested Date' }\r\n];\r\n\r\n\r\nclass DownloadClaimSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n selectedClaim: null,\r\n model: {\r\n ClaimNumber: null,\r\n ApprovedID: null,\r\n DiscretionaryGrantTypeID: null,\r\n EmployerID: null\r\n },\r\n keyUpSwitch: false\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'downloadClaim', label: 'Download Claim', icon: 'DownloadIcon', tooltip: 'Download claim for selected record',disabled: utils.isNull(this.state.selectedClaim)}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedClaim: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"downloadClaim\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedClaim: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"downloadClaim\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n downloadClaim = () => {\r\n \r\n let data = {\r\n Id: this.state.selectedClaim[0].Id,\r\n DiscretionaryGrantTypeID: this.state.model.DiscretionaryGrantTypeID.Id\r\n }\r\n let url = \"api/sims/DownloadClaim/GrantClaimDownload\";\r\n utils.invokeUrl(url, (response) => {\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"downloadClaim\", true);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n handleFormValueChange = (values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: '/ProcessingNav'\r\n })\r\n } else if (\"downloadClaim\" === buttonId) {\r\n this.downloadClaim();\r\n toolbarRef.current.setButtonDisabled(\"downloadClaim\", true);\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Grant Processing > Download Claims\"}\r\n

\r\n { this.handleSelection(selection) }}\r\n >\r\n this.handleFormValueChange(values)} />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(DownloadClaimSearch));\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\n\r\n/*THIS FORM IS UNDER A SHARED STATUS BETWEEN GENERATE BATCH, DOWNLOAD BATCH AND AX-PROCESSOR, SAME SEARCH PARAMS. Please note before changing anything. replicate and alter if need be.*/\r\nexport default function ProcessSearchFormShared(props) {\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport ProcessSearchFormShared from './ProcessSearchFormShared';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'ClaimNumber', numeric: false, disablePadding: false, label: 'Claim Number' },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'Organisation SDL Number' }\r\n];\r\n\r\n\r\nclass GenerateBatchSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n\r\n\r\n this.state = {\r\n selectedClaims: null,\r\n message: null,\r\n messageStyle: null,\r\n model: {\r\n EmployerID: null,\r\n DiscretionaryGrantTypeID: null,\r\n SocioEconomicStatusID: null\r\n },\r\n keyUpSwitch: false\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'generateBatch', label: 'Generate Batch', icon: 'CreateIcon', tooltip: 'Generate Batch',disabled: utils.isNull(this.state.selectedClaims)},\r\n {id: 'downloadGenBatch', label: 'Download batch Form', icon: 'DownloadIcon', tooltip: 'Download batch form for selected record',disabled: utils.isNull(this.state.selectedClaims)}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n downloadBatch = () => {\r\n const IDs = this.state.selectedClaims.map(e => e.Id);\r\n let data = {\r\n IDs: IDs,\r\n Type: this.state.model.DiscretionaryGrantTypeID.Id\r\n }\r\n let url = \"api/sims/GenerateBatch/GrantGenerateBatchDownload\";\r\n utils.invokeUrl(url, (response) => {\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"downloadClaim\", true);\r\n toolbarRef.current.setButtonDisabled(\"downloadGenBatch\", true);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n handleSelections = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedClaims: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generateBatch\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"downloadGenBatch\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedClaims: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generateBatch\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"downloadGenBatch\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values, selectedGrant: null });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: '/ProcessingNav'\r\n })\r\n } else if (\"generateBatch\" === buttonId) {\r\n this.generateClaimBulk();\r\n toolbarRef.current.setButtonDisabled(\"generateBatch\", true);\r\n } else if (\"downloadGenBatch\" === buttonId) {\r\n this.downloadBatch();\r\n toolbarRef.current.setButtonDisabled(\"downloadGenBatch\", true);\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n generateClaimBulk = () => {\r\n const IDs = this.state.selectedClaims.map(e => e.Id);\r\n let data = {\r\n IDs: IDs,\r\n DiscretionaryGrantTypeID: this.state.model.DiscretionaryGrantTypeID\r\n }\r\n let url = \"api/sims/GenerateBatch/GrantBatchNumberUpdate\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Grant Processing > Generate Batch\"}\r\n

\r\n \r\n { this.handleSelections(selection) }}\r\n >\r\n this.handleFormValueChange(values)} />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(GenerateBatchSearch));\r\n\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport ProcessSearchFormShared from './ProcessSearchFormShared';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'BatchNumber', numeric: false, disablePadding: false, label: 'Batch Number' },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'Organisation SDL Number' }\r\n];\r\n\r\n\r\nclass DownloadBatchSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n selectedClaim: null,\r\n model: {\r\n SocioEconomicStatusID: null,\r\n DiscretionaryGrantTypeID: null,\r\n EmployerID: null\r\n },\r\n keyUpSwitch: false\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'downloadBatch', label: 'Download Batch', icon: 'DownloadIcon', tooltip: 'Download Batch',disabled: utils.isNull(this.state.selectedClaim)}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedClaim: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"downloadBatch\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedClaim: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"downloadBatch\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values, selectedGrant: null });\r\n }\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n downloadClaim = () => {\r\n\r\n let data = {\r\n Id: this.state.selectedClaim[0].Id,\r\n DiscretionaryGrantTypeID: this.state.model.DiscretionaryGrantTypeID.Id\r\n }\r\n let url = \"api/sims/DownloadBatch/GrantBatchDownload\";\r\n utils.invokeUrl(url, (response) => {\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"downloadBatch\", true);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: '/ProcessingNav'\r\n })\r\n } else if (\"downloadBatch\" === buttonId) {\r\n this.downloadClaim();\r\n toolbarRef.current.setButtonDisabled(\"downloadBatch\", true);\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Grant Processing > Download Batch\"}\r\n

\r\n { this.handleSelection(selection) }}\r\n >\r\n this.handleFormValueChange(values)} />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(DownloadBatchSearch));\r\n\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport ProcessSearchFormShared from './ProcessSearchFormShared';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'BatchNumber', numeric: false, disablePadding: false, label: 'Batch Number' },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'Organisation SDL Number' }\r\n];\r\n\r\n\r\nclass AXProcessorSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n selectedClaims: null,\r\n message: null,\r\n messageStyle: null,\r\n model: {\r\n EmployerID: null,\r\n DiscretionaryGrantTypeID: null,\r\n SocioEconomicStatusID: null\r\n },\r\n keyUpSwitch: false\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'ProcessBatch', label: 'Process Batch', tooltip: 'Process Batch',disabled: utils.isNull(this.state.selectedClaims)},\r\n {id: 'downloadBatchForm', label: 'Download Batch Form', icon: 'DownloadIcon', tooltip: 'Download batch form for selected record',disabled: utils.isNull(this.state.selectedClaims)}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelections = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedClaims: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"ProcessBatch\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"downloadBatchForm\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedClaims: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"ProcessBatch\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"downloadBatchForm\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n downloadBatchForm = () => {\r\n\r\n let data = {\r\n Id: this.state.selectedClaims[0].Id,\r\n DiscretionaryGrantTypeID: this.state.model.DiscretionaryGrantTypeID.Id\r\n }\r\n let url = \"api/sims/AXProcessor/BatchFormDownload\";\r\n utils.invokeUrl(url, (response) => {\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"downloadBatchForm\", true);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n processBatch = () => {\r\n const IDs = this.state.selectedClaims.map(e => e.Id);\r\n let data = {\r\n IDs: IDs,\r\n DiscretionaryGrantTypeID: this.state.model.DiscretionaryGrantTypeID\r\n }\r\n let url = \"api/sims/AXProcessor/AXBatchProcess\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleFormValueChange = (values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values, selectedGrant: null });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: '/ProcessingNav'\r\n })\r\n } else if (\"ProcessBatch\" === buttonId) {\r\n this.processBatch();\r\n toolbarRef.current.setButtonDisabled(\"ProcessBatch\", true);\r\n } else if (\"downloadBatchForm\" === buttonId) {\r\n this.downloadBatchForm();\r\n toolbarRef.current.setButtonDisabled(\"downloadBatchForm\", true);\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n \r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Grant Processing > Process Batch\"}\r\n

\r\n \r\n { this.handleSelections(selection) }}\r\n >\r\n this.handleFormValueChange(values)} />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(AXProcessorSearch));\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport * as InterventionSearch from './InterventionIndex';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\n\r\n\r\nexport default function GrantReversalsSearchForm(props) {\r\n\r\n function InterventionTypeChange(value, form) {\r\n if (typeof value !== 'undefined' && value !== null) {\r\n if (value.Description === \"Learnership\") {\r\n var type = 'LearnershipSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/GrantReversals/LearnershipSearch\" autoFetchData={false} selection={props.selection} />\r\n } else if (value.Description === \"Skills Programme\") {\r\n var type = 'SkillsProgramSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/GrantReversals/SkillsProgrammeSearch\" autoFetchData={false} selection={props.selection} />\r\n } else if (value.Description === \"AET\") {\r\n var type = 'AETSetupSearch';\r\n const ComponentToRender = InterventionSearch[type];\r\n return form.setLookupSelection(\"InterventionID\", value)} dataUrl=\"api/sims/GrantReversals/AETSearch\" autoFetchData={false} selection={props.selection} />\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {InterventionTypeChange(form.values[\"DiscretionaryGrantTypeID\"], form)}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport GrantReversalsSearchForm from './GrantReversalsSearchForm';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'LearnerName', numeric: false, disablePadding: false, label: 'Learner Name' },\r\n { id: 'LearnerIDNumber', numeric: false, disablePadding: false, label: 'Learner ID Number' },\r\n { id: 'TrancheType', numeric: false, disablePadding: false, label: 'Tranche Type' },\r\n { id: 'TrancheAmount', numeric: false, disablePadding: false, label: 'Tranche Amount' },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'Organisation SDL Number' },\r\n { id: 'InterventionCode', numeric: false, disablePadding: false, label: 'Intervention Code' }\r\n];\r\n\r\n\r\nclass GrantReversalsSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n selectedClaims: null,\r\n message: null,\r\n messageStyle: null,\r\n model: {\r\n EmployerID: null,\r\n DiscretionaryGrantTypeID: null,\r\n InterventionID: null\r\n },\r\n keyUpSwitch: false\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'reverseGrant', label: 'Reverse Grant', tooltip: 'Reverse Grant',disabled: utils.isNull(this.state.selectedClaims)}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: '/ProcessingNav'\r\n })\r\n } else if (\"reverseGrant\" === buttonId) {\r\n this.reverseGrants();\r\n toolbarRef.current.setButtonDisabled(\"reverseGrant\", true);\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelections = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedClaims: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"reverseGrant\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedClaims: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"reverseGrant\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n reverseGrants = () => {\r\n const IDs = this.state.selectedClaims.map(e => e.Id);\r\n let data = {\r\n IDs: IDs,\r\n DiscretionaryGrantTypeID: this.state.model.DiscretionaryGrantTypeID\r\n }\r\n let url = \"api/sims/GrantReversals/AXReversalProcess\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n handleFormValueChange = (values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values, selectedGrant: null });\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Grant Processing > Batch Reversals\"}\r\n

\r\n \r\n { this.handleSelections(selection) }}\r\n >\r\n this.handleFormValueChange(values)} />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(GrantReversalsSearch));\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\nimport EmployerSearch from '../../employer/EmployerSearch';\r\nimport \"./BulkAssociation.css\";\r\n\r\n\r\nexport default function BulkAssociationSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport BulkAssociationSearchForm from './BulkAssociationSearchForm';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'LearnerFirstName', numeric: false, disablePadding: false, label: 'First Name' },\r\n { id: 'LearnerLastName', numeric: false, disablePadding: false, label: 'Last Name' },\r\n { id: 'LearnerIDNumber', numeric: false, disablePadding: false, label: 'ID Number' },\r\n { id: 'AssociationDetailCode', numeric: false, disablePadding: false, label: 'Code' },\r\n { id: 'AssociationDetailDescription', numeric: false, disablePadding: false, label: 'Description' },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'SDL Number' }\r\n];\r\n\r\n\r\nclass BulkGrantAssociation extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n FinancialYearID: null,\r\n DiscretionaryGrantTypeID: null,\r\n EmployerID: null,\r\n SocioEconomicStatusID: null\r\n },\r\n selectedAssociations: null,\r\n keyUpSwitch: false,\r\n LearnerCount: 0,\r\n showTable: true,\r\n clearGrid: false,\r\n GrantsLinked: false,\r\n message: null,\r\n messageStyle: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'bulkassociate', label: 'Bulk Associate', tooltip: 'Bulk associate selected grants',\r\n disabled: utils.isNull(this.state.selectedAssociations)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"bulkassociate\" === buttonId) {\r\n this.associationSelectedGrants();\r\n toolbarRef.current.setButtonDisabled(\"bulkassociate\", true);\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n showTable: false\r\n }, () => {\r\n this.setState({\r\n showTable: true,\r\n message: response.Message,\r\n messageStyle: response.MessageType\r\n })\r\n });\r\n }\r\n else {\r\n this.setState({\r\n message: response.message, messageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n\r\n associationSelectedGrants = () => {\r\n const IDs = this.state.selectedAssociations.map(e => e.Id);\r\n let data = {\r\n IDs: IDs,\r\n DiscretionaryGrantTypeID: this.state.model.DiscretionaryGrantTypeID,\r\n }\r\n let url = \"api/sims/BulkGrantAssociation/BulkGrantAssociate\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n let bulkinfo = JSON.parse(response.Message);\r\n this.setState({\r\n clearGrid: true\r\n });\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelections = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedAssociations: selection, Message: \"\", LearnerCount: selection.length },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"bulkassociate\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedAssociations: null, Message: \"\", LearnerCount: 0 },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"bulkassociate\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Bulk Grant Association\"}\r\n

\r\n \r\n {this.state.showTable === true && (\r\n { this.handleSelections(selection) }}\r\n autoFetchData={false}\r\n toolbarRef={toolbarRef}\r\n clearGrid={this.state.clearGrid}\r\n onGridCleared={this.onGridCleared}\r\n searchLabel={\"SEARCH\"}\r\n handleObject={true}\r\n >\r\n \r\n this.handleFormValueChange(values)} />\r\n \r\n )}\r\n
{'Total Learners: ' + this.state.LearnerCount}
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(BulkGrantAssociation));\r\n\r\n","import React from 'react';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nexport const DiAssociationDetailForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport BulkAssociationSearchForm from './BulkAssociationSearchForm';\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport { DiAssociationDetailForm } from \"./DiAssociationDetailForm\";\r\nimport FormDialog from \"../../FormDialog\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'LearnerFirstName', numeric: false, disablePadding: false, label: 'First Name' },\r\n { id: 'LearnerLastName', numeric: false, disablePadding: false, label: 'Last Name' },\r\n { id: 'LearnerIDNumber', numeric: false, disablePadding: false, label: 'ID Number' },\r\n { id: 'AssociationDetailCode', numeric: false, disablePadding: false, label: 'Code' },\r\n { id: 'AssociationDetailDescription', numeric: false, disablePadding: false, label: 'Description' },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'SDL Number' }\r\n];\r\n\r\n\r\nclass BulkGrantDeAssociation extends Component {\r\n\r\n constructor(props) { \r\n super(props) \r\n this.state = { \r\n model: { \r\n FinancialYearID: null, \r\n DiscretionaryGrantTypeID: null, \r\n EmployerID: null, \r\n SocioEconomicStatusID: null \r\n }, \r\n IDs: null, \r\n keyUpSwitch: false,\r\n LearnerCount: 0,\r\n clearGrid: false,\r\n formDialogOpen: false,\r\n GrantsLinked: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n DiscretionaryGrantTypeID: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'bulkdiassociate', label: 'Bulk De-Associate', tooltip: 'Bulk de-associate selected grants',\r\n disabled: utils.isNull(this.state.IDs)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"bulkdiassociate\" === buttonId) {\r\n this.setState({ formDialogOpen: true, removeMessage: \"\", DiscretionaryGrantTypeID: this.state.model.DiscretionaryGrantTypeID })\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.diassociationSelectedGrants();\r\n toolbarRef.current.setButtonDisabled(\"bulkdiassociate\", true);\r\n this.setState({\r\n formDialogOpen: false, IDs: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelections = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ IDs: selection, Message: \"\", LearnerCount: selection.length },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"bulkdiassociate\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ IDs: null, Message: \"\", LearnerCount: 0 },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"bulkdiassociate\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n {\"Bulk Grant De-Association\"}\r\n

\r\n \r\n { this.handleSelections(selection) }}\r\n autoFetchData={false}\r\n toolbarRef={toolbarRef}\r\n searchLabel={\"SEARCH\"}\r\n handleObject={true}\r\n >\r\n this.handleFormValueChange(values)} />\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n\r\n \r\n \r\n
{'Total Learners: ' + this.state.LearnerCount}
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(BulkGrantDeAssociation));\r\n\r\n","import React from 'react';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport EmailDialog from \"../../crm/EmailDialog\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DocumentUpload from '../../../widgets/DocumentUpload';\r\n\r\nconst utils = new ViewUtils();\r\nexport const TrackingAddTaskForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [file, setFile] = React.useState(null)\r\n\r\n function TaskCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Other\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"150px !important\",\r\n width: \"500px !important\"\r\n }\r\n }\r\n })\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name)\r\n setFile(data.base64)\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport EnhancedTable from '../../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../../widgets/Toolbar';\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport Prompt from '../../../widgets/Prompt';\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport FormDialog from \"../../FormDialog\";\r\nimport { TrackingAddTaskForm } from \"./TrackingAddTaskForm\";\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\n\r\nconst headCells = [\r\n { id: 'Task', numeric: false, disablePadding: true, label: 'Task' },\r\n { id: 'OtherTask', numeric: false, disablePadding: true, label: 'Other Task' },\r\n { id: 'TaskStatus', numeric: false, disablePadding: true, label: 'Status' },\r\n { id: 'DueDate', numeric: false, disablePadding: true, label: 'Due Date' },\r\n { id: 'ToAddress', numeric: false, disablePadding: true, label: 'Email Address List' },\r\n { id: 'Subject', numeric: false, disablePadding: true, label: 'Email Subject' },\r\n { id: 'Document', numeric: false, disablePadding: true, label: 'Document', contentType: 'document' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\nconst editFormRef = React.createRef();\r\n\r\nclass TrancheTracking extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n editFormDialogOpen: false,\r\n formDialogOpen: false,\r\n selectedTask: null,\r\n propmtOpen: false,\r\n promptTitle: \"Remove task from project\",\r\n promptContent: \"Are you sure you want to remove this task from the project setup?\",\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n searchParameters: [{ Name: \"TrancheID\", Value: this.props.location.state.TrancheID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add task to project', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit project task', icon: 'EditIcon', disabled: utils.isNull(this.state.selectedTask) },\r\n { id: 'remove', label: '', tooltip: 'Remove task from project', icon: 'DeleteIcon', disabled: utils.isNull(this.state.selectedTask) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: { TrancheID: this.props.location.state.TrancheID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ formDialogOpen: true, editFormDialogOpen: false, Message: \"\" })\r\n }\r\n else if (\"edit\" === buttonId) {\r\n this.setState({ formDialogOpen: false, editFormDialogOpen: true, Message: \"\" })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false,\r\n editFormDialogOpen: false,\r\n Message: \"Grant Task successfully saved\",\r\n MessageStyle: \"success\"\r\n });\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n editFormDialogOpen: false,\r\n Message: \"\"\r\n })\r\n }\r\n else {\r\n this.setState({\r\n formDialogOpen: false,\r\n editFormDialogOpen: false,\r\n Message: \"A system error has occured, please try again later or contact your administrator\",\r\n MessageStyle: \"warning\"\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedTask: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedTask: null, Message: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n }\r\n\r\n FileDownload = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/grantsetuptracking/downloaddocument?id=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n successfulTaskRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedTask: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulTaskRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeTask(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedTask}&projectID=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulTaskRemoveCallback, this.unsuccessfulTaskRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, editFormDialogOpen: false\r\n }, () => { this.setState({ showTable: true }) });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n editFormDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {`Project Setup > Tracking > ${this.props.location.state.ProjectNumber}`}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n onCellSelectionChange={(rowid, headCell) => { this.FileDownload(rowid, headCell) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save)}\r\n hasDocumentUpload={true}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n { this.removeTask(\"api/sims/grantsetuptracking/RemoveGrantTask\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(TrancheTracking)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../crm/Comments\";\r\nimport Documents from \"../crm/Documents\";\r\nimport Emails from \"../crm/Emails\";\r\nimport Sms from \"../crm/Sms\";\r\nimport CommentsDialog from \"../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../crm/EmailDialog\";\r\nimport SmsDialog from \"../crm/SmsDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Provider\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/providercrm/GetCRMComments\",\r\n documents: \"api/sims/providercrm/GetCRMDocuments\",\r\n emails: \"api/sims/providercrm/GetCRMEMail\",\r\n sms: \"api/sims/providercrm/GetCRMSMS\"\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/providercrm/AddCRMComment\",\r\n documents: \"api/sims/providercrm/AddCRMDocument\",\r\n emails: \"api/sims/providercrm/AddCRMEmail\",\r\n sms: \"api/sims/providercrm/AddCRMSMS\"\r\n }\r\n}\r\n\r\nclass ProviderCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: \"1\",\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n search() {\r\n alert(\"Search Button Clicke\")\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"4\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: true,\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n smsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"4\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n smsDialogOpen: submitted\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell, section) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/Provider/DownloadCRM' + section + '?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/providercrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n }\r\n\r\n\r\n SetCommunicationType(values) {\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n
\r\n

\r\n {`Provider > CRM > ${this.props.location.state.providerName} - ${this.props.location.state.providerSDLNumber}`}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n\r\n\r\n
\r\n \r\n \r\n \r\n {this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({ emailAddress: email, emailSubject: subject }, () => {\r\n this.setState({ emailAddress: email, emailSubject: subject })\r\n })\r\n\r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Provider Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n
\r\n\r\n\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Provider Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.selection} />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Provider Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.selection}\r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"4\" ?\r\n
\r\n

\r\n SMS\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Provider Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send SMS', icon: 'SmsIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.selection} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.selection}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.selection}\r\n showMultilineToAddress={true}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.sms}\r\n EntityID={this.props.location.state.selection}\r\n />\r\n
\r\n }\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(ProviderCRM));","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport DocumentViewer from '../../widgets/DocumentViewer';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n}\r\n\r\nconst toolbarRef = React.createRef();\r\nclass AssessorIDDocument extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n document: null,\r\n loading: true\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n state = {\r\n document: null\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (this.state.document === null) {\r\n utils.invokeUrl(`api/indicium/assessor/getIDDocument?assessorId=${this.props.location.state.AssessorID}`, (data) => {\r\n if (data !== null && data.Base64 !== null) {\r\n let file = {};\r\n file.base64 = \"data:image/jpeg;base64,\" + data.Base64;\r\n this.setState({ document: file, loading: false });\r\n } else {\r\n this.setState({ loading: false });\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n ${this.props.location.state.AssessorName} > ID Document`}>\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n {\r\n this.state.document === null ?\r\n (
{this.state.loading ?

Loading...

:

No document to display

}
)\r\n :
\r\n { }} />\r\n
\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AssessorIDDocument)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const ProviderForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAddressForPostalAddress', event.target.checked);\r\n }\r\n\r\n const updateGPSAddress = (address, form) => {\r\n console.log(address);\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n function isFieldRequired(fieldName) {\r\n if (!utils.isNull(props.requiredFields)) {\r\n return !utils.isNull(props.requiredFields[fieldName]);\r\n }\r\n return false\r\n }\r\n\r\n function AccreditationTypeCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Skills Programme\" || value.Description === \"Learnership\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Skills Programme\" || value.Description !== \"Learnership\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Provider.css\";\r\nimport { ProviderForm } from './ProviderForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\n\r\nconst providerRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarRef = React.createRef();\r\nclass Provider extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ProviderDetails: {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n AccreditationCheck: false\r\n },\r\n RequiredFields: null,\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: 'contacts', label: 'Contacts', tooltip: '', disabled: utils.isNull(this.state.id) },\r\n { id: 'users', label: 'Users', tooltip: '', disabled: utils.isNull(this.state.id) },\r\n {\r\n contextMenu: [\r\n { id: \"skillsProgramme\", description: \"Skills Programmes\", disabled: utils.isNull(this.state.id) },\r\n { id: \"learnerships\", description: \"Learnerships\", disabled: utils.isNull(this.state.id) },\r\n { id: \"bursary\", description: \"Bursaries\", disabled: utils.isNull(this.state.id) }\r\n\r\n ],\r\n id: 'programs', label: 'Programmes', disabled: utils.isNull(this.state.id)\r\n },\r\n { id: 'learners', label: 'Learners', tooltip: '', disabled: utils.isNull(this.state.id) },\r\n { id: 'assesors', label: 'Assessor', tooltip: '', disabled: utils.isNull(this.state.id) },\r\n { id: 'moderator', label: 'Moderator', tooltip: '', disabled: utils.isNull(this.state.id) },\r\n { id: 'crm', label: 'CRM', tooltip: '', disabled: utils.isNull(this.state.id) }\r\n\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n\r\n if (!utils.isNull(values.ProviderAccreditationStatusID) && !utils.isNull(values.AccreditationStartDate)) {\r\n if (!utils.isNull(values.AccreditationStartDate)) {\r\n //Remember to change this from checking using Id as this can change in the database\r\n if (values.ProviderAccreditationStatusID.Id === \"2\") {\r\n utils.autoSetDate(this, providerRef, values.AccreditationStartDate, 2, 0, 1, \"AccreditationEndDate\", \"AccreditationStartDate\");\r\n }\r\n else if (values.ProviderAccreditationStatusID.Description === \"Accredited\") {\r\n utils.autoSetDate(this, providerRef, values.AccreditationStartDate, 5, 0, 1, \"AccreditationEndDate\", \"AccreditationStartDate\");\r\n }\r\n }\r\n\r\n if (values.ProviderAccreditationStatusID.Description === \"Full Accreditation\") {\r\n let requiredFields = {\r\n DHETRegistrationStartDate: \"DHETRegistrationStartDate\",\r\n DHETRegistrationEndDate: \"DHETRegistrationEndDate\",\r\n DHETRegistrationNumber: \"DHETRegistrationNumber\"\r\n };\r\n\r\n this.setState({ RequiredFields: requiredFields })\r\n }\r\n else {\r\n this.setState({ RequiredFields: null });\r\n }\r\n }\r\n this.setState({ ProviderDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n }\r\n else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n else if (\"contacts\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/providerContacts',\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n });\r\n }\r\n else if (\"users\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/providerUsers',\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"siteVisits\" === buttonId) {\r\n\r\n this.props.history.push({\r\n pathname: '/providerSiteVisits',\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n } else if (\"learners\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/providerLearner',\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/providerCRM',\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"assesors\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/providerAssessorSearch\",\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"moderator\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/providerModeratorSearch\",\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"accreditationHistory\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/providerAccreditationHistory\",\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"monitoringAndEvaluation\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/providerMonitoringAndEvaluation\",\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n\r\n if (\"skillsProgramme\" === menu.id) {\r\n this.props.history.push({\r\n pathname: \"/providerSkillsProgrammeSearch\",\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n isAccredited: this.state.ProviderDetails.AccreditationCheck,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n }\r\n if (\"bursary\" === menu.id) {\r\n this.props.history.push({\r\n pathname: \"/providerBursarySearch\",\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n isAccredited: this.state.ProviderDetails.AccreditationCheck,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"learnerships\" === menu.id) {\r\n this.props.history.push({\r\n pathname: \"/providerLearnershipSearch\",\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n isAccredited: this.state.ProviderDetails.AccreditationCheck,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"trades\" === menu.id) {\r\n this.props.history.push({\r\n pathname: \"/providerTrade\",\r\n state: {\r\n selection: this.state.id,\r\n providerName: this.state.ProviderDetails.LegalName,\r\n isAccredited: this.state.ProviderDetails.AccreditationCheck,\r\n providerSDLNumber: this.state.ProviderDetails.SDLNumber\r\n }\r\n })\r\n }\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Provider updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n let formValue = providerRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let isAdd = true;\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n let url = \"api/sims/providerdetails/UpdateProvider\";\r\n if (!isAdd) {\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response)\r\n this.getProviderDetails(response, isAdd, formValue)\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n });\r\n } else {\r\n url = \"api/sims/providerdetails/insertprovider\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response)\r\n this.getProviderDetails(response, isAdd, formValue)\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n });\r\n }\r\n }\r\n }\r\n\r\n getProviderDetails(response, isAdd, formValue) {\r\n\r\n if (response.MessageType === 'SUCCESS') {\r\n let dataURL = 'api/sims/providerdetails/getfind?id=';\r\n let ProviderId;\r\n if (isAdd) {\r\n dataURL = dataURL + response.EntityId;\r\n ProviderId = response.EntityId;\r\n } else {\r\n dataURL = dataURL + formValue.id;\r\n ProviderId = formValue.id;\r\n }\r\n utils.invokeUrl(dataURL, (response) => {\r\n console.clear();\r\n console.log(response);\r\n this.setState({ model: response, ConsultantID: null, id: ProviderId });\r\n },\r\n null\r\n )\r\n\r\n toolbarRef.current.setButtonDisabled(\"contacts\", false);\r\n toolbarRef.current.setButtonDisabled(\"users\", false);\r\n toolbarRef.current.setButtonDisabled(\"programs\", false);\r\n toolbarRef.current.setButtonDisabled(\"learners\", false);\r\n toolbarRef.current.setButtonDisabled(\"moderator\", false);\r\n toolbarRef.current.setButtonDisabled(\"crm\", false);\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/providerSearch',\r\n state: { selection: this.props.location.state.providerID }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Provider \" + (this.state.ProviderDetails.LegalName !== null ? \"> \" + this.state.ProviderDetails.LegalName + (this.state.ProviderDetails.SDLNumber !== null ? \" - \" + this.state.ProviderDetails.SDLNumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true} config={this.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)}\r\n requiredFields={this.state.RequiredFields}\r\n editPermission={this.props.menuPermissionItem.Edit}\r\n data={this.state.model}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(Provider));\r\n\r\n","import React from 'react';\r\n\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nexport const OutComeForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./ArtisansSetup.css\";\r\nimport { OutComeForm } from './OutcomeForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n\r\n ]\r\n};\r\n\r\nconst outcomeRef = React.createRef();\r\nclass Outcome extends Component {\r\n\r\n state = {\r\n OutcomeDetails: {\r\n ProviderUnitStandardID: \"\",\r\n ModeOfDelivery: \"\",\r\n ProgramOutcome: \"\",\r\n Specialisation: \"\"\r\n }\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ OutcomeDetails: values });\r\n }\r\n }\r\n\r\n successCallback = () => {\r\n\r\n this.setState({ message: \"Proivder unit standard updated successfully\", messageStyle: \"SUCCESS\" });\r\n }\r\n\r\n save() {\r\n utils.saveForm(this, outcomeRef, `api/indicium/provider/saveProviderOutcomeAndMode`, null, null, \"/provider\");\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true}\r\n config={toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Outcome);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport DocumentUpload from \"../../widgets/DocumentUpload\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nexport const MonitoringAndEvaluationForm = React.forwardRef((props, ref) => {\r\n\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [file, setFile] = React.useState(null)\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name)\r\n setFile(data.base64)\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React from 'react';\r\nimport ViewUtils from '../ViewUtils';\r\nimport EnhancedTable from './ResponsiveTable';\r\nimport { BaseField } from \"./BaseField\";\r\n\r\nconst GridItemComponent = React.forwardRef((props, ref) => {\r\n\r\n const utils = new ViewUtils();\r\n\r\n const handleSelectionChange = (selection) => {\r\n }\r\n\r\n const handleDataArrived = (data) => {\r\n }\r\n\r\n const handleCellValueChange = (row, changedColumn) => {\r\n let currentValue = props.base.valueObject[props.base.valueProperty];\r\n if (utils.isNull(currentValue)) {\r\n currentValue = [];\r\n }\r\n\r\n let valueRow = null;\r\n for (let i = 0; i < currentValue.length; i++) {\r\n if (row.Id === currentValue[i].Id) {\r\n valueRow = currentValue[i];\r\n valueRow[changedColumn] = row[changedColumn];\r\n } \r\n }\r\n\r\n if (valueRow === null) {\r\n currentValue.push(row);\r\n }\r\n\r\n props.base.valueObject[props.base.valueProperty] = currentValue;\r\n }\r\n\r\n return (\r\n
\r\n handleDataArrived(data)}\r\n mode={props.mode}\r\n onSelectionChange={selection => props.handleSelectionChange(selection)}\r\n autoFetchData={props.autoFetchData}\r\n cellValueChangeHandler={handleCellValueChange}\r\n searchParameters={props.searchParameters}\r\n multiSelect={props.multiSelect}\r\n />\r\n
\r\n );\r\n})\r\n\r\nexport function GridItem(props) {\r\n return (\r\n \r\n {base =>\r\n props.handleSelectionChange(selection)}\r\n multiSelect={props.multiSelect}\r\n form={props.form}>\r\n \r\n }\r\n \r\n );\r\n}","import React from 'react';\r\nimport { EntityForm } from '../widgets/Forms';\r\nimport { GridItem } from '../widgets/GridItem';\r\n\r\nexport const EditableTable = React.forwardRef((props, ref) => {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {props.handleSelectionChange(selection)}}\r\n className=\"w-100\"\r\n dataUrl={props.dataUrl}\r\n form={form}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { MonitoringAndEvaluationForm } from \"./MonitoringAndEvaluationForm\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { EditableTable } from \"../EditableTable\";\r\n\r\nconst headCells = [\r\n { id: 'MonitorEvaluationDate', numeric: false, disablePadding: true, label: 'Monitor Evaluation Date' },\r\n { id: 'MentorName', numeric: false, disablePadding: true, label: 'Mentor Name' },\r\n { id: 'ReasonForMonitorEvaluation', numeric: false, disablePadding: true, label: 'Reason For Monitor Evaluation' },\r\n { id: 'Outcomes', numeric: false, disablePadding: true, label: 'Outcome' },\r\n {\r\n id: 'Document', numeric: false, document: true, disablePadding: false, label: 'Document',\r\n editor: {\r\n type: \"DOCUMENT\",\r\n url: '/api/indicium/Employer/getCRMDocument' ,\r\n // onClick: () => {} //method to be executed when the link is clicked (can be null)\r\n }\r\n }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderMonitoringAndEvaluation extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n formDialogOpen: false, \r\n propmtOpen: false,\r\n promptTitle: \"Remove monitoring and evaluation from provider\",\r\n promptContent: \"Are you sure you want to remove this monitoring and evaluation from the provider?\",\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n searchParameters: [{ Name: \"providerID\", Value: this.props.location.state.selection }],\r\n isUpdate: false,\r\n isAdd: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', tooltip: 'Link Monitoring and Evaluation', label: \"Add\" },\r\n { id: 'remove', tooltip: 'Remove monitoring and evaluation from provider', label: \"Remove\", disabled: utils.isNull(this.state.selectedId) },\r\n { id: 'update', tooltip: 'Update selected monitoring and evaluation', label: \"Update\", disabled: utils.isNull(this.state.selectedId) },\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ formDialogOpen: true, isAdd: true })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"update\" === buttonId) {\r\n this.setState({isUpdate: true, formDialogOpen: true})\r\n }\r\n }\r\n\r\n postAddHandler = (cancel, save) => {\r\n if (save === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false,\r\n selectedId: null,\r\n isAdd: false,\r\n isUpdate: false,\r\n });\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n isAdd: false,\r\n isUpdate: false,\r\n Message: \"\",\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedId: null, Message: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"upload\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedId: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase() });\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n remove(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"upload\", true);\r\n toolbarRef.current.setButtonDisabled(\"update\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedId}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrl(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n ${this.props.location.state.providerName} > Monitoring and Evaluation`}>\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters}\r\n id={\"ProviderAssessors\"}\r\n headCells={headCells}\r\n dataUrl={`api/indicium/Provider/getMonitoringAndEvaluationRecords`}\r\n />\r\n
\r\n\r\n this.postAddHandler(isCancelled, linked)}\r\n hasDocumentUpload={true}\r\n entityId={this.state.selectedId}\r\n >\r\n \r\n \r\n\r\n { this.remove(\"api/indicium/provider/removeMonitoringAndEvaluation\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderMonitoringAndEvaluation)\r\n);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function TradeSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport \"./../Trade/TradeSetup.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport TradeSetupSearchForm from './../Trade/TradeSetupSearchForm';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"./../../../ViewUtils\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'TradeID', numeric: false, disablePadding: true, label: 'Trade ID' },\r\n { id: 'TradeTitle', numeric: false, disablePadding: true, label: 'Trade Title' },\r\n { id: 'RegistrationStartDate', numeric: false, disablePadding: true, label: 'Registration Start Date' },\r\n { id: 'RegistrationEndDate', numeric: false, disablePadding: true, label: 'Registration End Date' }\r\n];\r\n\r\nconst searchParameters = [\r\n { Name: \"TradeID\", Value: \"\" },\r\n { Name: \"TradeTitle\", Value: \"\" }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass TradeSetupSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n model: {\r\n TradeID: \"\",\r\n TradeTitle: \"\"\r\n }, \r\n selectedTrade: null,\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Trade\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n //TODO: Add actual url for trade removal\r\n this.deleteUrl = \"\"\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedTrade: selection })\r\n } else {\r\n this.setState({ selectedTrade: null })\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n keyUpSwitch={this.state.keyUpSwitch}\r\n history={this.props.history}\r\n multiSelect={this.props.multiSelect}\r\n deleteUrl={\"api/sims/TradeSetup/RemoveTrade\"} useDeletePost={true}\r\n promptTitle={\"Remove Trade\"}\r\n promptContent={\"Removing the trade is a permanent action and the trade will not be available going forward. Are you sure you want to remove this trade?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(TradeSetupSearch));\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport TradeSetupSearch from \"../program/Trade/TradeSetupSearch\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EditableTable } from \"../EditableTable\";\r\n\r\nconst toolbarRef = React.createRef();\r\nconst tableRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'TradeTitle', numeric: false, disablePadding: false, label: 'Trade Title' },\r\n {\r\n id: 'RegistrationEndDate', numeric: false, disablePadding: false, label: 'Provider Training End Date',\r\n editor: {\r\n type: \"DATE\"\r\n }\r\n }\r\n];\r\n\r\nclass ProviderTradeSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n selectedTrade: null,\r\n propmtOpen: false,\r\n promptTitle: \"Remove trade from provider\",\r\n promptContent: \"Are you sure you want to remove this trade from the provider?\",\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n searchParameters: [{ Name: \"ProviderID\", Value: this.props.location.state.selection }],\r\n linkDialogOpen: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: 'Link', tooltip: 'link the selected trade to the provider', width: \"60px\" },\r\n { id: 'remove', label: 'Remove', tooltip: 'Un-link the selected trade from the provider', disabled: utils.isNull(this.state.selectedTrades) },\r\n { id: \"update\", label: \"Update\", tooltip: \"Update the trade assessment end date\", disabled: utils.isNull(this.state.selectedTrades) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true })\r\n }\r\n else if (\"update\" === buttonId) {\r\n if (!utils.isNull(this.state.selectedTrades) && this.state.TrainingEndDate !== \"\") {\r\n\r\n this.update();\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"update\", true);\r\n }\r\n }\r\n }\r\n\r\n update() {\r\n\r\n let trades = this.state.selectedTrades.map((trade) => {\r\n return { Id: trade.Id, EditableContent: trade.RegistrationEndDate };\r\n })\r\n\r\n let data = {\r\n Objects: trades,\r\n Id: this.props.location.state.selection\r\n }\r\n\r\n let url = `api/indicium/provider/updateProviderTrades?data=${JSON.stringify(data)}`;\r\n utils.invokeUrl(url, this.successCallback, this.errorCallback)\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false,\r\n Message: \"\"\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false,\r\n Message: \"\"\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedTrades: selection, Message: \"\" },\r\n function () {\r\n const datesToUpdate = this.state.selectedTrades.filter(trade => { return trade.TrainingEndDate !== \"\" });\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection == null || selection.length === 0 || datesToUpdate.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedTrades: null, Message: \"\" },\r\n function () {\r\n const datesToUpdate = this.state.selectedTrades.filter(trade => { return trade.TrainingEndDate !== \"\" });\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"update\", selection == null || selection.length === 0 || datesToUpdate.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedTrade: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(), TrainingEndDate: \"\" });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n errorCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeTrades(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"update\", true);\r\n })\r\n\r\n let data = {\r\n Trades: this.state.selectedTrades,\r\n Id: this.props.location.selection\r\n }\r\n\r\n let fullUrl = `${url}?data=${JSON.stringify(data)}`;\r\n\r\n utils.invokeUrl(fullUrl, this.successCallback, this.errorCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n ${this.props.location.state.providerName} > Trades`}>\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig}\r\n ref={toolbarRef}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters}\r\n id={\"ProviderTrades\"}\r\n headCells={headCells}\r\n dataUrl={\"api/indicium/provider/searchTrades\"}\r\n ref={tableRef}\r\n multiSelect={true}\r\n />\r\n\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Trades to Provider: ${this.props.location.state.providerName}`}\r\n linkName={\"trades\"} postUrl={\"api/indicium/TradeSetup/linkProviderTrades\"}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n \r\n \r\n\r\n { this.removeTrades(\"api/indicium/provider/removeProviderTrade\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderTradeSearch)\r\n);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nexport const ProviderAddContactForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n\r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n\r\n if (!utils.isNull(formValues)) {\r\n return !utils.isNull(formValues.CellphoneNumber) && !utils.isStringEmpty(formValues.CellphoneNumber) ||\r\n !utils.isNull(formValues.FaxNumber) && !utils.isStringEmpty(formValues.FaxNumber) ||\r\n !utils.isNull(formValues.TelephoneNumber) && !utils.isStringEmpty(formValues.TelephoneNumber)\r\n }\r\n },\r\n message: \"At least one contact number needs to be filled in\"\r\n }}\r\n form={form} />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { ProviderAddContactForm } from \"./ProviderAddContactForm\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'Designation', numeric: false, disablePadding: true, label: 'Designation' },\r\n { id: 'TelephoneNumber', numeric: false, disablePadding: true, label: 'Telephone Number' },\r\n { id: 'CellPhoneNumber', numeric: false, disablePadding: true, label: 'CellPhone Number' },\r\n { id: 'FaxNumber', numeric: false, disablePadding: true, label: 'Fax Number' },\r\n { id: 'EMail', numeric: false, disablePadding: true, label: 'EMail' }\r\n\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderContactSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n\r\n formDialogOpen: false,\r\n selectedContact: null,\r\n propmtOpen: false,\r\n promptTitle: \"Remove contact from provider\",\r\n promptContent: \"Are you sure you want to remove this contact from the provider?\",\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n searchParameters: [{ Name: \"providerID\", Value: this.props.location.state.selection }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add contact to provider', icon: 'AddIcon' },\r\n { id: 'remove', label: '', tooltip: 'Remove contact from provider', icon: 'DeleteIcon', disabled: utils.isNull(this.state.selectedContact) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ formDialogOpen: true, Message: \"\" })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false,\r\n Message: \"Provider Contact successfully saved\",\r\n MessageStyle: \"success\"\r\n });\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n Message: \"\"\r\n })\r\n }\r\n else {\r\n this.setState({\r\n formDialogOpen: false,\r\n Message: \"A system error has occured, please try again later or contact your administrator\",\r\n MessageStyle: \"warning\"\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedContact: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedContact: null, Message: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulContactRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedContact: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulContactRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeContact(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedContact}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulContactRemoveCallback, this.unsuccessfulContactRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Provider > Contacts \" + (this.props.location.state.providerName !== null ? \"> \" + this.props.location.state.providerName + (this.props.location.state.providerSDLNumber !== null ? \" - \" + this.props.location.state.providerSDLNumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n \r\n \r\n\r\n { this.removeContact(\"api/sims/providercontact/RemoveProviderContact\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderContactSearch)\r\n);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nexport const ProviderAddUserForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n\r\n {form =>\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n\r\n if (!utils.isNull(formValues)) {\r\n return !utils.isNull(formValues.CellphoneNumber) && !utils.isStringEmpty(formValues.CellphoneNumber) ||\r\n !utils.isNull(formValues.FaxNumber) && !utils.isStringEmpty(formValues.FaxNumber) ||\r\n !utils.isNull(formValues.TelephoneNumber) && !utils.isStringEmpty(formValues.TelephoneNumber)\r\n }\r\n },\r\n message: \"Atleast one contact number needs to be filled in\"\r\n }}\r\n form={form} />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport UserSearch from \"../UserSearch\";\r\nimport { ProviderAddUserForm } from \"./ProviderAddUserForm\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport FormDialog from \"../FormDialog\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'ID No' },\r\n { id: 'TelephoneNumber', numeric: false, disablePadding: true, label: 'Telephone Number' },\r\n { id: 'CellphoneNumber', numeric: false, disablePadding: true, label: 'CellPhone Number' },\r\n { id: 'FaxNumber', numeric: false, disablePadding: true, label: 'Fax Number' },\r\n { id: 'Email', numeric: false, disablePadding: true, label: 'Email' }\r\n\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderUsersSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n linkDialogOpen: false,\r\n formDialogOpen: false,\r\n selectedUser: null,\r\n propmtOpen: false,\r\n promptTitle: \"Remove User from provider\",\r\n promptContent: \"Are you sure you want to remove this user from the provider?\",\r\n unlinkMessage: \"\",\r\n unlinkMessageStyle: \"\",\r\n searchParameters: [{ Name: \"providerID\", Value: this.props.location.state.selection }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: \"link\", label: '', tooltip: 'Link existing user to provider', icon: 'LinkIcon'},\r\n { id: 'add', label: '', tooltip: 'Add new user to provider', icon: 'AddIcon' },\r\n { id: 'remove', label: '', tooltip: 'Remove user from provider', icon: 'DeleteIcon', disabled: utils.isNull(this.state.selectedUser) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ formDialogOpen: true, removeMessage: \"\" })\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({linkDialogOpen: true, removeMessage: \"\"})\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, selectedUser: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUser: selection[0].Id, removeMessage: \"\" });\r\n } else {\r\n this.setState({ selectedUser: null, removeMessage: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n successfulUserRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedUser: null, removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulUserRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeUser(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUser}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulUserRemoveCallback, this.unsuccessfulUserRemoveCallback);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Provider > Users \" + (this.props.location.state.providerName !== null ? \"> \" + this.props.location.state.providerName + (this.props.location.state.providerSDLNumber !== null ? \" - \" + this.props.location.state.providerSDLNumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Link Users to Provider > ${this.props.location.state.providerName} - ${this.props.location.state.providerSDLNumber}`}\r\n linkName={\"Users\"} postUrl={\"api/sims/provideruser/LinkProviderUser\"} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n { this.removeUser(\"api/sims/provideruser/RemoveProviderUser\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderUsersSearch)\r\n);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nexport const ProviderSiteVisitForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n\r\n {form =>\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport FormDialog from \"../FormDialog\";\r\nimport { ProviderSiteVisitForm } from \"./ProviderSiteVisitForm\";\r\n\r\n\r\nconst headCells = [\r\n { id: \"SiteVisitDate\", numeric: false, disablePadding: true, label: \"Site Visit Date\" },\r\n { id: \"EvaluatorName\", numeric: false, disablePadding: true, label: \"Evaluator Name\" },\r\n { id: \"ReasonForSiteVisit\", numeric: false, disablePadding: true, label: \"Reason For Site Visit\" },\r\n { id: \"Outcomes\", numeric: false, disablePadding: true, label: \"Outcome\" }\r\n];\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderSiteVisitsSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n formDialogOpen: false,\r\n selectedSiteVisit: null,\r\n propmtOpen: false,\r\n promptTitle: \"Remove site visit from provider\",\r\n promptContent: \"Are you sure you want to remove this site visit from the provider?\",\r\n unlinkMessage: \"\",\r\n unlinkMessageStyle: \"\",\r\n searchParameters: [{ Name: \"providerID\", Value: this.props.location.state.selection }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: 'Add Site Visit', tooltip: 'Add site visit to provider' },\r\n { id: 'remove', label: 'Remove site visit', tooltip: 'Remove site visit from provider', disabled: utils.isNull(this.state.selectedSiteVisit) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n postAddHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, selectedSiteVisit: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedSiteVisit: selection[0].Id, removeMessage: \"\" });\r\n } else {\r\n this.setState({ selectedSiteVisit: null, removeMessage: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedSiteVisit: null, removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeSiteVisit(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedSiteVisit}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrl(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n render() {\r\n return (\r\n ${this.props.location.state.providerName} > Site Visits`}>\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n\r\n this.postAddHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n { this.removeSiteVisit(\"api/indicium/provider/removeSiteVisit\")}}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderSiteVisitsSearch)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const ProviderAccreditationForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n }\r\n label=\"BEE Provider\"\r\n />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Provider.css\";\r\nimport { ProviderAccreditationForm } from './ProviderAccreditationForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst providerRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass ProviderAccreditation extends Component {\r\n\r\n state = {\r\n providerDetails: {\r\n LegalName: \"\",\r\n }\r\n };\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ providerDetails: values });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n save() {\r\n //TODO: IMPLEMENT THE SAVE LOGIC\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n ${this.props.location.state.providerName} > Accreditation Details`}>\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true}\r\n config={toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ProviderAccreditation);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'AccreditationStartDate', numeric: false, disablePadding: true, label: 'Accreditation Start Date' },\r\n { id: 'AccreditationEndDate', numeric: false, disablePadding: true, label: 'Accreditation End Date' },\r\n { id: 'AccreditationStatus', numeric: false, disablePadding: true, label: 'Accreditation Status' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n }\r\n\r\n ]\r\n};\r\n\r\nclass ProviderAccreditationHistory extends Component {\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n ${this.props.location.state.providerName} > Accreditation History`}>\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={toolbarConfig} />\r\n \r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderAccreditationHistory)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport FormDialog from \"../FormDialog\";\r\nimport { LearnerForm } from \"../learner/LearnerForm\";\r\nimport UserSearch from \"../UserSearch\";\r\nimport LinkDialog from \"../LinkDialog\";\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'ID Number' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' },\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderLearner extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n linkDialogOpen: false,\r\n formDialogOpen: false,\r\n selectedLearner: null,\r\n propmtOpen: false,\r\n promptTitle: \"Remove Learner from Provider\",\r\n promptContent: \"Are you sure you want to remove this learner from the provider?\",\r\n removeMessage: \"\",\r\n removeMessageStyle: \"\",\r\n searchParameters: [{ Name: \"providerID\", Value: this.props.location.state.selection }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon', }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"link\", label: '', icon: 'LinkIcon', tooltip: \"Link existing learner to provider\" },\r\n {\r\n id: 'view', label: '', icon: 'ViewIcon', tooltip: 'View Selected Learner Details',\r\n disabled: utils.isNull(this.state.selectedLearner)\r\n },\r\n {\r\n id: 'change', label: '', icon: 'UpdateIcon', tooltip: 'Update Selected Learner Details',\r\n disabled: utils.isNull(this.state.selectedLearner)\r\n },\r\n {\r\n id: 'remove', label: '', icon: 'DeleteIcon', tooltip: 'Remove learner from provider',\r\n disabled: utils.isNull(this.state.selectedLearner)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.setState({ removeMessage: \"\" }, this.viewLearner());\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, removeMessage: \"\" })\r\n\r\n }\r\n else if (\"change\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.state.selectedLearnerID\r\n }\r\n });\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearner: selection[0].Id, removeMessage: \"\", selectedLearnerID: selection[0].LearnerID });\r\n } else {\r\n this.setState({ selectedLearner: null, removeMessage: \"\", selectedLearnerID: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"change\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedLearner: null, removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n removeLearner(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedLearner}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n viewLearner = () => {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Provider > Learners \" + (this.props.location.state.providerName !== null ? \"> \" + this.props.location.state.providerName + (this.props.location.state.providerSDLNumber !== null ? \" - \" + this.props.location.state.providerSDLNumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Link Learners to Provider > ${this.props.location.state.providerName} - ${this.props.location.state.providerSDLNumber}` }\r\n linkName={\"learners\"} postUrl={\"api/sims/providerlearner/LinkProviderLearner\"} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n \r\n \r\n\r\n { this.removeLearner(\"api/sims/providerlearner/RemoveProviderLearner\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderLearner)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"../../View\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'Id', numeric: false, disablePadding: true, label: 'Nr' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' },\r\n { id: 'DateUpdated', numeric: false, disablePadding: true, label: 'Date Changed' },\r\n { id: 'UpdatedBy', numeric: false, disablePadding: true, label: 'User Updated' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n\r\n }\r\n \r\n\r\n ]\r\n};\r\n\r\nclass ProviderInterventionAudit extends Component {\r\n\r\n state = {\r\n auditDialogOpen: false,\r\n selectedInterventionRecord: null\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Provider',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true });\r\n }\r\n\r\n postLinkHandler(linked) {\r\n this.setState({ linkDialogOpen: false, selectedInterventionRecord: null });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={toolbarConfig} />\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderInterventionAudit)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport FormDialog from \"../FormDialog\";\r\nimport { OutComeForm } from \"../program/OutcomeForm\";\r\nimport UnitStandardSetupSearch from \"../program/UnitStandardSetupSearch\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport ProviderInterventionAudit from '../provider/ProviderInterventionAudit';\r\n\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: false, label: 'Unit Standard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: false, label: 'Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: false, label: 'Credits', widthRation: .05 },\r\n { id: 'UnitStandardRegistrationStartDate', numeric: false, disablePadding: false, label: 'Registration Start Date' },\r\n { id: 'UnitStandardRegistrationEndDate', numeric: false, disablePadding: false, label: 'Registration End Date' },\r\n { id: 'UnitStandardLastDateForEnrolment', numeric: false, disablePadding: false, label: 'Last Enrolment Date' },\r\n { id: 'UnitStandardLastDateForAchievement', numeric: false, disablePadding: false, label: 'Last Achievement Date' },\r\n { id: 'ProgramOutcome', numeric: false, disablePadding: false, label: 'Program Outcome' },\r\n { id: 'ModeOfDelivery', numeric: false, disablePadding: false, label: 'Mode Of Delivery' },\r\n { id: 'Specialisation', numeric: false, disablePadding: false, label: 'Specialisation' }\r\n \r\n\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderUnitStandardSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n selectedUnitStandard: null,\r\n linkDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n searchParameters: [{ Name: \"ProviderID\", Value: this.props.location.state.selection }],\r\n propmtOpen: false,\r\n promptTitle: \"Remove Unit Standard from Provider\",\r\n promptContent: \"Are you sure you want to remove this unit standard from the provider?\",\r\n removeMessage: \"\",\r\n removeMessageStyle: \"\",\r\n Message: \"\",\r\n showTable: true\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"link\", label: '', icon: 'LinkIcon', tooltip: \"Link Unit Standard to provider\" },\r\n {\r\n id: 'view', label: '', icon: 'UpdateIcon', tooltip: 'Update Outcome and Mode of Delivery',\r\n disabled: utils.isNull(this.state.selectedUnitStandard)\r\n },\r\n {\r\n id: 'audit', label: '', icon: 'Auditcon', tooltip: 'View Record Audit Trail',\r\n disabled: utils.isNull(this.state.selectedUnitStandard)\r\n },\r\n {\r\n id: 'remove', label: '', icon: 'DeleteIcon', tooltip: 'Remove Unit Standard from Provider',\r\n disabled: utils.isNull(this.state.selectedUnitStandard)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.setState({ removeMessage: \"\" }, this.viewLearner());\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, removeMessage: \"\" })\r\n\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, selectedSiteVisit: null, auditDialogOpen: false, linkDialogOpen: false, selection: this.props.location.state.selection, selectedUnitStandard: null\r\n }, ()=>{\r\n this.setState({showTable: true})\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUnitStandard: selection[0].Id, removeMessage: \"\" });\r\n } else {\r\n this.setState({ selectedUnitStandard: null, removeMessage: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n removeUnitStandards(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n })\r\n\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n viewLearner = () => {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Provider > Unit Standards \" + (this.props.location.state.providerName !== null ? \"> \" + this.props.location.state.providerName + (this.props.location.state.providerSDLNumber !== null ? \" - \" + this.props.location.state.providerSDLNumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable===true && (\r\n \r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedUnitStandard}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Provider > ${this.props.location.state.providerName} - ${this.props.location.state.providerSDLNumber}`}\r\n linkName={\"unitStandards\"} postUrl={\"api/sims/providerunitstandard/LinkProviderUnitStandard\"} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n \r\n \r\n\r\n { this.removeUnitStandards(\"api/sims/providerunitstandard/RemoveProviderUnitStandard\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderUnitStandardSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./QualificationSetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport QualificationSetupSearchForm from './QualificationSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'Qualification ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: true, label: 'Qualification Title' }\r\n];\r\n\r\nclass ProviderQualificationSearchModule extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n let model = { SAQAQualificationID: \"\", SAQAQualificationTitle: \"\", id: this.props.programmeId };\r\n\r\n this.searchParameters =\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" },]\r\n \r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Qualification\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(ProviderQualificationSearchModule));\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport FormDialog from \"../FormDialog\";\r\nimport { OutComeForm } from \"../program/OutcomeForm\";\r\nimport ProviderQualificationSearchModule from \"../program/ProviderQualificationSearchModule\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport ProviderInterventionAudit from '../provider/ProviderInterventionAudit';\r\n\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: false, label: 'Qualification ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: false, label: 'Qualification Title' },\r\n { id: 'Credits', numeric: false, disablePadding: false, label: 'Credits', widthRation: .05 },\r\n { id: 'RegistrationStartDate', numeric: false, disablePadding: false, label: 'Registration Start Date' },\r\n { id: 'RegistrationEndDate', numeric: false, disablePadding: false, label: 'Registration End Date' },\r\n { id: 'LastDateForEnrolment', numeric: false, disablePadding: false, label: 'Last Enrolment Date' },\r\n { id: 'LastDateForAchievement', numeric: false, disablePadding: false, label: 'Last Achievement Date' },\r\n { id: 'ProgramOutcome', numeric: false, disablePadding: false, label: 'Program Outcome' },\r\n { id: 'ModeOfDelivery', numeric: false, disablePadding: false, label: 'Mode Of Delivery' },\r\n { id: 'Specialisation', numeric: false, disablePadding: false, label: 'Specialisation' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderQualificationSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n selectedQualification: null,\r\n linkDialogOpen: false,\r\n formDialogOpen: false,\r\n auditDialogOpen: false,\r\n searchParameters: [{ Name: \"ProviderID\", Value: this.props.location.state.selection }],\r\n propmtOpen: false,\r\n promptTitle: \"Remove Qualification from Provider\",\r\n promptContent: \"Are you sure you want to remove this qualification from the provider?\",\r\n removeMessage: \"\",\r\n removeMessageStyle: \"\",\r\n selectedQualificationTitle: null,\r\n showTable: true\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"link\", label: '', icon: 'LinkIcon', tooltip: \"Link existing Qualification to Provider\" },\r\n {\r\n id: 'view', label: '', icon: 'UpdateIcon', tooltip: 'Update Outcome and Mode of Delivery',\r\n disabled: utils.isNull(this.state.selectedQualification)\r\n },\r\n {\r\n id: 'audit', label: '', icon: 'AuditIcon', tooltip: 'View Record Audit Trail',\r\n disabled: utils.isNull(this.state.selectedQualification)\r\n },\r\n {\r\n id: 'remove', label: '', icon: 'DeleteIcon', tooltip: 'Remove Qualification from Provider',\r\n disabled: utils.isNull(this.state.selectedQualification)\r\n }]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'unitStandards', label: '', tooltip: 'Link unit standard/s to the providers qualification', icon: 'AddIcon',\r\n disabled: utils.isNull(this.state.selectedQualification)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.setState({ removeMessage: \"\" }, this.viewRecords());\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, removeMessage: \"\" })\r\n }\r\n else if (\"unitStandards\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/providerQualificationUSSearch',\r\n state: {\r\n ProviderID: this.props.location.state.selection,\r\n ProviderQualificationID: this.state.selectedQualification,\r\n QualificationTitle: this.state.selectedQualificationTitle,\r\n providerName: this.props.location.state.providerName,\r\n providerSDLNumber: this.props.location.state.providerSDLNumber\r\n }\r\n });\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, auditDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedQualification: selection[0].Id, removeMessage: \"\", selectedQualificationTitle: selection[0].SAQAQualificationTitle });\r\n } else {\r\n this.setState({ selectedQualification: null, removeMessage: \"\", selectedQualificationTitle: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedQualification: null,\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n removeQualifications(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n toolbarRef.current.setButtonDisabled(\"audit\", true);\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedQualification}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n viewRecords = () => {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Provider > Qualifications \" + (this.props.location.state.providerName !== null ? \"> \" + this.props.location.state.providerName + (this.props.location.state.providerSDLNumber !== null ? \" - \" + this.props.location.state.providerSDLNumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedQualification}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Link Qualifications to Provider > ${this.props.location.state.providerName} - ${this.props.location.state.providerSDLNumber}`}\r\n linkName={\"qualifications\"} postUrl={\"api/sims/providerqualification/LinkProviderQualification\"} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n \r\n \r\n\r\n { this.removeQualifications(\"api/sims/providerqualification/RemoveProviderQualification\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderQualificationSearch)\r\n);\r\n","import React from 'react';\r\n\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nexport const SkillsProgrammeOutcomeForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./SkillsProgramSetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport SkillsProgramSetupSearchForm from './SkillsProgramSetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport CardLayout from '../../widgets/Card';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'SkillsProgrammeCode', numeric: false, disablePadding: true, label: 'Skills Programme Code' },\r\n { id: 'SkillsProgrammeTitle', numeric: false, disablePadding: true, label: 'Skills Programme Title' }\r\n\r\n];\r\n\r\nclass ProviderSkillsProgramSearchModule extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n let model = {\r\n SkillsProgrammeCode: \"\",\r\n SkillsProgrammeTitle: \"\",\r\n id: this.props.programmeId\r\n }\r\n\r\n this.searchParameters =\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"SkillsProgrammeCode\", Value: \"\" },\r\n { Name: \"SkillsProgrammeTitle\", Value: \"\" }\r\n ]\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n if (!utils.isNull(props.personId)) {\r\n model.PersonID = props.personId;\r\n this.searchParameters.push({ Name: \"PersonID\", Value: props.personId })\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Skills Programme\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(ProviderSkillsProgramSearchModule));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport FormDialog from \"../FormDialog\";\r\nimport { SkillsProgrammeOutcomeForm } from \"../program/SkillsProgrammeOutcomeForm\";\r\nimport ProviderSkillsProgramSearchModule from \"../program/ProviderSkillsProgramSearchModule\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport ProviderInterventionAudit from '../provider/ProviderInterventionAudit';\r\n\r\nconst headCells = [\r\n { id: 'SkillsProgrammeCode', numeric: false, disablePadding: false, label: 'Skills Programme Code' },\r\n { id: 'SkillsProgrammeTitle', numeric: false, disablePadding: false, label: \"Skills Programme Title\" },\r\n { id: 'RegistrationStartDate', numeric: false, disablePadding: false, label: 'Registration Start Date' },\r\n { id: 'RegistrationEndDate', numeric: false, disablePadding: false, label: 'Registration End Date' },\r\n { id: 'ProgramOutcome', numeric: false, disablePadding: false, label: 'Program Outcome' },\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderSkillsProgrammeSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n showTable: true,\r\n selectedSkillsProgramme: null,\r\n selectedSkillsProgrammeTitle: null,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false,\r\n formDialogOpen: false,\r\n searchParameters: [{ Name: \"ProviderID\", Value: this.props.location.state.selection }],\r\n propmtOpen: false,\r\n promptTitle: \"Remove Skills Programme from Provider\",\r\n promptContent: \"Are you sure you want to remove this skills programme from the provider?\",\r\n removeMessage: \"\",\r\n removeMessageStyle: \"\",\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"link\", label: '', icon: 'LinkIcon', tooltip: \"Link existing Skills Programme to provider\" },\r\n {\r\n id: 'view', label: '', icon: 'UpdateIcon', tooltip: 'Update Outcome',\r\n disabled: utils.isNull(this.state.selectedSkillsProgramme)\r\n },\r\n {\r\n id: 'audit', label: '', icon: 'AuditIcon', tooltip: 'View Record Audit Trail',\r\n disabled: utils.isNull(this.state.selectedSkillsProgramme)\r\n },\r\n {\r\n id: 'remove', label: '', icon: 'DeleteIcon', tooltip: 'Remove Skills Programme from provider',\r\n disabled: utils.isNull(this.state.selectedSkillsProgramme)\r\n }]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.setState({ removeMessage: \"\" }, this.viewRecords());\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, removeMessage: \"\" })\r\n\r\n }\r\n else if (\"unitStandards\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/providerSkillsProgrammeUSSearch',\r\n state: {\r\n ProviderID: this.props.location.state.selection,\r\n ProviderSkillsProgrammeID: this.state.selectedSkillsProgramme,\r\n SkillsTitle: this.state.selectedSkillsProgrammeTitle,\r\n providerName: this.props.location.state.providerName,\r\n providerSDLNumber: this.props.location.state.providerSDLNumber\r\n }\r\n });\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, auditDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false\r\n }, () => { this.setState({ showTable: true }) });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedSkillsProgramme: selection[0].Id, removeMessage: \"\", selectedSkillsProgrammeTitle: selection[0].SkillsProgrammeTitle });\r\n } else {\r\n this.setState({ selectedSkillsProgramme: null, removeMessage: \"\", selectedSkillsProgrammeTitle: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedSkillsProgramme: null,\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n removeSkillsProgramme(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n toolbarRef.current.setButtonDisabled(\"audit\", true);\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedSkillsProgramme}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n viewRecords = () => {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Provider > Skills Programmes \" + (this.props.location.state.providerName !== null ? \"> \" + this.props.location.state.providerName + (this.props.location.state.providerSDLNumber !== null ? \" - \" + this.props.location.state.providerSDLNumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedSkillsProgramme}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Link Skills Programme to Provider > ${this.props.location.state.providerName} - ${this.props.location.state.providerSDLNumber}`}\r\n linkName={\"skillsprogrammes\"} postUrl={\"api/sims/providerskillsprogramme/LinkProviderSkillsProgramme\"} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n \r\n \r\n\r\n { this.removeSkillsProgramme(\"api/sims/providerskillsprogramme/RemoveProviderSkillsProgramme\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderSkillsProgrammeSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport UnitStandardsTable from '../UnitStandardsTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardType', numeric: false, disablePadding: true, label: 'Unit Standard Type' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\n\r\nclass ProviderSkillsProgrammeUSSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n keyUpSwitch: false,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From The Providers Skills Programme\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the providers skills programme?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [\r\n { Name: \"ProviderSkillsProgrammeID\", Value: this.props.location.state.ProviderSkillsProgrammeID },\r\n { Name: \"ProviderID\", Value: this.props.location.state.ProviderID }\r\n ]\r\n \r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n contextMenu: [\r\n { id: 1, description: \"Elective\" }\r\n ],\r\n id: 'link', label: 'Link', tooltip: 'link the selected unit standard to the providers Skills Programme', width: \"60px\"\r\n },\r\n { id: 'link', label: '', contextIcon: 'LinkIcon', tooltip: 'Link unit standard/s to the providers skills programme' },\r\n { id: 'unlink', label: '', icon: 'LinkOffIcon', tooltip: 'Un-link the selected unit standard from the providers skills programme', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/providerSkillsProgrammeSearch',\r\n state: {\r\n selection: this.props.location.state.ProviderID,\r\n providerName: this.props.location.state.providerName,\r\n providerSDLNumber: this.props.location.state.providerSDLNumber\r\n }\r\n });\r\n } else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&ProviderSkillsProgrammeID=${this.props.location.state.ProviderSkillsProgrammeID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Provider Skills Programme Unit Standards\"}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/providerskillsprogramme/GetProviderSkillsProgrammeUSSearch\"\r\n height={\"50vh\"}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to the Providers Skills Programme: ${this.props.location.state.SkillsTitle}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/providerskillsprogramme/linkSkillsProgrammeUnitStandards\"} usePost={true}\r\n programmeId={this.props.location.state.ProviderSkillsProgrammeID} \r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/providerskillsprogramme/unlinkProviderSkillsProgrammeUnitstandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderSkillsProgrammeUSSearch)\r\n);\r\n","import React from 'react';\r\n\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nexport const BursaryOutcomeForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./BursarySetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport BursarySetupSearchForm from './BursarySetupSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport CardLayout from '../../widgets/Card';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'BursaryCode', numeric: false, disablePadding: true, label: 'Bursary Code' },\r\n { id: 'BursaryTitle', numeric: false, disablePadding: true, label: 'Bursary Title' }\r\n\r\n];\r\n\r\nclass ProviderBursarySearchModule extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n let model = {\r\n BursaryCode: \"\",\r\n BursaryTitle: \"\",\r\n id: this.props.programmeId\r\n }\r\n\r\n this.searchParameters =\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"BursaryCode\", Value: \"\" },\r\n { Name: \"BursaryTitle\", Value: \"\" }\r\n ]\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n model.Exclusions = props.exclusions;\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n if (!utils.isNull(props.personId)) {\r\n model.PersonID = props.personId;\r\n this.searchParameters.push({ Name: \"PersonID\", Value: props.personId })\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Bursary\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(ProviderBursarySearchModule));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport FormDialog from \"../FormDialog\";\r\nimport { BursaryOutcomeForm } from \"../program/BursaryOutcomeForm\";\r\nimport ProviderBursarySearchModule from \"../program/ProviderBursarySearchModule\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport ProviderInterventionAudit from '../provider/ProviderInterventionAudit';\r\n\r\nconst headCells = [\r\n { id: 'BursaryCode', numeric: false, disablePadding: false, label: 'Bursary Code' },\r\n { id: 'BursaryTitle', numeric: false, disablePadding: false, label: \"Bursary Title\" },\r\n { id: 'RegistrationStartDate', numeric: false, disablePadding: false, label: 'Registration Start Date' },\r\n { id: 'RegistrationEndDate', numeric: false, disablePadding: false, label: 'Registration End Date' },\r\n { id: 'ProgramOutcome', numeric: false, disablePadding: false, label: 'Program Outcome' },\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderBursarySearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n showTable: true,\r\n selectedBursary: null,\r\n selectedBursaryTitle: null,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false,\r\n formDialogOpen: false,\r\n searchParameters: [{ Name: \"ProviderID\", Value: this.props.location.state.selection }],\r\n propmtOpen: false,\r\n promptTitle: \"Remove Bursary from Provider\",\r\n promptContent: \"Are you sure you want to remove this bursary from the provider?\",\r\n removeMessage: \"\",\r\n removeMessageStyle: \"\",\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"link\", label: '', icon: 'LinkIcon', tooltip: \"Link existing Bursary to provider\" },\r\n {\r\n id: 'view', label: '', icon: 'UpdateIcon', tooltip: 'Update Outcome',\r\n disabled: utils.isNull(this.state.selectedBursary)\r\n },\r\n {\r\n id: 'audit', label: '', icon: 'AuditIcon', tooltip: 'View Record Audit Trail',\r\n disabled: utils.isNull(this.state.selectedBursary)\r\n },\r\n {\r\n id: 'remove', label: '', icon: 'DeleteIcon', tooltip: 'Remove Bursary from provider',\r\n disabled: utils.isNull(this.state.selectedBursary)\r\n }]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.setState({ removeMessage: \"\" }, this.viewRecords());\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, removeMessage: \"\" })\r\n\r\n }\r\n else if (\"unitStandards\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/providerBursaryUSSearch',\r\n state: {\r\n ProviderID: this.props.location.state.selection,\r\n ProviderBursaryID: this.state.selectedBursary,\r\n SkillsTitle: this.state.selectedBursaryTitle,\r\n providerName: this.props.location.state.providerName,\r\n providerSDLNumber: this.props.location.state.providerSDLNumber\r\n }\r\n });\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, auditDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false\r\n }, () => { this.setState({ showTable: true }) });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedBursary: selection[0].Id, removeMessage: \"\", selectedBursaryTitle: selection[0].BursaryTitle });\r\n } else {\r\n this.setState({ selectedBursary: null, removeMessage: \"\", selectedBursaryTitle: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedBursary: null,\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n removeBursary(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n toolbarRef.current.setButtonDisabled(\"audit\", true);\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedBursary}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n viewRecords = () => {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Provider > Bursaries \" + (this.props.location.state.providerName !== null ? \"> \" + this.props.location.state.providerName + (this.props.location.state.providerSDLNumber !== null ? \" - \" + this.props.location.state.providerSDLNumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n {this.state.showTable === true && (\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedBursary}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Link Bursary to Provider > ${this.props.location.state.providerName} - ${this.props.location.state.providerSDLNumber}`}\r\n linkName={\"bursaries\"} postUrl={\"api/sims/providerbursary/LinkProviderBursary\"} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n \r\n \r\n\r\n { this.removeBursary(\"api/sims/providerbursary/RemoveProviderBursary\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderBursarySearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport UnitStandardsTable from '../UnitStandardsTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardType', numeric: false, disablePadding: true, label: 'Unit Standard Type' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\n\r\nclass ProviderLearnershipUSSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n keyUpSwitch: false,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From The Providers Learnership\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the providers Learnership?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [\r\n { Name: \"ProviderLearnershipID\", Value: this.props.location.state.ProviderLearnershipID },\r\n { Name: \"ProviderID\", Value: this.props.location.state.ProviderID }\r\n ]\r\n \r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close',icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n contextMenu: [\r\n { id: 1, description: \"Elective\" }\r\n ],\r\n id: 'link', label: 'Link', tooltip: 'link the selected unit standard to the providers Learnership', width: \"60px\"\r\n },\r\n { id: 'link', label: '', contextIcon: 'LinkIcon', tooltip: 'Link unit standard/s to the providers Learnership'},\r\n { id: 'unlink', label: '', icon: 'LinkOffIcon', tooltip: 'Un-link the selected unit standard from the providers Learnership', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/providerLearnershipSearch',\r\n state: {\r\n selection: this.props.location.state.ProviderID,\r\n providerName: this.props.location.state.providerName,\r\n providerSDLNumber: this.props.location.state.providerSDLNumber\r\n }\r\n });\r\n } else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&ProviderLearnershipID=${this.props.location.state.ProviderLearnershipID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Provider Learnership Unit Standards\"}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/providerLearnership/GetProviderLearnershipUSSearch\"\r\n height={\"50vh\"}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to the Providers Learnership: ${this.props.location.state.SkillsTitle}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/providerLearnership/linkLearnershipUnitStandards\"} usePost={true}\r\n programmeId={this.props.location.state.ProviderLearnershipID} \r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/providerLearnership/unlinkProviderLearnershipUnitstandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderLearnershipUSSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport UnitStandardsTable from '../UnitStandardsTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardType', numeric: false, disablePadding: true, label: 'Unit Standard Type' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\n\r\nclass ProviderQualificationUSSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n keyUpSwitch: false,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From The Providers Qualification\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the providers qualification?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [\r\n { Name: \"ProviderQualificationID\", Value: this.props.location.state.ProviderQualificationID },\r\n { Name: \"ProviderID\", Value: this.props.location.state.ProviderID }\r\n ]\r\n \r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n contextMenu: [\r\n { id: 1, description: \"Elective\" }\r\n ],\r\n id: 'link', label: 'Link', tooltip: 'link the selected unit standard to the providers qualification', width: \"60px\"\r\n },\r\n { id: 'link', label: '', contextIcon: 'LinkIcon', tooltip: 'Link unit standard/s to the providers qualification'},\r\n { id: 'unlink', label: '', icon: 'LinkOffIcon', tooltip: 'Un-link the selected unit standard from the providers qualification', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/ProviderQualificationsSearch',\r\n state: {\r\n selection: this.props.location.state.ProviderID,\r\n providerName: this.props.location.state.providerName,\r\n providerSDLNumber: this.props.location.state.providerSDLNumber\r\n }\r\n });\r\n } else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&ProviderQualificationID=${this.props.location.state.ProviderQualificationID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Provider Qualification Unit Standards\"}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/providerqualification/GetProviderQualificationUSSearch\"\r\n height={\"50vh\"}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to the Providers Qualification: ${this.props.location.state.QualificationTitle}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/providerqualification/linkQualificationUnitStandards\"} usePost={true}\r\n programmeId={this.props.location.state.ProviderQualificationID} \r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/providerqualification/unlinkproviderqualificationUnitstandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderQualificationUSSearch)\r\n);\r\n","import React from 'react';\r\n\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nexport const LearnershipOutcomeForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport FormDialog from \"../FormDialog\";\r\nimport { LearnershipOutcomeForm } from \"../program/LearnershipOutcomeForm\";\r\nimport LearnershipSetupSearch from \"../program/LearnershipSetupSearch\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport ProviderInterventionAudit from '../provider/ProviderInterventionAudit';\r\n\r\nconst headCells = [\r\n { id: 'LearnershipCode', numeric: false, disablePadding: false, label: 'Learnership Code' },\r\n { id: 'LearnershipTitle', numeric: false, disablePadding: false, label: 'Leanership Title' },\r\n { id: 'QualificationTitle', numeric: false, disablePadding: false, label: 'Learnership Qualification Title' },\r\n { id: 'QualificationID', numeric: false, disablePadding: false, label: 'Learnership Qualification ID' },\r\n { id: 'ProgramOutcome', numeric: false, disablePadding: false, label: 'Program Outcome' },\r\n { id: 'Specialisation', numeric: false, disablePadding: false, label: 'Specialisation' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderLearnershipSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n showTable: true,\r\n selectedLearnership: null,\r\n linkDialogOpen: false,\r\n selectedLearnershipTitle: null,\r\n auditDialogOpen: false,\r\n formDialogOpen: false,\r\n searchParameters: [{ Name: \"ProviderID\", Value: this.props.location.state.selection }],\r\n propmtOpen: false,\r\n promptTitle: \"Remove Leanership from Provider\",\r\n promptContent: \"Are you sure you want to remove this leanership from the provider?\",\r\n removeMessage: \"\",\r\n removeMessageStyle: \"\",\r\n\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"link\", label: '', icon: 'LinkIcon', tooltip: \"Link existing Learnership to Provider\" },\r\n {\r\n id: 'view', label: '', icon: 'UpdateIcon', tooltip: 'Update Outcome and Specialisation',\r\n disabled: utils.isNull(this.state.selectedLearnership)\r\n },\r\n {\r\n id: 'audit', label: '', icon: 'AuditIcon', tooltip: 'View Record Audit Trail',\r\n disabled: utils.isNull(this.state.selectedLearnership)\r\n },\r\n {\r\n id: 'remove', label: '', icon: 'DeleteIcon', tooltip: 'Remove Learnership from Provider',\r\n disabled: utils.isNull(this.state.selectedLearnership)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.setState({ removeMessage: \"\" }, this.viewRecords());\r\n }\r\n else if (\"audit\" === buttonId) {\r\n this.setState({ auditDialogOpen: true, message: \"\" })\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, removeMessage: \"\" })\r\n\r\n }\r\n else if (\"unitStandards\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/providerLearnershipUSSearch',\r\n state: {\r\n ProviderID: this.props.location.state.selection,\r\n ProviderLearnershipID: this.state.selectedLearnership,\r\n LearnershipTitle: this.state.selectedLearnershipTitle,\r\n providerName: this.props.location.state.providerName,\r\n providerSDLNumber: this.props.location.state.providerSDLNumber\r\n }\r\n });\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n showTable: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, auditDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false\r\n }, () => this.setState({ showTable: true }));\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n linkDialogOpen: false,\r\n auditDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearnership: selection[0].Id, removeMessage: \"\", selectedLearnershipTitle: selection[0].LearnershipTitle });\r\n } else {\r\n this.setState({ selectedLearnership: null, removeMessage: \"\", selectedLearnershipTitle: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"audit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedLearnership: null,\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n removeLearnerships(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n toolbarRef.current.setButtonDisabled(\"audit\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedLearnership}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n viewRecords = () => {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Provider > Learnerships \" + (this.props.location.state.providerName !== null ? \"> \" + this.props.location.state.providerName + (this.props.location.state.providerSDLNumber !== null ? \" - \" + this.props.location.state.providerSDLNumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n {this.state.showTable === true && (\r\n\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n )}\r\n\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n\r\n \r\n \r\n\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={\"Audit Trail\"}\r\n selectionId={this.props.location.state.selectedLearnership}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Link Learnerships to Provider > ${this.props.location.state.providerName} - ${this.props.location.state.providerSDLNumber}`}\r\n linkName={\"Learnerships\"} postUrl={\"api/sims/providerlearnership/LinkProviderLearnership\"} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n \r\n \r\n\r\n { this.removeLearnerships(\"api/sims/providerlearnership/RemoveProviderLearnership\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderLearnershipSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport FormDialog from \"../FormDialog\";\r\nimport { AssessorForm } from \"../assessor/AssessorForm\";\r\nimport AssessorSearch from \"../assessor/AssessorSearch\";\r\nimport LinkDialog from \"../LinkDialog\";\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: false, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: false, label: 'Surname' },\r\n { id: 'IdNumber', numeric: false, disablePadding: false, label: 'ID Number' },\r\n { id: 'RegistrationNumber', numeric: false, disablePadding: false, label: 'Registration Number' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderAssessorSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n linkDialogOpen: false,\r\n formDialogOpen: false,\r\n selectedAssessor: null,\r\n selectedPerson: null,\r\n propmtOpen: false,\r\n promptTitle: \"Remove Assessor from Provider\",\r\n promptContent: \"Are you sure you want to remove this assessor from the provider?\",\r\n removeMessage: \"\",\r\n removeMessageStyle: \"\",\r\n searchParameters: [{ Name: \"providerID\", Value: this.props.location.state.selection }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"link\", label: '', icon: 'LinkIcon', tooltip: \"Link existing learner to provider\" },\r\n {\r\n id: 'view', label: '', icon: 'ViewIcon', tooltip: 'View Selected Assessor Details',\r\n disabled: utils.isNull(this.state.selectedAssessor)\r\n },\r\n {\r\n id: 'remove', label: '', icon: 'DeleteIcon', tooltip: 'Remove assessor from provider',\r\n disabled: utils.isNull(this.state.selectedAssessor)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.setState({ removeMessage: \"\" }, this.viewLearner());\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, removeMessage: \"\" })\r\n\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedAssessor: selection[0].Id, removeMessage: \"\", selectedPerson: selection[0].AssessorID });\r\n } else {\r\n this.setState({ selectedAssessor: null, removeMessage: \"\", selectedPerson: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedAssessor: null, removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n removeAssessors(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedAssessor}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n viewLearner = () => {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Provider > Assessors \" + (this.props.location.state.providerName !== null ? \"> \" + this.props.location.state.providerName + (this.props.location.state.providerSDLNumber !== null ? \" - \" + this.props.location.state.providerSDLNumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Link Assessors to Provider > ${this.props.location.state.providerName} - ${this.props.location.state.providerSDLNumber}`}\r\n linkName={\"assessors\"} postUrl={\"api/sims/providerassessor/LinkProviderAssessor\"} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n \r\n \r\n\r\n { this.removeAssessors(\"api/sims/providerassessor/RemoveProviderAssessor\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderAssessorSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport FormDialog from \"../FormDialog\";\r\nimport { ModeratorForm } from \"../moderator/ModeratorForm\";\r\nimport ModeratorSearch from \"../moderator/ModeratorSearch\";\r\nimport LinkDialog from \"../LinkDialog\";\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: false, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: false, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: false, label: 'ID Number' },\r\n { id: 'RegistrationNumber', numeric: false, disablePadding: false, label: 'Registration Number' },\r\n { id: 'RegistrationEndDate', numeric: false, disablePadding: false, label: 'Registration End Date' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass ProviderModeratorSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n linkDialogOpen: false,\r\n formDialogOpen: false,\r\n selectedModerator: null,\r\n selectedPerson: null,\r\n propmtOpen: false,\r\n promptTitle: \"Remove Moderator from Provider\",\r\n promptContent: \"Are you sure you want to remove this moderator from the provider?\",\r\n removeMessage: \"\",\r\n removeMessageStyle: \"\",\r\n searchParameters: [{ Name: \"providerID\", Value: this.props.location.state.selection }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"link\", label: '', icon: 'LinkIcon', tooltip: \"Link existing moderator to provider\" },\r\n {\r\n id: 'view', label: '', icon: 'ViewIcon', tooltip: 'View Selected Moderator Details',\r\n disabled: utils.isNull(this.state.selectedModerator)\r\n },\r\n {\r\n id: 'remove', label: '', icon: 'DeleteIcon', tooltip: 'Remove Moderator from provider',\r\n disabled: utils.isNull(this.state.selectedModerator)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.setState({ removeMessage: \"\" }, this.viewLearner());\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, removeMessage: \"\" })\r\n\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, selectedSiteVisit: null, linkDialogOpen: false\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedModerator: selection[0].Id, removeMessage: \"\", selectedPerson: selection[0].ModeratorID });\r\n } else {\r\n this.setState({ selectedModerator: null, removeMessage: \"\", selectedPerson: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedModerator: null, removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n removeMessage: response.Message,\r\n removeMessageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n removeModerator(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedModerator}&providerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n viewLearner = () => {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n {\"Provider > Moderators \" + (this.props.location.state.providerName !== null ? \"> \" + this.props.location.state.providerName + (this.props.location.state.providerSDLNumber !== null ? \" - \" + this.props.location.state.providerSDLNumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Link Moderators to Provider > ${this.props.location.state.providerName} - ${this.props.location.state.providerSDLNumber\r\n }`}\r\n linkName={\"moderators\"} postUrl={\"api/sims/providermoderator/LinkProviderModerator\"} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n \r\n \r\n\r\n { this.removeModerator(\"api/sims/providermoderator/RemoveProviderModerator\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderModeratorSearch)\r\n);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function ExternalModeratorSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n First Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.firstName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Middle Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.middleName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Surname\r\n\t\t\t\t\t\t\t\t\r\n props.model.surname = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n ID Number\r\n\t\t\t\t\t\t\t\t\r\n props.model.IDNo = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./ExternalModerator.css\";\r\nimport EnhancedTable from '../../widgets/Table';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ExternalModeratorSearchForm from './ExternalModeratorSearchForm';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'MiddleName', numeric: false, disablePadding: true, label: 'Middle Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'ID Number' }\r\n\r\n];\r\n\r\nconst toolbarButtons = [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' }\r\n];\r\n\r\nconst handler = (state) => {\r\n return {\r\n //isLoading: state.learner.isLoading,\r\n //message: state.learner.message\r\n };\r\n};\r\n\r\nclass ExternalModeratorSearch extends Component {\r\n\r\n state = {\r\n model: {},\r\n searchParameters: [{ Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n ],\r\n selection: []\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"add\" === buttonId) {\r\n this.props.history.push('/external-moderator');\r\n } else {\r\n this.props.history.push({\r\n pathname: '/external-moderator',\r\n state: { selection: this.state.selection[0] }\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.message !== this.props.message && this.props.message) {\r\n this.setState({ message: this.props.message });\r\n }\r\n }\r\n \r\n search() {\r\n this.setState({\r\n searchParameters: [{ Name: \"FirstName\", Value: this.state.model.firstName },\r\n { Name: \"MiddleName\", Value: this.state.model.middleName },\r\n { Name: \"Surname\", Value: this.state.model.surname },\r\n { Name: \"IDNo\", Value: this.state.model.idNumber } \r\n ]\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

\r\n External Moderators\r\n

\r\n

\r\n {this.state.message}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={typeof this.state.selection !== 'undefined' && this.state.selection !== null && this.state.selection.length > 0} buttons={toolbarButtons}/>\r\n this.setState({ selection: selection})}\r\n dataUrl=\"api/indicium/moderator/search\" paged={false}\r\n searchParameters={this.state.searchParameters} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ExternalModeratorSearch)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, {FormTabContainer} from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport UnitStandardSetupSearch from './UnitStandardSetupSearch';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const UnitStandardForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleReplacementChange = form => event => {\r\n if (!event.target.checked) {\r\n form.values['ReplacementUnitStandardID'] = null;\r\n form.setLookupSelection(\"ReplacementUnitStandardID\", null);\r\n }\r\n\r\n form.updateValue('IsReplacement', event.target.checked);\r\n };\r\n\r\n const handleReRegisteredChange = form => event => {\r\n if (!event.target.checked) {\r\n form.values['NewRegistrationStartDate'] = null;\r\n form.values['NewRegistrationEndDate'] = null;\r\n form.values['NewLastEnrolmentDate'] = null;\r\n form.values['NewLastAchievementDate'] = null;\r\n }\r\n\r\n form.updateValue('IsReregistered', event.target.checked);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.RegistrationStartDate)\r\n && formValues.RegistrationStartDate.getTime() < formValues.RegistrationEndDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n key={tabValue}\r\n label=\"Registration End Date\"\r\n className='{classes.textField} w-100 '\r\n required\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n form={form} \r\n disabled={!props.editPermission}\r\n />\r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.LastEnrolmentDate)\r\n && formValues.LastEnrolmentDate.getTime() < formValues.LastAchievementDate.getTime()\r\n }, message: \"Last achievement date must be greater than last enrolment date\"\r\n }}\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n form={form} \r\n disabled={!props.editPermission}\r\n />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return !formValues.IsReregistered || (formValues.IsReregistered && !utils.isNull(formValues)\r\n && !utils.isNull(formValues.NewRegistrationStartDate)\r\n && formValues.NewRegistrationStartDate.getTime() < formValues.NewRegistrationEndDate.getTime())\r\n }, message: \"New registration end date must be greater than new registration start date\"\r\n }}\r\n InputProps={{\r\n readOnly: true,\r\n disabled: !form.values.IsReregistered\r\n }}\r\n form={form} \r\n disabled={!props.editPermission}\r\n />\r\n
\r\n \r\n \r\n {\r\n return !formValues.IsReregistered || (!utils.isNull(formValues)\r\n && !utils.isNull(formValues.NewLastEnrolmentDate)\r\n && formValues.NewLastEnrolmentDate.getTime() < formValues.NewLastAchievementDate.getTime())\r\n }, message: \"New achievement end date must be greater than new enrolment last enrolment date\"\r\n }}\r\n InputProps={{\r\n readOnly: true,\r\n disabled: !form.values.IsReregistered\r\n }}\r\n form={form} \r\n disabled={!props.editPermission}\r\n />\r\n
\r\n \r\n
\r\n \r\n form.setLookupSelection(\"ReplacementUnitStandardID\", value)} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./UnitStandardSetup.css\";\r\nimport { UnitStandardForm } from './UnitStandardSetupForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst unitStandardRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass UnitStandardSetup extends Component {\r\n\r\n state = {\r\n unitStandardDetails: {\r\n SAQAUnitStandardTitle: \"\",\r\n SAQAUnitStandardCode: \"\"\r\n },\r\n messageStyle: \"message\",\r\n id: null,\r\n model: {\r\n ReplacementUnitStandardID: null,\r\n QualityAssuranceBodyID: { Id: 11, Description: \"FOODBEV\" }\r\n },\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit }\r\n ]\r\n }\r\n ]\r\n }\r\n };\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n\r\n //TODO: To Be Refactored\r\n if (!utils.isNull(values.RegistrationStartDate)) {\r\n utils.autoSetDate(this, unitStandardRef, values.RegistrationStartDate, 5, 0, 1, \"RegistrationEndDate\", \"RegistrationStartDate\")\r\n }\r\n\r\n if (!utils.isNull(values.RegistrationEndDate)) {\r\n utils.autoSetDate(this, unitStandardRef, values.RegistrationEndDate, 1, 0, -1, \"LastEnrolmentDate\", \"RegistrationEndDate\")\r\n }\r\n if (!utils.isNull(values.LastEnrolmentDate)) {\r\n utils.autoSetDate(this, unitStandardRef, values.LastEnrolmentDate, 3, 0, -1, \"LastAchievementDate\", \"LastEnrolmentDate\")\r\n }\r\n\r\n if (!utils.isNull(values.NewRegistrationStartDate)) {\r\n utils.autoSetDate(this, unitStandardRef, values.NewRegistrationStartDate, 5, 0, 1, \"NewRegistrationEndDate\", \"NewRegistrationStartDate\")\r\n }\r\n\r\n if (!utils.isNull(values.NewRegistrationEndDate)) {\r\n utils.autoSetDate(this, unitStandardRef, values.NewRegistrationEndDate, 1, 0, -1, \"NewLastEnrolmentDate\", \"NewRegistrationEndDate\")\r\n }\r\n\r\n if (!utils.isNull(values.NewLastEnrolmentDate)) {\r\n utils.autoSetDate(this, unitStandardRef, values.NewLastEnrolmentDate, 3, 0, -1, \"NewLastAchievementDate\", \"NewLastEnrolmentDate\")\r\n }\r\n\r\n this.setState({\r\n unitstandardSetupDetails: {\r\n SAQAUnitStandardCode: values.SAQAUnitStandardID,\r\n SAQAUnitStandardTitle: values.SAQAUnitStandardTitle\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n save() {\r\n //utils.saveForm(this, unitStandardRef, `api/indicium/unitStandardSetup/updateUnitStadardSetup`, null, null, \"/unitStandardSetup\");\r\n let formValue = unitStandardRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let isAdd = true;\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n formValue.Document = this.state.Document;\r\n const data = JSON.stringify(formValue);\r\n let url = \"api/sims/unitstandardsetupdetails/updateunitstandard\";\r\n if (!isAdd) {\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n } else {\r\n url = \"api/sims/unitstandardsetupdetails/insertunitstandard\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n }\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/unitstandardsetupSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Unit Standard Details\"}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.state.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} editPermission={this.props.menuPermissionItem.Edit } />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(UnitStandardSetup));\r\n\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport { Row, Col, Form } from 'react-bootstrap';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport QualificationSetupSearch from './QualificationSetupSearch';\r\nimport OFOSearch from './OFOSearch';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport DocumentUpload from \"../../widgets/DocumentUpload\";\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const QualificationForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [filename, setFilename] = React.useState(\"\");\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleReplacementChange = form => event => {\r\n if (!event.target.checked) {\r\n form.values['qualification'] = null;\r\n form.setLookupSelection(\"qualification\", null);\r\n }\r\n\r\n form.updateValue('IsReplacement', event.target.checked);\r\n };\r\n\r\n const handleReRegisteredChange = form => event => {\r\n if (!event.target.checked) {\r\n form.values['NewRegistrationStartDate'] = null;\r\n form.values['NewRegistrationEndDate'] = null;\r\n form.values['NewLastEnrolmentDate'] = null;\r\n form.values['NewLastAchievementDate'] = null;\r\n }\r\n\r\n form.updateValue('IsReregistered', event.target.checked);\r\n };\r\n\r\n function offsetDate(date, yearOffset, monthOffset, dayOffset) {\r\n let year = date.getFullYear() + yearOffset;\r\n let day = date.getDate() + dayOffset;\r\n let month = date.getMonth() + monthOffset;\r\n\r\n return new Date(year, month, day);\r\n }\r\n\r\n function dateChange(form, date) {\r\n\r\n let newregend = offsetDate(date, 4, 0, 0);\r\n let newlastenrolment = offsetDate(date, 6, 0, 0);\r\n let newlastachievement = offsetDate(date, 9, 0, 0);\r\n\r\n form.values['NewRegistrationEndDate'] = newregend;\r\n form.values['NewLastEnrolmentDate'] = newlastenrolment;\r\n form.values['NewLastAchievementDate'] = newlastachievement;\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n }\r\n };\r\n\r\n function FileDownload(id) {\r\n utils.invokeUrl(\"api/sims/qualificationsetupdetails/DownloadDocument?id=\" + id, (response) => {\r\n\r\n var blob = new Blob([base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n };\r\n\r\n function base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(form.values[\"OriginalFileName\"] !== \"\" && !utils.isNull(form.values[\"OriginalFileName\"])) || !utils.isNull(props.savedOriginalFileName) ?\r\n \r\n FileDownload(props.id)} >Download Document\r\n \r\n :\r\n \r\n  \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && formValues.Credits <= 1000\r\n }, message: \"This value must be less than 1000\"\r\n }}\r\n InputProps={{\r\n readOnly: false,\r\n }}\r\n form={form} disabled={!props.editPermission}\r\n />\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && formValues.Credits <= 1000\r\n }, message: \"This value must be less than 1000\"\r\n }}\r\n InputProps={{\r\n readOnly: false,\r\n }}\r\n form={form} disabled={!props.editPermission}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.RegistrationStartDate)\r\n && formValues.RegistrationStartDate.getTime() < formValues.RegistrationEndDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n label=\"Registration End Date\"\r\n className='{classes.textField} w-100 '\r\n form={form} disabled={!props.editPermission}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.LastEnrolmentDate)\r\n && formValues.LastEnrolmentDate.getTime() < formValues.LastAchievementDate.getTime()\r\n }, message: \"Last achievement date must be greater than last enrolment date\"\r\n }}\r\n className='{classes.textField} w-100 '\r\n form={form} disabled={!props.editPermission}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return !formValues.IsReregistered || (formValues.IsReregistered && !utils.isNull(formValues)\r\n && !utils.isNull(formValues.NewRegistrationStartDate)\r\n && formValues.NewRegistrationStartDate.getTime() < formValues.NewRegistrationEndDate.getTime())\r\n }, message: \"New registration end date must be greater than new registration start date\"\r\n }}\r\n form={form} disabled={!props.editPermission}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return !formValues.IsReregistered || (!utils.isNull(formValues)\r\n && !utils.isNull(formValues.NewRegistrationStartDate)\r\n && formValues.NewLastEnrolmentDate.getTime() < formValues.NewLastAchievementDate.getTime())\r\n }, message: \"New achievement end date must be greater than new enrolment last enrolment date\"\r\n }}\r\n\r\n required={form.values.IsReregistered}\r\n disabled={!form.values.IsReregistered}\r\n form={form} disabled={!props.editPermission}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"QualificationToBeReplacedID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n \r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./QualificationSetup.css\";\r\nimport { QualificationForm } from './QualificationSetupForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n//import DocumentUpload from \"../../widgets/DocumentUpload\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst qualificationRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarRef = React.createRef();\r\nclass Qualification extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n qualificationSetupDetails: {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\"\r\n },\r\n model: {\r\n OFOOccupationID: null,\r\n QualificationToBeReplacedID: null\r\n },\r\n initialUnitStandardType: null,\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n Document: {\r\n OriginalFileName: \"\",\r\n EntityID: \"\",\r\n Document: {\r\n name: \"\",\r\n size: \"\",\r\n type: \"\",\r\n base64: \"\"\r\n }\r\n },\r\n };\r\n\r\n this.defaultModel = {\r\n NQFLevelID: { Id: 1, Description: \"Level 01\" },\r\n QualityAssuranceBodyID: { Id: 11, Description: \"FOODBEV\" }\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: 'unitStandards', label: '', icon: 'LinkIcon', tooltip: 'Link unit standards to quilification', disabled: utils.isNull(this.state.id) },\r\n { id: \"learnership\", label: '', icon: 'CreateIcon', tooltip: 'Create learnership', disabled: utils.isNull(this.state.id) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleFileUpload = (data) => {\r\n if (!utils.isNull(data)) {\r\n this.setState({\r\n Document: {\r\n OriginalFileName: data.name,\r\n EntityID: data.id,\r\n Document: {\r\n name: data.name,\r\n size: data.size,\r\n base64: data.base64,\r\n type: data.type\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n\r\n if (!utils.isNull(values)) {\r\n if (this.state.initialUnitStandardType === null && !utils.isNull(values.QualificationTypeID)) {\r\n this.setState({ initialUnitStandardType: values.QualificationTypeID.Id });\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", utils.isNull(this.state.id) || values.QualificationTypeID.Id === 2);\r\n }\r\n\r\n //TODO: To Be Refactored\r\n if (!utils.isNull(values.RegistrationStartDate)) {\r\n utils.autoSetDate(this, qualificationRef, values.RegistrationStartDate, 5, 0, 1, \"RegistrationEndDate\", \"RegistrationStartDate\")\r\n }\r\n\r\n if (!utils.isNull(values.RegistrationEndDate)) {\r\n utils.autoSetDate(this, qualificationRef, values.RegistrationEndDate, 1, 0, -1, \"LastEnrolmentDate\", \"RegistrationEndDate\")\r\n }\r\n\r\n if (!utils.isNull(values.LastEnrolmentDate)) {\r\n utils.autoSetDate(this, qualificationRef, values.LastEnrolmentDate, 3, 0, -1, \"LastAchievementDate\", \"LastEnrolmentDate\")\r\n }\r\n\r\n this.setState({\r\n qualificationSetupDetails: {\r\n SAQAQualificationID: values.SAQAQualificationID,\r\n SAQAQualificationTitle: values.SAQAQualificationTitle,\r\n QualificationTypeID: values.QualificationTypeID\r\n },\r\n //Document: { ...Document, OriginalFileName: values.OriginalFileName },\r\n currentOriginalFileName: !utils.isNull(values.Document) ? values.Document.name : null\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"unitStandards\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/qualunitstandardsearch',\r\n state: {\r\n qualificationId: this.props.location.state.selection,\r\n qualificationTitle: this.state.qualificationSetupDetails.SAQAQualificationTitle,\r\n credits: this.state.qualificationSetupDetails.Credits\r\n }\r\n });\r\n }\r\n else if (\"learnership\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learnershipsetupSearch',\r\n })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n let qualType = response.QualificationType;\r\n if (!utils.isNull(qualType) && qualType !== 0) {\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", qualType === 2);\r\n }\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId !== 0) {\r\n this.setState({ id: response.EntityId, savedOriginalFileName: this.state.currentOriginalFileName }, () => {\r\n this.props.history.push({\r\n pathname: \"/Qualificationsetup\",\r\n state: { selection: this.state.id }\r\n })\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", this.state.id === null || response.MessageType === \"ERROR\" || qualType === 2 || qualType === 0)\r\n toolbarRef.current.setButtonDisabled(\"learnership\", this.state.id === null || response.MessageType === \"ERROR\")\r\n })\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = qualificationRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let isAdd = true;\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n //formValue.Document = this.state.Document;\r\n const data = JSON.stringify(formValue);\r\n let url = \"api/sims/qualificationsetupdetails/updatequalification\";\r\n if (!isAdd) {\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n } else {\r\n url = \"api/sims/qualificationsetupdetails/insertqualification\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n }\r\n }\r\n //utils.saveForm(this, qualificationRef, `api/indicium/QualificationSetup/updateQualificationSetup`,this.successCallback, null);\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/qualificationsetupSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n Qualification\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n {/* */}\r\n {/**/}\r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig}\r\n />\r\n
*/}\r\n\r\n\r\n {/* { !this.props.menuPermissionItem.Edit ?*/}\r\n {/* '' : */}\r\n {/* }*/}\r\n {/*
\r\n
\r\n this.handleFormValueChange(values)} editPermission={this.props.menuPermissionItem.Edit}\r\n defaultHandlerObj={this.defaultModel}\r\n savedOriginalFileName={this.state.savedOriginalFileName}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(Qualification));\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\n\r\n\r\nexport default function AETSetupSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport AETSetupSearchForm from './../AET/AETSetupSearchForm';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from \"./../../../ViewUtils\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'AETProgrammeCode', numeric: false, disablePadding: true, label: 'Programme Code' },\r\n { id: 'AETProgrammeDescription', numeric: false, disablePadding: true, label: 'Programme Description' }\r\n];\r\n\r\nconst searchParameters = [\r\n { Name: \"AETProgrammeCode\", Value: \"\" },\r\n { Name: \"AETProgrammeDescription\", Value: \"\" }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass AETSetupSearch extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n model: {\r\n AETProgrammeCode: \"\",\r\n AETProgrammeDescription: \"\"\r\n },\r\n selectedAETProgramme: null,\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit},\r\n { id: \"delete\", label: '', tooltip: 'Remove AET', icon: 'DeleteIcon', disabled: true, visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AETSetupSearch));\r\n\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport OFOSearch from '../OFOSearch';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nexport const AETSetupForm = React.forwardRef((props, ref) => {\r\n\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../widgets/Toolbar';\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport ViewUtils from \"./../../../ViewUtils\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport { AETSetupForm } from './AETSetupForm';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\n\r\nconst AETRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarRef = React.createRef();\r\nclass AETSetup extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n AETSetupDetails: {\r\n AETProgrammeID: \"\",\r\n AETProgrammeDescription: \"\"\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n ]\r\n };\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ AETSetupDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } \r\n }\r\n\r\n save() {\r\n //utils.saveForm(this, AETRef, `api/indicium/AETSetup/insertPpdateAETSetup`,this.successCallback, null);\r\n\r\n let formValue = AETRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let isAdd = true;\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n formValue.Document = this.state.Document;\r\n const data = JSON.stringify(formValue);\r\n let url = \"api/sims/aetsetupdetails/updateaet\";\r\n if (!isAdd) {\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n } else {\r\n url = \"api/sims/aetsetupdetails/insertaet\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n }\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/aetSetupSearch');\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId !== 0) {\r\n this.setState({ id: response.EntityId }, () => {\r\n this.props.history.push({\r\n pathname: \"/AETsetup\",\r\n state: { selection: this.state.id }\r\n })\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"AET Details\"}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AETSetup);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../../widgets/TabPanel';\r\nimport { SelectItem } from '../../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../../widgets/Forms';\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport OFOSearch from '../OFOSearch';\r\nimport { LookupField } from '../../../widgets/LookupField';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const TradesDetailsSetupForm = React.forwardRef((props, ref) => {\r\n\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.RegistrationStartDate)\r\n && formValues.RegistrationStartDate.getTime() < formValues.RegistrationEndDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n form={form}\r\n />\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../widgets/Toolbar';\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport ViewUtils from \"./../../../ViewUtils\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\n\r\nimport { TradesDetailsSetupForm } from './TradesDetailsSetupForm';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\n\r\nconst tradeRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass TradeSetup extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n TradeSetupDetails: {\r\n ArtisanCode: \"\",\r\n ArtisanTitle: \"\"\r\n },\r\n model: {\r\n OFOOccupationID: null,\r\n QualityAssuranceBodyID: { Id: 11, Description: \"FOODBEV\" }\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n ]\r\n };\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ TradeSetupDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } \r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId !== 0) {\r\n this.setState({ id: response.EntityId }, () => {\r\n this.props.history.push({\r\n pathname: \"/Tradesetup\",\r\n state: { selection: this.state.id }\r\n })\r\n });\r\n\r\n tradeRef.current.setValue(\"VersionNumber\", response.GeneratedOFOVersionNumber);\r\n }\r\n }\r\n\r\n save() {\r\n //utils.saveForm(this, tradeRef, `api/indicium/TradeSetup/updateInsertTrade`, this.successCallback, null);\r\n\r\n let formValue = tradeRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let isAdd = true;\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n formValue.Document = this.state.Document;\r\n const data = JSON.stringify(formValue);\r\n let url = \"api/sims/tradesetupdetails/updatetrade\";\r\n if (!isAdd) {\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n } else {\r\n url = \"api/sims/tradesetupdetails/inserttrade\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n }\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/tradeSetupSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Trade Details\"}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(TradeSetup);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport UnitStandardsTable from '../UnitStandardsTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport UnitStandardSetupSearch from './UnitStandardSetupSearch';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport LinkDialog from \"../LinkDialog\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardType', numeric: false, disablePadding: true, label: 'Unit Standard Type' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\nclass LearnershipUnitStandardSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From Learnership\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the learnership?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"LearnershipID\", Value: props.location.state.LearnershipID }],\r\n LearnershipType: props.location.state.LearnershipType\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n contextMenu: [\r\n { id: 1, description: \"Core\" },\r\n { id: 2, description: \"Fundamental\" },\r\n { id: 3, description: \"Elective\" },\r\n { id: 4, description: \"Compulsory Elective\" }\r\n ],\r\n id: 'link', label: 'Link', contextIcon: 'LinkIcon', tooltip: 'Link the selected unit standard to the learnership', width: \"60px\"\r\n },\r\n { id: 'unlink', label: 'Un-Link', icon: 'LinkOffIcon', tooltip: 'Un-link the selected unit standard from the learnership', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n \r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnershipSetup',\r\n state: { selection: this.props.location.state.LearnershipID, id: this.props.location.state.LearnershipID }\r\n });\r\n } else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n })\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&learnershipId=${this.props.location.state.LearnershipID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", parseInt(this.state.LearnershipType) === 3)\r\n }\r\n )\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", parseInt(this.state.LearnershipType) === 3)\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Learnership > Unit Standards\"}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/LearnershipSetupUnitStandard/GetSearch\"\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Learnership: ${this.props.location.state.LearnershipTitle}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/LearnershipSetupUnitStandard/linkUnitStandards\"} usePost={true}\r\n programmeId={this.props.location.state.LearnershipID} programmeType=\"Q\"\r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/LearnershipSetupUnitStandard/unlinkLearnershipUnitstandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnershipUnitStandardSearch)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport OFOSearch from './OFOSearch';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport QualificationSetupSearch from './QualificationSetupSearch';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const LearnershipSetupForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"QualificationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n {\r\n return !utils.isNull(formValues)\r\n && formValues.Credits <= 1000\r\n }, message: \"This field must be numeric\"\r\n }}\r\n required\r\n InputProps={{\r\n readOnly: false,\r\n }}\r\n form={form} \r\n disabled={!props.editPermission}\r\n />\r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && formValues.Credits <= 1000\r\n }, message: \"This field must be numeric\"\r\n }}\r\n required\r\n InputProps={{\r\n readOnly: false,\r\n }}\r\n form={form} \r\n disabled={!props.editPermission}\r\n />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.RegistrationStartDate)\r\n && formValues.RegistrationStartDate.getTime() < formValues.RegistrationEndDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n required\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n form={form} \r\n disabled={!props.editPermission}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./LearnershipSetup.css\";\r\nimport { LearnershipSetupForm } from './LearnershipSetupForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst leanershipRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass LearnershipSetup extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n learnershipSetupDetails: {\r\n LearnershipCode: \"\",\r\n LearnershipTitle: \"\"\r\n },\r\n model: {\r\n QualificationID: null,\r\n OFOOccupationID: null,\r\n QualityAssuranceBodyID: { Id: 11, Description: \"FOODBEV\" }\r\n },\r\n initialLearnershipType: null,\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'unitStandards', label: 'UNIT STANDARDS', tooltip: 'Link unit standards to quilification', disabled: utils.isNull(this.state.id) },\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relations Management', disabled: utils.isNull(this.state.id) },\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n\r\n if (this.state.initialLearnershipType === null && !utils.isNull(values.LearnershipTypeID)) {\r\n this.setState({initialLearnershipType: values.LearnershipTypeID.Id})\r\n }\r\n\r\n this.setState({ learnershipSetupDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"unitStandards\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learnershipUnitStandardSearch',\r\n state: {\r\n LearnershipID: this.props.location.state.selection,\r\n LearnershipTitle: this.state.learnershipSetupDetails.LearnershipTitle,\r\n LearnershipType: this.state.initialLearnershipType\r\n }\r\n });\r\n } else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnershipSetupCRM',\r\n state: {\r\n LearnershipID: !utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection) ? this.props.location.state.selection : this.state.selection,\r\n LearnershipName: this.state.learnershipSetupDetails.LearnershipTitle\r\n }\r\n })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n //When it's a newly created learnership\r\n if (!utils.isNull(response.EntityId) && response.EntityId !== 0) {\r\n this.setState({ id: response.EntityId}, () => {\r\n this.props.history.push({\r\n pathname: \"/LearnershipSetup\",\r\n state: { selection: this.state.id, initialLearnershipType: this.state.initialLearnershipType }\r\n })\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", this.state.id === null || response.MessageType === \"ERROR\")\r\n })\r\n }\r\n //When it's an update of an already existing learnership\r\n else if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({initialLearnershipType: !utils.isNull(response.LearnershipType) && response.LearnershipType !== \"\" ? parseInt(response.LearnershipType): null })\r\n }\r\n }\r\n\r\n save() {\r\n //utils.saveForm(this, leanershipRef, `api/indicium/LearnershipSetup/updateInsertLearnershipSetup`, this.successCallback, null);\r\n let formValue = leanershipRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let isAdd = true;\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n formValue.Document = this.state.Document;\r\n const data = JSON.stringify(formValue);\r\n let url = \"api/sims/learnershipsetupdetails/updatelearnership\";\r\n if (!isAdd) {\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n } else {\r\n url = \"api/sims/learnershipsetupdetails/insertlearnership\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n }\r\n }\r\n }\r\n \r\n closeView() {\r\n this.props.history.push('/learnershipsetupSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Learnership Details\"}\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={this.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)}\r\n editPermission={this.props.menuPermissionItem.Edit} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LearnershipSetup));\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\nconst utils = new ViewUtils();\r\nexport default function LearnershipSetupCRMBulkUploadDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n\r\n const handleClose = (save, cancel) => {\r\n setOpen(false);\r\n props.closeHandler(save, cancel)\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(false, true);\r\n };\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n Outstanding documents to upload\r\n

\r\n\r\n\r\n
\r\n
    \r\n \r\n {props.missingDocTypesArray.map((lookupitem, index) => (\r\n
  • {lookupitem.Description}
  • \r\n ))}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../crm/Comments\";\r\nimport Documents from \"../crm/Documents\";\r\nimport Emails from \"../crm/Emails\";\r\nimport CommentsDialog from \"../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../crm/EmailDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport MissingDocumentsDialog from \"./LearnershipSetupCRMBulkUploadDialog\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Learnership\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/LearnershipSetupCRM/GetCRMComments\",\r\n documents: \"api/sims/LearnershipSetupCRM/GetCRMDocuments\",\r\n emails: \"api/sims/LearnershipSetupCRM/GetCRMEmail\",\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/LearnershipSetupCRM/AddCRMComment\",\r\n documents: \"api/sims/LearnershipSetupCRM/AddCRMDocument\",\r\n emails: \"api/sims/LearnershipSetupCRM/AddCRMEmail\",\r\n },\r\n\r\n docTypeUrls: {\r\n documents: \"api/sims/LearnershipSetupcrm/GetLookupListLearnershipDocumentType\"\r\n }\r\n}\r\n\r\nclass LearnershipSetupCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.SetCommunicationType)) ? this.props.location.state.SetCommunicationType : \"1\",\r\n displayMissingDocTypes: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.displayMissingDocTypes)) ? this.props.location.state.displayMissingDocTypes : null,\r\n missingDocTypesArray: [],\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n missingDocDailogOpen: false,\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n\r\n componentDidMount() {\r\n if (this.state.displayMissingDocTypes) {\r\n this.getMissingDocTypes();\r\n }\r\n }\r\n getMissingDocTypes() {\r\n let url = \"api/sims/LearnershipSetupCRM/GetCRMBulkDocumentsNotUploaded?ID=\" + this.props.location.state.LearnershipID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n missingDocTypesArray: response,\r\n displayMissingDocTypes: false,\r\n dialogues: { ...this.state.dialogues, missingDocDailogOpen: response.length > 0 }\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnershipSetup',\r\n state: { selection: this.props.location.state.LearnershipID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n else if (\"bulkAdd\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnershipSetupCRMBulkUpload',\r\n state: {\r\n LearnershipID: this.props.location.state.LearnershipID,\r\n LearnershipName: this.props.location.state.LearnershipName\r\n }\r\n });\r\n }\r\n else if (\"bulkDownload\" === buttonId) {\r\n utils.invokeUrl(\"api/sims/LearnershipSetupcrm/DownloadCRMBulkDocuments?ID=\" + this.props.location.state.LearnershipID, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/LearnershipSetupCRM/getCRMDocument?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/LearnershipSetupcrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n }\r\n\r\n SetCommunicationType(values) {\r\n\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {`Learnership > ${this.props.location.state.LearnershipName} > CRM`}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n {this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({ emailAddress: email, emailSubject: subject }, () => {\r\n this.setState({ emailAddress: email, emailSubject: subject })\r\n })\r\n\r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Learnership Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Learnership Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'bulkAdd', label: '', tooltip: 'Upload Bulk Document', icon: 'BulkUploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'bulkDownload', label: '', tooltip: 'Download All Documents', icon: 'DownloadIcon', visible: this.props.menuPermissionItem.View }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.LearnershipID} showLearnerDocumentType={true} />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Learnership Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.LearnershipID}\r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.LearnershipID} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.LearnershipID}\r\n showLearnerDocumentType={true}\r\n getLearnerDocumentType={config.docTypeUrls.documents}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.LearnershipID}\r\n />\r\n this.postUploadHandler(save, cancel)}\r\n missingDocTypesArray={this.state.missingDocTypesArray}\r\n />\r\n
\r\n }\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(LearnershipSetupCRM));\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { withStyles } from '@material-ui/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst pdfVersion = \"2.6.347\"\r\nconst pdfWorkerUrl = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfVersion}/pdf.worker.js`\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nconst styles = theme => ({\r\n button: {\r\n margin: theme.spacing(1),\r\n },\r\n input: {\r\n display: 'none',\r\n },\r\n errorMessageDisplay: {\r\n color: 'red'\r\n }\r\n});\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n\r\n postUrls: {\r\n documents: \"api/sims/LearnershipSetupCRM/AddCRMDocumentBulkUpload\"\r\n },\r\n\r\n docTypeUrls: {\r\n documents: \"api/sims/LearnershipSetupcrm/GetLookupListLearnershipDocumentType\"\r\n }\r\n}\r\n\r\nclass LearnershipSetupCRMBulkUpload extends Component {\r\n\r\n state = {\r\n fileInfo: null,\r\n numPages: 0,\r\n lookupArray: null,\r\n documentPageInfo: [],\r\n message: null,\r\n messageStyle: null,\r\n savedSuccessfully: false\r\n }\r\n\r\n componentDidMount() {\r\n this.getlookup();\r\n }\r\n\r\n getlookup() {\r\n let url = config.docTypeUrls.documents;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ lookupArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/LearnershipSetupCRM',\r\n state: {\r\n LearnershipID: this.props.location.state.LearnershipID,\r\n LearnershipName: this.props.location.state.LearnershipName,\r\n SetCommunicationType: \"2\",\r\n displayMissingDocTypes: this.state.savedSuccessfully\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleChange = (event) => {\r\n if (event.target.files && event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: file.name,\r\n type: file.type,\r\n size: Math.round(file.size / 1000) + ' kB',\r\n base64: reader.result\r\n }\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n }\r\n }\r\n\r\n onDocumentLoadSuccess = ({ numPages }) => {\r\n this.setState({ numPages: numPages });\r\n }\r\n\r\n handleArrayChange = (event, pageNumber) => {\r\n const values = [...this.state.documentPageInfo];\r\n\r\n const itemIndex = values.findIndex((item) => {\r\n return item.PageNumber === pageNumber;\r\n });\r\n\r\n const dropDownItem = this.state.lookupArray.find((item) => {\r\n return item.Id === event.target.value;\r\n });\r\n\r\n let pageInfo;\r\n if (itemIndex > -1) {\r\n pageInfo = { ...values[itemIndex] };\r\n pageInfo.DocumentTypeID = { Id: event.target.value, Description: dropDownItem.Description };\r\n values.splice(itemIndex, 1, pageInfo);\r\n }\r\n else {\r\n pageInfo = {\r\n PageNumber: pageNumber,\r\n DocumentTypeID: { Id: event.target.value, Description: dropDownItem.Description }\r\n };\r\n values.push(pageInfo);\r\n }\r\n\r\n this.setState({ documentPageInfo: values });\r\n }\r\n\r\n getArrayValue = (pageNumber) => {\r\n const item = this.state.documentPageInfo.find((item) => {\r\n return item.PageNumber === pageNumber;\r\n });\r\n\r\n if (item) {\r\n return item.DocumentTypeID.Id;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n uploadDocument = () => {\r\n\r\n let saveObject = {\r\n EntityID: this.props.location.state.LearnershipID,\r\n FileInfo: this.state.fileInfo,\r\n DocumentPageInfo: this.state.documentPageInfo\r\n }\r\n\r\n let url = config.postUrls.documents;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(saveObject)\r\n }\r\n )\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({ savedSuccessfully: true }, () => { this.handleToolbarButtonClick('close'); });\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n let pages = null;\r\n if (this.state.numPages > 0) {\r\n pages = [];\r\n for (let i = 0; i < this.state.numPages; i++) {\r\n pages.push(\r\n
\r\n \r\n

{'Page ' + (i + 1)} of {this.state.numPages}

\r\n

Document Type:

\r\n this.handleArrayChange(values, i + 1)}>\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n\r\n {lookupitem.Description}\r\n\r\n ))}\r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n

\r\n {`Learnership > ${this.props.location.state.LearnershipName} > CRM > Bulk Document Upload`}\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Learnership CRM', icon: 'CloseIcon' },\r\n ]\r\n }\r\n ]\r\n }} />\r\n\r\n \r\n \r\n {\r\n \r\n {this.state.fileInfo ? this.state.fileInfo.name : null}\r\n \r\n }\r\n {\r\n this.state.fileInfo ?\r\n
\r\n \r\n {pages}\r\n \r\n  \r\n \r\n
\r\n : null\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(withStyles(styles)(LearnershipSetupCRMBulkUpload)));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport { Row, Col, Form } from 'react-bootstrap';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport QualificationSetupSearch from './QualificationSetupSearch';\r\nimport OFOSearch from './OFOSearch';\r\nimport { LookupField } from '../../widgets/LookupField';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const SAQAXMLImportForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n \r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./SAQAXMLImport.css\";\r\nimport { SAQAXMLImportForm } from './SAQAXMLImportForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst saqaxmlimportRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarRef = React.createRef();\r\nclass SAQAXMLImport extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'Import', tooltip: 'Import', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n\r\n if (!utils.isNull(values)) {\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n }\r\n\r\n errorCallBack = (response) => {\r\n utils.showMessage(this, \"A system error has occurred. Please contact your system administrator\", \"ERROR\");\r\n }\r\n\r\n save() {\r\n let formValue = saqaxmlimportRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n const data = JSON.stringify(formValue);\r\n\r\n const url = \"api/sims/saqaxmlimport/insertsaqaprogramme\";\r\n utils.invokeUrl(url, this.successCallback,\r\n this.errorCallBack,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"SAQA Import\"}\r\n

\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig}\r\n />\r\n
\r\n
\r\n this.handleFormValueChange(values)} menuPermissionItem={this.props.menuPermissionItem} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(SAQAXMLImport));\r\n\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function ShortCourseSetupSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Short Course Code \r\n\t\t\t\t\t\t\t\t\r\n props.model.courseCode = ev.target.value}\r\n labelWidth={labelWidth} \r\n />\r\n \r\n \r\n \r\n \r\n Short Course Title\r\n\t\t\t\t\t\t\t\t\r\n props.model.courseTitle = ev.target.value}\r\n labelWidth={labelWidth} \r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./ShortCourseSetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ShortCourseSetupSearchForm from './ShortCourseSetupSearchForm';\r\nimport CardLayout from '../../widgets/Card';\r\n\r\n\r\nconst headCells = [\r\n { id: 'ShortCourseCode', numeric: false, disablePadding: true, label: 'Course Code' },\r\n { id: 'ShortCourseTitle', numeric: false, disablePadding: true, label: 'Course Title' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst searchParameters = [\r\n { Name: \"ShortCourseCode\", Value: \"\" },\r\n { Name: \"ShortCourseTitle\", Value: \"\" }\r\n];\r\n\r\nclass ShortCourseSetupSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n ShortCourseCode: \"\",\r\n ShortCourseTitle: \"\"\r\n },\r\n };\r\n\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n ); \r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ShortCourseSetupSearch)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport OFOSearch from './OFOSearch';\r\nimport QualificationSetupSearch from \"./QualificationSetupSearch\";\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const SkillsProgrammeSetup = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n const [leadsToQualification, setLeadsToQualification] = React.useState(props.leadsToQualification);\r\n\r\n React.useEffect(() => {\r\n setLeadsToQualification(props.leadsToQualification);\r\n }, [props.leadsToQualification]);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && formValues.Credits <= 1000\r\n }, message: \"This value must be less than 1000\"\r\n }}\r\n InputProps={{\r\n readOnly: false,\r\n }}\r\n form={form} \r\n disabled={!props.editPermission}\r\n />\r\n\r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.RegistrationStartDate)\r\n && formValues.RegistrationStartDate.getTime() < formValues.RegistrationEndDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n form={form} \r\n disabled={!props.editPermission}\r\n />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"QualificationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./SkillsProgramSetup.css\";\r\nimport { SkillsProgrammeSetup } from './SkillsProgramSetupForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst skillsRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass SkillsProgramme extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n skillsProgrammeSetupDetails: {\r\n SkillsProgrammeCode: \"\",\r\n SkillsProgrammeTitle: \"\",\r\n\r\n },\r\n model: {\r\n OFOOccupationID: null,\r\n QualificationID: null,\r\n QualityAssuranceBodyID: { Id: 11, Description: \"FOODBEV\" }\r\n },\r\n leadsToQualification: false,\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit},\r\n { id: 'unitStandards', label: 'UNIT STANDARDS', tooltip: 'Link unit standards to quilification', disabled: utils.isNull(this.state.id) },\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relations Management', disabled: utils.isNull(this.state.id) },\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n let typeId = values.SkillsProgrammeTypeID;\r\n\r\n if (!utils.isNull(typeId) && typeId.Description === \"Leads to a Qualification\") {\r\n this.setState({ leadsToQualification: true });\r\n } else if(!utils.isNull(typeId) && typeId.Description === \"Standalone\") {\r\n this.setState({ leadsToQualification: false });\r\n }\r\n\r\n this.setState({ skillsProgrammeSetupDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n \r\n } else if (\"unitStandards\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsProgramestandardsearch',\r\n state: {\r\n skillsID: !utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection) ? this.props.location.state.selection : this.state.selection,\r\n SkillsTitle: this.state.skillsProgrammeSetupDetails.SkillsProgrammeTitle\r\n }\r\n });\r\n } else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/SkillsProgrammeSetupCRM',\r\n state: {\r\n SkillsProgrammeID: !utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection) ? this.props.location.state.selection : this.state.selection,\r\n SkillsProgrammeName: this.state.skillsProgrammeSetupDetails.SkillsProgrammeTitle\r\n }\r\n })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId !== 0) {\r\n this.setState({ id: response.EntityId }, () => {\r\n this.props.history.push({\r\n pathname: \"/SkillsProgrammeSetup\",\r\n state: { selection: this.state.id }\r\n })\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", this.state.id === null || response.MessageType === \"ERROR\")\r\n })\r\n skillsRef.current.setValue(\"SkillsProgrammeCode\", response.SkillsProgrammeCode);\r\n }\r\n }\r\n\r\n save() {\r\n //utils.saveForm(this, skillsRef, `api/indicium/SkillsProgrammeSetup/updateSkillsSetup`, this.successCallback, null);\r\n\r\n let formValue = skillsRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let isAdd = true;\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n formValue.Document = this.state.Document;\r\n const data = JSON.stringify(formValue);\r\n let url = \"api/sims/skillsprogrammesetupdetails/updateskillsprogramme\";\r\n if (!isAdd) {\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n } else {\r\n url = \"api/sims/skillsprogrammesetupdetails/insertskillsprogramme\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n }\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/skillsProgrammeSetupSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Skills Programmes Details\"}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={this.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} data={this.state.model}\r\n leadsToQualification={this.state.leadsToQualification}\r\n editPermission={this.props.menuPermissionItem.Edit}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(SkillsProgramme));\r\n\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\nconst utils = new ViewUtils();\r\nexport default function SkillsProgrammeSetupCRMBulkUploadDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n\r\n const handleClose = (save, cancel) => {\r\n setOpen(false);\r\n props.closeHandler(save, cancel)\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(false, true);\r\n };\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n Outstanding documents to upload\r\n

\r\n\r\n\r\n
\r\n
    \r\n \r\n {props.missingDocTypesArray.map((lookupitem, index) => (\r\n
  • {lookupitem.Description}
  • \r\n ))}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../crm/Comments\";\r\nimport Documents from \"../crm/Documents\";\r\nimport Emails from \"../crm/Emails\";\r\nimport CommentsDialog from \"../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../crm/EmailDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport MissingDocumentsDialog from \"./SkillsProgrammeSetupCRMBulkUploadDialog\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"SkillsProgramme\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/SkillsProgrammeSetupCRM/GetCRMComments\",\r\n documents: \"api/sims/SkillsProgrammeSetupCRM/GetCRMDocuments\",\r\n emails: \"api/sims/SkillsProgrammeSetupCRM/GetCRMEmail\",\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/SkillsProgrammeSetupCRM/AddCRMComment\",\r\n documents: \"api/sims/SkillsProgrammeSetupCRM/AddCRMDocument\",\r\n emails: \"api/sims/SkillsProgrammeSetupCRM/AddCRMEmail\",\r\n },\r\n\r\n docTypeUrls: {\r\n documents: \"api/sims/SkillsProgrammeSetupcrm/GetLookupListSkillsProgrammeDocumentType\"\r\n }\r\n}\r\n\r\nclass SkillsProgrammeSetupCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.SetCommunicationType)) ? this.props.location.state.SetCommunicationType : \"1\",\r\n displayMissingDocTypes: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.displayMissingDocTypes)) ? this.props.location.state.displayMissingDocTypes : null,\r\n missingDocTypesArray: [],\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n missingDocDailogOpen: false,\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n\r\n componentDidMount() {\r\n if (this.state.displayMissingDocTypes) {\r\n this.getMissingDocTypes();\r\n }\r\n }\r\n getMissingDocTypes() {\r\n let url = \"api/sims/SkillsProgrammeSetupCRM/GetCRMBulkDocumentsNotUploaded?ID=\" + this.props.location.state.SkillsProgrammeID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n missingDocTypesArray: response,\r\n displayMissingDocTypes: false,\r\n dialogues: { ...this.state.dialogues, missingDocDailogOpen: response.length > 0 }\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/SkillsProgrammeSetup',\r\n state: { selection: this.props.location.state.SkillsProgrammeID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n else if (\"bulkAdd\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/SkillsProgrammeSetupCRMBulkUpload',\r\n state: {\r\n SkillsProgrammeID: this.props.location.state.SkillsProgrammeID,\r\n SkillsProgrammeName: this.props.location.state.SkillsProgrammeName\r\n }\r\n });\r\n }\r\n else if (\"bulkDownload\" === buttonId) {\r\n utils.invokeUrl(\"api/sims/SkillsProgrammeSetupcrm/DownloadCRMBulkDocuments?ID=\" + this.props.location.state.SkillsProgrammeID, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/SkillsProgrammeSetupCRM/getCRMDocument?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/SkillsProgrammeSetupcrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n }\r\n\r\n SetCommunicationType(values) {\r\n\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {`SkillsProgramme > ${this.props.location.state.SkillsProgrammeName} > CRM`}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n {this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({ emailAddress: email, emailSubject: subject }, () => {\r\n this.setState({ emailAddress: email, emailSubject: subject })\r\n })\r\n\r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to SkillsProgramme Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to SkillsProgramme Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'bulkAdd', label: '', tooltip: 'Upload Bulk Document', icon: 'BulkUploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'bulkDownload', label: '', tooltip: 'Download All Documents', icon: 'DownloadIcon', visible: this.props.menuPermissionItem.View }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.SkillsProgrammeID} showLearnerDocumentType={true} />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to SkillsProgramme Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.SkillsProgrammeID}\r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.SkillsProgrammeID} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.SkillsProgrammeID}\r\n showLearnerDocumentType={true}\r\n getLearnerDocumentType={config.docTypeUrls.documents}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.SkillsProgrammeID}\r\n />\r\n this.postUploadHandler(save, cancel)}\r\n missingDocTypesArray={this.state.missingDocTypesArray}\r\n />\r\n
\r\n }\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(SkillsProgrammeSetupCRM));\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { withStyles } from '@material-ui/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst pdfVersion = \"2.6.347\"\r\nconst pdfWorkerUrl = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfVersion}/pdf.worker.js`\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nconst styles = theme => ({\r\n button: {\r\n margin: theme.spacing(1),\r\n },\r\n input: {\r\n display: 'none',\r\n },\r\n errorMessageDisplay: {\r\n color: 'red'\r\n }\r\n});\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n\r\n postUrls: {\r\n documents: \"api/sims/SkillsProgrammeSetupCRM/AddCRMDocumentBulkUpload\"\r\n },\r\n\r\n docTypeUrls: {\r\n documents: \"api/sims/SkillsProgrammeSetupcrm/GetLookupListSkillsProgrammeDocumentType\"\r\n }\r\n}\r\n\r\nclass SkillsProgrammeSetupCRMBulkUpload extends Component {\r\n\r\n state = {\r\n fileInfo: null,\r\n numPages: 0,\r\n lookupArray: null,\r\n documentPageInfo: [],\r\n message: null,\r\n messageStyle: null,\r\n savedSuccessfully: false\r\n }\r\n\r\n componentDidMount() {\r\n this.getlookup();\r\n }\r\n\r\n getlookup() {\r\n let url = config.docTypeUrls.documents;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ lookupArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/SkillsProgrammeSetupCRM',\r\n state: {\r\n SkillsProgrammeID: this.props.location.state.SkillsProgrammeID,\r\n SkillsProgrammeName: this.props.location.state.SkillsProgrammeName,\r\n SetCommunicationType: \"2\",\r\n displayMissingDocTypes: this.state.savedSuccessfully\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleChange = (event) => {\r\n if (event.target.files && event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: file.name,\r\n type: file.type,\r\n size: Math.round(file.size / 1000) + ' kB',\r\n base64: reader.result\r\n }\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n }\r\n }\r\n\r\n onDocumentLoadSuccess = ({ numPages }) => {\r\n this.setState({ numPages: numPages });\r\n }\r\n\r\n handleArrayChange = (event, pageNumber) => {\r\n const values = [...this.state.documentPageInfo];\r\n\r\n const itemIndex = values.findIndex((item) => {\r\n return item.PageNumber === pageNumber;\r\n });\r\n\r\n const dropDownItem = this.state.lookupArray.find((item) => {\r\n return item.Id === event.target.value;\r\n });\r\n\r\n let pageInfo;\r\n if (itemIndex > -1) {\r\n pageInfo = { ...values[itemIndex] };\r\n pageInfo.DocumentTypeID = { Id: event.target.value, Description: dropDownItem.Description };\r\n values.splice(itemIndex, 1, pageInfo);\r\n }\r\n else {\r\n pageInfo = {\r\n PageNumber: pageNumber,\r\n DocumentTypeID: { Id: event.target.value, Description: dropDownItem.Description }\r\n };\r\n values.push(pageInfo);\r\n }\r\n\r\n this.setState({ documentPageInfo: values });\r\n }\r\n\r\n getArrayValue = (pageNumber) => {\r\n const item = this.state.documentPageInfo.find((item) => {\r\n return item.PageNumber === pageNumber;\r\n });\r\n\r\n if (item) {\r\n return item.DocumentTypeID.Id;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n uploadDocument = () => {\r\n\r\n let saveObject = {\r\n EntityID: this.props.location.state.SkillsProgrammeID,\r\n FileInfo: this.state.fileInfo,\r\n DocumentPageInfo: this.state.documentPageInfo\r\n }\r\n\r\n let url = config.postUrls.documents;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(saveObject)\r\n }\r\n )\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({ savedSuccessfully: true }, () => { this.handleToolbarButtonClick('close'); });\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n let pages = null;\r\n if (this.state.numPages > 0) {\r\n pages = [];\r\n for (let i = 0; i < this.state.numPages; i++) {\r\n pages.push(\r\n
\r\n \r\n

{'Page ' + (i + 1)} of {this.state.numPages}

\r\n

Document Type:

\r\n this.handleArrayChange(values, i + 1)}>\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n\r\n {lookupitem.Description}\r\n\r\n ))}\r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n

\r\n {`SkillsProgramme > ${this.props.location.state.SkillsProgrammeName} > CRM > Bulk Document Upload`}\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to SkillsProgramme CRM', icon: 'CloseIcon' },\r\n ]\r\n }\r\n ]\r\n }} />\r\n\r\n \r\n \r\n {\r\n \r\n {this.state.fileInfo ? this.state.fileInfo.name : null}\r\n \r\n }\r\n {\r\n this.state.fileInfo ?\r\n
\r\n \r\n {pages}\r\n \r\n  \r\n \r\n
\r\n : null\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(withStyles(styles)(SkillsProgrammeSetupCRMBulkUpload)));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport OFOSearch from './OFOSearch';\r\nimport QualificationSetupSearch from \"./QualificationSetupSearch\";\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\nconst utils = new ViewUtils();\r\nexport const BursarySetup = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n const [leadsToQualification, setLeadsToQualification] = React.useState(props.leadsToQualification);\r\n\r\n React.useEffect(() => {\r\n setLeadsToQualification(props.leadsToQualification);\r\n }, [props.leadsToQualification]);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && formValues.Credits <= 1000\r\n }, message: \"This value must be less than 1000\"\r\n }}\r\n InputProps={{\r\n readOnly: false,\r\n }}\r\n form={form}\r\n disabled={!props.editPermission}\r\n />\r\n\r\n
\r\n \r\n \r\n {\r\n return !utils.isNull(formValues)\r\n && !utils.isNull(formValues.RegistrationStartDate)\r\n && formValues.RegistrationStartDate.getTime() < formValues.RegistrationEndDate.getTime()\r\n }, message: \"Start date must be before the end date\"\r\n }}\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n form={form}\r\n disabled={!props.editPermission}\r\n />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"QualificationID\", value)\r\n }} autoFetchData={true} selection={props.selection} />\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./BursarySetup.css\";\r\nimport { BursarySetup } from './BursarySetupForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst bursaryRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass Bursary extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n BursarySetupDetails: {\r\n BursaryCode: \"\",\r\n BursaryTitle: \"\",\r\n\r\n },\r\n model: {\r\n OFOOccupationID: null,\r\n QualificationID: null,\r\n QualityAssuranceBodyID: { Id: 11, Description: \"FOODBEV\" }\r\n },\r\n leadsToQualification: false,\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: 'unitStandards', label: 'UNIT STANDARDS', tooltip: 'Link unit standards to quilification', disabled: utils.isNull(this.state.id) },\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relations Management', disabled: utils.isNull(this.state.id) },\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n let typeId = values.BursarySetupTypeID;\r\n\r\n if (!utils.isNull(typeId) && typeId.Description === \"Leads to a Qualification\") {\r\n this.setState({ leadsToQualification: true });\r\n } else if (!utils.isNull(typeId) && typeId.Description === \"Standalone\") {\r\n this.setState({ leadsToQualification: false });\r\n }\r\n\r\n this.setState({ BursarySetupDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n\r\n } else if (\"unitStandards\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/bursarystandardsearch',\r\n state: {\r\n bursaryID: !utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection) ? this.props.location.state.selection : this.state.selection,\r\n BursaryTitle: this.state.BursarySetupDetails.BursaryTitle\r\n }\r\n });\r\n } else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/BursarySetupCRM',\r\n state: {\r\n BursaryID: !utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection) ? this.props.location.state.selection : this.state.selection,\r\n BursaryName: this.state.BursarySetupDetails.BursaryTitle\r\n }\r\n })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId !== 0) {\r\n this.setState({ id: response.EntityId }, () => {\r\n this.props.history.push({\r\n pathname: \"/BursarySetup\",\r\n state: { selection: this.state.id }\r\n })\r\n toolbarRef.current.setButtonDisabled(\"unitStandards\", this.state.id === null || response.MessageType === \"ERROR\")\r\n })\r\n bursaryRef.current.setValue(\"BursaryCode\", response.BursaryCode);\r\n }\r\n }\r\n\r\n save() {\r\n //utils.saveForm(this, skillsRef, `api/indicium/SkillsProgrammeSetup/updateSkillsSetup`, this.successCallback, null);\r\n\r\n let formValue = bursaryRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let isAdd = true;\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n formValue.Document = this.state.Document;\r\n const data = JSON.stringify(formValue);\r\n let url = \"api/sims/bursarysetupdetails/updatebursary\";\r\n if (!isAdd) {\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n } else {\r\n url = \"api/sims/bursarysetupdetails/insertbursary\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: data\r\n }\r\n )\r\n }\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/bursarySetupSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Bursary Details\"}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={this.toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} data={this.state.model}\r\n leadsToQualification={this.state.leadsToQualification}\r\n editPermission={this.props.menuPermissionItem.Edit}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(Bursary));\r\n\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\nconst utils = new ViewUtils();\r\nexport default function BursarySetupCRMBulkUploadDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n\r\n const handleClose = (save, cancel) => {\r\n setOpen(false);\r\n props.closeHandler(save, cancel)\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(false, true);\r\n };\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n Outstanding documents to upload\r\n

\r\n\r\n\r\n
\r\n
    \r\n \r\n {props.missingDocTypesArray.map((lookupitem, index) => (\r\n
  • {lookupitem.Description}
  • \r\n ))}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../crm/Comments\";\r\nimport Documents from \"../crm/Documents\";\r\nimport Emails from \"../crm/Emails\";\r\nimport CommentsDialog from \"../crm/CommentsDialog\";\r\nimport DocumentsDialog from \"../crm/DocumentsDialog\";\r\nimport EmailDialog from \"../crm/EmailDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport MissingDocumentsDialog from \"./BursarySetupCRMBulkUploadDialog\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Bursary\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/BursarySetupCRM/GetCRMComments\",\r\n documents: \"api/sims/BursarySetupCRM/GetCRMDocuments\",\r\n emails: \"api/sims/BursarySetupCRM/GetCRMEmail\",\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/BursarySetupCRM/AddCRMComment\",\r\n documents: \"api/sims/BursarySetupCRM/AddCRMDocument\",\r\n emails: \"api/sims/BursarySetupCRM/AddCRMEmail\",\r\n },\r\n\r\n docTypeUrls: {\r\n documents: \"api/sims/BursarySetupcrm/GetLookupListBursaryDocumentType\"\r\n }\r\n}\r\n\r\nclass BursarySetupCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.SetCommunicationType)) ? this.props.location.state.SetCommunicationType : \"1\",\r\n displayMissingDocTypes: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.displayMissingDocTypes)) ? this.props.location.state.displayMissingDocTypes : null,\r\n missingDocTypesArray: [],\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n missingDocDailogOpen: false,\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n\r\n componentDidMount() {\r\n if (this.state.displayMissingDocTypes) {\r\n this.getMissingDocTypes();\r\n }\r\n }\r\n getMissingDocTypes() {\r\n let url = \"api/sims/BursarySetupCRM/GetCRMBulkDocumentsNotUploaded?ID=\" + this.props.location.state.BursaryID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n missingDocTypesArray: response,\r\n displayMissingDocTypes: false,\r\n dialogues: { ...this.state.dialogues, missingDocDailogOpen: response.length > 0 }\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/bursarySetup',\r\n state: { selection: this.props.location.state.BursaryID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n else if (\"bulkAdd\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/BursarySetupCRMBulkUpload',\r\n state: {\r\n BursaryID: this.props.location.state.BursaryID,\r\n BursaryName: this.props.location.state.BursaryName\r\n }\r\n });\r\n }\r\n else if (\"bulkDownload\" === buttonId) {\r\n utils.invokeUrl(\"api/sims/BursarySetupcrm/DownloadCRMBulkDocuments?ID=\" + this.props.location.state.BursaryID, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleCellSelect(rowid, headCell) {\r\n if (headCell.contentType === \"document\") {\r\n const link = document.createElement('a');\r\n link.href = '/api/indicium/BursarySetupCRM/getCRMDocument?documentID=' + rowid;\r\n link.download = 'download';\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/BursarySetupcrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false, missingDocDailogOpen: false } })\r\n }\r\n }\r\n\r\n SetCommunicationType(values) {\r\n\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {`Bursary > ${this.props.location.state.BursaryName} > CRM`}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n
\r\n \r\n \r\n \r\n {this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({ emailAddress: email, emailSubject: subject }, () => {\r\n this.setState({ emailAddress: email, emailSubject: subject })\r\n })\r\n\r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n\r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Bursary Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Bursary Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'bulkAdd', label: '', tooltip: 'Upload Bulk Document', icon: 'BulkUploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'bulkDownload', label: '', tooltip: 'Download All Documents', icon: 'DownloadIcon', visible: this.props.menuPermissionItem.View }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.BursaryID} showLearnerDocumentType={true} />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Bursary Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.BursaryID}\r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.BursaryID} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.BursaryID}\r\n showLearnerDocumentType={true}\r\n getLearnerDocumentType={config.docTypeUrls.documents}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.BursaryID}\r\n />\r\n this.postUploadHandler(save, cancel)}\r\n missingDocTypesArray={this.state.missingDocTypesArray}\r\n />\r\n
\r\n }\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(BursarySetupCRM));\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { withStyles } from '@material-ui/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst pdfVersion = \"2.6.347\"\r\nconst pdfWorkerUrl = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfVersion}/pdf.worker.js`\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nconst styles = theme => ({\r\n button: {\r\n margin: theme.spacing(1),\r\n },\r\n input: {\r\n display: 'none',\r\n },\r\n errorMessageDisplay: {\r\n color: 'red'\r\n }\r\n});\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n\r\n postUrls: {\r\n documents: \"api/sims/BursarySetupCRM/AddCRMDocumentBulkUpload\"\r\n },\r\n\r\n docTypeUrls: {\r\n documents: \"api/sims/BursarySetupcrm/GetLookupListBursaryDocumentType\"\r\n }\r\n}\r\n\r\nclass BursarySetupCRMBulkUpload extends Component {\r\n\r\n state = {\r\n fileInfo: null,\r\n numPages: 0,\r\n lookupArray: null,\r\n documentPageInfo: [],\r\n message: null,\r\n messageStyle: null,\r\n savedSuccessfully: false\r\n }\r\n\r\n componentDidMount() {\r\n this.getlookup();\r\n }\r\n\r\n getlookup() {\r\n let url = config.docTypeUrls.documents;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ lookupArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/BursarySetupCRM',\r\n state: {\r\n BursaryID: this.props.location.state.BursaryID,\r\n BursaryName: this.props.location.state.BursaryName,\r\n SetCommunicationType: \"2\",\r\n displayMissingDocTypes: this.state.savedSuccessfully\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleChange = (event) => {\r\n if (event.target.files && event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n let fileInfo = {\r\n name: file.name,\r\n type: file.type,\r\n size: Math.round(file.size / 1000) + ' kB',\r\n base64: reader.result\r\n }\r\n this.setState({ fileInfo: fileInfo });\r\n }\r\n }\r\n }\r\n\r\n onDocumentLoadSuccess = ({ numPages }) => {\r\n this.setState({ numPages: numPages });\r\n }\r\n\r\n handleArrayChange = (event, pageNumber) => {\r\n const values = [...this.state.documentPageInfo];\r\n\r\n const itemIndex = values.findIndex((item) => {\r\n return item.PageNumber === pageNumber;\r\n });\r\n\r\n const dropDownItem = this.state.lookupArray.find((item) => {\r\n return item.Id === event.target.value;\r\n });\r\n\r\n let pageInfo;\r\n if (itemIndex > -1) {\r\n pageInfo = { ...values[itemIndex] };\r\n pageInfo.DocumentTypeID = { Id: event.target.value, Description: dropDownItem.Description };\r\n values.splice(itemIndex, 1, pageInfo);\r\n }\r\n else {\r\n pageInfo = {\r\n PageNumber: pageNumber,\r\n DocumentTypeID: { Id: event.target.value, Description: dropDownItem.Description }\r\n };\r\n values.push(pageInfo);\r\n }\r\n\r\n this.setState({ documentPageInfo: values });\r\n }\r\n\r\n getArrayValue = (pageNumber) => {\r\n const item = this.state.documentPageInfo.find((item) => {\r\n return item.PageNumber === pageNumber;\r\n });\r\n\r\n if (item) {\r\n return item.DocumentTypeID.Id;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n uploadDocument = () => {\r\n\r\n let saveObject = {\r\n EntityID: this.props.location.state.BursaryID,\r\n FileInfo: this.state.fileInfo,\r\n DocumentPageInfo: this.state.documentPageInfo\r\n }\r\n\r\n let url = config.postUrls.documents;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(saveObject)\r\n }\r\n )\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({ savedSuccessfully: true }, () => { this.handleToolbarButtonClick('close'); });\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n let pages = null;\r\n if (this.state.numPages > 0) {\r\n pages = [];\r\n for (let i = 0; i < this.state.numPages; i++) {\r\n pages.push(\r\n
\r\n \r\n

{'Page ' + (i + 1)} of {this.state.numPages}

\r\n

Document Type:

\r\n this.handleArrayChange(values, i + 1)}>\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n\r\n {lookupitem.Description}\r\n\r\n ))}\r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n

\r\n {`Bursary > ${this.props.location.state.BursaryName} > CRM > Bulk Document Upload`}\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Bursary CRM', icon: 'CloseIcon' },\r\n ]\r\n }\r\n ]\r\n }} />\r\n\r\n \r\n \r\n {\r\n \r\n {this.state.fileInfo ? this.state.fileInfo.name : null}\r\n \r\n }\r\n {\r\n this.state.fileInfo ?\r\n
\r\n \r\n {pages}\r\n \r\n  \r\n \r\n
\r\n : null\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(withStyles(styles)(BursarySetupCRMBulkUpload)));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function ArtisansSetupSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Artisan Code \r\n\t\t\t\t\t\t\t\t\r\n props.model.ArtisanCode = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Artisan Title\r\n\t\t\t\t\t\t\t\t\r\n props.model.ArtisanTitle = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./ArtisansSetup.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ArtisansSetupSearchForm from './ArtisansSetupSearchForm';\r\nimport CardLayout from '../../widgets/Card';\r\n\r\n\r\nconst headCells = [\r\n { id: 'ArtisanCode', numeric: false, disablePadding: true, label: 'Artisan Code' },\r\n { id: 'ArtisanTitle', numeric: false, disablePadding: true, label: 'Artisan Title' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst searchParameters = [\r\n { Name: \"ArtisanCode\", Value: \"\" },\r\n { Name: \"ArtisanTitle\", Value: \"\" }\r\n];\r\n\r\nclass ArtisansSetupSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n ArtisanCode: \"\",\r\n ArtisanTitle: \"\"\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ArtisansSetupSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IdNumber', numeric: false, disablePadding: true, label: 'ID Number' }\r\n];\r\n\r\n\r\nclass EmployerLearnerSearch extends Component {\r\n\r\n state = {\r\n searchParameters: [{ Name: \"EmployerID\", Value: this.props.location.state.employerId }],\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'learner', label: 'GO TO LEARNER', tooltip: 'go to learner', visible: this.props.onMenuSpecificPermissionItem('/learner').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employer',\r\n state: { selection: this.props.location.state.employerId }\r\n });\r\n }\r\n else if (\"learner\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/learner',\r\n state: {\r\n selection: this.state.selection[0].LearnerID\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Client > Learners\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.employerName + (this.props.location.state.employerSDLNo !== null ? \" - \" + this.props.location.state.employerSDLNo : \"\") : \"> Add\")}\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.state.toolbarConfig} />\r\n this.setState({ selection: selection })}\r\n dataUrl=\"api/sims/employerlearner/getEmployerLearners\" searchParameters={this.state.searchParameters} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n withMenuPermission(EmployerLearnerSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst headCells = [\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date' },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date' },\r\n { id: 'ProgrammeType', numeric: false, disablePadding: true, label: 'Programme Type' },\r\n { id: 'Intervention', numeric: false, disablePadding: true, label: 'Intervention' },\r\n { id: 'Employment', numeric: false, disablePadding: true, label: 'Employment' },\r\n { id: 'ProjectNumber', numeric: false, disablePadding: true, label: 'Project Number' }\r\n];\r\n\r\n\r\nclass EmployerProjectSearch extends Component {\r\n\r\n state = {\r\n searchParameters: [{ Name: \"EmployerID\", Value: this.props.location.state.employerId }],\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'project', label: 'GO TO PROJECT', tooltip: 'go to project', visible: this.props.onMenuSpecificPermissionItem('/GrantSetupSearch').View }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employer',\r\n state: { selection: this.props.location.state.employerId }\r\n });\r\n }\r\n else if (\"project\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/AddEditTranche',\r\n state: {\r\n TrancheID: this.state.selection[0].Id,\r\n hideFields: false\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Client > Projects\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.employerName + (this.props.location.state.employerSDLNo !== null ? \" - \" + this.props.location.state.employerSDLNo : \"\") : \"> Add\")}\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.state.toolbarConfig} />\r\n this.setState({ selection: selection })}\r\n dataUrl=\"api/sims/employerproject/getEmployerProjects\" searchParameters={this.state.searchParameters} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n withMenuPermission(EmployerProjectSearch)\r\n);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nexport const EmployerAddUserForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n\r\n {form =>\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n\r\n if (!utils.isNull(formValues)) {\r\n return !utils.isNull(formValues.CellphoneNumber) && !utils.isStringEmpty(formValues.CellphoneNumber) ||\r\n !utils.isNull(formValues.FaxNumber) && !utils.isStringEmpty(formValues.FaxNumber) ||\r\n !utils.isNull(formValues.TelephoneNumber) && !utils.isStringEmpty(formValues.TelephoneNumber)\r\n }\r\n },\r\n message: \"Atleast one contact number needs to be filled in\"\r\n }}\r\n form={form} />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","\r\nimport React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport UserSearch from \"../UserSearch\";\r\nimport { EmployerAddUserForm } from \"../employer/EmployerAddUserForm\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport FormDialog from \"../FormDialog\";\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'ID No' },\r\n { id: 'TelephoneNumber', numeric: false, disablePadding: true, label: 'Telephone Number' },\r\n { id: 'CellphoneNumber', numeric: false, disablePadding: true, label: 'CellPhone Number' },\r\n { id: 'FaxNumber', numeric: false, disablePadding: true, label: 'Fax Number' },\r\n { id: 'Email', numeric: false, disablePadding: true, label: 'Email' }\r\n\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass employerUsersSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n linkDialogOpen: false,\r\n formDialogOpen: false,\r\n selectedUser: null,\r\n propmtOpen: false,\r\n promptTitle: \"Remove user from client\",\r\n promptContent: \"Are you sure you want to remove this user from the client?\",\r\n unlinkMessage: \"\",\r\n unlinkMessageStyle: \"\",\r\n searchParameters: [{ Name: \"EmployerID\", Value: this.props.location.state.selection }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"link\", label: '', icon: 'LinkIcon', tooltip: 'Link existing user to client' },\r\n { id: 'add', label: '', icon: 'AddIcon', tooltip: 'Add new user to client' },\r\n { id: 'remove', label: '', icon: 'DeleteIcon', tooltip: 'Remove user from client', disabled: utils.isNull(this.state.selectedUser) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employer',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n dialogActionHandler(isCancel, added) {\r\n if (added === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false, selectedUser: null,\r\n linkDialogOpen: false\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false,\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUser: selection[0].Id });\r\n } else {\r\n this.setState({ selectedUser: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulUserRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedUser: null, removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulUserRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeUser(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUser}&employerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulUserRemoveCallback, this.unsuccessfulUserRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Client > Users\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.employerName + (this.props.location.state.employerSDLNo !== null ? \" - \" + this.props.location.state.employerSDLNo : \"\") : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n dialogTitle={`Link users to client: ${this.props.location.state.employerName}`}\r\n linkName={\"Users\"} postUrl={\"api/sims/employeruser/LinkEmployerUser\"} usePost={true}\r\n selectionId={this.props.location.state.selection}\r\n >\r\n\r\n \r\n \r\n\r\n this.dialogActionHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n { this.removeUser(\"api/sims/employeruser/RemoveEmployerUser\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(employerUsersSearch)\r\n);","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nexport const EmployerAddContactForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n {/**/}\r\n {/* */}\r\n {/**/}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
*/}\r\n {/* */}\r\n {/*
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n\r\n if (!utils.isNull(formValues)) {\r\n return !utils.isNull(formValues.CellphoneNumber) && !utils.isStringEmpty(formValues.CellphoneNumber) ||\r\n !utils.isNull(formValues.FaxNumber) && !utils.isStringEmpty(formValues.FaxNumber) ||\r\n !utils.isNull(formValues.TelephoneNumber) && !utils.isStringEmpty(formValues.TelephoneNumber)\r\n }\r\n },\r\n message: \"Atleast one contact number needs to be filled in\"\r\n }}\r\n form={form} />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","/// \r\n\r\nimport React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { EmployerAddContactForm } from \"../employer/EmployerAddContactForm\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'Designation', numeric: false, disablePadding: true, label: 'Designation' },\r\n { id: 'TelephoneNumber', numeric: false, disablePadding: true, label: 'Telephone Number' },\r\n { id: 'CellPhoneNumber', numeric: false, disablePadding: true, label: 'CellPhone Number' },\r\n { id: 'FaxNumber', numeric: false, disablePadding: true, label: 'Fax Number' },\r\n { id: 'EMail', numeric: false, disablePadding: true, label: 'EMail' },\r\n { id: 'OrganisationContactType', numeric: false, disablePadding: true, label: 'Contact Type' }\r\n\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass employerContactSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n\r\n formDialogOpen: false,\r\n selectedContact: null,\r\n propmtOpen: false,\r\n promptTitle: \"Remove contact from client\",\r\n promptContent: \"Are you sure you want to remove this contact from the client?\",\r\n removeMessage: \"\",\r\n removeMessageStyle: \"\",\r\n searchParameters: [{ Name: \"EmployerID\", Value: this.props.location.state.selection }]\r\n \r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add contact to client', icon: 'AddIcon' },\r\n { id: 'remove', label: '', tooltip: 'Remove contact from client', icon: 'DeleteIcon', disabled: utils.isNull(this.state.selectedContact) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employer',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n postAddHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedContact: selection[0].Id });\r\n } else {\r\n this.setState({ selectedContact: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulContactRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedContact: null, removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulContactRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeContact(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedContact}&employerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulContactRemoveCallback, this.unsuccessfulContactRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Client > Contacts\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.employerName + (this.props.location.state.employerSDLNo !== null ? \" - \" + this.props.location.state.employerSDLNo : \"\") : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postAddHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n { this.removeContact(\"api/sims/employercontact/RemoveEmployerContact\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(employerContactSearch)\r\n);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nexport const EmployerAddContactForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n\r\n if (!utils.isNull(formValues)) {\r\n return !utils.isNull(formValues.CellphoneNumber) && !utils.isStringEmpty(formValues.CellphoneNumber) ||\r\n !utils.isNull(formValues.FaxNumber) && !utils.isStringEmpty(formValues.FaxNumber) ||\r\n !utils.isNull(formValues.TelephoneNumber) && !utils.isStringEmpty(formValues.TelephoneNumber)\r\n }\r\n },\r\n message: \"Atleast one contact number needs to be filled in\"\r\n }}\r\n form={form} />\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","/// \r\n\r\nimport React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport FormDialog from \"../FormDialog\";\r\nimport { EmployerAddContactForm } from \"../employer/EmployerAddBillingContactForm\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'Designation', numeric: false, disablePadding: true, label: 'Designation' },\r\n { id: 'TelephoneNumber', numeric: false, disablePadding: true, label: 'Telephone Number' },\r\n { id: 'CellPhoneNumber', numeric: false, disablePadding: true, label: 'CellPhone Number' },\r\n { id: 'FaxNumber', numeric: false, disablePadding: true, label: 'Fax Number' },\r\n { id: 'EMail', numeric: false, disablePadding: true, label: 'EMail' }\r\n\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass employerContactSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n\r\n formDialogOpen: false,\r\n selectedContact: null,\r\n propmtOpen: false,\r\n promptTitle: \"Remove contact from client\",\r\n promptContent: \"Are you sure you want to remove this contact from the client?\",\r\n removeMessage: \"\",\r\n removeMessageStyle: \"\",\r\n searchParameters: [{ Name: \"EmployerID\", Value: this.props.location.state.selection }]\r\n \r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add contact to client', icon: 'AddIcon' },\r\n { id: 'remove', label: '', tooltip: 'Remove contact from client', icon: 'DeleteIcon', disabled: utils.isNull(this.state.selectedContact) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/employer',\r\n state: { selection: this.props.location.state.selection }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ formDialogOpen: true })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n postAddHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n formDialogOpen: false\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n formDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedContact: selection[0].Id });\r\n } else {\r\n this.setState({ selectedContact: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulContactRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedContact: null, removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulContactRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ removeMessage: response.Message, removeMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeContact(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedContact}&employerId=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulContactRemoveCallback, this.unsuccessfulContactRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Client > Billing Contacts\" + (this.props.location.state !== null ? \" > \" + this.props.location.state.employerName + (this.props.location.state.employerSDLNo !== null ? \" - \" + this.props.location.state.employerSDLNo : \"\") : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postAddHandler(isCancelled, linked)}\r\n >\r\n \r\n \r\n\r\n { this.removeContact(\"api/sims/employerBillingcontact/RemoveEmployerBillingContact\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(employerContactSearch)\r\n);\r\n","import React from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n paper: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n dot: {\r\n alignSelf: 'stretch',\r\n height: '17px',\r\n width: '16px',\r\n margin: theme.spacing(1, 0),\r\n backgroundColor: 'grey',\r\n borderRadius: '50%',\r\n display: 'inline-block'\r\n },\r\n line: {\r\n height: '1px',\r\n width: 'calc(50% - 8px)',\r\n margin: \"16px 0\",\r\n backgroundColor: 'grey',\r\n display: 'inline-block'\r\n },\r\n spacer: {\r\n width: 'calc(50% - 8px)',\r\n display: 'inline-block'\r\n },\r\n vDot: {\r\n alignSelf: 'stretch',\r\n height: '17px',\r\n width: '16px',\r\n margin: theme.spacing(1, 0),\r\n backgroundColor: theme.palette.secondary.main,\r\n borderRadius: '48%',\r\n display: 'inline-block'\r\n },\r\n visitedLine: {\r\n height: '1px',\r\n width: 'calc(50% - 8px)',\r\n margin: \"16px 0\",\r\n backgroundColor: theme.palette.secondary.main,\r\n display: 'inline-block'\r\n },\r\n text: {\r\n color: 'black'\r\n },\r\n vText: {\r\n color: theme.palette.secondary.main\r\n }\r\n}));\r\n\r\nexport default function LinearFlowHeading(props) {\r\n const { steps } = props;\r\n let segmentPercentage = 100 / props.steps.length;\r\n const { currentIndex } = props;\r\n let counter = -1;\r\n let graphicsCounter = -1;\r\n\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n \r\n \r\n {steps.map(step => (\r\n \r\n ))}\r\n \r\n \r\n {steps.map(step => (\r\n ++graphicsCounter == 0 ?\r\n \r\n :\r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n {step.name}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {graphicsCounter === steps.length - 1 ?\r\n \r\n :\r\n \r\n }\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Learner.css\";\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\n\r\nconst utils = new ViewUtils();\r\nexport const AddLearnerIDUploadForm = React.forwardRef((props, ref) => {\r\n\r\n function HasSAIDcheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"No\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Yes\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n < form className={form.classes.container} id=\"addLearnerIDUploadForm\" >\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (props.isSouthAfricanFlag) ?\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n }\r\n
\r\n )\r\n})","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../Grid.css\";\r\nimport \"../../Form.css\";\r\nimport \"../../App.css\";\r\nimport \"../../View.css\";\r\nimport { AddLearnerIDUploadForm } from './AddLearnerIDUploadForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport Button from '@material-ui/core/Button';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { isEmptyObject } from \"jquery\";\r\n\r\nconst utils = new ViewUtils();\r\nconst nextToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'next', label: 'NEXT', tooltip: 'Add', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst createNewToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'createNew', label: 'CREATE NEW', tooltip: 'Proceed and create a new learner linked to a new person', width: \"150px\", theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass AddLearnerSearch extends Component {\r\n\r\n state = {\r\n formData: {},\r\n file: null,\r\n selection: [],\r\n personDetails: {},\r\n message: \"\",\r\n searchResult: {},\r\n searched: false,\r\n currentIdNumber: \"\",\r\n hasError: false,\r\n isSouthAfrican: false,\r\n showTable: true\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (!utils.isNull(this.state.formData)) {\r\n this.props.stepHandler(0, true, this.state.personDetails);\r\n }\r\n }\r\n\r\n fileUploadHandler(data) {\r\n this.setState({ formData: {} })\r\n this.setState({ file: data });\r\n }\r\n\r\n search() {\r\n this.setState({ message: \"\", hasError: false });\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n this.setState({ message: \"\", hasError: false });\r\n var currentParameters = [{ Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: this.state.formData.IDNo }];\r\n\r\n utils.invokeUrl(\"api/sims/learner/addPersonSearch?identityData=\" + JSON.stringify(formRef.current.getValue()),\r\n (data) => {\r\n //let result = JSON.parse(data);\r\n let result = data;\r\n this.setState({ searchResult: result, searched: true })\r\n if (result.RoleRecordFound === true) {\r\n this.setState({ message: \"A learner with the specified criteria already exist\", hasError: true });\r\n }\r\n\r\n if (result.DataValid === false) {\r\n this.setState({ message: result.InvalidDataMessage, hasError: true });\r\n }\r\n\r\n //if (result.PersonFound) {\r\n this.setState({ personDetails: result.PersonDetails })\r\n //}\r\n }, null);\r\n\r\n this.setState({\r\n searchParameters: currentParameters\r\n });\r\n }\r\n }\r\n\r\n processFileHandler() {\r\n this.setState({ message: \"\", hasError: false });\r\n utils.invokeUrl('dms/ocr/id/card', (data) => {\r\n if (data) {\r\n let result = {};\r\n result = { ...data, HasSouthAfricanID: { Id: 1, Description: \"Yes\" } }\r\n this.setState({ formData: result });\r\n this.setState({ currentIdNumber: data.IDNo });\r\n } else {\r\n this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }\r\n }, () => {\r\n this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(this.state.file)\r\n });\r\n }\r\n\r\n HandleDropChange(formValue) {\r\n\r\n if (!isEmptyObject(this.state.formData)) {\r\n if (this.state.formData.HasSouthAfricanID.Description !== formValue.HasSouthAfricanID.Description) {\r\n if (formValue.HasSouthAfricanID.Description === \"Yes\") {\r\n this.setState({ isSouthAfrican: true, showTable: false, formData: formValue }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n } else if (formValue.HasSouthAfricanID.Description !== \"Yes\") {\r\n this.setState({ isSouthAfrican: false, showTable: false, formData: formValue }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n }\r\n }\r\n else if (isEmptyObject(this.state.formData)) {\r\n if (formValue.HasSouthAfricanID.Description === \"Yes\") {\r\n this.setState({ isSouthAfrican: true, showTable: false, formData: formValue }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n } else if (formValue.HasSouthAfricanID.Description !== \"Yes\") {\r\n this.setState({ isSouthAfrican: false, showTable: false, formData: formValue }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n if (!utils.isNull(values.HasSouthAfricanID)) {\r\n this.HandleDropChange(values);\r\n }\r\n\r\n if (!utils.isNull(values.IDNo) && values.IDNo.length == 13 && values.HasSouthAfricanID.Description === \"Yes\") {\r\n if (utils.isNull(values.CitizenResidentialStatusID) && utils.isNull(values.DateofBirth) && utils.isNull(values.GenderID)) {\r\n try {\r\n let idnumberDetails = { ...values };\r\n const residentailStatus = idnumberDetails.IDNo.charAt(10);\r\n if (residentailStatus == \"0\") {\r\n idnumberDetails.CitizenResidentialStatusID = { Id: \"1\", Description: \"South Africa\" };\r\n }\r\n else if (residentailStatus == \"1\") {\r\n idnumberDetails.CitizenResidentialStatusID = { Id: \"4\", Description: \"Permanent Resident\" }\r\n }\r\n var date = new Date('19' + idnumberDetails.IDNo.slice(0, 2), idnumberDetails.IDNo.slice(2, 4) - 1, idnumberDetails.IDNo.slice(4, 6));\r\n idnumberDetails.DateofBirth = date;\r\n const gender = parseInt(idnumberDetails.IDNo.slice(6, 10));\r\n if (gender >= 0 && gender <= 4999) {\r\n idnumberDetails.GenderID = { Id: \"2\", Description: \"Female\" }\r\n } else if (gender >= 5000 && gender <= 9999) {\r\n idnumberDetails.GenderID = { Id: \"1\", Description: \"Male\" }\r\n }\r\n this.setState((prevState, props) => {\r\n return {\r\n formData: { ...prevState.formData, ...idnumberDetails }\r\n }\r\n });\r\n } catch (err) {\r\n\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n ID Document Upload\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.fileUploadHandler(data)}\r\n onProcessHandler={() => this.processFileHandler()}\r\n disabled={!this.state.isSouthAfrican}\r\n />\r\n \r\n

Personal Details

\r\n {\r\n !utils.isStringEmpty(this.state.message) ?\r\n

\r\n {this.state.message}\r\n

\r\n :\r\n \"\"\r\n }\r\n {this.state.showTable === true && (\r\n \r\n )}\r\n
\r\n \r\n
\r\n {\r\n this.state.searchResult.PersonFound === true ?\r\n
\r\n {this.state.searchResult.RoleRecordFound === false ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={typeof this.state.selection !== 'undefined' && this.state.selection !== null && this.state.selection.length > 0} config={nextToolbarConfig} />\r\n
\r\n
\r\n : \"\"\r\n }\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n this.state.searchResult.RoleRecordFound === false && this.state.searchResult.PersonFound === false &&\r\n this.state.searchResult.DataValid === true && this.state.searched === true ?\r\n
\r\n
\r\n
A person with ID number {this.state.currentIdNumber} does not exist in the system. {this.state.searchResult.IdVerificationMessage}
\r\n
\r\n {this.state.searchResult.IdValid === true ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={typeof this.state.selection !== 'undefined' && this.state.selection !== null && this.state.selection.length > 0} config={createNewToolbarConfig} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n
\r\n :\r\n \"\"\r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddLearnerSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Learner.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { LearnerForm } from './LearnerForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Documents', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to Programs', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass AddLearnerDetails extends Component {\r\n\r\n state = {\r\n model: {}\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(1, false, this.state.model);\r\n } else if (\"next\" === buttonId) {\r\n let formValue = formRef.current.getValue();\r\n if (!utils.isNull(formValue)) {\r\n this.props.stepHandler(1, true, formValue);\r\n }\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({model: values})\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n Learner Details\r\n

\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddLearnerDetails)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Learner.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { LearnerLearnershipForm } from '../program/registration/LearnerLearnershipForm';\r\nimport { LearnerSkillsProgramForm } from '../program/registration/LearnerSkillsProgramForm';\r\nimport { LearnerUnitStandardForm } from '../program/registration/LearnerUnitStandardForm';\r\nimport { LearnerQualificationForm } from '../program/registration/LearnerQualificationForm';\r\nimport { LearnerTradeForm } from \"../program/registration/LearnerTradeForm\";\r\nimport { LearnerInternshipForm } from \"../program/registration/LearnerInternshipForm\";\r\nimport { LearnerBursaryForm } from \"../program/registration/LearnerBursaryForm\";\r\nimport { LearnerAETForm } from \"../program/registration/LearnerAETForm\";\r\nimport { LearnerFETForm } from \"../program/registration/LearnerFETForm\";\r\nimport { LearnerCandidacyForm } from \"../program/registration/LearnerCandidacyForm\";\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Search', theme: true },\r\n { id: 'finish', label: 'FINISH', tooltip: 'Save and Finish Process', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst learnershipFormRef = React.createRef();\r\nconst skillsProgramFormRef = React.createRef();\r\nconst unitStandardFormRef = React.createRef();\r\nconst qualificationFormRef = React.createRef();\r\n\r\nconst tradeFormRef = React.createRef();\r\nconst internshipFormRef = React.createRef();\r\nconst bursaryFormRef = React.createRef();\r\nconst aetFormRef = React.createRef();\r\nconst fetFormRef = React.createRef();\r\nconst candidacyFormRef = React.createRef();\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass AddLearnerProgram extends Component {\r\n\r\n state = {\r\n model: {},\r\n searchParameters: null,\r\n message: \"\",\r\n formValue: { Intervension: null },\r\n selection: {},\r\n selectedIntervension: null\r\n };\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ model: values });\r\n }\r\n\r\n handleProgrammeFormValueChange(values) {\r\n console.clear();\r\n console.log(values);\r\n if (!utils.isNull(values)) {\r\n this.setState({ selectedIntervension: values.Intervension });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(3, false, this.state.model);\r\n } else if (\"finish\" === buttonId) {\r\n let formValue = null;\r\n\r\n if (!utils.isNull(this.state.selectedIntervension)) {\r\n if ((1 == this.state.selectedIntervension.Id)) {\r\n formValue = learnershipFormRef.current.getValue();\r\n } else if ((2 == this.state.selectedIntervension.Id)) {\r\n formValue = skillsProgramFormRef.current.getValue();\r\n } else if ((3 == this.state.selectedIntervension.Id)) {\r\n formValue = unitStandardFormRef.current.getValue();\r\n } else if ((4 == this.state.selectedIntervension.Id)) {\r\n formValue = qualificationFormRef.current.getValue();\r\n } else if ((5 == this.state.selectedIntervension.Id)) {\r\n formValue = tradeFormRef.current.getValue();\r\n } else if ((6 == this.state.selectedIntervension.Id)) {\r\n formValue = internshipFormRef.current.getValue();\r\n } else if ((7 == this.state.selectedIntervension.Id)) {\r\n formValue = bursaryFormRef.current.getValue();\r\n } else if ((8 == this.state.selectedIntervension.Id)) {\r\n formValue = aetFormRef.current.getValue();\r\n } else if ((9 == this.state.selectedIntervension.Id)) {\r\n formValue = fetFormRef.current.getValue();\r\n } else if ((10 == this.state.selectedIntervension.Id)) {\r\n formValue = candidacyFormRef.current.getValue();\r\n }\r\n\r\n if (!utils.isNull(formValue)) {\r\n formValue.programmeType = this.state.selectedIntervension.Id;\r\n this.props.stepHandler(3, true, formValue);\r\n }\r\n }\r\n else {\r\n formValue= {};\r\n this.props.stepHandler(3, true, formValue);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n { this.handleProgrammeFormValueChange(values); }}>\r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n {\r\n !utils.isNull(this.state.selectedIntervension) && this.state.selectedIntervension.Id == 1 ?\r\n
\r\n

\r\n Enroll to a Learnership\r\n

\r\n
\r\n { this.handleFormValueChange(values) }} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(this.state.selectedIntervension) && this.state.selectedIntervension.Id == 2 ?\r\n
\r\n

\r\n Enroll to a Skills Program\r\n

\r\n
\r\n { this.handleFormValueChange(values) }} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(this.state.selectedIntervension) && this.state.selectedIntervension.Id == 3 ?\r\n
\r\n

\r\n Enroll to a Unit Standard\r\n

\r\n
\r\n { this.handleFormValueChange(values) }} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(this.state.selectedIntervension) && this.state.selectedIntervension.Id == 4 ?\r\n
\r\n

\r\n Enroll to a Qualification\r\n

\r\n
\r\n { this.handleFormValueChange(values) }} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(this.state.selectedIntervension) && this.state.selectedIntervension.Id == 5 ?\r\n
\r\n

\r\n Enroll to a Trade\r\n

\r\n
\r\n { this.handleFormValueChange(values) }} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(this.state.selectedIntervension) && this.state.selectedIntervension.Id == 6 ?\r\n
\r\n

\r\n Enroll to a Internship\r\n

\r\n
\r\n { this.handleFormValueChange(values) }} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(this.state.selectedIntervension) && this.state.selectedIntervension.Id == 7 ?\r\n
\r\n

\r\n Enroll to a Bursary\r\n

\r\n
\r\n { this.handleFormValueChange(values) }} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(this.state.selectedIntervension) && this.state.selectedIntervension.Id == 8 ?\r\n
\r\n

\r\n Enroll to an AET\r\n

\r\n
\r\n { this.handleFormValueChange(values) }} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(this.state.selectedIntervension) && this.state.selectedIntervension.Id == 9 ?\r\n
\r\n

\r\n Enroll to an FET Placement\r\n

\r\n
\r\n { this.handleFormValueChange(values) }} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(this.state.selectedIntervension) && this.state.selectedIntervension.Id == 10 ?\r\n
\r\n

\r\n Enroll to a Candidacy Programme\r\n

\r\n
\r\n { this.handleFormValueChange(values) }} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddLearnerProgram)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./AccreditationHistory.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\n\r\nconst historyHeadCells = [\r\n { id: 'Code', numeric: false, disablePadding: false, label: 'Code', widthRatio: .2 },\r\n { id: 'Title', numeric: false, disablePadding: false, label: 'Title', widthRatio: .2 },\r\n { id: 'Credits', numeric: false, disablePadding: false, label: 'Credits', widthRatio: .1 },\r\n { id: 'RegistrationStart', numeric: false, disablePadding: false, label: 'Type', widthRatio: .2 },\r\n { id: 'RegistrationEnd', numeric: false, disablePadding: false, label: 'Completion Date', widthRatio: .3 },\r\n];\r\n\r\nconst activeProgrammeHeadCells = [\r\n { id: 'Code', numeric: false, disablePadding: false, label: 'Code', widthRatio: .2 },\r\n { id: 'Title', numeric: false, disablePadding: false, label: 'Title', widthRatio: .2},\r\n { id: 'Type', numeric: false, disablePadding: false, label: 'Type', widthRatio: .2 },\r\n { id: 'Institution', numeric: false, disablePadding: false, label: 'Institution', widthRatio: .2 },\r\n { id: 'RegistrationStart', numeric: false, disablePadding: false, label: 'Date of Registration', widthRatio: .2 },\r\n];\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nexport const AccreditationHistory = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n \r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Learner.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { AccreditationHistory } from './AccreditationHistory';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Learner details', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to programs', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst utils = new ViewUtils();\r\nclass AddLearnerAccreditationHistory extends Component {\r\n\r\n state = {\r\n searchParameters: null,\r\n message: \"\",\r\n selectedIntervension: -1,\r\n selection: {},\r\n openDialog: false\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(2, false, this.props.data);\r\n } else if (\"next\" === buttonId) {\r\n this.props.stepHandler(2, true, this.props.data);\r\n }\r\n }\r\n\r\n\r\n handleFormValueChange(values) {\r\n }\r\n\r\n handleDataArrived(data) {\r\n }\r\n\r\n handleLearnershipToolbarButtonClick(buttonId) {\r\n if (\"add\" === buttonId) {\r\n this.setState({ openDialog: true });\r\n }\r\n }\r\n\r\n handleSkillsToolbarButtonClick(buttonId) {\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n searchParameters: [{ Name: \"IDNo\", Value: this.props.data.IDNo }]\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddLearnerAccreditationHistory)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport LinearFlowHeading from '../../widgets/LinearFlowHeading';\r\nimport AddLearnerSearch from './AddLearnerSearch';\r\nimport AddLearnerDetails from './AddLearnerDetails';\r\nimport AddLearnerPrograms from './AddLearnerPrograms';\r\nimport AddLearnerAccreditationHistory from './AddLearnerAccreditationHistory';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst steps = [\r\n { name: \"Identity Details\", tooltip: \"Search the system for an existing person. If one does not extist, click proceed to create a learner with a new person\" },\r\n { name: \"Learner Details\", tooltip: \"Capture learner details\" },\r\n { name: \"Enrolment History\", tooltip: \"Add the qualifications the learner has previously archived\" },\r\n { name: \"Programme Enrolment\", tooltip: \"Capture the program the learner is enrolling for\" }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nclass AddLearnerFlow extends Component {\r\n state = {\r\n currentStepIndex: 0,\r\n model: {},\r\n personDetails: {},\r\n documents: {},\r\n learnerDetails: {},\r\n learnerProgrammeRegistration: {},\r\n program: {},\r\n saveMessage: \"\",\r\n hasSaveError: false\r\n }\r\n\r\n stepHandler(index, forward, data) {\r\n if (index === 0) {\r\n this.setState({ personDetails: data });\r\n } else if (index === 1) {\r\n this.setState({ learnerDetails: data });\r\n } else if (index === 3) {\r\n this.setState({ program: data });\r\n\r\n if (forward) {\r\n let dataObject = {};\r\n dataObject.Person = this.state.learnerDetails;\r\n\r\n if (!utils.isNull(this.state.personDetails)) {\r\n dataObject.Person.PersonID = this.state.personDetails.ID;\r\n }\r\n\r\n //dataObject.documents = this.state.documents;\r\n if (1 == data.programmeType) {\r\n dataObject.LearnerLearnershipDto = data;\r\n dataObject.LearnerLearnershipDto.LearnershipID = data.LearnershipID;\r\n dataObject.LearnerLearnershipDto.LeadProviderID = data.LeadProviderID;\r\n\r\n if (!utils.isNull(data.SecondaryProvider)) {\r\n dataObject.Scope.LearnerLearnershipDto.SecondaryProviderID = data.SecondaryProviderID;\r\n }\r\n\r\n dataObject.LearnerLearnershipDto.LeadEmployerID = data.LeadEmployerID;\r\n\r\n if (!utils.isNull(data.SecondaryEmployer)) {\r\n dataObject.Scope.LearnerLearnershipDto.SecondaryEmployerID = data.SecondaryEmployerID;\r\n }\r\n } else if (2 == data.programmeType) {\r\n dataObject.LearnerSkillsProgrammeDto = data;\r\n dataObject.LearnerSkillsProgrammeDto.ProviderID = data.ProviderID;\r\n dataObject.LearnerSkillsProgrammeDto.SkillsProgrammeID = data.SkillsProgrammeID;\r\n dataObject.LearnerSkillsProgrammeDto.EmployerID = data.EmployerID;\r\n } else if (3 == data.programmeType) {\r\n dataObject.LearnerUnitStandardDto = data;\r\n dataObject.LearnerUnitStandardDto.ProviderID = data.ProviderID;\r\n dataObject.LearnerUnitStandardDto.UnitStandardID = data.UnitStandardID;\r\n dataObject.LearnerUnitStandardDto.EmployerID = data.EmployerID;\r\n } else if (4 == data.programmeType) {\r\n dataObject.LearnerQualificationDto = data;\r\n dataObject.LearnerQualificationDto.ProviderID = data.ProviderID;\r\n dataObject.LearnerQualificationDto.QualificationID = data.QualificationID;\r\n dataObject.LearnerQualificationDto.EmployerID = data.EmployerID;\r\n } else if (5 == data.programmeType) {\r\n dataObject.LearnerTradeDto = data;\r\n dataObject.LearnerTradeDto.ProviderID = data.ProviderID;\r\n dataObject.LearnerTradeDto.QualificationID = data.TradeID;\r\n dataObject.LearnerTradeDto.EmployerID = data.EmployerID;\r\n } else if (6 == data.programmeType) {\r\n dataObject.LearnerInternshipDto = data;\r\n dataObject.LearnerInternshipDto.ProviderID = data.ProviderID;\r\n dataObject.LearnerInternshipDto.QualificationID = data.QualificationID;\r\n dataObject.LearnerInternshipDto.EmployerID = data.EmployerID;\r\n } else if (7 == data.programmeType) {\r\n dataObject.LearnerBusaryDto = data;\r\n dataObject.LearnerBusaryDto.ProviderID = data.ProviderID;\r\n dataObject.LearnerBusaryDto.QualificationID = data.BursaryID;\r\n dataObject.LearnerBusaryDto.EmployerID = data.EmployerID;\r\n } else if (8 == data.programmeType) {\r\n dataObject.LearnerAETDto = data;\r\n dataObject.LearnerAETDto.ProviderID = data.ProviderID;\r\n dataObject.LearnerAETDto.QualificationID = data.AETID;\r\n dataObject.LearnerAETDto.EmployerID = data.EmployerID;\r\n } else if (9 == data.programmeType) {\r\n dataObject.LearnerFETDto = data;\r\n dataObject.LearnerFETDto.ProviderID = data.ProviderID;\r\n dataObject.LearnerFETDto.QualificationID = data.FETID;\r\n dataObject.LearnerFETDto.EmployerID = data.EmployerID;\r\n } else if (10 == data.programmeType) {\r\n dataObject.LearnerCandidacyDto = data;\r\n dataObject.LearnerCandidacyDto.ProviderID = data.ProviderID;\r\n dataObject.LearnerCandidacyDto.QualificationID = data.CandidacyID;\r\n dataObject.LearnerCandidacyDto.EmployerID = data.EmployerID;\r\n }\r\n\r\n let input = JSON.stringify(dataObject);\r\n \r\n let learnerData = {};\r\n learnerData.data = input;\r\n\r\n utils.invokeUrl(\"api/sims/learner/saveLearnerFlow\", (data) => {\r\n this.props.history.push({\r\n pathname: '/learners'\r\n })\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(learnerData)\r\n });\r\n }\r\n }\r\n\r\n if (index !== 3) {\r\n var increament = forward === true ? 1 : -1;\r\n this.setState({ currentStepIndex: index + increament });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n //save();\r\n } else {\r\n //close();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n utils.setLegend(\"Add Learner\");\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {this.state.currentStepIndex === 0 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 1 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 2 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 3 ? this.stepHandler(index, forward, data)} saveMessage={this.state.saveMessage} hasSaveError={this.state.hasSaveError} /> : \"\"}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AddLearnerFlow));","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Person.css\";\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\n\r\nconst utils = new ViewUtils();\r\nexport const AddPersonIDUploadForm = React.forwardRef((props, ref) => {\r\n return(\r\n \r\n { form =>\r\n < form className={form.classes.container} id= \"addPersonIDUploadForm\" >\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n }\r\n
\r\n)})","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../Grid.css\";\r\nimport \"../../Form.css\";\r\nimport \"../../App.css\";\r\nimport \"../../View.css\";\r\nimport { AddPersonIDUploadForm } from './AddPersonIDUploadForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport Button from '@material-ui/core/Button';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\nconst nextToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'next', label: 'NEXT', tooltip: 'Add', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst createNewToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'createNew', label: 'CREATE NEW', tooltip: 'Proceed and create a new person', width: \"150px\", theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass AddPersonSearch extends Component {\r\n\r\n state = {\r\n formData: {},\r\n file: null,\r\n selection: [],\r\n personDetails: {},\r\n message: \"\",\r\n searchResult: {},\r\n searched: false,\r\n currentIdNumber: \"\",\r\n hasError: false\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (!utils.isNull(this.state.formData)) {\r\n this.props.stepHandler(0, true, this.state.personDetails);\r\n }\r\n }\r\n\r\n fileUploadHandler(data) {\r\n this.setState({ formData: {} })\r\n this.setState({ file: data });\r\n }\r\n\r\n search() {\r\n this.setState({ message: \"\", hasError: false });\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n this.setState({ message: \"\", hasError: false });\r\n var currentParameters = [{ Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: this.state.formData.IDNo }];\r\n\r\n utils.invokeUrl(\"api/indicium/person/addPersonSearch?identityData=\" + JSON.stringify(formRef.current.getValue()),\r\n (data) => {\r\n //let result = JSON.parse(data);\r\n let result = data;\r\n this.setState({ searchResult: result, searched: true })\r\n if (result.RoleRecordFound === true) {\r\n this.setState({ message: \"A person with the specified criteria already exist\", hasError: true });\r\n }\r\n\r\n if (result.DataValid === false) {\r\n this.setState({ message: result.InvalidDataMessage, hasError: true });\r\n }\r\n\r\n //if (result.PersonFound) {\r\n this.setState({ personDetails: result.PersonDetails })\r\n //}\r\n }, null);\r\n\r\n this.setState({\r\n searchParameters: currentParameters\r\n });\r\n }\r\n }\r\n\r\n processFileHandler() {\r\n this.setState({ message: \"\", hasError: false });\r\n utils.invokeUrl('/dms/ocr/id/card', (data) => {\r\n if (data) {\r\n this.setState({ formData: data });\r\n this.setState({ currentIdNumber: data.IDNo });\r\n } else {\r\n this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }\r\n }, () => {\r\n this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(this.state.file)\r\n });\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n if (!utils.isNull(values.IDNo) && values.IDNo.length == 13) {\r\n if (utils.isNull(values.CitizenResidentialStatusID) && utils.isNull(values.DateofBirth) && utils.isNull(values.GenderID)) {\r\n try {\r\n let idnumberDetails = { ...values };\r\n const residentailStatus = idnumberDetails.IDNo.charAt(10);\r\n if (residentailStatus == \"0\") {\r\n idnumberDetails.CitizenResidentialStatusID = { Id: \"1\", Description: \"South Africa\" };\r\n }\r\n else if (residentailStatus == \"1\") {\r\n idnumberDetails.CitizenResidentialStatusID = { Id: \"4\", Description: \"Permanent Resident\" }\r\n }\r\n var date = new Date('19' + idnumberDetails.IDNo.slice(0, 2), idnumberDetails.IDNo.slice(2, 4) - 1, idnumberDetails.IDNo.slice(4, 6));\r\n idnumberDetails.DateofBirth = date;\r\n const gender = parseInt(idnumberDetails.IDNo.slice(6, 10));\r\n if (gender >= 0 && gender <= 4999) {\r\n idnumberDetails.GenderID = { Id: \"2\", Description: \"Female\" }\r\n } else if (gender >= 5000 && gender <= 9999) {\r\n idnumberDetails.GenderID = { Id: \"1\", Description: \"Male\" }\r\n }\r\n this.setState((prevState, props) => {\r\n return {\r\n formData: { ...prevState.formData, ...idnumberDetails }\r\n }\r\n });\r\n } catch (err) {\r\n\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n ID Document Upload\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.fileUploadHandler(data)}\r\n onProcessHandler={() => this.processFileHandler()}\r\n />\r\n \r\n

Personal Details

\r\n {\r\n !utils.isStringEmpty(this.state.message) ?\r\n

\r\n {this.state.message}\r\n

\r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n \r\n
\r\n {\r\n this.state.searchResult.PersonFound === true ?\r\n
\r\n {this.state.searchResult.RoleRecordFound === false ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={typeof this.state.selection !== 'undefined' && this.state.selection !== null && this.state.selection.length > 0} config={nextToolbarConfig} />\r\n
\r\n
\r\n : \"\"\r\n }\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n this.state.searchResult.RoleRecordFound === false && this.state.searchResult.PersonFound === false &&\r\n this.state.searchResult.DataValid === true && this.state.searched === true ?\r\n
\r\n
\r\n
A person with ID number {this.state.currentIdNumber} does not exist in the system. {this.state.searchResult.IdVerificationMessage}
\r\n
\r\n {this.state.searchResult.IdValid === true ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={typeof this.state.selection !== 'undefined' && this.state.selection !== null && this.state.selection.length > 0} config={createNewToolbarConfig} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n
\r\n :\r\n \"\"\r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddPersonSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Person.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { PersonForm } from './PersonForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Documents', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to Details', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass AddPersonDetails extends Component {\r\n\r\n state = {\r\n model: {}\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(1, false, this.state.model);\r\n } else if (\"next\" === buttonId) {\r\n let formValue = formRef.current.getValue();\r\n if (!utils.isNull(formValue)) {\r\n this.props.stepHandler(1, true, formValue);\r\n }\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({model: values})\r\n }\r\n\r\n componentDidMount() {\r\n console.log(JSON.stringify(this.props.data));\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n Person Details\r\n

\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddPersonDetails)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport LinearFlowHeading from '../../widgets/LinearFlowHeading';\r\nimport AddPersonSearch from './AddPersonSearch';\r\nimport AddPersonDetails from './AddPersonDetails';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst steps = [\r\n { name: \"Identity Details\", tooltip: \"Search the system for an existing person. If one does not extist, click proceed to create a new person\" },\r\n { name: \"Person Details\", tooltip: \"Capture person details\" },\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nclass AddPersonFlow extends Component {\r\n state = {\r\n currentStepIndex: 0,\r\n model: {},\r\n personDetails: {},\r\n documents: {},\r\n program: {},\r\n saveMessage: \"\",\r\n hasSaveError: false\r\n }\r\n\r\n stepHandler(index, forward, data) {\r\n if (index === 0) {\r\n this.setState({ personDetails: data });\r\n }\r\n\r\n if (forward) {\r\n let dataObject = {};\r\n dataObject.PersonDto = this.state.personDetails;\r\n\r\n if (!utils.isNull(this.state.personDetails)) {\r\n dataObject.PersonDto.PersonID = this.state.personDetails.ID;\r\n }\r\n\r\n let input = JSON.stringify(dataObject);\r\n\r\n const url = `api/indicium/learner/addPerson?data=${input}`;\r\n let learnerData = {};\r\n learnerData.data = input;\r\n\r\n utils.invokeUrl(\"api/indicium/learner/addLearner\", (data) => {\r\n this.props.history.push({\r\n pathname: '/learners'\r\n })\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(learnerData)\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n //save();\r\n } else {\r\n //close();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n utils.setLegend(\"Add Person\");\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {this.state.currentStepIndex === 0 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 1 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddPersonFlow)\r\n);\r\n","import React from \"react\";\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\n\r\nexport const AddPersonRoleIDUploadForm = React.forwardRef((props, ref) => {\r\n\r\n function HasSAIDcheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"No\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Yes\") {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (props.isSouthAfricanFlag) ?\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n )\r\n})","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../Grid.css\";\r\nimport \"../../Form.css\";\r\nimport \"../../App.css\";\r\nimport \"../../View.css\";\r\nimport { AddPersonRoleIDUploadForm } from './AddPersonRoleIDUploadForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport Button from '@material-ui/core/Button';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { isEmptyObject } from \"jquery\";\r\n\r\nconst utils = new ViewUtils();\r\nconst nextToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'next', label: 'NEXT', tooltip: 'Add', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst createNewToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'createNew', label: 'CREATE NEW', tooltip: 'Proceed and create a new Assessor linked to a person', width: \"150px\", theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass AddPersonRoleSearch extends Component {\r\n\r\n state = {\r\n formData: {},\r\n file: null,\r\n selection: [],\r\n data: {},\r\n message: \"\",\r\n searchResult: {},\r\n searched: false,\r\n currentIdNumber: \"\",\r\n hasError: false,\r\n isSouthAfrican: false,\r\n showTable: true\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (!utils.isNull(this.state.formData)) {\r\n\r\n let data = utils.isNull(this.props.data) ? {} : this.props.data;\r\n if (!utils.isNull(this.state.data.PersonDetails)) {\r\n data.identityDetails = {};\r\n data.identityDetails.formData = this.state.formData;\r\n data.identityDetails.searchResult = this.state.searchResult;\r\n data.identityDetails.searched = true;\r\n data.personRoleDetails = {};\r\n data.personRoleDetails.Person = this.state.data.PersonDetails;\r\n }\r\n else {\r\n data.identityDetails = {};\r\n data.identityDetails.formData = this.state.formData;\r\n data.identityDetails.searchResult = this.state.searchResult;\r\n data.identityDetails.searched = true;\r\n }\r\n\r\n this.props.stepHandler(0, true, data);\r\n }\r\n }\r\n\r\n fileUploadHandler(data) {\r\n this.setState({ formData: {} })\r\n this.setState({ file: data });\r\n }\r\n\r\n search() {\r\n this.setState({ message: \"\", hasError: false });\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n this.setState({ message: \"\", hasError: false });\r\n var currentParameters = [{ Name: \"FirstName\", Value: \"\" },\r\n { Name: \"MiddleName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: this.state.formData.IDNo }];\r\n\r\n utils.invokeUrl(\"api/sims/\" + this.props.role + \"/addPersonSearch?identityData=\" + JSON.stringify(formRef.current.getValue()),\r\n (data) => {\r\n //let result = JSON.parse(data);\r\n let result = data;\r\n this.setState({ searchResult: result, searched: true })\r\n if (result.RoleRecordFound === true) {\r\n this.setState({ message: \"An Assessor with the specified criteria already exist\", hasError: true });\r\n }\r\n\r\n if (result.DataValid === false) {\r\n this.setState({ message: result.InvalidDataMessage, hasError: true });\r\n }\r\n\r\n //if (result.PersonFound) {\r\n this.setState({ data: result })\r\n //}\r\n }, null);\r\n\r\n this.setState({\r\n searchParameters: currentParameters\r\n });\r\n }\r\n }\r\n\r\n processFileHandler() {\r\n this.setState({ message: \"\", hasError: false });\r\n utils.invokeUrl('dms/ocr/id/card', (data) => {\r\n if (data) {\r\n let result = {};\r\n result = { ...data, HasSouthAfricanID: { Id: 1, Description: \"Yes\" } }\r\n this.setState({ formData: result });\r\n this.setState({ currentIdNumber: data.IDNo });\r\n } else {\r\n this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }\r\n }, () => {\r\n this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(this.state.file)\r\n });\r\n }\r\n\r\n HandleDropChange(formValue) {\r\n\r\n if (!isEmptyObject(this.state.formData)) {\r\n if (this.state.formData.HasSouthAfricanID.Description !== formValue.HasSouthAfricanID.Description) {\r\n if (formValue.HasSouthAfricanID.Description === \"Yes\") {\r\n this.setState({ isSouthAfrican: true, showTable: false, formData: formValue }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n } else if (formValue.HasSouthAfricanID.Description !== \"Yes\") {\r\n this.setState({ isSouthAfrican: false, showTable: false, formData: formValue }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n }\r\n }\r\n else if (isEmptyObject(this.state.formData)) {\r\n if (formValue.HasSouthAfricanID.Description === \"Yes\") {\r\n this.setState({ isSouthAfrican: true, showTable: false, formData: formValue }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n } else if (formValue.HasSouthAfricanID.Description !== \"Yes\") {\r\n this.setState({ isSouthAfrican: false, showTable: false, formData: formValue }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n if (!utils.isNull(values.HasSouthAfricanID)) {\r\n this.HandleDropChange(values);\r\n }\r\n\r\n if (!utils.isNull(values.IDNo) && values.IDNo.length == 13 && values.HasSouthAfricanID.Description === \"Yes\") {\r\n if (utils.isNull(values.CitizenResidentialStatusID) && utils.isNull(values.DateofBirth) && utils.isNull(values.GenderID)) {\r\n try {\r\n let idnumberDetails = { ...values };\r\n const residentailStatus = idnumberDetails.IDNo.charAt(10);\r\n if (residentailStatus == \"0\") {\r\n idnumberDetails.CitizenResidentialStatusID = { Id: \"1\", Description: \"South Africa\" };\r\n }\r\n else if (residentailStatus == \"1\") {\r\n idnumberDetails.CitizenResidentialStatusID = { Id: \"4\", Description: \"Permanent Resident\" }\r\n }\r\n var date = new Date('19' + idnumberDetails.IDNo.slice(0, 2), idnumberDetails.IDNo.slice(2, 4) - 1, idnumberDetails.IDNo.slice(4, 6));\r\n idnumberDetails.DateofBirth = date;\r\n const gender = parseInt(idnumberDetails.IDNo.slice(6, 10));\r\n if (gender >= 0 && gender <= 4999) {\r\n idnumberDetails.GenderID = { Id: \"2\", Description: \"Female\" }\r\n } else if (gender >= 5000 && gender <= 9999) {\r\n idnumberDetails.GenderID = { Id: \"1\", Description: \"Male\" }\r\n }\r\n this.setState((prevState, props) => {\r\n return {\r\n formData: { ...prevState.formData, ...idnumberDetails }\r\n }\r\n });\r\n } catch (err) {\r\n\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n ID Document Upload\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.fileUploadHandler(data)}\r\n onProcessHandler={() => this.processFileHandler()}\r\n disabled={!this.state.isSouthAfrican}\r\n />\r\n \r\n

Personal Details

\r\n {\r\n !utils.isStringEmpty(this.state.message) ?\r\n

\r\n {this.state.message}\r\n

\r\n :\r\n \"\"\r\n }\r\n {this.state.showTable === true && (\r\n \r\n )}\r\n
\r\n \r\n
\r\n {\r\n this.state.searchResult.PersonFound === true ?\r\n
\r\n {this.state.searchResult.RoleRecordFound === false ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={typeof this.state.selection !== 'undefined' && this.state.selection !== null && this.state.selection.length > 0} config={nextToolbarConfig} />\r\n
\r\n
\r\n : \"\"\r\n }\r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n this.state.searchResult.RoleRecordFound === false && this.state.searchResult.PersonFound === false &&\r\n this.state.searchResult.DataValid === true && this.state.searched === true ?\r\n
\r\n
\r\n
A person with ID number {this.state.currentIdNumber} does not exist in the system. {this.state.searchResult.IdVerificationMessage}
\r\n
\r\n {this.state.searchResult.IdValid === true ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={typeof this.state.selection !== 'undefined' && this.state.selection !== null && this.state.selection.length > 0} config={createNewToolbarConfig} />\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n
\r\n :\r\n \"\"\r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddPersonRoleSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { AssessorForm } from './AssessorForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to document upload', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to add registration details', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass AddLearnerDetails extends Component {\r\n constructor(props) {\r\n super(props)\r\n let data = {};\r\n\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.personRoleDetails)) {\r\n data = props.data.personRoleDetails.Person;\r\n } else if (!utils.isNull(props.data) && !utils.isNull(props.data.identityDetails)) {\r\n data = props.data.identityDetails.Person ? props.data.identityDetails.Person : props.data.identityDetails.formData\r\n //data.Person = props.data.identityDetails.Person;\r\n } else {\r\n data.Person = {};\r\n }\r\n\r\n this.state = {\r\n model: data\r\n }\r\n }\r\n\r\n handleFormValueChange() {\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n let formValue = formRef.current.getValue();\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(1, false, formValue);\r\n } else if (\"next\" === buttonId) {\r\n if (!utils.isNull(formValue)) {\r\n this.props.stepHandler(1, true, formValue);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n Assessor Details\r\n

\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddLearnerDetails)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Assessor.css\";\r\nimport { AssessorRegistrationDetailsForm } from './AssessorRegistrationDetailsForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"../../View\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to assessor details', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to add registration details', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass AssessorRegistrationDetails extends Component {\r\n constructor(props) {\r\n super(props)\r\n let data = {};\r\n\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.registrationDetails)) {\r\n data = props.data.registrationDetails;\r\n }\r\n\r\n this.state = {\r\n model: data\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n let formValue = formRef.current.getValue();\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(2, false, formValue);\r\n } else if (\"next\" === buttonId) {\r\n if (!utils.isNull(formValue)) {\r\n this.props.stepHandler(2, true, formValue);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n Registration Details\r\n

\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AssessorRegistrationDetails);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport SkillsProgrammeSetupSearch from '../program/SkillsProgramSetupSearch';\r\nimport LearnershipSetupSearch from '../program/LearnershipSetupSearch';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport { unitStandardHeadCells } from \"./AssessorUnitStandards\";\r\nimport { skillsProgrammeHeadCells } from \"./AssessorSkillsProgramme\";\r\nimport { qualificationHeadCells } from \"./AssessorQualifications\";\r\nimport { learnershipHeadCells } from \"./AssessorLearnerships\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport { format } from \"date-fns\";\r\n\r\nconst linkToolbarRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst formRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddAssessorProgrammeDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let nextButtonDisabled = true;\r\n\r\n if (!utils.isNull(this.props.data) && !utils.isNull(this.props.data.scopeDetails)) {\r\n nextButtonDisabled = this.props.data.scopeDetails.qualifications.length === 0 &&\r\n this.props.data.scopeDetails.skillsProgrammes.length === 0 && this.props.data.scopeDetails.unitStandards.length === 0;\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Search', theme: true },\r\n { id: 'finish', label: 'FINISH', tooltip: 'Save assessor', theme: true, disabled: nextButtonDisabled }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n let qualificationIds = \"\";\r\n let skillsProgrammeIds = \"\";\r\n let unitStandardIds = \"\";\r\n let learnershipIds = \"\";\r\n\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.scopeDetails)) {\r\n this.setState({ qualificationIds: this.getIdList(props.data.scopeDetails.qualifications) });\r\n this.setState({ skillsProgrammeIds: this.getIdList(props.data.scopeDetails.skillsProgrammes) });\r\n this.setState({ unitStandardIds: this.getIdList(props.data.scopeDetails.unitStandards) });\r\n this.setState({ learnershipIds: this.getIdList(props.data.scopeDetails.learnerships) });\r\n }\r\n\r\n this.state = {\r\n model: !utils.isNull(props.data) && !utils.isNull(props.data.scopeDetails) ? props.data.scopeDetails : { unitStandards: [], skillsProgrammes: [], qualifications: [], learnerships: []},\r\n searchParameters: null,\r\n message: \"\",\r\n unitStandardIds: unitStandardIds,\r\n skillsProgrammeIds: skillsProgrammeIds,\r\n qualificationIds: qualificationIds,\r\n learnershipIds: learnershipIds,\r\n linkDialogOpen: false,\r\n propmtOpen: false,\r\n selectedUnitStandard: null,\r\n formValue: { Intervention: !utils.isNull(props.data) && !utils.isNull(props.data.scopeDetails) ? props.data.scopeDetails.selectedIntervention : null },\r\n assessorName: this.props.data.personRoleDetails.FirstName + \" \" + this.props.data.personRoleDetails.Surname\r\n };\r\n\r\n this.linkToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: 'Link', tooltip: 'link the selected unit standard to the assessor' },\r\n { id: 'unlink', label: 'Unlink', tooltip: 'Un-link the selected unit standard from the assessor', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ model: { ...this.state.model, [\"selectedIntervention\"]: values.Intervention } });\r\n if (!utils.isNull(linkToolbarRef.current)) {\r\n linkToolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n }\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true });\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n if (!utils.isNull(this.state.selectedProgrammeId)) {\r\n let programmeName = this.state.model.selectedIntervention.Id === \"3\" ? \"learnerships\" :\r\n this.state.model.selectedIntervention.Id === \"1\" ? \"unitStandards\" :\r\n this.state.model.selectedIntervention.Id === \"4\" ? \"skillsProgrammes\" : \"qualifications\";\r\n\r\n let programmes = this.state.model[programmeName];\r\n let newProgrammes = [];\r\n\r\n for (let i = 0; i < programmes.length; i++) {\r\n if (programmes[i].Id !== this.state.selectedProgrammeId) {\r\n newProgrammes.push(programmes[i]);\r\n }\r\n }\r\n\r\n let newIds = this.getIdList(newProgrammes);\r\n this.state.model.selectedIntervention.Id === \"3\" ? this.setState({ learnershipIds: newIds }) :\r\n this.state.model.selectedIntervention.Id === \"1\" ? this.setState({ unitStandardIds: newIds }) :\r\n this.state.model.selectedIntervention.Id === \"4\" ? this.setState({ skillsProgrammeIds: newIds }) :\r\n this.setState({ qualificationIds: newIds });\r\n\r\n this.setState({ model: { ...this.state.model, [programmeName]: newProgrammes } }, () => {\r\n toolbarRef.current.setButtonDisabled(\"finish\", this.state.model.qualifications.length === 0 &&\r\n this.state.model.skillsProgrammes.length === 0 && this.state.model.unitStandards.length === 0\r\n && this.state.model.learnerships.length === 0\r\n );\r\n });\r\n }\r\n } else if (\"back\" === buttonId) {\r\n this.props.stepHandler(4, false, this.state.model);\r\n } else if (\"finish\" === buttonId) {\r\n this.props.stepHandler(4, true, this.state.model);\r\n }\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n this.setState({ linkDialogOpen: !isCancel && !linked})\r\n }\r\n\r\n getIdList(programmes) {\r\n let exclusions = \"\";\r\n\r\n for (let i = 0; i < programmes.length; i++) {\r\n exclusions += programmes[i].Id;\r\n if (i < programmes.length - 1) {\r\n exclusions += \",\"\r\n }\r\n }\r\n\r\n return exclusions;\r\n }\r\n\r\n saveProgramme(selection, programmeName) {\r\n for (let i = 0; i < selection.length; i++) {\r\n selection[i].AssessorAssessmentEndDate = format(this.props.data.registrationDetails.RegistrationEndDate, \"yyyy/MM/dd HH:mm:ss\");\r\n this.state.model[programmeName].push(selection[i]);\r\n }\r\n\r\n toolbarRef.current.setButtonDisabled(\"finish\", this.state.model.qualifications.length === 0 &&\r\n this.state.model.skillsProgrammes.length === 0 && this.state.model.unitStandards.length === 0\r\n && this.state.model.learnerships.length === 0);\r\n }\r\n\r\n saveQualifications(selection) {\r\n this.saveProgramme(selection, \"qualifications\");\r\n this.setState({ qualificationIds: this.getIdList(selection) });\r\n }\r\n \r\n saveSkillsProgrammes(selection) {\r\n this.saveProgramme(selection, \"skillsProgrammes\");\r\n this.setState({ skillsProgrammeIds: this.getIdList(selection) });\r\n }\r\n\r\n saveUnitStandards(selection) {\r\n this.saveProgramme(selection, \"unitStandards\");\r\n this.setState({ unitStandardIds: this.getIdList(selection) });\r\n }\r\n\r\n saveLearnerships(selection) {\r\n this.saveProgramme(selection, \"learnerships\");\r\n this.setState({ learnershipIds: this.getIdList(selection) });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedProgrammeId: selection[0].Id });\r\n } else {\r\n this.setState({ selectedProgrammeId: null });\r\n }\r\n linkToolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n null\r\n }\r\n { this.handleFormValueChange(values) }}>\r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) ?\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={linkToolbarRef} config={this.linkToolbarConfig} />\r\n
:\r\n null\r\n }\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"4\" ?\r\n
\r\n

\r\n Skills Programmes\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveSkillsProgrammes(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Skills Programmes to Assessor: ${this.state.assessorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null \r\n }\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"1\" ?\r\n
\r\n

\r\n Unit Standards\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n {this.saveUnitStandards(selection)}}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Assessor: ${this.state.assessorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"2\" ?\r\n
\r\n

\r\n Qualifications\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveQualifications(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Qualification to Assessor: ${this.state.assessorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"3\" ?\r\n
\r\n

\r\n Learnerships\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveLearnerships(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Learnership to Assessor: ${this.state.assessorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={this.toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddAssessorProgrammeDetails)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Assessor.css\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport ProviderSearch from \"../provider/ProviderSearch\";\r\nimport { headCells } from \"../provider/ProviderSearch\";\r\nimport { format } from \"date-fns\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport LinkDialog from \"../LinkDialog\";\r\n\r\nconst linkToolbarRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddAssessorTrainingProvider extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let nextButtonDisabled = true;\r\n if (!utils.isNull(this.props.data) && !utils.isNull(this.props.data.trainingProviderDetails)) {\r\n nextButtonDisabled = this.props.data.trainingProviderDetails.trainingProviders.length === 0;\r\n }\r\n\r\n console.clear()\r\n console.log(this.props)\r\n\r\n let trainingProviderIds = \"\";\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.trainingProviderDetails)) {\r\n trainingProviderIds = this.getIdList(props.data.trainingProviderDetails.trainingProviders);\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Search', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to Training Provider', theme: true, disabled: nextButtonDisabled }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.linkToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: 'Link', tooltip: 'link the selected unit standard to the assessor' },\r\n { id: 'unlink', label: 'Unlink', tooltip: 'Un-link the selected unit standard from the assessor', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n this.state = {\r\n model: !utils.isNull(props.data) && !utils.isNull(props.data.trainingProviderDetails) ? props.data.trainingProviderDetails : { trainingProviders: [] },\r\n searchParameters: null,\r\n message: \"\",\r\n trainingProviderIds: trainingProviderIds,\r\n linkDialogOpen: false,\r\n propmtOpen: false,\r\n assessorName: this.props.data.personRoleDetails.FirstName + \" \" + this.props.data.personRoleDetails.Surname\r\n };\r\n\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n this.setState({ linkDialogOpen: !isCancel && !linked })\r\n }\r\n\r\n getIdList(programmes) {\r\n let exclusions = \"\";\r\n\r\n for (let i = 0; i < programmes.length; i++) {\r\n exclusions += programmes[i].Id;\r\n if (i < programmes.length - 1) {\r\n exclusions += \",\"\r\n }\r\n }\r\n\r\n return exclusions;\r\n }\r\n\r\n saveTrainingProvider(selection) {\r\n for (let i = 0; i < selection.length; i++) {\r\n selection[i].AssessorAssessmentEndDate = format(this.props.data.registrationDetails.RegistrationEndDate, \"yyyy/MM/dd HH:mm:ss\");\r\n this.state.model.trainingProviders.push(selection[i]);\r\n this.setState({ trainingProviderIds: this.getIdList(selection) });\r\n }\r\n\r\n toolbarRef.current.setButtonDisabled(\"next\", this.state.model.trainingProviders.length === 0);\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedTrainingProviderId: selection[0].Id });\r\n } else {\r\n this.setState({ selectedTrainingProviderId: null });\r\n }\r\n linkToolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true });\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n if (!utils.isNull(this.state.selectedTrainingProviderId)) {\r\n let trainingProviders = this.state.model.trainingProviders;\r\n let newTrainingProviders = [];\r\n\r\n for (let i = 0; i < trainingProviders.length; i++) {\r\n if (trainingProviders[i].Id !== this.state.selectedTrainingProviderId) {\r\n newTrainingProviders.push(trainingProviders[i]);\r\n }\r\n }\r\n\r\n let newIds = this.getIdList(newTrainingProviders);\r\n this.setState({ trainingProviderIds: newIds });\r\n\r\n this.setState({ model: { ...this.state.model, trainingProviders: newTrainingProviders } }, () => {\r\n toolbarRef.current.setButtonDisabled(\"next\", newIds.length === 0);\r\n });\r\n }\r\n } else if (\"back\" === buttonId) {\r\n this.props.stepHandler(3, false, this.state.model);\r\n } else if (\"next\" === buttonId) {\r\n this.props.stepHandler(3, true, this.state.model);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n Training Providers\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={linkToolbarRef} config={this.linkToolbarConfig} />\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveTrainingProvider(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Training Provider to Assessor: ${this.state.assessorName}`}\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={this.toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AddAssessorTrainingProvider);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport LinearFlowHeading from '../../widgets/LinearFlowHeading';\r\nimport AddPersonRoleSearch from './../person/AddPersonRoleSearch';\r\nimport AddAssessorDetails from './AddAssessorDetails';\r\nimport AddAssessorRegistrationDetails from './AddAssessorRegistrationDetails';\r\nimport AddAssessorProgrammeDetails from './AddAssessorProgrammeDetails';\r\nimport AddAssessorTrainingProvider from './AddAssessorTrainingProvider';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst steps = [\r\n { name: \"Identity Details\", tooltip: \"Search the system for an existing person. If one does not extist, click proceed to create a learner with a new person\" },\r\n { name: \"Assessor Details\", tooltip: \"Capture assessor details\" },\r\n { name: \"Registration Details\", tooltip: \"Capture registration details\" },\r\n { name: \"Training Providers\", tooltip: \"Link training providers\" },\r\n { name: \"Scope\", tooltip: \"Capture scope details\" }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nclass AddAssesorFlow extends Component {\r\n state = {\r\n currentStepIndex: 0,\r\n data: null,\r\n documents: {},\r\n saveMessage: \"\",\r\n hasSaveError: false\r\n }\r\n\r\n navigate(index, forward) {\r\n if (forward) {\r\n if (index !== 4) {\r\n this.setState({ currentStepIndex: index + 1 });\r\n }\r\n } else {\r\n this.setState({ currentStepIndex: index - 1 });\r\n }\r\n }\r\n\r\n stepHandler(index, forward, data) {\r\n if (index === 0) {\r\n if (!utils.isNull(this.state.data)\r\n && !utils.isNull(this.state.data.personRoleDetails) && !forward) {\r\n this.setState({\r\n data: {\r\n ...this.state.data,\r\n personRoleDetails: {\r\n ...this.state.data.personRoleDetails,\r\n Person: data.Person\r\n }\r\n }\r\n }, () => { this.navigate(index, forward) });\r\n } else {\r\n this.setState({\r\n data: data\r\n }, () => { this.navigate(index, forward) });\r\n }\r\n } else if (index === 1) {\r\n if (!utils.isNull(data)) {\r\n this.setState({\r\n data: { ...this.state.data, personRoleDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n } else if (!forward) {\r\n this.navigate(index, forward);\r\n }\r\n } else if (index === 2) {\r\n if (!utils.isNull(data)) {\r\n this.setState({\r\n data: { ...this.state.data, registrationDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n } else if (!forward) {\r\n this.navigate(index, forward);\r\n }\r\n } else if (index === 3) {\r\n if (!utils.isNull(data)) {\r\n this.setState({\r\n data: { ...this.state.data, trainingProviderDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n } else if (!forward) {\r\n this.navigate(index, forward);\r\n }\r\n } else if (index === 4) {\r\n if (!utils.isNull(data) && forward) {\r\n let assessorData = {};\r\n assessorData.Person = this.state.data.personRoleDetails;\r\n assessorData.RegistrationDetails = this.state.data.registrationDetails;\r\n assessorData.Scope = data;\r\n assessorData.Scope.selectedIntervension = null;\r\n assessorData.TrainingProviders = this.state.data.trainingProviderDetails.trainingProviders;\r\n\r\n utils.invokeUrl(\"api/sims/assessor/AddAssessor\", (data) => {\r\n this.props.history.push({\r\n pathname: '/assessorSearch'\r\n })\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(assessorData)\r\n });\r\n } else {\r\n this.setState({\r\n data: { ...this.state.data, scopeDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n }\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n }\r\n\r\n componentDidMount() {\r\n utils.setLegend(\"Add Assessor\");\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.currentStepIndex === 0 ?\r\n\r\n this.stepHandler(index, forward, data)} />\r\n : null}\r\n {this.state.currentStepIndex === 1 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 2 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 3 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 4 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AddAssesorFlow));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ModeratorForm } from './ModeratorForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to document upload', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to add registration details', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass AddLearnerDetails extends Component {\r\n constructor(props) {\r\n super(props)\r\n let data = {};\r\n\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.personRoleDetails)) {\r\n data = props.data.personRoleDetails.Person;\r\n } else if (!utils.isNull(props.data) && !utils.isNull(props.data.identityDetails)) {\r\n data.Person = props.data.identityDetails.Person;\r\n } else {\r\n data.Person = {};\r\n }\r\n\r\n this.state = {\r\n model: data\r\n }\r\n }\r\n\r\n handleFormValueChange() {\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n let formValue = formRef.current.getValue();\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(1, false, formValue);\r\n } else if (\"next\" === buttonId) {\r\n if (!utils.isNull(formValue)) {\r\n this.props.stepHandler(1, true, formValue);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n Moderator Details\r\n

\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddLearnerDetails)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Moderator.css\";\r\nimport { ModeratorRegistrationDetailsForm } from './ModeratorRegistrationDetailsForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"../../View\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Moderator details', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to add registration details', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass ModeratorRegistrationDetails extends Component {\r\n constructor(props) {\r\n super(props)\r\n let data = {};\r\n\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.registrationDetails)) {\r\n data = props.data.registrationDetails;\r\n }\r\n\r\n this.state = {\r\n model: data\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n let formValue = formRef.current.getValue();\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(2, false, formValue);\r\n } else if (\"next\" === buttonId) {\r\n if (!utils.isNull(formValue)) {\r\n this.props.stepHandler(2, true, formValue);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n Registration Details\r\n

\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ModeratorRegistrationDetails);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable'; \r\nimport Prompt from '../../widgets/Prompt';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nexport const unitStandardHeadCells = [\r\n { id: 'SAQAUnitStandardID', numeric: false, disablePadding: true, label: 'UnitStandard ID' },\r\n { id: 'SAQAUnitStandardTitle', numeric: false, disablePadding: true, label: 'UnitStandard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardRegistrationStartDate', numeric: false, disablePadding: true, label: 'Registration Start Date' },\r\n { id: 'UnitStandardRegistrationEndDate', numeric: false, disablePadding: true, label: 'Registration End Date' },\r\n { id: 'UnitStandardLastDateForEnrolment', numeric: false, disablePadding: true, label: 'Last Date For Enrolment' },\r\n { id: 'UnitStandardLastDateForAchievement', numeric: false, disablePadding: true, label: 'Last Date For Achievement' },\r\n { id: 'AssessorAssessmentEndDate', numeric: false, disablePadding: true, label: 'Assessor Assessment End Date' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass UnitStandardSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQAUnitStandardID: \"\",\r\n SAQAUnitStandardTitle: \"\",\r\n AssessorID: this.props.location.state.AssessorID\r\n },\r\n\r\n linkDialogOpen: false,\r\n selectedUnitStandard: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From Assessor\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the assessor?\",\r\n unlinkMessage: \"\",\r\n unlinkMessageStyle: \"\",\r\n searchParameters: [{ Name: \"AssessorID\", Value: this.props.location.state.AssessorID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: 'Link Unitstandards', tooltip: 'link the selected unit standard to the assessor' },\r\n { id: 'unlink', label: 'Unlink Unitstandard', tooltip: 'Un-link the selected unit standard from the assessor', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, unlinkMessage: \"\"})\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&assessorId=${this.props.location.state.AssessorID}`\r\n fetch(fullUrl)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedUnitStandard: null, unlinkMessage: response.Message, unlinkMessageStyle: response.MessageType.toLowerCase()});\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ unlinkMessage: response.Message, unlinkMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUnitStandard: selection[0].Id });\r\n } else {\r\n this.setState({ selectedUnitStandard: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n ${this.props.location.state.AssessorName} > Unit Standards`}>\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Assessor: ${this.props.location.state.AssessorName}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/indicium/UnitStandardSetup/linkAssessorUnitStandards\"}\r\n selectionId={this.props.location.state.AssessorID}\r\n > \r\n\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/indicium/UnitStandardSetup/unlinkAssessorUnitstandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(UnitStandardSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport SkillsProgramSetupSearch from '../program/SkillsProgramSetupSearch';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nexport const skillsProgrammeHeadCells = [\r\n { id: 'SkillsProgrammeCode', numeric: false, disablePadding: true, label: 'Skills Programme Code' },\r\n { id: 'SkillsProgrammeTitle', numeric: false, disablePadding: true, label: 'Skills Programme Title' },\r\n { id: 'SkillsProgrammeRegistrationStartDate', numeric: false, disablePadding: true, label: 'Skills Programme Registration Start Date' },\r\n { id: 'SkillsProgrammeRegistrationEndDate', numeric: false, disablePadding: true, label: 'Skills Programme Registration End Date' },\r\n { id: 'AssessorAssessmentEndDate', numeric: false, disablePadding: true, label: 'Assessor Assessment End Date' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AssessorSkillsProgrammeSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SkillsProgrammeCode: \"\",\r\n SkillsProgrammeTitle: \"\",\r\n AssessorID: this.props.location.state.AssessorID\r\n },\r\n\r\n linkDialogOpen: false,\r\n selectedSkillsProgramme: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Skills Programme From Assessor\",\r\n promptContent: \"Are you sure you want to unlink this skills programme from the assessor?\",\r\n unlinkMessage: \"\",\r\n unlinkMessageStyle: \"\",\r\n searchParameters: [{Name: \"AssessorID\", Value: this.props.location.state.AssessorID}]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: 'Link Skills Programmes', tooltip: 'link the selected skills programmes to the assessor' },\r\n { id: 'unlink', label: 'Unlink Skills Programme', tooltip: 'Un-link the selected skills programmes from the assessor', disabled: utils.isNull(this.state.selectedSkillsProgramme) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, unlinkMessage: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedSkillsProgramme}&assessorId=${this.props.location.state.AssessorID}`\r\n fetch(fullUrl)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedSkillsProgramme: null, unlinkMessage: response.Message, unlinkMessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ unlinkMessage: response.Message, unlinkMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedSkillsProgramme: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedSkillsProgramme: selection[0].Id });\r\n } else {\r\n this.setState({ selectedSkillsProgramme: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n ${this.props.location.state.AssessorName} > Skills Programmes`}>\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Skills Programme to Assessor: ${this.props.location.state.AssessorName}`}\r\n linkName={\"SkillsProgrammes\"} postUrl={\"api/indicium/SkillsProgrammeSetup/linkAssessorSkillsProgramme\"}\r\n selectionId={this.props.location.state.AssessorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/indicium/SkillsProgrammeSetup/unlinkAssessorSkillsProgramme`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AssessorSkillsProgrammeSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nexport const qualificationHeadCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'SAQA Qualification ID' },\r\n { id: \"SAQAQualificationTitle\", numeric: false, disablePadding: true, label: \"SAQA Qualification Title\" },\r\n { id: \"Credits\", numeric: false, disablePadding: true, label: \"Credits\" },\r\n { id: \"QualificationRegistrationStartDate\", numeric: false, disablePadding: true, label: \"Qualification Registration Start Date\" },\r\n { id: \"QualificationRegistrationEndDate\", numeric: false, disablePadding: true, label: \"Qualification Registration End Date\" },\r\n { id: \"QualificationLastDateForEnrolment\", numeric: false, disablePadding: true, label: \"Qualification Last Date For Enrollment\" },\r\n { id: \"QualificationLastDateForAchievement\", numeric: false, disablePadding: true, label: \"Qualification Last Date For Achievement\" },\r\n { id: \"AssessorAssessmentEndDate\", numeric: false, disablePadding: true, label: \"Assessor Assessment End Date\" }\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass AssessorQualificationSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n SAQAQualificationID: \"\",\r\n SAQAQualificationTitle: \"\",\r\n AssessorID: this.props.location.state.AssessorID\r\n },\r\n\r\n linkDialogOpen: false,\r\n selectedQualification: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Qualification From Assessor\",\r\n promptContent: \"Are you sure you want to unlink this qualification from the assessor?\",\r\n unlinkMessage: \"\",\r\n unlinkMessageStyle: \"\",\r\n searchParameters: [{Name: \"AssessorID\", Value: this.props.location.state.AssessorID}]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: 'Link Qualifications', tooltip: 'link the selected qualification(s) to the assessor' },\r\n { id: 'unlink', label: 'Unlink Qualification', tooltip: 'Un-link the selected qualification(s) from the assessor', disabled: utils.isNull(this.state.selectedQualification) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, unlinkMessage: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n unlinkQualification(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedQualification}&assessorId=${this.props.location.state.AssessorID}`\r\n fetch(fullUrl)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedQualification: null, unlinkMessage: response.Message, unlinkMessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ unlinkMessage: response.Message, unlinkMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n linkDialogOpen: false, selectedQualification: null,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedQualification: selection[0].Id });\r\n } else {\r\n this.setState({ selectedQualification: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return(\r\n ${this.props.location.state.AssessorName} > Qualifications`}>\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Qualification to Assessor: ${this.props.location.state.AssessorName}`}\r\n linkName={\"Qualifications\"} postUrl={\"api/indicium/QualificationSetup/linkAssessorQualification\"}\r\n selectionId={this.props.location.state.AssessorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkQualification(`api/indicium/QualificationSetup/unlinkAssessorQualification`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(\r\n connect()(AssessorQualificationSearch)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport LearnershipSetupSearch from '../program/LearnershipSetupSearch';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nexport const learnershipHeadCells = [\r\n { id: 'LearnershipCode', numeric: false, disablePadding: true, label: 'Learnership Code' },\r\n { id: \"LearnershipTitle\", numeric: false, disablePadding: true, label: \"Learnership Title\" },\r\n { id: \"AssessorAssessmentEndDate\", numeric: false, disablePadding: true, label: \"Assessor Assessment End Date\" }\r\n \r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass AssessorLearnershipSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n LearnershipCode: \"\",\r\n LearnershipTitle: \"\",\r\n AssessorID: this.props.location.state.AssessorID\r\n },\r\n\r\n linkDialogOpen: false,\r\n selectedLearnership: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Learnership From moderator\",\r\n promptContent: \"Are you sure you want to unlink this learnership from the moderator?\",\r\n unlinkMessage: \"\",\r\n unlinkMessageStyle: \"\",\r\n searchParameters: [{ Name: \"moderatorID\", Value: this.props.location.state.AssessorID}]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: 'Link moderator', tooltip: 'link the selected learnership(s) to the moderator' },\r\n { id: 'unlink', label: 'Unlink moderator', tooltip: 'Un-link the selected learnership(s) from the moderator', disabled: utils.isNull(this.state.selectedQualification) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/assessor',\r\n state: { selection: this.props.location.state.AssessorID }\r\n });\r\n }\r\n else if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true, unlinkMessage: \"\" })\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n unlinkQualification(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedLearnership}&assessorId=${this.props.location.state.AssessorID}`\r\n fetch(fullUrl)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedQualification: null, unlinkMessage: response.Message, unlinkMessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ unlinkMessage: response.Message, unlinkMessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n linkDialogOpen: false, selectedQualification: null,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedQualification: selection[0].Id });\r\n } else {\r\n this.setState({ selectedQualification: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return(\r\n ${this.props.location.state.AssessorName} > Qualifications`}>\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Qualification to Assessor: ${this.props.location.state.AssessorName}`}\r\n linkName={\"Qualifications\"} postUrl={\"api/indicium/QualificationSetup/linkAssessorQualification\"}\r\n selectionId={this.props.location.state.AssessorID}\r\n >\r\n \r\n \r\n\r\n this.unlinkQualification(`api/indicium/QualificationSetup/unlinkAssessorQualification`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(\r\n connect()(AssessorLearnershipSearch)\r\n);","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Moderator.css\"\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport LearnershipSetupSearch from '../program/LearnershipSetupSearch';\r\nimport SkillsProgrammeSetupSearch from '../program/SkillsProgramSetupSearch';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport { unitStandardHeadCells } from \"./AssessorUnitStandards\";\r\nimport { skillsProgrammeHeadCells } from \"./AssessorSkillsProgramme\";\r\nimport { qualificationHeadCells } from \"./AssessorQualifications\";\r\nimport { learnershipHeadCells } from \"./AssessorLearnerships\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport { format } from \"date-fns\";\r\n\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n icon: {\r\n borderRadius: '50%',\r\n width: 16,\r\n height: 16,\r\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\r\n backgroundColor: '#f5f8fa',\r\n \r\n 'input:hover ~ &': {\r\n backgroundColor: '#ebf1f5',\r\n },\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)',\r\n },\r\n },\r\n checkedIcon: {\r\n backgroundColor: '#01579B',\r\n '&:before': {\r\n display: 'block',\r\n width: 16,\r\n height: 16,\r\n content: '\"\"',\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: '#01579B',\r\n },\r\n },\r\n});\r\n\r\nconst linkToolbarRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst formRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nfunction StyledRadio(props) {\r\n const classes = useStyles();\r\n \r\n return (\r\n }\r\n icon={}\r\n {...props}\r\n />\r\n );\r\n }\r\n\r\nclass AddAssessorProgrammeDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let nextButtonDisabled = true;\r\n\r\n if (!utils.isNull(this.props.data) && !utils.isNull(this.props.data.scopeDetails)) {\r\n nextButtonDisabled = this.props.data.scopeDetails.qualifications.length === 0 &&\r\n this.props.data.scopeDetails.skillsProgrammes.length === 0 && this.props.data.scopeDetails.unitStandards.length === 0 && this.props.data.scopeDetails.learnerships.length === 0;\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Search', theme: true },\r\n { id: 'finish', label: 'FINISH', tooltip: 'Save Moderator', theme: true, disabled: nextButtonDisabled }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n let qualificationIds = \"\";\r\n let skillsProgrammeIds = \"\";\r\n let unitStandardIds = \"\";\r\n let learnershipIds = \"\";\r\n let scopeSelected = \"\";\r\n\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.scopeDetails)) {\r\n this.setState({ qualificationIds: this.getIdList(props.data.scopeDetails.qualifications) });\r\n this.setState({ skillsProgrammeIds: this.getIdList(props.data.scopeDetails.skillsProgrammes) });\r\n this.setState({ unitStandardIds: this.getIdList(props.data.scopeDetails.unitStandards) });\r\n this.setState({ learnershipIds: this.getIdList(props.data.scopeDetails.learnerships) });\r\n }\r\n\r\n this.state = {\r\n model: !utils.isNull(props.data) && !utils.isNull(props.data.scopeDetails) ? props.data.scopeDetails : { unitStandards: [], skillsProgrammes: [], qualifications: [], learnerships: [], scopeSelected: null },\r\n searchParameters: null,\r\n message: \"\",\r\n scopeDescription: \"\",\r\n unitStandardIds: unitStandardIds,\r\n skillsProgrammeIds: skillsProgrammeIds,\r\n qualificationIds: qualificationIds,\r\n learnershipIds: learnershipIds,\r\n linkDialogOpen: false,\r\n propmtOpen: false,\r\n selectedUnitStandard: null,\r\n formValue: { Intervention: !utils.isNull(props.data) && !utils.isNull(props.data.scopeDetails) ? props.data.scopeDetails.selectedIntervention : null },\r\n assessorName: this.props.data.FirstName + \" \" + this.props.data.Surname,\r\n personId: !utils.isNull(props.data) && !utils.isNull(props.data.personRoleDetails) ? props.data.personRoleDetails.ID: null,\r\n scopeSelected: '1'\r\n };\r\n\r\n this.linkToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: 'Link', tooltip: 'link the selected intervention record to the moderator' },\r\n { id: 'unlink', label: 'Unlink', tooltip: 'Un-link the selected intervention record from the moderator', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ model: { ...this.state.model, [\"selectedIntervention\"]: values.Intervention } });\r\n if (!utils.isNull(linkToolbarRef.current)) {\r\n linkToolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n }\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true });\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n if (!utils.isNull(this.state.selectedProgrammeId)) {\r\n let programmeName =\r\n this.state.model.selectedIntervention.Id === \"3\" ? \"learnerships\" :\r\n this.state.model.selectedIntervention.Id === \"1\" ? \"unitStandards\" :\r\n this.state.model.selectedIntervention.Id === \"4\" ? \"skillsProgrammes\" : \"qualifications\";\r\n\r\n let programmes = this.state.model[programmeName];\r\n let newProgrammes = [];\r\n\r\n for (let i = 0; i < programmes.length; i++) {\r\n if (programmes[i].Id !== this.state.selectedProgrammeId) {\r\n newProgrammes.push(programmes[i]);\r\n }\r\n }\r\n\r\n let newIds = this.getIdList(newProgrammes);\r\n this.state.model.selectedIntervention.Id === \"3\" ? this.setState({ learnershipIds: newIds }) :\r\n this.state.model.selectedIntervention.Id === \"1\" ? this.setState({ unitStandardIds: newIds }) :\r\n this.state.model.selectedIntervention.Id === \"4\" ? this.setState({ skillsProgrammeIds: newIds }) :\r\n this.setState({ qualificationIds: newIds });\r\n\r\n this.setState({ model: { ...this.state.model, [programmeName]: newProgrammes } }, () => {\r\n toolbarRef.current.setButtonDisabled(\"finish\", this.state.model.qualifications.length === 0 &&\r\n this.state.model.skillsProgrammes.length === 0 && this.state.model.unitStandards.length === 0 && this.state.model.learnerships.length === 0);\r\n });\r\n }\r\n } else if (\"back\" === buttonId) {\r\n this.props.stepHandler(4, false, this.state.model);\r\n } else if (\"finish\" === buttonId) {\r\n this.props.stepHandler(4, true, this.state.model);\r\n }\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n this.setState({ linkDialogOpen: !isCancel && !linked})\r\n }\r\n\r\n getIdList(programmes) {\r\n let exclusions = \"\";\r\n\r\n for (let i = 0; i < programmes.length; i++) {\r\n exclusions += programmes[i].Id;\r\n if (i < programmes.length - 1) {\r\n exclusions += \",\"\r\n }\r\n }\r\n\r\n return exclusions;\r\n }\r\n\r\n saveProgramme(selection, programmeName) {\r\n for (let i = 0; i < selection.length; i++) {\r\n selection[i].AssessorAssessmentEndDate = format(this.props.data.registrationDetails.RegistrationEndDate, \"yyyy/MM/dd HH:mm:ss\");\r\n this.state.model[programmeName].push(selection[i]);\r\n }\r\n\r\n toolbarRef.current.setButtonDisabled(\"finish\", this.state.model.qualifications.length === 0 &&\r\n this.state.model.skillsProgrammes.length === 0 && this.state.model.unitStandards.length === 0 && this.state.model.learnerships.length === 0);\r\n\r\n \r\n }\r\n\r\n saveQualifications(selection) {\r\n this.saveProgramme(selection, \"qualifications\");\r\n this.setState({ qualificationIds: this.getIdList(selection) });\r\n }\r\n \r\n saveSkillsProgrammes(selection) {\r\n this.saveProgramme(selection, \"skillsProgrammes\");\r\n this.setState({ skillsProgrammeIds: this.getIdList(selection) });\r\n }\r\n\r\n saveUnitStandards(selection) {\r\n this.saveProgramme(selection, \"unitStandards\");\r\n this.setState({ unitStandardIds: this.getIdList(selection) });\r\n }\r\n\r\n saveLearnerships(selection) {\r\n this.saveProgramme(selection, \"learnerships\");\r\n this.setState({ learnershipIds: this.getIdList(selection) });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedProgrammeId: selection[0].Id });\r\n } else {\r\n this.setState({ selectedProgrammeId: null });\r\n }\r\n linkToolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n handleScopeSelected = (event) => {\r\n\r\n if (event.target.value === '1') {\r\n this.setState({ scopeDescription: \"Manually choose scope items existing under the Assessor profile for this Moderator.\" })\r\n }\r\n\r\n if (event.target.value === '2') {\r\n this.AutoGrabAssessorScopes();\r\n }\r\n\r\n if (event.target.value === '3') {\r\n this.setState({ scopeDescription: \"No scope will be added to the moderator.\" })\r\n }\r\n \r\n if (event.target.value != this.state.scopeSelected) { \r\n this.setState({ scopeSelected: event.target.value });\r\n this.state.model.scopeSelected = event.target.value;\r\n toolbarRef.current.setButtonDisabled(\"finish\", event.target.value === '1');\r\n } \r\n }\r\n\r\n AutoGrabAssessorScopes() {\r\n let url = \"api/sims/Moderator/GetPrefillAssessorScope?PersonID=\" + this.state.personId;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n model: {\r\n ...this.state.model,\r\n [\"learnerships\"]: response[0].Data,\r\n [\"skillsProgrammes\"]: response[1].Data,\r\n [\"unitStandards\"]: response[2].Data,\r\n [\"qualifications\"]: response[3].Data\r\n }, scopeDescription: \"The system will populate the scope from the Moderators’ Assessor profile to the Moderators’ scope.\"\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n null\r\n }\r\n\r\n
\r\n

\r\n {this.state.scopeDescription}\r\n

\r\n
\r\n
\r\n \r\n \r\n {this.handleScopeSelected(event)}} defaultValue=\"1\" aria-label=\"linkscope\" name=\"scope module\" row> \r\n } label=\"No Scope\" />\r\n } label=\"Read Scope from Assesor Profile \" />\r\n } label=\"Link Scope\" />\r\n \r\n \r\n
\r\n \r\n { this.handleFormValueChange(values) }}>\r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) ?\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={linkToolbarRef} config={this.linkToolbarConfig} />\r\n
:\r\n null\r\n }\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"4\" ?\r\n
\r\n

\r\n Skills Programmes\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveSkillsProgrammes(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Skills Programmes to Moderator: ${this.state.assessorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null \r\n }\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"1\" ?\r\n
\r\n

\r\n Unit Standards\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n {this.saveUnitStandards(selection)}}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Moderator: ${this.state.assessorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"2\" ?\r\n
\r\n

\r\n Qualifications\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveQualifications(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Qualification to Moderator: ${this.state.assessorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"3\" ?\r\n
\r\n

\r\n Learnership\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveLearnerships(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Learnership to Moderator: ${this.state.assessorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={this.toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddAssessorProgrammeDetails)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Moderator.css\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport ProviderSearch from \"../provider/ProviderSearch\";\r\nimport { headCells } from \"../provider/ProviderSearch\";\r\nimport { format } from \"date-fns\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport LinkDialog from \"../LinkDialog\";\r\n\r\nconst linkToolbarRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddModeratorTrainingProvider extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let nextButtonDisabled = true;\r\n if (!utils.isNull(this.props.data) && !utils.isNull(this.props.data.trainingProviderDetails)) {\r\n nextButtonDisabled = this.props.data.trainingProviderDetails.trainingProviders.length === 0;\r\n }\r\n\r\n let trainingProviderIds = \"\";\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.trainingProviderDetails)) {\r\n trainingProviderIds = this.getIdList(props.data.trainingProviderDetails.trainingProviders);\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Search', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to Training Provider', theme: true, disabled: nextButtonDisabled }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.linkToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: 'Link', tooltip: 'link the selected provider to the Moderator' },\r\n { id: 'unlink', label: 'Unlink', tooltip: 'Un-link the selected provider from the Moderator', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n this.state = {\r\n model: !utils.isNull(props.data) && !utils.isNull(props.data.trainingProviderDetails) ? props.data.trainingProviderDetails : { trainingProviders: [] },\r\n searchParameters: null,\r\n message: \"\",\r\n trainingProviderIds: trainingProviderIds,\r\n linkDialogOpen: false,\r\n propmtOpen: false,\r\n ModeratorName: this.props.data.FirstName + \" \" + this.props.data.Surname\r\n };\r\n\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n this.setState({ linkDialogOpen: !isCancel && !linked })\r\n }\r\n\r\n getIdList(programmes) {\r\n let exclusions = \"\";\r\n\r\n for (let i = 0; i < programmes.length; i++) {\r\n exclusions += programmes[i].Id;\r\n if (i < programmes.length - 1) {\r\n exclusions += \",\"\r\n }\r\n }\r\n\r\n return exclusions;\r\n }\r\n\r\n saveTrainingProvider(selection) {\r\n\r\n for (let i = 0; i < selection.length; i++) {\r\n selection[i].ModeratorAssessmentEndDate = format(this.props.data.registrationDetails.RegistrationEndDate, \"yyyy/MM/dd HH:mm:ss\");\r\n this.state.model.trainingProviders.push(selection[i]);\r\n }\r\n\r\n let trainingProviderIdList = \"\";\r\n trainingProviderIdList = this.getIdList(this.state.model.trainingProviders);\r\n\r\n this.setState({\r\n trainingProviderIds: trainingProviderIdList\r\n }\r\n )\r\n\r\n toolbarRef.current.setButtonDisabled(\"next\", this.state.model.trainingProviders.length === 0);\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedTrainingProviderId: selection[0].Id });\r\n } else {\r\n this.setState({ selectedTrainingProviderId: null });\r\n }\r\n linkToolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true });\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n if (!utils.isNull(this.state.selectedTrainingProviderId)) {\r\n let trainingProviders = this.state.model.trainingProviders;\r\n let newTrainingProviders = [];\r\n\r\n for (let i = 0; i < trainingProviders.length; i++) {\r\n if (trainingProviders[i].Id !== this.state.selectedTrainingProviderId) {\r\n newTrainingProviders.push(trainingProviders[i]);\r\n }\r\n }\r\n\r\n let newIds = this.getIdList(newTrainingProviders);\r\n this.setState({ trainingProviderIds: newIds });\r\n\r\n this.setState({ model: { ...this.state.model, trainingProviders: newTrainingProviders } }, () => {\r\n toolbarRef.current.setButtonDisabled(\"next\", newIds.length === 0);\r\n });\r\n }\r\n } else if (\"back\" === buttonId) {\r\n this.props.stepHandler(3, false, this.state.model);\r\n } else if (\"next\" === buttonId) {\r\n this.props.stepHandler(3, true, this.state.model);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n Training Providers\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={linkToolbarRef} config={this.linkToolbarConfig} />\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveTrainingProvider(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Training Provider to Moderator: ${this.state.ModeratorName}`}\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={this.toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AddModeratorTrainingProvider);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport LinearFlowHeading from '../../widgets/LinearFlowHeading';\r\nimport AddPersonRoleSearch from './../person/AddPersonRoleSearch';\r\nimport AddModeratorDetails from './AddModeratorDetails';\r\nimport AddModeratorRegistrationDetails from './AddModeratorRegistrationDetails';\r\nimport AddModeratorProgrammeDetails from './AddModeratorProgrammeDetails';\r\nimport AddModeratorTrainingProvider from './AddModeratorTrainingProvider';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst steps = [\r\n { name: \"Identity Details\", tooltip: \"Search the system for an existing person. If one does not exist, click proceed to create a learner with a new person\" },\r\n { name: \"Moderator Details\", tooltip: \"Capture moderator details\" },\r\n { name: \"Registration Details\", tooltip: \"Capture registration details\" },\r\n { name: \"Training Providers\", tooltip: \"Link training providers\" },\r\n { name: \"Scope\", tooltip: \"Capture scope details\" }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nclass AddModeratorFlow extends Component {\r\n state = {\r\n currentStepIndex: 0,\r\n data: null,\r\n documents: {},\r\n saveMessage: \"\",\r\n hasSaveError: false\r\n }\r\n\r\n navigate(index, forward) {\r\n if (forward) {\r\n if (index !== 4) {\r\n this.setState({ currentStepIndex: index + 1 });\r\n }\r\n } else {\r\n this.setState({ currentStepIndex: index - 1 });\r\n }\r\n }\r\n\r\n stepHandler(index, forward, data) {\r\n if (index === 0) {\r\n if (!utils.isNull(this.state.data)\r\n && !utils.isNull(this.state.data.personRoleDetails) && !forward) {\r\n this.setState({\r\n data: {\r\n ...this.state.data,\r\n personRoleDetails: {\r\n ...this.state.data.personRoleDetails,\r\n Person: data.Person\r\n }\r\n }\r\n }, () => { this.navigate(index, forward) });\r\n } else {\r\n this.setState({\r\n data: data\r\n }, () => {this.navigate(index, forward) });\r\n }\r\n } else if (index === 1) {\r\n if (!utils.isNull(data)) {\r\n this.setState({\r\n data: { ...this.state.data, personRoleDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n } else if (!forward) {\r\n this.navigate(index, forward);\r\n }\r\n } else if (index === 2) {\r\n if (!utils.isNull(data)) {\r\n this.setState({\r\n data: { ...this.state.data, registrationDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n } else if (!forward) {\r\n this.navigate(index, forward);\r\n }\r\n } else if (index === 3) {\r\n if (!utils.isNull(data)) {\r\n this.setState({\r\n data: { ...this.state.data, trainingProviderDetails: data }\r\n }, () => { this.navigate(index, forward)});\r\n } else if (!forward) {\r\n this.navigate(index, forward);\r\n }\r\n } else if (index === 4) {\r\n if (!utils.isNull(data) && forward) {\r\n let ModeratorData = {};\r\n ModeratorData.Person = this.state.data.personRoleDetails;\r\n ModeratorData.RegistrationDetails = this.state.data.registrationDetails;\r\n ModeratorData.Scope = data;\r\n ModeratorData.Scope.selectedIntervension = null;\r\n ModeratorData.TrainingProviders = this.state.data.trainingProviderDetails.trainingProviders;\r\n\r\n utils.invokeUrl(\"api/sims/moderator/addModerator\", (data) => {\r\n this.props.history.push({\r\n pathname: '/ModeratorSearch'\r\n })\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(ModeratorData)\r\n });\r\n } else {\r\n this.setState({\r\n data: { ...this.state.data, scopeDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n }\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n }\r\n\r\n componentDidMount() {\r\n utils.setLegend(\"Add Moderator\");\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.currentStepIndex === 0 ?\r\n \r\n this.stepHandler(index, forward, data)} />\r\n : null}\r\n {this.state.currentStepIndex === 1 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 2 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 3 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 4 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AddModeratorFlow));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { FacilitatorForm } from './FacilitatorForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to document upload', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to add registration details', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass AddFacilitatorDetails extends Component {\r\n constructor(props) {\r\n super(props)\r\n let data = {};\r\n\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.personRoleDetails)) {\r\n data = props.data.personRoleDetails.Person;\r\n } else if (!utils.isNull(props.data) && !utils.isNull(props.data.identityDetails)) {\r\n data = props.data.identityDetails.Person ? props.data.identityDetails.Person : props.data.identityDetails.formData\r\n //data.Person = props.data.identityDetails.Person;\r\n } else {\r\n data.Person = {};\r\n }\r\n\r\n this.state = {\r\n model: data\r\n }\r\n }\r\n\r\n handleFormValueChange() {\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n let formValue = formRef.current.getValue();\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(1, false, formValue);\r\n } else if (\"next\" === buttonId) {\r\n if (!utils.isNull(formValue)) {\r\n this.props.stepHandler(1, true, formValue);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n Facilitator Details\r\n

\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddFacilitatorDetails)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Facilitator.css\";\r\nimport { FacilitatorRegistrationDetailsForm } from './FacilitatorRegistrationDetailsForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"../../View\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Facilitator details', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to add registration details', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass FacilitatorRegistrationDetails extends Component {\r\n constructor(props) {\r\n super(props)\r\n let data = {};\r\n\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.registrationDetails)) {\r\n data = props.data.registrationDetails;\r\n }\r\n\r\n this.state = {\r\n model: data\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n let formValue = formRef.current.getValue();\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(2, false, formValue);\r\n } else if (\"next\" === buttonId) {\r\n if (!utils.isNull(formValue)) {\r\n this.props.stepHandler(2, true, formValue);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n Registration Details\r\n

\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(FacilitatorRegistrationDetails);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport SkillsProgrammeSetupSearch from '../program/SkillsProgramSetupSearch';\r\nimport LearnershipSetupSearch from '../program/LearnershipSetupSearch';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport { unitStandardHeadCells } from \"./FacilitatorUnitStandards\";\r\nimport { skillsProgrammeHeadCells } from \"./FacilitatorSkillsProgramme\";\r\nimport { qualificationHeadCells } from \"./FacilitatorQualifications\";\r\nimport { learnershipHeadCells } from \"./FacilitatorLearnerships\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport { format } from \"date-fns\";\r\n\r\nconst linkToolbarRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst formRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddFacilitatorProgrammeDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let nextButtonDisabled = true;\r\n\r\n if (!utils.isNull(this.props.data) && !utils.isNull(this.props.data.scopeDetails)) {\r\n nextButtonDisabled = this.props.data.scopeDetails.qualifications.length === 0 &&\r\n this.props.data.scopeDetails.skillsProgrammes.length === 0 && this.props.data.scopeDetails.unitStandards.length === 0;\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Search', theme: true },\r\n { id: 'finish', label: 'FINISH', tooltip: 'Save Facilitator', theme: true/*, disabled: nextButtonDisabled*/ }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n let qualificationIds = \"\";\r\n let skillsProgrammeIds = \"\";\r\n let unitStandardIds = \"\";\r\n let learnershipIds = \"\";\r\n\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.scopeDetails)) {\r\n this.setState({ qualificationIds: this.getIdList(props.data.scopeDetails.qualifications) });\r\n this.setState({ skillsProgrammeIds: this.getIdList(props.data.scopeDetails.skillsProgrammes) });\r\n this.setState({ unitStandardIds: this.getIdList(props.data.scopeDetails.unitStandards) });\r\n this.setState({ learnershipIds: this.getIdList(props.data.scopeDetails.learnerships) });\r\n }\r\n\r\n this.state = {\r\n model: !utils.isNull(props.data) && !utils.isNull(props.data.scopeDetails) ? props.data.scopeDetails : { unitStandards: [], skillsProgrammes: [], qualifications: [], learnerships: [] },\r\n searchParameters: null,\r\n message: \"\",\r\n unitStandardIds: unitStandardIds,\r\n skillsProgrammeIds: skillsProgrammeIds,\r\n qualificationIds: qualificationIds,\r\n learnershipIds: learnershipIds,\r\n linkDialogOpen: false,\r\n propmtOpen: false,\r\n selectedUnitStandard: null,\r\n formValue: { Intervention: !utils.isNull(props.data) && !utils.isNull(props.data.scopeDetails) ? props.data.scopeDetails.selectedIntervention : null },\r\n facilitatorName: this.props.data.personRoleDetails.FirstName + \" \" + this.props.data.personRoleDetails.Surname\r\n };\r\n\r\n this.linkToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: 'Link', tooltip: 'link the selected unit standard to the Facilitator' },\r\n { id: 'unlink', label: 'Unlink', tooltip: 'Un-link the selected unit standard from the Facilitator', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ model: { ...this.state.model, [\"selectedIntervention\"]: values.Intervention } });\r\n if (!utils.isNull(linkToolbarRef.current)) {\r\n linkToolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n }\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true });\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n if (!utils.isNull(this.state.selectedProgrammeId)) {\r\n let programmeName = this.state.model.selectedIntervention.Id === \"3\" ? \"learnerships\" :\r\n this.state.model.selectedIntervention.Id === \"1\" ? \"unitStandards\" :\r\n this.state.model.selectedIntervention.Id === \"4\" ? \"skillsProgrammes\" : \"qualifications\";\r\n\r\n let programmes = this.state.model[programmeName];\r\n let newProgrammes = [];\r\n\r\n for (let i = 0; i < programmes.length; i++) {\r\n if (programmes[i].Id !== this.state.selectedProgrammeId) {\r\n newProgrammes.push(programmes[i]);\r\n }\r\n }\r\n\r\n let newIds = this.getIdList(newProgrammes);\r\n this.state.model.selectedIntervention.Id === \"3\" ? this.setState({ learnershipIds: newIds }) :\r\n this.state.model.selectedIntervention.Id === \"1\" ? this.setState({ unitStandardIds: newIds }) :\r\n this.state.model.selectedIntervention.Id === \"4\" ? this.setState({ skillsProgrammeIds: newIds }) :\r\n this.setState({ qualificationIds: newIds });\r\n\r\n this.setState({ model: { ...this.state.model, [programmeName]: newProgrammes } }, () => {\r\n toolbarRef.current.setButtonDisabled(\"finish\", this.state.model.qualifications.length === 0 &&\r\n this.state.model.skillsProgrammes.length === 0 && this.state.model.unitStandards.length === 0\r\n && this.state.model.learnerships.length === 0\r\n );\r\n });\r\n }\r\n } else if (\"back\" === buttonId) {\r\n this.props.stepHandler(4, false, this.state.model);\r\n } else if (\"finish\" === buttonId) {\r\n this.props.stepHandler(4, true, this.state.model);\r\n }\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n this.setState({ linkDialogOpen: !isCancel && !linked })\r\n }\r\n\r\n getIdList(programmes) {\r\n let exclusions = \"\";\r\n\r\n for (let i = 0; i < programmes.length; i++) {\r\n exclusions += programmes[i].Id;\r\n if (i < programmes.length - 1) {\r\n exclusions += \",\"\r\n }\r\n }\r\n\r\n return exclusions;\r\n }\r\n\r\n saveProgramme(selection, programmeName) {\r\n for (let i = 0; i < selection.length; i++) {\r\n if (!utils.isNull(this.props.data.registrationDetails.RegistrationEndDate)) {\r\n selection[i].FacilitatorAssessmentEndDate = format(this.props.data.registrationDetails.RegistrationEndDate, \"yyyy/MM/dd HH:mm:ss\");\r\n }\r\n this.state.model[programmeName].push(selection[i]);\r\n }\r\n\r\n toolbarRef.current.setButtonDisabled(\"finish\", this.state.model.qualifications.length === 0 &&\r\n this.state.model.skillsProgrammes.length === 0 && this.state.model.unitStandards.length === 0\r\n && this.state.model.learnerships.length === 0);\r\n }\r\n\r\n saveQualifications(selection) {\r\n this.saveProgramme(selection, \"qualifications\");\r\n this.setState({ qualificationIds: this.getIdList(selection) });\r\n }\r\n\r\n saveSkillsProgrammes(selection) {\r\n this.saveProgramme(selection, \"skillsProgrammes\");\r\n this.setState({ skillsProgrammeIds: this.getIdList(selection) });\r\n }\r\n\r\n saveUnitStandards(selection) {\r\n this.saveProgramme(selection, \"unitStandards\");\r\n this.setState({ unitStandardIds: this.getIdList(selection) });\r\n }\r\n\r\n saveLearnerships(selection) {\r\n this.saveProgramme(selection, \"learnerships\");\r\n this.setState({ learnershipIds: this.getIdList(selection) });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedProgrammeId: selection[0].Id });\r\n } else {\r\n this.setState({ selectedProgrammeId: null });\r\n }\r\n linkToolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n null\r\n }\r\n { this.handleFormValueChange(values) }}>\r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) ?\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={linkToolbarRef} config={this.linkToolbarConfig} />\r\n
:\r\n null\r\n }\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"4\" ?\r\n
\r\n

\r\n Skills Programmes\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveSkillsProgrammes(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Skills Programmes to Facilitator: ${this.state.facilitatorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"1\" ?\r\n
\r\n

\r\n Unit Standards\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveUnitStandards(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Facilitator: ${this.state.facilitatorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"2\" ?\r\n
\r\n

\r\n Qualifications\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveQualifications(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Qualification to Facilitator: ${this.state.facilitatorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n\r\n {\r\n !utils.isNull(this.state.model.selectedIntervention) && this.state.model.selectedIntervention.Id === \"3\" ?\r\n
\r\n

\r\n Learnerships\r\n

\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveLearnerships(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Learnership to Facilitator: ${this.state.facilitatorName}`}\r\n >\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={this.toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddFacilitatorProgrammeDetails)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Facilitator.css\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport ProviderSearch from \"../provider/ProviderSearch\";\r\nimport { headCells } from \"../provider/ProviderSearch\";\r\nimport { format } from \"date-fns\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport LinkDialog from \"../LinkDialog\";\r\n\r\nconst linkToolbarRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AddFacilitatorTrainingProvider extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let nextButtonDisabled = true;\r\n if (!utils.isNull(this.props.data) && !utils.isNull(this.props.data.trainingProviderDetails)) {\r\n nextButtonDisabled = this.props.data.trainingProviderDetails.trainingProviders.length === 0;\r\n }\r\n\r\n console.clear()\r\n console.log(this.props)\r\n\r\n let trainingProviderIds = \"\";\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.trainingProviderDetails)) {\r\n trainingProviderIds = this.getIdList(props.data.trainingProviderDetails.trainingProviders);\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to Search', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to Training Provider', theme: true/*, disabled: nextButtonDisabled*/ }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.linkToolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: 'Link', tooltip: 'link the selected unit standard to the Facilitator' },\r\n { id: 'unlink', label: 'Unlink', tooltip: 'Un-link the selected unit standard from the Facilitator', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n this.state = {\r\n model: !utils.isNull(props.data) && !utils.isNull(props.data.trainingProviderDetails) ? props.data.trainingProviderDetails : { trainingProviders: [] },\r\n searchParameters: null,\r\n message: \"\",\r\n trainingProviderIds: trainingProviderIds,\r\n linkDialogOpen: false,\r\n propmtOpen: false,\r\n facilitatorName: this.props.data.personRoleDetails.FirstName + \" \" + this.props.data.personRoleDetails.Surname\r\n };\r\n\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n this.setState({ linkDialogOpen: !isCancel && !linked })\r\n }\r\n\r\n getIdList(programmes) {\r\n let exclusions = \"\";\r\n\r\n for (let i = 0; i < programmes.length; i++) {\r\n exclusions += programmes[i].Id;\r\n if (i < programmes.length - 1) {\r\n exclusions += \",\"\r\n }\r\n }\r\n\r\n return exclusions;\r\n }\r\n\r\n saveTrainingProvider(selection) {\r\n for (let i = 0; i < selection.length; i++) {\r\n selection[i].FacilitatorAssessmentEndDate = format(this.props.data.registrationDetails.RegistrationEndDate, \"yyyy/MM/dd HH:mm:ss\");\r\n this.state.model.trainingProviders.push(selection[i]);\r\n this.setState({ trainingProviderIds: this.getIdList(selection) });\r\n }\r\n\r\n toolbarRef.current.setButtonDisabled(\"next\", this.state.model.trainingProviders.length === 0);\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedTrainingProviderId: selection[0].Id });\r\n } else {\r\n this.setState({ selectedTrainingProviderId: null });\r\n }\r\n linkToolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"link\" === buttonId) {\r\n this.setState({ linkDialogOpen: true });\r\n }\r\n else if (\"unlink\" === buttonId) {\r\n if (!utils.isNull(this.state.selectedTrainingProviderId)) {\r\n let trainingProviders = this.state.model.trainingProviders;\r\n let newTrainingProviders = [];\r\n\r\n for (let i = 0; i < trainingProviders.length; i++) {\r\n if (trainingProviders[i].Id !== this.state.selectedTrainingProviderId) {\r\n newTrainingProviders.push(trainingProviders[i]);\r\n }\r\n }\r\n\r\n let newIds = this.getIdList(newTrainingProviders);\r\n this.setState({ trainingProviderIds: newIds });\r\n\r\n this.setState({ model: { ...this.state.model, trainingProviders: newTrainingProviders } }, () => {\r\n toolbarRef.current.setButtonDisabled(\"next\", newIds.length === 0);\r\n });\r\n }\r\n } else if (\"back\" === buttonId) {\r\n this.props.stepHandler(3, false, this.state.model);\r\n } else if (\"next\" === buttonId) {\r\n this.props.stepHandler(3, true, this.state.model);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n Training Providers\r\n

\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={linkToolbarRef} config={this.linkToolbarConfig} />\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={false} />\r\n
\r\n { this.saveTrainingProvider(selection) }}\r\n closeHandler={(isCancelled, linked) => this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Training Provider to Facilitator: ${this.state.facilitatorName}`}\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={this.toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AddFacilitatorTrainingProvider);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport LinearFlowHeading from '../../widgets/LinearFlowHeading';\r\nimport AddPersonRoleSearch from './../person/AddPersonRoleSearch';\r\nimport AddFacilitatorDetails from './AddFacilitatorDetails';\r\nimport AddFacilitatorRegistrationDetails from './AddFacilitatorRegistrationDetails';\r\nimport AddFacilitatorProgrammeDetails from './AddFacilitatorProgrammeDetails';\r\nimport AddFacilitatorTrainingProvider from './AddFacilitatorTrainingProvider';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst steps = [\r\n { name: \"Identity Details\", tooltip: \"Search the system for an existing person. If one does not extist, click proceed to create a learner with a new person\" },\r\n { name: \"Facilitator Details\", tooltip: \"Capture Facilitator details\" },\r\n { name: \"Registration Details\", tooltip: \"Capture registration details\" },\r\n { name: \"Training Providers\", tooltip: \"Link training providers\" },\r\n { name: \"Scope\", tooltip: \"Capture scope details\" }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nclass AddFacilitatorFlow extends Component {\r\n state = {\r\n currentStepIndex: 0,\r\n data: null,\r\n documents: {},\r\n saveMessage: \"\",\r\n hasSaveError: false\r\n }\r\n\r\n navigate(index, forward) {\r\n if (forward) {\r\n if (index !== 4) {\r\n this.setState({ currentStepIndex: index + 1 });\r\n }\r\n } else {\r\n this.setState({ currentStepIndex: index - 1 });\r\n }\r\n }\r\n\r\n stepHandler(index, forward, data) {\r\n if (index === 0) {\r\n if (!utils.isNull(this.state.data)\r\n && !utils.isNull(this.state.data.personRoleDetails) && !forward) {\r\n this.setState({\r\n data: {\r\n ...this.state.data,\r\n personRoleDetails: {\r\n ...this.state.data.personRoleDetails,\r\n Person: data.Person\r\n }\r\n }\r\n }, () => { this.navigate(index, forward) });\r\n } else {\r\n this.setState({\r\n data: data\r\n }, () => { this.navigate(index, forward) });\r\n }\r\n } else if (index === 1) {\r\n if (!utils.isNull(data)) {\r\n this.setState({\r\n data: { ...this.state.data, personRoleDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n } else if (!forward) {\r\n this.navigate(index, forward);\r\n }\r\n } else if (index === 2) {\r\n if (!utils.isNull(data)) {\r\n this.setState({\r\n data: { ...this.state.data, registrationDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n } else if (!forward) {\r\n this.navigate(index, forward);\r\n }\r\n } else if (index === 3) {\r\n if (!utils.isNull(data)) {\r\n this.setState({\r\n data: { ...this.state.data, trainingProviderDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n } else if (!forward) {\r\n this.navigate(index, forward);\r\n }\r\n } else if (index === 4) {\r\n if (!utils.isNull(data) && forward) {\r\n let facilitatorData = {};\r\n facilitatorData.Person = this.state.data.personRoleDetails;\r\n facilitatorData.RegistrationDetails = this.state.data.registrationDetails;\r\n facilitatorData.Scope = data;\r\n facilitatorData.Scope.selectedIntervension = null;\r\n facilitatorData.TrainingProviders = this.state.data.trainingProviderDetails.trainingProviders;\r\n\r\n utils.invokeUrl(\"api/sims/facilitator/AddFacilitator\", (data) => {\r\n this.props.history.push({\r\n pathname: '/facilitatorSearch'\r\n })\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(facilitatorData)\r\n });\r\n } else {\r\n this.setState({\r\n data: { ...this.state.data, scopeDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n }\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n }\r\n\r\n componentDidMount() {\r\n utils.setLegend(\"Add Facilitator\");\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.currentStepIndex === 0 ?\r\n\r\n this.stepHandler(index, forward, data)} />\r\n : null}\r\n {this.state.currentStepIndex === 1 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 2 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 3 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n {this.state.currentStepIndex === 4 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AddFacilitatorFlow));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ConsultantForm } from './ConsultantForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to document upload', theme: true },\r\n { id: 'finish', label: 'FINISH', tooltip: 'Save consultant', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass AddConsultantDetails extends Component {\r\n constructor(props) {\r\n super(props)\r\n let data = {};\r\n\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.personRoleDetails)) {\r\n data = props.data.personRoleDetails.Person;\r\n } else if (!utils.isNull(props.data) && !utils.isNull(props.data.identityDetails)) {\r\n data = props.data.identityDetails.Person ? props.data.identityDetails.Person : props.data.identityDetails.formData\r\n //data.Person = props.data.identityDetails.Person;\r\n } else {\r\n data.Person = {};\r\n }\r\n\r\n this.state = {\r\n model: data\r\n }\r\n }\r\n\r\n handleFormValueChange() {\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n let formValue = formRef.current.getValue();\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(1, false, formValue);\r\n } else if (\"finish\" === buttonId) {\r\n if (!utils.isNull(formValue)) {\r\n this.props.stepHandler(1, true, formValue);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n Consultant Details\r\n

\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddConsultantDetails)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport LinearFlowHeading from '../../widgets/LinearFlowHeading';\r\nimport AddPersonRoleSearch from './../person/AddPersonRoleSearch';\r\nimport AddConsultantDetails from './AddConsultantDetails';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst steps = [\r\n { name: \"Identity Details\", tooltip: \"Search the system for an existing person. If one does not extist, click proceed to create a learner with a new person\" },\r\n { name: \"Consultant Details\", tooltip: \"Capture consultant details\" }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nclass AddConsultantFlow extends Component {\r\n state = {\r\n currentStepIndex: 0,\r\n data: null,\r\n documents: {},\r\n saveMessage: \"\",\r\n hasSaveError: false\r\n }\r\n\r\n navigate(index, forward) {\r\n if (forward) {\r\n if (index !== 1) {\r\n this.setState({ currentStepIndex: index + 1 });\r\n }\r\n } else {\r\n this.setState({ currentStepIndex: index - 1 });\r\n }\r\n }\r\n\r\n stepHandler(index, forward, data) {\r\n console.clear();\r\n console.log(index);\r\n console.log(forward);\r\n console.log(data);\r\n if (index === 0) {\r\n if (!utils.isNull(this.state.data)\r\n && !utils.isNull(this.state.data.personRoleDetails) && !forward) {\r\n this.setState({\r\n data: {\r\n ...this.state.data,\r\n personRoleDetails: {\r\n ...this.state.data.personRoleDetails,\r\n Person: data.Person\r\n }\r\n }\r\n }, () => { this.navigate(index, forward) });\r\n } else {\r\n this.setState({\r\n data: data\r\n }, () => { this.navigate(index, forward) });\r\n }\r\n } else if (index === 1) {\r\n if (!utils.isNull(data) && forward) {\r\n\r\n this.setState({\r\n data: { ...this.state.data, personRoleDetails: data }\r\n }, () => {\r\n let consultantData = {};\r\n consultantData.Person = this.state.data.personRoleDetails;\r\n\r\n utils.invokeUrl(\"api/sims/consultant/Addconsultant\", (data) => {\r\n this.props.history.push({\r\n pathname: '/consultantSearch'\r\n })\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(consultantData)\r\n });\r\n })\r\n } else {\r\n this.setState({\r\n data: { ...this.state.data, scopeDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n }\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n }\r\n\r\n componentDidMount() {\r\n utils.setLegend(\"Add Consultant\");\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.currentStepIndex === 0 ?\r\n\r\n this.stepHandler(index, forward, data)} />\r\n : null}\r\n {this.state.currentStepIndex === 1 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AddConsultantFlow));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ProjectOwnerForm } from './ProjectOwnerForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'back', label: 'BACK', tooltip: 'Back to document upload', theme: true },\r\n { id: 'next', label: 'NEXT', tooltip: 'Proceed to add registration details', theme: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nclass AddProjectOwnerDetails extends Component {\r\n constructor(props) {\r\n super(props)\r\n let data = {};\r\n\r\n if (!utils.isNull(props.data) && !utils.isNull(props.data.personRoleDetails)) {\r\n data = props.data.personRoleDetails.Person;\r\n } else if (!utils.isNull(props.data) && !utils.isNull(props.data.identityDetails)) {\r\n data = props.data.identityDetails.Person ? props.data.identityDetails.Person : props.data.identityDetails.formData\r\n //data.Person = props.data.identityDetails.Person;\r\n } else {\r\n data.Person = {};\r\n }\r\n\r\n this.state = {\r\n model: data\r\n }\r\n }\r\n\r\n handleFormValueChange() {\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n let formValue = formRef.current.getValue();\r\n if (\"back\" === buttonId) {\r\n this.props.stepHandler(1, false, formValue);\r\n } else if (\"next\" === buttonId) {\r\n if (!utils.isNull(formValue)) {\r\n this.props.stepHandler(1, true, formValue);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n ProjectOwner Details\r\n

\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} config={toolbarConfig} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AddProjectOwnerDetails)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport LinearFlowHeading from '../../widgets/LinearFlowHeading';\r\nimport AddPersonRoleSearch from './../person/AddPersonRoleSearch';\r\nimport AddProjectOwnerDetails from './AddProjectOwnerDetails';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst steps = [\r\n { name: \"Identity Details\", tooltip: \"Search the system for an existing person. If one does not extist, click proceed to create a learner with a new person\" },\r\n { name: \"ProjectOwner Details\", tooltip: \"Capture Project Owner details\" },\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nclass AddAssesorFlow extends Component {\r\n state = {\r\n currentStepIndex: 0,\r\n data: null,\r\n documents: {},\r\n saveMessage: \"\",\r\n hasSaveError: false\r\n }\r\n\r\n navigate(index, forward) {\r\n if (forward) {\r\n if (index !== 4) {\r\n this.setState({ currentStepIndex: index + 1 });\r\n }\r\n } else {\r\n this.setState({ currentStepIndex: index - 1 });\r\n }\r\n }\r\n\r\n stepHandler(index, forward, data) {\r\n console.clear();\r\n console.log(index);\r\n console.log(forward);\r\n console.log(data);\r\n if (index === 0) {\r\n if (!utils.isNull(this.state.data)\r\n && !utils.isNull(this.state.data.personRoleDetails) && !forward) {\r\n this.setState({\r\n data: {\r\n ...this.state.data,\r\n personRoleDetails: {\r\n ...this.state.data.personRoleDetails,\r\n Person: data.Person\r\n }\r\n }\r\n }, () => { this.navigate(index, forward) });\r\n } else {\r\n this.setState({\r\n data: data\r\n }, () => { this.navigate(index, forward) });\r\n }\r\n } else if (index === 1) {\r\n if (!utils.isNull(data) && forward) {\r\n\r\n this.setState({\r\n data: { ...this.state.data, personRoleDetails: data }\r\n }, () => {\r\n let consultantData = {};\r\n consultantData.Person = this.state.data.personRoleDetails;\r\n\r\n utils.invokeUrl(\"api/sims/projectowner/AddProjectOwner\", (data) => {\r\n this.props.history.push({\r\n pathname: '/projectownerSearch'\r\n })\r\n }, () => { alert(utils.SYSTEM_ERROR_MESSAGE) }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(consultantData)\r\n });\r\n })\r\n } else {\r\n this.setState({\r\n data: { ...this.state.data, scopeDetails: data }\r\n }, () => { this.navigate(index, forward) });\r\n }\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n }\r\n\r\n componentDidMount() {\r\n utils.setLegend(\"Add Project Owner\");\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.currentStepIndex === 0 ?\r\n\r\n this.stepHandler(index, forward, data)} />\r\n : null}\r\n {this.state.currentStepIndex === 1 ? this.stepHandler(index, forward, data)} /> : \"\"}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AddAssesorFlow));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n\r\nclass BarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n series: [{\r\n name: 'Learner Per Province',\r\n data: [\r\n ['Freestate', 3565],\r\n ['Gauteng North', 18405],\r\n ['Gauteng South', 13117],\r\n ['Kwa-Zulu', 17899],\r\n ['Limpopo', 5055],\r\n ['Mpumalanga', 5141],\r\n ['North West', 3356],\r\n ['Northern Cape', 1829],\r\n ['Western Cape', 19522]\r\n ],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n }]\r\n }\r\n }\r\n\r\n highChartsRender() {\r\n \r\n Highcharts.chart({\r\n \r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n \r\n title: {\r\n text: 'Learner Per Province'\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Learner Per Province'\r\n }\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Provice: {point.y:.1f} Learners'\r\n },\r\n plotOptions: {\r\n colum: {\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n }\r\n },\r\n series: this.state.series\r\n });\r\n }\r\n\r\n componentDidMount() { \r\n this.highChartsRender();\r\n }\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(BarChart);\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col} from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './piechart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n\r\n\r\nclass PieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: [\r\n ['Achieved', 1, false],\r\n ['Enrolled', 3, false],\r\n ['Pending Verification', 3, false],\r\n ['Withdrawn', 1, false] \r\n ],\r\n showInLegend: true\r\n }]\r\n \r\n }\r\n }\r\n\r\n highChartsRender() {\r\n Highcharts.chart('piecontainer',{\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: 'Learner Learneship'\r\n },\r\n\r\n xAxis: {\r\n categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\r\n },\r\n series: this.state.series \r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(PieChart); \r\n","import React, { Component } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport Barchart from '../barchart/barchart';\r\nimport Piechart from '../piechart/piechart';\r\nimport { Row } from 'react-bootstrap';\r\nimport ViewUtils from '../ViewUtils';\r\nimport CardLayout from '../widgets/Card';\r\n\r\nconst utils = new ViewUtils();\r\nclass Dashboard extends Component {\r\n componentDidMount() {\r\n utils.setLegend(\"Dashboard\");\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n v1.0.3 \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(Dashboard)\r\n);\r\n","import { withRouter } from 'react-router-dom';\r\nimport React, { Component } from \"react\";\r\nimport \"../Grid.css\";\r\nimport \"../Form.css\";\r\nimport \"../App.css\";\r\nimport { ViewContainer } from \"../View.jsx\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport EnhancedToolbar from '../widgets/Toolbar';\r\nimport EnhancedTable from '../widgets/ResponsiveTable';\r\nimport AlertItem from \"../widgets/AlertItem\";\r\nimport withMenuPermission from \"../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Organisation Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: 'SDFStatus', numeric: false, disablePadding: true, label: 'SDF Status' },\r\n];\r\n\r\nclass SDFDashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedId: null,\r\n searchParameters: [{ Name: \"SDFID\", Value: null }],\r\n clearSelectedRow: false,\r\n formArray: [],\r\n SDFID: null,\r\n sdfName: null,\r\n IDNo: null,\r\n OrganisationId: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View Organisation', icon: 'InfoIcon', disabled: true },\r\n { id: 'edit', label: 'Edit SDF Details', tooltip: '' },\r\n { id: 'link', label: 'Link/Remove Organisations', tooltip: '' },\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getDashboardDetails()\r\n }\r\n getDashboardDetails() {\r\n let url = \"api/sims/SDFDashboard/GetSDFDashboardDetails\";\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n formArray: response,\r\n sdfName: response.FirstName + \" \" + response.Surname,\r\n IDNo: response.IDNo,\r\n SDFID: response.ID,\r\n searchParameters: [{ Name: \"SDFID\", Value: response.ID }]\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n //console.clear();\r\n //console.log(this.state.SDFID);\r\n if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisation\",\r\n state: {\r\n selection: this.state.OrganisationId\r\n }\r\n })\r\n }\r\n else if (\"edit\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/sdf\",\r\n state: {\r\n selection: this.state.SDFID,\r\n IsDashboard: true\r\n }\r\n })\r\n }\r\n else if (\"link\" === buttonId) {\r\n let LookupUrl = `api/sims/sdforganisationdetails/`;\r\n this.props.history.push({\r\n pathname: '/sdfOrgDetails',\r\n state: {\r\n SDFID: this.state.SDFID,\r\n sdfName: this.state.sdfName,\r\n IDNo: this.state.IDNo,\r\n IsDashboard: true,\r\n LookupUrl: LookupUrl\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let newsearchParameters = [...this.state.searchParameters];\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n if (selection[0].SDFStatus === \"Approved\") {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false, OrganisationId: selection[0].OrganisationID });\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n }\r\n else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false, OrganisationId: selection[0].OrganisationID });\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n }\r\n } else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false, OrganisationId: null });\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n }\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n showTable: false,\r\n clearSelectedRow: true\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n clearSelectedRow: true\r\n })\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n clearSelectedRow: true\r\n })\r\n }\r\n }\r\n\r\n remove(url) {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedId}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null })\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedId: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(),\r\n clearSelectedRow: true\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\"SDF Dashboard - \" + (this.state.sdfName !== null ? this.state.sdfName + \" - \" + this.state.IDNo : \"\")}\r\n
\r\n
\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n {this.state.SDFID ?\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl={\"api/sims/SDFDashboard/GetSDFDashboardOrganisations\"}\r\n searchParameters={this.state.searchParameters}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n paged={true} /> : null\r\n }\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(SDFDashboard));","import { withRouter } from 'react-router-dom';\r\nimport React, { Component } from \"react\";\r\nimport \"../Grid.css\";\r\nimport \"../Form.css\";\r\nimport \"../App.css\";\r\nimport { ViewContainer } from \"../View.jsx\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport EnhancedToolbar from '../widgets/Toolbar';\r\nimport EnhancedTable from '../widgets/ResponsiveTable';\r\nimport AlertItem from \"../widgets/AlertItem\";\r\nimport withMenuPermission from \"../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Organisation Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' },\r\n];\r\n\r\nclass StakeholderDashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedId: null,\r\n searchParameters: [{ Name: \"StakeholderID\", Value: null }],\r\n clearSelectedRow: false,\r\n formArray: [],\r\n StakeholderID: null,\r\n stakeholderName: null,\r\n IDNo: null,\r\n OrganisationId: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View Organisation', icon: 'InfoIcon', disabled: true },\r\n { id: 'edit', label: 'Edit Stakeholder Details', tooltip: '' },\r\n { id: 'link', label: 'Link/Remove Organisations', tooltip: '' },\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getDashboardDetails()\r\n }\r\n getDashboardDetails() {\r\n let url = \"api/sims/StakeholderDashboard/GetStakeholderDashboardDetails\";\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n formArray: response,\r\n stakeholderName: response.FirstName + \" \" + response.Surname,\r\n IDNo: response.IDNo,\r\n StakeholderID: response.ID,\r\n searchParameters: [{ Name: \"StakeholderID\", Value: response.ID }]\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n //console.clear();\r\n //console.log(this.state.StakeholderID);\r\n if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/DGOrganisation\",\r\n state: {\r\n selection: this.state.OrganisationId\r\n }\r\n })\r\n }\r\n else if (\"edit\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/stakeholder\",\r\n state: {\r\n selection: this.state.StakeholderID,\r\n IsDashboard: true\r\n }\r\n })\r\n }\r\n else if (\"link\" === buttonId) {\r\n let LookupUrl = `api/sims/DGStakeholderorganisation/`;\r\n this.props.history.push({\r\n pathname: '/Stakeholderorganisationdetails',\r\n state: {\r\n StakeholderID: this.state.StakeholderID,\r\n stakeholderName: this.state.stakeholderName,\r\n IDNo: this.state.IDNo,\r\n IsDashboard: true,\r\n LookupUrl: LookupUrl\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let newsearchParameters = [...this.state.searchParameters];\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n if (selection[0].Status === \"Approved\") {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false, OrganisationId: selection[0].OrganisationID });\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n }\r\n else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false, OrganisationId: selection[0].OrganisationID });\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n }\r\n } else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false, OrganisationId: null });\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n }\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n showTable: false,\r\n clearSelectedRow: true\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n clearSelectedRow: true\r\n })\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n clearSelectedRow: true\r\n })\r\n }\r\n }\r\n\r\n remove(url) {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedId}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null })\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedId: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(),\r\n clearSelectedRow: true\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\"Stakeholder Dashboard - \" + (this.state.stakeholderName !== null ? this.state.stakeholderName + \" - \" + this.state.IDNo : \"\")}\r\n
\r\n
\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n {this.state.StakeholderID ?\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl={\"api/sims/StakeholderDashboard/GetStakeholderDashboardOrganisations\"}\r\n searchParameters={this.state.searchParameters}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n paged={true} /> : null\r\n }\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(StakeholderDashboard));","import { withRouter } from 'react-router-dom';\r\nimport React, { Component } from \"react\";\r\nimport \"../Grid.css\";\r\nimport \"../Form.css\";\r\nimport \"../App.css\";\r\nimport { ViewContainer } from \"../View.jsx\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport EnhancedToolbar from '../widgets/Toolbar';\r\nimport EnhancedTable from '../widgets/ResponsiveTable';\r\nimport AlertItem from \"../widgets/AlertItem\";\r\nimport withMenuPermission from \"../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst toolbarRef2 = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'ID No' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n];\r\n\r\nclass SkillsDashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedId: null,\r\n searchParameters: [],\r\n clearSelectedRow: false,\r\n formArray: [],\r\n StakeholderID: null,\r\n stakeholderName: null,\r\n IDNo: null,\r\n OrganisationId: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View Organisation', icon: 'ViewIcon', disabled: true }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n this.toolbarConfig2 = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view2', label: '', tooltip: 'View Organisation', icon: 'ViewIcon', disabled: true }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n //componentDidMount() {\r\n\r\n // this.getDashboardDetails()\r\n //}\r\n //getDashboardDetails() {\r\n // let url = \"api/sims/SkillsDashboard/GetOrganisationSDFsForApproval\";\r\n // utils.invokeUrl(url, (response) => {\r\n // this.setState({\r\n // formArray: response,\r\n // stakeholderName: response.FirstName + \" \" + response.Surname,\r\n // IDNo: response.IDNo,\r\n // StakeholderID: response.ID,\r\n // searchParameters: [{ Name: \"StakeholderID\", Value: response.ID }]\r\n // })\r\n // },\r\n // null,\r\n // {\r\n // method: 'GET',\r\n // headers: {\r\n // 'Accept': 'application/json',\r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n // }\r\n // }\r\n // )\r\n //}\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n //console.clear();\r\n //console.log(this.state.StakeholderID);\r\n if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/SkillsOrganisation\",\r\n state: {\r\n selection: this.state.OrganisationId,\r\n isDashboard: true\r\n }\r\n })\r\n }\r\n else\r\n if (\"view2\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/DGOrganisation\",\r\n state: {\r\n selection: this.state.OrganisationId,\r\n isDashboard: true\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let newsearchParameters = [...this.state.searchParameters];\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false, OrganisationId: selection[0].OrganisationID });\r\n }\r\n else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false, OrganisationId: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n }\r\n\r\n handleSelectionChange2 = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false, OrganisationId: selection[0].OrganisationID });\r\n } else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false, OrganisationId: null });\r\n }\r\n toolbarRef2.current.setButtonDisabled(\"view2\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n showTable: false,\r\n clearSelectedRow: true\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n clearSelectedRow: true\r\n })\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n clearSelectedRow: true\r\n })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null })\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\"Skills Dashboard\"}\r\n
\r\n
\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\"SDFs\"}\r\n
\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl={\"api/sims/SkillsDashboard/GetOrganisationSDFsForApproval\"}\r\n searchParameters={this.state.searchParameters}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n height={\"50vh\"}\r\n paged={true} />\r\n
\r\n
 \r\n {\"Stakeholders\"}\r\n
\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef2}\r\n config={this.toolbarConfig2}\r\n />\r\n\r\n { this.handleSelectionChange2(selection) }}\r\n dataUrl={\"api/sims/SkillsDashboard/GetOrganisationStakeholdersForApproval\"}\r\n searchParameters={this.state.searchParameters}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n height={\"50vh\"}\r\n paged={true} />\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(SkillsDashboard));","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport UnitStandardsTable from '../UnitStandardsTable';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport UnitStandardSetupSearch from './UnitStandardSetupSearch';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardType', numeric: false, disablePadding: true, label: 'Unit Standard Type' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\nclass QualificationunitStandardSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From Qualification\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the qualification?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"SAQAQualificationID\", Value: props.location.state.qualificationId }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n contextMenu: [\r\n { id: 1, description: \"Core\" },\r\n { id: 2, description: \"Fundamental\" },\r\n { id: 3, description: \"Elective\" },\r\n { id: 4, description: \"Compulsory Elective\" }\r\n ],\r\n id: 'link', label: 'Link', contextIcon: 'LinkIcon', tooltip: 'Link the selected unit standard to the quilification', width: \"60px\"\r\n },\r\n { id: 'unlink', label: '', icon: 'LinkOffIcon', tooltip: 'Un-link the selected unit standard from the quilification', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/Qualificationsetup',\r\n state: { selection: this.props.location.state.qualificationId, id: this.props.location.state.qualificationId }\r\n });\r\n } else if (\"unlink\" === buttonId) {\r\n this.setState({promptOpen: true})\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&qualificationId=${this.props.location.state.qualificationId}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\",\r\n });\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\",\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false})\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Qualification > Unit Standards\"}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/QualificationSetupUnitStandard/GetSearch\"\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Qualification: ${this.props.location.state.qualificationTitle}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/QualificationSetupUnitStandard/linkUnitStandards\"} usePost={true}\r\n programmeId={this.props.location.state.qualificationId} programmeType=\"Q\"\r\n > \r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/QualificationSetupUnitStandard/unlinkQualificationUnitstandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(QualificationunitStandardSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport UnitStandardsTable from '../UnitStandardsTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport UnitStandardSetupSearch from './UnitStandardSetupSearch';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardType', numeric: false, disablePadding: true, label: 'Unit Standard Type' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\n\r\nclass SkillsUnitStandardSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n keyUpSwitch: false,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From Skills Programme\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the skills programme?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"skillsID\", Value: props.location.state.skillsID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n contextMenu: [\r\n { id: 1, description: \"Core\" },\r\n { id: 2, description: \"Fundamental\" },\r\n { id: 3, description: \"Elective\" },\r\n { id: 4, description: \"Compulsory Elective\" }\r\n ],\r\n id: 'link', label: 'Link', contextIcon: 'LinkIcon', tooltip: 'Link the selected unit standard to the skills programme'\r\n },\r\n { id: 'unlink', label: 'UN-LINK', icon: 'LinkOffIcon', tooltip: 'Un-link the selected unit standard from the skills programme', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/SkillsProgrammeSetup',\r\n state: { selection: this.props.location.state.skillsID }\r\n });\r\n } else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&skillsProgrammeId=${this.props.location.state.skillsID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Skills Programme > Unit Standards\"}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/SkillsProgrammeSetupUnitStandard/GetSearch\"\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Skills Programme: ${this.props.location.state.SkillsTitle}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/SkillsProgrammeSetupUnitStandard/linkUnitStandards\"} usePost={true}\r\n programmeId={this.props.location.state.skillsID} programmeType=\"S\"\r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/SkillsProgrammeSetupUnitStandard/unlinkSkillsProgrammeUnitstandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(SkillsUnitStandardSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport UnitStandardsTable from '../UnitStandardsTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport UnitStandardSetupSearch from './UnitStandardSetupSearch';\r\nimport LinkDialog from \"../LinkDialog\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'SAQAQualificationID', numeric: false, disablePadding: true, label: 'SAQA Unit Standard ID' },\r\n { id: 'SAQAQualificationTitle', numeric: false, disablePadding: true, label: 'SAQA Unit Standard Title' },\r\n { id: 'Credits', numeric: false, disablePadding: true, label: 'Credits' },\r\n { id: 'UnitStandardType', numeric: false, disablePadding: true, label: 'Unit Standard Type' }\r\n];\r\n\r\nconst toolbarRef = React.createRef();\r\n\r\nclass BursaryUnitStandardSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n linkDialogOpen: false,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n keyUpSwitch: false,\r\n propmtOpen: false,\r\n promptTitle: \"Unlink Unit Standard From Bursary\",\r\n promptContent: \"Are you sure you want to unlink this unit standard from the bursary?\",\r\n message: \"\",\r\n messageStyle: \"\",\r\n searchParameters: [{ Name: \"bursaryID\", Value: props.location.state.bursaryID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n contextMenu: [\r\n { id: 1, description: \"Core\" },\r\n { id: 2, description: \"Fundamental\" },\r\n { id: 3, description: \"Elective\" },\r\n { id: 4, description: \"Compulsory Elective\" }\r\n ],\r\n id: 'link', label: 'Link', contextIcon: 'LinkIcon', tooltip: 'Link the selected unit standard to the skills programme'\r\n },\r\n { id: 'unlink', label: 'UN-LINK', icon: 'LinkOffIcon', tooltip: 'Un-link the selected unit standard from the skills programme', disabled: utils.isNull(this.state.selectedUnitStandard) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/BursarySetup',\r\n state: { selection: this.props.location.state.bursaryID }\r\n });\r\n } else if (\"unlink\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n successCallback = (response) => {\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n selectedLinkType: null,\r\n selectedLinkStandards: null,\r\n selectedUnitStandard: null,\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n else if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType.toLowerCase()\r\n })\r\n }\r\n }\r\n\r\n\r\n unlinkUnitstandard(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"unlink\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUnitStandard}&bursaryId=${this.props.location.state.bursaryID}`\r\n utils.invokeUrlDelete(fullUrl, this.successCallback, null);\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n linkDialogOpen: false, selectedUnitStandard: null\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUnitStandard: selection[0].Id,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n } else {\r\n this.setState({\r\n selectedUnitStandard: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"unlink\", selection === null || selection.length === 0);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Bursary > Unit Standards\"}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/BursarySetupUnitStandard/GetSearch\"\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={`Link Unit Standards to Bursary: ${this.props.location.state.BursaryTitle}`}\r\n linkName={\"UnitStandards\"} postUrl={\"api/sims/BursarySetupUnitStandard/linkUnitStandards\"} usePost={true}\r\n programmeId={this.props.location.state.bursaryID} programmeType=\"S\"\r\n >\r\n \r\n \r\n\r\n this.unlinkUnitstandard(`api/sims/BursarySetupUnitStandard/unlinkBursaryUnitstandard`)}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BursaryUnitStandardSearch)\r\n);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\n\r\nexport default function SDFSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport SDFSearchForm from './SDFSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nclass SDFSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n ProvinceID: \"0\",\r\n SDLNumber: \"\"\r\n },\r\n keyUpSwitch: false,\r\n selectedOrganisation: null,\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'View / Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.View }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n this.searchParameters = this.searchParameters = this.props.isLinkSearch ?\r\n [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"ProvinceID\", Value: \"0\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n ]\r\n :\r\n [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"ProvinceID\", Value: \"0\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n\r\n ]\r\n\r\n this.headCells = this.props.isLinkSearch ?\r\n [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'ID Number' }\r\n ]\r\n :\r\n [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'ID Number' }\r\n\r\n ]\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedOrganisation: selection })\r\n } else {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(SDFSearch));","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function RoleSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Description\r\n\t\t\t\t\t\t\t\t\r\n props.model.Description = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n SAQA Code\r\n\t\t\t\t\t\t\t\t\r\n props.model.SAQACode = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Role.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport RoleSearchForm from './RoleSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst headCells = [\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Description' },\r\n { id: 'SAQACode', numeric: false, disablePadding: true, label: 'SAQA Code' },\r\n\r\n\r\n];\r\n\r\nconst searchParameters = [\r\n { Name: \"Description\", Value: \"\" },\r\n { Name: \"SAQACode\", Value: \"\" }\r\n\r\n]\r\n\r\nclass RoleSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n Description: \"\",\r\n SAQACode: \"\"\r\n },\r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: 'delete', label: '', tooltip: 'Delete selected role from records', icon: 'DeleteIcon', disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n\r\n ]\r\n },\r\n keyUpSwitch: false\r\n };\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"add\" === buttonId) {\r\n this.props.history.push('/roleMaintenance');\r\n } else if (\"edit\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/roleMaintenance\",\r\n state: {\r\n selection: this.state.selectedRoleID,\r\n RoleName: this.state.selectedRoleName,\r\n RoleSAQACode: this.state.selectedSAQACode\r\n }\r\n })\r\n }\r\n }\r\n\r\n postLinkHandler(linked) {\r\n this.setState({ linkDialogOpen: false, selectedLinkType: null, selectedLinkStandards: null });\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedRoleID: selection[0].Id,\r\n selectedRoleName: selection[0].Description,\r\n selectedSAQACode: selection[0].SAQACode\r\n });\r\n } else {\r\n this.setState({\r\n selectedRoleID: null,\r\n selectedRoleName: null,\r\n selectedSAQACode: null\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Role Maintenance > Roles & Permissions\"}\r\n

\r\n { this.handleSelection(selection) }}\r\n >\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(RoleSearch));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function UserSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n First Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.FirstName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Surname\r\n\t\t\t\t\t\t\t\t\r\n props.model.Surname = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n ID No\r\n\t\t\t\t\t\t\t\t\r\n props.model.IDNo = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./User.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport UserSearchForm from './UserSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'UserName', numeric: false, disablePadding: true, label: 'Username' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'ID No' },\r\n { id: 'PasswordExpiryDate', numeric: false, disablePadding: true, label: 'Password Expirey Date' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' },\r\n { id: 'delete', label: '', tooltip: 'Delete selected user from record', icon: 'DeleteIcon', disabled: true }\r\n ]\r\n }\r\n \r\n ]\r\n};\r\n\r\nconst searchParameters = [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" }\r\n\r\n]\r\n\r\nclass UserSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\"\r\n\r\n }\r\n };\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"add\" === buttonId) {\r\n this.props.history.push('/userDetails');\r\n } else if (\"edit\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/userDetails\",\r\n state: {\r\n selection: this.state.selectedUser,\r\n FirstName: this.state.selectedFirstName,\r\n Surname: this.state.selectedSurname\r\n }\r\n })\r\n }\r\n }\r\n\r\n postLinkHandler(linked) {\r\n this.setState({ linkDialogOpen: false, selectedLinkType: null, selectedLinkStandards: null });\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedUser: selection[0].Id,\r\n selectedFirstName: selection[0].FirstName,\r\n selectedSurname: selection[0].Surname\r\n });\r\n } else {\r\n this.setState({\r\n selectedUser: null,\r\n selectedFirstName: null,\r\n selectedSurname: null\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"User Maintenance > Users\"}\r\n

\r\n { this.handleSelection(selection) }}\r\n >\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(UserSearch)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { EntityForm } from '../../widgets/Forms';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n//const utils = new ViewUtils();\r\nexport const UserDetailForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./User.css\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { UserDetailForm } from './UserDetailForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: '', tooltip: 'Save', icon: 'SaveIcon' },\r\n { id: \"Password\", label: '', tooltip: 'Reset Password', icon: 'PasswordIcon' },\r\n { id: \"Unlock\", label: '', tooltip: 'Unlock User', icon: 'LockOpenIcon' },\r\n { id: \"userRoles\", label: 'User Roles', tooltip: '' },\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass UserDetails extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n UserDetails: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n passwordDialogOpen: false,\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n FirstName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FirstName)) ? this.props.location.state.FirstName : null,\r\n Surname: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.Surname)) ? this.props.location.state.Surname : null,\r\n counter: 0,\r\n promptOpen: false,\r\n promptTitle: \"Reset Password\",\r\n promptContent: \"Are you sure you want to reset the current User's Password?\",\r\n };\r\n}\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ UserDetails: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"userRoles\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/userRole',\r\n state: { userID: this.props.location.state.selection, FirstName: this.state.FirstName, Surname: this.state.Surname }\r\n });\r\n } else if (\"Password\" === buttonId) {\r\n this.setState({ promptOpen: true });\r\n } else if (\"Unlock\" === buttonId) {\r\n this.UnlockAccount();\r\n }\r\n else {\r\n this.close();\r\n }\r\n }\r\n\r\n save = () => {\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n\r\n if (isAdd) {\r\n const url = `api/sims/user/insertuser`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n this.setState({ id: response.EntityId });\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n response.MessageType === \"ERROR\" ? this.errorCallback(response) : this.successCallback(response);\r\n }, this.errorCallback);\r\n } else {\r\n const url = `api/sims/user/updateuser`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n this.setState({ id: response.EntityId});\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n response.MessageType === \"ERROR\" ? this.errorCallback(response) : this.successCallback(response);\r\n }, this.errorCallback);\r\n }\r\n }\r\n }\r\n\r\n resetPassword() {\r\n\r\n this.setState({ promptOpen: false })\r\n let data = {};\r\n data.ID = this.state.id\r\n let url = \"api/sims/user/ResetPassword\";\r\n\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n }\r\n\r\n UnlockAccount() {\r\n let data = {};\r\n data.ID = this.state.id\r\n let url = \"api/sims/user/UnlockAccount\";\r\n\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType, counter: this.state.counter + 1\r\n });\r\n\r\n }\r\n errorCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n \r\n close() {\r\n this.props.history.push({\r\n pathname: '/userMaintenanceSearch',\r\n });\r\n }\r\n\r\n postCloseHandler = () => {\r\n this.setState({ passwordDialogOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"User Maintenance > User > \" + (this.state.FirstName !== null ? this.state.FirstName + \" \" + this.state.Surname : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n\r\n { this.resetPassword() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(UserDetails);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const UserRoleForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./User.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport FormDialog from \"../../etqa/FormDialog\";\r\nimport { UserRoleForm } from \"./UserRoleForm\";\r\nimport Prompt from '../../widgets/Prompt';\r\n\r\n\r\nconst headCells = [\r\n { id: 'Role', numeric: false, disablePadding: true, label: 'Role' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass PermissionSearch extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n LastName: \"\"\r\n\r\n },\r\n addDialogOpen: false,\r\n UserID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.userID)) ? this.props.location.state.userID : null,\r\n FirstName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FirstName)) ? this.props.location.state.FirstName : null,\r\n Surname: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.Surname)) ? this.props.location.state.Surname : null,\r\n selectedUserRole: null,\r\n searchParameters: [{ Name: \"UserID\", Value: this.props.location.state.userID }],\r\n promptOpen: false,\r\n promptTitle: \"Remove Role from User\",\r\n promptContent: \"Are you sure you want to remove this role from the User?\"\r\n }\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'remove', label: '', tooltip: 'Delete', icon: 'DeleteIcon',disabled: utils.isNull(this.state.selectedUserRole) }\r\n ]\r\n }\r\n \r\n ]\r\n };\r\n}\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"add\" === buttonId) {\r\n this.setState({ addDialogOpen: true, Message: \"\" })\r\n } else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/userDetails',\r\n state: \r\n { \r\n selection: this.props.location.state.userID,\r\n FirstName: this.state.FirstName,\r\n Surname: this.state.Surname\r\n }\r\n });\r\n } \r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedUserRole: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedUserRole: null, Message: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n message: \"User Role successfully added\",\r\n messageStyle: \"success\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n message: \"\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n message: \"A system error has occured, please try again later or contact your administrator\",\r\n messageStyle: \"warning\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n\r\n successfulUserRoletRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedUserRole: null, message: response.Message, messageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulUserRoleRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeUserRole(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedUserRole}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulUserRoletRemoveCallback, this.unsuccessfulUserRoleRemoveCallback);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"User > Roles > \" + (this.state.FirstName !== null ? this.state.FirstName + \" \" + this.state.Surname : \"> Add\")}\r\n

\r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} \r\n paged={true} />\r\n
\r\n this.postAddHandler(cancel, save)} \r\n >\r\n \r\n \r\n\r\n { this.removeUserRole(\"api/sims/user/RemoveUserRole\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(PermissionSearch)\r\n);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function ClientsEmailsSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n Subject\r\n\t\t\t\t\t\t\t\t \r\n props.model.Subject = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Body\r\n\t\t\t\t\t\t\t\t \r\n props.model.Body = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Original File Name\r\n\t\t\t\t\t\t\t\t \r\n props.model.OriginalFileName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Clients.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ClientsEmailsSearchForm from './ClientsEmailsSearchForm';\r\nimport CardLayout from '../../widgets/Card';\r\n\r\nconst headCells = [\r\n { id: 'Subject', numeric: false, disablePadding: true, label: 'Subject' },\r\n { id: 'Body', numeric: false, disablePadding: true, label: 'Body' },\r\n { id: 'OriginalFileName', numeric: false, disablePadding: true, label: 'Original File Name' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n \r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: 'delete', label: '', tooltip: 'Delete selected assessor from records', icon: 'DeleteIcon', disabled: true }\r\n ]\r\n },\r\n\r\n \r\n ]\r\n};\r\n\r\n\r\nconst searchParameters = [\r\n\r\n { Name: \"Subject\", Value: \"\" },\r\n { Name: \"Body\", Value: \"\" },\r\n { Name: \"OriginalFileName\", Value: \"\" }\r\n \r\n]\r\n\r\nclass ClientsEmailsSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n Subject: \"\",\r\n Body: \"\",\r\n OriginalFileName: \"\"\r\n \r\n },\r\n dialogOpen: false\r\n };\r\n\r\n\r\n //handleFormValueChange(values) {\r\n // //this.state.model.SICCodeID = values[\"SICCodeID\"];\r\n // let newState = Object.assign({}, this.state);\r\n // newState.model.FormType = values[\"FormType\"];\r\n // this.setState(newState);\r\n //}\r\n\r\n //valueChangeHandler = {(values) => this.handleFormValueChange(values)}\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: '/maintenanceLetterCreation'\r\n })\r\n }\r\n } \r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/EmailAdd'\r\n })\r\n }\r\n } \r\n \r\n\r\n close() {\r\n this.props.history.push('/maintenanceLetterCreation');\r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ClientsEmailsSearch)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n})\r\n\r\nconst utils = new ViewUtils();\r\nexport const AudienceOptionsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n }\r\n label=\"Primary SDF\"\r\n />\r\n
\r\n \r\n }\r\n label=\" Secondary SDF\"\r\n />\r\n
\r\n \r\n }\r\n label=\"Training Provider\"\r\n />\r\n
\r\n \r\n }\r\n label=\" Assessors\"\r\n />\r\n
\r\n \r\n }\r\n label=\"Moderators\"\r\n />\r\n
\r\n \r\n }\r\n label=\"Employers\"\r\n />\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Clients.css\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport { AudienceOptionsForm } from './AudienceOptionsForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n\r\n { id: 'close', label: 'close', tooltip: 'close' },\r\n { id: 'edit', label: 'edit', tooltip: 'edit', icon: 'EditIcon' },\r\n { id: 'save', label: 'save', tooltip: 'save', icon: 'SaveIcon' }\r\n \r\n \r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass AudienceOptions extends Component {\r\n\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"Add\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/EmailAdd',\r\n\r\n })\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n const url = `api/indicium/provider/updateProviderDetails?data=${data}`;\r\n // TODO : Invoke spinner mask\r\n fetch(url)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (response.MessageType !== \"ERROR\") {\r\n this.props.history.push({\r\n pathname: '/EmailAddForm'\r\n });\r\n } else {\r\n this.setState({ saveMessage: response.Message, hasSaveError: true });\r\n }\r\n }).catch(() => {\r\n this.setState({ saveMessage: \"A system error has accured. Please contact your system administrator\", hasSaveError: true });\r\n });\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/EmailAddForm');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {\"Create New\"}\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AudienceOptions);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n})\r\n\r\nconst utils = new ViewUtils();\r\nexport const EmailAddForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Clients.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { EmailAddForm } from './EmailAddForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' },\r\n { id: 'add', label: 'Add', tooltip: 'Add', icon: 'Add' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass EmailAdd extends Component {\r\n\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/maintenanceEmail',\r\n\r\n })\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n const url = `api/indicium/provider/updateProviderDetails?data=${data}`;\r\n // TODO : Invoke spinner mask\r\n fetch(url)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (response.MessageType !== \"ERROR\") {\r\n this.props.history.push({\r\n pathname: '/maintenanceEmail'\r\n });\r\n } else {\r\n this.setState({ saveMessage: response.Message, hasSaveError: true });\r\n }\r\n }).catch(() => {\r\n this.setState({ saveMessage: \"A system error has accured. Please contact your system administrator\", hasSaveError: true });\r\n });\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/maintenanceEmail');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n \r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(EmailAdd);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport ViewUtils from '../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n width: '100%',\r\n \"& tr td\": {\r\n verticalAlign: \"top\"\r\n }\r\n },\r\n select: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n minHeight: 48\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n root: {\r\n }\r\n}));\r\n\r\nexport const EntityForm = React.forwardRef((props, ref) => {\r\n const [values, setValues] = React.useState(!utils.isNull(props.values) ? props.values : {});\r\n const [settings, setSettings] = React.useState(null);\r\n const viewId = props.viewId;\r\n const entityLookupController = props.entityLookupController;\r\n const entityLookupId = props.entityLookupId;\r\n const org = props.org;\r\n const useCustomSettings = props.useCustomSettings;\r\n const classes = useStyles();\r\n const [fields] = React.useState([]);\r\n const [fieldParentErrors, setFieldParentErrors] = React.useState({});\r\n\r\n const doGetValue = () => {\r\n let parentErrors = {};\r\n let currentValue = values;\r\n for (let i = 0; i < fields.length; i++) {\r\n let field = fields[i];\r\n\r\n if (field.ref.validate(values, null) === false) {\r\n currentValue = null;\r\n if (!utils.isNull(field.parentId)) {\r\n parentErrors[field.parentId] = true;\r\n }\r\n }\r\n }\r\n\r\n setFieldParentErrors(parentErrors);\r\n if (currentValue === null) {\r\n utils.setLegendColor(\"red\");\r\n } else {\r\n utils.setLegendColor(null);\r\n }\r\n\r\n return currentValue;\r\n }\r\n\r\n React.useImperativeHandle(ref, () => ({\r\n getValue: () => {\r\n return doGetValue();\r\n },\r\n\r\n doUpdateValue: (name, value) => {\r\n return updateValue(name, value);\r\n },\r\n\r\n setValue: (id, value) => {\r\n doHandleChange(id, value)\r\n }\r\n }));\r\n\r\n function fetchSettings(touch) {\r\n const settingsUrl = `api/indicium/` + viewId + `/getViewSettings?organisationId=` + org + `&viewId=` + viewId;\r\n utils.invokeUrl(settingsUrl, (data) => {\r\n setSettings(data);\r\n }, null);\r\n }\r\n\r\n function parseValues(data) {\r\n let parsedValues = JSON.parse(JSON.stringify(data));\r\n\r\n for (let i = 0; i < fields.length; i++) {\r\n let field = fields[i];\r\n let path = getValuePath(field.id, parsedValues);\r\n let objectValue = path.valueObject[path.valueProperty];\r\n path.valueObject[path.valueProperty] = field.ref.parseValue(objectValue);\r\n }\r\n\r\n setValues(parsedValues);\r\n\r\n if (!utils.isNull(props.dataArrivedHandler)) {\r\n props.dataArrivedHandler(parsedValues);\r\n }\r\n\r\n props.valueChangeHandler(parsedValues);\r\n if (useCustomSettings) {\r\n fetchSettings(true);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.values)) {\r\n parseValues(props.values);\r\n }\r\n }, [props.values]);\r\n\r\n React.useEffect(() => {\r\n if (typeof entityLookupId !== 'undefined' && entityLookupId !== null) {\r\n const url = props.dataURL ? `${props.dataURL}?id=${entityLookupId}` :\r\n `api/indicium/` + (entityLookupController != null ? entityLookupController : viewId) + `/find?id=${entityLookupId}`;\r\n utils.invokeUrl(url, (data) => {\r\n parseValues(data); \r\n }, null);\r\n }\r\n\r\n if (useCustomSettings) {\r\n fetchSettings(false);\r\n }\r\n }, []);\r\n\r\n const getField = (id) => {\r\n for (let i = 0; i < fields.length; i++) {\r\n if (fields[i].id === id) {\r\n return fields[i];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const removeField = (id) => {\r\n for (let i = 0; i < fields.length; i++) {\r\n if (fields[i].id === id) {\r\n fields.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n const validateField = (field, id, value) => {\r\n field.error = null;\r\n let invalid = field.ref.validate({ ...values, [id]: value }, value) === false;\r\n if (!utils.isNull(field.parentId)) {\r\n let isParentInvalid = invalid;\r\n for (let i = 0; i < fields.length; i++) {\r\n if (fields[i] !== field && fields[i].parentId === field.parentId) {\r\n isParentInvalid = isParentInvalid || !(utils.isNull(fields[i].error) || fields[i].error.length === 0);\r\n }\r\n }\r\n\r\n setFieldParentErrors({ ...fieldParentErrors, [field.parentId]: isParentInvalid });\r\n }\r\n\r\n return invalid;\r\n }\r\n\r\n const getValuePath = (id, currentValues) => {\r\n let path = {};\r\n if (currentValues === null) {\r\n currentValues = values;\r\n }\r\n\r\n let tokens = id.split(\".\");\r\n if (tokens.length === 1) {\r\n path.valueObject = currentValues;\r\n path.valueProperty = tokens[0];\r\n } else if (tokens.length > 1) {\r\n let vo = currentValues;\r\n for (let i = 0; i < tokens.length - 1; i++) {\r\n vo = vo[tokens[i]];\r\n }\r\n\r\n if (!utils.isNull(vo)) {\r\n path.valueObject = vo;\r\n path.valueProperty = tokens[tokens.length - 1];\r\n }\r\n }\r\n\r\n return path;\r\n }\r\n\r\n const doHandleChange = (id, value) => {\r\n let path = getValuePath(id, null);\r\n if (!utils.isNull(path.valueObject) && !utils.isNull(path.valueProperty)) {\r\n path.valueObject[path.valueProperty] = value;\r\n let invalid = false;\r\n let field = getField(id);\r\n\r\n if (!utils.isNull(field)) {\r\n invalid = validateField(field, id, value);\r\n for (let i = 0; i < fields.length; i++) {\r\n let groupField = fields[i];\r\n let validationGroup = groupField.ref.getValidationGroup();\r\n if (!utils.isNull(validationGroup)) {\r\n if (field !== groupField && validationGroup === field.ref.getValidationGroup()) {\r\n let groupFieldId = groupField.ref.getId();\r\n validateField(groupField, groupFieldId, values[groupFieldId]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!utils.isNull(props.valueChangeHandler)) {\r\n //props.valueChangeHandler(invalid ? null : { ...values, [id]: value });\r\n props.valueChangeHandler(invalid ? null : values);\r\n }\r\n }\r\n }\r\n\r\n const handleChange = (id) => event => {\r\n doHandleChange(id, event.target.value);\r\n };\r\n\r\n const setFieldError = (id, error) => {\r\n let field = getField(id);\r\n if (!utils.isNull(field)) {\r\n field.error = error;\r\n }\r\n }\r\n\r\n const addField = (id, ref, parentId) => {\r\n let field = getField(id);\r\n let error = null;\r\n\r\n if (ref.current !== null) {\r\n if (!utils.isNull(field)) {\r\n error = field.error;\r\n removeField(id);\r\n }\r\n\r\n field = {};\r\n field.id = id;\r\n field.ref = ref.current;\r\n field.error = error;\r\n field.parentId = parentId;\r\n fields.push(field);\r\n }\r\n\r\n return field;\r\n }\r\n\r\n const handleSelectItemChange = name => event => {\r\n let objectReference = {};\r\n objectReference.Id = event.target.value;\r\n doHandleChange(name, objectReference);\r\n };\r\n\r\n const handleCheckboxChange = name => event => {\r\n doHandleChange(name, event.target.checked);\r\n };\r\n\r\n const updateValue = (name, value) => {\r\n setValues({ ...values, [name]: value });\r\n props.valueChangeHandler({ ...values, [name]: value });\r\n };\r\n\r\n const isFieldRequired = name => {\r\n return utils.isFieldRequired(name, settings, viewId + \"Form\");\r\n };\r\n\r\n const isFieldVisible = name => {\r\n return utils.isFieldVisible(name, settings);\r\n };\r\n\r\n const setLookupSelection = (id, value) => {\r\n let field = getField(id);\r\n if (utils.isNull(field)) {\r\n console.warn(\"Form.jsx - NULL REF \" + id + \" on setLookupSelection\");\r\n } else {\r\n field.ref.setSelection(value);\r\n }\r\n };\r\n\r\n return
\r\n {props.children({\r\n handleCheckboxChange: handleCheckboxChange,\r\n handleSelectItemChange: handleSelectItemChange,\r\n updateValue: updateValue,\r\n handleChange: handleChange,\r\n doHandleChange: doHandleChange,\r\n isFieldRequired: isFieldRequired,\r\n isFieldVisible: isFieldVisible,\r\n classes: classes,\r\n values: values,\r\n settings: settings,\r\n addField: addField,\r\n setFieldError: setFieldError,\r\n fields: fields,\r\n fieldParentErrors: fieldParentErrors,\r\n getValuePath: getValuePath,\r\n setLookupSelection: setLookupSelection\r\n })}
\r\n})\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { EntityForm } from '../../widgets/SearchForm';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function SkillsLetterCreationSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Skills.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport SkillsSearchForm from './SkillsLetterCreationSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nconst utils = new ViewUtils();\r\n\r\nconst filterParameters = [\r\n\r\n]\r\nconst headCells = [\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' },\r\n { id: 'CRMLetterGrantType', numeric: false, disablePadding: true, label: 'CRM Letter Grant Type' },\r\n { id: 'CRMLetterType', numeric: false, disablePadding: true, label: 'CRM Letter Type' },\r\n { id: 'CRMLetterSalutation', numeric: false, disablePadding: true, label: 'CRM Letter Salutation' },\r\n { id: 'HeaderA', numeric: false, disablePadding: true, label: 'Header A' },\r\n { id: 'HeaderB', numeric: false, disablePadding: true, label: 'Header B' },\r\n { id: 'CRMLetterGreeting', numeric: false, disablePadding: true, label: 'CRM Letter Greeting' },\r\n { id: 'SignOffName', numeric: false, disablePadding: true, label: 'Sign off Name' },\r\n { id: 'JobTitle', numeric: false, disablePadding: true, label: 'Job Title' }\r\n\r\n];\r\n\r\n\r\n\r\nconst formRef = React.createRef();\r\n\r\nclass SkillsLetterCreationSearch extends Component {\r\n\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n model: {\r\n FinancialYearID: \"\",\r\n CRMLetterGrantTypeID: \"\",\r\n CRMLetterTypeID: \"\"\r\n\r\n },\r\n keyUpSwitch: false\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'add',\r\n label: '',\r\n tooltip: 'Add',\r\n icon: 'AddIcon',\r\n visible: this.props.menuPermissionItem.Add\r\n },\r\n {\r\n id: 'edit',\r\n label: '',\r\n tooltip: 'Edit',\r\n icon: 'EditIcon',\r\n disabled: true,\r\n visible: this.props.menuPermissionItem.Edit\r\n },\r\n {\r\n id: 'delete',\r\n label: '',\r\n tooltip: 'Delete selected letter from records',\r\n icon: 'DeleteIcon',\r\n disabled: true,\r\n visible: this.props.menuPermissionItem.Delete\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.searchParameters = [\r\n { Name: \"FinancialYearID\", Value: \"\" },\r\n { Name: \"CRMLetterGrantTypeID\", Value: \"\" },\r\n { Name: \"CRMLetterTypeID\", Value: \"\" }\r\n\r\n ]\r\n }\r\n\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/SkillsLetterCreation'\r\n })\r\n }\r\n } \r\n\r\n postLinkHandler(linked) {\r\n this.setState({ linkDialogOpen: false, selectedLinkType: null, selectedLinkStandards: null });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ model: values });\r\n }\r\n handleSelection = (selection) => {\r\n /*console.log(selection)*/\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n\r\n\r\n\r\n >\r\n { this.onkeyup(e) }} ref={formRef} id={typeof this.props.location.state !== 'undefined' ? this.props.location.state.selection : null}\r\n valueChangeHandler={(values) => this.handleFormValueChange(values)}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(SkillsLetterCreationSearch));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const SkillsLetterCreationForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n const onTextChange = (form, id, value) => {\r\n if (id === \"BodyA\") {\r\n form.updateValue('BodyACharactersLeft', 2500 - value.length);\r\n } else if (id === \"BodyB\") {\r\n form.updateValue('BodyBCharactersLeft', 2500 - value.length);\r\n }\r\n }\r\n\r\n const dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"BodyA\"])) {\r\n ref.current.doUpdateValue('BodyACharactersLeft', 2500 - values[\"BodyA\"].length);\r\n }\r\n else {\r\n ref.current.doUpdateValue('BodyACharactersLeft', 2500);\r\n }\r\n if (!utils.isNull(values[\"BodyB\"])) {\r\n ref.current.doUpdateValue('BodyBCharactersLeft', 2500 - values[\"BodyB\"].length);\r\n }\r\n else {\r\n ref.current.doUpdateValue('BodyBCharactersLeft', 2500);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Skills.css\";\r\nimport { SkillsLetterCreationForm } from './SkillsLetterCreationForm';\r\n\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nconst utils = new ViewUtils();\r\n\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass SkillsLetterCreation extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n BodyACharactersLeft: \"2500\",\r\n BodyBCharactersLeft: \"2500\"\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.close()\r\n } else if (\"save\" === buttonId) {\r\n this.save()\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n Name: values.Name\r\n });\r\n }\r\n }\r\n\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n //if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n // formValue.id = this.props.location.state.selection;\r\n // isAdd = false;\r\n //}\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n //let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n const url = `api/sims/skillslettercreationdetails/insertlettercreation`;\r\n utils.saveForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Letter added successfully\", messageStyle: \"SUCCESS\", id: response.EntityId });\r\n }, this.error);\r\n } else {\r\n const url = `api/sims/skillslettercreationdetails/updatelettercreation`;\r\n utils.updateForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n }, this.error);\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n close() {\r\n this.props.history.push('/SkillsLetterCreationSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)}\r\n id={this.state.id}\r\n editPermission={this.props.menuPermissionItem.Edit}\r\n data={this.state.model}\r\n model={this.state.model}\r\n />\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(SkillsLetterCreation));\r\n// export default withRouter(SkillsLetterCreation);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function SkillsQueryReasonFormSearch(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.Name = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Description\r\n\t\t\t\t\t\t\t\t\r\n props.model.Description = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Skills.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport SkillsQueryReasonSearchForm from './SkillsQueryReasonSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport ViewUtils from '../../ViewUtils';\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'Name', numeric: false, disablePadding: true, label: 'Name' },\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Description' },\r\n { id: 'LetterType', numeric: false, disablePadding: true, label: 'LetterType' },\r\n { id: 'Update', numeric: false, disablePadding: true, label: 'Update' }\r\n\r\n\r\n\r\n];\r\nconst filterParameters = []\r\n\r\n\r\n\r\nclass SkillsQueryReasonSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n Name: \"\",\r\n Description: \"\"\r\n },\r\n parameters: {},\r\n keyUpSwitch: false,\r\n addDialogOpen: false,\r\n selectedQueryReason: null\r\n };\r\n\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n // buttons: [\r\n // { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n // { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' }\r\n // ],\r\n buttons: [\r\n {\r\n id: 'add',\r\n label: '',\r\n tooltip: 'Add',\r\n icon: 'AddIcon',\r\n visible: this.props.menuPermissionItem.Add\r\n },\r\n {\r\n id: 'edit',\r\n label: '',\r\n tooltip: 'Edit',\r\n icon: 'EditIcon',\r\n disabled: true,\r\n visible: this.props.menuPermissionItem.Edit\r\n },\r\n // {\r\n // id: 'delete',\r\n // label: '',\r\n // tooltip: 'Delete selected query reason from records',\r\n // icon: 'DeleteIcon',\r\n // disabled: true,\r\n // visible: true//this.props.menuPermissionItem.Delete\r\n // }\r\n ]\r\n }\r\n ]\r\n };\r\n this.searchParameters = this.searchParameters = !utils.isNull(this.props.programmeId) ?\r\n\r\n [\r\n { Name: \"id\", Value: this.props.programmeId },\r\n { Name: \"Name\", Value: \"\" },\r\n { Name: \"Description\", Value: \"\" }\r\n ]\r\n :\r\n\r\n [\r\n { Name: \"Name\", Value: \"\" },\r\n { Name: \"Description\", Value: \"\" }\r\n ]\r\n }\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedQueryReason: selection })\r\n } else {\r\n this.setState({ selectedQueryReason: null })\r\n }\r\n }\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(SkillsQueryReasonSearch));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"150px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n})\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n\r\nexport const SkillsQueryReasonForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n }\r\n
\r\n\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Skills.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { SkillsQueryReasonForm } from './SkillsQueryReasonForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n ]\r\n};\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass SkillsQueryReason extends Component {\r\n\r\n state = {\r\n model: {\r\n Name: \"\",\r\n Description: \"\",\r\n LetterType: \"\"\r\n\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/SkillsQueryReasonSearch',\r\n\r\n })\r\n } else if (\"save\" === buttonId) {\r\n this.save()\r\n }\r\n }\r\n handleFormValueChange = (values) => {\r\n\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n Name: values.Name\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n //if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n // formValue.id = this.props.location.state.selection;\r\n // isAdd = false;\r\n //}\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n //let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n const url = `api/sims/skillsqueryreasons/insertqueryreasons`;\r\n utils.saveForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Query Reason added successfully\", messageStyle: \"SUCCESS\", id: response.EntityId });\r\n }, this.error);\r\n } else {\r\n const url = `api/sims/skillsqueryreasons/updatequeryreasons`;\r\n utils.updateForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Query Reason updated successfully\", messageStyle: \"SUCCESS\" });\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n error(response) {\r\n this.setState({ message: \"A system error has accured. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n\r\n }\r\n close() {\r\n this.props.history.push('/SkillsQueryReasonSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)}\r\n // editPermission={this.props.menuPermissionItem.Edit }\r\n />\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(SkillsQueryReason);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function SkillsRejectionReasonSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.Name = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Description\r\n\t\t\t\t\t\t\t\t\r\n props.model.Description = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Skills.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport SkillsRejectionReasonSearchForm from './SkillsRejectionReasonSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'Name', numeric: false, disablePadding: true, label: 'Name' },\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Description' },\r\n { id: 'LetterType', numeric: false, disablePadding: true, label: 'LetterType' },\r\n // { id: 'Update', numeric: false, disablePadding: true, label: 'Update' }\r\n];\r\nconst filterParameters = []\r\n\r\nclass SkillsRejectionReasonSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n Name: \"\",\r\n Description: \"\"\r\n\r\n\r\n },\r\n parameters: {},\r\n keyUpSwitch: false,\r\n addDialogOpen: false,\r\n selectedRejectReason: null\r\n };\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'add',\r\n label: '',\r\n tooltip: 'Add',\r\n icon: 'AddIcon',\r\n visible: true//this.props.menuPermissionItem.Add\r\n },\r\n {\r\n id: 'edit',\r\n label: '',\r\n tooltip: 'Edit',\r\n icon: 'EditIcon',\r\n disabled: true,\r\n visible: true//this.props.menuPermissionItem.Edit\r\n },\r\n // {\r\n // id: 'delete',\r\n // label: '',\r\n // tooltip: 'Delete reject reason from records',\r\n // icon: 'DeleteIcon',\r\n // disabled: true,\r\n // visible: true//this.props.menuPermissionItem.Delete\r\n // }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.searchParameters = [\r\n { Name: \"Name\", Value: \"\" },\r\n { Name: \"Description\", Value: \"\" }\r\n\r\n\r\n ]\r\n }\r\n\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n handleSelection = (selection) => {\r\n //console.log(selection)\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedRejectReason: selection })\r\n } else {\r\n this.setState({ selectedRejectReason: null })\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n }\r\n }\r\n\r\n postLinkHandler(linked) {\r\n this.setState({ linkDialogOpen: false, selectedLinkType: null, selectedLinkStandards: null });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n\r\n >\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(SkillsRejectionReasonSearch)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\n\r\nconst styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"150px !important\",\r\n width: \"550px !important\"\r\n }\r\n }\r\n})\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n\r\nexport const SkillsRejectionReasonForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n }\r\n
\r\n \r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Skills.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { SkillsRejectionReasonForm } from './SkillsRejectionReasonForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nconst utils = new ViewUtils();\r\n\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass SkillsRejectionReason extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n model: {\r\n Name: \"\",\r\n Description: \"\",\r\n LetterType: \"\"\r\n\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n ]\r\n };\r\n\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/SkillsRejectionReasonSearch',\r\n\r\n })\r\n } else if (\"save\" === buttonId) {\r\n this.save()\r\n }\r\n }\r\n successCallback(response) {\r\n\r\n // this.props.history.push({\r\n // pathname: '/SkillsSearch',\r\n //\r\n // })\r\n }\r\n error(response) {\r\n\r\n }\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n //if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n // formValue.id = this.props.location.state.selection;\r\n // isAdd = false;\r\n //}\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n //let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n const url = `api/sims/skillsrejectionreasons/insertrejectionreasons`;\r\n utils.saveForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Rejection Reason added successfully\", messageStyle: \"SUCCESS\", id: response.EntityId });\r\n }, this.error);\r\n } else {\r\n const url = `api/sims/skillsrejectionreasons/updaterejectionreasons`;\r\n utils.updateForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Rejection Reason updated successfully\", messageStyle: \"SUCCESS\" });\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/SkillsRejectionReasonSearch');\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n Name: values.Name\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)}\r\n id={this.state.id}\r\n valueChangeHandler={(values) => this.handleFormValueChange(values)}\r\n editPermission={this.props.menuPermissionItem.Edit}\r\n />\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(SkillsRejectionReason));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function SkillsTNumberConversionForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Temporary Number\r\n\t\t\t\t\t\t\t\t\r\n props.model.TemporaryNumber = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Possible SDL Number\r\n\t\t\t\t\t\t\t\t\r\n props.model.PossibleSDLNumber = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Skills.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport SkillsTNumberConversionForm from './SkillsTNumberConversionForm';\r\n\r\nconst headCells = [\r\n { id: 'TemporaryNumber', numeric: false, disablePadding: true, label: 'Temporary Number' },\r\n { id: 'PossibleSDLNumber', numeric: false, disablePadding: true, label: 'Possible SDL Number' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst searchParameters = [\r\n { Name: \"TemporaryNumberme\", Value: \"\" },\r\n { Name: \"PossibleSDLNumber\", Value: \"\" }\r\n\r\n\r\n]\r\n\r\nclass TNumberConversionSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n TemporaryNumberme: \"\",\r\n PossibleSDLNumber: \"\"\r\n\r\n\r\n }\r\n };\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/SkillsLetterCreation'\r\n })\r\n }\r\n } \r\n\r\n postLinkHandler(linked) {\r\n this.setState({ linkDialogOpen: false, selectedLinkType: null, selectedLinkStandards: null });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(TNumberConversionSearch)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const SkillsTNumberConversionCreationForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Skills.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { SkillsTNumberConversionCreationForm } from './SkillsTNumberConversionCreationForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n ]\r\n};\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass SkillsTNumberConversion extends Component {\r\n\r\n state = {\r\n model: {\r\n Name: \"\",\r\n Description: \"\",\r\n LetterType: \"\"\r\n\r\n }\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/maintenanceQueryReasons',\r\n\r\n })\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n const url = `api/indicium/provider/updateProviderDetails?data=${data}`;\r\n // TODO : Invoke spinner mask\r\n fetch(url)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (response.MessageType !== \"ERROR\") {\r\n this.props.history.push({\r\n pathname: '/SkillsQueryReason'\r\n });\r\n } else {\r\n this.setState({ saveMessage: response.Message, hasSaveError: true });\r\n }\r\n }).catch(() => {\r\n this.setState({ saveMessage: \"A system error has accured. Please contact your system administrator\", hasSaveError: true });\r\n });\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/maintenanceQueryReasons');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n

\r\n {\"T Number Conversion\"}\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(SkillsTNumberConversion);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"150px !important\",\r\n width: \"500px !important\"\r\n }\r\n }\r\n})\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const CreateBenefitsDescriptionSearchForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Benefits.css\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport { CreateBenefitsDescriptionSearchForm } from './CreateBenefitsDescriptionSearchForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass CreateBenefitsDescriptionSearch extends Component {\r\n\r\n\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/maintenanceBenefitDescriptions',\r\n\r\n })\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n const url = `api/indicium/provider/updateProviderDetails?data=${data}`;\r\n // TODO : Invoke spinner mask\r\n fetch(url)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (response.MessageType !== \"ERROR\") {\r\n this.props.history.push({\r\n pathname: '/CreateBenefitsDescriptionSearch'\r\n });\r\n } else {\r\n this.setState({ saveMessage: response.Message, hasSaveError: true });\r\n }\r\n }).catch(() => {\r\n this.setState({ saveMessage: \"A system error has accured. Please contact your system administrator\", hasSaveError: true });\r\n });\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/maintenanceBenefitDescriptions');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n Benefits Description\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(CreateBenefitsDescriptionSearch);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function BenefitsDescriptionSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Description\r\n\t\t\t\t\t\t\t\t \r\n props.model.Create = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Benefits.css\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport BenefitsDescriptionSearchForm from './BenefitsDescriptionSearchForm';\r\n\r\n\r\nconst headCells = [\r\n\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Description' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: 'delete', label: '', tooltip: 'Delete selected assessor from records', icon: 'DeleteIcon', disabled: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst searchParameters = [\r\n\r\n { Name: \"Description\", Value: \"\" }\r\n\r\n]\r\n\r\nclass BenefitsDescriptionsSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n\r\n Description: \"\"\r\n },\r\n dialogOpen: false\r\n };\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/maintenanceBenefitDescriptions',\r\n\r\n })\r\n }\r\n }\r\n\r\n \r\n\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BenefitsDescriptionsSearch)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"150px !important\",\r\n width: \"500px !important\"\r\n }\r\n }\r\n})\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const CreateInterventionTitlesForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n\r\n \r\n {form =>\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Benefits.css\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport { CreateInterventionTitlesForm } from './CreateInterventionTitlesForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass CreateInterventionTitles extends Component {\r\n\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/maintenanceInterventionTitles',\r\n\r\n })\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n const url = `api/indicium/provider/updateProviderDetails?data=${data}`;\r\n // TODO : Invoke spinner mask\r\n fetch(url)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (response.MessageType !== \"ERROR\") {\r\n this.props.history.push({\r\n pathname: '/BenefitsTargetAddFormSearch'\r\n });\r\n } else {\r\n this.setState({ saveMessage: response.Message, hasSaveError: true });\r\n }\r\n }).catch(() => {\r\n this.setState({ saveMessage: \"A system error has accured. Please contact your system administrator\", hasSaveError: true });\r\n });\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/CreateInterventionTitles');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n Intervention Title\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(CreateInterventionTitles);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"150px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n})\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const BenefitsTargetAddForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n \r\n {form =>\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n }\r\n
\r\n \r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Benefits.css\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport { BenefitsTargetAddForm } from './BenefitsTargetAddForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass BenefitsTargetAddFormSearch extends Component {\r\n\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/maintenanceTargets',\r\n\r\n })\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n const url = `api/indicium/provider/updateProviderDetails?data=${data}`;\r\n // TODO : Invoke spinner mask\r\n fetch(url)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (response.MessageType !== \"ERROR\") {\r\n this.props.history.push({\r\n pathname: '/BenefitsTargetAddFormSearch'\r\n });\r\n } else {\r\n this.setState({ saveMessage: response.Message, hasSaveError: true });\r\n }\r\n }).catch(() => {\r\n this.setState({ saveMessage: \"A system error has accured. Please contact your system administrator\", hasSaveError: true });\r\n });\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/maintenanceTargets');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n Targets\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(BenefitsTargetAddFormSearch);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function BenefitsTargetsForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Number\r\n\t\t\t\t\t\t\t\t \r\n props.model.Create = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n Description\r\n\t\t\t\t\t\t\t\t \r\n props.model.Edit = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Benefits.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport BenefitsTargetsForm from './BenefitsTargetsForm';\r\nimport CardLayout from '../../widgets/Card';\r\n\r\n\r\nconst headCells = [\r\n\r\n { id: 'Number', numeric: false, disablePadding: true, label: 'Number' },\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Description' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: 'delete', label: '', tooltip: 'Delete selected assessor from records', icon: 'DeleteIcon', disabled: true }\r\n \r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst searchParameters = [\r\n { Name: \"Number\", Value: \"\" },\r\n { Name: \"Description\", Value: \"\" }\r\n \r\n]\r\n\r\nclass BenefitsTargetsSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n Number: \"\",\r\n Description: \"\"\r\n },\r\n dialogOpen: false\r\n };\r\n\r\n \r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BenefitsTargetsSearch)\r\n);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function InterventionTitlesForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Description\r\n\t\t\t\t\t\t\t\t \r\n props.model.Create = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Benefits.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport InterventionTitlesForm from './InterventionTitlesForm';\r\n\r\n\r\nconst headCells = [\r\n \r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Description' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: 'delete', label: '', tooltip: 'Delete selected assessor from records', icon: 'DeleteIcon', disabled: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst searchParameters = [\r\n \r\n { Name: \"Description\", Value: \"\" }\r\n\r\n]\r\n\r\nclass BenefitsTargetsSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n \r\n Description: \"\"\r\n },\r\n dialogOpen: false\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/CreateInterventionTitles',\r\n\r\n })\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/CreateInterventionTitles');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BenefitsTargetsSearch)\r\n);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function LinkingSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Target\r\n\t\t\t\t\t\t\t\t \r\n props.model.target = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n Intervention\r\n\t\t\t\t\t\t\t\t \r\n props.model.Intervention = ev.Intervention.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Benefit\r\n\t\t\t\t\t\t\t\t \r\n props.model.Benefit = ev.Benefit.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Benefits.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport LinkingSearchForm from './LinkingSearchForm';\r\n\r\n\r\nconst headCells = [\r\n\r\n { id: 'Target', numeric: false, disablePadding: true, label: 'Target' },\r\n { id: 'Intervention', numeric: false, disablePadding: true, label: 'Intervention' },\r\n { id: '\tBenefit', numeric: false, disablePadding: true, label: '\tBenefit' },\r\n \r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: 'delete', label: '', tooltip: 'Delete selected assessor from records', icon: 'DeleteIcon', disabled: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst searchParameters = [\r\n\r\n { Name: \"Target\", Value: \"\" },\r\n { Name: \"Intervention\", Value: \"\" },\r\n { Name: \"Benefit\", Value: \"\" }\r\n \r\n]\r\n\r\nclass LinkingSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n\r\n Target: \"\",\r\n Intervention: \"\",\r\n Benefit: \"\"\r\n },\r\n dialogOpen: false\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/EmailAddForm',\r\n\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LinkingSearch)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { Col, Button } from \"react-bootstrap\";\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const BenefitsUploadForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Execute\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Benefits.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport CardLayout from '../../widgets/Card';\r\nimport { BenefitsUploadForm } from './BenefitsUploadForm';\r\n\r\n\r\nconst headCells = [\r\n\r\n { id: 'Target', numeric: false, disablePadding: true, label: 'Target' },\r\n { id: 'Intervention', numeric: false, disablePadding: true, label: 'Intervention' },\r\n { id: '\tBenefit', numeric: false, disablePadding: true, label: '\tBenefit' },\r\n \r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: 'delete', label: '', tooltip: 'Delete selected assessor from records', icon: 'DeleteIcon', disabled: true }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst searchParameters = [\r\n\r\n { Name: \"Target\", Value: \"\" },\r\n { Name: \"Intervention\", Value: \"\" },\r\n { Name: \"Benefit\", Value: \"\" }\r\n \r\n]\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass BenefitsUpload extends Component {\r\n\r\n state = {\r\n model: {\r\n\r\n Target: \"\",\r\n Intervention: \"\",\r\n Benefit: \"\"\r\n },\r\n dialogOpen: false\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/EmailAddForm',\r\n\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n Benefits Uploading\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BenefitsUpload)\r\n);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const CreatingLinkingSearchForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\nreturn (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n }\r\n
\r\n);\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Benefits.css\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport { CreatingLinkingSearchForm } from './CreatingLinkingSearchForm';\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass CreateLinkingSearch extends Component {\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/maintenanceLinking',\r\n\r\n })\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n const url = `api/indicium/provider/updateProviderDetails?data=${data}`;\r\n // TODO : Invoke spinner mask\r\n fetch(url)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (response.MessageType !== \"ERROR\") {\r\n this.props.history.push({\r\n pathname: '/CreateLinkingSearch'\r\n });\r\n } else {\r\n this.setState({ saveMessage: response.Message, hasSaveError: true });\r\n }\r\n }).catch(() => {\r\n this.setState({ saveMessage: \"A system error has accured. Please contact your system administrator\", hasSaveError: true });\r\n });\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push('/maintenanceLinking');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n Linking\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(CreateLinkingSearch);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\n\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const DGLetterCreationForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n const onTextChange = (form, id, value) => {\r\n if (id === \"BodyA\") {\r\n form.updateValue('BodyACharactersLeft', 2000 - value.length);\r\n } else if (id === \"BodyB\") {\r\n form.updateValue('BodyBCharactersLeft', 2000 - value.length);\r\n }\r\n }\r\n\r\n function getParameter(value) {\r\n if (!utils.isNull(value)) {\r\n return value.Id;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n\r\n function checkParameterValue(value) {\r\n if (!utils.isNull(value)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"BodyA\"])) {\r\n ref.current.doUpdateValue('BodyACharactersLeft', 2000 - values[\"BodyA\"].length);\r\n }\r\n else {\r\n ref.current.doUpdateValue('BodyACharactersLeft', 2000);\r\n }\r\n if (!utils.isNull(values[\"BodyB\"])) {\r\n ref.current.doUpdateValue('BodyBCharactersLeft', 2000 - values[\"BodyB\"].length);\r\n }\r\n else {\r\n ref.current.doUpdateValue('BodyBCharactersLeft', 2000);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./DG.css\";\r\nimport { DGLetterCreationForm } from './DGLetterCreationForm';\r\n\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nconst utils = new ViewUtils();\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass DGLetterCreation extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n model: {\r\n BodyACharactersLeft: \"2000\",\r\n BodyBCharactersLeft: \"2000\"\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.close()\r\n } else if (\"save\" === buttonId) {\r\n this.save()\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n Name: values.Name\r\n });\r\n\r\n //if (!utils.isNull(values.DGFinancialYearID) && JSON.stringify(this.state.dependency) !== JSON.stringify(values.DGFinancialYearID)) {\r\n // const DGFinancialYearID = {\r\n // Name: \"DGFinancialYearID\",\r\n // Value: values.DGFinancialYearID.Id\r\n // }\r\n // if (!utils.isNull(DGFinancialYearID.Value)) {\r\n // this.setState({ dependency: DGFinancialYearID })\r\n // }\r\n //};\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n //if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n // formValue.id = this.props.location.state.selection;\r\n // isAdd = false;\r\n //}\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n //let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n const url = `api/sims/dglettercreationdetails/insertdglettercreation`;\r\n utils.saveForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Letter added successfully\", messageStyle: \"SUCCESS\", id: response.EntityId });\r\n }, this.error);\r\n } else {\r\n const url = `api/sims/dglettercreationdetails/updatedglettercreation`;\r\n utils.updateForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n error(response) {\r\n this.setState({ message: \"A system error has accured. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n\r\n }\r\n\r\n close() {\r\n this.props.history.push('/DGLetterCreationSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={this.toolbarConfig} />\r\n
\r\n \r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(DGLetterCreation));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { EntityForm } from '../../widgets/SearchForm';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\n\r\nexport default function DGLetterCreationSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./DG.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport DGLetterCreationSearchForm from './DGLetterCreationSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst filterParameters = [\r\n\r\n]\r\nconst headCells = [\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' },\r\n { id: 'DGIntervention', numeric: false, disablePadding: true, label: 'DG Intervention' },\r\n { id: 'CRMLetterType', numeric: false, disablePadding: true, label: 'CRM Letter Type' },\r\n { id: 'CRMLetterSalutation', numeric: false, disablePadding: true, label: 'CRM Letter Salutation' },\r\n { id: 'HeaderA', numeric: false, disablePadding: true, label: 'Header A' },\r\n { id: 'HeaderB', numeric: false, disablePadding: true, label: 'Header B' },\r\n { id: 'CRMLetterGreeting', numeric: false, disablePadding: true, label: 'CRM Letter Greeting' },\r\n { id: 'SignOffName', numeric: false, disablePadding: true, label: 'Sign off Name' },\r\n { id: 'JobTitle', numeric: false, disablePadding: true, label: 'Job Title' }\r\n];\r\n\r\nconst formRef = React.createRef();\r\n\r\nclass DGLetterCreationSearch extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n model: {\r\n DGFinancialYearID: \"\",\r\n DGLetterTypeID: \"\"\r\n },\r\n keyUpSwitch: false\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'add',\r\n label: '',\r\n tooltip: 'Add',\r\n icon: 'AddIcon',\r\n visible: this.props.menuPermissionItem.Add\r\n },\r\n {\r\n id: 'edit',\r\n label: '',\r\n tooltip: 'Edit',\r\n icon: 'EditIcon',\r\n disabled: true,\r\n visible: this.props.menuPermissionItem.Edit\r\n },\r\n {\r\n id: 'delete',\r\n label: '',\r\n tooltip: 'Delete selected letter from records',\r\n icon: 'DeleteIcon',\r\n disabled: true,\r\n visible: this.props.menuPermissionItem.Delete\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.searchParameters = [\r\n { Name: \"DGFinancialYearID\", Value: \"\" },\r\n { Name: \"DGLetterTypeID\", Value: \"\" }\r\n ]\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/DGLetterCreation'\r\n })\r\n }\r\n } \r\n\r\n handleFormValueChange(values) {\r\n this.setState({ model: values });\r\n }\r\n\r\n handleSelection = (selection) => {\r\n \r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n > { this.onkeyup(e) }} ref={formRef} id={typeof this.props.location.state !== 'undefined' ? this.props.location.state.selection : null}\r\n valueChangeHandler={(values) => this.handleFormValueChange(values)} />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(DGLetterCreationSearch));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { EntityForm } from '../../widgets/SearchForm';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function DGQueryReasonSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./DG.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport DGQueryReasonSearchForm from './DGQueryReasonSearchForm';\r\nimport CardLayout from '../../widgets/Card';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst filterParameters = [\r\n\r\n]\r\nconst headCells = [\r\n { id: 'DGFinancialYear', numeric: false, disablePadding: true, label: 'DG Financial Year' },\r\n { id: 'Name', numeric: false, disablePadding: true, label: 'Name' },\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Description' }\r\n];\r\n\r\nconst formRef = React.createRef();\r\n\r\nclass DGQueryReasonSearch extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n model: {\r\n DGFinancialYearID: \"\",\r\n Name: \"\",\r\n Description: \"\"\r\n\r\n },\r\n keyUpSwitch: false\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'add',\r\n label: '',\r\n tooltip: 'Add',\r\n icon: 'AddIcon',\r\n visible: this.props.menuPermissionItem.Add\r\n },\r\n {\r\n id: 'edit',\r\n label: '',\r\n tooltip: 'Edit',\r\n icon: 'EditIcon',\r\n disabled: true,\r\n visible: this.props.menuPermissionItem.Edit\r\n },\r\n {\r\n id: 'delete',\r\n label: '',\r\n tooltip: 'Delete selected query reason from records',\r\n icon: 'DeleteIcon',\r\n disabled: true,\r\n visible: this.props.menuPermissionItem.Delete\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.searchParameters = [\r\n { Name: \"DGFinancialYearID\", Value: \"\" },\r\n { Name: \"Name\", Value: \"\" },\r\n { Name: \"Description\", Value: \"\" }\r\n ]\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/DGQueryReason'\r\n })\r\n }\r\n } \r\n\r\n handleFormValueChange(values) {\r\n this.setState({ model: values });\r\n }\r\n\r\n handleSelection = (selection) => {\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n > { this.onkeyup(e) }} ref={formRef} id={typeof this.props.location.state !== 'undefined' ? this.props.location.state.selection : null}\r\n valueChangeHandler={(values) => this.handleFormValueChange(values)} />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(DGQueryReasonSearch));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n\r\nexport const DGQueryReasonForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"150px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n return (\r\n \r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n }\r\n
\r\n \r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./DG.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { DGQueryReasonForm } from './DGQueryReasonForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nconst utils = new ViewUtils();\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass DGQueryReason extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n model: {\r\n DGFinancialYearID: \"\",\r\n Name: \"\",\r\n Description: \"\",\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.close()\r\n } else if (\"save\" === buttonId) {\r\n this.save()\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n Name: values.Name\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n //if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n // formValue.id = this.props.location.state.selection;\r\n // isAdd = false;\r\n //}\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n //let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n const url = `api/sims/dgqueryreasons/insertdgqueryreasons`;\r\n utils.saveForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Query Reason added successfully\", messageStyle: \"SUCCESS\", id: response.EntityId });\r\n }, this.error);\r\n } else {\r\n const url = `api/sims/dgqueryreasons/updatedgqueryreasons`;\r\n utils.updateForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Query Reason updated successfully\", messageStyle: \"SUCCESS\" });\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n error(response) {\r\n this.setState({ message: \"A system error has accured. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n\r\n }\r\n\r\n close() {\r\n this.props.history.push('/DGQueryReasonSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)}\r\n editPermission={this.props.menuPermissionItem.Edit}\r\n data={this.state.model}\r\n model={this.state.model}\r\n />\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(DGQueryReason));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { EntityForm } from '../../widgets/SearchForm';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function DGRejectionReasonSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./DG.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport DGRejectionReasonSearchForm from './DGRejectionReasonSearchForm';\r\nimport CardLayout from '../../widgets/Card';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst filterParameters = [\r\n\r\n]\r\nconst headCells = [\r\n { id: 'DGFinancialYear', numeric: false, disablePadding: true, label: 'DG Financial Year' },\r\n { id: 'Name', numeric: false, disablePadding: true, label: 'Name' },\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Description' }\r\n];\r\n\r\nconst formRef = React.createRef();\r\n\r\nclass DGRejectionReasonSearch extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n model: {\r\n DGFinancialYearID: \"\",\r\n Name: \"\",\r\n Description: \"\"\r\n },\r\n keyUpSwitch: false\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'add',\r\n label: '',\r\n tooltip: 'Add',\r\n icon: 'AddIcon',\r\n visible: this.props.menuPermissionItem.Add\r\n },\r\n {\r\n id: 'edit',\r\n label: '',\r\n tooltip: 'Edit',\r\n icon: 'EditIcon',\r\n disabled: true,\r\n visible: this.props.menuPermissionItem.Edit\r\n },\r\n {\r\n id: 'delete',\r\n label: '',\r\n tooltip: 'Delete selected letter from records',\r\n icon: 'DeleteIcon',\r\n disabled: true,\r\n visible: this.props.menuPermissionItem.Delete\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.searchParameters = [\r\n { Name: \"DGFinancialYearID\", Value: \"\" },\r\n { Name: \"Name\", Value: \"\" },\r\n { Name: \"Description\", Value: \"\" }\r\n ]\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/DGRejectionReason'\r\n })\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ model: values });\r\n }\r\n\r\n handleSelection = (selection) => {\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelection(selection) }}\r\n > { this.onkeyup(e) }} ref={formRef} id={typeof this.props.location.state !== 'undefined' ? this.props.location.state.selection : null}\r\n valueChangeHandler={(values) => this.handleFormValueChange(values)} />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(DGRejectionReasonSearch));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n\r\nexport const DGRejectionReasonForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"150px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n return (\r\n\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n }\r\n
\r\n\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./DG.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { DGRejectionReasonForm } from './DGRejectionReasonForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nconst utils = new ViewUtils();\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass DGRejectionReason extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n model: {\r\n DGFinancialYearID: \"\",\r\n Name: \"\",\r\n Description: \"\",\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.close()\r\n } else if (\"save\" === buttonId) {\r\n this.save()\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n Name: values.Name\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n //if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n // formValue.id = this.props.location.state.selection;\r\n // isAdd = false;\r\n //}\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n //let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n const url = `api/sims/dgrejectionreasons/insertdgrejectionreasons`;\r\n utils.saveForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Rejection Reason added successfully\", messageStyle: \"SUCCESS\", id: response.EntityId });\r\n }, this.error);\r\n } else {\r\n const url = `api/sims/dgrejectionreasons/updatedgrejectionreasons`;\r\n utils.updateForm(this, userRef, url, (response) => {\r\n this.setState({ message: \"Rejection Reason updated successfully\", messageStyle: \"SUCCESS\" });\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n error(response) {\r\n this.setState({ message: \"A system error has accured. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n\r\n }\r\n\r\n close() {\r\n this.props.history.push('/DGRejectionReasonSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true} config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)}\r\n editPermission={this.props.menuPermissionItem.Edit}\r\n data={this.state.model}\r\n model={this.state.model}\r\n />\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(DGRejectionReason));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const RoleForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Role.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { RoleForm } from './RoleForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst roleRef = React.createRef();\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nclass role extends Component {\r\n\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modal: {\r\n Description: \"\",\r\n SAQACode: \"\"\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n RoleName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RoleName)) ? this.props.location.state.RoleName : null,\r\n RoleSAQACode: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RoleSAQACode)) ? this.props.location.state.RoleSAQACode : null\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.state.id !== null ? this.props.menuPermissionItem.Edit : this.props.menuPermissionItem.Add },\r\n { id: 'rolePermission', label: 'Role Permissions', tooltip: 'Role Permissions', disabled: utils.isNull(this.state.id) }\r\n\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ modal: values });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"rolePermission\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/rolePermissionSearch',\r\n state: {\r\n selection: this.state.id,\r\n RoleName: this.state.RoleName,\r\n RoleSAQACode: this.state.RoleSAQACode\r\n }\r\n });\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = roleRef.current.getValue();\r\n console.log(formValue);\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n //if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n // formValue.id = this.props.location.state.selection;\r\n // isAdd = false;\r\n //}\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n //let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n const url = `api/sims/roledetails/insertrole`;\r\n utils.saveForm(this, roleRef, url, (response) => {\r\n if (response.MessageType === 'SUCCESS') {\r\n this.setState({ id: response.EntityId, RoleName: formValue.Description, RoleSAQACode: formValue.SAQACode, message: response.Message, messageStyle: response.MessageType });\r\n toolbarRef.current.setButtonDisabled(\"rolePermission\", false);\r\n }\r\n else {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n }, this.error);\r\n } else {\r\n const url = `api/sims/roledetails/updaterole`;\r\n utils.updateForm(this, roleRef, url, (response) => {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n error(response) {\r\n this.setState({ message: \"A system error has accured. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n\r\n }\r\n\r\n close() {\r\n this.props.history.push('/roleMaintenanceSearch');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Role Maintenance > Roles & Permissions\" + (this.state.RoleName !== null ? \" > \" + this.state.RoleName + \" - \" + this.state.RoleSAQACode : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} editPermission={this.state.id !== null ? this.props.menuPermissionItem.Edit : this.props.menuPermissionItem.Add} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(role));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function RolePermissionSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Menu Item Name\r\n \r\n props.model.MenuItemName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Role.css\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport RolePermissionSearchForm from './RolePermissionSearchForm';\r\n\r\n\r\nconst headCells = [\r\n { id: 'MenuItemName', numeric: false, disablePadding: true, label: 'Menu Item Name' },\r\n { id: 'Viewable', numeric: false, disablePadding: true, label: 'Viewable' },\r\n { id: 'Add', numeric: false, disablePadding: true, label: 'Add ' },\r\n { id: 'Edit', numeric: false, disablePadding: true, label: 'Edit' },\r\n { id: 'Delete', numeric: false, disablePadding: true, label: 'Delete' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass RolePermissionSearch extends Component {\r\n\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n linkDialogOpen: false,\r\n model: {\r\n RoleID: this.props.location.state.selection,\r\n MenuItemName: \"\"\r\n },\r\n keyUpSwitch: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Close', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: 'delete', label: '', tooltip: 'Delete', icon: 'DeleteIcon', disabled: true }\r\n ]\r\n }\r\n\r\n ]\r\n };\r\n }\r\n\r\n searchParameters = [\r\n { Name: \"RoleID\", Value: this.props.location.state.selection },\r\n { Name: \"MenuItemName\", Value: \"\" }\r\n\r\n ]\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"add\" == buttonId) {\r\n this.props.history.push({\r\n pathname: \"/rolePermissionMaintenance\",\r\n state: {\r\n RoleID: this.props.location.state.selection,\r\n RoleName: this.props.location.state.RoleName,\r\n RoleSAQACode: this.props.location.state.RoleSAQACode\r\n }\r\n })\r\n }\r\n else if (\"edit\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/rolePermissionMaintenance\",\r\n state: {\r\n RoleID: this.props.location.state.selection,\r\n RoleName: this.props.location.state.RoleName,\r\n RoleSAQACode: this.props.location.state.RoleSAQACode,\r\n selection: this.state.selectedPermissionID\r\n }\r\n })\r\n } else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/roleMaintenance\",\r\n state: {\r\n selection: this.props.location.state.selection,\r\n RoleName: this.props.location.state.RoleName,\r\n RoleSAQACode: this.props.location.state.RoleSAQACode\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({\r\n selectedPermissionID: selection[0].Id\r\n });\r\n } else {\r\n this.setState({\r\n selectedPermissionID: null\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Role Maintenance > Roles & Permissions > \" + this.props.location.state.RoleName + \" - \" + this.props.location.state.RoleSAQACode + \" > Permissions\"}\r\n

\r\n { this.handleSelection(selection) }}\r\n >\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(RolePermissionSearch);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function NavigationSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Menu Item Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.MenuItemName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../../View.css\";\r\nimport \"../../../Grid.css\";\r\nimport \"../../../Form.css\";\r\nimport \"../../../App.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport NavigationSearchForm from './NavigationSearchForm';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"MenuItemName\", numeric: false, disablePadding: true, label: \"Menu Item Name\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select Menu Item from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nclass NavigationSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = !utils.isNull(this.props.RoleID) ?\r\n //For search of providers that can be linked to a particular entity\r\n [\r\n { Name: \"RoleID\", Value: this.props.RoleID },\r\n { Name: \"MenuItemName\", Value: \"\" }\r\n ]\r\n :\r\n //For search on the provider search screen\r\n [\r\n { Name: \"MenuItemName\", Value: \"\" }\r\n ]\r\n\r\n let model = !utils.isNull(this.props.RoleID) ?\r\n {\r\n MenuItemName: \"\",\r\n RoleID: this.props.RoleID\r\n }\r\n :\r\n {\r\n MenuItemName: \"\"\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedOFO: null,\r\n linkDialogOpen: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(NavigationSearch);","import React from 'react';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport NavigationSearch from './Controls/NavigationSearch';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\n\r\nexport const RolePermissionForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n return (\r\n \r\n {form =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n { props.id === null ?\r\n \r\n {\r\n form.setLookupSelection(\"NavigationID\", value)\r\n }} autoFetchData={true} selection={props.selection}\r\n RoleID={props.RoleID}\r\n />\r\n \r\n :\r\n \r\n }\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Role.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { RolePermissionForm } from './RolePermissionForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst roleRef = React.createRef();\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass RolePermission extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modal: {\r\n NavigationID: null\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n RoleName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RoleName)) ? this.props.location.state.RoleName : null,\r\n RoleSAQACode: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RoleSAQACode)) ? this.props.location.state.RoleSAQACode : null,\r\n RoleID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RoleID)) ? this.props.location.state.RoleID : null,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n\r\n\r\n handleFormValueChange(values) {\r\n if (JSON.stringify(this.state.modal) !== JSON.stringify(values)) {\r\n if (!utils.isNull(values.NavigationID)) {\r\n values.MenuItemName = values.NavigationID.Description;\r\n }\r\n this.setState({ modal: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = roleRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n formValue.RoleID = this.state.RoleID;\r\n let isAdd = true;\r\n //if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n // formValue.id = this.props.location.state.selection;\r\n // isAdd = false;\r\n //}\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n //let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n const url = `api/sims/permissiondetails/insertpermission`;\r\n utils.saveForm(this, roleRef, url, (response) => {\r\n if (response.MessageType === 'SUCCESS') {\r\n this.setState({ id: response.EntityId, message: response.Message, messageStyle: response.MessageType });\r\n }\r\n else {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n }, this.error);\r\n } else {\r\n const url = `api/sims/permissiondetails/updatepermission`;\r\n utils.updateForm(this, roleRef, url, (response) => {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n error(response) {\r\n this.setState({ message: \"A system error has accured. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/rolePermissionSearch',\r\n state: {\r\n selection: this.state.RoleID,\r\n RoleName: this.state.RoleName,\r\n RoleSAQACode: this.state.RoleSAQACode\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Role Maintenance > Roles & Permissions > \" + this.state.RoleName + \" - \" + this.state.RoleSAQACode + \" > Permissions\" + (this.state.id !== null ? \"\" : \" > Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)}\r\n RoleID={this.state.RoleID}\r\n data={this.state.modal}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(RolePermission);","import React, { useEffect } from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\nimport './SDF.css'\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\n\r\nimport clsx from 'clsx';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControl from '@material-ui/core/FormControl';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst useStyles = makeStyles({\r\n root: {\r\n // width: '90%',\r\n margin: 0,\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n bullet: {\r\n display: 'inline-block',\r\n margin: '0 2px',\r\n transform: 'scale(0.8)',\r\n },\r\n title: {\r\n fontSize: 14,\r\n },\r\n pos: {\r\n marginBottom: 12,\r\n },\r\n icon: {\r\n borderRadius: '50%',\r\n width: 16,\r\n height: 16,\r\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\r\n backgroundColor: '#f5f8fa',\r\n\r\n 'input:hover ~ &': {\r\n backgroundColor: '#ebf1f5',\r\n },\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)',\r\n },\r\n },\r\n checkedIcon: {\r\n backgroundColor: '#01579B',\r\n '&:before': {\r\n display: 'block',\r\n width: 16,\r\n height: 16,\r\n content: '\"\"',\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: '#01579B',\r\n },\r\n },\r\n});\r\n\r\nfunction StyledRadio(props) {\r\n const classes = useStyles();\r\n\r\n return (\r\n }\r\n icon={}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport const SDFForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [scopeSelected, setScopeSelected] = React.useState(1)\r\n const [usePostalAddress, setUsePostalAddress] = React.useState(false)\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const [form, setForm] = React.useState(null);\r\n const [file, setFile] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n const handleScopeSelected = (event) => {\r\n if (event.target.value != scopeSelected) {\r\n setScopeSelected(event.target.value)\r\n\r\n // this.state.model.scopeSelected = event.target.value;\r\n\r\n }\r\n }\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n\r\n const fileUploadHandler = (data) => {\r\n setForm({});\r\n setFile(data);\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n const processFileHandler = () => {\r\n //this.setState({ message: \"\", hasError: false });\r\n if (props.IsExternal) {\r\n utils.invokeUrlExternal('dms/ocr/id/card', (data) => {\r\n if (data) {\r\n setForm(data);\r\n //form.values['IDNo'] = data.IDNo;\r\n } else {\r\n //this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }\r\n }, () => {\r\n //this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(file)\r\n });\r\n } else {\r\n utils.invokeUrl('dms/ocr/id/card', (data) => {\r\n if (data) {\r\n setForm(data);\r\n //form.values['IDNo'] = data.IDNo;\r\n } else {\r\n //this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }\r\n }, () => {\r\n //this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(file)\r\n });\r\n }\r\n }\r\n\r\n function FileDownload(id,) {\r\n utils.invokeUrl(\"api/sims/sdfdetails/DownloadSDFCertificate?id=\" + id, (response) => {\r\n\r\n var blob = new Blob([base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n };\r\n\r\n function base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n function DocRequiredCheck(value) {\r\n if (value !== undefined && value !== null && value !== \"\") {\r\n return false\r\n }\r\n else if (value === undefined || value === null || value === \"\") {\r\n return true\r\n }\r\n };\r\n\r\n\r\n const handleFormValueChange = (values) => {\r\n\r\n if (JSON.stringify(form) !== JSON.stringify(values)) {\r\n if (!utils.isNull(values)) {\r\n let idnumberDetails = { ...values };\r\n if (!utils.isNull(values.IDNo) && values.IDNo.length == 13) {\r\n if (utils.isNull(values.CitizenResidentialStatusID) && utils.isNull(values.DateofBirth) && utils.isNull(values.GenderID) && utils.isNull(values.NationalityID)) {\r\n try {\r\n const residentailStatus = idnumberDetails.IDNo.charAt(10);\r\n if (residentailStatus == \"0\") {\r\n idnumberDetails.CitizenResidentialStatusID = { Id: \"1\", Description: \"South Africa\" };\r\n idnumberDetails.NationalityID = { Id: \"1\", Description: \"South Africa\" };\r\n }\r\n else if (residentailStatus == \"1\") {\r\n idnumberDetails.CitizenResidentialStatusID = { Id: \"4\", Description: \"Permanent Resident\" }\r\n }\r\n var date = new Date('19' + idnumberDetails.IDNo.slice(0, 2), idnumberDetails.IDNo.slice(2, 4) - 1, idnumberDetails.IDNo.slice(4, 6));\r\n idnumberDetails.DateofBirth = date;\r\n const gender = parseInt(idnumberDetails.IDNo.slice(6, 10));\r\n if (gender >= 0 && gender <= 4999) {\r\n idnumberDetails.GenderID = { Id: \"2\", Description: \"Female\" }\r\n } else if (gender >= 5000 && gender <= 9999) {\r\n idnumberDetails.GenderID = { Id: \"1\", Description: \"Male\" }\r\n }\r\n\r\n setForm({ ...form, ...idnumberDetails });\r\n //props.valueChangeHandler(values);\r\n //this.setState((prevState, props) => {\r\n // return {\r\n // form: { ...prevState.formData, ...idnumberDetails }\r\n // }\r\n //});\r\n } catch (err) {\r\n\r\n }\r\n }\r\n }\r\n //if (!utils.isNull(values.FirstName)) {\r\n // idnumberDetails.Initials = values.FirstName.charAt(0).toUpperCase();\r\n //}\r\n setForm({ ...form, ...idnumberDetails });\r\n }\r\n props.valueChangeHandler(values);\r\n }\r\n }\r\n\r\n const onTextChange = (form, id, value) => {\r\n let Initials = '';\r\n if (!utils.isNull(form.values.FirstName)) {\r\n Initials += form.values.FirstName.charAt(0).toUpperCase();\r\n }\r\n if (!utils.isNull(form.values.MiddleName)) {\r\n Initials += form.values.MiddleName.charAt(0).toUpperCase();\r\n }\r\n if (Initials !== '') {\r\n form.updateValue('Initials', Initials);\r\n }\r\n }\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n const updateGPSAddress = (address, form) => {\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n const classes = useStyles();\r\n const handleCheckboxChange = (e) => {\r\n\r\n if (e !== true) {\r\n setUsePostalAddress(true)\r\n } else {\r\n setUsePostalAddress(false)\r\n }\r\n }\r\n\r\n const dataArrivedHandler = (values) => {\r\n\r\n if (!utils.isNull(props.dataArrivedHandler)) {\r\n props.dataArrivedHandler(values);\r\n }\r\n\r\n if (!DocRequiredCheck(values.SDFCertificateDocumentName)) {\r\n ref.current.setValue(\"SDFCertificate\", { Base64: \"\" });\r\n }\r\n }\r\n return (\r\n\r\n \r\n\r\n \r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n {/*!props.id ?*/\r\n // : null\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n // \r\n\r\n // {handleScopeSelected(event)}} defaultValue=\"1\" aria-label=\"linkscope\" name=\"scope module\" row> \r\n\r\n // } label=\"Primary SDF\" />
\r\n // } label=\"Secondary SDF\" />\r\n //
\r\n //
\r\n //
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {!props.id ?\r\n \r\n \r\n : null}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n
\r\n ID Document Upload
\r\n fileUploadHandler(data)}\r\n onProcessHandler={() => processFileHandler()}\r\n imageStyle={true}\r\n parentId={0}\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.id ?\r\n \r\n \r\n : null}\r\n \r\n
\r\n \r\n }\r\n label=\"Have you completed a SDF Training Programme provided by an accredited training provider\"\r\n />\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {form.values[\"SDFCertificateDocumentName\"] !== \"\" && !utils.isNull(form.values[\"SDFCertificateDocumentName\"]) ?\r\n FileDownload(props.id)} >Download SDF Certificate\r\n : null\r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./SDF.css\";\r\nimport \"./sdfStyle.css\";\r\nimport { SDFForm } from './SDFForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\n\r\nconst formRef = React.createRef();\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\n\r\nclass SDF extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n sdfDetails: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n IsExternal: utils.isNull(this.props.IsExternal) ? false : this.props.IsExternal,\r\n IsDashboard: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.IsDashboard)) ? this.props.location.state.IsDashboard : null,\r\n counter: 0\r\n };\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.IsExternal ? true : utils.isNull(this.props.location.state.selection) ? this.props.menuPermissionItem.Edit : this.props.menuPermissionItem.Add },\r\n { id: 'organisationDetails', label: 'Organisation Details', tooltip: 'Organisation Details', disabled: utils.isNull(this.state.id) }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n }\r\n\r\n //componentDidMount() {\r\n // let LookupUrl = `api/sims/sdforganisationdetails/`;\r\n // let path = '/sdfOrgDetails';\r\n // if (this.props.IsExternal) { LookupUrl = `api/sims/sdfregistration/`; path = '/sdfRegistrationOrgDetails'; }\r\n // this.props.history.push({\r\n // pathname: path,\r\n // state: {\r\n // SDFID: 7,\r\n // sdfName: 'test' + \" \" + 'test',\r\n // IDNo: '15092021',\r\n // IsDashboard: false,\r\n // IsExternal: true,\r\n // LookupUrl: LookupUrl\r\n // }\r\n // });\r\n //}\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n sdfDetails: {\r\n FirstName: values.FirstName,\r\n Surname: values.Surname,\r\n IDNo: values.IDNo\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"organisationDetails\" === buttonId) {\r\n let LookupUrl = `api/sims/sdforganisationdetails/`;\r\n let path = '/sdfOrgDetails';\r\n if (this.props.IsExternal) { LookupUrl = `api/sims/sdfregistration/`; path = '/sdfRegistrationOrgDetails';}\r\n this.props.history.push({\r\n pathname: path,\r\n state: {\r\n SDFID: this.state.id,\r\n sdfName: this.state.sdfDetails.FirstName + \" \" + this.state.sdfDetails.Surname,\r\n IDNo: this.state.sdfDetails.IDNo,\r\n IsDashboard: this.state.IsDashboard,\r\n IsExternal: this.state.IsExternal,\r\n LookupUrl: LookupUrl\r\n }\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n let url = `api/sims/sdfdetails/AddSDF`;\r\n if (this.props.IsExternal) {\r\n url = `api/sims/sdfregistration/AddSDF`;\r\n utils.saveFormExternal(this, formRef, url, (response) => {\r\n this.setState({ id: response.EntityId }, () => { toolbarRef.current.setButtonDisabled(\"organisationDetails\", false); });\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n response.MessageType === \"ERROR\" ? this.errorCallback(response) : this.successCallback(response);\r\n }, this.error);\r\n } else {\r\n utils.saveForm(this, formRef, url, (response) => {\r\n this.setState({ id: response.EntityId }, () => { toolbarRef.current.setButtonDisabled(\"organisationDetails\", false); });\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n response.MessageType === \"ERROR\" ? this.errorCallback(response) : this.successCallback(response);\r\n }, this.error);\r\n }\r\n } else {\r\n const url = `api/sims/sdfdetails/UpdateSDF`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n response.MessageType === \"ERROR\" ? this.errorCallback(response) : this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType, counter: this.state.counter + 1 });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n closeView() {\r\n let url = `/sdfsearch`;\r\n if (this.state.IsDashboard) { url = `/sdfdashboard`; }\r\n this.props.history.push({\r\n pathname: url,\r\n state: { selection: null }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.IsExternal ? : null}\r\n
\r\n

\r\n SDF Details\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef} enabled={true} config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)}\r\n entityLookupController={\"GetFind\"} IsExternal={this.props.IsExternal} LookupUrl={typeof this.props.IsExternal != 'undefined' ? \"api/sims/sdfregistration/GetLookupList?listId=\" : \"api/sims/sdfdetails/GetLookupList?listId=\"}\r\n dataArrivedHandler={(values) => this.dataArrivedHandler(values)} dataUrl={typeof this.props.IsExternal != 'undefined' ? \"api/sims/sdfregistration/getfind\" : \"api/sims/sdfdetails/getfind\"} />\r\n
\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(SDF));\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\n\r\nexport default function OrganisationSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {\r\n props.isLinkSearch ?\r\n
\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport OrganisationSearchForm from '../organisation/OrganisationSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\n\r\nconst utils = new ViewUtils();\r\nclass SDFOrganisationSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: \"delete\", label: \"\", tooltip: \"Delete\", icon: \"Delete\", disabled: true }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n this.searchParameters = !utils.isNull(this.props.SDFID) ?\r\n [\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" },\r\n { Name: \"SDFID\", Value: this.props.SDFID },\r\n ]\r\n :\r\n [\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" },\r\n\r\n ]\r\n\r\n this.headCells = this.props.isLinkSearch ?\r\n [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Legal Name' },\r\n { id: 'TradeName', numeric: false, disablePadding: true, label: 'Trade Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n ]\r\n :\r\n [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Legal Name' },\r\n { id: 'TradeName', numeric: false, disablePadding: true, label: 'Trade Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n\r\n ]\r\n\r\n let model = !utils.isNull(this.props.SDFID) ?\r\n {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n TradeName: \"\",\r\n SDFID: this.props.SDFID\r\n }\r\n :\r\n {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n TradeName: \"\",\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedOrganisation: null,\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedOrganisation: selection })\r\n } else {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Organisation\"}\r\n promptContent={\"Are you sure you want to remove this organisation?\"}\r\n checkRefreshToken={!this.props.IsExternal}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(SDFOrganisationSearch)\r\n);\r\n\r\n\r\n","import React from 'react';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport OrganisationSearch from './SDFOrganisationSearch';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const SDFOrganisationForm = React.forwardRef((props, ref) => {\r\n\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [open, setOpen] = React.useState(false);\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n }\r\n };\r\n\r\n function disableSecondaryPrimarySDFCheck(value) {\r\n if (value) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OrganisationID\", value)\r\n }} autoFetchData={false} selection={props.selection} SDFID={props.SDFID} isLinkSearch={true}\r\n IsExternal={props.IsExternal}\r\n />\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import { withRouter } from 'react-router-dom';\r\nimport React, { Component } from \"react\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport { SDFOrganisationForm } from './SDFOrganisationForm';\r\nimport FormDialog from \"../../etqa/FormDialog\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'OrganisationName', numeric: false, disablePadding: true, label: 'Organisation Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' },\r\n { id: 'Document', numeric: false, disablePadding: true, label: 'Document', contentType: 'document' },\r\n];\r\n\r\nclass SDFOrganisations extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n Id: this.props.location.state.selection\r\n },\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: [{ Name: \"SDFID\", Value: this.props.location.state.SDFID }],\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"Remove Organisation\",\r\n promptContent: \"Are you sure you want to remove this Organisation?\",\r\n showTable: true,\r\n SDFID: this.props.location.state.SDFID,\r\n IsExternal: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.IsExternal)) ? this.props.location.state.IsExternal : false,\r\n IsDashboard: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.IsDashboard)) ? this.props.location.state.IsDashboard : false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon', visible: !this.state.IsExternal }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add Request', icon: 'AddIcon', visible: this.state.IsExternal || this.props.menuPermissionItem.Add },\r\n { id: 'remove', label: '', tooltip: 'Remove Request', disabled: utils.isNull(this.state.selectedId), icon: 'DeleteIcon', visible: this.state.IsExternal || this.props.menuPermissionItem.Delete },\r\n { id: 'finish', label: 'Finish', tooltip: 'Finalize Application', visible: this.state.IsExternal }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n\r\n }\r\n else if (buttonId === \"close\") {\r\n let sdfUrl = \"/sdf\";\r\n if (this.state.IsExternal) { sdfUrl = \"/sdfRegistrationForm\"; }\r\n if (this.state.IsDashboard) { sdfUrl = \"/sdfdashboard\"; }\r\n this.props.history.push({\r\n pathname: sdfUrl,\r\n state: { selection: this.props.location.state.SDFID }\r\n })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"finish\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/login\",\r\n state: { selection: null }\r\n })\r\n }\r\n else {\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let newsearchParameters = [...this.state.searchParameters];\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n });\r\n }\r\n\r\n FileDownload = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n //console.log(headCell);\r\n utils.invokeUrl(this.props.location.state.LookupUrl + \"downloaddocument?id=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false });\r\n } else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n showTable: false,\r\n clearSelectedRow: true\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n clearSelectedRow: true\r\n })\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n clearSelectedRow: true\r\n })\r\n }\r\n }\r\n\r\n remove(url) {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedId}`;\r\n if (this.state.IsExternal) {\r\n utils.invokeUrlDeleteExternal(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n else {\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null })\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedId: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(),\r\n clearSelectedRow: true\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.IsExternal ? : null}\r\n

\r\n {\"SDF Details > Organisations Details > \" + (this.props.location.state.sdfName !== null ? this.props.location.state.sdfName + \" - \" + this.props.location.state.IDNo : \"\")}\r\n

\r\n\r\n \r\n\r\n
\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl={this.props.location.state.LookupUrl + \"GetSDFOrganisation\"}\r\n searchParameters={this.state.searchParameters}\r\n onCellSelectionChange={(rowid, headCell) => { this.FileDownload(rowid, headCell) }}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n paged={true}\r\n checkRefreshToken={!this.state.IsExternal}\r\n />\r\n )}\r\n
\r\n\r\n this.postAddHandler(cancel, save)}\r\n IsExternal={this.state.IsExternal}\r\n >\r\n this.handleFormValueChange(values)} open={this.state.addDialogOpen} SDFID={this.props.location.state.SDFID}\r\n LookupUrl={this.props.location.state.LookupUrl}\r\n IsExternal={this.state.IsExternal}\r\n />\r\n \r\n\r\n { this.remove(this.props.location.state.LookupUrl + \"RemoveSDFOrganisation\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(SDFOrganisations));","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\n\r\nexport default function OrganisationSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./DGOrganisation.css\";\r\nimport OrganisationSearchForm from './DGOrganisationSearchForm';\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Legal Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: 'TradeName', numeric: false, disablePadding: true, label: 'Trade Name' },\r\n { id: 'SICCode', numeric: false, disablePadding: true, label: 'SIC Code' },\r\n];\r\nclass OrganisationSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n TradeName: \"\",\r\n SICCodeID: \"\"\r\n },\r\n keyUpSwitch: false,\r\n selectedOrganisation: null,\r\n }\r\n\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: utils.isNull(this.state.selectedOrganisation), visible: this.props.menuPermissionItem.Edit },\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.searchParameters = [\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" },\r\n { Name: \"SICCodeID\", Value: \"\" }\r\n ]\r\n\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedOrganisation: selection })\r\n } else {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.props.history.push({\r\n pathname: '/DGOrganisation'\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n\r\n { this.handleSelection(selection) }}\r\n \r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(OrganisationSearch));","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const DGOrganisationDetailsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [selectedValue, showField] = React.useState(null);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n const updateGPSAddress = (address, form) => {\r\n console.log(address);\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n function checkValue(value) {\r\n\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return false\r\n }\r\n else {\r\n return true\r\n }\r\n } else {\r\n return true\r\n }\r\n }\r\n\r\n function ConfirmDetailsDisableCheck(value) {\r\n\r\n if (value !== undefined && value !== null) {\r\n if (value === true) {\r\n return true\r\n }\r\n else if (value !== true) {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n {/* */}\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport \"./DGOrganisation.css\";\r\nimport { DGOrganisationDetailsForm } from './DGOrganistaionDetailsForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst formRef = React.createRef();\r\n\r\nclass DGOrganisation extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n };\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: \"CloseIcon\" },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.menuPermissionItem.Edit : this.props.menuPermissionItem.Add }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'contact', label: 'Contact', tooltip: '', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/dgorganisationcontacts').View },\r\n { id: 'stakeholder', label: 'Stakeholder', tooltip: '', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/dgorganisationstakeholder').View },\r\n { id: 'upload', label: 'Document Uploads', tooltip: '', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/dgdocumentuploads').View },\r\n { id: 'dgapplication', label: 'DG Application', tooltip: '', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/dgapplicationdashboard').View },\r\n { id: 'dgverification', label: 'DG Verification', tooltip: '', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/dgverificationsearch').View },\r\n { id: 'dgevaluation', label: 'DG Evaluation', tooltip: '', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/dgevaluationsearch').View },\r\n { id: 'dgapproval', label: 'DG Approval', tooltip: '', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/dgapprovalsearch').View },\r\n { id: 'dgcontracts', label: 'DG Contracts', tooltip: '', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/dgcontracts').View },\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relationship Management', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/dgorganisationcrm').View },\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n organisationDetails: {\r\n LegalName: values.LegalName,\r\n SDLNumber: values.SDLNumber\r\n }\r\n });\r\n if (this.props.location.state.isDashboard) {\r\n this.props.history.push({\r\n pathname: '/DGOrganisationStakeholder',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n selection: this.props.location.state.selection,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"contact\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGOrganisationContacts',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n selection: this.props.location.state.selection,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n }\r\n else if (\"stakeholder\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGOrganisationStakeholder',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n selection: this.props.location.state.selection,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n }\r\n else if (\"upload\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGDocumentUploads',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n selection: this.props.location.state.selection,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n } \r\n else if (\"dgapplication\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGApplicationDashboard',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n } else if (\"dgevaluation\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGEvaluationSearch',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n selection: this.props.location.state.selection,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n } else if (\"dgverification\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGVerificationSearch',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n selection: this.props.location.state.selection,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n } else if (\"dgcontracts\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGContracts',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n }\r\n else if (\"dgapproval\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGApprovalSearch',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n } else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/DGOrganisationCRM\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n }\r\n }\r\n\r\n \r\n save() {\r\n let formValue = formRef.current.getValue();\r\n \r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n console.log(formValue);\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n let data = JSON.stringify(formValue);\r\n const url = `api/sims/dgorganisationdetails/updatedgorganisation`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/DGOrganisationSearch',\r\n //state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"DG Organisation \" + (this.state.organisationDetails.LegalName !== null ? \"> \" + this.state.organisationDetails.LegalName + (this.state.organisationDetails.SDLNumber !== null ? \" - \" + this.state.organisationDetails.SDLNumber : \"\") : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n enabled={true}\r\n config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(DGOrganisation));\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\n\r\nexport default function StakeholderSearchForm(props) {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport StakeholderSearchForm from './StakeholderSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nclass StakeholderSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n ProvinceID: \"0\",\r\n SDLNumber: \"\"\r\n },\r\n keyUpSwitch: false,\r\n selectedOrganisation: null,\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'View / Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.View }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n this.searchParameters = this.searchParameters = this.props.isLinkSearch ?\r\n [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"ProvinceID\", Value: \"0\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n ]\r\n :\r\n [\r\n { Name: \"FirstName\", Value: \"\" },\r\n { Name: \"Surname\", Value: \"\" },\r\n { Name: \"IDNo\", Value: \"\" },\r\n { Name: \"ProvinceID\", Value: \"0\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n\r\n ]\r\n\r\n this.headCells = this.props.isLinkSearch ?\r\n [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'ID Number' }\r\n ]\r\n :\r\n [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNo', numeric: false, disablePadding: true, label: 'ID Number' }\r\n\r\n ]\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedOrganisation: selection })\r\n } else {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(StakeholderSearch));","import React, { useEffect } from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\nimport './Stakeholder.css'\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\n\r\nimport clsx from 'clsx';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControl from '@material-ui/core/FormControl';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst useStyles = makeStyles({\r\n root: {\r\n // width: '90%',\r\n margin: 0,\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n bullet: {\r\n display: 'inline-block',\r\n margin: '0 2px',\r\n transform: 'scale(0.8)',\r\n },\r\n title: {\r\n fontSize: 14,\r\n },\r\n pos: {\r\n marginBottom: 12,\r\n },\r\n icon: {\r\n borderRadius: '50%',\r\n width: 16,\r\n height: 16,\r\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\r\n backgroundColor: '#f5f8fa',\r\n\r\n 'input:hover ~ &': {\r\n backgroundColor: '#ebf1f5',\r\n },\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)',\r\n },\r\n },\r\n checkedIcon: {\r\n backgroundColor: '#01579B',\r\n '&:before': {\r\n display: 'block',\r\n width: 16,\r\n height: 16,\r\n content: '\"\"',\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: '#01579B',\r\n },\r\n },\r\n});\r\n\r\nexport const StakeholderForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [scopeSelected, setScopeSelected] = React.useState(1)\r\n const [usePostalAddress, setUsePostalAddress] = React.useState(false)\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const [form, setForm] = React.useState(null);\r\n const [file, setFile] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n\r\n const fileUploadHandler = (data) => {\r\n setForm({});\r\n setFile(data);\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n const processFileHandler = () => {\r\n //this.setState({ message: \"\", hasError: false });\r\n if (props.IsExternal) {\r\n utils.invokeUrlExternal('dms/ocr/id/card', (data) => {\r\n if (data) {\r\n setForm(data);\r\n //form.values['IDNo'] = data.IDNo;\r\n } else {\r\n //this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }\r\n }, () => {\r\n //this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(file)\r\n });\r\n }\r\n else {\r\n utils.invokeUrl('dms/ocr/id/card', (data) => {\r\n if (data) {\r\n setForm(data);\r\n //form.values['IDNo'] = data.IDNo;\r\n } else {\r\n //this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }\r\n }, () => {\r\n //this.setState({ message: \"The file cannot be extracted\", hasError: true });\r\n }, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Authorization\": \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(file)\r\n });\r\n }\r\n }\r\n\r\n const handleFormValueChange = (values) => {\r\n\r\n if (JSON.stringify(form) !== JSON.stringify(values)) {\r\n if (!utils.isNull(values)) {\r\n let idnumberDetails = { ...values };\r\n if (!utils.isNull(values.IDNo) && values.IDNo.length == 13) {\r\n if (utils.isNull(values.CitizenResidentialStatusID) && utils.isNull(values.DateofBirth) && utils.isNull(values.GenderID) && utils.isNull(values.NationalityID)) {\r\n try {\r\n const residentailStatus = idnumberDetails.IDNo.charAt(10);\r\n if (residentailStatus == \"0\") {\r\n idnumberDetails.CitizenResidentialStatusID = { Id: \"1\", Description: \"South Africa\" };\r\n idnumberDetails.NationalityID = { Id: \"1\", Description: \"South Africa\" };\r\n }\r\n else if (residentailStatus == \"1\") {\r\n idnumberDetails.CitizenResidentialStatusID = { Id: \"4\", Description: \"Permanent Resident\" }\r\n }\r\n var date = new Date('19' + idnumberDetails.IDNo.slice(0, 2), idnumberDetails.IDNo.slice(2, 4) - 1, idnumberDetails.IDNo.slice(4, 6));\r\n idnumberDetails.DateofBirth = date;\r\n const gender = parseInt(idnumberDetails.IDNo.slice(6, 10));\r\n if (gender >= 0 && gender <= 4999) {\r\n idnumberDetails.GenderID = { Id: \"2\", Description: \"Female\" }\r\n } else if (gender >= 5000 && gender <= 9999) {\r\n idnumberDetails.GenderID = { Id: \"1\", Description: \"Male\" }\r\n }\r\n } catch (err) {\r\n\r\n }\r\n }\r\n }\r\n if (!utils.isNull(values.FirstName)) {\r\n idnumberDetails.Initials = values.FirstName.charAt(0).toUpperCase();\r\n }\r\n setForm({ ...form, ...idnumberDetails });\r\n }\r\n props.valueChangeHandler(values);\r\n }\r\n }\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n const updateGPSAddress = (address, form) => {\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n const classes = useStyles();\r\n const handleCheckboxChange = (e) => {\r\n\r\n if (e !== true) {\r\n setUsePostalAddress(true)\r\n } else {\r\n setUsePostalAddress(false)\r\n }\r\n }\r\n\r\n const dataArrivedHandler = (values) => {\r\n\r\n if (!utils.isNull(props.dataArrivedHandler)) {\r\n props.dataArrivedHandler(values);\r\n }\r\n }\r\n return (\r\n\r\n \r\n\r\n \r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {!props.id ?\r\n \r\n \r\n : null}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n ID Document Upload
\r\n fileUploadHandler(data)}\r\n onProcessHandler={() => processFileHandler()}\r\n imageStyle={true}\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Stakeholder.css\";\r\nimport \"./Stakeholder.css\";\r\nimport { StakeholderForm } from './StakeholderForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\n\r\nconst formRef = React.createRef();\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\n\r\nclass Stakeholder extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n stakeholderDetails: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n IDNo: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n IsExternal: utils.isNull(this.props.IsExternal) ? false : this.props.IsExternal,\r\n IsDashboard: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.IsDashboard)) ? this.props.location.state.IsDashboard : null,\r\n counter: 0\r\n };\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: this.props.IsExternal ? true : utils.isNull(this.props.location.state.selection) ? this.props.menuPermissionItem.Edit : this.props.menuPermissionItem.Add },\r\n { id: 'organisationDetails', label: 'Organisation Details', tooltip: 'Organisation Details', disabled: utils.isNull(this.state.id) }\r\n\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n }\r\n\r\n //componentDidMount() {\r\n // let LookupUrl = `api/sims/DGStakeholderOrganisation/`;\r\n // let path = '/StakeholderOrganisationDetails';\r\n // if (this.props.IsExternal) { LookupUrl = `api/sims/DGStakeholderRegistration/`; path = '/stakeholderRegistrationOrgDetails'; }\r\n // this.props.history.push({\r\n // pathname: path,\r\n // state: {\r\n // StakeholderID: 4,\r\n // stakeholderName: 'Test' + \" \" + 'Test',\r\n // IDNo: '34343434',\r\n // IsExternal: this.state.IsExternal,\r\n // LookupUrl: LookupUrl\r\n // }\r\n // })\r\n //}\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n stakeholderDetails: {\r\n FirstName: values.FirstName,\r\n Surname: values.Surname,\r\n IDNo: values.IDNo\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"organisationDetails\" === buttonId) {\r\n let LookupUrl = `api/sims/DGStakeholderOrganisation/`;\r\n let path = '/StakeholderOrganisationDetails';\r\n if (this.props.IsExternal) { LookupUrl = `api/sims/DGStakeholderRegistration/`; path = '/stakeholderRegistrationOrgDetails';}\r\n this.props.history.push({\r\n pathname: path,\r\n state: {\r\n StakeholderID: this.state.id,\r\n stakeholderName: this.state.stakeholderDetails.FirstName + \" \" + this.state.stakeholderDetails.Surname,\r\n IDNo: this.state.stakeholderDetails.IDNo,\r\n IsDashboard: this.state.IsDashboard,\r\n IsExternal: this.state.IsExternal,\r\n LookupUrl: LookupUrl\r\n }\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n this.checkIDNumber(formValue);\r\n\r\n if (this.state.message === \"\") {\r\n let url = `api/sims/DGStakeholderPerson/AddStakeholder`;\r\n if (this.props.IsExternal) {\r\n url = `api/sims/DGStakeholderRegistration/AddStakeholder`;\r\n utils.saveFormExternal(this, formRef, url, (response) => {\r\n this.setState({ id: response.EntityId }, () => { toolbarRef.current.setButtonDisabled(\"organisationDetails\", false); });\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n response.MessageType === \"ERROR\" ? this.errorCallback(response) : this.successCallback(response);\r\n }, this.error);\r\n } else {\r\n utils.saveForm(this, formRef, url, (response) => {\r\n this.setState({ id: response.EntityId }, () => { toolbarRef.current.setButtonDisabled(\"organisationDetails\", false); });\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n response.MessageType === \"ERROR\" ? this.errorCallback(response) : this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n } else {\r\n const url = `api/sims/DGStakeholderPerson/UpdateStakeholder`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n response.MessageType === \"ERROR\" ? this.errorCallback(response) : this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n checkIDNumber(formValues) {\r\n this.setState({ message: \"\", messageStyle: \"\" });\r\n //console.log(formValues);\r\n if (formValues.IDNo.length !== 13) {\r\n if (formValues.AlternateIDTypeID.Description === \"None\") {\r\n this.setState({ message: \"Invalid ID Number / Alternate ID Type combination.\", messageStyle: \"ERROR\" });\r\n }\r\n }\r\n if (formValues.IDNo.length === 13 && isNaN(formValues.IDNo) && formValues.AlternateIDTypeID.Description !== \"None\") {\r\n this.setState({ message: \"Invalid ID Number / Alternate ID Type combination.\", messageStyle: \"ERROR\" });\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType, counter: this.state.counter + 1 });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n closeView() {\r\n let url = `/stakeholdersearch`;\r\n if (this.state.IsDashboard) { url = `/stakeholderdashboard`; }\r\n this.props.history.push({\r\n pathname: url,\r\n state: { selection: null }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.IsExternal ? : null}\r\n
\r\n

\r\n Stakeholder Details\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef} enabled={true} config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)}\r\n entityLookupController={\"GetFind\"} IsExternal={this.props.IsExternal} LookupUrl={\"api/sims/DGStakeholderRegistration/GetLookupList?listId=\"}\r\n dataArrivedHandler={(values) => this.dataArrivedHandler(values)} dataUrl={typeof this.props.IsExternal != 'undefined' ? \"api/sims/DGStakeholderRegistration/getfind\" : \"api/sims/DGStakeholderPerson/getfind\"} />\r\n
\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(Stakeholder));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport OrganisationSearchForm from '../organisation/DGOrganisationSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\n\r\nconst utils = new ViewUtils();\r\nclass StakeholderOrganisationAddSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true },\r\n { id: \"delete\", label: \"\", tooltip: \"Delete\", icon: \"Delete\", disabled: true }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n this.searchParameters = !utils.isNull(this.props.StakeholderID) ?\r\n [\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" },\r\n { Name: \"StakeholderID\", Value: this.props.StakeholderID },\r\n ]\r\n :\r\n [\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" },\r\n\r\n ]\r\n\r\n this.headCells = this.props.isLinkSearch ?\r\n [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Legal Name' },\r\n { id: 'TradeName', numeric: false, disablePadding: true, label: 'Trade Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n ]\r\n :\r\n [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Legal Name' },\r\n { id: 'TradeName', numeric: false, disablePadding: true, label: 'Trade Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n\r\n ]\r\n\r\n let model = !utils.isNull(this.props.StakeholderID) ?\r\n {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n TradeName: \"\",\r\n StakeholderID: this.props.StakeholderID\r\n }\r\n :\r\n {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n TradeName: \"\",\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedOrganisation: null,\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedOrganisation: selection })\r\n } else {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Organisation\"}\r\n promptContent={\"Are you sure you want to remove this organisation?\"}\r\n checkRefreshToken={!this.props.IsExternal}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(StakeholderOrganisationAddSearch)\r\n);\r\n\r\n\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport OrganisationSearch from './StakeholderOrganisationAddSearch';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const StakeholderOrganisationDetailsForm = React.forwardRef((props, ref) => {\r\n\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [open, setOpen] = React.useState(false);\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OrganisationID\", value)\r\n }} autoFetchData={false} selection={props.selection} SDFID={props.SDFID} isLinkSearch={true}\r\n IsExternal={props.IsExternal}\r\n />\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import { withRouter } from 'react-router-dom';\r\nimport React, { Component } from \"react\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport { StakeholderOrganisationDetailsForm } from './StakeholderOrganisationDetailsForm';\r\nimport FormDialog from \"../../etqa/FormDialog\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'OrganisationName', numeric: false, disablePadding: true, label: 'Organisation Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' },\r\n { id: 'Document', numeric: false, disablePadding: true, label: 'Document', contentType: 'document' },\r\n];\r\n\r\nclass StakeholderOrganisations extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n Id: this.props.location.state.selection\r\n },\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: [{ Name: \"StakeholderID\", Value: this.props.location.state.StakeholderID }],\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"Remove Organisation\",\r\n promptContent: \"Are you sure you want to remove this Organisation?\",\r\n promptFinishOpen: false,\r\n promptFinishTitle: \"Finalize Application\",\r\n promptFinishContent: \"A pending login status indicated that the SETA needs to accept your registration before you are granted access to an organizations workplace skills plan.\",\r\n showTable: true,\r\n StakeholderID: this.props.location.state.StakeholderID,\r\n IsExternal: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.IsExternal)) ? this.props.location.state.IsExternal : false,\r\n IsDashboard: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.IsDashboard)) ? this.props.location.state.IsDashboard : false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', visible: !this.state.IsExternal, icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add Request', icon: 'AddIcon', visible: this.state.IsExternal || this.props.menuPermissionItem.Add },\r\n { id: 'remove', label: '', tooltip: 'Remove Request', disabled: utils.isNull(this.state.selectedId), icon: 'DeleteIcon', visible: this.state.IsExternal || this.props.menuPermissionItem.Delete },\r\n { id: 'finish', label: 'Finish', tooltip: 'Finalize Application', visible: this.state.IsExternal }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n\r\n }\r\n else if (buttonId === \"close\") {\r\n let Url = \"/stakeholder\";\r\n if (this.state.IsExternal) { Url = \"/stakeholderRegistrationForm\"; }\r\n if (this.state.IsDashboard) { Url = \"/stakeholderdashboard\"; }\r\n this.props.history.push({\r\n pathname: Url,\r\n state: { selection: this.props.location.state.StakeholderID }\r\n })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else if (\"finish\" === buttonId) {\r\n this.setState({ promptFinishOpen: true })\r\n }\r\n else {\r\n }\r\n }\r\n\r\n Finalize() {\r\n this.setState({ promptFinishOpen: false })\r\n this.props.history.push({\r\n\r\n pathname: \"/login\",\r\n state: { selection: null }\r\n })\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let newsearchParameters = [...this.state.searchParameters];\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n });\r\n }\r\n\r\n FileDownload = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n //console.log(headCell);\r\n utils.invokeUrl(this.props.location.state.LookupUrl + \"downloaddocument?id=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false });\r\n } else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n showTable: false,\r\n clearSelectedRow: true\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n clearSelectedRow: true\r\n })\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedId: null,\r\n clearSelectedRow: true\r\n })\r\n }\r\n }\r\n\r\n remove(url) {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedId}`;\r\n if (this.state.IsExternal) {\r\n utils.invokeUrlDeleteExternal(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n else {\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null })\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedId: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(),\r\n clearSelectedRow: true\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.IsExternal ? : null}\r\n

\r\n {\"Stakeholder Details > Organisations Details > \" + (this.props.location.state.stakeholderName !== null ? this.props.location.state.stakeholderName + \" - \" + this.props.location.state.IDNo : \"\")}\r\n

\r\n\r\n \r\n\r\n
\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n {this.state.showTable === true && (\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl={this.props.location.state.LookupUrl + \"GetStakeholderOrganisation\"}\r\n searchParameters={this.state.searchParameters}\r\n onCellSelectionChange={(rowid, headCell) => { this.FileDownload(rowid, headCell) }}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n paged={true}\r\n checkRefreshToken={!this.state.IsExternal}\r\n />\r\n )}\r\n
\r\n\r\n this.postAddHandler(cancel, save)}\r\n IsExternal={this.state.IsExternal}\r\n >\r\n this.handleFormValueChange(values)} open={this.state.addDialogOpen} StakeholderID={this.props.location.state.StakeholderID}\r\n LookupUrl={this.props.location.state.LookupUrl}\r\n IsExternal={this.state.IsExternal}\r\n />\r\n \r\n\r\n { this.remove(this.props.location.state.LookupUrl + \"RemoveStakeholderOrganisation\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n { this.Finalize() }}\r\n okPrompt={true}\r\n />\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(StakeholderOrganisations));","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nexport const OrganisationContactForm = React.forwardRef((props, ref) => {\r\n\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const utils = new ViewUtils();\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport FormDialog from \"../../etqa/FormDialog\";\r\nimport { OrganisationContactForm } from \"./OrganisationContactForm\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst headCells = [\r\n { id: 'Title', numeric: false, disablePadding: true, label: 'Title' },\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'Designation', numeric: false, disablePadding: true, label: 'Designation' },\r\n { id: 'TelephoneNumber', numeric: false, disablePadding: true, label: 'Telephone Number' },\r\n { id: 'CellPhoneNumber', numeric: false, disablePadding: true, label: 'CellPhone Number' },\r\n { id: 'FaxNumber', numeric: false, disablePadding: true, label: 'Fax Number' },\r\n { id: 'EMail', numeric: false, disablePadding: true, label: 'EMail' }\r\n\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass DGOrganisationContact extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n promptOpen: false,\r\n promptTitle: \"Remove contact from Organisation\",\r\n promptContent: \"Are you sure you want to remove this contact from the Organisation?\",\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: \"CloseIcon\" }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: 'Add Contact', tooltip: 'Add contact to Organisation', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: 'Edit Contact', tooltip: 'Edit contact on Organisation', icon: 'EditIcon', disabled: utils.isNull(this.state.selectedContact), visible: this.props.menuPermissionItem.Edit },\r\n { id: 'remove', label: 'Remove Contact', tooltip: 'Remove contact from Organisation', disabled: utils.isNull(this.state.selectedContact), icon: \"Delete\", visible: this.props.menuPermissionItem.Delete}\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ addDialogOpen: true, Message: \"\" })\r\n }\r\n else if (\"edit\" === buttonId) {\r\n this.setState({ editDialogOpen: true, Message: \"\" })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n Message: \"Organisation Contact successfully saved\",\r\n MessageStyle: \"success\"\r\n });\r\n\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n Message: \"\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n Message: \"A system error has occured, please try again later or contact your administrator\",\r\n MessageStyle: \"warning\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedContact: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedContact: null, Message: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulContactRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedContact: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulContactRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeContact(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedContact}&OrganisationID=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulContactRemoveCallback, this.unsuccessfulContactRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"DG Organisation > Contacts \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n \r\n \r\n\r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n \r\n \r\n\r\n { this.removeContact(\"api/sims/dgorganisationcontact/RemoveOrganisationContact\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(DGOrganisationContact));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function DGDocumentsUploadSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const DGDocumentUploadsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [docName, setDocName] = React.useState('');\r\n\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n
\r\n
\r\n
\r\n {docName != '' ? docName : ''}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport { DGDocumentUploadsForm } from './DGDocumentUploadsForm';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function DGDocumentUploadsDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [AddDiasbaled, setAddDiasbaled] = React.useState(true);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n const handleClose = (cancel, save,response) => {\r\n setFilename(\"\");\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const add = () => {\r\n let formValue = formRef.current.getValue();\r\n formValue.Document = {};\r\n formValue.Document.Name = filename;\r\n formValue.Document.size = size;\r\n formValue.Document.type = type;\r\n formValue.Document.base64 = base64;\r\n formValue.OrganisationID = props.OrganisationID;\r\n formValue.DGDocumentTypeID = props.docID;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const url = `api/sims/dgdocumentupload/adddgdocument`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n setAddDiasbaled(false);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n

\r\n Upload {props.docType} \r\n

\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport DGDocumentsUploadSearchForm from './DGDocumentUploadsSearchForm'\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport DGDocumentUploadsDialog from './DGDocumentUploadsDialog';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' },\r\n { id: 'Comment', numeric: false, disablePadding: true, label: 'Comment' },\r\n { id: 'DocumentType', numeric: false, disablePadding: true, label: 'Document Type' },\r\n { id: 'Document', numeric: false, disablePadding: true, label: 'Document', contentType: 'document' },\r\n { id: 'UploadedBy', numeric: false, disablePadding: true, label: 'Uploaded By' },\r\n { id: 'UploadDate', numeric: false, disablePadding: true, label: 'Upload Date' }\r\n\r\n];\r\n\r\nclass DGDocumentsUpload extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n FinancialYearID: null,\r\n Id: this.props.location.state.selection\r\n },\r\n addDialogOpen: false,\r\n selectedDocument: null,\r\n promptOpen: false,\r\n promptTitle: \"Remove Document\",\r\n promptContent: \"Are you sure you want to remove this Document?\",\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }, { Name: \"DGDocumentTypeID\", Value: 0 }],\r\n DGDocumentTypeID: null,\r\n DocumentDescription: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: \"CloseIcon\" }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', disabled: utils.isNull(this.state.DocumentRelatesID), icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'remove', label: '', tooltip: 'Remove Document', disabled: utils.isNull(this.state.selectedContact), icon: 'DeleteIcon', visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n\r\n } else if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: \"/DGOrganisation\",\r\n state: { selection: this.props.location.state.organisationID }\r\n })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else {\r\n // this.setState({ editDialogOpen: true });\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let DGDocumentTypeID = values.DocumentType.Id;\r\n let DocumentDesc = values.DocumentType.Description;\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = DGDocumentTypeID\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n DGDocumentTypeID: DGDocumentTypeID,\r\n DocumentDescription: DocumentDesc\r\n });\r\n toolbarRef.current.setButtonDisabled(\"add\", DGDocumentTypeID === null || DGDocumentTypeID.length === 0);\r\n }\r\n\r\n FileDownload = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/DGDocumentUpload/downloaddocument?id=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedDocument: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedDocument: null, Message: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n selectedDocument: null,\r\n Message: response.Message,\r\n MessageStyle: \"success\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n selectedDocument: null,\r\n Message: response.Message,\r\n MessageStyle: \"warning\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedDocument: null\r\n })\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n\r\n\r\n successfulDocumentRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedDocument: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulDocumentRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n remove(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedDocument}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulDocumentRemoveCallback, this.unsuccessfulDocumentRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedDocument: null })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"DG Organisation > Document Uploads \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n < DGDocumentsUploadSearchForm\r\n // data={this.state.model}\r\n valueChangeHandler={(values) => this.handleFormValueChange(values)}\r\n />\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/DGDocumentUpload/GetSearch\"\r\n searchParameters={this.state.searchParameters}\r\n onCellSelectionChange={(rowid, headCell) => { this.FileDownload(rowid, headCell) }}\r\n paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n OrganisationID={this.props.location.state.organisationID}\r\n />\r\n\r\n { this.remove(\"api/sims/DGDocumentUpload/RemoveDGDocument\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(DGDocumentsUpload));\r\n","\r\nimport React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst OrganisationStakeholderEditForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n

\r\n {\"Organisation Stakeholder Update\"}\r\n

\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default OrganisationStakeholderEditForm;","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport EditForm from './OrganisationStakeholderEditForm';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function OrganisationStakeholderEditDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const update = () => {\r\n let formValue = formRef.current.getValue();\r\n //formValue.Id = props.Id;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const url = `api/sims/organisationStakeholder/updateorganisationStakeholder`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import { withRouter } from 'react-router-dom';\r\nimport React, { Component } from \"react\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport EditDialog from './OrganisationStakeholderEditDialog';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'Email', numeric: false, disablePadding: true, label: 'Email' },\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Stakeholder Status' },\r\n { id: 'Role', numeric: false, disablePadding: true, label: 'Stakeholder Role' },\r\n { id: 'Document', numeric: false, disablePadding: true, label: 'Document', contentType: 'document' },\r\n];\r\n\r\nclass OrganisationStakeholder extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n Id: this.props.location.state.selection\r\n },\r\n editDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }],\r\n clearSelectedRow: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'Change Role/Status', disabled: utils.isNull(this.state.selectedId), icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit },\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"edit\") {\r\n this.setState({ editDialogOpen: true });\r\n }\r\n else if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: \"/DGOrganisation\",\r\n state: { selection: this.props.location.state.organisationID }\r\n })\r\n }\r\n else {\r\n // this.setState({ editDialogOpen: true });\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let FinancialYearID = values.FinancialYear.Id;\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = FinancialYearID\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters))\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false });\r\n } else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: \"success\",\r\n clearSelectedRow: true\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n editDialogOpen: false,\r\n selectedId: null,\r\n clearSelectedRow: true\r\n })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null })\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n FileDownload = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n //console.log(headCell);\r\n utils.invokeUrl(\"api/sims/OrganisationStakeholder/downloaddocument?id=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > Stakeholder \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/OrganisationStakeholder/GetSearch\"\r\n searchParameters={this.state.searchParameters}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n onCellSelectionChange={(rowid, headCell) => { this.FileDownload(rowid, headCell) }}\r\n paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n />\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(OrganisationStakeholder));","import React from 'react';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function DocumentDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [documentRelates, setdocumentRelates] = React.useState(\"\");\r\n const [comment, setComment] = React.useState(\"\");\r\n const [selection, setSelection] = React.useState(null);\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n\r\n const handleClose = (isCancel) => {\r\n setOpen(true);\r\n setFilename(\"\");\r\n props.closeHandler(!isCancel)\r\n };\r\n\r\n\r\n const cancel = () => {\r\n handleClose(true);\r\n };\r\n\r\n const add = () => {\r\n let data = {};\r\n\r\n data.DocumentRelatesID = documentRelates;\r\n data.Comment = comment;\r\n data.EntityID = props.EntityID\r\n data.OriginalFileName = filename;\r\n data.Document = {};\r\n data.Document.name = filename;\r\n data.Document.size = size;\r\n data.Document.type = type;\r\n data.Document.base64 = base64;\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n\r\n const handleFormValueChange = (values) => {\r\n setdocumentRelates(values.DocumentRelatesID);\r\n setComment(values.Comment)\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name)\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n

\r\n New Document\r\n

\r\n\r\n\r\n
\r\n { handleFormValueChange(values) }}>\r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../etqa/crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport Comments from \"../../etqa/crm/Comments\";\r\nimport Documents from \"../../etqa/crm/Documents\";\r\nimport Emails from \"../../etqa/crm/Emails\";\r\nimport MonitoringComment from \"../../etqa/crm/MonitoringAndEvaluationComment\";\r\nimport CommentsDialog from \"../../etqa/crm/CommentsDialog\";\r\nimport DocumentsDialog from \"./DGOrganisationDocumentsDialog\";\r\nimport EmailDialog from \"../../etqa/crm/EmailDialog\";\r\nimport MonitoringComentDialog from \"../../etqa/crm/MonitoringAndEvaluationCommentDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { SearchIcon } from \"@material-ui/data-grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst config = {\r\n moduleName: \"Organisation\",\r\n\r\n dataUrls: {\r\n comments: \"api/sims/dgorganisationcrm/GetCRMComments\",\r\n documents: \"api/sims/dgorganisationcrm/GetCRMDocuments\",\r\n emails: \"api/sims/dgorganisationcrm/GetCRMEMail\",\r\n mne: \"api/sims/dgorganisationcrm/GetCRMME\"\r\n },\r\n\r\n postUrls: {\r\n comments: \"api/sims/dgorganisationcrm/AddCRMComment\",\r\n documents: \"api/sims/dgorganisationcrm/AddCRMDocument\",\r\n emails: \"api/sims/dgorganisationcrm/AddCRMEmail\",\r\n mne: \"api/sims/dgorganisationcrm/AddCRMME\"\r\n }\r\n}\r\n\r\nclass DGOrganisationCRM extends Component {\r\n\r\n state = {\r\n CommunicationType: \"1\",\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: false,\r\n\r\n // handling email Search\r\n emailAddress: '',\r\n emailSubject: '',\r\n },\r\n model: {}\r\n }\r\n search() {\r\n alert(\"Search Button Clicke\")\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: true,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"2\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: true,\r\n monitoringComentDialogDialogOpen: false,\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: true,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"5\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: true,\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n postAddHandler(submitted) {\r\n if (this.state.CommunicationType === \"1\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: submitted,\r\n emailsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: false,\r\n documentsDialogOpen: false\r\n }\r\n })\r\n }\r\n else if (this.state.CommunicationType === \"3\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: submitted,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: false,\r\n }\r\n })\r\n } else if (this.state.CommunicationType === \"5\") {\r\n this.setState({\r\n dialogues: {\r\n commentsDialogOpen: false,\r\n emailsDialogOpen: false,\r\n documentsDialogOpen: false,\r\n monitoringComentDialogDialogOpen: submitted\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n FileDownload = (rowid, headCell, section) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/dgorganisationcrm/DownloadCRM\" + section + \"?documentID=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n postUploadHandler(save, cancel) {\r\n //Successful upload\r\n if (save === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Close dialog\r\n else if (cancel === true) {\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n //Error on upload\r\n else {\r\n //TODO: set message that gets displayed to user after closing the dialog\r\n this.setState({ dialogues: { commentsDialogOpen: false, emailsDialogOpen: false, documentsDialogOpen: false } })\r\n }\r\n }\r\n\r\n\r\n SetCommunicationType(values) {\r\n if (!utils.isNull(values) && !utils.isNull(values.CommunicationType)) {\r\n let type = values.CommunicationType.Id;\r\n\r\n if (type !== this.state.CommunicationType) {\r\n this.setState({ CommunicationType: type });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n
\r\n

\r\n {\"DG Organisation > CRM \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n {\r\n !utils.isStringEmpty(this.props.saveMessage) ?\r\n

\r\n {this.props.saveMessage}\r\n

\r\n :\r\n \"\"\r\n }\r\n\r\n { this.SetCommunicationType(values) }}>\r\n {form =>\r\n\r\n\r\n
\r\n \r\n \r\n \r\n {this.state.CommunicationType === \"3\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Email'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n
\r\n\r\n {this.setState({_emailSubject: e.target.value})}}\r\n placeholder={'Subject'}\r\n multiline\r\n form={form}\r\n variant=\"outlined\" />\r\n
\r\n
\r\n {\r\n // Please leave it like this, i had to make sure state are updated\r\n let email = document.getElementById('emailAddress').value\r\n let subject = document.getElementById('emailSubject').value\r\n this.setState({ emailAddress: email, emailSubject: subject }, () => {\r\n this.setState({ emailAddress: email, emailSubject: subject })\r\n })\r\n\r\n }}\r\n aria-label=\"search\">\r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n\r\n {\r\n this.state.CommunicationType === \"1\" ?\r\n
\r\n

\r\n Comments\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Organisation Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add a comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n
\r\n {\r\n this.state.CommunicationType === \"2\" ?\r\n
\r\n

\r\n Documents\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Organisation Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"Document\")} documentsDataUrl={config.dataUrls.documents} moduleName={config.moduleName} selection={this.props.location.state.organisationID} IsSkills={ true } />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"3\" ?\r\n
\r\n

\r\n Emails\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Organisation Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Send Email', icon: 'EmailIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n this.FileDownload(rowid, headCell, \"EmailDocument\")}\r\n emailsDataUrl={config.dataUrls.emails}\r\n moduleName={config.moduleName}\r\n selection={this.props.location.state.organisationID}\r\n Email={this.state.emailAddress}\r\n Subject={this.state.emailSubject}\r\n />\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.CommunicationType === \"5\" ?\r\n
\r\n

\r\n Monitoring and Evaluation\r\n

\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={{\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: '', tooltip: 'Back to Organisation Details', icon: 'CloseIcon' },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add Monitoring and Evaluation comment', icon: 'AddCommentIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }} />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n
\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.comments}\r\n EntityID={this.props.location.state.organisationID} />\r\n this.postUploadHandler(save, cancel)}\r\n postUrl={config.postUrls.documents}\r\n EntityID={this.props.location.state.organisationID}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.emails}\r\n EntityID={this.props.location.state.organisationID}\r\n />\r\n this.postAddHandler(added)}\r\n postUrl={config.postUrls.mne}\r\n EntityID={this.props.location.state.organisationID}\r\n />\r\n
\r\n }\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(DGOrganisationCRM));\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { AddressCodeItem } from '../../widgets/AddressCodeItem';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { GPSCoordinatesAPI } from '../../widgets/GPSCoordinatesAPI';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const OrganisationDetailsForm = React.forwardRef((props, ref) => {\r\n\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [selectedValue, showField] = React.useState(null);\r\n const [postalCodeValue, setPostalCodeValue] = React.useState(null);\r\n const [physicalCodeValue, setPhysicalCodeValue] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleUsePhysicalAddressForPostal = form => event => {\r\n\r\n\r\n if (event.target.checked === true) {\r\n form.values['PostalAddressLine1'] = form.values[\"PhysicalAddress1\"];\r\n form.values['PostalAddressLine2'] = form.values[\"PhysicalAddress2\"];\r\n form.values['PostalAddressLine3'] = form.values[\"PhysicalAddress3\"];\r\n form.values['PostalCode'] = form.values[\"PhysicalCode\"];\r\n setPostalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n form.updateValue('UsePhysicalAsPostal', event.target.checked);\r\n\r\n\r\n }\r\n\r\n\r\n\r\n const updateGPSAddress = (address, form) => {\r\n console.log(address);\r\n form.values[\"GPSCoordinates\"] = address.gpscoordinates.coordinate;\r\n form.values[\"PhysicalAddress1\"] = address.streetnumberpar + ' ' + address.routepar;\r\n form.values[\"PhysicalAddress2\"] = address.sublocalitylevel1par;\r\n form.values[\"PhysicalAddress3\"] = address.localitypar;\r\n form.values[\"PhysicalCode\"] = address.postalcodepar;\r\n setPhysicalCodeValue(form.values[\"PhysicalCode\"]);\r\n }\r\n\r\n\r\n\r\n\r\n function checkValue(value) {\r\n\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return false\r\n }\r\n else {\r\n return true\r\n }\r\n } else {\r\n return true\r\n }\r\n }\r\n\r\n function ConfirmDetailsDisableCheck(value) {\r\n\r\n if (value !== undefined && value !== null) {\r\n if (value === true) {\r\n return true\r\n }\r\n else if (value !== true) {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n {/* */}\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport \"./Organisation.css\";\r\nimport { OrganisationDetailsForm } from './OrganisationDetailsForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst formRef = React.createRef();\r\n\r\n\r\nclass Organisation extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n };\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.menuPermissionItem.Edit : this.props.menuPermissionItem.Add },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'contact', label: 'Contact', tooltip: 'Contact', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/skillsOrganisationContacts').View },\r\n { id: 'bankingDetails', label: 'Bank Details', tooltip: 'Bank Details', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/skillsOrganisationBankingDetails').View },\r\n { id: 'childOrganisations', label: 'Link Organisations', tooltip: 'Link Organisations', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/skillsChildOrganisationSearch').View },\r\n\r\n { id: \"trainingcommittee\", description: \"Training Commitee / Union\", label: 'Training Commitee / Union', tooltip: 'Training Commitee / Unions', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/skillsTrainingCommittee').View },\r\n\r\n { id: 'CFODetails', label: 'CFO Details', tooltip: 'CFO Details', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/skillsOrganisationCFODetails').View },\r\n\r\n { id: 'forms', label: 'WSP & ATR Forms', tooltip: 'WSP/ATR Forms', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/WspAtrDashboard').View },\r\n { id: 'documentsUpload', label: 'WSP/ATR Document Uploads', tooltip: 'WSP/ATR Document Uploads', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/WspAtrDocumentsUpload').View },\r\n { id: 'sdfstatus', label: 'SDF', tooltip: 'SDF', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/skillsOrganisationSDF').View },\r\n \r\n { id: 'grants', label: 'Grants & Levies', tooltip: 'Grants & Levies', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/skillsOrganisationLevies').View },\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relationship Management', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/OrganisationCRM').View },\r\n { id: \"intersetatransfer\", label: \"Inter Seta Transfer\", tooltip: 'Inter Seta Transfer', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/skillsOrganisationInterSetaTransfer').View },\r\n { id: 'extension', label: 'Request Extension ', tooltip: 'WSP/ATR Request Extension', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/WspAtrExtensionRequest').View },\r\n { id: 'apeal', label: 'Lodge Appeal', tooltip: 'WSP/ATR Lodge Appeal', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/WspAtrLodgeApeal').View },\r\n { id: 'letter', label: 'SDF Compliance Letter', tooltip: 'SDF Compliance Letter', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/skillsOrganisationLetter').View },\r\n { id: 'stackholderfeedback', label: 'Stakeholder Feedback', tooltip: 'Stakeholder Feedback ', disabled: utils.isNull(this.state.id), visible: this.props.onMenuSpecificPermissionItem('/StackhoderFeedback').View }\r\n\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n organisationDetails: {\r\n LegalName: values.LegalName,\r\n SDLNumber: values.SDLNumber\r\n }\r\n });\r\n if (this.props.location.state.isDashboard) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisationSDF',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"contact\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisationContacts',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n } else if (\"bankingDetails\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisationBankingDetails',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n });\r\n } else if (\"childOrganisations\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsChildOrganisationSearch',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n } else if (\"CFODetails\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisationCFODetails',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n } else if (\"forms\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/WspAtrDashboard\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n } else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/OrganisationCRM\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"linkedOrganisations\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/LinkedOrganisations\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n } else if (\"documentsUpload\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/WspAtrDocumentsUpload\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"sdfstatus\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisationSDF\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"grants\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisationLevies\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"intersetatransfer\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisationInterSetaTransfer\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"letter\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisationLetter\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"trainingcommittee\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/skillsTrainingCommittee\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n }\r\n\r\n else if (\"stackholderfeedback\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/StackhoderFeedback\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"extension\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/WspAtrExtensionRequest\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n }\r\n else if (\"apeal\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/WspAtrLodgeApeal\",\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName,\r\n sdlnumber: this.state.organisationDetails.SDLNumber\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n if (\"trainingcommittee\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/skillsTrainingCommitteeSearch',\r\n state: {\r\n organisationID: this.state.id,\r\n organisationName: this.state.organisationDetails.LegalName\r\n }\r\n })\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = formRef.current.getValue();\r\n \r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n console.log(formValue);\r\n if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n const url = `api/sims/skillsorganisationdetails/addorganisation`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n } else {\r\n const url = `api/sims/skillsorganisationdetails/updateorganisation`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisationSearch',\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation \" + (this.state.organisationDetails.LegalName !== null ? \"> \" + this.state.organisationDetails.LegalName + (this.state.organisationDetails.SDLNumber !== null ? \" - \" + this.state.organisationDetails.SDLNumber : \"\") : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)}\r\n enabled={true}\r\n config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(Organisation));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport OrganisationSearchForm from './OrganisationSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nclass OrganisationSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n \r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Delete\", icon: \"Delete\", disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n this.searchParameters = !utils.isNull(this.props.OrganisationID) ?\r\n [\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" },\r\n { Name: \"OrganisationID\", Value: this.props.OrganisationID },\r\n ]\r\n :\r\n [\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" },\r\n \r\n ]\r\n\r\n this.headCells = this.props.isLinkSearch ? \r\n [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Legal Name' },\r\n { id: 'TradeName', numeric: false, disablePadding: true, label: 'Trade Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n ]\r\n :\r\n [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Legal Name' },\r\n { id: 'TradeName', numeric: false, disablePadding: true, label: 'Trade Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n \r\n ]\r\n\r\n let model = !utils.isNull(this.props.OrganisationID) ?\r\n {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n TradeName: \"\",\r\n OrganisationID: this.props.OrganisationID\r\n }\r\n :\r\n {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n TradeName: \"\",\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedOrganisation: null,\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedOrganisation: selection })\r\n } else {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Organisation\"}\r\n promptContent={\"Are you sure you want to remove this organisation?\"}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(OrganisationSearch));","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nexport const OrganisationContactForm = React.forwardRef((props, ref) => {\r\n\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const utils = new ViewUtils();\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport FormDialog from \"../../etqa/FormDialog\";\r\nimport { OrganisationContactForm } from \"./OrganisationContactForm\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst headCells = [\r\n { id: 'Title', numeric: false, disablePadding: true, label: 'Title' },\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'Designation', numeric: false, disablePadding: true, label: 'Designation' },\r\n { id: 'TelephoneNumber', numeric: false, disablePadding: true, label: 'Telephone Number' },\r\n { id: 'CellPhoneNumber', numeric: false, disablePadding: true, label: 'CellPhone Number' },\r\n { id: 'FaxNumber', numeric: false, disablePadding: true, label: 'Fax Number' },\r\n { id: 'EMail', numeric: false, disablePadding: true, label: 'EMail' }\r\n\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass OrganisationContact extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n promptOpen: false,\r\n promptTitle: \"Remove contact from Organisation\",\r\n promptContent: \"Are you sure you want to remove this contact from the Organisation?\",\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: 'Add Contact', tooltip: 'Add contact to Organisation', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: 'Edit Contact', tooltip: 'Edit contact on Organisation', icon: 'EditIcon', disabled: utils.isNull(this.state.selectedContact), visible: this.props.menuPermissionItem.Edit },\r\n { id: 'remove', label: 'Remove Contact', tooltip: 'Remove contact from Organisation', disabled: utils.isNull(this.state.selectedContact), icon: \"Delete\", visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ addDialogOpen: true, Message: \"\" })\r\n }\r\n else if (\"edit\" === buttonId) {\r\n this.setState({ editDialogOpen: true, Message: \"\" })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n Message: \"Organisation Contact successfully saved\",\r\n MessageStyle: \"success\"\r\n });\r\n\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n Message: \"\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n Message: \"A system error has occured, please try again later or contact your administrator\",\r\n MessageStyle: \"warning\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedContact: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedContact: null, Message: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulContactRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedContact: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulContactRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeContact(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedContact}&OrganisationID=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulContactRemoveCallback, this.unsuccessfulContactRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > Contacts \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n \r\n \r\n\r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n \r\n \r\n\r\n { this.removeContact(\"api/sims/skillsorganisationcontact/RemoveOrganisationContact\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(OrganisationContact));\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport DocumentUpload from \"../../widgets/DocumentUpload\";\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const OrganisationBankingDetailsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [Bankfilename, setBankFilename] = React.useState(\"\");\r\n const [Regfilename, setRegFilename] = React.useState(\"\");\r\n const [Refresh, setRefresh] = React.useState(null);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n function ConfirmDetailsDisableCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value === true) {\r\n return true\r\n }\r\n else if (value !== true) {\r\n return false\r\n }\r\n }\r\n };\r\n\r\n function DocRequiredCheck (value){\r\n if (value !== undefined && value !== null && value !== \"\") {\r\n return false\r\n }\r\n else if (value === undefined || value === null || value === \"\") {\r\n return true\r\n }\r\n };\r\n\r\n function FileDownload(id, DocumentType) {\r\n utils.invokeUrl(\"api/sims/organisationbankdetail/Download\" + DocumentType + \"Document?id=\" + id, (response) => {\r\n\r\n var blob = new Blob([base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n };\r\n\r\n function base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n const onBankUploadHandler = (data) => {\r\n if (data) {\r\n setBankFilename(data.name);\r\n }\r\n };\r\n\r\n const onRegUploadHandler = (data) => {\r\n if (data) {\r\n setRegFilename(data.name);\r\n }\r\n };\r\n\r\n const dataArrivedHandler = (values) => {\r\n \r\n if (!utils.isNull(props.dataArrivedHandler)) {\r\n props.dataArrivedHandler(values);\r\n }\r\n\r\n if (!DocRequiredCheck(values.BankDetailsDocumentName)) {\r\n ref.current.setValue(\"BankDetailDocument\", { Base64 : \"\"});\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {form.values[\"BankDetailsDocumentName\"] !== \"\" && !utils.isNull(form.values[\"BankDetailsDocumentName\"]) ?\r\n \r\n :\r\n \r\n }\r\n\r\n {form.values[\"BankDetailsRegCertDocumentName\"] !== \"\" && !utils.isNull(form.values[\"BankDetailsRegCertDocumentName\"]) ?\r\n \r\n :\r\n \r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n FileDownload(props.id, \"BankDetails\")} >Download Bank Details\r\n \r\n  \r\n \r\n FileDownload(props.id, \"RegistrationCertificate\")} >Download Registration Certificate\r\n \r\n  \r\n
\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Organisation.css\";\r\nimport { OrganisationBankingDetailsForm } from './OrganisationBankDetailsForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst formRef = React.createRef();\r\n\r\nclass OrganisationBankingDetails extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n counter: 0\r\n };\r\n\r\n toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: utils.isNull(this.state.id) ? this.props.menuPermissionItem.Edit : this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n save = () => {\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n formValue.OrganisationID = this.state.organisationID;\r\n\r\n if (isAdd) {\r\n const url = `api/sims/organisationbankdetail/addbankdetail`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n this.setState({ id: response.EntityId });\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n response.MessageType === \"ERROR\" ? this.errorCallback(response) : this.successCallback(response);\r\n }, this.errorCallback);\r\n } else {\r\n const url = `api/sims/organisationbankdetail/updatebankdetail`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n this.setState({ id: response.EntityId});\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n response.MessageType === \"ERROR\" ? this.errorCallback(response) : this.successCallback(response);\r\n }, this.errorCallback);\r\n }\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({\r\n message: response.Message, messageStyle: response.MessageType, counter: this.state.counter + 1\r\n });\r\n\r\n }\r\n errorCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: { \r\n values\r\n },\r\n });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {\"Organisation > Banking Details \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)} refreshId={this.state.refreshId} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(OrganisationBankingDetails));","import React from 'react';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport OrganisationSearch from './OrganisationSearch';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const LinkOrganisationForm = React.forwardRef((props, ref) => {\r\n\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [open, setOpen] = React.useState(false);\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n {!props.endlink ?\r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n \r\n {!props.endlink ?\r\n \r\n\r\n : null\r\n }\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ChildOrganisationID\", value)\r\n }} autoFetchData={false} selection={props.selection} OrganisationID={props.ParentOrganisationId} isLinkSearch={true} />\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Organisation.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport OrganisationSearchForm from './OrganisationSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport { LinkOrganisationForm } from './LinkOrganisationForm';\r\nimport FormDialog from \"../../etqa/FormDialog\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst headCells = [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'LegalName' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: 'LinkStartDate', numeric: false, disablePadding: true, label: 'Link Start Date' },\r\n { id: 'LinkEndDate', numeric: false, disablePadding: true, label: 'Link End Date' },\r\n { id: 'NumberOfEmployees', numeric: true, disablePadding: true, label: 'Number Of Employees' },\r\n { id: 'Document', numeric: false, disablePadding: true, label: 'Document', contentType: 'document' }\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\nconst editFormRef = React.createRef();\r\nconst endLinkFormRef = React.createRef();\r\n\r\nclass ChildOrganisationSearch extends Component {\r\n\r\n\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n let searchParameters =\r\n [\r\n\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" },\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"OrganisationID\", Value: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null }\r\n\r\n ]\r\n\r\n this.state = {\r\n model: {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n TradeName: \"\",\r\n OrganisationID: this.props.location.state.organisationID\r\n },\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n endLinkDialogOpen: false,\r\n selectedOrganisation: null,\r\n LinkOrganisationDialog: false,\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n keyUpSwitch: false,\r\n searchParameters: searchParameters,\r\n showTable: true,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n organisationName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationName)) ? this.props.location.state.organisationName : null,\r\n sdlnumber: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.sdlnumber)) ? this.props.location.state.sdlnumber : null,\r\n\r\n };\r\n\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'link', label: '', tooltip: 'Link Organisation', icon: 'LinkIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: 'delink', label: '', tooltip: 'End/Remove Link', icon: 'LinkOffIcon', disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedOrganisation: selection[0].Id })\r\n } else {\r\n this.setState({ selectedOrganisation: null })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n\r\n if (buttonId === \"edit\") {\r\n this.setState({ editDialogOpen: true, Message: \"\", LinkOrganisationDialog: false })\r\n } else if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisation',\r\n state: { selection: this.state.organisationID }\r\n });\r\n }\r\n else if (buttonId === \"link\") {\r\n this.setState({ addDialogOpen: true, Message: \"\", LinkOrganisationDialog: true })\r\n\r\n }\r\n else if (buttonId === \"delink\") {\r\n this.setState({ endLinkDialogOpen: true, Message: \"\", LinkOrganisationDialog: false })\r\n\r\n }\r\n }\r\n\r\n FileDownload = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/skillslinkedorganisations/downloaddocument?id=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n endLinkDialogOpen: false,\r\n selectedOrganisation: null,\r\n LinkOrganisationDialog: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n showTable: false\r\n }, () => {\r\n this.setState({ showTable: true })\r\n });\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n endLinkDialogOpen: false,\r\n selectedOrganisation: null,\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n LinkOrganisationDialog: false\r\n })\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n endLinkDialogOpen: false,\r\n selectedOrganisation: null,\r\n LinkOrganisationDialog: false\r\n })\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (!utils.isNull(values)) {\r\n this.setState({ LinkOrganisation: values });\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > Link Organisations \" + (this.state.organisationName !== null ? \"> \" + this.state.organisationName + (this.state.sdlnumber !== null ? \" - \" + this.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n
\r\n\r\n \r\n\r\n {this.state.showTable === true && (\r\n { this.handleSelection(selection) }}\r\n handleCell={(rowid, headCell) => { this.FileDownload(rowid, headCell) }}\r\n >\r\n\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }} />\r\n\r\n \r\n )}\r\n\r\n\r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n this.handleFormValueChange(values)} open={this.state.LinkOrganisationDialog} ParentOrganisationId={this.state.organisationID} />\r\n\r\n\r\n\r\n \r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n this.handleFormValueChange(values)}\r\n edit={true} ParentOrganisationId={this.state.organisationID}\r\n dataURL='api/sims/skillslinkedorganisations/getfind'\r\n id={this.state.selectedOrganisation}\r\n />\r\n\r\n\r\n\r\n \r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n this.handleFormValueChange(values)}\r\n endlink={true} ParentOrganisationId={this.state.organisationID}\r\n />\r\n\r\n\r\n\r\n \r\n\r\n
\r\n\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(ChildOrganisationSearch));","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Organisation.css\";\r\nimport { OrganisationDetailsForm } from './OrganisationDetailsForm';\r\n\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'contact', label: 'Contact', tooltip: '' },\r\n { id: 'bankingDetails', label: 'Bank Details', tooltip: '' },\r\n {\r\n contextMenu: [\r\n { id: \"unions\", description: \"Unions\" },\r\n { id: \"trainingCommittee\", description: \"Training Committee\" }\r\n ],\r\n id: 'committee', label: 'Committees', width: \"100px\"\r\n },\r\n { id: 'CFODetails', label: 'CFO Details', tooltip: '' },\r\n \r\n { id: 'forms', label: 'WSP & ATR Forms', tooltip: 'WSP & ATR Forms' },\r\n { id: 'documentsUpload', label: 'Uploads', tooltip: 'WSP and Documents Upload' },\r\n { id: 'evaluation', label: 'Evaluation', tooltip: '' },\r\n { id: 'grantsAndLevies', label: 'Grants and Levies', tooltip: ''},\r\n { id: 'crm', label: 'CRM', tooltip: 'Client Relationship Management' },\r\n {id: 'letter', label: 'Letter', tooltip: 'SDF Compliance Letter'},\r\n \r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst organisationRef = React.createRef();\r\n\r\nclass ChildOrganisation extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n }\r\n };\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ organisationDetails: values });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"contact\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisationContacts',\r\n state: {\r\n // organisationID: this.props.location.state.selection,\r\n organisationName: this.state.organisationDetails.LegalName\r\n }\r\n });\r\n } else if (\"bankingDetails\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisationBankingDetails',\r\n state: {\r\n // organisationID: this.props.location.state.selection,\r\n organisationName: this.state.organisationDetails.LegalName\r\n }\r\n });\r\n } else if (\"CFODetails\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisationCFODetails',\r\n state: {\r\n // organisationID: this.props.location.state.selection,\r\n organisationName: this.state.organisationDetails.LegalName\r\n }\r\n })\r\n } else if (\"forms\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/wspAtrMain\",\r\n state: {\r\n // organisationID: this.props.location.state.selection,\r\n organisationName: this.state.organisationDetails.LegalName\r\n }\r\n })\r\n } else if (\"crm\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/OrganisationCRM\",\r\n state: {\r\n // organisationID: this.props.location.state.selection,\r\n organisationName: this.state.organisationDetails.LegalName\r\n }\r\n })\r\n }\r\n else if (\"linkedOrganisations\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/LinkedOrganisations\",\r\n state: {\r\n // organisationID: this.props.location.state.selection,\r\n organisationName: this.state.organisationDetails.LegalName\r\n }\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n if (\"trainingCommittee\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/skillsTrainingCommitteeSearch',\r\n state: {\r\n // organisationID: this.props.location.state.selection,\r\n organisationName: this.state.organisationDetails.LegalName\r\n }\r\n })\r\n } else if (\"unions\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/skillsUnion',\r\n state: {\r\n // organisationID: this.props.location.state.selection,\r\n organisationName: this.state.organisationDetails.LegalName\r\n }\r\n })\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = organisationRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n const url = `api/indicium/provider/updateProviderDetails?data=${data}`;\r\n // TODO : Invoke spinner mask\r\n fetch(url)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (response.MessageType !== \"ERROR\") {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisation',\r\n state: {\r\n organisationID: this.props.location.state.selection,\r\n organisationName: this.state.organisationDetails.LegalName\r\n }\r\n });\r\n } else {\r\n this.setState({ saveMessage: response.Message, hasSaveError: true });\r\n }\r\n }).catch(() => {\r\n this.setState({ saveMessage: \"A system error has accured. Please contact your system administrator\", hasSaveError: true });\r\n });\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisationSearch',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

\r\n {\"Organisation \" + (typeof this.props.location.state !== 'undefined' && this.props.location.state.selection !== null ? \"> \"\r\n + (this.state.organisationDetails != null ? this.state.organisationDetails.LegalName : \"\") : \"> Add Child Organisation\")}\r\n

\r\n

\r\n {this.state.message}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ChildOrganisation);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const OrganisationCFODetailsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n\r\n {form =>\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Organisation.css\";\r\nimport { OrganisationCFODetailsForm } from './OrganisationCFODetailsForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst formRef = React.createRef();\r\n\r\nconst organisationRef = React.createRef();\r\n\r\nclass OrganisationCFODetails extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null\r\n };\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ organisationDetails: values });\r\n }\r\n\r\n save(){\r\n \r\n }\r\n\r\n toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: utils.isNull(this.state.id) ? this.props.menuPermissionItem.Edit : this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n save() {\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n //if (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) {\r\n // formValue.id = this.props.location.state.selection;\r\n // isAdd = false;\r\n //}\r\n if (!utils.isNull(this.state.id)) {\r\n formValue.id = this.state.id;\r\n isAdd = false;\r\n }\r\n formValue.OrganisationID = this.state.organisationID;\r\n //let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n const url = `api/sims/organisationcfodetail/addcfodetail`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n this.setState({ id: response.EntityId });\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n } else {\r\n const url = `api/sims/organisationcfodetail/updatecfodetail`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisation',\r\n state: { selection: this.state.organisationID }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"]!==0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > CFO Details \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(OrganisationCFODetails));\r\n","import React from 'react';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\n\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const UnionForm = React.forwardRef((props, ref) => {\r\n\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {(props.addTrainingCommittee === true) ? \r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n {\r\n (props.addTrainingCommittee === true) ?\r\n :\r\n \r\n \r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport { UnionForm } from './UnionForm';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\n\r\nconst utils = new ViewUtils();\r\nexport default function UnionCreateDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [message, setMessage] = React.useState()\r\n const [messageStyle, setMessageStyle] = React.useState()\r\n const formRef = React.createRef();\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true);\r\n };\r\n\r\n const add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n if (!utils.isNull(props) && !utils.isNull(props.id)) {\r\n formValue.id = props.id;\r\n isAdd = false;\r\n }\r\n let data = JSON.stringify(formValue);\r\n if (isAdd) {\r\n console.log(data);\r\n const url = `api/sims/TrainingCommittee/SaveTrainingCommittee`;\r\n utils.saveForm(data, url, (response)=>{\r\n setMessageStyle(\"SUCCESS\" );\r\n setMessage(\"Added contact successfully!\" );\r\n alert(\"SUCCESS\", response);\r\n\r\n }, ()=>{setMessage(\"Added contact failed!\" );});\r\n }\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n \r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n

\r\n Create\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport { UnionForm } from './UnionForm';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\n\r\nexport default function UnionEditDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const formRef = React.createRef();\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true);\r\n };\r\n\r\n const add = () => {\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n const url = `api/indicium/organisation/save?data=${data}`;\r\n //Todo: fetch(url).then blah blah blah\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n console.log(props.addTrainingCommittee)\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n

\r\n Edit\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Organisation.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedTable from '../../widgets/Table';\r\nimport UnionCreateDialog from \"./UnionCreateDialog\";\r\nimport UnionEditDialog from \"./UnionEditDialog\";\r\n\r\n\r\nconst headCells= [\r\n { id: 'Name', numeric: false, disablePadding: true, label: 'Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'JobTitle', numeric: false, disablePadding: true, label: 'Job Title' },\r\n { id: 'Designation', numeric: false, disablePadding: true, label: 'Training Committee Designation(Employer/Union Representative)' },\r\n]\r\nclass TrainingCommitteeSearchRecord extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: { \r\n },\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n \r\n toolbarConfig: {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'close', label: 'Close', tooltip:'Close'},\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' }\r\n ]\r\n }\r\n ]\r\n },\r\n \r\n }\r\n\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n } else if (buttonId === \"close\") {\r\n this.close();\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.setState({ editDialogOpen: true });\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisation\",\r\n // state: { selection: this.props.location.state.organisationID }\r\n })\r\n }\r\n\r\n render() {\r\n return (\r\n Training Committee >\" + (this.props.location.state.organisationName !== null ? this.props.location.state.organisationName : \"> Add\")}>\r\n \r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={this.state.toolbarConfig} />\r\n this.setState({ selection: selection })}\r\n dataUrl=\"api/indicium/provider/searchContacts\" searchParameters={[{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }]} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(TrainingCommitteeSearchRecord)\r\n);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const TrainingCommitteeForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport FormDialog from \"../../etqa/FormDialog\";\r\nimport { TrainingCommitteeForm } from \"./TrainingCommitteeForm\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst headCells = [\r\n { id: 'Title', numeric: false, disablePadding: true, label: 'Title' },\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'IDNumber', numeric: false, disablePadding: true, label: 'ID Number' },\r\n { id: 'Initials', numeric: false, disablePadding: true, label: 'Initials' },\r\n { id: 'Designation', numeric: false, disablePadding: true, label: 'Designation' },\r\n { id: 'TelephoneNumber', numeric: false, disablePadding: true, label: 'Telephone Number' },\r\n { id: 'CellPhoneNumber', numeric: false, disablePadding: true, label: 'CellPhone Number' },\r\n { id: 'FaxNumber', numeric: false, disablePadding: true, label: 'Fax Number' },\r\n { id: 'EMail', numeric: false, disablePadding: true, label: 'EMail' },\r\n { id: 'NameOfUnion', numeric: false, disablePadding: true, label: 'NameOfUnion' },\r\n { id: 'PositionInUnion', numeric: false, disablePadding: true, label: 'PositionInUnion' }\r\n\r\n];\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass OrganisationTrainingCommittee extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n promptOpen: false,\r\n promptTitle: \"Remove Training Committee member from Organisation\",\r\n promptContent: \"Are you sure you want to remove this Training Committee member from the Organisation?\",\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: 'Add Member', tooltip: 'Add Training Committee Member to Organisation', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: 'Edit Member', tooltip: 'Edit Training Committee Member on Organisation', icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: 'remove', label: 'Remove Member', tooltip: 'Remove Training Committee Member from Organisation', disabled: utils.isNull(this.state.selectedContact), icon: \"Delete\", visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ addDialogOpen: true, Message: \"\" })\r\n }\r\n else if (\"edit\" === buttonId) {\r\n this.setState({ editDialogOpen: true, Message: \"\" })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n Message: \"Organisation Training Committee Member successfully saved\",\r\n MessageStyle: \"success\"\r\n });\r\n\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n Message: \"\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedContact: null,\r\n Message: \"A system error has occured, please try again later or contact your administrator\",\r\n MessageStyle: \"warning\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n //console.clear();\r\n //console.log(this.props.menuPermissionItem.Add);\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedContact: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedContact: null, Message: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulContactRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedContact: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulContactRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeContact(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedContact}&OrganisationID=${this.props.location.state.selection}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulContactRemoveCallback, this.unsuccessfulContactRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > Training Committee \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n \r\n \r\n\r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n \r\n \r\n\r\n { this.removeContact(\"api/sims/trainingcommittee/RemoveTrainingCommittee\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(OrganisationTrainingCommittee));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Organisation.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/Table';\r\nimport UnionCreateDialog from \"./UnionCreateDialog\";\r\nimport UnionEditDialog from \"./UnionEditDialog\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\n\r\nconst headCells = [\r\n { id: 'NameOfUnion', numeric: false, disablePadding: true, label: 'Name of Union' },\r\n { id: 'Name', numeric: false, disablePadding: true, label: 'Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'JobTitle', numeric: false, disablePadding: true, label: 'Job Title' },\r\n { id: 'Designation', numeric: false, disablePadding: true, label: 'Union Committee Designation' },\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: \"Close\", tooltip: \"Close\" },\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nclass UnionSearchRecord extends Component {\r\n\r\n \r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n }};\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n } else if (buttonId === \"close\") {\r\n this.close();\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.setState({ editDialogOpen: true });\r\n }\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisation\",\r\n state: {selection: this.props.location.state.organisationID}\r\n })\r\n }\r\n render() {\r\n return (\r\n\r\n
\r\n

\r\n {\"Organisation > \" + this.props.location.state.organisationName + \" > Union Records\"}\r\n

\r\n\r\n \r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n config={toolbarConfig} />\r\n\r\n { this.handleSelection(selection) }}\r\n promptTitle={\"Remove Organisation\"}\r\n promptContent={\"Are you sure you want to remove this union member?\"}\r\n >\r\n \r\n {/* this.setState({ selection: selection })}\r\n dataUrl=\"/sims/TrainingCommittee/GetTrainingCommitteeByOrganisationId\" searchParameters={[{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }]} /> */}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(UnionSearchRecord)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { Link } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport Item from \"antd/lib/list/Item\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport './Style.css'\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Dashboard', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nclass WspAtrForms extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n objectProps: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.object)) ? this.props.location.state.object : null,\r\n formArray: [],\r\n FinancialYear: '',\r\n OrganisationName: '',\r\n Status: '',\r\n model: {\r\n Name: \"\",\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getForms(this.state.id)\r\n this.getFormHead(this.state.id)\r\n this.GetWSPATRFormSubmissionCheck(this.state.id)\r\n }\r\n getForms(id) {\r\n let url = \"api/sims/wspatr/GetWSPATRForms?WSPATRID=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ formArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n getFormHead(id) {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormSubmissionCheck(id) {\r\n let url = \"api/sims/wspatr/GetWSPATRFormSubmissionCheck?WSPATRID=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n CanSubmit: response.Result\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n submit(id) {\r\n let url = \"api/sims/wspatr/WSPATRSubmit?WSPATRID=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrDashboard',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber\r\n }\r\n });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n //this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n openForm(id, e) {\r\n\r\n let url = '/';\r\n switch (this.state.objectProps.DGType) {\r\n case 'Learning Programmes':\r\n url = '/dglearningProgrammeformSearch'\r\n break;\r\n default:\r\n return true;\r\n break;\r\n\r\n }\r\n\r\n this.props.history.push({\r\n pathname: url,\r\n state: { formId: id, orgId: this.props.preSelectedProp, WSPATRobject: this.state.objectProps, }\r\n });\r\n }\r\n\r\n buttonSubmitClickHandler() {\r\n this.submit();\r\n }\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const tablerows = this.state.formArray.map((item, index) => (\r\n item.URL !== \"\" ?\r\n \r\n \r\n {item.Number}\r\n \r\n {item.FormName}\r\n {item.FormDescription}\r\n {item.DueDate}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n :\r\n\r\n \r\n \r\n \r\n\r\n {item.FormDescription}\r\n\r\n \r\n\r\n \r\n\r\n \r\n ))\r\n const submitrow = this.state.CanSubmit == \"1\" ?\r\n \r\n :\r\n WSP/ATR Status : {this.state.WSPStatus};\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n WSP & ATR Forms
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {submitrow}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n #\r\n Form Name\r\n Form Description\r\n Due Date\r\n Select\r\n \r\n \r\n \r\n {tablerows}\r\n \r\n
\r\n\r\n\r\n
\r\n\r\n );\r\n }\r\n}\r\nexport default withRouter(withStyles(useStyles())(withMenuPermission(WspAtrForms)));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function OFOSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n OFO Code\r\n\t\t\t\t\t\t\t\t\r\n props.model.OFOCode = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n OFODescription\r\n\t\t\t\t\t\t\t\t\r\n props.model.OFODescription = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../../View.css\";\r\nimport \"../../../Grid.css\";\r\nimport \"../../../Form.css\";\r\nimport \"../../../App.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport OFOSearchForm from './OFOSearchForm';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport CardLayout from '../../../widgets/Card';\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"Code\", numeric: false, disablePadding: true, label: \"OFO Code\" },\r\n { id: \"Description\", numeric: false, disablePadding: true, label: \"OFO Description\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select OFO Occupation from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nclass OFOSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = !utils.isNull(this.props.WSPATRID) ?\r\n //For search of providers that can be linked to a particular entity\r\n [\r\n { Name: \"WSPATRID\", Value: this.props.WSPATRID },\r\n { Name: \"OFOCode\", Value: \"\" },\r\n { Name: \"OFODescription\", Value: \"\" }\r\n ]\r\n :\r\n //For search on the provider search screen\r\n [\r\n { Name: \"OFOCode\", Value: \"\" },\r\n { Name: \"OFODescription\", Value: \"\" }\r\n ]\r\n\r\n let model = !utils.isNull(this.props.WSPATRID) ?\r\n {\r\n OFOCode: \"\",\r\n OFODescription: \"\",\r\n WSPATRID: this.props.WSPATRID\r\n }\r\n :\r\n {\r\n OFOCode: \"\",\r\n OFODescription: \"\"\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedOFO: null,\r\n linkDialogOpen: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(OFOSearch)\r\n);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const EmploymentNumberForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={false} selection={props.selection}\r\n WSPATRID={props.WSPATRID} />\r\n \r\n  
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n Age Group\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n {\"<\"}35\r\n 35-55\r\n {\">\"}55\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport DocumentUpload from '../../../widgets/DocumentUpload';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function WSPATRBulkImportDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [AddDiasbaled, setAddDiasbaled] = React.useState(true);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n const [showReport, setShowReport] = React.useState(false);\r\n const [documentName, setDocumentName] = React.useState(\"\");\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setFilename(\"\");\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n setMessage('');\r\n setMessageStyle('');\r\n setAddDiasbaled(true);\r\n setFilename(\"\");\r\n setShowReport(false);\r\n handleClose(true, false);\r\n };\r\n\r\n const add = () => {\r\n console.log(type);\r\n let data = {};\r\n data.Document = {};\r\n data.Document.Name = filename;\r\n data.Document.size = size;\r\n data.Document.type = type;\r\n data.Document.base64 = base64;\r\n data.WSPATRID = props.WSPATRID;\r\n data.WSPATRFormsID = props.WSPATRFormsID;\r\n\r\n if (\r\n !(\r\n type === \"application/vnd.ms-excel\" ||\r\n type === \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n ) {\r\n setMessage(\"Unknown file format. Only Excel files are uploaded!\");\r\n setMessageStyle('ERROR');\r\n setAddDiasbaled(true);\r\n setFilename(\"\");\r\n return false;\r\n }\r\n const url = `api/sims/WSPATRForms2022/BulkImport`;\r\n\r\n //utils.invokeUrl(url, (response) => {\r\n // successCallback(response);\r\n //}, (response) => { error(response); },\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n\r\n const successCallback = (response) => {\r\n setMessage('Import Completed');\r\n setMessageStyle('SUCCESS');\r\n setShowReport(true);\r\n setDocumentName(response.Message);\r\n setAddDiasbaled(true);\r\n setFilename(\"\");\r\n }\r\n\r\n const error = (response) => {\r\n setMessage(response.Message);\r\n setMessageStyle(response.MessageType);\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setMessage('');\r\n setMessageStyle('');\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n setAddDiasbaled(false);\r\n }\r\n }\r\n\r\n const FileDownload = () => {\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/DownloadBulkImportTemplate?WSPATRFormsID=\" + props.WSPATRFormsID, (response) => {\r\n\r\n var blob = new Blob([base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n );\r\n };\r\n\r\n const ReportDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + documentName, (response) => {\r\n\r\n var blob = new Blob([base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n setMessage('Report Download Failed');\r\n setMessageStyle('ERROR');\r\n }\r\n );\r\n\r\n };\r\n\r\n const base64ToArrayBuffer = (base64) => {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n

\r\n {\"WSP/ATR Bulk Import\"}\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n { FileDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download template\r\n
\r\n \r\n
\r\n
\r\n {showReport? { ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{textDecoration:\"underline\"}}\r\n >Download Report: null }\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { EmploymentNumberForm } from './EmploymentNumberForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation', widthRatio: .154 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .047 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .047 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .047 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .047 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .047 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .047 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .047 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .047 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .047 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .047 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .047 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .047 },\r\n { id: 'Age1', numeric: false, disablePadding: true, label: 'Age < 35', widthRatio: .047 },\r\n { id: 'Age2', numeric: false, disablePadding: true, label: 'Age 35 - 55', widthRatio: .047 },\r\n { id: 'Age3', numeric: false, disablePadding: true, label: 'Age > 55', widthRatio: .047 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .047 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .047 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .047 }\r\n\r\n];\r\n\r\nclass EmploymentNumber extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0,\r\n Age1: 0,\r\n Age2: 0,\r\n Age3: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATREmploymentNumber`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) !=\r\n parseInt(formValue.Age1) + parseInt(formValue.Age2) + parseInt(formValue.Age3)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of males plus females does not equal the total count of Age Breakdown.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATREmploymentNumberFind?WSPATREmploymentNumberID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATREmploymentNumber`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATREmploymentNumber\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATREmploymentNumber\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(EmploymentNumber);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const EmploymentNumberSmallForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={false} selection={props.selection}\r\n WSPATRID={props.WSPATRID} />\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n Age Group\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n {\"<\"}35\r\n 35-55\r\n {\">\"}55\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { EmploymentNumberSmallForm } from './EmploymentNumberSmallForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation', widthRatio: .151 },\r\n { id: 'Province', numeric: false, disablePadding: true, label: 'Province', widthRatio: .055 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .044 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .044 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .045 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .045 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .045 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .045 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .044 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .044 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .045 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .044 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .044 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .045 },\r\n { id: 'Age1', numeric: false, disablePadding: true, label: 'Age < 35', widthRatio: .043 },\r\n { id: 'Age2', numeric: false, disablePadding: true, label: 'Age 35 - 55', widthRatio: .043 },\r\n { id: 'Age3', numeric: false, disablePadding: true, label: 'Age > 55', widthRatio: .043 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .043 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .043 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .045 }\r\n\r\n];\r\n\r\nclass EmploymentNumberSmall extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0,\r\n Age1: 0,\r\n Age2: 0,\r\n Age3: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATREmploymentNumberSmall`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) !=\r\n parseInt(formValue.Age1) + parseInt(formValue.Age2) + parseInt(formValue.Age3)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of males plus females does not equal the total count of Age Breakdown.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATREmploymentNumberSmallFind?WSPATREmploymentNumberID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATREmploymentNumberSmall`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATREmploymentNumberSmall\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATREmploymentNumberSmall\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(EmploymentNumberSmall);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const AnnualTrainingReportForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={false} selection={props.selection}\r\n WSPATRID={props.WSPATRID} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n  
\r\n\r\n \r\n \r\n\r\n \r\n Indicate the NUMBER OF EMPLOYEES trained:\r\n \r\n \r\n The levels below refer to the level of the training intervention\r\n \r\n\r\n \r\n Entry Level(NQF 1–3)\r\n Intermediate Level(NQF 4–6)\r\n Advanced Level(NQF 7–8)\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { AnnualTrainingReportForm } from './AnnualTrainingReportForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation' },\r\n { id: 'SocioEconomicStatus', numeric: false, disablePadding: true, label: 'Socio Economic Status' },\r\n { id: 'FundingMethod', numeric: false, disablePadding: true, label: 'Funding Method' },\r\n { id: 'LearningProgrammeType', numeric: false, disablePadding: true, label: 'Learning Programme Type' },\r\n { id: 'TrainingIntervention', numeric: false, disablePadding: true, label: 'Training Intervention' },\r\n { id: 'ScarceLink', numeric: false, disablePadding: true, label: 'Link to Scarce Occupation' },\r\n { id: 'EntryLevel', numeric: false, disablePadding: true, label: 'Entry Level' },\r\n { id: 'IntermediateLevel', numeric: false, disablePadding: true, label: 'Intermediate Level' },\r\n { id: 'AdvancedLevel', numeric: false, disablePadding: true, label: 'Advanced Level' },\r\n { id: 'ActualCost', numeric: false, disablePadding: true, label: 'Actual Cost' }\r\n\r\n];\r\n\r\nclass AnnualTrainingReport extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n EntryLevel: 0,\r\n IntermediateLevel: 0,\r\n AdvancedLevel: 0,\r\n ActualCost: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATRAnnualTrainingReport`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.EntryLevel) + parseInt(formValue.IntermediateLevel) + parseInt(formValue.AdvancedLevel) === 0) {\r\n ErrorMessage = \"Levels: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.EntryLevel) < 0) || (parseInt(formValue.IntermediateLevel) < 0) || (parseInt(formValue.AdvancedLevel) < 0) ||\r\n (parseFloat(formValue.ActualCost) < 0)) {\r\n ErrorMessage = \"Levels and Actual Cost: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRAnnualTrainingReportFind?WSPATRAnnualTrainingReportID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATRAnnualTrainingReport`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATRAnnualTrainingReport\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATRAnnualTrainingReport\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AnnualTrainingReport);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const ActualPivotalTrainingForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={false} selection={props.selection}\r\n WSPATRID={props.WSPATRID} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n Indicate the NUMBER OF EMPLOYEES trained:\r\n \r\n \r\n The levels below refer to the level of the training intervention\r\n \r\n\r\n \r\n Entry Level(NQF 1–3)\r\n Intermediate Level(NQF 4–6)\r\n Advanced Level(NQF 7–8)\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { ActualPivotalTrainingForm } from './ActualPivotalTrainingForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation' },\r\n { id: 'SocioEconomicStatus', numeric: false, disablePadding: true, label: 'Socio Economic Status' },\r\n { id: 'FundingMethod', numeric: false, disablePadding: true, label: 'Funding Method' },\r\n { id: 'PivotalProgrammes', numeric: false, disablePadding: true, label: 'Pivotal Programmes' },\r\n { id: 'NQFLevel', numeric: false, disablePadding: true, label: 'NQF Level' },\r\n { id: 'EntryLevel', numeric: false, disablePadding: true, label: 'Entry Level' },\r\n { id: 'IntermediateLevel', numeric: false, disablePadding: true, label: 'Intermediate Level' },\r\n { id: 'AdvancedLevel', numeric: false, disablePadding: true, label: 'Advanced Level' },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date' },\r\n { id: 'FinishDate', numeric: false, disablePadding: true, label: 'Finish Date' },\r\n { id: 'ActualCost', numeric: false, disablePadding: true, label: 'Actual Cost' }\r\n\r\n];\r\n\r\nclass ActualPivotalTraining extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n EntryLevel: 0,\r\n IntermediateLevel: 0,\r\n AdvancedLevel: 0,\r\n ActualCost: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATRActualPivotalTraining`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.EntryLevel) + parseInt(formValue.IntermediateLevel) + parseInt(formValue.AdvancedLevel) === 0) {\r\n ErrorMessage = \"Levels: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.EntryLevel) < 0) || (parseInt(formValue.IntermediateLevel) < 0) || (parseInt(formValue.AdvancedLevel) < 0) ||\r\n (parseFloat(formValue.ActualCost) < 0)) {\r\n ErrorMessage = \"Levels and Actual Cost: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRActualPivotalTrainingFind?WSPATRActualPivotalTrainingID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATRActualPivotalTraining`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATRActualPivotalTraining\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATRActualPivotalTraining\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ActualPivotalTraining);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const WorkplaceSkillsPlanForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={false} selection={props.selection}\r\n WSPATRID={props.WSPATRID} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n  
\r\n\r\n \r\n \r\n\r\n \r\n Indicate the NUMBER OF EMPLOYEES trained:\r\n \r\n \r\n The levels below refer to the level of the training intervention\r\n \r\n\r\n \r\n Entry Level(NQF 1–3)\r\n Intermediate Level(NQF 4–6)\r\n Advanced Level(NQF 7–8)\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { WorkplaceSkillsPlanForm } from './WorkplaceSkillsPlanForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation' },\r\n { id: 'SocioEconomicStatus', numeric: false, disablePadding: true, label: 'Socio Economic Status' },\r\n { id: 'FundingMethod', numeric: false, disablePadding: true, label: 'Funding Method' },\r\n { id: 'LearningProgrammeType', numeric: false, disablePadding: true, label: 'Learning Programme Type' },\r\n { id: 'TrainingIntervention', numeric: false, disablePadding: true, label: 'Training Intervention' },\r\n { id: 'ScarceLink', numeric: false, disablePadding: true, label: 'Link to Scarce Occupation' },\r\n { id: 'EntryLevel', numeric: false, disablePadding: true, label: 'Entry Level' },\r\n { id: 'IntermediateLevel', numeric: false, disablePadding: true, label: 'Intermediate Level' },\r\n { id: 'AdvancedLevel', numeric: false, disablePadding: true, label: 'Advanced Level' },\r\n { id: 'ActualCost', numeric: false, disablePadding: true, label: 'Actual Cost' }\r\n\r\n];\r\n\r\nclass WorkplaceSkillsPlan extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n EntryLevel: 0,\r\n IntermediateLevel: 0,\r\n AdvancedLevel: 0,\r\n ActualCost: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATRWorkplaceSkillsPlan`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.EntryLevel) + parseInt(formValue.IntermediateLevel) + parseInt(formValue.AdvancedLevel) === 0) {\r\n ErrorMessage = \"Levels: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.EntryLevel) < 0) || (parseInt(formValue.IntermediateLevel) < 0) || (parseInt(formValue.AdvancedLevel) < 0) ||\r\n (parseFloat(formValue.ActualCost) < 0)) {\r\n ErrorMessage = \"Levels and Actual Cost: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRWorkplaceSkillsPlanFind?WSPATRWorkplaceSkillsPlanID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATRWorkplaceSkillsPlan`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATRWorkplaceSkillsPlan\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATRWorkplaceSkillsPlan\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(WorkplaceSkillsPlan);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const QualificationProfileForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n  
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n Age Group\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n {\"<\"}35\r\n 35-55\r\n {\">\"}55\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { QualificationProfileForm } from './QualificationProfileForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'NQFLevel', numeric: false, disablePadding: true, label: 'NQFLevel', widthRatio: .154 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .047 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .047 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .047 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .047 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .047 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .047 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .047 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .047 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .047 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .047 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .047 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .047 },\r\n { id: 'Age1', numeric: false, disablePadding: true, label: 'Age < 35', widthRatio: .047 },\r\n { id: 'Age2', numeric: false, disablePadding: true, label: 'Age 35 - 55', widthRatio: .047 },\r\n { id: 'Age3', numeric: false, disablePadding: true, label: 'Age > 55', widthRatio: .047 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .047 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .047 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .047 }\r\n\r\n];\r\n\r\nclass QualificationProfile extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n NQFLevel: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0,\r\n Age1: 0,\r\n Age2: 0,\r\n Age3: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATRQualificationProfile`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) !=\r\n parseInt(formValue.Age1) + parseInt(formValue.Age2) + parseInt(formValue.Age3)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of males plus females does not equal the total count of Age Breakdown.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRQualificationProfileFind?WSPATRQualificationProfileID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATRQualificationProfile`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATRQualificationProfile\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATRQualificationProfile\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(QualificationProfile);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const PlannedPivotalTrainingForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={false} selection={props.selection}\r\n WSPATRID={props.WSPATRID} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n Indicate the NUMBER OF EMPLOYEES trained:\r\n \r\n \r\n The levels below refer to the level of the training intervention\r\n \r\n\r\n \r\n Entry Level(NQF 1–3)\r\n Intermediate Level(NQF 4–6)\r\n Advanced Level(NQF 7–8)\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { PlannedPivotalTrainingForm } from './PlannedPivotalTrainingForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation' },\r\n { id: 'SocioEconomicStatus', numeric: false, disablePadding: true, label: 'Socio Economic Status' },\r\n { id: 'FundingMethod', numeric: false, disablePadding: true, label: 'Funding Method' },\r\n { id: 'PivotalProgrammes', numeric: false, disablePadding: true, label: 'Pivotal Programmes' },\r\n { id: 'NQFLevel', numeric: false, disablePadding: true, label: 'NQF Level' },\r\n { id: 'EntryLevel', numeric: false, disablePadding: true, label: 'Entry Level' },\r\n { id: 'IntermediateLevel', numeric: false, disablePadding: true, label: 'Intermediate Level' },\r\n { id: 'AdvancedLevel', numeric: false, disablePadding: true, label: 'Advanced Level' },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date' },\r\n { id: 'FinishDate', numeric: false, disablePadding: true, label: 'Finish Date' },\r\n { id: 'ActualCost', numeric: false, disablePadding: true, label: 'Actual Cost' }\r\n\r\n];\r\n\r\nclass PlannedPivotalTraining extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n EntryLevel: 0,\r\n IntermediateLevel: 0,\r\n AdvancedLevel: 0,\r\n ActualCost: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATRPlannedPivotalTraining`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.EntryLevel) + parseInt(formValue.IntermediateLevel) + parseInt(formValue.AdvancedLevel) === 0) {\r\n ErrorMessage = \"Levels: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.EntryLevel) < 0) || (parseInt(formValue.IntermediateLevel) < 0) || (parseInt(formValue.AdvancedLevel) < 0) ||\r\n (parseFloat(formValue.ActualCost) < 0)) {\r\n ErrorMessage = \"Levels and Actual Cost: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRPlannedPivotalTrainingFind?WSPATRPlannedPivotalTrainingID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATRPlannedPivotalTraining`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATRPlannedPivotalTraining\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATRPlannedPivotalTraining\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(PlannedPivotalTraining);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const ActualBeneficiariesTrainingForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={false} selection={props.selection}\r\n WSPATRID={props.WSPATRID} />\r\n \r\n  
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { ActualBeneficiariesTrainingForm } from './ActualBeneficiariesTrainingForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'OccupationalCategory', numeric: false, disablePadding: true, label: 'Occupational Category', widthRatio: .141 },\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation', widthRatio: .154 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .047 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .047 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .047 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .047 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .047 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .047 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .047 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .047 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .047 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .047 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .047 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .047 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .047 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .047 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .047 }\r\n\r\n];\r\n\r\nclass ActualBeneficiariesTraining extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0}\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined')\r\n {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATRActualBeneficiariesTraining`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)+\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRActualBeneficiariesTrainingFind?WSPATRActualBeneficiariesTrainingID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATRActualBeneficiariesTraining`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATRActualBeneficiariesTraining\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n \r\n if (this.state.removeAll === true)\r\n {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATRActualBeneficiariesTraining\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n \r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n \r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer (base64){\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })}\r\n \r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else\r\n {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null;}\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ActualBeneficiariesTraining);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const ActualAETForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n  \r\n \r\n\r\n \r\n Male\r\n Female\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { ActualAETForm } from './ActualAETForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'AETTraining', numeric: false, disablePadding: true, label: 'AET Training' },\r\n { id: 'AETLevel', numeric: false, disablePadding: true, label: 'AET Level' },\r\n { id: 'NoOfLearnersMale', numeric: false, disablePadding: true, label: 'No Of Learners Male' },\r\n { id: 'NoOfLearnersFemale', numeric: false, disablePadding: true, label: 'No Of Learners Female' },\r\n { id: 'ActualCost', numeric: false, disablePadding: true, label: 'Actual Cost' }\r\n\r\n];\r\n\r\nclass ActualAET extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n NoOfLearnersMale: 0,\r\n NoOfLearnersFemale: 0,\r\n ActualCost: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATRActualAET`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.NoOfLearnersMale) + parseInt(formValue.NoOfLearnersFemale) === 0) {\r\n ErrorMessage = \"Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.NoOfLearnersMale) < 0) || (parseInt(formValue.NoOfLearnersFemale) < 0) ||\r\n (parseFloat(formValue.ActualCost) < 0)) {\r\n ErrorMessage = \"Gender Breakdown and Actual Cost: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRActualAETFind?WSPATRActualAETID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATRActualAET`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATRActualAET\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATRActualAET\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ActualAET);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function MunicipalitySearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Municipality Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.MunicipalityName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n City Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.CityName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Postal Code\r\n\t\t\t\t\t\t\t\t\r\n props.model.PostalCode = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../../View.css\";\r\nimport \"../../../Grid.css\";\r\nimport \"../../../Form.css\";\r\nimport \"../../../App.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport MunicipalitySearchForm from './MunicipalitySearchForm';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport CardLayout from '../../../widgets/Card';\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"MunicipalityName\", numeric: false, disablePadding: true, label: \"Municipality Name\" },\r\n { id: \"CityName\", numeric: false, disablePadding: true, label: \"City Name\" },\r\n { id: \"PostalCode\", numeric: false, disablePadding: true, label: \"Postal Code\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select Municipality from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nclass MunicipalitySearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = \r\n [\r\n { Name: \"MunicipalityName\", Value: \"\" },\r\n { Name: \"CityName\", Value: \"\" },\r\n { Name: \"PostalCode\", Value: \"\" }\r\n ]\r\n \r\n\r\n this.state = {\r\n model: {\r\n MunicipalityName: \"\",\r\n CityName: \"\",\r\n PostalCode: \"\"\r\n },\r\n keyUpSwitch: false,\r\n selectedMunicipality: null,\r\n linkDialogOpen: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(MunicipalitySearch)\r\n);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\nimport MunicipalitySearch from '../../Controls/MunicipalitySearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const PlannedBeneficiariesTrainingForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={false} selection={props.selection}\r\n WSPATRID={props.WSPATRID} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"SuburbID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { PlannedBeneficiariesTrainingForm } from './PlannedBeneficiariesTrainingForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'OccupationalCategory', numeric: false, disablePadding: true, label: 'Occupational Category', widthRatio: .061 },\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation', widthRatio: .154 },\r\n { id: 'Municipality', numeric: false, disablePadding: true, label: 'Occupation', widthRatio: .080 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .047 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .047 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .047 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .047 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .047 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .047 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .047 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .047 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .047 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .047 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .047 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .047 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .047 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .047 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .047 }\r\n\r\n];\r\n\r\nclass PlannedBeneficiariesTraining extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0}\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined')\r\n {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATRPlannedBeneficiariesTraining`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)+\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRPlannedBeneficiariesTrainingFind?WSPATRPlannedBeneficiariesTrainingID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATRPlannedBeneficiariesTraining`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATRPlannedBeneficiariesTraining\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n \r\n if (this.state.removeAll === true)\r\n {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATRPlannedBeneficiariesTraining\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n \r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n \r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer (base64){\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })}\r\n \r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else\r\n {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null;}\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(PlannedBeneficiariesTraining);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Table from '@material-ui/core/Table';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const ProvincialDetailsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Please provide the permanent employment figures for the organisation by province.
\r\n The total should add up to Total permanent employment as specified in Section B1
\r\n
\r\n\r\n \r\n Western Cape\r\n Northern Cape\r\n Eastern Cape\r\n Free State\r\n Gauteng\r\n Mpumalanga\r\n Limpopo\r\n North West\r\n Kwa Zulu-Natal\r\n Total\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { ProvincialDetailsForm } from './ProvincialDetailsForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'WesternCape', numeric: false, disablePadding: true, label: 'Western Cape', widthRatio: .100 },\r\n { id: 'NorthernCape', numeric: false, disablePadding: true, label: 'Northern Cape', widthRatio: .100 },\r\n { id: 'EasternCape', numeric: false, disablePadding: true, label: 'Eastern Cape', widthRatio: .100 },\r\n { id: 'FreeState', numeric: false, disablePadding: true, label: 'Free State', widthRatio: .100 },\r\n { id: 'Gauteng', numeric: false, disablePadding: true, label: 'Gauteng', widthRatio: .100 },\r\n { id: 'Mpumalanga', numeric: false, disablePadding: true, label: 'Mpumalanga', widthRatio: .100 },\r\n { id: 'Limpopo', numeric: false, disablePadding: true, label: 'Limpopo', widthRatio: .100 },\r\n { id: 'NorthWest', numeric: false, disablePadding: true, label: 'North West', widthRatio: .100 },\r\n { id: 'KZN', numeric: false, disablePadding: true, label: 'Kwa Zulu-Natal', widthRatio: .100 },\r\n { id: 'Total', numeric: false, disablePadding: true, label: 'Total', widthRatio: .100 },\r\n\r\n];\r\n\r\nclass ProvincialDetails extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n NQFLevel: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n editdisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n WesternCape: 0,\r\n NorthernCape: 0,\r\n EasternCape: 0,\r\n FreeState: 0,\r\n Gauteng: 0,\r\n Mpumalanga: 0,\r\n Limpopo: 0,\r\n NorthWest: 0,\r\n KZN: 0,\r\n Total: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const ProvincialDetails = this.CheckProvincialDetailsRules(formValue);\r\n\r\n if (ProvincialDetails) {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddUpdateWSPATRProvincialDetails`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n this.edit();\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckProvincialDetailsRules = (formValue) => {\r\n let ProvincialDetails = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.WesternCape) + parseInt(formValue.NorthernCape) + parseInt(formValue.EasternCape) + parseInt(formValue.FreeState) +\r\n parseInt(formValue.Gauteng) + parseInt(formValue.Mpumalanga) + parseInt(formValue.Limpopo) + parseInt(formValue.NorthWest) + parseInt(formValue.KZN) === 0) {\r\n ErrorMessage = \"Provincial Details: Cannot be zero.\";\r\n ProvincialDetails = false;\r\n }\r\n\r\n if ((parseInt(formValue.WesternCape) < 0) || (parseInt(formValue.NorthernCape) < 0) || (parseInt(formValue.EasternCape) < 0) || (parseInt(formValue.FreeState) < 0) ||\r\n (parseInt(formValue.Limpopo) < 0) || (parseInt(formValue.NorthWest) < 0) || (parseInt(formValue.NorthWest) < 0) || (parseInt(formValue.KZN) < 0)) {\r\n ErrorMessage = \"Provincial Details: Negative numbers are not allowed.\";\r\n ProvincialDetails = false;\r\n }\r\n\r\n if (!ProvincialDetails) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return ProvincialDetails;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRProvincialDetailsFind?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: false,\r\n editdisabled: true,\r\n canceldisabled: false,\r\n EditFormData: response\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n editdisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n editdisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: false,\r\n editdisabled: false,\r\n canceldisabled: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n editdisabled: true,\r\n canceldisabled: true\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n editdisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n this.edit()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ProvincialDetails);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const PlannedAETForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n  \r\n \r\n\r\n \r\n Male\r\n Female\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { PlannedAETForm } from './PlannedAETForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'AETTraining', numeric: false, disablePadding: true, label: 'AET Training' },\r\n { id: 'AETLevel', numeric: false, disablePadding: true, label: 'AET Level' },\r\n { id: 'NoOfLearnersMale', numeric: false, disablePadding: true, label: 'No Of Learners Male' },\r\n { id: 'NoOfLearnersFemale', numeric: false, disablePadding: true, label: 'No Of Learners Female' },\r\n { id: 'ActualCost', numeric: false, disablePadding: true, label: 'Actual Cost' }\r\n\r\n];\r\n\r\nclass PlannedAET extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n NoOfLearnersMale: 0,\r\n NoOfLearnersFemale: 0,\r\n ActualCost: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATRPlannedAET`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.NoOfLearnersMale) + parseInt(formValue.NoOfLearnersFemale) === 0) {\r\n ErrorMessage = \"Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.NoOfLearnersMale) < 0) || (parseInt(formValue.NoOfLearnersFemale) < 0) ||\r\n (parseFloat(formValue.ActualCost) < 0)) {\r\n ErrorMessage = \"Gender Breakdown and Actual Cost: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRPlannedAETFind?WSPATRPlannedAETID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATRPlannedAET`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATRPlannedAET\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATRPlannedAET\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(PlannedAET);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Table from '@material-ui/core/Table';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const ImpactAssessmentForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { ImpactAssessmentForm } from './ImpactAssessmentForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Impact', numeric: false, disablePadding: true, label: 'Has the Impact of the Training Interventions been Measured? If Yes, what Methodology has been used and what was the Impact?', widthRatio: .100 },\r\n { id: 'AffectedCompany', numeric: false, disablePadding: true, label: 'Indicate how Training as Reported in the ATR, and PTR has Affected the Company', widthRatio: .100 },\r\n { id: 'Suggestions', numeric: false, disablePadding: true, label: 'Do you have any Suggestion on how the WSP/ATR Format can be Improved (Given the Stipulated Minimum Requirements from the Department)?', widthRatio: .100 },\r\n { id: 'Challenges', numeric: false, disablePadding: true, label: 'List the top 3 challenges encountered working with the SETA in the current financial year?', widthRatio: .100 },\r\n\r\n];\r\n\r\nclass ImpactAssessment extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n NQFLevel: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n editdisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n WesternCape: 0,\r\n NorthernCape: 0,\r\n EasternCape: 0,\r\n FreeState: 0,\r\n Gauteng: 0,\r\n Mpumalanga: 0,\r\n Limpopo: 0,\r\n NorthWest: 0,\r\n KZN: 0,\r\n Total: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddUpdateWSPATRImpactAssessment`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n this.edit();\r\n }, this.error);\r\n }\r\n }\r\n\r\n //CheckImpactAssessmentRules = (formValue) => {\r\n // let ImpactAssessment = true;\r\n // let ErrorMessage = \"\";\r\n\r\n // if (parseInt(formValue.WesternCape) + parseInt(formValue.NorthernCape) + parseInt(formValue.EasternCape) + parseInt(formValue.FreeState) +\r\n // parseInt(formValue.Gauteng) + parseInt(formValue.Mpumalanga) + parseInt(formValue.Limpopo) + parseInt(formValue.NorthWest) + parseInt(formValue.KZN) === 0) {\r\n // ErrorMessage = \"Provincial Details: Cannot be zero.\";\r\n // ImpactAssessment = false;\r\n // }\r\n\r\n // if ((parseInt(formValue.WesternCape) < 0) || (parseInt(formValue.NorthernCape) < 0) || (parseInt(formValue.EasternCape) < 0) || (parseInt(formValue.FreeState) < 0) ||\r\n // (parseInt(formValue.Limpopo) < 0) || (parseInt(formValue.NorthWest) < 0) || (parseInt(formValue.NorthWest) < 0) || (parseInt(formValue.KZN) < 0)) {\r\n // ErrorMessage = \"Provincial Details: Negative numbers are not allowed.\";\r\n // ImpactAssessment = false;\r\n // }\r\n\r\n // if (!ImpactAssessment) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n // return ImpactAssessment;\r\n //}\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRImpactAssessmentFind?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: false,\r\n editdisabled: true,\r\n canceldisabled: false,\r\n EditFormData: response\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n editdisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n editdisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: false,\r\n editdisabled: false,\r\n canceldisabled: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n editdisabled: true,\r\n canceldisabled: true\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n editdisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n this.edit()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ImpactAssessment);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\nimport CheckboxGroup from 'antd/lib/checkbox/Group';\r\nimport { CustomCheckbox } from '../../../../widgets/CustomCheckbox';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\n//const checkboxList = this.props.checkboxList;\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\n\r\nexport const HardToFillVacanciesForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const [otherTextFieldVisible, setOtherTextFieldVisible] = React.useState(false);\r\n\r\n const handleMainReasonsChange = (id, form) => event => {\r\n\r\n if (id === \"7\") {\r\n setOtherTextFieldVisible(event.target.checked)\r\n }\r\n\r\n form.updateValue(\"HardToFillVacancyReasonID\" + id , event.target.checked);\r\n }\r\n\r\n function checkValue(value) {\r\n\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Other\") {\r\n return false\r\n }\r\n else {\r\n return true\r\n }\r\n } else {\r\n return true\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={false} selection={props.selection}\r\n WSPATRID={props.WSPATRID} />\r\n \r\n

\r\n

Identify the main reasons why the listed occupations were HARD-TO-FILL VACANCIES

\r\n {props.MainReasons.map((item) => (\r\n \r\n ))}
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport { HardToFillVacanciesForm } from './HardToFillVacanciesForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\nimport BulkImportDialog from '../../Controls/WSPATRBulkImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation' },\r\n { id: 'HardToFillVacancyReasonIDs', numeric: false, disablePadding: true, label: 'Hard To Fill Vacancy Reasons' },\r\n { id: 'HardToFillVacancyReason', numeric: false, disablePadding: true, label: 'Hard To Fill Vacancy Reason Other' },\r\n { id: 'NoOfVacancies', numeric: false, disablePadding: true, label: 'No Of Vacancies' },\r\n { id: 'Province', numeric: false, disablePadding: true, label: 'Region' },\r\n { id: 'WSPATRDigitalSkills', numeric: false, disablePadding: true, label: 'WSPATR Digital Skills' },\r\n { id: 'OtherDigitalSkills', numeric: false, disablePadding: true, label: 'WSPATR Digital Skills Other' }\r\n\r\n];\r\n\r\nclass HardToFillVacancies extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n EntryLevel: 0,\r\n IntermediateLevel: 0,\r\n AdvancedLevel: 0,\r\n ActualCost: 0\r\n },\r\n MainReasons: [],\r\n EditMainReasons: []\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n let MainReasonsIDs;\r\n this.state.MainReasons.map((el) => {\r\n let value = formValue[\"HardToFillVacancyReasonID\" + el.Id] ? el.Id : \"\";\r\n if (value !== \"\") {\r\n if (MainReasonsIDs === null || typeof MainReasonsIDs === 'undefined') {\r\n MainReasonsIDs = value;\r\n }\r\n else {\r\n MainReasonsIDs = MainReasonsIDs + ',' + value;\r\n }\r\n }\r\n });\r\n formValue.HardToFillVacancyReasonIDs = MainReasonsIDs;\r\n\r\n const url = `api/sims/WSPATRForms2022/AddWSPATRHardToFillVacancies`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/GetWSPATRHardToFillVacanciesFind?WSPATRHardToFillVacanciesID=\" + this.state.RecordID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID, (response) => {\r\n response.WSPATRID = this.state.WSPATRID;\r\n response.WSPATRFormsID = this.state.WSPATRFormsID;\r\n\r\n response.HardToFillVacancyReasonIDs.split(',').map((el, index) => {\r\n response[\"HardToFillVacancyReasonID\" + el] = true;\r\n });\r\n\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove this WSP/ATR Form Record?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL WSP/ATR Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this WSP/ATR Form?\",\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n \r\n formValue.WSPATRID = this.state.WSPATRID;\r\n formValue.WSPATRFormsID = this.state.WSPATRFormsID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n let MainReasonsIDs;\r\n this.state.MainReasons.map((el) => {\r\n let value = formValue[\"HardToFillVacancyReasonID\" + el.Id] ? el.Id : \"\";\r\n if (value !== \"\") {\r\n if (MainReasonsIDs === null || typeof MainReasonsIDs === 'undefined') {\r\n MainReasonsIDs = value;\r\n }\r\n else {\r\n MainReasonsIDs = MainReasonsIDs + ',' + value;\r\n }\r\n }\r\n });\r\n formValue.HardToFillVacancyReasonIDs = MainReasonsIDs;\r\n\r\n const url = `api/sims/WSPATRForms2022/UpdateWSPATRHardToFillVacancies`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/WSPATRForms2022/RemoveWSPATRHardToFillVacancies\";\r\n let fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/WSPATRForms2022/RemoveAllWSPATRHardToFillVacancies\";\r\n fullUrl = `${url}?WSPATRID=${this.state.WSPATRID}&WSPATRFormsID=${this.state.WSPATRFormsID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n bulkimportdisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/WSPATRForms2022/BulkUploadGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n this.getMainReasons()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n bulkimportdisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n getMainReasons() {\r\n let url = \"api/sims/WSPATRForms2022/GetLookupList?listId=HardToFillVacancyReason\";\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n MainReasons: response\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData}\r\n MainReasons={this.state.MainReasons}\r\n />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject}\r\n MainReasons={this.state.MainReasons}\r\n />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n WSPATRFormsID={this.props.location.state.WSPATRFormsID}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(HardToFillVacancies);","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../../Style.css'\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Section', numeric: false, disablePadding: true, label: 'Section'},\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Description' },\r\n { id: 'Completed', numeric: false, disablePadding: true, label: 'Completed' },\r\n];\r\n\r\nclass CheckList extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n WSPATRID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n WSPATRFormsID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormsID)) ? this.props.location.state.WSPATRFormsID : null,\r\n WSPATRFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRFormName)) ? this.props.location.state.WSPATRFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n NQFLevel: null,\r\n open: null,\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: this.props.location.state.WSPATRFormsID }],\r\n adddisabled: false,\r\n editdisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n Section: \"\",\r\n Description: \"\",\r\n Completed: \"\"\r\n }\r\n };\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/WspAtrForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n WSPATRID: this.props.location.state.WSPATRID\r\n }\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindHeader?WSPATRID=\" + this.state.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/wspatr/GetWSPATRFormPermissionCheck?WSPATRID=\" + this.state.WSPATRID + \"&WSPATRFormsID=\" + this.state.WSPATRFormsID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.close();\r\n } \r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.WSPATRFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n } \r\n}\r\n\r\nexport default withRouter(CheckList);","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport Organisation from '../organisation/Organisation';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const WSPandATRCreateForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const WSPandATREditForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default WSPandATREditForm;","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport \"../../../etqa/program/LearnershipSetup.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'Name', numeric: false, disablePadding: true, label: 'Reason Name' },\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Reason Description' }\r\n];\r\n\r\nclass LetterReasonDialog extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters = \r\n [\r\n //{ Name: \"WSPATRID\", Value: this.props.WspAtrId },\r\n { Name: \"LetterType\", Value: this.props.LetterType }\r\n ]\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n this.state = {\r\n keyUpSwitch: false,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Learnership\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(LetterReasonDialog));","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport EditForm from './WSPandATREditForm';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport LetterReasonDialog from \"./Controls/LetterReasonDialog.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function WspAtrEditDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n const [showReasons, setShowReasons] = React.useState(false);\r\n const [reasonUrl, setReasonUrl] = React.useState(\"\");\r\n const [FormData, setFormData] = React.useState(\"\");\r\n const [selectedReasons, setSelectedReasons] = React.useState(\"\");\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const save = () => {\r\n //console.log(selectedReasons);\r\n console.clear();\r\n console.log(FormData);\r\n\r\n const url = `api/sims/wspatr/Updatewspatr`;\r\n let FinalData = \"\";\r\n\r\n let ReasonsList = \"\";\r\n if (selectedReasons !== null) {\r\n for (let i = 0; i < selectedReasons.length; i++) {\r\n if (i === 0) { ReasonsList += selectedReasons[i].Id; }\r\n else { ReasonsList += \",\" + selectedReasons[i].Id; }\r\n\r\n }\r\n }\r\n\r\n if (FormData.WSPStatusID.Id === \"4\" || FormData.WSPStatusID.Id === 4) {\r\n FinalData = { ...FormData, RejectionReasons: ReasonsList }\r\n }\r\n else if (FormData.WSPStatusID.Id === \"5\" || FormData.WSPStatusID.Id === 5) {\r\n FinalData = { ...FormData, QueryReasons: ReasonsList }\r\n }\r\n else {\r\n FinalData = FormData\r\n }\r\n \r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n setReasonUrl(\"\");\r\n setShowReasons(false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(FinalData)\r\n }\r\n );\r\n }\r\n\r\n const update = () => {\r\n let formValue = formRef.current.getValue();\r\n //formValue.Id = props.Id;\r\n setFormData(formValue);\r\n setReasonUrl(\"\");\r\n setShowReasons(false);\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n console.clear();\r\n console.log(formValue.WSPStatusID.Id);\r\n if (formValue.WSPStatusID.Id === \"4\" || formValue.WSPStatusID.Id === 4) {\r\n setReasonUrl(\"api/sims/wspatr/GetWSPATRRejectionLetterReasons\");\r\n setShowReasons(true);\r\n }\r\n else if (formValue.WSPStatusID.Id === \"5\" || formValue.WSPStatusID.Id === 5) {\r\n setReasonUrl(\"api/sims/wspatr/GetWSPATRQueryLetterReasons\");\r\n setShowReasons(true);\r\n }\r\n else {\r\n save();\r\n }\r\n }\r\n }\r\n\r\n const SetReasonSelections = (selection) => {\r\n //console.log(selection);\r\n setSelectedReasons(selection);\r\n }\r\n\r\n const handleFormValueChange = (values) => {\r\n setFormData(values);\r\n }\r\n\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n

\r\n WSP/ATR Update\r\n

\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n {showReasons ?\r\n
\r\n \r\n
\r\n : \r\n
\r\n handleFormValueChange(values)} />\r\n
\r\n }\r\n \r\n {showReasons ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React from 'react';\r\nimport Loader from 'react-loader-spinner';\r\nimport \"./loader.css\"\r\n\r\nexport default function LoadingIndicatorLogin(props) {\r\n\r\n return (\r\n props.show === true &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n};","import React, { Component, Fragment } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport simslogoLoading from '../../../content/images/logos/sims_logo_loading.png';\r\nimport LoadingIndicatorLogin from '../../LoadingIndicatorLogin';\r\nimport { ViewContainer } from \"../../View\";\r\nimport Paper from '@material-ui/core/Paper';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass WspAtrPrintReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n queueData: null\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getFormHead();\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/wspatr/GetFindQueue?WSPATRID=\" + this.props.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n isLoading: false,\r\n queueData: response\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n FileDownload = () => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(this.state.queueData.Document.Base64)], { type: this.state.queueData.Document.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = this.state.queueData.Document.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n checkGenerateReportActive = () => {\r\n if (!utils.isNull(this.state.queueData)) {\r\n if (!utils.isNull(this.state.queueData.WSPATRReportsPrintQueueStatusID) && this.state.queueData.WSPATRReportsPrintQueueStatusID.Id == 3 /*completed*/) {\r\n return true;\r\n }\r\n else if (utils.isNull(this.state.queueData.WSPATRReportsPrintQueueStatusID)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n GenerateReport = () => {\r\n this.setState({ isLoading: true })\r\n let url = \"api/sims/wspatr/WSPATRPrintQueueStart?WSPATRID=\" + this.props.WSPATRID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.getFormHead();\r\n }\r\n else {\r\n this.setState({ isLoading: false })\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n CheckProgress = () => {\r\n this.setState({ isLoading: true })\r\n this.getFormHead();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n {!this.state.isLoading ?\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Status
\r\n
\r\n \r\n \r\n Last Ran
\r\n
\r\n \r\n
\r\n
\r\n
\r\n  \r\n  \r\n  \r\n
:\r\n null\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(WspAtrPrintReport));","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport FormDialog from \"../../etqa/FormDialog\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport { WSPandATRCreateForm } from \"./WSPandATRCreateForm\";\r\nimport { WSPandATREditForm } from \"./WSPandATREditForm\";\r\nimport EditDialog from './WspAtrEditDialog';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport Slide from '@material-ui/core/Slide';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Typography } from \"antd\";\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport WspAtrPrintReport from './WspAtrPrintReport';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst headCells = [\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year', widthRatio: '0.17' },\r\n { id: 'FormType', numeric: false, disablePadding: true, label: 'Form Type', widthRatio: '0.17' },\r\n { id: 'WSPStatus', numeric: false, disablePadding: true, label: 'WSP Status', widthRatio: '0.09' },\r\n { id: 'DueDate', numeric: false, disablePadding: true, label: 'Due Date', widthRatio: '0.09' },\r\n { id: 'SubmittedDate', numeric: false, disablePadding: true, label: 'Submitted Date', widthRatio: '0.1' },\r\n { id: 'SubmittedBy', numeric: false, disablePadding: true, label: 'Submitted By', widthRatio: '0.1' },\r\n { id: 'EvaluatedDate', numeric: false, disablePadding: true, label: 'Evaluated Date', widthRatio: '0.09' },\r\n { id: 'ApprovedDate', numeric: false, disablePadding: true, label: 'Approved Date', widthRatio: '0.1' },\r\n { id: 'RejectedDate', numeric: false, disablePadding: true, label: 'Rejected Date', widthRatio: '0.09' },\r\n\r\n];\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nconst useStyles = theme => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n title: {\r\n flex: 1,\r\n color: 'white',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nclass WspAtrDashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedWSPATR: null,\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }],\r\n OpenPrintDialog: false,\r\n clearSelectedRow: false\r\n }\r\n\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Create WSP/ATR', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add},\r\n { id: 'view', label: '', tooltip: 'View WSP/ATR', icon: 'ViewIcon', disabled: true },\r\n { id: \"edit\", label: \"\", tooltip: \"Edit WSP/ATR\", icon: \"EditIcon\", disabled: true, visible: this.props.menuPermissionItem.Edit},\r\n { id: \"print\", label: \"\", tooltip: \"Print WSP/ATR Report\", disabled: true, icon: 'PrintIcon' },\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ addDialogOpen: true, Message: \"\" })\r\n }\r\n else if (\"edit\" === buttonId) {\r\n this.setState({ editDialogOpen: true, Message: \"\" })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/WspAtrForms\",\r\n state: {\r\n WSPATRID: this.state.selectedWSPATR,\r\n organisationID: this.props.location.state.organisationID\r\n }\r\n })\r\n } else if (\"print\" === buttonId) {\r\n this.setState({ OpenPrintDialog: true });\r\n /*this.FileDownload();*/\r\n }\r\n }\r\n\r\n //FileDownload = () => {\r\n\r\n // utils.invokeUrl(\"api/sims/wspatr/GetPrintReportData?WSPATRID=\" + this.state.selectedWSPATR, (response) => {\r\n\r\n // toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n // toolbarRef.current.setButtonDisabled(\"view\", true);\r\n // toolbarRef.current.setButtonDisabled(\"print\", true);\r\n\r\n // var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n // var url = URL.createObjectURL(blob);\r\n\r\n // const link = document.createElement('a');\r\n // link.href = url;\r\n // link.download = response.Name;\r\n // link.target = '_blank';\r\n // link.click();\r\n\r\n // }, (e) => {\r\n // this.setState({ Message: utils.SYSTEM_ERROR_MESSAGE, MessageStyle: \"ERROR\" });\r\n // }\r\n // );\r\n\r\n //};\r\n\r\n //base64ToArrayBuffer(base64) {\r\n // var binary_string = window.atob(base64);\r\n // var len = binary_string.length;\r\n // var bytes = new Uint8Array(len);\r\n // for (var i = 0; i < len; i++) {\r\n // bytes[i] = binary_string.charCodeAt(i);\r\n // }\r\n // return bytes.buffer;\r\n //};\r\n\r\n postAddHandler(cancel, save, response) {\r\n if (save === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedWSPATR: null,\r\n Message: response.Message,\r\n MessageStyle: response.MessageType,\r\n clearSelectedRow: true,\r\n });\r\n\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n toolbarRef.current.setButtonDisabled(\"print\", true);\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedWSPATR: null,\r\n Message: \"\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n toolbarRef.current.setButtonDisabled(\"print\", true);\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedWSPATR: null,\r\n Message: \"A system error has occured, please try again later or contact your administrator\",\r\n MessageStyle: \"warning\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n toolbarRef.current.setButtonDisabled(\"print\", true);\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedWSPATR: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedWSPATR: null, Message: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"print\", selection === null || selection.length === 0);\r\n }\r\n\r\n successfulContactRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedWSPATR: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulContactRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n ClosePrintDialog = () => {\r\n this.setState({ OpenPrintDialog: false });\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n toolbarRef.current.setButtonDisabled(\"print\", true);\r\n };\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n \r\n

\r\n {\"WSP/ATR Dashboard\" + (this.props.location.state.organisationName !== null ? \" - \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n \r\n \r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n />\r\n {\r\n /* this.postAddHandler(cancel, save)}\r\n >\r\n \r\n */\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Print WSP/ATR Report\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withStyles(useStyles())(withMenuPermission(WspAtrDashboard)));","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function WspAtrDocumentsUploadForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const WspAtrUploadForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [docName, setDocName] = React.useState('');\r\n\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n
\r\n
\r\n
\r\n {docName != '' ? docName : ''}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport { WspAtrUploadForm } from './WspAtrUploadForm';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function UploadDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [AddDiasbaled, setAddDiasbaled] = React.useState(true);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n const handleClose = (cancel, save,response) => {\r\n setFilename(\"\");\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const add = () => {\r\n let formValue = formRef.current.getValue();\r\n formValue.Document = {};\r\n formValue.Document.Name = filename;\r\n formValue.Document.size = size;\r\n formValue.Document.type = type;\r\n formValue.Document.base64 = base64;\r\n formValue.OrganisationID = props.OrganisationID;\r\n formValue.DocumentRelatesID = props.docID;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const url = `api/sims/wspatrdocument/addwspatrdocument`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n setAddDiasbaled(false);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n

\r\n Upload {props.docType} \r\n

\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport WspAtrDocumentsUploadForm from './WspAtrUploadsSearchForm'\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport UploadDialog from './UploadDialog';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' },\r\n { id: 'Comment', numeric: false, disablePadding: true, label: 'Comment' },\r\n { id: 'DocumentType', numeric: false, disablePadding: true, label: 'Document Type' },\r\n { id: 'Document', numeric: false, disablePadding: true, label: 'Document', contentType: 'document' },\r\n { id: 'UploadedBy', numeric: false, disablePadding: true, label: 'Uploaded By' },\r\n { id: 'UploadDate', numeric: false, disablePadding: true, label: 'Upload Date' }\r\n\r\n];\r\n\r\nclass WspAtrDocumentsUpload extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n FinancialYearID: null,\r\n Id: this.props.location.state.selection\r\n },\r\n addDialogOpen: false,\r\n selectedDocument: null,\r\n promptOpen: false,\r\n promptTitle: \"Remove Document\",\r\n promptContent: \"Are you sure you want to remove this Document?\",\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }, { Name: \"DocumentRelatesID\", Value: 0 }],\r\n DocumentRelatesID: null,\r\n DocumentDescription: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: \"CloseIcon\" }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Upload Document', disabled: utils.isNull(this.state.DocumentRelatesID), icon: 'UploadIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'remove', label: '', tooltip: 'Remove Document', disabled: utils.isNull(this.state.selectedContact), icon: 'DeleteIcon', visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n\r\n } else if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisation\",\r\n state: { selection: this.props.location.state.organisationID }\r\n })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n }\r\n else {\r\n // this.setState({ editDialogOpen: true });\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let DocumentRelatesID = values.DocumentType.Id;\r\n let DocumentDesc = values.DocumentType.Description;\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = DocumentRelatesID\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n DocumentRelatesID: DocumentRelatesID,\r\n DocumentDescription: DocumentDesc\r\n });\r\n toolbarRef.current.setButtonDisabled(\"add\", DocumentRelatesID === null || DocumentRelatesID.length === 0);\r\n }\r\n\r\n FileDownload = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n console.log(headCell);\r\n utils.invokeUrl(\"api/sims/WSPATRDocument/downloaddocument?id=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedDocument: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedDocument: null, Message: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n selectedDocument: null,\r\n Message: response.Message,\r\n MessageStyle: \"success\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n selectedDocument: null,\r\n Message: response.Message,\r\n MessageStyle: \"warning\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedDocument: null\r\n })\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n\r\n\r\n successfulDocumentRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedDocument: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulDocumentRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n remove(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedDocument}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulDocumentRemoveCallback, this.unsuccessfulDocumentRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedDocument: null })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > WSP/ATR Document Uploads \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n < WspAtrDocumentsUploadForm\r\n // data={this.state.model}\r\n valueChangeHandler={(values) => this.handleFormValueChange(values)}\r\n />\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/WSPATRDocument/GetSearch\"\r\n searchParameters={this.state.searchParameters}\r\n onCellSelectionChange={(rowid, headCell) => { this.FileDownload(rowid, headCell) }}\r\n paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n OrganisationID={this.props.location.state.organisationID}\r\n />\r\n\r\n { this.remove(\"api/sims/WSPATRDocument/RemoveWSPATRDocument\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(WspAtrDocumentsUpload));\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/SearchForm';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function WSPATRVerificationSearchForm(props) {\r\n const classes = useStyles();\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport WSPATRVerificationSearchForm from './WSPATRVerificationSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nclass WSPATRVerificationSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View Verification', icon: 'ViewIcon', disabled: true },\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n this.searchParameters = \r\n [\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"FinancialYearID\", Value: \"\" },\r\n\r\n ]\r\n\r\n this.headCells = \r\n [\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: 'CompanyName', numeric: false, disablePadding: true, label: 'Company Name' },\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' },\r\n { id: 'SubmissionDate', numeric: false, disablePadding: true, label: 'Submission Date' },\r\n { id: 'VerificationStatus', numeric: false, disablePadding: true, label: 'Verification Status' },\r\n\r\n ]\r\n\r\n let model = \r\n {\r\n SDLNumber: \"\",\r\n FinancialYearID: \"\"\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedWSPATR: null,\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedWSPATR: selection[0].Id });\r\n } else {\r\n this.setState({ selectedWSPATR: null });\r\n }\r\n //this.setState({ selectedWSPATR: selection })\r\n toolbarRef.current.setButtonDisabled(\"view\", false);\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/WSPATRVerificationMain\",\r\n state: {\r\n WSPATRID: this.state.selectedWSPATR\r\n }\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n { this.handleSelection(selection) }}\r\n toolbarRef={toolbarRef}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(WSPATRVerificationSearch)\r\n);\r\n\r\n\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport Item from \"antd/lib/list/Item\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport './Style.css'\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport WebIcon from '@material-ui/icons/Web';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Typography } from \"antd\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport LinkDialog from \"../../etqa/LinkDialog\";\r\nimport LetterReasonDialog from \"./Controls/LetterReasonDialog.jsx\";\r\nimport DocumentUpload from \"../../widgets/DocumentUpload\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Verification Dashboard', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation', widthRatio: .154 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .047 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .047 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .047 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .047 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .047 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .047 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .047 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .047 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .047 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .047 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .047 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .047 },\r\n { id: 'Age1', numeric: false, disablePadding: true, label: 'Age < 35', widthRatio: .047 },\r\n { id: 'Age2', numeric: false, disablePadding: true, label: 'Age 35 - 55', widthRatio: .047 },\r\n { id: 'Age3', numeric: false, disablePadding: true, label: 'Age > 55', widthRatio: .047 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .047 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .047 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .047 }\r\n];\r\n\r\nconst useStyles = theme => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n title: {\r\n flex: 1,\r\n color: 'white',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nclass WSPATRVerificationMain extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n objectProps: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.object)) ? this.props.location.state.object : null,\r\n formObject: null,\r\n lookupArray: null,\r\n lookupVArray: null,\r\n lookupDArray: null,\r\n FinancialYear: '',\r\n OrganisationName: '',\r\n Status: '',\r\n model: {\r\n Name: \"\",\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n VerificationPermission: \"\",\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: 0 }],\r\n OpenDialog: false,\r\n formViewURL: \"\",\r\n formName: \"\",\r\n linkDialogOpen: false,\r\n fileName: null,\r\n fileSize: null,\r\n fileBase64: null,\r\n fileType: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getForms(this.state.id)\r\n this.getlookup(this.state.id)\r\n this.CheckVerificationPermissions(this.state.id)\r\n }\r\n getForms(id) {\r\n let url = \"api/sims/WSPATRVerification/GetWSPATRVerification?Id=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n formObject: response,\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n getlookup(id) {\r\n let url = \"api/sims/WSPATRVerification/GetLookupList?listId=YesNo\";\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ lookupArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n\r\n let urlV = \"api/sims/WSPATRVerification/GetLookupListWSPATRVerificationStatus\";\r\n utils.invokeUrl(urlV, (response) => {\r\n this.setState({ lookupVArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n\r\n let urlD = \"api/sims/WSPATRVerification/GetLookupList?listId=WSPATREvaluationVerificationDeviation\";\r\n utils.invokeUrl(urlD, (response) => {\r\n this.setState({ lookupDArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n CheckVerificationPermissions(id) {\r\n let url = \"api/sims/WSPATRVerification/GetWSPATRVerificationPermissionCheck?WSPATRID=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n VerificationPermission: response.Result\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleChecklistArrayCI = (event, index) => {\r\n const values = [...this.state.formObject.WSPATRVerificationChecklistDtoList];\r\n const indexObject = { ...values[index] };\r\n indexObject.ConfirmInformationYesNoID = { Id: event.target.value };\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, WSPATRVerificationChecklistDtoList: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayIO = (event, index) => {\r\n const values = [...this.state.formObject.WSPATRVerificationChecklistDtoList];\r\n const indexObject = { ...values[index] };\r\n indexObject.InformationOutstandingYesNoID = { Id: event.target.value };\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, WSPATRVerificationChecklistDtoList: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayC = (event, index) => {\r\n const values = [...this.state.formObject.WSPATRVerificationChecklistDtoList];\r\n const indexObject = { ...values[index] };\r\n indexObject.Comments = event.target.value;\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, WSPATRVerificationChecklistDtoList: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayD = (event, index) => {\r\n const values = [...this.state.formObject.WSPATRVerificationChecklistDtoList];\r\n const indexObject = { ...values[index] };\r\n indexObject.DeviationID = { Id: event.target.value };\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, WSPATRVerificationChecklistDtoList: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleStatus = (event) => {\r\n const finalObject = { ...this.state.formObject, WSPATREvaluationVerificationStatusID: { Id: event.target.value } }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleComment = (event) => {\r\n const finalObject = { ...this.state.formObject, VerificationComment: event.target.value }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n SaveChecklist = () => {\r\n let url = \"api/sims/WSPATRVerification/UpdateVerificationChecklist\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(this.state.formObject)\r\n }\r\n )\r\n }\r\n\r\n CheckStatus = () => {\r\n if (this.state.formObject.WSPATREvaluationVerificationStatusID.Id === \"4\" || this.state.formObject.WSPATREvaluationVerificationStatusID.Id === 4) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else { this.SaveVerification(null) }\r\n\r\n }\r\n\r\n SaveVerification = (selection) => {\r\n\r\n let QueryReasonsList = \"\";\r\n if (selection !== null) {\r\n for (let i = 0; i < selection.length; i++) {\r\n if (i === 0) { QueryReasonsList += selection[i].Id; }\r\n else { QueryReasonsList += \",\" + selection[i].Id; }\r\n\r\n }\r\n }\r\n\r\n let SaveObject = { ...this.state.formObject, QueryReasons: QueryReasonsList };\r\n this.setState({ formObject: SaveObject });\r\n console.log(SaveObject);\r\n let url = \"api/sims/WSPATRVerification/UpdateFinalVerification\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(SaveObject)\r\n }\r\n )\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n this.setState({\r\n linkDialogOpen: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: './WSPATRVerification'\r\n });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n //this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n buttonSubmitClickHandler() {\r\n this.submit();\r\n }\r\n\r\n FileDownload(id, DocumentType) {\r\n utils.invokeUrl(\"api/sims/WSPATRVerification/DownloadWSPATRDocument?DocumentID=\" + id, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n };\r\n\r\n FileDeviationDownload() {\r\n utils.invokeUrl(\"api/sims/WSPATRVerification/DownloadWSPATRDeviationDocument?WSPATRID=\" + this.state.id, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }; \r\n\r\n OpenForm(id, formUrl, fName) {\r\n console.log(formUrl);\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = id\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n OpenDialog: true,\r\n formViewURL: formUrl,\r\n formName: fName\r\n });\r\n }\r\n\r\n CloseForm = () => {\r\n this.setState({\r\n OpenDialog: false,\r\n formViewURL: \"\",\r\n formName: \"\"\r\n });\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n onUploadHandler = (index, data) => {\r\n if (data) {\r\n this.setState({\r\n fileName: data.name,\r\n fileSize: data.size,\r\n fileBase64: data.base64,\r\n fileType: data.type\r\n });\r\n\r\n const values = [...this.state.formObject.WSPATRVerificationChecklistDtoList];\r\n const indexObject = { ...values[index] };\r\n\r\n indexObject.Document = {};\r\n indexObject.Document.Name = data.name;\r\n indexObject.Document.size = data.size;\r\n indexObject.Document.type = data.type;\r\n indexObject.Document.base64 = data.base64;\r\n\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, WSPATRVerificationChecklistDtoList: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const tablerows = !utils.isNull(this.state.formObject) ? this.state.formObject.WSPATRVerificationChecklistDtoList.map((item, index) => (\r\n item.LinkInformation.split(\"|\")[0] !== \"Calculation\" ?\r\n \r\n \r\n {item.Number}\r\n \r\n {item.CheckList}\r\n \r\n this.handleChecklistArrayCI(values, index)}>\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n\r\n {lookupitem.Description}\r\n\r\n ))}\r\n \r\n \r\n \r\n this.handleChecklistArrayIO(values, index)} >\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n {lookupitem.Description}\r\n ))}\r\n \r\n \r\n \r\n this.handleChecklistArrayC(values, index)}> \r\n \r\n \r\n {item.LinkInformation.split(\"|\")[0] !== \"Document\" && item.LinkInformation.split(\"|\")[0] !== \"Form\" ? null :\r\n item.LinkInformation.split(\"|\")[0] === \"Document\" ?\r\n this.FileDownload(item.LinkInformation.split(\"|\")[1])} >\r\n :\r\n this.OpenForm(item.LinkInformation.split(\"|\")[1], item.DataURL, item.CheckList)} >\r\n }\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {item.Number}\r\n \r\n {item.CheckList}\r\n \r\n {item.LinkInformation.split(\"|\")[2]}\r\n \r\n \r\n {item.LinkInformation.split(\"|\")[3]}\r\n \r\n \r\n this.handleChecklistArrayC(values, index)}> \r\n \r\n \r\n {item.LinkInformation.split(\"|\")[1]}\r\n \r\n \r\n {item.Calculation < 50 ?\r\n \r\n \r\n {item.Number + 1}\r\n \r\n Deviation\r\n \r\n this.handleChecklistArrayD(values, index)} >\r\n \r\n {this.state.lookupDArray.map((lookupitem, index) => (\r\n {lookupitem.Description}\r\n ))}\r\n \r\n \r\n Upload\r\n \r\n {this.state.VerificationPermission === \"ViewOnly\" ? item.OriginalFileName\r\n :\r\n \r\n }\r\n \r\n \r\n {item.OriginalFileName !== \"\" ?\r\n this.FileDeviationDownload()} >\r\n :\r\n null\r\n }\r\n \r\n \r\n : null\r\n }\r\n \r\n ))\r\n :\r\n null;\r\n\r\n\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n WSP/ATR Verification
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n #\r\n Checklist\r\n Please check and confirm that the information has been completed by the organisation Y/N?\r\n Information Submitted (Y/N)\r\n Comments\r\n Links\r\n \r\n \r\n \r\n {tablerows}\r\n \r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Verification Status
\r\n
\r\n this.handleStatus(values)}>\r\n \r\n {!utils.isNull(this.state.lookupVArray) ? this.state.lookupVArray.map((lookupVitem, index) => (\r\n\r\n {lookupVitem.Description}\r\n\r\n )) : null}\r\n \r\n \r\n Verification Comment
\r\n
\r\n this.handleComment(values)}> \r\n \r\n Verifier
\r\n
\r\n\r\n \r\n \r\n Verification Date
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n  \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.formName}\r\n \r\n\r\n \r\n \r\n

\r\n \r\n
\r\n\r\n\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle=\"Query Reasons\"\r\n linkName={\"QueryReasons\"} linkHandler={(selection) => this.SaveVerification(selection)}\r\n selectionId={this.state.id}\r\n buttonName=\"Save\"\r\n >\r\n \r\n \r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withStyles(useStyles())(withMenuPermission(WSPATRVerificationMain)));","import React from 'react';\r\nimport { EntityForm } from '../../widgets/SearchForm';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function WSPATRVerificationSearchForm(props) {\r\n const classes = useStyles();\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport WSPATREvaluationSearchForm from './WSPATREvaluationSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass WSPATREvaluationSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View Evaluation', icon: 'ViewIcon', disabled: true },\r\n { id: 'bulk', label: 'Recommend for Approval', tooltip: '', disabled: true },\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n this.searchParameters = \r\n [\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"FinancialYearID\", Value: \"\" },\r\n\r\n ]\r\n\r\n this.headCells = \r\n [\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: 'CompanyName', numeric: false, disablePadding: true, label: 'Company Name' },\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' },\r\n { id: 'VerificationDate', numeric: false, disablePadding: true, label: 'Verification Date' },\r\n { id: 'VerifiedBy', numeric: false, disablePadding: true, label: 'Verified By' },\r\n { id: 'VerificationStatus', numeric: false, disablePadding: true, label: 'Verification Status' },\r\n { id: 'EvaluationStatus', numeric: false, disablePadding: true, label: 'Evaluation Status' },\r\n\r\n ]\r\n\r\n let model = \r\n {\r\n SDLNumber: \"\",\r\n FinancialYearID: \"\"\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedWSPATR: null,\r\n selectedWSPATRs: null,\r\n showBulk: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection.length > 1) {\r\n this.setState({ selectedWSPATR: null, selectedWSPATRs: selection });\r\n toolbarRef.current.setButtonDisabled(\"bulk\", false);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n }\r\n else if (selection.length === 1) {\r\n this.setState({ selectedWSPATR: selection[0].Id, selectedWSPATRs: null });\r\n toolbarRef.current.setButtonDisabled(\"bulk\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", false);\r\n }\r\n else {\r\n this.setState({ selectedWSPATR: null, selectedWSPATRs: null });\r\n toolbarRef.current.setButtonDisabled(\"bulk\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n }\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n\r\n if (\"bulk\" === buttonId) {\r\n if (this.state.selectedWSPATRs !== null)\r\n {\r\n let WSPATRList = \"\";\r\n const wspatrs = this.state.selectedWSPATRs;\r\n \r\n for (let i = 0; i < wspatrs.length; i++) {\r\n if (i === 0) { WSPATRList += wspatrs[i].Id; }\r\n else { WSPATRList += \",\" + wspatrs[i].Id; }\r\n\r\n }\r\n const url = `api/sims/WSPATREvaluation/UpdateEvaluationRecommend`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n this.setState(\r\n {\r\n selectedWSPATRs: null,\r\n clearGrid: true,\r\n FinancialYearID: \"0\",\r\n });\r\n toolbarRef.current.setButtonDisabled(\"bulk\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(WSPATRList)\r\n }\r\n );\r\n }\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/WSPATREvaluationMain\",\r\n state: {\r\n WSPATRID: this.state.selectedWSPATR\r\n }\r\n })\r\n }\r\n }\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n onGridCleared = () => {\r\n this.setState({ clearGrid: false });\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n \r\n
\r\n { this.handleSelection(selection) }}\r\n clearGrid={this.state.clearGrid}\r\n onGridCleared={this.onGridCleared}\r\n toolbarRef={toolbarRef}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(WSPATREvaluationSearch)\r\n);\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport Item from \"antd/lib/list/Item\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport './Style.css'\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport WebIcon from '@material-ui/icons/Web';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Typography } from \"antd\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport LinkDialog from \"../../etqa/LinkDialog\";\r\nimport LetterReasonDialog from \"./Controls/LetterReasonDialog.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Evaluation Dashboard', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation', widthRatio: .154 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .047 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .047 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .047 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .047 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .047 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .047 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .047 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .047 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .047 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .047 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .047 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .047 },\r\n { id: 'Age1', numeric: false, disablePadding: true, label: 'Age < 35', widthRatio: .047 },\r\n { id: 'Age2', numeric: false, disablePadding: true, label: 'Age 35 - 55', widthRatio: .047 },\r\n { id: 'Age3', numeric: false, disablePadding: true, label: 'Age > 55', widthRatio: .047 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .047 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .047 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .047 }\r\n];\r\n\r\nconst useStyles = theme => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n title: {\r\n flex: 1,\r\n color: 'white',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nclass WSPATREvaluationMain extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n objectProps: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.object)) ? this.props.location.state.object : null,\r\n formObject: null,\r\n lookupArray: null,\r\n lookupVArray: null,\r\n FinancialYear: '',\r\n OrganisationName: '',\r\n Status: '',\r\n model: {\r\n Name: \"\",\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n EvaluationPermission: \"\",\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: 0 }],\r\n OpenDialog: false,\r\n formViewURL: \"\",\r\n formName: \"\",\r\n linkDialogOpen: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getForms(this.state.id)\r\n this.getlookup(this.state.id)\r\n this.CheckEvaluationPermissions(this.state.id)\r\n }\r\n getForms(id) {\r\n let url = \"api/sims/WSPATREvaluation/GetWSPATREvaluation?Id=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n formObject: response,\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n getlookup(id) {\r\n let url = \"api/sims/WSPATREvaluation/GetLookupList?listId=YesNo\";\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ lookupArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n\r\n let urlV = \"api/sims/WSPATREvaluation/GetLookupListWSPATREvaluationStatus\";\r\n utils.invokeUrl(urlV, (response) => {\r\n this.setState({ lookupVArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n CheckEvaluationPermissions(id) {\r\n let url = \"api/sims/WSPATREvaluation/GetWSPATREvaluationPermissionCheck?WSPATRID=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n EvaluationPermission: response.Result\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleChecklistArrayCI = (event, index) => {\r\n const values = [...this.state.formObject.WSPATREvaluationChecklist];\r\n const indexObject = { ...values[index] };\r\n indexObject.ConfirmInformationYesNoID = { Id: event.target.value };\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, WSPATREvaluationChecklist: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayIO = (event, index) => {\r\n const values = [...this.state.formObject.WSPATREvaluationChecklist];\r\n const indexObject = { ...values[index] };\r\n indexObject.InformationOutstandingYesNoID = { Id: event.target.value };\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, WSPATREvaluationChecklist: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayC = (event, index) => {\r\n const values = [...this.state.formObject.WSPATREvaluationChecklist];\r\n const indexObject = { ...values[index] };\r\n indexObject.Comments = event.target.value;\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, WSPATREvaluationChecklist: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleStatus = (event) => {\r\n const finalObject = { ...this.state.formObject, WSPATREvaluationStatusID: { Id: event.target.value } }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleComment = (event) => {\r\n const finalObject = { ...this.state.formObject, EvaluationComment: event.target.value }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n SaveChecklist = () => {\r\n let url = \"api/sims/WSPATREvaluation/UpdateEvaluationChecklist\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(this.state.formObject)\r\n }\r\n )\r\n }\r\n\r\n CheckStatus = () => {\r\n if (this.state.formObject.WSPATREvaluationStatusID.Id === \"4\" || this.state.formObject.WSPATREvaluationStatusID.Id === 4) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else { this.SaveEvaluation(null) }\r\n\r\n }\r\n\r\n SaveEvaluation = (selection) => {\r\n\r\n let RejectionReasonsList = \"\";\r\n if (selection !== null) {\r\n for (let i = 0; i < selection.length; i++) {\r\n if (i === 0) { RejectionReasonsList += selection[i].Id; }\r\n else { RejectionReasonsList += \",\" + selection[i].Id; }\r\n\r\n }\r\n }\r\n\r\n let SaveObject = { ...this.state.formObject, RejectionReasons: RejectionReasonsList };\r\n this.setState({ formObject: SaveObject });\r\n console.log(SaveObject);\r\n let url = \"api/sims/WSPATREvaluation/UpdateFinalEvaluation\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(SaveObject)\r\n }\r\n )\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n\r\n this.setState({\r\n linkDialogOpen: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: './WSPATREvaluation'\r\n });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n //this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n buttonSubmitClickHandler() {\r\n this.submit();\r\n }\r\n\r\n FileDownload(id, DocumentType) {\r\n utils.invokeUrl(\"api/sims/WSPATREvaluation/DownloadWSPATRDocument?DocumentID=\" + id, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n };\r\n\r\n OpenForm(id, formUrl, fName) {\r\n console.log(formUrl);\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = id\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n OpenDialog: true,\r\n formViewURL: formUrl,\r\n formName: fName\r\n });\r\n }\r\n\r\n CloseForm = () => {\r\n this.setState({\r\n OpenDialog: false,\r\n formViewURL: \"\",\r\n formName: \"\"\r\n });\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const tablerows = !utils.isNull(this.state.formObject) ? this.state.formObject.WSPATREvaluationChecklist.map((item, index) => (\r\n item.LinkInformation.split(\"|\")[0] !== \"Calculation\" ?\r\n \r\n \r\n {item.Number}\r\n \r\n {item.CheckList}\r\n \r\n this.handleChecklistArrayCI(values, index)}>\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n\r\n {lookupitem.Description}\r\n\r\n ))}\r\n \r\n \r\n \r\n this.handleChecklistArrayIO(values, index)} >\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n {lookupitem.Description}\r\n ))}\r\n \r\n \r\n \r\n this.handleChecklistArrayC(values, index)}> \r\n \r\n \r\n {item.LinkInformation.split(\"|\")[0] !== \"Document\" && item.LinkInformation.split(\"|\")[0] !== \"Form\" ? null :\r\n item.LinkInformation.split(\"|\")[0] === \"Document\" ?\r\n this.FileDownload(item.LinkInformation.split(\"|\")[1])} >\r\n :\r\n this.OpenForm(item.LinkInformation.split(\"|\")[1], item.DataURL, item.CheckList)} >\r\n }\r\n \r\n \r\n :\r\n \r\n \r\n {item.Number}\r\n \r\n {item.CheckList}\r\n \r\n {item.LinkInformation.split(\"|\")[2]}\r\n \r\n \r\n {item.LinkInformation.split(\"|\")[3]}\r\n \r\n \r\n this.handleChecklistArrayC(values, index)}> \r\n \r\n \r\n {item.LinkInformation.split(\"|\")[1]}\r\n \r\n \r\n ))\r\n :\r\n null;\r\n\r\n\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n WSP/ATR Evaluation
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n #\r\n Checklist\r\n Please check and confirm that the information has been completed by the organisation Y/N?\r\n Information Submitted (Y/N)\r\n Comments\r\n Links\r\n \r\n \r\n \r\n {tablerows}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Evaluation Status
\r\n
\r\n this.handleStatus(values)}>\r\n \r\n {!utils.isNull(this.state.lookupVArray) ? this.state.lookupVArray.map((lookupVitem, index) => (\r\n\r\n {lookupVitem.Description}\r\n\r\n )) : null}\r\n \r\n \r\n Verification Comment
\r\n
\r\n this.handleComment(values)}> \r\n \r\n Evaluation Comment
\r\n
\r\n this.handleComment(values)}> \r\n \r\n Evaluator
\r\n
\r\n\r\n \r\n \r\n Evaluation Date
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n  \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.formName}\r\n \r\n\r\n \r\n \r\n

\r\n \r\n
\r\n\r\n\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle=\"Rejection Reasons\"\r\n linkName={\"RejectionReasons\"} linkHandler={(selection) => this.SaveEvaluation(selection)}\r\n selectionId={this.state.id}\r\n buttonName=\"Save\"\r\n >\r\n \r\n \r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withStyles(useStyles())(withMenuPermission(WSPATREvaluationMain)));","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n\r\n\r\nfunction createData(number, checkList, confirmation, submited, comments) {\r\n return { number, checkList, confirmation, submited, comments };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst useStyles = makeStyles({\r\n root: {\r\n // width: '90%',\r\n margin: 0,\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n container: {\r\n maxHeight: 600,\r\n width: '100%'\r\n },\r\n bullet: {\r\n display: 'inline-block',\r\n margin: '0 2px',\r\n transform: 'scale(0.8)',\r\n },\r\n title: {\r\n fontSize: 10,\r\n },\r\n pos: {\r\n marginBottom: 12,\r\n },\r\n icon: {\r\n borderRadius: '50%',\r\n width: 12,\r\n height: 12,\r\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\r\n backgroundColor: '#f5f8fa',\r\n\r\n 'input:hover ~ &': {\r\n backgroundColor: '#ebf1f5',\r\n },\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)',\r\n },\r\n },\r\n table: {\r\n minWidth: 700,\r\n width: \"100%\"\r\n },\r\n checkedIcon: {\r\n backgroundColor: '#01579B',\r\n '&:before': {\r\n display: 'block',\r\n width: 16,\r\n height: 16,\r\n content: '\"\"',\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: '#01579B',\r\n },\r\n },\r\n});\r\n\r\n\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 10,\r\n\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 400\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst CommentInput = (props) => {\r\n return (\r\n \r\n props.handleComment(e)}\r\n multiline\r\n rows={1}\r\n rowsMax={3}\r\n />\r\n \r\n );\r\n}\r\n\r\n\r\n\r\nconst ApprovalForm = React.forwardRef((props, ref) => {\r\n const classes = useStyles();\r\n\r\n const [proofOfBankingDetailsComment, setproofOfBankingDetailsComment] = React.useState(\"\")\r\n const [workplaceSkillsPlanComment, setworkplaceSkillsPlanComment] = React.useState(\"\")\r\n const [plannedPivotalTrainingComment, setplannedPivotalTrainingComment] = React.useState(\"\")\r\n const [plannedBeneficiariesofTrainingComment, setplannedBeneficiariesofTrainingComment] = React.useState(\"\")\r\n const [annualTrainingReportComment, setannualTrainingReportComment] = React.useState(\"\")\r\n const [actualPivotalTrainingComment, setactualPivotalTrainingComment] = React.useState(\"\")\r\n const [actualBeneficiariesofTrainingComment, setactualBeneficiariesofTrainingComment] = React.useState(\"\")\r\n const [proofofTrainingUploadedComment, setproofofTrainingUploadedComment] = React.useState(\"\")\r\n const [authorisationPageUploadedComment, setauthorisationPageUploadedComment] = React.useState(\"\")\r\n const [trainingImplementedComment, settrainingImplementedComment] = React.useState(\"\")\r\n const [verificationComment, setVerificationComment] = React.useState(\"\")\r\n\r\n\r\n\r\n const handleComment = (event) => {\r\n if (event.target.value) {\r\n setproofOfBankingDetailsComment(event.target.value)\r\n }\r\n }\r\n const handleComment1 = (event) => {\r\n if (event.target.value) {\r\n setworkplaceSkillsPlanComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment2 = (event) => {\r\n if (event.target.value) {\r\n setplannedPivotalTrainingComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment3 = (event) => {\r\n if (event.target.value) {\r\n setplannedBeneficiariesofTrainingComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment4 = (event) => {\r\n if (event.target.value) {\r\n setannualTrainingReportComment(event.target.value)\r\n }\r\n }\r\n const handleComment5 = (event) => {\r\n if (event.target.value) {\r\n setactualPivotalTrainingComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment6 = (event) => {\r\n if (event.target.value) {\r\n setactualBeneficiariesofTrainingComment(event.target.value)\r\n alert(\"6\")\r\n }\r\n }\r\n\r\n const handleComment7 = (event) => {\r\n if (event.target.value) {\r\n setproofofTrainingUploadedComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment8 = (event) => {\r\n if (event.target.value) {\r\n setauthorisationPageUploadedComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment9 = (event) => {\r\n if (event.target.value) {\r\n settrainingImplementedComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleVerificationComment = (event) => {\r\n setVerificationComment(event.target.value)\r\n }\r\n\r\n\r\n\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n\r\n {/* {props.location.state.FinancialYearID === null ?

PLEASE SELECT FINANCIAL YEAR

: */}\r\n
\r\n \r\n \r\n \r\n \r\n # \r\n CheckList\r\n Please check and confirm that the information has been completed by the organisation (Y/N)\r\n \r\n Information Submitted (Y/N) \r\n Comments\r\n Links\r\n \r\n \r\n \r\n\r\n \r\n a. \r\n Proof of Banking Details\r\n \r\n \r\n \r\n handleComment(values)} />\r\n \r\n\r\n \r\n b. \r\n Workplace Skills Plan\r\n \r\n \r\n \r\n handleComment1(values)} />\r\n \r\n\r\n \r\n c. \r\n Planned Pivotal Training – Employees\r\n \r\n \r\n \r\n handleComment2(values)} />\r\n \r\n\r\n \r\n d. \r\n Planned Beneficiaries of Training – Employees\r\n \r\n \r\n \r\n handleComment3(values)} />\r\n \r\n\r\n \r\n e. \r\n Annual Training Report\r\n \r\n \r\n \r\n handleComment4(values)} />\r\n \r\n\r\n \r\n f. \r\n Actual Pivotal Training \r\n \r\n \r\n \r\n handleComment5(values)} />\r\n \r\n\r\n \r\n g. \r\n Actual Beneficiaries of Training\r\n \r\n \r\n \r\n handleComment6(values)} />\r\n \r\n\r\n \r\n h. \r\n Proof of Training Uploaded\r\n \r\n \r\n \r\n handleComment7(values)} />\r\n \r\n\r\n \r\n i. \r\n Authorisation Page Uploaded\r\n \r\n \r\n \r\n handleComment8(values)} />\r\n \r\n\r\n \r\n j. \r\n Training Implemented\r\n \r\n \r\n \r\n handleComment9(values)} />\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n # \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n 1. \r\n Board status\r\n \r\n \r\n \r\n \r\n\r\n \r\n 2. \r\n Approver\r\n \r\n 7/7/21\r\n \r\n \r\n \r\n \r\n \r\n 3. \r\n Approval Date\r\n \r\n 7/7/21\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default ApprovalForm;","import React, { useState } from 'react';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ApprovalsForm from './ApprovalDetailsForm';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\n\r\n\r\nconst Approval = (props) => {\r\n const utils = new ViewUtils();\r\n const approvalRef = React.createRef();\r\n const [message, setMessage] = useState(\"\")\r\n const [messageStyle, setMessageStyle] = useState(\"\")\r\n\r\n const handleFormValueChange = (values) => {\r\n if (values != null) {\r\n // setFinancialYear(values.FinancialYearID)\r\n }\r\n }\r\n\r\n const toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'Save', tooltip: 'Save Approval', icon: 'SaveIcon' },\r\n \r\n ]\r\n }\r\n\r\n ]\r\n };\r\n\r\n\r\n // save() {\r\n // utils.saveForm(this, formRef, `api/sims/DGOrganisation/updateDGOrganisation`, this.successCallback, null, null, '/DGOrganisationSearch');\r\n // }\r\n\r\n const handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"save\") {\r\n // this.setState({ addDialogOpen: true });\r\n } else if (buttonId === \"close\") {\r\n props.history.push({\r\n pathname: \"/assessment\",\r\n state: { selection: props.location.state.organisationID }\r\n })\r\n }\r\n }\r\n\r\n return (\r\n \r\n\r\n\r\n
\r\n {/* */}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n handleToolbarButtonClick(buttonId)}\r\n // buttonMenuClickHandler={(menu) => handleToolbarButtonMenuClick(menu)}\r\n enabled={true}\r\n config={toolbarConfig} />\r\n
\r\n handleFormValueChange(values)}\r\n />\r\n
\r\n
\r\n\r\n );\r\n}\r\n\r\nexport default Approval;","import React from 'react';\r\nimport { EntityForm } from '../../widgets/SearchForm';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function WSPATRApprovalSearchForm(props) {\r\n const classes = useStyles();\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}","import React from 'react';\r\nimport { EntityForm } from '../../widgets/SearchForm';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nconst WSPATRApprovalBulkForm = React.forwardRef((props, ref) =>{\r\n const classes = useStyles();\r\n\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n  \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n  \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default WSPATRApprovalBulkForm;","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport WSPATRApprovalBulkForm from './WSPATRApprovalBulkForm';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function WSPATRApprovalBulkDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [AddDiasbaled, setAddDiasbaled] = React.useState(true);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setFilename(\"\");\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const add = () => {\r\n let formValue = formRef.current.getValue();\r\n\r\n let WSTATRIDList = \"\";\r\n let selection = props.selectedWSPATRs;\r\n if (selection !== null) {\r\n for (let i = 0; i < selection.length; i++) {\r\n if (i === 0) { WSTATRIDList += selection[i].Id; }\r\n else { WSTATRIDList += \",\" + selection[i].Id; }\r\n\r\n }\r\n }\r\n\r\n formValue.Document = {};\r\n formValue.Document.Name = filename;\r\n formValue.Document.size = size;\r\n formValue.Document.type = type;\r\n formValue.Document.base64 = base64;\r\n formValue.WSPATRIDs = WSTATRIDList;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const url = `api/sims/WSPATRApproval/UpdateBulkApproval`;\r\n if (formValue.BoardApprovalStatusID.Id === \"4\" || formValue.BoardApprovalStatusID.Id === 4) { url = \"api/sims/WSPATRApproval/UpdateBulkRejection\" }\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n setAddDiasbaled(false);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n

\r\n Bulk Approve / Reject\r\n

\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport WSPATRApprovalSearchForm from './WSPATRApprovalSearchForm';\r\nimport WSPATRApprovalBulkForm from './WSPATRApprovalBulkForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport BulkDialog from './WSPATRApprovalBulkDialog';\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst formRef = React.createRef();\r\n\r\nclass WSPATRApprovalSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'view', label: '', tooltip: 'View', icon: 'ViewIcon', disabled: true },\r\n { id: 'bulk', label: 'Bulk Approve / Reject', tooltip: '', disabled: true },\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n this.searchParameters =\r\n [\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"FinancialYearID\", Value: \"\" },\r\n\r\n ]\r\n\r\n this.headCells =\r\n [\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: 'CompanyName', numeric: false, disablePadding: true, label: 'Company Name' },\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' },\r\n { id: 'VerificationDate', numeric: false, disablePadding: true, label: 'Verification Date' },\r\n { id: 'VerifiedBy', numeric: false, disablePadding: true, label: 'Verification By' },\r\n { id: 'VerificationStatus', numeric: false, disablePadding: true, label: 'Verification Status' },\r\n { id: 'DateEvaluated', numeric: false, disablePadding: true, label: 'DateEvaluated' },\r\n { id: 'EvaluatedBy', numeric: false, disablePadding: true, label: 'Evaluated By' },\r\n { id: 'EvaluationStatus', numeric: false, disablePadding: true, label: 'Evaluation Status' },\r\n { id: 'ApprovalStatus', numeric: false, disablePadding: true, label: 'Approval Status' },\r\n\r\n ]\r\n\r\n let model =\r\n {\r\n SDLNumber: \"\",\r\n FinancialYearID: \"\"\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedWSPATR: null,\r\n selectedWSPATRs: null,\r\n showBulk: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelection = (selection) => {\r\n \r\n if (selection.length > 1) {\r\n this.setState({ selectedWSPATR: null, selectedWSPATRs: selection });\r\n toolbarRef.current.setButtonDisabled(\"bulk\", false);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n }\r\n else if (selection.length === 1) {\r\n this.setState({ selectedWSPATR: selection[0].Id, selectedWSPATRs: null });\r\n toolbarRef.current.setButtonDisabled(\"bulk\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", false);\r\n }\r\n else {\r\n this.setState({ selectedWSPATR: null, selectedWSPATRs: null });\r\n toolbarRef.current.setButtonDisabled(\"bulk\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n }\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n \r\n if (\"bulk\" === buttonId) {\r\n if (this.state.selectedWSPATRs !== null) { this.setState({ showBulk: true }); }\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/WSPATRApprovalMain\",\r\n state: {\r\n WSPATRID: this.state.selectedWSPATR\r\n }\r\n })\r\n } \r\n }\r\n\r\n postAddHandler(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n showBulk: false,\r\n selectedWSPATR: null,\r\n selectedWSPATRs: null,\r\n Message: response.Message,\r\n MessageStyle: \"success\",\r\n clearSelectedRow: true\r\n });\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n toolbarRef.current.setButtonDisabled(\"bulk\", true);\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n showBulk: false,\r\n selectedWSPATR: null,\r\n selectedWSPATRs: null,\r\n Message: response.Message,\r\n MessageStyle: \"warning\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n showBulk: false,\r\n selectedWSPATR: null,\r\n selectedWSPATRs: null,\r\n clearSelectedRow: true\r\n })\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n toolbarRef.current.setButtonDisabled(\"bulk\", true);\r\n }\r\n }\r\n\r\n\r\n //BulkApproveReject = () => {\r\n // let formValue = formRef.current.getValue();\r\n // let WSTATRIDList = \"\";\r\n // let selection = this.state.selectedWSPATRs;\r\n // if (selection !== null) {\r\n // for (let i = 0; i < selection.length; i++) {\r\n // if (i === 0) { WSTATRIDList += selection[i].Id; }\r\n // else { WSTATRIDList += \",\" + selection[i].Id; }\r\n\r\n // }\r\n // }\r\n\r\n // if (formValue !== null) {\r\n // formValue.WSPATRIDs = WSTATRIDList;\r\n // let url = \"api/sims/WSPATRApproval/UpdateBulkApproval\";\r\n // if (formValue.BoardApprovalStatusID.Id === \"4\" || formValue.BoardApprovalStatusID.Id === 4) { url = \"api/sims/WSPATRApproval/UpdateBulkRejection\" }\r\n // utils.invokeUrl(url, (response) => {\r\n // this.successCallback(response);\r\n // },\r\n // (response) => {\r\n // this.error(response);\r\n // },\r\n // {\r\n // method: 'PUT',\r\n // headers: {\r\n // 'Accept': 'application/json',\r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n // },\r\n // body: JSON.stringify(formValue)\r\n // }\r\n // )\r\n // }\r\n //}\r\n\r\n render() {\r\n return (\r\n\r\n \r\n { this.handleSelection(selection) }}\r\n toolbarRef={toolbarRef}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(WSPATRApprovalSearch)\r\n);\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport Item from \"antd/lib/list/Item\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport './Style.css'\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport WebIcon from '@material-ui/icons/Web';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Typography } from \"antd\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport LinkDialog from \"../../etqa/LinkDialog\";\r\nimport LetterReasonDialog from \"./Controls/LetterReasonDialog.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to WSP/ATR Approval Dashboard', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation', widthRatio: .154 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .047 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .047 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .047 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .047 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .047 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .047 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .047 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .047 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .047 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .047 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .047 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .047 },\r\n { id: 'Age1', numeric: false, disablePadding: true, label: 'Age < 35', widthRatio: .047 },\r\n { id: 'Age2', numeric: false, disablePadding: true, label: 'Age 35 - 55', widthRatio: .047 },\r\n { id: 'Age3', numeric: false, disablePadding: true, label: 'Age > 55', widthRatio: .047 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .047 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .047 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .047 }\r\n];\r\n\r\nconst useStyles = theme => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n title: {\r\n flex: 1,\r\n color: 'white',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nclass WSPATRApprovalMain extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n objectProps: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.object)) ? this.props.location.state.object : null,\r\n formObject: null,\r\n lookupArray: null,\r\n lookupVArray: null,\r\n FinancialYear: '',\r\n OrganisationName: '',\r\n Status: '',\r\n model: {\r\n Name: \"\",\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.WSPATRID)) ? this.props.location.state.WSPATRID : null,\r\n VerificationPermission: \"\",\r\n searchParameters: [{ Name: \"WSPATRID\", Value: this.props.location.state.WSPATRID }, { Name: \"WSPATRFormsID\", Value: 0 }],\r\n OpenDialog: false,\r\n formViewURL: \"\",\r\n formName: \"\",\r\n linkDialogOpen: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getForms(this.state.id)\r\n this.getlookup(this.state.id)\r\n this.CheckVerificationPermissions(this.state.id)\r\n }\r\n getForms(id) {\r\n let url = \"api/sims/WSPATRApproval/GetWSPATRApproval?Id=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n formObject: response,\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n getlookup(id) {\r\n let url = \"api/sims/WSPATRApproval/GetLookupList?listId=YesNo\";\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ lookupArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n\r\n let urlV = \"api/sims/WSPATRApproval/GetLookupListWSPATRApprovalStatus\";\r\n utils.invokeUrl(urlV, (response) => {\r\n this.setState({ lookupVArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n CheckVerificationPermissions(id) {\r\n let url = \"api/sims/WSPATRApproval/GetWSPATRApprovalPermissionCheck?WSPATRID=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n VerificationPermission: response.Result\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleChecklistArrayCI = (event, index) => {\r\n const values = [...this.state.formObject.WSPATRApprovalChecklist];\r\n const indexObject = { ...values[index] };\r\n indexObject.ConfirmInformationYesNoID = { Id: event.target.value };\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, WSPATRApprovalChecklist: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayIO = (event, index) => {\r\n const values = [...this.state.formObject.WSPATRApprovalChecklist];\r\n const indexObject = { ...values[index] };\r\n indexObject.InformationOutstandingYesNoID = { Id: event.target.value };\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, WSPATRApprovalChecklist: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayC = (event, index) => {\r\n const values = [...this.state.formObject.WSPATRApprovalChecklist];\r\n const indexObject = { ...values[index] };\r\n indexObject.Comments = event.target.value;\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, WSPATRApprovalChecklist: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleStatus = (event) => {\r\n const finalObject = { ...this.state.formObject, WSPATREvaluationApprovalStatusID: { Id: event.target.value } }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n SaveChecklist = () => {\r\n let url = \"api/sims/WSPATRApproval/UpdateApprovalChecklist\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(this.state.formObject)\r\n }\r\n )\r\n }\r\n\r\n CheckStatus = () => {\r\n if (this.state.formObject.WSPATREvaluationApprovalStatusID.Id === \"4\" || this.state.formObject.WSPATREvaluationApprovalStatusID.Id === 4) {\r\n this.setState({ linkDialogOpen: true, message: \"\" })\r\n }\r\n else { this.SaveVerification(null) }\r\n\r\n }\r\n\r\n SaveVerification = (selection) => {\r\n\r\n let RejectionReasonsList = \"\";\r\n if (selection !== null) {\r\n for (let i = 0; i < selection.length; i++) {\r\n if (i === 0) { RejectionReasonsList += selection[i].Id; }\r\n else { RejectionReasonsList += \",\" + selection[i].Id; }\r\n\r\n }\r\n }\r\n\r\n let SaveObject = { ...this.state.formObject, RejectionReasons: RejectionReasonsList };\r\n this.setState({ formObject: SaveObject });\r\n //console.log(SaveObject);\r\n let url = \"api/sims/WSPATRApproval/UpdateFinalApproval\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(SaveObject)\r\n }\r\n )\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n\r\n\r\n\r\n\r\n this.setState({\r\n linkDialogOpen: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: './WSPATRApproval'\r\n });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n //this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n buttonSubmitClickHandler() {\r\n this.submit();\r\n }\r\n\r\n FileDownload(id, DocumentType) {\r\n utils.invokeUrl(\"api/sims/WSPATRApproval/DownloadWSPATRDocument?DocumentID=\" + id, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n };\r\n\r\n OpenForm(id, formUrl, fName) {\r\n console.log(formUrl);\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = id\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n OpenDialog: true,\r\n formViewURL: formUrl,\r\n formName: fName\r\n });\r\n }\r\n\r\n CloseForm = () => {\r\n this.setState({\r\n OpenDialog: false,\r\n formViewURL: \"\",\r\n formName: \"\"\r\n });\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const tablerows = !utils.isNull(this.state.formObject) ? this.state.formObject.WSPATRApprovalChecklist.map((item, index) => (\r\n item.LinkInformation.split(\"|\")[0] !== \"Calculation\" ?\r\n \r\n \r\n {item.Number}\r\n \r\n {item.CheckList}\r\n \r\n this.handleChecklistArrayCI(values, index)}>\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n\r\n {lookupitem.Description}\r\n\r\n ))}\r\n \r\n \r\n \r\n this.handleChecklistArrayIO(values, index)} >\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n {lookupitem.Description}\r\n ))}\r\n \r\n \r\n \r\n this.handleChecklistArrayC(values, index)}> \r\n \r\n \r\n {item.LinkInformation.split(\"|\")[0] !== \"Document\" && item.LinkInformation.split(\"|\")[0] !== \"Form\" ? null :\r\n item.LinkInformation.split(\"|\")[0] === \"Document\" ?\r\n this.FileDownload(item.LinkInformation.split(\"|\")[1])} >\r\n :\r\n this.OpenForm(item.LinkInformation.split(\"|\")[1], item.DataURL, item.CheckList)} >\r\n }\r\n \r\n \r\n :\r\n \r\n \r\n {item.Number}\r\n \r\n {item.CheckList}\r\n \r\n {item.LinkInformation.split(\"|\")[2]}\r\n \r\n \r\n {item.LinkInformation.split(\"|\")[3]}\r\n \r\n \r\n this.handleChecklistArrayC(values, index)}> \r\n \r\n \r\n {item.LinkInformation.split(\"|\")[1]}\r\n \r\n \r\n ))\r\n :\r\n null;\r\n\r\n\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n WSP/ATR Approval
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n #\r\n Checklist\r\n Please check and confirm that the information has been completed by the organisation Y/N?\r\n Information Submitted (Y/N)\r\n Comments\r\n Links\r\n \r\n \r\n \r\n {tablerows}\r\n \r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Board Status
\r\n
\r\n this.handleStatus(values)}>\r\n \r\n {!utils.isNull(this.state.lookupVArray) ? this.state.lookupVArray.map((lookupVitem, index) => (\r\n\r\n {lookupVitem.Description}\r\n\r\n )) : null}\r\n \r\n \r\n Approver
\r\n
\r\n\r\n \r\n \r\n Approval Date
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n  \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.formName}\r\n \r\n\r\n \r\n \r\n

\r\n \r\n
\r\n\r\n\r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle=\"Rejection Reasons\"\r\n linkName={\"Rejection\"} linkHandler={(selection) => this.SaveVerification(selection)}\r\n selectionId={this.state.id}\r\n buttonName=\"Save\"\r\n >\r\n \r\n \r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withStyles(useStyles())(withMenuPermission(WSPATRApprovalMain)));","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n\r\n\r\nfunction createData(number, checkList, confirmation, submited, comments) {\r\n return { number, checkList, confirmation, submited, comments };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst useStyles = makeStyles({\r\n root: {\r\n // width: '90%',\r\n margin: 0,\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n container: {\r\n maxHeight: 600,\r\n width: '100%'\r\n },\r\n bullet: {\r\n display: 'inline-block',\r\n margin: '0 2px',\r\n transform: 'scale(0.8)',\r\n },\r\n title: {\r\n fontSize: 10,\r\n },\r\n pos: {\r\n marginBottom: 12,\r\n },\r\n icon: {\r\n borderRadius: '50%',\r\n width: 12,\r\n height: 12,\r\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\r\n backgroundColor: '#f5f8fa',\r\n\r\n 'input:hover ~ &': {\r\n backgroundColor: '#ebf1f5',\r\n },\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)',\r\n },\r\n },\r\n table: {\r\n minWidth: 700,\r\n width: \"100%\"\r\n },\r\n checkedIcon: {\r\n backgroundColor: '#01579B',\r\n '&:before': {\r\n display: 'block',\r\n width: 16,\r\n height: 16,\r\n content: '\"\"',\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: '#01579B',\r\n },\r\n },\r\n});\r\n\r\n\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 10,\r\n\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 400\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst CommentInput = (props) => {\r\n return (\r\n \r\n props.handleComment(e)}\r\n multiline\r\n rows={1}\r\n rowsMax={3}\r\n />\r\n \r\n );\r\n}\r\n\r\n\r\n\r\nconst VerificationForm = React.forwardRef((props, ref) => {\r\n const classes = useStyles();\r\n\r\n const [proofOfBankingDetailsComment, setproofOfBankingDetailsComment] = React.useState(\"\")\r\n const [workplaceSkillsPlanComment, setworkplaceSkillsPlanComment] = React.useState(\"\")\r\n const [plannedPivotalTrainingComment, setplannedPivotalTrainingComment] = React.useState(\"\")\r\n const [plannedBeneficiariesofTrainingComment, setplannedBeneficiariesofTrainingComment] = React.useState(\"\")\r\n const [annualTrainingReportComment, setannualTrainingReportComment] = React.useState(\"\")\r\n const [actualPivotalTrainingComment, setactualPivotalTrainingComment] = React.useState(\"\")\r\n const [actualBeneficiariesofTrainingComment, setactualBeneficiariesofTrainingComment] = React.useState(\"\")\r\n const [proofofTrainingUploadedComment, setproofofTrainingUploadedComment] = React.useState(\"\")\r\n const [authorisationPageUploadedComment, setauthorisationPageUploadedComment] = React.useState(\"\")\r\n const [trainingImplementedComment, settrainingImplementedComment] = React.useState(\"\")\r\n const [verificationComment, setVerificationComment] = React.useState(\"\")\r\n\r\n\r\n\r\n const handleComment = (event) => {\r\n if (event.target.value) {\r\n setproofOfBankingDetailsComment(event.target.value)\r\n }\r\n }\r\n const handleComment1 = (event) => {\r\n if (event.target.value) {\r\n setworkplaceSkillsPlanComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment2 = (event) => {\r\n if (event.target.value) {\r\n setplannedPivotalTrainingComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment3 = (event) => {\r\n if (event.target.value) {\r\n setplannedBeneficiariesofTrainingComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment4 = (event) => {\r\n if (event.target.value) {\r\n setannualTrainingReportComment(event.target.value)\r\n }\r\n }\r\n const handleComment5 = (event) => {\r\n if (event.target.value) {\r\n setactualPivotalTrainingComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment6 = (event) => {\r\n if (event.target.value) {\r\n setactualBeneficiariesofTrainingComment(event.target.value)\r\n alert(\"6\")\r\n }\r\n }\r\n\r\n const handleComment7 = (event) => {\r\n if (event.target.value) {\r\n setproofofTrainingUploadedComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment8 = (event) => {\r\n if (event.target.value) {\r\n setauthorisationPageUploadedComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment9 = (event) => {\r\n if (event.target.value) {\r\n settrainingImplementedComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleVerificationComment = (event) => {\r\n setVerificationComment(event.target.value)\r\n }\r\n\r\n\r\n\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n\r\n {/* {props.location.state.FinancialYearID === null ?

PLEASE SELECT FINANCIAL YEAR

: */}\r\n
\r\n \r\n \r\n \r\n \r\n # \r\n CheckList\r\n Please check and confirm that the information has been completed by the organisation (Y/N)\r\n \r\n Information Submitted (Y/N) \r\n Comments\r\n Links\r\n \r\n \r\n \r\n\r\n \r\n a. \r\n Proof of Banking Details\r\n \r\n \r\n \r\n handleComment(values)} />\r\n \r\n\r\n \r\n b. \r\n Workplace Skills Plan\r\n \r\n \r\n \r\n handleComment1(values)} />\r\n \r\n\r\n \r\n c. \r\n Planned Pivotal Training – Employees\r\n \r\n \r\n \r\n handleComment2(values)} />\r\n \r\n\r\n \r\n d. \r\n Planned Beneficiaries of Training – Employees\r\n \r\n \r\n \r\n handleComment3(values)} />\r\n \r\n\r\n \r\n e. \r\n Annual Training Report\r\n \r\n \r\n \r\n handleComment4(values)} />\r\n \r\n\r\n \r\n f. \r\n Actual Pivotal Training \r\n \r\n \r\n \r\n handleComment5(values)} />\r\n \r\n\r\n \r\n g. \r\n Actual Beneficiaries of Training\r\n \r\n \r\n \r\n handleComment6(values)} />\r\n \r\n\r\n \r\n h. \r\n Proof of Training Uploaded\r\n \r\n \r\n \r\n handleComment7(values)} />\r\n \r\n\r\n \r\n i. \r\n Authorisation Page Uploaded\r\n \r\n \r\n \r\n handleComment8(values)} />\r\n \r\n\r\n \r\n j. \r\n Training Implemented\r\n \r\n \r\n \r\n handleComment9(values)} />\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n # \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n 1. \r\n Verification status\r\n \r\n \r\n \r\n \r\n \r\n 2. \r\n Verification Comment\r\n \r\n handleVerificationComment(values)} />\r\n \r\n \r\n \r\n 3. \r\n Verifier\r\n \r\n Verifiers Name\r\n \r\n \r\n \r\n 4. \r\n Verification Date\r\n \r\n 7/7/21\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default VerificationForm;","import React, {useEffect, useState} from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport VerificationForm from './VerificationForm';\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst Ref = React.createRef();\r\n \r\nconst Verification = (props) => {\r\n const [FinancialYear, setFinancialYear] = useState(null)\r\n\r\n\r\n const handleFormValueChange = (values) => {\r\n if (values != null){\r\n setFinancialYear(values.FinancialYearID)\r\n }\r\n }\r\n\r\n\r\n const toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: \"Close\", tooltip: \"Close\" },\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n\r\n const handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"view\") {\r\n // this.setState({ addDialogOpen: true });\r\n } else if (buttonId === \"close\") {\r\n props.history.push({\r\n pathname: \"/WspAtrEvaluation\",\r\n state: {selection: props.location.state.organisationID}\r\n })\r\n }\r\n }\r\n\r\n \r\n return (\r\n \r\n {/* */}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {props.location.state.FinancialYearID === null ?

PLEASE SELECT FINANCIAL YEAR

:\r\n \r\n }\r\n \r\n \r\n
\r\n handleToolbarButtonClick(buttonId)}\r\n // buttonMenuClickHandler={(menu) => handleToolbarButtonMenuClick(menu)}\r\n enabled={true}\r\n config={toolbarConfig} />\r\n
\r\n handleFormValueChange(values)} \r\n />\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Verification;","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n\r\n\r\nfunction createData(number, checkList, confirmation, submited, comments) {\r\n return { number, checkList, confirmation, submited, comments };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst useStyles = makeStyles({\r\n root: {\r\n // width: '90%',\r\n margin: 0,\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n container: {\r\n maxHeight: 600,\r\n width: '100%'\r\n },\r\n bullet: {\r\n display: 'inline-block',\r\n margin: '0 2px',\r\n transform: 'scale(0.8)',\r\n },\r\n title: {\r\n fontSize: 10,\r\n },\r\n pos: {\r\n marginBottom: 12,\r\n },\r\n icon: {\r\n borderRadius: '50%',\r\n width: 12,\r\n height: 12,\r\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\r\n backgroundColor: '#f5f8fa',\r\n\r\n 'input:hover ~ &': {\r\n backgroundColor: '#ebf1f5',\r\n },\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)',\r\n },\r\n },\r\n table: {\r\n minWidth: 700,\r\n width: \"100%\"\r\n },\r\n checkedIcon: {\r\n backgroundColor: '#01579B',\r\n '&:before': {\r\n display: 'block',\r\n width: 16,\r\n height: 16,\r\n content: '\"\"',\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: '#01579B',\r\n },\r\n },\r\n});\r\n\r\n\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 10,\r\n\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 400\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst CommentInput = (props) => {\r\n return (\r\n \r\n props.handleComment(e)}\r\n multiline\r\n rows={1}\r\n rowsMax={3}\r\n />\r\n \r\n );\r\n}\r\n\r\n\r\n\r\nconst EvaluationForm = React.forwardRef((props, ref) => {\r\n const classes = useStyles();\r\n\r\n const [proofOfBankingDetailsComment, setproofOfBankingDetailsComment] = React.useState(\"\")\r\n const [workplaceSkillsPlanComment, setworkplaceSkillsPlanComment] = React.useState(\"\")\r\n const [plannedPivotalTrainingComment, setplannedPivotalTrainingComment] = React.useState(\"\")\r\n const [plannedBeneficiariesofTrainingComment, setplannedBeneficiariesofTrainingComment] = React.useState(\"\")\r\n const [annualTrainingReportComment, setannualTrainingReportComment] = React.useState(\"\")\r\n const [actualPivotalTrainingComment, setactualPivotalTrainingComment] = React.useState(\"\")\r\n const [actualBeneficiariesofTrainingComment, setactualBeneficiariesofTrainingComment] = React.useState(\"\")\r\n const [proofofTrainingUploadedComment, setproofofTrainingUploadedComment] = React.useState(\"\")\r\n const [authorisationPageUploadedComment, setauthorisationPageUploadedComment] = React.useState(\"\")\r\n const [trainingImplementedComment, settrainingImplementedComment] = React.useState(\"\")\r\n const [verificationComment, setVerificationComment] = React.useState(\"\")\r\n const [evaluationComment, setEvaluationComment] = React.useState(\"\")\r\n\r\n\r\n\r\n const handleComment = (event) => {\r\n if (event.target.value) {\r\n setproofOfBankingDetailsComment(event.target.value)\r\n }\r\n }\r\n const handleComment1 = (event) => {\r\n if (event.target.value) {\r\n setworkplaceSkillsPlanComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment2 = (event) => {\r\n if (event.target.value) {\r\n setplannedPivotalTrainingComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment3 = (event) => {\r\n if (event.target.value) {\r\n setplannedBeneficiariesofTrainingComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment4 = (event) => {\r\n if (event.target.value) {\r\n setannualTrainingReportComment(event.target.value)\r\n }\r\n }\r\n const handleComment5 = (event) => {\r\n if (event.target.value) {\r\n setactualPivotalTrainingComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment6 = (event) => {\r\n if (event.target.value) {\r\n setactualBeneficiariesofTrainingComment(event.target.value)\r\n alert(\"6\")\r\n }\r\n }\r\n\r\n const handleComment7 = (event) => {\r\n if (event.target.value) {\r\n setproofofTrainingUploadedComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment8 = (event) => {\r\n if (event.target.value) {\r\n setauthorisationPageUploadedComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleComment9 = (event) => {\r\n if (event.target.value) {\r\n settrainingImplementedComment(event.target.value)\r\n }\r\n }\r\n\r\n const handleVerificationComment = (event) => {\r\n setVerificationComment(event.target.value)\r\n }\r\n\r\n const handleEvaluationComment = (event) => {\r\n setEvaluationComment(event.target.value)\r\n }\r\n\r\n\r\n\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n\r\n {/* {props.location.state.FinancialYearID === null ?

PLEASE SELECT FINANCIAL YEAR

: */}\r\n
\r\n \r\n \r\n \r\n \r\n # \r\n CheckList\r\n Please check and confirm that the information has been completed by the organisation (Y/N)\r\n \r\n Information Submitted (Y/N) \r\n Comments\r\n Links\r\n \r\n \r\n \r\n\r\n \r\n a. \r\n Proof of Banking Details\r\n \r\n \r\n \r\n handleComment(values)} />\r\n \r\n\r\n \r\n b. \r\n Workplace Skills Plan\r\n \r\n \r\n \r\n handleComment1(values)} />\r\n \r\n\r\n \r\n c. \r\n Planned Pivotal Training – Employees\r\n \r\n \r\n \r\n handleComment2(values)} />\r\n \r\n\r\n \r\n d. \r\n Planned Beneficiaries of Training – Employees\r\n \r\n \r\n \r\n handleComment3(values)} />\r\n \r\n\r\n \r\n e. \r\n Annual Training Report\r\n \r\n \r\n \r\n handleComment4(values)} />\r\n \r\n\r\n \r\n f. \r\n Actual Pivotal Training \r\n \r\n \r\n \r\n handleComment5(values)} />\r\n \r\n\r\n \r\n g. \r\n Actual Beneficiaries of Training\r\n \r\n \r\n \r\n handleComment6(values)} />\r\n \r\n\r\n \r\n h. \r\n Proof of Training Uploaded\r\n \r\n \r\n \r\n handleComment7(values)} />\r\n \r\n\r\n \r\n i. \r\n Authorisation Page Uploaded\r\n \r\n \r\n \r\n handleComment8(values)} />\r\n \r\n\r\n \r\n j. \r\n Training Implemented\r\n Training Planned (20/21): 0 \r\n Training Planned (20/22): 1 \r\n handleComment9(values)} />\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n # \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n 1. \r\n \r\n Evaluation Status\r\n \r\n \r\n \r\n \r\n \r\n 2. \r\n Verification Comment\r\n \r\n handleVerificationComment(values)} />\r\n \r\n \r\n \r\n 3. \r\n Evaluation Comment\r\n \r\n handleEvaluationComment(values)} />\r\n \r\n \r\n \r\n 4. \r\n Evaluator\r\n \r\n Evaluator's Name\r\n \r\n \r\n \r\n 5. \r\n Evaluation Date\r\n \r\n 7/7/21\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default EvaluationForm;","import React, {useEffect, useState} from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EvaluationForm from './EvaluationForm';\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst Ref = React.createRef();\r\n \r\nconst Evaluation = (props) => {\r\n const [FinancialYear, setFinancialYear] = useState(null)\r\n\r\n\r\n const handleFormValueChange = (values) => {\r\n if (values != null){\r\n setFinancialYear(values.FinancialYearID)\r\n }\r\n }\r\n\r\n\r\n const toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: \"Close\", tooltip: \"Close\" },\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n\r\n const handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"view\") {\r\n // this.setState({ addDialogOpen: true });\r\n } else if (buttonId === \"close\") {\r\n props.history.push({\r\n pathname: \"/WspAtrEvaluation\",\r\n state: {selection: props.location.state.organisationID}\r\n })\r\n }\r\n }\r\n\r\n \r\n return (\r\n \r\n {/* */}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {props.location.state.FinancialYearID === null ?

PLEASE SELECT FINANCIAL YEAR

:\r\n \r\n }\r\n \r\n \r\n
\r\n handleToolbarButtonClick(buttonId)}\r\n // buttonMenuClickHandler={(menu) => handleToolbarButtonMenuClick(menu)}\r\n enabled={true}\r\n config={toolbarConfig} />\r\n
\r\n handleFormValueChange(values)} \r\n />\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Evaluation;","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport clsx from 'clsx';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport { useEffect } from 'react';\r\nimport Select from '@material-ui/core/Select';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst RadioButton = (props, ref) => {\r\n const [value, setValue] = React.useState(typeof props.initial === 'string' || props.initial instanceof String ? props.initial : props.initial.toString());\r\n\r\n function handleChange(event) {\r\n const { target: { value: _value } } = event;\r\n\r\n\r\n if (typeof _value === 'string' || _value instanceof String) {\r\n setValue(_value);\r\n //value = _value;\r\n }\r\n else {\r\n setValue(_value.toString());\r\n //value = _value.toString();\r\n }\r\n\r\n props.handleScopeSelected(event);\r\n }\r\n\r\n React.useEffect(() => {\r\n if (typeof props.initial === 'string' || props.initial instanceof String) {\r\n setValue(props.initial);\r\n //value = props.initial;\r\n }\r\n else {\r\n setValue(props.initial.toString());\r\n //value = props.initial.toString();\r\n }\r\n\r\n });\r\n\r\n return (\r\n \r\n \r\n
\r\n } label=\"Yes\" />\r\n } label=\"No\" />\r\n
\r\n\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst CommentInput = (props) => {\r\n return (\r\n \r\n props.handleComment(e)}\r\n isRequired=\"true\"\r\n required\r\n id={props.id}\r\n error={((props.question1 == \"\" || props.question1 == undefined) && (props.question2 == \"\" || props.question2 == undefined)) && props.submitted}\r\n helperText={((props.question1 == \"\" || props.question1 == undefined) && (props.question2 == \"\" || props.question2 == undefined)) && props.submitted ? \"Required\" : null}\r\n />\r\n\r\n \r\n );\r\n}\r\n\r\n\r\nfunction createData(number, checkList, confirmation, submited, comments) {\r\n return { number, checkList, confirmation, submited, comments };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst useStyles = makeStyles({\r\n head: {\r\n width: '100%',\r\n },\r\n\r\n root: {\r\n // width: '90%',\r\n margin: 0,\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n container: {\r\n maxHeight: 600,\r\n },\r\n bullet: {\r\n display: 'inline-block',\r\n margin: '0 2px',\r\n transform: 'scale(0.8)',\r\n },\r\n title: {\r\n fontSize: 10,\r\n },\r\n pos: {\r\n marginBottom: 12,\r\n },\r\n icon: {\r\n borderRadius: '50%',\r\n width: 12,\r\n height: 12,\r\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\r\n backgroundColor: '#f5f8fa',\r\n\r\n 'input:hover ~ &': {\r\n backgroundColor: '#ebf1f5',\r\n },\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)',\r\n },\r\n },\r\n table: {\r\n minWidth: 700,\r\n width: \"100%\"\r\n },\r\n checkedIcon: {\r\n backgroundColor: '#01579B',\r\n '&:before': {\r\n display: 'block',\r\n width: 16,\r\n height: 16,\r\n content: '\"\"',\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: '#01579B',\r\n },\r\n },\r\n});\r\n\r\nfunction StyledRadio(props) {\r\n const classes = useStyles();\r\n\r\n return (\r\n }\r\n icon={}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 10,\r\n\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 10,\r\n fontWeight: 400\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\n\r\nconst StakeholderfeedbackForm = React.forwardRef((props, ref) => {\r\n const classes = useStyles();\r\n\r\n const [Stakeholderfeedback, setStakeholderfeedback] = React.useState(props.state.Stakeholderfeedback);\r\n\r\n const [FinancialObject, setFinancialObject] = React.useState({});\r\n const [FinancialObject2, setFinancialObject2] = React.useState(undefined);\r\n\r\n const [FinancialStakeholderFeedback, setFinancialStakeholderFeedback] = React.useState(undefined);\r\n\r\n const [ShowTable, setShowTable] = React.useState(false);\r\n\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n\r\n const [FinancialYearObject, setFinancialYearID] = React.useState(\"Financial Year\");\r\n\r\n\r\n const handleScopeSelected = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question1YesNoID\");\r\n\r\n }\r\n\r\n const handleScopeSelected1 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question2YesNoID\");\r\n\r\n }\r\n\r\n const handleScopeSelected2 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question3YesNoID\");\r\n\r\n }\r\n\r\n\r\n\r\n const handleScopeSelected3 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question4YesNoID\");\r\n\r\n }\r\n\r\n const handleScopeSelected4 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question5YesNoID\");\r\n\r\n }\r\n\r\n const handleScopeSelected5 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question6YesNoID\");\r\n\r\n }\r\n\r\n\r\n const handleScopeSelected6 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question7YesNoID\");\r\n\r\n }\r\n\r\n\r\n\r\n const handleComment = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question1\");\r\n\r\n }\r\n\r\n const handleComment1 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question2\");\r\n\r\n }\r\n\r\n const handleComment2 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question3\");\r\n\r\n }\r\n\r\n const handleComment3 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question4\");\r\n\r\n }\r\n\r\n const handleComment4 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question5\");\r\n\r\n }\r\n const handleComment5 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question6\");\r\n\r\n }\r\n\r\n const handleComment6 = (event) => {\r\n props.valueChangeHandler(event.target.value, \"Question7\");\r\n\r\n }\r\n\r\n //const handleComment7 = () => {\r\n // if (event) {\r\n // var i = \"hjbhj\";\r\n // }\r\n\r\n // if (ref.current) {\r\n // var i = ref.current.getValue();\r\n\r\n // const url = \"api/sims/StakeholderFeedback/FindStakeholderFeedbackDetailsById\" + \"?organisationId=\" + props.state.Stakeholderfeedback.OrganisationID + \"&financialYearId=\" + i.FinancialYearID.Id;\r\n // utils.invokeUrl(url, (response) => {\r\n // if (response.Question1YesNoID == 0 || response.Question2YesNoID == 0) {\r\n // var b = response.Question1YesNoID;\r\n // }\r\n\r\n // }, {});\r\n\r\n // }\r\n\r\n //}\r\n\r\n\r\n const handleFinancialId = () => {\r\n setStakeholderfeedback(props.state.Stakeholderfeedback);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n const fields = [\r\n createData('1.', \" Proof of Banking Details\", handleScopeSelected(values)} initial={props.state.Stakeholderfeedback.Question1YesNoID} id=\"Question1YesNoID\" />, handleComment(values)} id=\"1\" submitted={props.state.submitted} question1={props.state.Stakeholderfeedback.Question1YesComment} question2={props.state.Stakeholderfeedback.Question1NoComment} initial={Stakeholderfeedback.Question1NoComment} initial2={Stakeholderfeedback.Question1YesComment} />),\r\n\r\n createData('2.', \" Workplace Skills Plan \", handleScopeSelected1(values)} initial={props.state.Stakeholderfeedback.Question2YesNoID} id=\"Question2YesNoID\" />, handleComment1(values)} id=\"2\" submitted={props.state.submitted} question1={props.state.Stakeholderfeedback.Question2YesComment} question2={props.state.Stakeholderfeedback.Question2NoComment} initial={Stakeholderfeedback.Question2NoComment} initial2={Stakeholderfeedback.Question2YesComment} />),\r\n\r\n createData('3.', \" Planned Pivotal Training – Employees\", handleScopeSelected2(values)} initial={props.state.Stakeholderfeedback.Question3YesNoID} id=\"Question3YesNoID\" />, handleComment2(values)} id=\"3\" submitted={props.state.submitted} question1={props.state.Stakeholderfeedback.Question3YesComment} question2={props.state.Stakeholderfeedback.Question3NoComment} initial={Stakeholderfeedback.Question3NoComment} initial2={Stakeholderfeedback.Question3YesComment} />),\r\n\r\n createData('4.', \" Planned Beneficiaries of Training – Employees\", handleScopeSelected3(values)} initial={props.state.Stakeholderfeedback.Question4YesNoID} id=\"Question4YesNoID\" />, handleComment3(values)} id=\"4\" submitted={props.state.submitted} question1={props.state.Stakeholderfeedback.Question4YesComment} question2={props.state.Stakeholderfeedback.Question4NoComment} initial={Stakeholderfeedback.Question4NoComment} initial2={Stakeholderfeedback.Question4YesComment} />),\r\n\r\n createData('5.', \" Annual Training Report\", handleScopeSelected4(values)} initial={props.state.Stakeholderfeedback.Question5YesNoID} id=\"Question5YesNoID\" />, handleComment4(values)} id=\"5\" submitted={props.state.submitted} question1={props.state.Stakeholderfeedback.Question5YesComment} question2={props.state.Stakeholderfeedback.Question5NoComment} initial={Stakeholderfeedback.Question5NoComment} initial2={Stakeholderfeedback.Question5YesComment} />),\r\n\r\n createData('6.', \" Actual Pivotal Training \", handleScopeSelected5(values)} initial={props.state.Stakeholderfeedback.Question6YesNoID} id=\"Question6YesNoID\" />, handleComment5(values)} id=\"6\" submitted={props.state.submitted} question1={props.state.Stakeholderfeedback.Question6YesComment} question2={props.state.Stakeholderfeedback.Question6NoComment} initial={Stakeholderfeedback.Question6NoComment} initial2={Stakeholderfeedback.Question6YesComment} />),\r\n\r\n createData('7.', \" Actual Beneficiaries of Training \", handleScopeSelected6(values)} initial={props.state.Stakeholderfeedback.Question7YesNoID} id=\"Question7YesNoID\" />, handleComment6(values)} id=\"7\" submitted={props.state.submitted} question1={props.state.Stakeholderfeedback.Question7YesComment} question2={props.state.Stakeholderfeedback.Question7NoComment} initial={Stakeholderfeedback.Question7NoComment} initial2={Stakeholderfeedback.Question7YesComment} />),\r\n\r\n\r\n ];\r\n\r\n\r\n\r\n return (\r\n \r\n\r\n {form =>\r\n
\r\n
\r\n\r\n {/* {props.location.state.FinancialYearID === null ?

PLEASE SELECT FINANCIAL YEAR

: */}\r\n\r\n\r\n
\r\n \r\n\r\n\r\n\r\n\r\n
\r\n
\r\n {props.state.showTable ?\r\n \r\n \r\n \r\n \r\n # \r\n Feedback on\r\n\r\n (Y/N) \r\n Comments \r\n \r\n \r\n \r\n\r\n\r\n {fields.map((row) => (\r\n \r\n \r\n {row.number}\r\n \r\n {row.checkList}\r\n {row.confirmation}\r\n {row.submited}\r\n {row.comments}\r\n \r\n ))}\r\n\r\n \r\n
\r\n
: null\r\n }\r\n\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default StakeholderfeedbackForm;","import React, { useEffect, useState, Component } from 'react';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport StakeholderfeedbackForm from './StackholderfeedbackForm';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst formRef = React.createRef();\r\n\r\nclass Feedback extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n }\r\n\r\n state = {\r\n\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n financialStakeholderFeedback: null,\r\n showTable: false,\r\n\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n\r\n\r\n submitted: false,\r\n Stakeholderfeedback: {\r\n ID: 0,\r\n OrganisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n FinancialYearID: {},\r\n Question1YesNoID: 1,\r\n Question1YesComment: \"\",\r\n Question1NoComment: \"\",\r\n Question2YesNoID: 1,\r\n Question2YesComment: \"\",\r\n Question2NoComment: \"\",\r\n Question3YesNoID: 1,\r\n Question3YesComment: \"\",\r\n Question3NoComment: \"\",\r\n Question4YesNoID: 1,\r\n Question4YesComment: \"\",\r\n Question4NoComment: \"\",\r\n Question5YesNoID: 1,\r\n Question5YesComment: \"\",\r\n Question5NoComment: \"\",\r\n Question6YesNoID: 1,\r\n Question6YesComment: \"\",\r\n Question6NoComment: \"\",\r\n Question7YesNoID: 1,\r\n Question7YesComment: \"\",\r\n Question7NoComment: \"\",\r\n }\r\n\r\n }\r\n\r\n toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon', visible: utils.isNull(this.state.id) ? this.props.menuPermissionItem.Edit : this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }\r\n save() {\r\n if (((this.state.Stakeholderfeedback.Question1YesComment == \"\" || this.state.Stakeholderfeedback.Question1YesComment == undefined) && (this.state.Stakeholderfeedback.Question1NoComment == \"\" || this.state.Stakeholderfeedback.Question1NoComment == undefined)) ||\r\n ((this.state.Stakeholderfeedback.Question2YesComment == \"\" || this.state.Stakeholderfeedback.Question2YesComment == undefined) && (this.state.Stakeholderfeedback.Question2NoComment == \"\" || this.state.Stakeholderfeedback.Question2NoComment == undefined)) ||\r\n ((this.state.Stakeholderfeedback.Question3YesComment == \"\" || this.state.Stakeholderfeedback.Question3YesComment == undefined) && (this.state.Stakeholderfeedback.Question3NoComment == \"\" || this.state.Stakeholderfeedback.Question3NoComment == undefined)) ||\r\n ((this.state.Stakeholderfeedback.Question4YesComment == \"\" || this.state.Stakeholderfeedback.Question4YesComment == undefined) && (this.state.Stakeholderfeedback.Question4NoComment == \"\" || this.state.Stakeholderfeedback.Question4NoComment == undefined)) ||\r\n ((this.state.Stakeholderfeedback.Question5YesComment == \"\" || this.state.Stakeholderfeedback.Question5YesComment == undefined) && (this.state.Stakeholderfeedback.Question5NoComment == \"\" || this.state.Stakeholderfeedback.Question5NoComment == undefined)) ||\r\n ((this.state.Stakeholderfeedback.Question6YesComment == \"\" || this.state.Stakeholderfeedback.Question6YesComment == undefined) && (this.state.Stakeholderfeedback.Question6NoComment == \"\" || this.state.Stakeholderfeedback.Question6NoComment == undefined)) ||\r\n ((this.state.Stakeholderfeedback.Question7YesComment == \"\" || this.state.Stakeholderfeedback.Question7YesComment == undefined) && (this.state.Stakeholderfeedback.Question7NoComment == \"\" || this.state.Stakeholderfeedback.Question7NoComment == undefined))) {\r\n this.state.submitted = true;\r\n this.forceUpdate();\r\n }\r\n\r\n else {\r\n let formValue = formRef.current.getValue();\r\n this.forceUpdate();\r\n this.state.submitted = true;\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let isAdd = true;\r\n formValue.OrganisationID = this.state.organisationID;\r\n formValue.FinancialYearID = formValue.FinancialYearObject;\r\n formValue.Question1YesNoID = this.state.Stakeholderfeedback.Question1YesNoID;\r\n formValue.Question1YesComment = this.state.Stakeholderfeedback.Question1YesComment;\r\n formValue.Question1NoComment = this.state.Stakeholderfeedback.Question1NoComment;\r\n\r\n formValue.Question2YesNoID = this.state.Stakeholderfeedback.Question2YesNoID;\r\n formValue.Question2YesComment = this.state.Stakeholderfeedback.Question2YesComment;\r\n formValue.Question2NoComment = this.state.Stakeholderfeedback.Question2NoComment;\r\n\r\n formValue.Question3YesNoID = this.state.Stakeholderfeedback.Question3YesNoID;\r\n formValue.Question3YesComment = this.state.Stakeholderfeedback.Question3YesComment;\r\n formValue.Question3NoComment = this.state.Stakeholderfeedback.Question3NoComment;\r\n\r\n formValue.Question4YesNoID = this.state.Stakeholderfeedback.Question4YesNoID;\r\n formValue.Question4YesComment = this.state.Stakeholderfeedback.Question4YesComment;\r\n formValue.Question4NoComment = this.state.Stakeholderfeedback.Question4NoComment;\r\n\r\n formValue.Question5YesNoID = this.state.Stakeholderfeedback.Question5YesNoID;\r\n formValue.Question5YesComment = this.state.Stakeholderfeedback.Question5YesComment;\r\n formValue.Question5NoComment = this.state.Stakeholderfeedback.Question5NoComment;\r\n\r\n formValue.Question6YesNoID = this.state.Stakeholderfeedback.Question6YesNoID;\r\n formValue.Question6YesComment = this.state.Stakeholderfeedback.Question6YesComment;\r\n formValue.Question6NoComment = this.state.Stakeholderfeedback.Question6NoComment;\r\n\r\n formValue.Question7YesNoID = this.state.Stakeholderfeedback.Question7YesNoID;\r\n formValue.Question7YesComment = this.state.Stakeholderfeedback.Question7YesComment;\r\n formValue.Question7NoComment = this.state.Stakeholderfeedback.Question7NoComment;\r\n\r\n\r\n if (isAdd) {\r\n const url = `api/sims/StakeholderFeedback/SaveUpdateStakeholderFeedback`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n\r\n this.state.submitted = false;\r\n this.forceUpdate();\r\n\r\n this.setState({ id: response.EntityId });\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange = (value, id) => {\r\n\r\n\r\n if (value != null && id != null) {\r\n //let StakeholderfeedbackUpdate = { ...this.state.Stakeholderfeedback };\r\n let StakeholderfeedbackUpdate = this.state.Stakeholderfeedback;\r\n\r\n if (id == \"Question1YesNoID\") {\r\n\r\n StakeholderfeedbackUpdate.Question1YesNoID = value;\r\n\r\n if (value == 2) {\r\n StakeholderfeedbackUpdate.Question1NoComment = StakeholderfeedbackUpdate.Question1YesComment;\r\n StakeholderfeedbackUpdate.Question1YesComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question1YesComment = StakeholderfeedbackUpdate.Question1NoComment;\r\n StakeholderfeedbackUpdate.Question1NoComment = \"\";\r\n }\r\n\r\n }\r\n\r\n else if (id == \"Question2YesNoID\") {\r\n StakeholderfeedbackUpdate.Question2YesNoID = value;\r\n if (value == 2) {\r\n StakeholderfeedbackUpdate.Question2NoComment = StakeholderfeedbackUpdate.Question2YesComment;\r\n StakeholderfeedbackUpdate.Question2YesComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question2YesComment = StakeholderfeedbackUpdate.Question2NoComment;\r\n StakeholderfeedbackUpdate.Question2NoComment = \"\";\r\n }\r\n }\r\n else if (id == \"Question3YesNoID\") {\r\n StakeholderfeedbackUpdate.Question3YesNoID = value;\r\n if (value == 2) {\r\n StakeholderfeedbackUpdate.Question3NoComment = StakeholderfeedbackUpdate.Question3YesComment;\r\n StakeholderfeedbackUpdate.Question3YesComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question3YesComment = StakeholderfeedbackUpdate.Question3NoComment;\r\n StakeholderfeedbackUpdate.Question3NoComment = \"\";\r\n }\r\n }\r\n else if (id == \"Question4YesNoID\") {\r\n StakeholderfeedbackUpdate.Question4YesNoID = value;\r\n if (value == 2) {\r\n StakeholderfeedbackUpdate.Question4NoComment = StakeholderfeedbackUpdate.Question4YesComment;\r\n StakeholderfeedbackUpdate.Question4YesComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question4YesComment = StakeholderfeedbackUpdate.Question4NoComment;\r\n StakeholderfeedbackUpdate.Question4NoComment = \"\";\r\n }\r\n }\r\n else if (id == \"Question5YesNoID\") {\r\n StakeholderfeedbackUpdate.Question5YesNoID = value;\r\n if (value == 2) {\r\n StakeholderfeedbackUpdate.Question5NoComment = StakeholderfeedbackUpdate.Question5YesComment;\r\n StakeholderfeedbackUpdate.Question5YesComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question5YesComment = StakeholderfeedbackUpdate.Question5NoComment;\r\n StakeholderfeedbackUpdate.Question5NoComment = \"\";\r\n }\r\n }\r\n else if (id == \"Question6YesNoID\") {\r\n StakeholderfeedbackUpdate.Question6YesNoID = value;\r\n if (value == 2) {\r\n StakeholderfeedbackUpdate.Question6NoComment = StakeholderfeedbackUpdate.Question6YesComment;\r\n StakeholderfeedbackUpdate.Question6YesComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question6YesComment = StakeholderfeedbackUpdate.Question6NoComment;\r\n StakeholderfeedbackUpdate.Question6NoComment = \"\";\r\n }\r\n }\r\n else if (id == \"Question7YesNoID\") {\r\n StakeholderfeedbackUpdate.Question7YesNoID = value;\r\n if (value == 2) {\r\n StakeholderfeedbackUpdate.Question7NoComment = StakeholderfeedbackUpdate.Question7YesComment;\r\n StakeholderfeedbackUpdate.Question7YesComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question7YesComment = StakeholderfeedbackUpdate.Question7NoComment;\r\n StakeholderfeedbackUpdate.Question7NoComment = \"\";\r\n }\r\n }\r\n else if (id == \"Question1\") {\r\n if (StakeholderfeedbackUpdate.Question1YesNoID == 1) {\r\n StakeholderfeedbackUpdate.Question1YesComment = value;\r\n StakeholderfeedbackUpdate.Question1NoComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question1NoComment = value;\r\n StakeholderfeedbackUpdate.Question1YesComment = \"\";\r\n }\r\n }\r\n else if (id == \"Question2\") {\r\n if (StakeholderfeedbackUpdate.Question2YesNoID == 1) {\r\n StakeholderfeedbackUpdate.Question2YesComment = value;\r\n StakeholderfeedbackUpdate.Question2NoComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question2NoComment = value;\r\n StakeholderfeedbackUpdate.Question2YesComment = \"\";\r\n }\r\n }\r\n else if (id == \"Question3\") {\r\n if (StakeholderfeedbackUpdate.Question3YesNoID == 1) {\r\n StakeholderfeedbackUpdate.Question3YesComment = value;\r\n StakeholderfeedbackUpdate.Question3NoComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question3NoComment = value;\r\n StakeholderfeedbackUpdate.Question3YesComment = \"\";\r\n }\r\n }\r\n else if (id == \"Question4\") {\r\n if (StakeholderfeedbackUpdate.Question4YesNoID == 1) {\r\n StakeholderfeedbackUpdate.Question4YesComment = value;\r\n StakeholderfeedbackUpdate.Question4NoComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question4NoComment = value;\r\n StakeholderfeedbackUpdate.Question4YesComment = \"\";\r\n }\r\n }\r\n else if (id == \"Question5\") {\r\n if (StakeholderfeedbackUpdate.Question5YesNoID == 1) {\r\n StakeholderfeedbackUpdate.Question5YesComment = value;\r\n StakeholderfeedbackUpdate.Question5NoComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question5NoComment = value;\r\n StakeholderfeedbackUpdate.Question5YesComment = \"\";\r\n }\r\n }\r\n else if (id == \"Question6\") {\r\n if (StakeholderfeedbackUpdate.Question6YesNoID == 1) {\r\n StakeholderfeedbackUpdate.Question6YesComment = value;\r\n StakeholderfeedbackUpdate.Question6NoComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question6NoComment = value;\r\n StakeholderfeedbackUpdate.Question6YesComment = \"\";\r\n }\r\n }\r\n\r\n\r\n\r\n else if (id == \"Question7\") {\r\n if (StakeholderfeedbackUpdate.Question7YesNoID == 1) {\r\n StakeholderfeedbackUpdate.Question7YesComment = value;\r\n StakeholderfeedbackUpdate.Question7NoComment = \"\";\r\n }\r\n\r\n else {\r\n StakeholderfeedbackUpdate.Question7NoComment = value;\r\n StakeholderfeedbackUpdate.Question7YesComment = \"\";\r\n }\r\n }\r\n\r\n\r\n else if (id == \"financialId\") {\r\n StakeholderfeedbackUpdate.FinancialYearID = value.ID;\r\n }\r\n this.setState({\r\n Stakeholderfeedback: {\r\n ID: StakeholderfeedbackUpdate.ID,\r\n OrganisationID: StakeholderfeedbackUpdate.OrganisationID,\r\n FinancialYearID: StakeholderfeedbackUpdate.FinancialYearID,\r\n Question1YesNoID: StakeholderfeedbackUpdate.Question1YesNoID,\r\n Question1YesComment: StakeholderfeedbackUpdate.Question1YesComment,\r\n Question1NoComment: StakeholderfeedbackUpdate.Question1NoComment,\r\n Question2YesNoID: StakeholderfeedbackUpdate.Question2YesNoID,\r\n Question2YesComment: StakeholderfeedbackUpdate.Question2YesComment,\r\n Question2NoComment: StakeholderfeedbackUpdate.Question2NoComment,\r\n Question3YesNoID: StakeholderfeedbackUpdate.Question3YesNoID,\r\n Question3YesComment: StakeholderfeedbackUpdate.Question3YesComment,\r\n Question3NoComment: StakeholderfeedbackUpdate.Question3NoComment,\r\n Question4YesNoID: StakeholderfeedbackUpdate.Question4YesNoID,\r\n Question4YesComment: StakeholderfeedbackUpdate.Question4YesComment,\r\n Question4NoComment: StakeholderfeedbackUpdate.Question4NoComment,\r\n Question5YesNoID: StakeholderfeedbackUpdate.Question5YesNoID,\r\n Question5YesComment: StakeholderfeedbackUpdate.Question5YesComment,\r\n Question5NoComment: StakeholderfeedbackUpdate.Question5NoComment,\r\n Question6YesNoID: StakeholderfeedbackUpdate.Question6YesNoID,\r\n Question6YesComment: StakeholderfeedbackUpdate.Question6YesComment,\r\n Question6NoComment: StakeholderfeedbackUpdate.Question6NoComment,\r\n Question7YesNoID: StakeholderfeedbackUpdate.Question7YesNoID,\r\n Question7YesComment: StakeholderfeedbackUpdate.Question7YesComment,\r\n Question7NoComment: StakeholderfeedbackUpdate.Question7NoComment,\r\n }\r\n\r\n });\r\n\r\n this.forceUpdate();\r\n\r\n\r\n\r\n }\r\n\r\n if (id == \"\" || id == undefined) {\r\n if (formRef) {\r\n if (formRef.current) {\r\n var i = formRef.current.getValue();\r\n if (true) {\r\n if (i != null && i != undefined) {\r\n this.setState({ showTable: true });\r\n const url = \"api/sims/StakeholderFeedback/FindStakeholderFeedbackDetailsById\" + \"?organisationId=\" + this.state.Stakeholderfeedback.OrganisationID + \"&financialYearId=\" + i.FinancialYearObject.Id;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Question1YesNoID != 0 || response.Question2YesNoID != 0) {\r\n\r\n\r\n this.state.Stakeholderfeedback.Question1YesNoID = response.Question1YesNoID;\r\n if (response.Question1YesNoID == 1) {\r\n document.getElementById(\"1\").value = response.Question1YesComment;\r\n this.state.Stakeholderfeedback.Question1YesComment = response.Question1YesComment;\r\n }\r\n\r\n else {\r\n document.getElementById(\"1\").value = response.Question1NoComment;\r\n this.state.Stakeholderfeedback.Question1NoComment = response.Question1NoComment;\r\n }\r\n\r\n\r\n this.state.Stakeholderfeedback.Question2YesNoID = response.Question2YesNoID;\r\n if (response.Question2YesNoID == 1) {\r\n document.getElementById(\"2\").value = response.Question2YesComment;\r\n this.state.Stakeholderfeedback.Question2YesComment = response.Question2YesComment;\r\n }\r\n\r\n else {\r\n document.getElementById(\"2\").value = response.Question2NoComment;\r\n this.state.Stakeholderfeedback.Question2NoComment = response.Question2NoComment;\r\n }\r\n\r\n\r\n this.state.Stakeholderfeedback.Question3YesNoID = response.Question3YesNoID;\r\n if (response.Question3YesNoID == 1) {\r\n document.getElementById(\"3\").value = response.Question3YesComment;\r\n this.state.Stakeholderfeedback.Question3YesComment = response.Question3YesComment;\r\n }\r\n\r\n else {\r\n document.getElementById(\"3\").value = response.Question3NoComment;\r\n this.state.Stakeholderfeedback.Question3NoComment = response.Question3NoComment;\r\n }\r\n\r\n\r\n this.state.Stakeholderfeedback.Question4YesNoID = response.Question4YesNoID;\r\n if (response.Question4YesNoID == 1) {\r\n document.getElementById(\"4\").value = response.Question4YesComment;\r\n this.state.Stakeholderfeedback.Question4YesComment = response.Question4YesComment;\r\n }\r\n\r\n else {\r\n document.getElementById(\"4\").value = response.Question4NoComment;\r\n this.state.Stakeholderfeedback.Question4NoComment = response.Question4NoComment;\r\n }\r\n\r\n\r\n this.state.Stakeholderfeedback.Question5YesNoID = response.Question5YesNoID;\r\n if (response.Question5YesNoID == 1) {\r\n document.getElementById(\"5\").value = response.Question5YesComment;\r\n this.state.Stakeholderfeedback.Question5YesComment = response.Question5YesComment;\r\n }\r\n\r\n else {\r\n document.getElementById(\"5\").value = response.Question5NoComment;\r\n this.state.Stakeholderfeedback.Question5NoComment = response.Question5NoComment;\r\n }\r\n\r\n\r\n this.state.Stakeholderfeedback.Question6YesNoID = response.Question6YesNoID;\r\n if (response.Question6YesNoID == 1) {\r\n document.getElementById(\"6\").value = response.Question6YesComment;\r\n this.state.Stakeholderfeedback.Question6YesComment = response.Question6YesComment;\r\n }\r\n\r\n else {\r\n document.getElementById(\"6\").value = response.Question6NoComment;\r\n this.state.Stakeholderfeedback.Question6NoComment = response.Question6NoComment;\r\n }\r\n\r\n\r\n this.state.Stakeholderfeedback.Question7YesNoID = response.Question7YesNoID;\r\n if (response.Question7YesNoID == 1) {\r\n document.getElementById(\"7\").value = response.Question7YesComment;\r\n this.state.Stakeholderfeedback.Question7YesComment = response.Question7YesComment;\r\n }\r\n\r\n else {\r\n document.getElementById(\"7\").value = response.Question7NoComment;\r\n this.state.Stakeholderfeedback.Question7NoComment = response.Question7NoComment;\r\n }\r\n\r\n\r\n\r\n this.setState({\r\n Stakeholderfeedback: {\r\n OrganisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n FinancialYearID: {},\r\n Question1YesNoID: response.Question1YesNoID,\r\n Question1YesComment: response.Question1YesComment,\r\n Question1NoComment: response.Question1NoComment,\r\n Question2YesNoID: response.Question2YesNoID,\r\n Question2YesComment: response.Question2YesComment,\r\n Question2NoComment: response.Question2NoComment,\r\n Question3YesNoID: response.Question3YesNoID,\r\n Question3YesComment: response.Question3YesComment,\r\n Question3NoComment: response.Question3NoComment,\r\n Question4YesNoID: response.Question4YesNoID,\r\n Question4YesComment: response.Question4YesComment,\r\n Question4NoComment: response.Question4NoComment,\r\n Question5YesNoID: response.Question5YesNoID,\r\n Question5YesComment: response.Question5YesComment,\r\n Question5NoComment: response.Question5NoComment,\r\n Question6YesNoID: response.Question6YesNoID,\r\n Question6YesComment: response.Question6YesComment,\r\n Question6NoComment: response.Question6NoComment,\r\n Question7YesNoID: response.Question7YesNoID,\r\n Question7YesComment: response.Question7YesComment,\r\n Question7NoComment: response.Question7NoComment,\r\n }\r\n\r\n });\r\n\r\n\r\n this.forceUpdate();\r\n }\r\n else {\r\n document.getElementById(\"1\").value = \"\";\r\n\r\n document.getElementById(\"2\").value = \"\";\r\n\r\n document.getElementById(\"3\").value = \"\";\r\n\r\n document.getElementById(\"4\").value = \"\";\r\n\r\n document.getElementById(\"5\").value = \"\";\r\n\r\n document.getElementById(\"6\").value = \"\";\r\n\r\n document.getElementById(\"7\").value = \"\";\r\n\r\n\r\n this.state.Stakeholderfeedback.Question1YesNoID = 1;\r\n this.state.Stakeholderfeedback.Question2YesNoID = 1;\r\n this.state.Stakeholderfeedback.Question3YesNoID = 1;\r\n this.state.Stakeholderfeedback.Question4YesNoID = 1;\r\n this.state.Stakeholderfeedback.Question5YesNoID = 1;\r\n this.state.Stakeholderfeedback.Question6YesNoID = 1;\r\n this.state.Stakeholderfeedback.Question7YesNoID = 1;\r\n\r\n\r\n this.setState({\r\n Stakeholderfeedback: {\r\n OrganisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n FinancialYearID: {},\r\n Question1YesNoID: 1,\r\n Question1YesComment: \"\",\r\n Question1NoComment: \"\",\r\n Question2YesNoID: 1,\r\n Question2YesComment: \"\",\r\n Question2NoComment: \"\",\r\n Question3YesNoID: 1,\r\n Question3YesComment: \"\",\r\n Question3NoComment: \"\",\r\n Question4YesNoID: 1,\r\n Question4YesComment: \"\",\r\n Question4NoComment: \"\",\r\n Question5YesNoID: 1,\r\n Question5YesComment: \"\",\r\n Question5NoComment: \"\",\r\n Question6YesNoID: 1,\r\n Question6YesComment: \"\",\r\n Question6NoComment: \"\",\r\n Question7YesNoID: 1,\r\n Question7YesComment: \"\",\r\n Question7NoComment: \"\",\r\n }\r\n\r\n });\r\n\r\n this.forceUpdate();\r\n }\r\n\r\n\r\n }, {});\r\n }\r\n }\r\n\r\n }\r\n }\r\n this.state.submitted = false;\r\n }\r\n\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n updateTheState() {\r\n this.forceUpdate();\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > Stakeholder Feedback \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={this.toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values, event)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}/>\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(Feedback));","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function RequestExtensionForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","\r\nimport React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst LodgeApealDetailsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [docName, setDocName] = React.useState('');\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default LodgeApealDetailsForm;","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport RequestExtensionDetailsForm from './ExtensionDetailsForm';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function RequestExtensionDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [AddDiasbaled, setAddDiasbaled] = React.useState(true);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setFilename(\"\");\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const add = () => {\r\n let formValue = formRef.current.getValue();\r\n formValue.Document = {};\r\n formValue.Document.Name = filename;\r\n formValue.Document.size = size;\r\n formValue.Document.type = type;\r\n formValue.Document.base64 = base64;\r\n formValue.OrganisationID = props.OrganisationID;\r\n formValue.FinancialYearID = props.FinancialYearID;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const url = `api/sims/requestextension/addrequestextension`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n setAddDiasbaled(false);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nfunction CommentCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Declined\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Declined\") {\r\n return false\r\n }\r\n }\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst RequestExtensionEditForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default RequestExtensionEditForm;","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport EditForm from './RequestExtensionEditForm';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function RequestExtensionEditDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const update = () => {\r\n let formValue = formRef.current.getValue();\r\n //formValue.Id = props.Id;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const url = `api/sims/requestextension/updaterequestextension`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import { withRouter } from 'react-router-dom';\r\nimport React, { Component } from \"react\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport ExtensionSearchForm from './ExtensionSearchForm';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport AddDialog from './ExtensionRequestDialog';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport EditDialog from './RequestExtensionEditDialog';\r\nimport Prompt from '../../widgets/Prompt';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Date', numeric: false, disablePadding: true, label: 'Date' },\r\n { id: 'Time', numeric: false, disablePadding: true, label: 'Time' },\r\n { id: 'LoggedBy', numeric: false, disablePadding: true, label: 'Logged By' },\r\n { id: 'Letterhead', numeric: false, disablePadding: true, label: 'Letterhead' },\r\n { id: 'AuthorisedSignatory', numeric: false, disablePadding: true, label: 'Authorise signatory' },\r\n { id: 'Reasons', numeric: false, disablePadding: true, label: 'Reason' },\r\n { id: 'AppealStatus', numeric: false, disablePadding: true, label: 'Apeal Status' },\r\n { id: 'Document', numeric: false, disablePadding: true, label: 'Document', contentType: 'document' },\r\n { id: 'DateCommunicationGenerated', numeric: false, disablePadding: true, label: 'Date Communication Generated' },\r\n];\r\n\r\nclass RequestExtension extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n Id: this.props.location.state.selection\r\n },\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }, { Name: \"FinancialYearID\", Value: 0 }],\r\n Letterhead: null,\r\n AuthorisedSignatory: null,\r\n Reasons: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"Remove Request Extension\",\r\n promptContent: \"Are you sure you want to remove this Request Extension?\"\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add Request', disabled: utils.isNull(this.state.FinancialYearID), icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit Request', disabled: utils.isNull(this.state.selectedId), icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: 'remove', label: '', tooltip: 'Remove Request', disabled: utils.isNull(this.state.selectedId), icon: 'DeleteIcon', visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.setState({ editDialogOpen: true });\r\n }\r\n else if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisation\",\r\n state: { selection: this.props.location.state.organisationID }\r\n })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n } else {\r\n // this.setState({ editDialogOpen: true });\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let FinancialYearID = values.FinancialYear.Id;\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = FinancialYearID\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n FinancialYearID: FinancialYearID\r\n });\r\n toolbarRef.current.setButtonDisabled(\"add\", FinancialYearID === null || FinancialYearID.length === 0);\r\n }\r\n\r\n FileDownload = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n console.log(headCell);\r\n utils.invokeUrl(\"api/sims/requestextension/downloaddocument?id=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false });\r\n } else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: \"success\",\r\n clearSelectedRow: true\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: \"warning\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n clearSelectedRow: true\r\n })\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n\r\n remove(url) {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedId}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null })\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedId: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(),\r\n clearSelectedRow: true\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > Request an Extension \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n < ExtensionSearchForm\r\n // data={this.state.model}\r\n valueChangeHandler={(values) => this.handleFormValueChange(values)}\r\n />\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/requestextension/GetSearch\"\r\n searchParameters={this.state.searchParameters}\r\n onCellSelectionChange={(rowid, headCell) => { this.FileDownload(rowid, headCell) }}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n OrganisationID={this.props.location.state.organisationID}\r\n />\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n />\r\n\r\n { this.remove(\"api/sims/requestextension/removerequestextension\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(RequestExtension));","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function LodgeAppealForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","\r\nimport React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst LodgeApealDetailsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [docName, setDocName] = React.useState('');\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default LodgeApealDetailsForm;","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport LodgeApealDetailsForm from './LodgeApealDetailsForm';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function LodgeApealDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [AddDiasbaled, setAddDiasbaled] = React.useState(true);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setFilename(\"\");\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const add = () => {\r\n let formValue = formRef.current.getValue();\r\n formValue.Document = {};\r\n formValue.Document.Name = filename;\r\n formValue.Document.size = size;\r\n formValue.Document.type = type;\r\n formValue.Document.base64 = base64;\r\n formValue.OrganisationID = props.OrganisationID;\r\n formValue.FinancialYearID = props.FinancialYearID;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const url = `api/sims/lodgeappeal/addlodgeappeal`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n setAddDiasbaled(false);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","\r\nimport React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nfunction CommentCheck(value) {\r\n if (value !== undefined && value !== null) {\r\n if (value.Description === \"Declined\") {\r\n return true\r\n }\r\n else if (value.Description !== \"Declined\") {\r\n return false\r\n }\r\n }\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst LodgeApealEditForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n \r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default LodgeApealEditForm;","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport EditForm from './LodgeApealEditForm';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function LodgeApealEditDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const update = () => {\r\n let formValue = formRef.current.getValue();\r\n //formValue.Id = props.Id;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const url = `api/sims/lodgeappeal/updatelodgeappeal`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n \r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import { withRouter } from 'react-router-dom';\r\nimport React, { Component } from \"react\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport LodgeApealSearchForm from './LodgeApealSearchForm';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport AddDialog from './LodgeApealDialog';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport EditDialog from './LodgeApealEditDialog';\r\nimport Prompt from '../../widgets/Prompt';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Date', numeric: false, disablePadding: true, label: 'Date' },\r\n { id: 'Time', numeric: false, disablePadding: true, label: 'Time' },\r\n { id: 'LoggedBy', numeric: false, disablePadding: true, label: 'Logged By' },\r\n { id: 'Letterhead', numeric: false, disablePadding: true, label: 'Letterhead' },\r\n { id: 'AuthorisedSignatory', numeric: false, disablePadding: true, label: 'Authorise signatory' },\r\n { id: 'Reasons', numeric: false, disablePadding: true, label: 'Reason' },\r\n { id: 'AppealStatus', numeric: false, disablePadding: true, label: 'Apeal Status' },\r\n { id: 'Document', numeric: false, disablePadding: true, label: 'Document', contentType: 'document' },\r\n { id: 'DateCommunicationGenerated', numeric: false, disablePadding: true, label: 'Date Communication Generated' },\r\n];\r\n\r\nclass LodgeAppeal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n Id: this.props.location.state.selection\r\n },\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }, { Name: \"FinancialYearID\", Value: 0 }],\r\n Letterhead: null,\r\n AuthorisedSignatory: null,\r\n Reasons: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"Remove Appeal Request\",\r\n promptContent: \"Are you sure you want to remove this Appeal Request?\"\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add Request', disabled: utils.isNull(this.state.FinancialYearID), icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit Request', disabled: utils.isNull(this.state.selectedId), icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit },\r\n { id: 'remove', label: '', tooltip: 'Remove Request', disabled: utils.isNull(this.state.selectedId), icon: 'DeleteIcon', visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.setState({ editDialogOpen: true });\r\n }\r\n else if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisation\",\r\n state: { selection: this.props.location.state.organisationID }\r\n })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n } else {\r\n // this.setState({ editDialogOpen: true });\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let FinancialYearID = values.FinancialYear.Id;\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = FinancialYearID\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n FinancialYearID: FinancialYearID\r\n });\r\n toolbarRef.current.setButtonDisabled(\"add\", FinancialYearID === null || FinancialYearID.length === 0);\r\n }\r\n\r\n FileDownload = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n console.log(headCell);\r\n utils.invokeUrl(\"api/sims/lodgeappeal/downloaddocument?id=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false });\r\n } else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: \"success\",\r\n clearSelectedRow: true\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: \"warning\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n clearSelectedRow: true\r\n })\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n\r\n remove(url) {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedId}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null })\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedId: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(),\r\n clearSelectedRow: true });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > Lodge an Appeal \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n < LodgeApealSearchForm\r\n // data={this.state.model}\r\n valueChangeHandler={(values) => this.handleFormValueChange(values)}\r\n />\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/lodgeappeal/GetSearch\"\r\n searchParameters={this.state.searchParameters}\r\n onCellSelectionChange={(rowid, headCell) => { this.FileDownload(rowid, headCell) }}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n OrganisationID={this.props.location.state.organisationID}\r\n />\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n />\r\n\r\n { this.remove(\"api/sims/lodgeappeal/removelodgeappeal\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(LodgeAppeal));","\r\nimport React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst OrganisationSDFEditForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n

\r\n {\"Organisation SDF Update\"}\r\n

\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default OrganisationSDFEditForm;","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport EditForm from './OrganisationSDFEditForm';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport LinkDialog from \"../../etqa/LinkDialog\";\r\nimport LetterReasonDialog from \"../WspAtrForms/Controls/LetterReasonDialog\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function OrganisationSDFEditDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n const [selectedLinkType, setSelectedLinkType] = React.useState(null);\r\n const [linkDialogOpen, setLinkDialogOpen] = React.useState(null);\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const CheckStatus = () => {\r\n let formValue = formRef.current.getValue();\r\n //formValue.Id = props.Id;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n if (formValue.SDFStatusID.Id === \"3\" || formValue.SDFStatusID.Id === 3) { //Rejection\r\n setLinkDialogOpen(true);\r\n setMessage(\"\");\r\n }\r\n else {\r\n update(null);\r\n }\r\n }\r\n }\r\n\r\n const update = (selection) => {\r\n let formValue = formRef.current.getValue();\r\n //formValue.Id = props.Id;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let ReasonsList = \"\";\r\n if (selection !== null) {\r\n for (let i = 0; i < selection.length; i++) {\r\n if (i === 0) { ReasonsList += selection[i].Id; }\r\n else { ReasonsList += \",\" + selection[i].Id; }\r\n\r\n }\r\n }\r\n\r\n let SaveObject = { ...formValue, Reasons: ReasonsList };\r\n\r\n const url = `api/sims/organisationsdf/updateorganisationsdf`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(SaveObject)\r\n }\r\n );\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n const postLinkHandler = (isCancel, linked) => {\r\n setLinkDialogOpen(false);\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n postLinkHandler(isCancelled, linked)}\r\n dialogTitle=\"Rejection Reasons\"\r\n linkName={\"Rejection\"} linkHandler={(selection) => update(selection)}\r\n selectionId={props.id}\r\n buttonName=\"Save\"\r\n >\r\n \r\n \r\n
\r\n );\r\n}","import { withRouter } from 'react-router-dom';\r\nimport React, { Component } from \"react\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport EditDialog from './OrganisationSDFEditDialog';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'FirstName', numeric: false, disablePadding: true, label: 'First Name' },\r\n { id: 'Surname', numeric: false, disablePadding: true, label: 'Surname' },\r\n { id: 'Email', numeric: false, disablePadding: true, label: 'Email' },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date' },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'SDF Status' },\r\n { id: 'Role', numeric: false, disablePadding: true, label: 'SDF Role' },\r\n { id: 'Document', numeric: false, disablePadding: true, label: 'Document', contentType: 'document' },\r\n];\r\n\r\nclass OrganisationSDF extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n Id: this.props.location.state.selection\r\n },\r\n editDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }],\r\n clearSelectedRow: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'Change Role/Status', disabled: utils.isNull(this.state.selectedId), icon: 'EditIcon', visible: this.props.menuPermissionItem.Edit },\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"edit\") {\r\n this.setState({ editDialogOpen: true });\r\n }\r\n else if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisation\",\r\n state: { selection: this.props.location.state.organisationID }\r\n })\r\n }\r\n else {\r\n // this.setState({ editDialogOpen: true });\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let FinancialYearID = values.FinancialYear.Id;\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = FinancialYearID\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters))\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false });\r\n } else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: \"success\",\r\n clearSelectedRow: true\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: response.MessageType\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n editDialogOpen: false,\r\n selectedId: null,\r\n clearSelectedRow: true\r\n })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null })\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n FileDownload = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n //console.log(headCell);\r\n utils.invokeUrl(\"api/sims/OrganisationSDF/downloaddocument?id=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > SDF \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/OrganisationSDF/GetSearch\"\r\n searchParameters={this.state.searchParameters}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n onCellSelectionChange={(rowid, headCell) => { this.FileDownload(rowid, headCell) }}\r\n paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n />\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(OrganisationSDF));","import React, { Component, Fragment } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { PDFDownloadLink, Document, Page, StyleSheet, Text, Image, View } from '@react-pdf/renderer';\r\nimport simslogoLoading from '../../../content/images/logos/sims_logo_loading.png';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = StyleSheet.create({\r\n header: {\r\n fontSize: 20,\r\n marginBottom: 10,\r\n textAlign: 'center',\r\n color: '#114084',\r\n fontWeight : 500\r\n },\r\n text: {\r\n fontSize: 9,\r\n marginBottom: 10,\r\n textAlign: 'left',\r\n color: 'black',\r\n },\r\n body: {\r\n flexDirection: 'column',\r\n padding: 25\r\n },\r\n image: {\r\n marginBottom: 10,\r\n display: 'block',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n backgroundColor: '#003F6B',\r\n height: '100px',\r\n width: '200px',\r\n padding: 10\r\n },\r\n table: {\r\n display: \"table\",\r\n width: \"auto\",\r\n borderStyle: \"solid\",\r\n borderColor: '#bfbfbf',\r\n borderWidth: 1,\r\n borderRightWidth: 0,\r\n borderBottomWidth: 0\r\n },\r\n tableRow: {\r\n margin: \"auto\",\r\n flexDirection: \"row\"\r\n },\r\n tableColHeader: {\r\n borderStyle: \"solid\",\r\n borderColor: '#bfbfbf',\r\n borderBottomColor: '#000',\r\n borderWidth: 1,\r\n borderLeftWidth: 0,\r\n borderTopWidth: 0,\r\n backgroundColor: '#114084'\r\n },\r\n tableCol: {\r\n borderStyle: \"solid\",\r\n borderColor: '#bfbfbf',\r\n borderWidth: 1,\r\n borderLeftWidth: 0,\r\n borderTopWidth: 0\r\n },\r\n tableCellHeader: {\r\n margin: \"auto\",\r\n margin: 5,\r\n fontSize: 12,\r\n fontWeight: 500,\r\n color: 'white'\r\n },\r\n tableCell: {\r\n margin: \"auto\",\r\n margin: 5,\r\n fontSize: 10\r\n }\r\n});\r\n\r\n\r\nexport default function GrantsLeviesPrint(props) {\r\n\r\n\r\n const initiateHeaderValue = (str) => {\r\n return str\r\n .replace(/(_|-)/g, ' ')\r\n .trim()\r\n .replace(/\\w\\S*/g, function (str) {\r\n return str.charAt(0).toUpperCase() + str.substr(1)\r\n })\r\n .replace(/([a-z])([A-Z])/g, '$1 $2')\r\n .replace(/([A-Z])([A-Z][a-z])/g, '$1 $2')\r\n }\r\n \r\n const GrantData = props.data.GrantSummaryDto.map((innerItem, index) => {\r\n return { Year: innerItem.Year, Description: innerItem.Description, Amount: innerItem.Amount };\r\n });\r\n\r\n const LevyData = props.data.LevySummaryDto.map((innerItem, index) => {\r\n return {\r\n SARSArrivalDate: innerItem.SARSArrivalDate,\r\n DatePosted: innerItem.DatePosted,\r\n StakeholderLevyCalculated: innerItem.StakeholderLevyCalculated,\r\n NSFCalculation: innerItem.NSFCalculation,\r\n TotalReceivedBySETA: innerItem.TotalReceivedBySETA,\r\n MandatoryLevy: innerItem.MandatoryLevy,\r\n Discretionary: innerItem.Discretionary,\r\n Admin: innerItem.Admin,\r\n Penalty: innerItem.Penalty,\r\n Interest: innerItem.Interest\r\n };\r\n });\r\n\r\n const FinSummaryData = props.data.FinancialSummaryDto.map((innerItem, index) => {\r\n return {\r\n SARSArrivalDate: innerItem.SARSArrivalDate,\r\n Year: innerItem.Year,\r\n StakeholderLevyCalculated: innerItem.StakeholderLevyCalculated\r\n };\r\n });\r\n\r\n const GrantContents = GrantData.length !== 0 ?\r\n (\r\n\r\n \r\n \r\n \r\n {Object.keys(GrantData[0]).map((innerItem, index) => (\r\n \r\n {initiateHeaderValue(innerItem)}\r\n \r\n\r\n ))}\r\n \r\n {GrantData.map((dataItem, index) => (\r\n \r\n {Object.keys(dataItem).map((innerItem, index) => (\r\n \r\n {dataItem[innerItem]}\r\n \r\n ))}\r\n\r\n\r\n\r\n \r\n ))}\r\n \r\n \r\n\r\n ) :\r\n null;\r\n\r\n const LevyContents = LevyData.length !== 0 ?\r\n (\r\n\r\n \r\n \r\n \r\n {Object.keys(LevyData[0]).map((innerItem, index) => (\r\n \r\n {initiateHeaderValue(innerItem)}\r\n \r\n\r\n ))}\r\n \r\n {LevyData.map((dataItem, index) => (\r\n \r\n {Object.keys(dataItem).map((innerItem, index) => (\r\n \r\n {dataItem[innerItem]}\r\n \r\n ))}\r\n\r\n\r\n\r\n \r\n ))}\r\n \r\n \r\n\r\n ) :\r\n null;\r\n\r\n const FinSummaryContents = FinSummaryData.length !== 0 ?\r\n (\r\n\r\n \r\n \r\n \r\n {Object.keys(FinSummaryData[0]).map((innerItem, index) => (\r\n \r\n {initiateHeaderValue(innerItem)}\r\n \r\n\r\n ))}\r\n \r\n {FinSummaryData.map((dataItem, index) => (\r\n \r\n {Object.keys(dataItem).map((innerItem, index) => (\r\n \r\n {dataItem[innerItem]}\r\n \r\n ))}\r\n\r\n\r\n\r\n \r\n ))}\r\n \r\n \r\n\r\n ) :\r\n null;\r\n\r\n\r\n const MyDoc = () => (\r\n \r\n \r\n \r\n {props.Section}\r\n {props.data.OrganisationName}\r\n {props.data.SDLNumber}\r\n {props.data.FinancialYear}\r\n {props.data.PhysicalAddress1}\r\n {props.data.PhysicalAddress2}\r\n {props.data.PhysicalAddress3}\r\n {props.data.Municipality}\r\n {props.data.PostalCode}\r\n {props.data.PostalAddress1}\r\n {props.data.PostalAddress2}\r\n {props.data.PostalAddress3}\r\n {props.Section === \"Grant Summary\" || props.Section === \"Financial Summary\" ?\r\n\r\n GrantContents : null\r\n }\r\n {props.Section === \"Levy Summary\" ?\r\n LevyContents : null\r\n }\r\n\r\n {props.Section === \"Financial Summary\" ?\r\n {'\\n'} : null\r\n }\r\n\r\n {props.Section === \"Financial Summary\" ?\r\n \r\n FinSummaryContents : null\r\n }\r\n \r\n \r\n );\r\n\r\n return (\r\n\r\n
\r\n \r\n \r\n \r\n Generate Document for {props.Section}\r\n \r\n } fileName={props.data.OrganisationName + \" - \" + props.data.SDLNumber + \" - \" + props.Section + \" - \" + props.data.FinancialYear} >\r\n {({ blob, url, loading, error }) =>\r\n loading ? 'Generating Document...' : 'Download Document!'\r\n }\r\n \r\n \r\n \r\n
\r\n\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport \"../../etqa/crm/CRM.css\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport CardLayout from \"../../widgets/Card\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport GrantsLeviesPrint from './GrantsLeviesForm';\r\nimport Button from '@material-ui/core/Button';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst Section = [\r\n { Id: 1, Description: \"Grant Summary\" },\r\n { Id: 2, Description: \"Levy Summary\" },\r\n { Id: 3, Description: \"Financial Summary\" }\r\n]\r\nconst useStyles = theme => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n title: {\r\n flex: 1,\r\n color: 'white',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nconst headGrantCells = [\r\n { id: 'Year', numeric: false, disablePadding: true, label: 'Year' },\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Description' },\r\n { id: 'Amount', numeric: false, disablePadding: true, label: 'Amount' }\r\n\r\n];\r\n\r\nconst headLevyCells = [\r\n { id: 'SARSArrivalDate', numeric: false, disablePadding: true, label: 'SARS Arrival Date' },\r\n { id: 'DatePosted', numeric: false, disablePadding: true, label: 'Date Posted' },\r\n { id: 'StakeholderLevyCalculated', numeric: false, disablePadding: true, label: 'Stakeholder Levy Calculated' },\r\n { id: 'NSFCalculation', numeric: false, disablePadding: true, label: 'NSF Calculation' },\r\n { id: 'TotalReceivedBySETA', numeric: false, disablePadding: true, label: 'Total Received By SETA' },\r\n { id: 'MandatoryLevy', numeric: false, disablePadding: true, label: 'Mandatory Levy' },\r\n { id: 'Discretionary', numeric: false, disablePadding: true, label: 'Discretionary' },\r\n { id: 'Admin', numeric: false, disablePadding: true, label: 'Admin' },\r\n { id: 'Penalty', numeric: false, disablePadding: true, label: 'Penalty' },\r\n { id: 'Interest', numeric: false, disablePadding: true, label: 'Interest' }\r\n\r\n];\r\n\r\nconst headFinCells = [\r\n { id: 'SARSArrivalDate', numeric: false, disablePadding: true, label: 'SARS Arrival Date' },\r\n { id: 'Year', numeric: false, disablePadding: true, label: 'Year' },\r\n { id: 'StakeholderLevyCalculated', numeric: false, disablePadding: true, label: 'Stakeholder Levy Calculated' }\r\n\r\n];\r\n\r\nclass OrganisationGrantsLevies extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n dataObject: null,\r\n SectionID: 0,\r\n Section: null,\r\n FinancialYearID: 0,\r\n FinYearDisabled: true,\r\n lookupFinArray: null,\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }, { Name: \"FinancialYearID\", Value: 0 }],\r\n model: {},\r\n openPrintDialog: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'print', label: '', tooltip: 'Print', disabled: utils.isNull(this.state.dataObject), icon: 'PrintIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/skillsOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n else if (\"print\" === buttonId) {\r\n this.setState({ openPrintDialog: true })\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getlookup(this.state.id)\r\n }\r\n\r\n getlookup(id) {\r\n let url = \"api/sims/grantsandlevies/getlookuplist?listid=FinancialYear\";\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ lookupFinArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleSection = (event) => {\r\n\r\n var section = \"\"\r\n\r\n if (event.target.value === 1) {\r\n section = \"Grant Summary\"\r\n } else if (event.target.value === 2) {\r\n section = \"Levy Summary\"\r\n } else if (event.target.value === 3) {\r\n section = \"Financial Summary\"\r\n }\r\n\r\n this.setState({ SectionID: event.target.value, FinYearDisabled: false, Section: section });\r\n }\r\n handleFinancialYear = (event) => {\r\n\r\n let FinancialYearID = event.target.value;\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = FinancialYearID\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n FinancialYearID: FinancialYearID\r\n }, () => {\r\n if (this.state.FinancialYearID !== 0) {\r\n this.getData();\r\n toolbarRef.current.setButtonDisabled(\"print\", false);\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n getData = () => {\r\n utils.invokeUrl(\"api/sims/grantsandlevies/getgrantsandlevies?request=\" + utils.doGetRequestJson(0, 0, this.state.searchParameters, false), (response) => {\r\n this.setState({\r\n dataObject: response\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n createData = (name, description) => {\r\n return { name, description };\r\n }\r\n\r\n rows = [\r\n this.createData('Receipt Date', 'Date of payment to SARS'),\r\n this.createData('Received by SETA', 'Date the money was received by SETA from the Department of Labour'),\r\n this.createData('Stakeholder Levy Calculated (100%)', 'The sum of the levy received by SETA + NSF calculation + interest + penalty'),\r\n this.createData('NSF Calculation (20%)', 'Levy amount calculated as transferred to the National Skills Fund by SARS (20% of total levy),done to balance your actual payment made with the money received by SETA.'),\r\n this.createData('Total received by SETA (80%)', 'Levy amount received by SETA (80% of total levy)'),\r\n this.createData('Mandatory Levy (50%)', 'The % of the total levy received by SETA allowable for the mandatory grant.'),\r\n this.createData('Discretionary (20%)', 'The % of the total levy received by SETA allowable for the discretionary grant.'),\r\n this.createData('Admin (10%)', 'The 10% of the total levy received by SETA allowable for SETA admin.'),\r\n this.createData('Interest (80%)', 'SETA receive 80% of the interest charged by SARS as calculated by SARS'),\r\n this.createData('Penalty (80%)', 'SETA receive 80% of the penalties charged by SARS as calculated by SARS'),\r\n this.createData('SARS month', 'For internal office use only.')\r\n ];\r\n\r\n CloseForm = () => {\r\n this.setState({\r\n openPrintDialog: false\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n \r\n\r\n
\r\n

\r\n {\"Organisation > Grants and Levies \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleSection(values)} >\r\n \r\n {Section.map((lookupitem, index) => (\r\n\r\n {lookupitem.Description}\r\n\r\n ))}\r\n \r\n \r\n this.handleFinancialYear(values)} disabled={this.state.FinYearDisabled}>\r\n \r\n {!utils.isNull(this.state.lookupFinArray) ? this.state.lookupFinArray.map((lookupFinArray, index) => (\r\n\r\n {lookupFinArray.Description}\r\n\r\n )) : null}\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {!utils.isNull(this.state.dataObject) ?\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n this.state.dataObject.GrantSummaryDto.length !== 0 && (this.state.SectionID === 1 || this.state.SectionID === 3) ?\r\n
\r\n \r\n
:\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.dataObject.LevySummaryDto.length !== 0 && this.state.SectionID === 2 ?\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n Legend\r\n \r\n \r\n \r\n \r\n {this.rows.map((row) => (\r\n \r\n \r\n {row.name}\r\n \r\n {row.description}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n {\r\n this.state.dataObject.FinancialSummaryDto.length !== 0 && this.state.SectionID === 3 ?\r\n
\r\n \r\n
:\r\n \"\"\r\n }\r\n\r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withStyles(useStyles())(withMenuPermission(OrganisationGrantsLevies)));\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nconst formRef = React.createRef();\r\n\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n }))(TableCell);\r\n\r\n const StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n },\r\n }))(TableCell);\r\n \r\n const StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n }))(TableRow);\r\n \r\n function createData(number, form, description, duedate, select) {\r\n return { number, form, description, duedate, select };\r\n }\r\n const useStyles = makeStyles({\r\n table: {\r\n minWidth: 700,\r\n },\r\n });\r\n\r\n \r\nconst userRef = React.createRef();\r\nconst toolbarConfig = {\r\n items: [\r\n \r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'close', label: 'Close', tooltip: ''\r\n },\r\n {\r\n id: 'print', label: 'Print Friendly', tooltip: '', \r\n },\r\n ]\r\n }\r\n ]\r\n};\r\n\r\n\r\nconst Levies =(props)=> {\r\n const classes = useStyles();\r\n const [FinancialYear, setFinancialYear] = useState(null)\r\n const [showViewButton, setShow] = React.useState(true);\r\n const [OrganisationName, setOrganisationName] = useState('')\r\n const [TradeName, setTradeName] = useState('')\r\n const [Status, setStatus] = useState('')\r\n const [SDLNumber, setSDLNumber]= useState('')\r\n const [PhysicalAddressLine1, setPhysicalAddressLine1]= useState('')\r\n const [FaxNumber, setFaxNumber]= useState('')\r\n const [PhysicalAddressLine2, setPhysicalAddressLine2]= useState('')\r\n const [PhysicalAddressLine3, setPhysicalAddressLine3]= useState('')\r\n const [Municipality, setMunicipality]= useState('')\r\n const [ContactTelephoneNumber, setContactTelephoneNumber]= useState('')\r\n const [PostalCode, setPostalCode]= useState('')\r\n const [PostalAddressLine1, setPostalAddressLine1]= useState('')\r\n const [PostalAddressLine2, setPostalAddressLine2]= useState('')\r\n const [PostalAddressLine3, setPostalAddressLine3]= useState('')\r\n const [id, setId] = useState( props.location.state.selection)\r\n\r\n\r\n\r\n const handleToolbarButtonClick=(buttonId)=> {\r\n if(\"close\" === buttonId){ \r\n props.history.push({\r\n pathname: '/skillsOrganisationLevies',\r\n state: { selection: props.location.state.selected\r\n }\r\n });\r\n }else{\r\n //print Friendly\r\n }\r\n }\r\n\r\n\r\n useEffect(()=>{\r\n console.log(props.location.state.FinancialYearID)\r\n console.log(props.location.state.selection)\r\n }, [])\r\n \r\n\r\n const getLevyGrantData=(id)=>{\r\n console.log(\"GETTING DATA\")\r\n // let url = \"api/sims/dgapplication/getfindheader?DGApplicationID=\"+id;\r\n // utils.invokeUrl(url, (response) => {\r\n // setOrganisationName(response.OrganisationName)\r\n // setStatus(response.Status)\r\n // },\r\n // null,\r\n // {\r\n // method: 'GET',\r\n // headers: {\r\n // 'Accept': 'application/json',\r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n // }\r\n // }\r\n // )\r\n }\r\n\r\n \r\n return (\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n handleToolbarButtonClick(buttonId)}\r\n enabled={true}\r\n config={toolbarConfig} />\r\n
\r\n \r\n {props.location.state.FinancialYearID === null ?

PLEASE SELECT FINANCIAL YEAR

:\r\n \r\n \r\n\r\n \r\n { \"Levies\"} \r\n \r\n \r\n \r\n Organisation Legal Name\r\n {OrganisationName} \r\n \r\n \r\n Trade Name\r\n \r\n {TradeName} \r\n \r\n \r\n Year of Statement\r\n \r\n {FinancialYear} \r\n \r\n \r\n Postal Address\r\n \r\n {PostalAddressLine1} \r\n \r\n \r\n Contact Telephone Number\r\n\r\n \r\n {ContactTelephoneNumber} \r\n \r\n \r\n Fax Number\r\n\r\n \r\n {FaxNumber} \r\n \r\n \r\n Municipality \r\n\r\n \r\n {Municipality} \r\n \r\n \r\n Physical Address\r\n \r\n {PhysicalAddressLine1} \r\n \r\n \r\n \r\n Legend \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n Receipt Date\r\n Date of payment to SARS \r\n \r\n \r\n Received by SETA \r\n \r\n Date the money was received by SETA from the \r\n Department of Labour \r\n \r\n \r\n Year of Statement\r\n \r\n \r\n Stakeholder Levy \r\n Calculated (100%)\r\n \r\n \r\n \r\n \r\n The sum of the levy received by SETA + NSF \r\n calculation + interest + penalty\r\n \r\n \r\n NSF Calculation \r\n (20%) \r\n \r\n \r\n Contact Telephone Number\r\n\r\n \r\n Levy amount calculated as transferred to the \r\n National Skills Fund by SARS (20% of total levy), done to balance your actual payment made with the \r\n money received by SETA. \r\n \r\n \r\n \r\n Total received by SETA (80%)\r\n\r\n \r\n Levy amount received by SETA (80% of total levy) \r\n \r\n \r\n Mandatory Levy (50%)\r\n\r\n \r\n The % of the total levy received by SETA allowable for the mandatory grant. \r\n \r\n \r\n Discretionary (20%)\r\n \r\n The % of the total levy received by SETA allowable for the discretionary grant. \r\n \r\n \r\n Admin (10%)\r\n \r\n The 10% of the total levy received by SETA allowable for SETA admin. \r\n \r\n \r\n Interest (80%)\r\n \r\n SETA receive 80% of the interest charged by SARS as calculated by SARS \r\n \r\n \r\n Penalty (80%)\r\n \r\n SETA receive 80% of the penalties charged by SARS as calculated by SARS \r\n \r\n \r\n SARS month \r\n\r\n \r\n For internal office use only. \r\n \r\n \r\n
\r\n
}\r\n\r\n
\r\n );\r\n }\r\n\r\nexport default Levies;","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nconst formRef = React.createRef();\r\n\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n }))(TableCell);\r\n\r\n const StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n },\r\n }))(TableCell);\r\n \r\n const StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n }))(TableRow);\r\n \r\n function createData(number, form, description, duedate, select) {\r\n return { number, form, description, duedate, select };\r\n }\r\n const useStyles = makeStyles({\r\n table: {\r\n minWidth: 700,\r\n },\r\n });\r\n\r\n \r\nconst userRef = React.createRef();\r\nconst toolbarConfig = {\r\n items: [\r\n \r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'close', label: 'Close', tooltip: ''\r\n },\r\n {\r\n id: 'print', label: 'Print Friendly', tooltip: '',\r\n },\r\n ]\r\n }\r\n ]\r\n};\r\n\r\n\r\nconst Grants = (props)=> {\r\n const classes = useStyles();\r\n const [FinancialYear, setFinancialYear] = useState(null)\r\n const [showViewButton, setShow] = React.useState(true);\r\n const [OrganisationName, setOrganisationName] = useState('')\r\n const [TradeName, setTradeName] = useState('')\r\n const [Status, setStatus] = useState('')\r\n const [SDLNumber, setSDLNumber]= useState('')\r\n const [PhysicalAddressLine1, setPhysicalAddressLine1]= useState('')\r\n const [FaxNumber, setFaxNumber]= useState('')\r\n const [PhysicalAddressLine2, setPhysicalAddressLine2]= useState('')\r\n const [PhysicalAddressLine3, setPhysicalAddressLine3]= useState('')\r\n const [Municipality, setMunicipality]= useState('')\r\n const [ContactTelephoneNumber, setContactTelephoneNumber]= useState('')\r\n const [PostalCode, setPostalCode]= useState('')\r\n const [PostalAddressLine1, setPostalAddressLine1]= useState('')\r\n const [PostalAddressLine2, setPostalAddressLine2]= useState('')\r\n const [PostalAddressLine3, setPostalAddressLine3]= useState('')\r\n const [id, setId] = useState(props.location.state.selection)\r\n\r\n const handleToolbarButtonClick=(buttonId)=> {\r\n if(\"close\" === buttonId){ \r\n props.history.push({\r\n pathname: '/skillsOrganisationLevies',\r\n state: { selection: props.location.state.preSelectedProp \r\n }\r\n });\r\n }else{\r\n //print Friendly\r\n }\r\n }\r\n\r\n\r\n useEffect(()=>{\r\n console.log(props.location.state.FinancialYearID)\r\n console.log(props.location.state.selection)\r\n getGrantData(id)\r\n }, [])\r\n \r\n\r\n const getGrantData=(id)=>{\r\n console.log(\"GETTING DATA\")\r\n // let url = \"api/sims/dgapplication/getfindheader?DGApplicationID=\"+id;\r\n // utils.invokeUrl(url, (response) => {\r\n // setOrganisationName(response.OrganisationName)\r\n // setStatus(response.Status)\r\n // },\r\n // null,\r\n // {\r\n // method: 'GET',\r\n // headers: {\r\n // 'Accept': 'application/json',\r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n // }\r\n // }\r\n // )\r\n }\r\n\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n handleToolbarButtonClick(buttonId)}\r\n enabled={true}\r\n config={toolbarConfig} />\r\n
\r\n\r\n\r\n \r\n {props.location.state.FinancialYearID === null ?

PLEASE SELECT FINANCIAL YEAR

:\r\n \r\n \r\n\r\n \r\n { \"Discretionary Grants\"} \r\n \r\n \r\n \r\n Organisation Legal Name\r\n {OrganisationName} \r\n \r\n \r\n Trade Name\r\n \r\n {TradeName} \r\n \r\n \r\n Year of Statement\r\n \r\n {FinancialYear} \r\n \r\n \r\n Postal Address\r\n \r\n {PostalAddressLine1} \r\n \r\n \r\n Contact Telephone Number\r\n\r\n \r\n {ContactTelephoneNumber} \r\n \r\n \r\n Fax Number\r\n\r\n \r\n {FaxNumber} \r\n \r\n \r\n Municipality \r\n\r\n \r\n {Municipality} \r\n \r\n \r\n Physical Address\r\n \r\n {PhysicalAddressLine1} \r\n \r\n \r\n \r\n Legend \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n Receipt Date\r\n Date of payment to SARS \r\n \r\n \r\n Received by SETA \r\n \r\n Date the money was received by SETA from the \r\n Department of Labour \r\n \r\n \r\n Year of Statement\r\n \r\n \r\n Stakeholder Levy \r\n Calculated (100%)\r\n \r\n \r\n \r\n \r\n The sum of the levy received by SETA + NSF \r\n calculation + interest + penalty\r\n \r\n \r\n NSF Calculation \r\n (20%) \r\n \r\n\r\n \r\n \r\n
\r\n
}\r\n\r\n
\r\n );\r\n }\r\nexport default Grants;\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nconst formRef = React.createRef();\r\n\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n }))(TableCell);\r\n\r\n const StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n },\r\n }))(TableCell);\r\n \r\n const StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n }))(TableRow);\r\n \r\n function createData(number, form, description, duedate, select) {\r\n return { number, form, description, duedate, select };\r\n }\r\n const useStyles = makeStyles({\r\n table: {\r\n minWidth: 700,\r\n },\r\n });\r\n\r\n \r\nconst userRef = React.createRef();\r\nconst toolbarConfig = {\r\n items: [\r\n \r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'close', label: 'Close', tooltip: '',\r\n\r\n },\r\n {\r\n id: 'print', label: 'Print Friendly', tooltip: '',\r\n \r\n },\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst DiscretionaryGrants = (props)=> {\r\n const classes = useStyles();\r\n const [FinancialYear, setFinancialYear] = useState(null)\r\n const [showViewButton, setShow] = React.useState(true);\r\n const [OrganisationName, setOrganisationName] = useState('')\r\n const [TradeName, setTradeName] = useState('')\r\n const [Status, setStatus] = useState('')\r\n const [SDLNumber, setSDLNumber]= useState('')\r\n const [PhysicalAddressLine1, setPhysicalAddressLine1]= useState('')\r\n const [FaxNumber, setFaxNumber]= useState('')\r\n const [PhysicalAddressLine2, setPhysicalAddressLine2]= useState('')\r\n const [PhysicalAddressLine3, setPhysicalAddressLine3]= useState('')\r\n const [Municipality, setMunicipality]= useState('')\r\n const [ContactTelephoneNumber, setContactTelephoneNumber]= useState('')\r\n const [PostalCode, setPostalCode]= useState('')\r\n const [PostalAddressLine1, setPostalAddressLine1]= useState('')\r\n const [PostalAddressLine2, setPostalAddressLine2]= useState('')\r\n const [PostalAddressLine3, setPostalAddressLine3]= useState('')\r\n const [id, setId] = useState(props.location.state.selection)\r\n\r\n\r\n\r\n const handleToolbarButtonClick=(buttonId)=> {\r\n if(\"close\" === buttonId){ \r\n props.history.push({\r\n pathname: '/skillsOrganisationLevies',\r\n state: { selection: props.location.state.preSelectedProp \r\n }\r\n });\r\n }else{\r\n //print Friendly\r\n }\r\n }\r\n\r\n\r\n useEffect(()=>{\r\n console.log(props.location.state.FinancialYearID)\r\n console.log(props.location.state.selection)\r\n getDiscretionaryGrantData(id)\r\n }, [])\r\n \r\n\r\n const getDiscretionaryGrantData=(id)=>{\r\n console.log(\"GETTING DATA\")\r\n // let url = \"api/sims/dgapplication/getfindheader?DGApplicationID=\"+id;\r\n // utils.invokeUrl(url, (response) => {\r\n // setOrganisationName(response.OrganisationName)\r\n // setStatus(response.Status)\r\n // },\r\n // null,\r\n // {\r\n // method: 'GET',\r\n // headers: {\r\n // 'Accept': 'application/json',\r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n // }\r\n // }\r\n // )\r\n }\r\n\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n handleToolbarButtonClick(buttonId)}\r\n enabled={true}\r\n config={toolbarConfig} />\r\n
\r\n\r\n {props.location.state.FinancialYearID === null ?

PLEASE SELECT FINANCIAL YEAR

:\r\n \r\n \r\n\r\n \r\n { \"Discretionary Grants\"} \r\n \r\n \r\n \r\n Organisation Legal Name\r\n {OrganisationName} \r\n \r\n \r\n Trade Name\r\n \r\n {TradeName} \r\n \r\n \r\n Year of Statement\r\n \r\n {FinancialYear} \r\n \r\n \r\n Postal Address\r\n \r\n {PostalAddressLine1} \r\n \r\n \r\n Contact Telephone Number\r\n\r\n \r\n {ContactTelephoneNumber} \r\n \r\n \r\n Fax Number\r\n\r\n \r\n {FaxNumber} \r\n \r\n \r\n Municipality \r\n\r\n \r\n {Municipality} \r\n \r\n \r\n Physical Address\r\n \r\n {PhysicalAddressLine1} \r\n \r\n \r\n \r\n Legend \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n Receipt Date\r\n Date of payment to SARS \r\n \r\n \r\n Received by SETA \r\n \r\n Date the money was received by SETA from the \r\n Department of Labour \r\n \r\n \r\n Year of Statement\r\n \r\n \r\n Stakeholder Levy \r\n Calculated (100%)\r\n \r\n \r\n \r\n \r\n The sum of the levy received by SETA + NSF \r\n calculation + interest + penalty\r\n \r\n \r\n NSF Calculation \r\n (20%) \r\n \r\n\r\n \r\n \r\n
\r\n
}\r\n\r\n
\r\n );\r\n }\r\n\r\n export default DiscretionaryGrants;\r\n\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function InterSetaTransferForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\n\r\nconst utils = new ViewUtils();\r\nexport default function ExperientialLearningDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [filename, setFilename] = React.useState(props.fileName);\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n const [entityId, setEntityId] = React.useState(props.EntityID);\r\n\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.EntityID)) {\r\n setEntityId(props.EntityID);\r\n }\r\n }, [props.EntityID]);\r\n\r\n const handleClose = (save, cancel) => {\r\n setOpen(false);\r\n props.closeHandler(save, cancel)\r\n };\r\n\r\n\r\n const cancel = () => {\r\n handleClose(false, true);\r\n };\r\n\r\n const save = () => {\r\n let data = {};\r\n data.OriginalFileName = filename;\r\n data.EntityID = entityId;\r\n data.ExperienceWork = props.ExperienceWork;\r\n data.ExperienceWorkDateFrom = props.ExperienceWorkDateFrom;\r\n data.ExperienceWorkDateTo = props.ExperienceWorkDateTo;\r\n data.ReferenceTitle = props.ReferenceTitleID.Id;\r\n data.NatureOfWork = props.NatureOfWork;\r\n data.ReferenceName = props.ReferenceName;\r\n data.ReferenceSurname = props.ReferenceSurname;\r\n data.ReferenceContactNumber = props.ReferenceContactNumber;\r\n data.WhereExperientialWorWasUndertaken = props.WhereExperientialWorWasUndertaken;\r\n data.Document = {};\r\n data.Document.name = filename;\r\n data.Document.size = size;\r\n data.Document.type = type;\r\n data.Document.base64 = base64;\r\n\r\n utils.invokeUrl(props.postUrl, (response) => {\r\n handleClose(true, false);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n props._setFilename(data.name);\r\n console.log(\"EXP doc\");\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {props.ReferenceTitleID!==undefined && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport ExperientialLearningDialog from \"./ExperientialLearningDialog\";\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\n\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const InterSetaTransferDetailsForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [experientFileName, setExperientFileName] = React.useState('');\r\n const [ELdocumentsDialogOpen, setELdocumentsDialogOpen] = React.useState(false);\r\n\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n const [entityId, setEntityId] = React.useState(props.EntityID);\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default InterSetaTransferDetailsForm;","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport InterSetaTransferDetailsForm from './InterSetaTransferDetailsForm';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function InterSetaTransferDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [AddDiasbaled, setAddDiasbaled] = React.useState(true);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setFilename(\"\");\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const add = () => {\r\n let formValue = formRef.current.getValue();\r\n formValue.Document = {};\r\n formValue.Document.Name = filename;\r\n formValue.Document.size = size;\r\n formValue.Document.type = type;\r\n formValue.Document.base64 = base64;\r\n formValue.OrganisationID = props.OrganisationID;\r\n\r\n //formValue.OrganisationID = this.state.organisationID;\r\n //formValue.ISTTransferTypeID = formValue.ISTTransferType.Id;\r\n //formValue.ISTTransferStatusID = formValue.ISTTransferStatus.Id;\r\n //formValue.CurrentSetaID = formValue.CurrentSeta.Id;\r\n //formValue.NewSetaID = formValue.NewSeta.Id;\r\n //formValue.ChangeReasonID = formValue.ChangeReason.Id;\r\n //formValue.NewSICCodeID = formValue.NewSICCode.Id;\r\n //formValue.RequestingPersonTitleID = formValue.RequestingPersonTitle.Id;\r\n if (formValue.ISTSuccessfulPostedBool == true) {\r\n formValue.ISTSuccessfulPosted = 1;\r\n }\r\n\r\n else {\r\n formValue.ISTSuccessfulPosted = 0;\r\n }\r\n\r\n\r\n formValue.ID = 0;\r\n formValue.EntityID = 0;\r\n formValue.DateSETAReceivedApplication = formValue.DateAdvisementLetterSent;\r\n formValue.DateRequestSentToDeloitte = formValue.DateAdvisementLetterSent;\r\n formValue.SubmissionNumber = \"\";\r\n\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const url = `api/sims/InterSetaTransfer/SaveOrganisationIST`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n setAddDiasbaled(false);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport ExperientialLearningDialog from \"./ExperientialLearningDialog\";\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nconst InterSetaTransferEditForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [experientFileName, setExperientFileName] = React.useState('');\r\n const [ELdocumentsDialogOpen, setELdocumentsDialogOpen] = React.useState(false);\r\n\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n const [entityId, setEntityId] = React.useState(props.EntityID);\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n }\r\n }\r\n\r\n\r\n\r\n \r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default InterSetaTransferEditForm;","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport EditForm from './InterSetaTransferEditForm';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function InterSetaTransferEditDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n handleClose(true, false);\r\n };\r\n\r\n const update = () => {\r\n let formValue = formRef.current.getValue();\r\n //formValue.Id = props.Id;\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n\r\n const url = `api/sims/InterSetaTransfer/UpdateOrganisationIST`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => { handleClose(false, false); },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(formValue)\r\n }\r\n );\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n \r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import { withRouter } from 'react-router-dom';\r\nimport React, { Component } from \"react\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport InterSetaTransferSearchForm from './InterSetaTransferSearchForm';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport AddDialog from './InterSetaTransferDialog';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport EditDialog from './InterSetaTransferEditDialog';\r\nimport Prompt from '../../widgets/Prompt';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'DateSETAReceivedApplication', numeric: false, disablePadding: true, label: 'Date SETA Received Application' },\r\n { id: 'RequestingPerson', numeric: false, disablePadding: true, label: 'Requesting Person ' },\r\n { id: 'SubmissionNumber', numeric: false, disablePadding: true, label: 'Submission Number' },\r\n { id: 'TransferStatus', numeric: false, disablePadding: true, label: 'Transfer Status' },\r\n { id: 'TransferType', numeric: false, disablePadding: true, label: 'Transfer Type' },\r\n //{ id: 'OriginalFileName', numeric: false, disablePadding: true, label: 'Original FileName' },\r\n { id: 'Document', numeric: false, disablePadding: true, label: 'Document', contentType: 'document' },\r\n //{ id: 'DateISTSuccessfullyProcessed', numeric: false, disablePadding: true, label: 'Date IST Successfully Processed' },\r\n];\r\n\r\nclass LodgeAppeal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n Id: this.props.location.state.selection\r\n },\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }],\r\n Letterhead: null,\r\n AuthorisedSignatory: null,\r\n Reasons: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"Remove Inter Seta Transfer Request\",\r\n promptContent: \"Are you sure you want to remove this Inter Seta Transfer Request?\"\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add Request', disabled:false, icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit Request', disabled: utils.isNull(this.state.selectedId), icon: 'EditIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'remove', label: '', tooltip: 'Remove Request', disabled: utils.isNull(this.state.selectedId), icon: 'DeleteIcon', visible: this.props.menuPermissionItem.Add }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"add\") {\r\n this.setState({ addDialogOpen: true });\r\n\r\n }\r\n else if (buttonId === \"edit\") {\r\n this.setState({ editDialogOpen: true });\r\n }\r\n else if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisation\",\r\n state: { selection: this.props.location.state.organisationID }\r\n })\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n } else {\r\n // this.setState({ editDialogOpen: true });\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n });\r\n }\r\n\r\n FileDownload = (rowid, headCell) => {\r\n if (headCell.contentType === \"document\") {\r\n console.log(headCell);\r\n utils.invokeUrl(\"api/sims/InterSetaTransfer/downloaddocument?id=\" + rowid, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedId: selection[0].Id, Message: \"\", clearSelectedRow: false });\r\n } else {\r\n this.setState({ selectedId: null, Message: \"\", clearSelectedRow: false });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"remove\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"edit\", selection === null || selection.length === 0);\r\n }\r\n\r\n postAddHandler(cancel, save, response) {\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: \"success\",\r\n clearSelectedRow: true\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n Message: response.Message,\r\n MessageStyle: \"warning\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n editDialogOpen: false,\r\n selectedId: null,\r\n clearSelectedRow: true\r\n })\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n\r\n remove(url) {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"edit\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedId}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false, clearSelectedRow: true, selectedId: null })\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n selectedId: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase(),\r\n clearSelectedRow: true\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > Inter Seta Transfer \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n
\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/InterSetaTransfer/GetSearch\"\r\n searchParameters={this.state.searchParameters}\r\n onCellSelectionChange={(rowid, headCell) => { this.FileDownload(rowid, headCell) }}\r\n clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow}\r\n paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n OrganisationID={this.props.location.state.organisationID}\r\n />\r\n\r\n this.postAddHandler(cancel, save, response)}\r\n viewRef={this}\r\n />\r\n\r\n { this.remove(\"api/sims/InterSetaTransfer/RemoveOrganisationIST\") }}\r\n closePrompt={this.closePrompt}\r\n \r\n />\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(LodgeAppeal));","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function SDFComplianceLetterForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport SearchView from \"./../../widgets/SearchView\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport SDFComplianceLetterForm from './SDFComplianceLetterForm'\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Legal Name' },\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' },\r\n { id: 'WSPStatus', numeric: false, disablePadding: true, label: 'WSP Status' }\r\n];\r\n\r\nclass SDFComplianceLetter extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n Id: this.props.location.state.selection\r\n },\r\n addDialogOpen: false,\r\n selected: false,\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }, { Name: \"FinancialYearID\", Value: 0 }],\r\n clearSelectedRow: false,\r\n selectedID: null,\r\n clearSelectedRow: false\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ,\r\n {\r\n type: \"devider\"\r\n },\r\n\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'email', label: '', tooltip: 'Email SDF Compliance Letter', icon: 'EmailIcon', disabled: !this.selected },\r\n { id: 'download', label: '', tooltip: 'Download SDF Compliance Letter', icon: 'DownloadIcon', disabled: !this.selected }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (buttonId === \"email\") {\r\n this.FileEmail(this.state.selectedID)\r\n } if (buttonId === \"download\") {\r\n this.FileDownload(this.state.selectedID);\r\n } else if (buttonId === \"close\") {\r\n this.props.history.push({\r\n pathname: \"/skillsOrganisation\",\r\n state: { selection: this.props.location.state.organisationID }\r\n })\r\n }\r\n }\r\n\r\n handleFormValueChange(values) {\r\n let FinancialYearID = values.FinancialYearID.Id;\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = FinancialYearID\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n FinancialYearID: FinancialYearID\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedID: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedID: null, Message: \"\" });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"email\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"download\", selection === null || selection.length === 0);\r\n }\r\n\r\n FileDownload = () => {\r\n\r\n const url = `api/sims/SDFComplianceLetter/ViewSDFComplianceLetter`;\r\n\r\n utils.invokeApiPut(\r\n JSON.stringify({\r\n \"OrganisationID\": this.props.location.state.organisationID,\r\n \"FinancialYearID\": this.state.FinancialYearID\r\n }),\r\n url,\r\n (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n if (!utils.isNull(response.Name) && response.Name !== \"\") {\r\n this.setState({\r\n Message: \"SDF Compliance Letter successfully downloaded\",\r\n MessageStyle: \"SUCCESS\",\r\n showMessage: true,\r\n clearSelectedRow: true\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"Error downloading SDF Compliance Letter.\",\r\n MessageStyle: \"ERROR\",\r\n showMessage: true,\r\n clearSelectedRow: true\r\n });\r\n }\r\n\r\n toolbarRef.current.setButtonDisabled(\"email\", true);\r\n toolbarRef.current.setButtonDisabled(\"download\", true);\r\n }\r\n );\r\n };\r\n\r\n FileEmail = () => {\r\n\r\n const url = `api/sims/SDFComplianceLetter/EmailSDFComplianceLetter`;\r\n\r\n utils.invokeApiPut(\r\n JSON.stringify({\r\n \"OrganisationID\": this.props.location.state.organisationID,\r\n \"FinancialYearID\": this.state.FinancialYearID\r\n }),\r\n url,\r\n (response) => {\r\n this.setState({\r\n Message: response.Message,\r\n MessageStyle: response.MessageType,\r\n showMessage: true,\r\n clearSelectedRow: true\r\n });\r\n toolbarRef.current.setButtonDisabled(\"email\", true);\r\n toolbarRef.current.setButtonDisabled(\"download\", true);\r\n },\r\n this.error\r\n );\r\n }\r\n\r\n \r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Organisation > SDF Compliance Letter \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n \r\n\r\n this.handleFormValueChange(values)}\r\n />\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl=\"api/sims/SDFComplianceLetter/GetSearch\"\r\n searchParameters={this.state.searchParameters}\r\n paged={true}\r\n clearSelectedRow={this.state.clearSelectedRow}\r\n onClearSelectedRow={this.onClearSelectedRow} />\r\n\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(SDFComplianceLetter);\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport DocumentUpload from '../../widgets/DocumentUpload';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function EmployerFileImportDialog(props) {\r\n\r\n const [open, setOpen] = React.useState(props.open);\r\n const [AddDiasbaled, setAddDiasbaled] = React.useState(true);\r\n const [Message, setMessage] = React.useState(\"\");\r\n const [MessageStyle, setMessageStyle] = React.useState(\"\");\r\n const formRef = React.createRef();\r\n const [filename, setFilename] = React.useState(\"\");\r\n const [size, setSize] = React.useState(null);\r\n const [base64, setBase64] = React.useState(null);\r\n const [type, setType] = React.useState(null);\r\n const [showReport, setShowReport] = React.useState(false);\r\n const [documentName, setDocumentName] = React.useState(\"\");\r\n\r\n const handleClose = (cancel, save, response) => {\r\n setFilename(\"\");\r\n setOpen(false);\r\n props.closeHandler(cancel, save, response);\r\n };\r\n\r\n const cancel = () => {\r\n setMessage('');\r\n setMessageStyle('');\r\n setAddDiasbaled(true);\r\n setFilename(\"\");\r\n setShowReport(false);\r\n handleClose(true, false);\r\n };\r\n\r\n const add = () => {\r\n //console.clear();\r\n let data = {};\r\n data.Document = {};\r\n data.Document.Name = filename;\r\n data.Document.size = size;\r\n data.Document.type = type;\r\n data.Document.base64 = base64;\r\n\r\n if (\r\n !(\r\n filename.split(\".\")[1] === \"SDL\"\r\n )\r\n ) {\r\n setMessage(\"Unknown file format. Only SDL files are uploaded!\");\r\n setMessageStyle('ERROR');\r\n setAddDiasbaled(true);\r\n setFilename(\"\");\r\n return false;\r\n }\r\n const url = `api/sims/EmployerFileImport/BulkImport`;\r\n\r\n if (data !== null && typeof data !== 'undefined') {\r\n utils.invokeUrl(url, (response) => {\r\n handleClose(false, true, response);\r\n }, () => {\r\n handleClose(false, false);\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n );\r\n } \r\n }\r\n\r\n const successCallback = (response) => {\r\n setMessage('Import Completed');\r\n setMessageStyle('SUCCESS');\r\n setShowReport(true);\r\n setDocumentName(response.Message);\r\n setAddDiasbaled(true);\r\n setFilename(\"\");\r\n }\r\n\r\n const error = (response) => {\r\n setMessage(response.Message);\r\n setMessageStyle(response.MessageType);\r\n }\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setMessage('');\r\n setMessageStyle('');\r\n setFilename(data.name);\r\n setSize(data.size);\r\n setBase64(data.base64);\r\n setType(data.type);\r\n setAddDiasbaled(false);\r\n //console.log(data);\r\n }\r\n }\r\n\r\n const ReportDownload = () => {\r\n\r\n utils.invokeUrl(\"api/sims/EmployerFileImport/BulkUploadGetReport?FileName=\" + documentName, (response) => {\r\n\r\n var blob = new Blob([base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n setMessage('Report Download Failed');\r\n setMessageStyle('ERROR');\r\n }\r\n );\r\n\r\n };\r\n\r\n const base64ToArrayBuffer = (base64) => {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n React.useEffect(() => {\r\n setOpen(props.open);\r\n }, [props.open]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n

\r\n {\"Employer File Import\"}\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n {showReport ? { ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport '../WspAtrForms/Style.css'\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport EmployerFileImportDialog from './EmployerFileImportDialog';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst formRef = React.createRef();\r\n\r\nclass EmployerFileImport extends Component {\r\n\r\n state = {\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n open: null,\r\n bulkimportdisabled: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n bulkImportOpen: false,\r\n showReport: false,\r\n reportName: \"\"\r\n };\r\n\r\n bulkimport = () => {\r\n this.setState({\r\n bulkimportdisabled: false,\r\n bulkImportOpen: true,\r\n showReport: false,\r\n reportName: \"\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n\r\n bulkimportImport = (cancel, save, response) => {\r\n console.log(save);\r\n console.log(response);\r\n if (save === true) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n bulkimportdisabled: false,\r\n bulkImportOpen: false,\r\n message: \"Import Completed\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n bulkimportdisabled: false,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n bulkimportdisabled: false,\r\n RecordID: null,\r\n bulkImportOpen: false\r\n });\r\n }\r\n }\r\n\r\n ReportDownload() {\r\n\r\n utils.invokeUrl(\"api/sims/EmployerFileImport/BulkImportGetReport?FileName=\" + this.state.reportName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: 'Report Download Failed', messageStyle: 'ERROR' });\r\n }\r\n );\r\n\r\n };\r\n\r\n newemployersreport = () => {\r\n const url = `api/sims/EmployerFileImport/RunNewEmployersReport`;\r\n\r\n utils.invokeUrl(url, (response) => {\r\n this.newemployerreportdone(response);\r\n }, () => {\r\n this.newemployerreportdone(null);\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify()\r\n }\r\n );\r\n }\r\n\r\n newemployerreportdone = (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n bulkimportdisabled: false,\r\n bulkImportOpen: false,\r\n message: \"Report Run Successfully\",\r\n messageStyle: \"success\",\r\n showReport: true,\r\n reportName: response.Message\r\n });\r\n }\r\n else if (response.MessageType === \"ERROR\") {\r\n this.setState({\r\n bulkimportdisabled: false,\r\n bulkImportOpen: false,\r\n message: response.Message,\r\n messageStyle: \"ERROR\"\r\n });\r\n }\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\"Employer File Import\"}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n  \r\n  \r\n \r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n\r\n this.bulkimportImport(cancel, save, response)}\r\n viewRef={this}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(EmployerFileImport);","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\nexport default function ETQAReportSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./ETQAReport.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ETQAReportSearchForm from './ETQAReportSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst headCells = [\r\n { id: 'ReportName', numeric: false, disablePadding: true, label: 'Report Name' },\r\n { id: 'ReportDescription', numeric: false, disablePadding: true, label: 'Report Description' }\r\n];\r\n\r\nclass ETQAReportSearch extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters = [\r\n { Name: \"ReportName\", Value: \"\" },\r\n { Name: \"ReportDescription\", Value: \"\" },\r\n ]\r\n\r\n let model = {\r\n ReportName: \"\",\r\n ReportDescription: \"\"\r\n };\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'Run Report', icon: 'EditIcon', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Skills College Reports\"}\r\n

\r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(ETQAReportSearch));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function ProviderSearch(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n SDL Number\r\n \r\n props.model.SDLNumber = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Legal Name\r\n \r\n props.model.LegalName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Trade Name\r\n \r\n props.model.TradeName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../View.css\";\r\nimport \"../../Grid.css\";\r\nimport \"../../Form.css\";\r\nimport \"../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ProviderSearchForm from './ProviderSearchForm';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"SDLNumber\", numeric: false, disablePadding: true, label: \"SDL Number\" },\r\n { id: \"LegalName\", numeric: false, disablePadding: true, label: \"Legal Name\" },\r\n { id: \"TradeName\", numeric: false, disablePadding: true, label: \"Trade Name\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select Provider from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nclass ProviderSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = \r\n //For search on the provider search screen\r\n [\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" }\r\n ]\r\n\r\n let model = \r\n {\r\n SDLNumber: \"\",\r\n LegalName: \"\",\r\n TradeName: \"\"\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedProvider: null,\r\n linkDialogOpen: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderSearch)\r\n);","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from \"../../ViewUtils\";\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport ProviderSearch from '../Controls/ProviderSearch';\r\nimport AssessorSearch from \"../../etqa/assessor/AssessorSearch\";\r\nimport ModeratorSearch from \"../../etqa/moderator/ModeratorSearch\";\r\nimport EmployerSearch from \"../../etqa/employer/EmployerSearch\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const ETQAReportForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const paramArray = !utils.isNull(props.ETQAReportDetails) && !utils.isNull(props.ETQAReportDetails.ReportParameters) ? props.ETQAReportDetails.ReportParameters.split(\",\") : [];\r\n\r\n const getName = (name) => {\r\n let text;\r\n if (name.slice(-2).includes(\"ID\")) {\r\n text = name.slice(0, -2);\r\n } else {\r\n text = name;\r\n }\r\n\r\n let newText = [];\r\n newText.push(text[0]);\r\n\r\n for (var i = 1; i < text.length; i++) {\r\n if (checkUppercase(text[i]) && !checkUppercase(text[i - 1]) && !checkPuctuation(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n else if (checkDigit(text[i]) && checkLetter(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n else if (i < text.length - 1) {\r\n if (checkUppercase(text[i]) && (!checkUppercase(text[i + 1]) && text[i + 1] !== \" \" && text[i + 1] !== \")\" && text[i + 1] !== \"'\") && !checkPuctuation(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n }\r\n\r\n newText.push(text[i]);\r\n }\r\n return newText.join(\"\").replace(\" \", \" \");\r\n }\r\n\r\n const checkUppercase = (value) => {\r\n if (value === value.toUpperCase()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkPuctuation = (value) => {\r\n if (value === \".\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkDigit = (value) => {\r\n if (Number.isInteger(value)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkLetter = (str) => {\r\n return str.length === 1 && str.match(/[a-z]/i);\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n {/*
*/}\r\n \r\n {\r\n paramArray.map(parameter => {\r\n\r\n let field;\r\n\r\n if (parameter === \"ProviderID\") {\r\n field = (\r\n \r\n \r\n \r\n );\r\n } else if (parameter === \"AssessorID\") {\r\n field = (\r\n \r\n \r\n );\r\n } else if (parameter === \"ModeratorID\") {\r\n field = (\r\n \r\n \r\n \r\n );\r\n } else if (parameter === \"EmployerID\") {\r\n field = (\r\n \r\n \r\n );\r\n } else if (parameter === \"ClientID\") {\r\n field = (\r\n \r\n \r\n );\r\n } else if (parameter.slice(-2).includes(\"ID\")) {\r\n field = (\r\n \r\n \r\n \r\n );\r\n } else if (parameter.includes(\"Date\")) {\r\n field = (\r\n \r\n \r\n \r\n );\r\n } else if (parameter.slice(0, 2).includes(\"Is\")) {\r\n field = (\r\n \r\n \r\n \r\n );\r\n } else if (parameter.length > 0) {\r\n field = (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return field;\r\n })\r\n }\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"AssessorID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ModeratorID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ClientID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {/*
*/}\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./ETQAReport.css\";\r\nimport { ETQAReportForm } from './ETQAReportForm';\r\nimport ViewUtils from \"../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst ETQAReportRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass ETQAReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ETQAReportDetails: \"\",\r\n model: {}\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let url = \"api/sims/ETQAreportsdetails/GetFind?ETQAReportID=\" + this.props.location.state.selection;\r\n utils.invokeUrl(url, (data) => {\r\n const parameters = data.ReportParameters.split(',');\r\n let model = {};\r\n for (const parameter of parameters) {\r\n if (parameter === \"ProviderID\") {\r\n model[\"ProviderID\"] = null;\r\n } else if (parameter === \"AssessorID\") {\r\n model[\"AssessorID\"] = null;\r\n } else if (parameter === \"ModeratorID\") {\r\n model[\"ModeratorID\"] = null;\r\n } else if (parameter === \"EmployerID\") {\r\n model[\"EmployerID\"] = null;\r\n } else if (parameter === \"ClientID\") {\r\n model[\"ClientID\"] = null\r\n }\r\n }\r\n this.setState({ ETQAReportDetails: data, model: model });\r\n }, (e) => {\r\n this.setState({ message: \"Unable to get report details. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/ETQAReportSearch');\r\n }\r\n\r\n handleExecuteReport = () => {\r\n\r\n let searchParameters = [];\r\n const properties = Object.getOwnPropertyNames(this.state.model);\r\n if (!utils.isNull(properties) && properties.length > 0) {\r\n for (let i = 0; i < properties.length; i++) {\r\n let searchParameter = {};\r\n searchParameter.Name = properties[i];\r\n searchParameter.Value = this.state.model[properties[i]];\r\n searchParameters.push(searchParameter);\r\n }\r\n }\r\n\r\n searchParameters.push({ Name: \"ETQAReportID\", Value: this.props.location.state.selection })\r\n\r\n utils.invokeUrl(\"api/sims/ETQAReportsDetails/GetETQAReportsExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Skills College Reports \" + (this.state.ETQAReportDetails.ReportName !== null ? \"> \" + this.state.ETQAReportDetails.ReportName : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(ETQAReport);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\nexport default function SkillsReportSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./SkillsReport.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport SkillsReportSearchForm from './SkillsReportSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst headCells = [\r\n { id: 'ReportName', numeric: false, disablePadding: true, label: 'Report Name' },\r\n { id: 'ReportDescription', numeric: false, disablePadding: true, label: 'Report Description' }\r\n];\r\n\r\nclass SkillsReportSearch extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters = [\r\n { Name: \"ReportName\", Value: \"\" },\r\n { Name: \"ReportDescription\", Value: \"\" },\r\n ]\r\n\r\n let model = {\r\n ReportName: \"\",\r\n ReportDescription: \"\"\r\n };\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'Run Report', icon: 'EditIcon', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Skills Reports\"}\r\n

\r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(SkillsReportSearch));\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const SkillsReportForm = React.forwardRef((props, ref) => {\r\n\r\n const paramArray = !utils.isNull(props.skillsReportDetails) && !utils.isNull(props.skillsReportDetails.ReportParameters) ? props.skillsReportDetails.ReportParameters.split(\",\") : [];\r\n\r\n const getName = (name) => {\r\n let text = name.slice(0, -2)\r\n let newText = [];\r\n newText.push(text[0]);\r\n\r\n for (var i = 1; i < text.length; i++) {\r\n if (checkUppercase(text[i]) && !checkUppercase(text[i - 1]) && !checkPuctuation(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n else if (checkDigit(text[i]) && checkLetter(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n else if (i < text.length - 1) {\r\n if (checkUppercase(text[i]) && (!checkUppercase(text[i + 1]) && text[i + 1] !== \" \" && text[i + 1] !== \")\" && text[i + 1] !== \"'\") && !checkPuctuation(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n }\r\n\r\n newText.push(text[i]);\r\n }\r\n return newText.join(\"\").replace(\" \", \" \");\r\n }\r\n\r\n const checkUppercase = (value) => {\r\n if (value === value.toUpperCase()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkPuctuation = (value) => {\r\n if (value === \".\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkDigit = (value) => {\r\n if (Number.isInteger(value)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkLetter = (str) => {\r\n return str.length === 1 && str.match(/[a-z]/i);\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n {\r\n paramArray.map(parameter => {\r\n\r\n let field;\r\n\r\n if (parameter.slice(-2).includes(\"ID\")) {\r\n field = (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return field;\r\n })\r\n }\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./SkillsReport.css\";\r\nimport { SkillsReportForm } from './SkillsReportForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst SkillsReportRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass SkillsReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n skillsReportDetails: \"\",\r\n model: {}\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let url = \"api/sims/Skillsreportsdetails/GetFind?SkillsReportID=\" + this.props.location.state.selection;\r\n utils.invokeUrl(url, (data) => {\r\n this.setState({ skillsReportDetails: data });\r\n }, (e) => {\r\n this.setState({ message: \"Unable to get report details. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ model: values });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/SkillsReportSearch');\r\n }\r\n\r\n handleExecuteReport = () => {\r\n\r\n let searchParameters = [];\r\n const properties = Object.getOwnPropertyNames(this.state.model);\r\n if (!utils.isNull(properties) && properties.length > 0) {\r\n for (let i = 0; i < properties.length; i++) {\r\n let searchParameter = {};\r\n searchParameter.Name = properties[i];\r\n searchParameter.Value = this.state.model[properties[i]];\r\n searchParameters.push(searchParameter);\r\n }\r\n }\r\n\r\n searchParameters.push({ Name: \"SkillsReportID\", Value: this.props.location.state.selection })\r\n\r\n utils.invokeUrl(\"api/sims/SkillsReportsDetails/GetSkillsReportsExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Skills Reports \" + (this.state.skillsReportDetails.ReportName !== null ? \"> \" + this.state.skillsReportDetails.ReportName : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(SkillsReport);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function MasterFilesSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Report Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.FirstName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Report Description \r\n\t\t\t\t\t\t\t\t\r\n props.model.Surname = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./MasterFile.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport MasterFileSearchForm from './MasterFileSearchForm';\r\nimport CardLayout from '../../widgets/Card';\r\n\r\nconst headCells = [\r\n { id: 'ReportName', numeric: false, disablePadding: true, label: 'Report Name' },\r\n { id: 'ReportDescription', numeric: false, disablePadding: true, label: 'Report Description' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst searchParameters = [\r\n { Name: \"ReportName\", Value: \"\" },\r\n { Name: \"ReportDescription\", Value: \"\" },\r\n]\r\n\r\nclass MasterFileSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n ReportName: \"\",\r\n ReportDescription: \"\"\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(MasterFileSearch)\r\n);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { Col, Row, Button } from \"react-bootstrap\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n 'MuiOutlinedInput-input': {\r\n padding: '18.5px 100px',\r\n }\r\n}));\r\n\r\n\r\nexport default function ETQSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Legal Name\r\n\t\t\t\t\t\t\t\t\r\n \r\n \r\n \r\n \r\n Trade Name\r\n\t\t\t\t\t \r\n \r\n \r\n \r\n \r\n SDL Number\r\n\t\t\t\t\t\t\t\t\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Provider Accreditation Number\r\n\t\t\t\t\t\t\t\t\r\n \r\n \r\n \r\n \r\n Accreditation Status\r\n\t\t\t\t\t\t\t\t\r\n \r\n \r\n \r\n \r\n Province\r\n\t\t\t\t\t \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ProviderSearchForm from './ProviderSearchForm';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CardLayout from '../../widgets/Card';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"OFOCode\", numeric: false, disablePadding: true, label: \"OFO Code\" },\r\n { id: \"OFODescription\", numeric: false, disablePadding: true, label: \"OFO Description\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select OFO Occupation from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nconst searchParameters = [\r\n { Name: \"LegalName\", value: \"\" },\r\n { Name: \"SDLNumber\", value: \"\" },\r\n { Name: \"TradeName\", value: \"\" },\r\n { Name: \"ProviderAccreditationNumber\", value: \"\" },\r\n { Name: \"AccreditationStatus\", value: \"\" },\r\n { Name: \"Province\", value: \"\" }\r\n]\r\n\r\nclass ProviderSearch extends Component {\r\n state = {\r\n model: {\r\n LegalName: \"\",\r\n SDLNumber: \"\",\r\n TradeName: \"\",\r\n ProviderAccreditationNumber: \"\",\r\n AccreditationStatus: \"\",\r\n Province: \"\"\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderSearch)\r\n);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { Col, Row, Button } from \"react-bootstrap\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function EmployerSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Legal Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.OrganisationLegalName = ev.target.value}\r\n labelWidth={labelWidth}\r\n onKeyPress={props.onKeyUp}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Trade Name\r\n\t\t\t\t\t\t\t\t\r\n props.model.OrganisationTradeName = ev.target.value}\r\n labelWidth={labelWidth}\r\n onKeyPress={props.onKeyUp}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n SDL Number\r\n\t\t\t\t\t\t\t\t\r\n props.model.OrganisationSdlNumber = ev.target.value}\r\n labelWidth={labelWidth}\r\n onKeyPress={props.onKeyUp}\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Employer.css\";\r\nimport EmployerSearchForm from './EmployerSearchForm';\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport CardLayout from '../../widgets/Card';\r\n\r\nconst headCells = [\r\n { id: 'OrganisationLegalName', numeric: false, disablePadding: false, label: 'Organisation Legal Name', widthRatio: .5 },\r\n { id: 'OrganisationSDLNumber', numeric: false, disablePadding: false, label: 'Organisation SDL Number', widthRatio: .25 },\r\n { id: 'OrganisationTradeName', numeric: false, disablePadding: false, label: 'Organisation Trade Name', widthRatio: .25 }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', modes: 'default,lookup' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', modes: 'default' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst searchParameters = [{ Name: \"OrganisationTradeName\", Value: \"\" },\r\n{ Name: \"OrganisationSDLNumber\", Value: \"\" },\r\n{ Name: \"OrganisationLegalName\", Value: \"\" }];\r\n\r\nclass EmployerSearch extends Component {\r\n\r\n state = {\r\n model: { OrganisationTradeName: \"\", OrganisationSDLNumber: \"\", OrganisationLegalName: \"\" },\r\n keyUpSwitch: false\r\n };\r\n\r\n onkeyup(e) {\r\n //console.log(e.charCode)\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }}/>\r\n \r\n \r\n\r\n );\r\n }\r\n}\r\n\r\nexport default connect()(EmployerSearch);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { Col, Button } from \"react-bootstrap\";\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport ProviderSearch from './ProviderSearch';\r\nimport EmployeeSearch from './EmployerSearch';\r\nimport { LookupField } from '../../widgets/LookupField';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const MasterFileForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupation\", value.Id)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupation\", value.Id)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Execute Report\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n \r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./MasterFile.css\";\r\nimport { MasterFileForm } from './MasterFileForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'Report Detail', label: 'Report Detail', tooltip: 'Report Detail' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst masterfileRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass MasterFile extends Component {\r\n\r\n state = {\r\n masterfileDetails: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n }\r\n };\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ sdfDetails: values });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"organisationDetails\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/sdfOrgDetails'\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n if (\"organisationDetails\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/providerAccreditationDetails',\r\n state: {\r\n sdfID: this.props.location.state.selection,\r\n sdfName: this.state.sdfDetails.FirstName\r\n }\r\n })\r\n }\r\n }\r\n save() {\r\n let formValue = masterfileRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n const url = `api/indicium/provider/updateProviderDetails?data=${data}`;\r\n // TODO : Invoke spinner mask\r\n fetch(url)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (response.MessageType !== \"ERROR\") {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: {\r\n sdfID: this.props.location.state.selection,\r\n sdfName: this.state.sdfDetails.FirstName\r\n }\r\n });\r\n } else {\r\n this.setState({ saveMessage: response.Message, hasSaveError: true });\r\n }\r\n }).catch(() => {\r\n this.setState({ saveMessage: \"A system error has accured. Please contact your system administrator\", hasSaveError: true });\r\n });\r\n }\r\n \r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/sdfSearch',\r\n state: { selection: this.props.location.state.sdfID }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {this.state.message}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true} config={toolbarConfig} />\r\n
\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\n\r\nexport default withRouter(MasterFile);\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel, { FormTabContainer } from '../../widgets/TabPanel';\r\nimport { Col, Button } from \"react-bootstrap\";\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const SETMISFileForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Download SETMIS Files\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./SETMISFile.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport { SETMISFileForm } from './SETMISFileForm';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport CardLayout from '../../widgets/Card';\r\n\r\nconst headCells = [\r\n { id: 'ReportName', numeric: false, disablePadding: true, label: 'Report Name' },\r\n { id: 'ReportDescription', numeric: false, disablePadding: true, label: 'Report Description' }\r\n];\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon' },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst searchParameters = [\r\n { Name: \"Report Name\", Value: \"\" },\r\n { Name: \"Report Description\", Value: \"\" },\r\n]\r\n\r\nclass SETMISFileSearch extends Component {\r\n\r\n state = {\r\n model: {\r\n ReportName: \"\",\r\n ReportDescription: \"\"\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n {this.state.message}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(SETMISFileSearch)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./SETMISFile.css\";\r\nimport { SETMISFileForm } from './SETMISFileForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close' },\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'organisationDetails', label: 'Organisation Details', tooltip: 'Organisation Details' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst setmisfileRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass SETMISFile extends Component {\r\n\r\n state = {\r\n sdfDetails: {\r\n FirstName: \"\",\r\n Surname: \"\",\r\n }\r\n };\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ sdfDetails: values });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else if (\"close\" === buttonId) {\r\n this.closeView();\r\n } else if (\"organisationDetails\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/sdfOrgDetails'\r\n });\r\n }\r\n }\r\n\r\n handleToolbarButtonMenuClick(menu) {\r\n if (\"organisationDetails\" === menu.id) {\r\n this.props.history.push({\r\n pathname: '/providerAccreditationDetails',\r\n state: {\r\n sdfID: this.props.location.state.selection,\r\n sdfName: this.state.sdfDetails.FirstName\r\n }\r\n })\r\n }\r\n }\r\n save() {\r\n let formValue = setmisfileRef.current.getValue();\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n let data = JSON.stringify(formValue);\r\n const url = `api/indicium/provider/updateProviderDetails?data=${data}`;\r\n // TODO : Invoke spinner mask\r\n fetch(url)\r\n .then(res => res.json())\r\n .then((responseJson) => {\r\n let response = JSON.parse(responseJson);\r\n if (response.MessageType !== \"ERROR\") {\r\n this.props.history.push({\r\n pathname: '/provider',\r\n state: {\r\n sdfID: this.props.location.state.selection,\r\n sdfName: this.state.sdfDetails.FirstName\r\n }\r\n });\r\n } else {\r\n this.setState({ saveMessage: response.Message, hasSaveError: true });\r\n }\r\n }).catch(() => {\r\n this.setState({ saveMessage: \"A system error has accured. Please contact your system administrator\", hasSaveError: true });\r\n });\r\n }\r\n \r\n }\r\n\r\n closeView() {\r\n this.props.history.push({\r\n pathname: '/sdfSearch',\r\n state: { selection: this.props.location.state.sdfID }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {this.state.message}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n buttonMenuClickHandler={(menu) => this.handleToolbarButtonMenuClick(menu)} enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\n\r\nexport default withRouter(SETMISFile);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\nexport default function DGReportSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./DGReport.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport DGReportSearchForm from './DGReportSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst headCells = [\r\n { id: 'ReportName', numeric: false, disablePadding: true, label: 'Report Name' },\r\n { id: 'ReportDescription', numeric: false, disablePadding: true, label: 'Report Description' }\r\n];\r\n\r\nclass DGReportSearch extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters = [\r\n { Name: \"ReportName\", Value: \"\" },\r\n { Name: \"ReportDescription\", Value: \"\" },\r\n ]\r\n\r\n let model = {\r\n ReportName: \"\",\r\n ReportDescription: \"\"\r\n };\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'Run Report', icon: 'EditIcon', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"DG Reports\"}\r\n

\r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(DGReportSearch));\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const DGReportForm = React.forwardRef((props, ref) => {\r\n\r\n const paramArray = !utils.isNull(props.dgReportDetails) && !utils.isNull(props.dgReportDetails.ReportParameters) ? props.dgReportDetails.ReportParameters.split(\",\") : [];\r\n\r\n const getName = (name) => {\r\n let text = name.slice(0, -2)\r\n let newText = [];\r\n newText.push(text[0]);\r\n\r\n for (var i = 1; i < text.length; i++) {\r\n if (checkUppercase(text[i]) && !checkUppercase(text[i - 1]) && !checkPuctuation(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n else if (checkDigit(text[i]) && checkLetter(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n else if (i < text.length - 1) {\r\n if (checkUppercase(text[i]) && (!checkUppercase(text[i + 1]) && text[i + 1] !== \" \" && text[i + 1] !== \")\" && text[i + 1] !== \"'\") && !checkPuctuation(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n }\r\n\r\n newText.push(text[i]);\r\n }\r\n return newText.join(\"\").replace(\" \", \" \");\r\n }\r\n\r\n const checkUppercase = (value) => {\r\n if (value === value.toUpperCase()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkPuctuation = (value) => {\r\n if (value === \".\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkDigit = (value) => {\r\n if (Number.isInteger(value)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkLetter = (str) => {\r\n return str.length === 1 && str.match(/[a-z]/i);\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n {\r\n paramArray.map(parameter => {\r\n\r\n let field;\r\n\r\n if (parameter.slice(-2).includes(\"ID\")) {\r\n field = (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return field;\r\n })\r\n }\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./DGReport.css\";\r\nimport { DGReportForm } from './DGReportForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst DGReportRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass DGReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n dgReportDetails: \"\",\r\n model: {}\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let url = \"api/sims/dggrantreportsdetails/GetFind?DGGrantsReportID=\" + this.props.location.state.selection;\r\n utils.invokeUrl(url, (data) => {\r\n this.setState({ dgReportDetails: data });\r\n }, (e) => {\r\n this.setState({ message: \"Unable to get report details. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ model: values });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/DGReportSearch');\r\n }\r\n\r\n handleExecuteReport = () => {\r\n\r\n let searchParameters = [];\r\n const properties = Object.getOwnPropertyNames(this.state.model);\r\n if (!utils.isNull(properties) && properties.length > 0) {\r\n for (let i = 0; i < properties.length; i++) {\r\n let searchParameter = {};\r\n searchParameter.Name = properties[i];\r\n searchParameter.Value = this.state.model[properties[i]];\r\n searchParameters.push(searchParameter);\r\n }\r\n }\r\n\r\n searchParameters.push({ Name: \"DGGrantsReportID\", Value: this.props.location.state.selection })\r\n\r\n utils.invokeUrl(\"api/sims/DGGrantReportsDetails/GetGrantReportsExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"DG Reports \" + (this.state.dgReportDetails.ReportName !== null ? \"> \" + this.state.dgReportDetails.ReportName : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(DGReport);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass CustomReports extends Component {\r\n state = {\r\n UniqueID: null,\r\n CustomReportingToolPath: null\r\n };\r\n\r\n componentDidMount() {\r\n let url = \"api/sims/customreports/retrieveUniqueID\";\r\n utils.invokeUrl(url, (data) => {\r\n this.setState({ UniqueID: data.UniqueID, CustomReportingToolPath: data.CustomReportingToolPath });\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\", clearGrid: true });\r\n });\r\n }\r\n\r\n render() {\r\n\r\n const URL = window.location.origin\r\n ? window.location.origin + '/' + this.state.CustomReportingToolPath + '/Default.aspx?UniqueID=' + this.state.UniqueID\r\n : window.location.protocol + '/' + window.location.host + '/' + this.state.CustomReportingToolPath + '/Default.aspx?UniqueID=' + this.state.UniqueID;\r\n\r\n return (\r\n \r\n

\r\n {\"Custom Reports\"}\r\n

\r\n
\r\n {this.state.UniqueID !== null && View Custom Reports}\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(CustomReports);","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\nexport default function AdminReportSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./AdminReport.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport AdminReportSearchForm from './AdminReportSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst headCells = [\r\n { id: 'ReportName', numeric: false, disablePadding: true, label: 'Report Name' },\r\n { id: 'ReportDescription', numeric: false, disablePadding: true, label: 'Report Description' }\r\n];\r\n\r\nclass AdminReportSearch extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters = [\r\n { Name: \"ReportName\", Value: \"\" },\r\n { Name: \"ReportDescription\", Value: \"\" },\r\n ]\r\n\r\n let model = {\r\n ReportName: \"\",\r\n ReportDescription: \"\"\r\n };\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'Run Report', icon: 'EditIcon', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Admin Reports\"}\r\n

\r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(AdminReportSearch));\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const AdminReportForm = React.forwardRef((props, ref) => {\r\n\r\n const paramArray = !utils.isNull(props.AdminReportDetails) && !utils.isNull(props.AdminReportDetails.ReportParameters) ? props.AdminReportDetails.ReportParameters.split(\",\") : [];\r\n\r\n const getName = (name) => {\r\n let text = name.slice(0, -2)\r\n let newText = [];\r\n newText.push(text[0]);\r\n\r\n for (var i = 1; i < text.length; i++) {\r\n if (checkUppercase(text[i]) && !checkUppercase(text[i - 1]) && !checkPuctuation(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n else if (checkDigit(text[i]) && checkLetter(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n else if (i < text.length - 1) {\r\n if (checkUppercase(text[i]) && (!checkUppercase(text[i + 1]) && text[i + 1] !== \" \" && text[i + 1] !== \")\" && text[i + 1] !== \"'\") && !checkPuctuation(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n }\r\n\r\n newText.push(text[i]);\r\n }\r\n return newText.join(\"\").replace(\" \", \" \");\r\n }\r\n\r\n const checkUppercase = (value) => {\r\n if (value === value.toUpperCase()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkPuctuation = (value) => {\r\n if (value === \".\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkDigit = (value) => {\r\n if (Number.isInteger(value)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkLetter = (str) => {\r\n return str.length === 1 && str.match(/[a-z]/i);\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n {\r\n paramArray.map(parameter => {\r\n\r\n let field;\r\n\r\n if (parameter.slice(-2).includes(\"ID\")) {\r\n field = (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return field;\r\n })\r\n }\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./AdminReport.css\";\r\nimport { AdminReportForm } from './AdminReportForm';\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst AdminReportRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass AdminReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n AdminReportDetails: \"\",\r\n model: {}\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let url = \"api/sims/Adminreportsdetails/GetFind?AdminReportID=\" + this.props.location.state.selection;\r\n utils.invokeUrl(url, (data) => {\r\n this.setState({ AdminReportDetails: data });\r\n }, (e) => {\r\n this.setState({ message: \"Unable to get report details. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({ model: values });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/AdminReportSearch');\r\n }\r\n\r\n handleExecuteReport = () => {\r\n\r\n let searchParameters = [];\r\n const properties = Object.getOwnPropertyNames(this.state.model);\r\n if (!utils.isNull(properties) && properties.length > 0) {\r\n for (let i = 0; i < properties.length; i++) {\r\n let searchParameter = {};\r\n searchParameter.Name = properties[i];\r\n searchParameter.Value = this.state.model[properties[i]];\r\n searchParameters.push(searchParameter);\r\n }\r\n }\r\n\r\n searchParameters.push({ Name: \"AdminReportID\", Value: this.props.location.state.selection })\r\n\r\n utils.invokeUrl(\"api/sims/AdminReportsDetails/GetAdminReportsExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Admin Reports \" + (this.state.AdminReportDetails.ReportName !== null ? \"> \" + this.state.AdminReportDetails.ReportName : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(AdminReport);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\nexport default function ProviderReportSearchForm(props) {\r\n\r\n return (\r\n \r\n {form =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./ProviderReport.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ProviderReportSearchForm from './ProviderReportSearchForm';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\n\r\nconst headCells = [\r\n { id: 'ReportName', numeric: false, disablePadding: true, label: 'Report Name' },\r\n { id: 'ReportDescription', numeric: false, disablePadding: true, label: 'Report Description' }\r\n];\r\n\r\nclass ProviderReportSearch extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters = [\r\n { Name: \"ReportName\", Value: \"\" },\r\n { Name: \"ReportDescription\", Value: \"\" },\r\n ]\r\n\r\n let model = {\r\n ReportName: \"\",\r\n ReportDescription: \"\"\r\n };\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'edit', label: '', tooltip: 'Run Report', icon: 'EditIcon', disabled: true }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Provider Reports\"}\r\n

\r\n \r\n { this.onkeyup(e) }}\r\n valueChangeHandler={(values) => {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(ProviderReportSearch));\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from \"../../ViewUtils\";\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomCheckbox } from '../../widgets/CustomCheckbox';\r\nimport ProviderSearch from '../Controls/ProviderSearch';\r\nimport AssessorSearch from \"../../etqa/assessor/AssessorSearch\";\r\nimport ModeratorSearch from \"../../etqa/moderator/ModeratorSearch\";\r\nimport EmployerSearch from \"../../etqa/employer/EmployerSearch\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const ProviderReportForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const paramArray = !utils.isNull(props.ProviderReportDetails) && !utils.isNull(props.ProviderReportDetails.ReportParameters) ? props.ProviderReportDetails.ReportParameters.split(\",\") : [];\r\n\r\n const getName = (name) => {\r\n let text;\r\n if (name.slice(-2).includes(\"ID\")) {\r\n text = name.slice(0, -2);\r\n } else {\r\n text = name;\r\n }\r\n\r\n let newText = [];\r\n newText.push(text[0]);\r\n\r\n for (var i = 1; i < text.length; i++) {\r\n if (checkUppercase(text[i]) && !checkUppercase(text[i - 1]) && !checkPuctuation(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n else if (checkDigit(text[i]) && checkLetter(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n else if (i < text.length - 1) {\r\n if (checkUppercase(text[i]) && (!checkUppercase(text[i + 1]) && text[i + 1] !== \" \" && text[i + 1] !== \")\" && text[i + 1] !== \"'\") && !checkPuctuation(text[i - 1])) {\r\n newText.push(' ');\r\n }\r\n }\r\n\r\n newText.push(text[i]);\r\n }\r\n return newText.join(\"\").replace(\" \", \" \");\r\n }\r\n\r\n const checkUppercase = (value) => {\r\n if (value === value.toUpperCase()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkPuctuation = (value) => {\r\n if (value === \".\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkDigit = (value) => {\r\n if (Number.isInteger(value)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const checkLetter = (str) => {\r\n return str.length === 1 && str.match(/[a-z]/i);\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n {/*
*/}\r\n \r\n {\r\n paramArray.map(parameter => {\r\n\r\n let field;\r\n\r\n if (parameter === \"ProviderID\") {\r\n field = (\r\n \r\n \r\n \r\n );\r\n } else if (parameter === \"AssessorID\") {\r\n field = (\r\n \r\n \r\n );\r\n } else if (parameter === \"ModeratorID\") {\r\n field = (\r\n \r\n \r\n \r\n );\r\n } else if (parameter === \"EmployerID\") {\r\n field = (\r\n \r\n \r\n );\r\n } else if (parameter.slice(-2).includes(\"ID\")) {\r\n field = (\r\n \r\n \r\n \r\n );\r\n } else if (parameter.includes(\"Date\")) {\r\n field = (\r\n \r\n \r\n \r\n );\r\n } else if (parameter.slice(0, 2).includes(\"Is\")) {\r\n field = (\r\n \r\n \r\n \r\n );\r\n } else if (parameter.length > 0) {\r\n field = (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return field;\r\n })\r\n }\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"AssessorID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ModeratorID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {/*
*/}\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./ProviderReport.css\";\r\nimport { ProviderReportForm } from './ProviderReportForm';\r\nimport ViewUtils from \"../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst ProviderReportRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nclass ProviderReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ProviderReportDetails: \"\",\r\n model: {}\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let url = \"api/sims/Providerreportsdetails/GetFind?ProviderReportID=\" + this.props.location.state.selection;\r\n utils.invokeUrl(url, (data) => {\r\n const parameters = data.ReportParameters.split(',');\r\n let model = {};\r\n for (const parameter of parameters) {\r\n if (parameter === \"ProviderID\") {\r\n model[\"ProviderID\"] = null;\r\n } else if (parameter === \"AssessorID\") {\r\n model[\"AssessorID\"] = null;\r\n } else if (parameter === \"ModeratorID\") {\r\n model[\"ModeratorID\"] = null;\r\n } else if (parameter === \"EmployerID\") {\r\n model[\"EmployerID\"] = null;\r\n }\r\n }\r\n this.setState({ ProviderReportDetails: data, model: model });\r\n }, (e) => {\r\n this.setState({ message: \"Unable to get report details. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(values)) {\r\n this.setState({ model: values });\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.closeView();\r\n }\r\n }\r\n\r\n closeView() {\r\n this.props.history.push('/ProviderReportSearch');\r\n }\r\n\r\n handleExecuteReport = () => {\r\n\r\n let searchParameters = [];\r\n const properties = Object.getOwnPropertyNames(this.state.model);\r\n if (!utils.isNull(properties) && properties.length > 0) {\r\n for (let i = 0; i < properties.length; i++) {\r\n let searchParameter = {};\r\n searchParameter.Name = properties[i];\r\n searchParameter.Value = this.state.model[properties[i]];\r\n searchParameters.push(searchParameter);\r\n }\r\n }\r\n\r\n searchParameters.push({ Name: \"ProviderReportID\", Value: this.props.location.state.selection })\r\n\r\n utils.invokeUrl(\"api/sims/ProviderReportsDetails/GetProviderReportsExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Provider Reports \" + (this.state.ProviderReportDetails.ReportName !== null ? \"> \" + this.state.ProviderReportDetails.ReportName : \"> Add\")}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n
\r\n this.handleFormValueChange(values)} />\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(ProviderReport);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport ProviderSearch from \"../provider/ProviderSearch\";\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst ProviderDocumentSearchForm = React.forwardRef((props, ref) => {\r\n const [dependency, setDependency] = React.useState(props.dependency);\r\n\r\n React.useEffect(() => {\r\n setDependency(props.dependency);\r\n }, [props.dependency]);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n {/*
\r\n \r\n
\r\n\r\n
\r\n \r\n
*/}\r\n\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default ProviderDocumentSearchForm;","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ProviderDocumentSearchForm from './ProviderDocumentSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst headCells = [\r\n { id: 'ProviderLegalName', numeric: false, disablePadding: true, label: 'Provider Legal Name' },\r\n { id: \"ProviderTradeName\", numeric: false, disablePadding: true, label: \"Provider Trade Name\" },\r\n { id: \"ProviderSDLNumber\", numeric: false, disablePadding: true, label: \"Provider SDL Number\" },\r\n]\r\n\r\nconst searchParameters = [\r\n //{ Name: \"DocumentType\", Value: \"\" },\r\n //{ Name: \"PrintType\", Value: \"\" },\r\n //{ Name: \"AccreditationStatus\", Value: \"\" },\r\n { Name: \"ProviderID\", Value: \"\" },\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst searchFormRef = React.createRef();\r\n\r\nclass ProviderDocuments extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n //DocumentType: null,\r\n //PrintTypeID: null,\r\n //AccreditationStatus: null,\r\n ProviderID: null\r\n },\r\n selectedProviders: null,\r\n keyUpSwitch: false,\r\n clearGrid: false,\r\n documentsGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'generate', label: 'Generate', icon: 'CreateIcon', tooltip: 'Generate letters / certificates',disabled: utils.isNull(this.state.selectedProviders)}\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"generate\" === buttonId) {\r\n this.generateDocuments();\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n\r\n FileDownload = (documentName) => {\r\n\r\n utils.invokeUrl(\"api/sims/providerletters/DownloadProviderLetters?FileName=\" + documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"download\", true);\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n generateDocuments = () => {\r\n const ProviderIDs = this.state.selectedProviders.map(e => e.Id);\r\n let data = {\r\n ProviderIDs: ProviderIDs,\r\n ...this.state.model\r\n }\r\n let url = \"api/sims/providerletters/GenerateProviderLetters\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n let documentInfo = JSON.parse(response.Message);\r\n this.FileDownload(documentInfo.OriginalFileName);\r\n toolbarRef.current.setButtonDisabled(\"download\", !this.state.documentGenerated);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedProviders: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedProviders: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedAssessors: null,\r\n Message: \"\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n }\r\n\r\n onSearchRequiredFieldCheck = () => {\r\n if (searchFormRef.current.getValue()) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n onGridCleared = () => {\r\n this.setState({ clearGrid: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.handleSelectionChange(selection) }}\r\n autoFetchData={false}\r\n toolbarRef={toolbarRef}\r\n onSearchRequiredFieldCheck={this.onSearchRequiredFieldCheck}\r\n clearGrid={this.state.clearGrid}\r\n onGridCleared={this.onGridCleared}\r\n title={\"Provider Documents\"}\r\n >\r\n { this.onkeyup(e) }}\r\n model={this.state.model}\r\n valueChangeHandler={this.handleFormValueChange}\r\n //dependency={this.state.dependency}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderDocuments)\r\n);","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport ProviderSearch from \"../provider/ProviderSearch\";\r\nimport AssessorSearch from \"../assessor/AssessorSearch\";\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function AssessorDocumentSearchForm(props) {\r\n const [dependency, setDependency] = React.useState(props.dependency);\r\n\r\n React.useEffect(() => {\r\n setDependency(props.dependency);\r\n }, [props.dependency]);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"AssessorID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n {/*
\r\n \r\n {\r\n form.setLookupSelection(\"Provider\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
*/}\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport AssessorDocumentSearchForm from './AssessorDocumentSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst headCells = [\r\n { id: \"AssessorName\", numeric: false, disablePadding: true, label: 'Assessor Name' },\r\n { id: \"AssessorSurname\", numeric: false, disablePadding: true, label: \"Assessor Surname\" },\r\n { id: \"AssessorRegistrationNumber\", numeric: false, disablePadding: true, label: \"Assessor Registration Number\" }\r\n]\r\n\r\nconst searchParameters = [\r\n //{ Name: \"DocumentType\", Value: \"\" },\r\n //{ Name: \"PrintType\", Value: \"\" },\r\n //{ Name: \"Provider\", Value: \"\" },\r\n { Name: \"AssessorID\", Value: \"\" }\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst searchFormRef = React.createRef();\r\n\r\nclass AssessorDocuments extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n //DocumentType: null,\r\n //PrintType: null,\r\n //Provider: {Description: \"\", Id: null},\r\n AssessorID: null\r\n },\r\n selectedAssessors: null,\r\n keyUpSwitch: false,\r\n clearGrid: false,\r\n documentsGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'generate', label: 'Generate', icon: 'CreateIcon', tooltip: 'Generate letters / certificates',disabled: utils.isNull(this.state.selectedAssessors)}\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"generate\" === buttonId) {\r\n this.generateDocuments();\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n\r\n FileDownload = (documentName) => {\r\n\r\n utils.invokeUrl(\"api/sims/assessorletters/DownloadAssessorLetters?FileName=\" + documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"download\", true);\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n generateDocuments = () => {\r\n const AssessorIDs = this.state.selectedAssessors.map(e => e.Id);\r\n let data = {\r\n AssessorIDs: AssessorIDs,\r\n ...this.state.model\r\n }\r\n let url = \"api/sims/assessorletters/GenerateAssessorLetters\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n let documentInfo = JSON.parse(response.Message);\r\n this.FileDownload(documentInfo.OriginalFileName);\r\n toolbarRef.current.setButtonDisabled(\"download\", !this.state.documentGenerated);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedAssessors: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedAssessors: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedAssessors: null,\r\n Message: \"\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n }\r\n\r\n onGridCleared = () => {\r\n this.setState({ clearGrid: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.handleSelectionChange(selection) }}\r\n autoFetchData={false}\r\n toolbarRef={toolbarRef}\r\n clearGrid={this.state.clearGrid}\r\n onGridCleared={this.onGridCleared}\r\n title={\"Assessor Documents\"}\r\n >\r\n { this.onkeyup(e) }}\r\n model={this.state.model}\r\n valueChangeHandler={this.handleFormValueChange}\r\n dependency={this.state.dependency}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(AssessorDocuments)\r\n);","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport ProviderSearch from \"../provider/ProviderSearch\";\r\nimport ModeratorSearch from \"../moderator/ModeratorSearch\";\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport default function ModeratorDocumentSearchForm(props) {\r\n const [dependency, setDependency] = React.useState(props.dependency);\r\n\r\n React.useEffect(() => {\r\n setDependency(props.dependency);\r\n }, [props.dependency]);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ModeratorID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n {/*
\r\n \r\n {\r\n form.setLookupSelection(\"Provider\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
*/}\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ModeratorDocumentSearchForm from './ModeratorDocumentSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst headCells = [\r\n { id: \"ModeratorName\", numeric: false, disablePadding: true, label: 'Moderator Name' },\r\n { id: \"ModeratorSurname\", numeric: false, disablePadding: true, label: \"Moderator Surname\" },\r\n { id: \"ModeratorRegistrationNumber\", numeric: false, disablePadding: true, label: \"Moderator Registration Number\" }\r\n]\r\n\r\nconst searchParameters = [\r\n { Name: \"ModeratorID\", Value: \"\" },\r\n //{ Name: \"ProviderId\", Value: \"\" },\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst searchFormRef = React.createRef();\r\n\r\nclass ModeratorDocuments extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n ModeratorID: null,\r\n //Provider: { Description: \"\", Id: \"\" }\r\n },\r\n selectedModerators: null,\r\n keyUpSwitch: false,\r\n clearGrid: false,\r\n documentsGenerated: false,\r\n messsageAlert: null,\r\n messageStyle: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'generate', label: 'Generate', icon: 'CreateIcon', tooltip: 'Generate letters / certificates',disabled: utils.isNull(this.state.selectedModerators)}\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"generate\" === buttonId) {\r\n this.generateDocuments();\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n\r\n FileDownload = (documentName) => {\r\n\r\n utils.invokeUrl(\"api/sims/moderatorletters/DownloadModeratorLetters?FileName=\" + documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"download\", true);\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n generateDocuments = () => {\r\n const ModeratorIDs = this.state.selectedModerators.map(e => e.Id);\r\n let data = {\r\n ModeratorIDs: ModeratorIDs,\r\n ...this.state.model\r\n }\r\n let url = \"api/sims/moderatorletters/GenerateModeratorLetters\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n let documentInfo = JSON.parse(response.Message);\r\n this.FileDownload(documentInfo.OriginalFileName);\r\n toolbarRef.current.setButtonDisabled(\"download\", !this.state.documentGenerated);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedModerators: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedModerators: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedModerators: null,\r\n Message: \"\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n }\r\n\r\n onGridCleared = () => {\r\n this.setState({ clearGrid: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.handleSelectionChange(selection) }}\r\n autoFetchData={false}\r\n toolbarRef={toolbarRef}\r\n clearGrid={this.state.clearGrid}\r\n onGridCleared={this.onGridCleared}\r\n title={\"Moderator Documents\"}\r\n >\r\n { this.onkeyup(e) }}\r\n model={this.state.model}\r\n valueChangeHandler={this.handleFormValueChange}\r\n dependency={this.state.dependency}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ModeratorDocuments)\r\n);","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport ProviderSearch from \"../provider/ProviderSearch\";\r\nimport EmployerSearch from \"../employer/EmployerSearch\";\r\nimport LearnerSearch from \"../learner/LearnerSearch\";\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport LearnershipSetupSearch from '../program/LearnershipSetupSearch';\r\nimport SkillsProgramSetupSearch from '../program/SkillsProgramSetupSearch';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst LearnerDocumentSearchForm = React.forwardRef((props, ref) => {\r\n const [dependency, setDependency] = React.useState(props.dependency);\r\n\r\n React.useEffect(() => {\r\n setDependency(props.dependency);\r\n }, [props.dependency]);\r\n\r\n const onCheckFieldValitationArray = (fields, values) => {\r\n if (values.DocumentTypeID !== null && values.DocumentTypeID.Id === \"2\") {\r\n fields = fields.filter(e => e.id !== \"PrintTypeID\");\r\n }\r\n console.log(fields);\r\n return fields;\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n {\r\n !utils.isNull(form.values[\"DocumentTypeID\"]) && form.values[\"DocumentTypeID\"].Description === \"Certificate\" ?\r\n
\r\n \r\n
: \"\"\r\n }\r\n
\r\n \r\n
\r\n {\r\n !utils.isNull(form.values[\"ProgrammeTypeID\"]) && form.values[\"ProgrammeTypeID\"].Description === \"Qualification\" ?\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProgrammeID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(form.values[\"ProgrammeTypeID\"]) && form.values[\"ProgrammeTypeID\"].Description === \"Unit Standards\" ?\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProgrammeID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(form.values[\"ProgrammeTypeID\"]) && form.values[\"ProgrammeTypeID\"].Description === \"Learnership\" ?\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProgrammeID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(form.values[\"ProgrammeTypeID\"]) && form.values[\"ProgrammeTypeID\"].Description === \"Skills Programmes\" ?\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProgrammeID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"LearnerID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default LearnerDocumentSearchForm;","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport LearnerDocumentSearchForm from './LearnerDocumentSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst headCells = [\r\n { id: \"LearnerIDNumber\", numeric: false, disablePadding: true, label: \"Learner ID Number\" },\r\n { id: \"LearnerName\", numeric: false, disablePadding: true, label: \"Learner Name\" },\r\n { id: \"InterventionCode\", numeric: false, disablePadding: true, label: \"Intervention Code\" },\r\n { id: \"InterventionDescription\", numeric: false, disablePadding: true, label: \"Intervention Description\" },\r\n { id: \"TrainingProviderName\", numeric: false, disablePadding: true, label: \"Training Provider Name\" },\r\n]\r\n\r\nconst searchParameters = [\r\n { Name: \"DocumentTypeID\", Value: \"\" },\r\n { Name: \"PrintTypeID\", Value: \"\" },\r\n { Name: \"ProgrammeTypeID\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: \"\" },\r\n { Name: \"ProviderID\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: \"\" },\r\n { Name: \"EmployerID\", Value: \"\" }\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst searchFormRef = React.createRef();\r\n\r\nclass LearnerDocuments extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n DocumentTypeID: null,\r\n PrintTypeID: null,\r\n ProgrammeTypeID: null,\r\n ProgrammeID: null,\r\n ProviderID: null,\r\n EmployerID: null,\r\n LearnerID: null\r\n },\r\n selectedLearners: null,\r\n keyUpSwitch: false,\r\n clearGrid: false,\r\n documentGenerated: false,\r\n documentName: null,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'generate', label: 'Generate', icon: 'CreateIcon', tooltip: 'Generate letters / certificates',disabled: utils.isNull(this.state.selectedLearners)}\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"generate\" === buttonId) {\r\n this.generateDocuments();\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n\r\n FileDownload = (documentName) => {\r\n\r\n utils.invokeUrl(\"api/sims/bulklearnercertificate/DownloadLearnerCertificates?FileName=\" + documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"download\", true);\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n generateDocuments = () => {\r\n const LearnerProgrammeIDs = this.state.selectedLearners.map(e => e.Id);\r\n let data = {\r\n LearnerProgrammeIDs: LearnerProgrammeIDs,\r\n ...this.state.model\r\n }\r\n let url = \"api/sims/bulklearnercertificate/GenerateLearnerCertificates\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n let documentInfo = JSON.parse(response.Message);\r\n this.FileDownload(documentInfo.OriginalFileName);\r\n toolbarRef.current.setButtonDisabled(\"download\", !this.state.documentGenerated);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearners: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedLearners: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n if (!utils.isNull(newValues.ProgrammeTypeID) && !utils.isNull(this.state.model.ProgrammeTypeID) && newValues.ProgrammeTypeID.Id !== this.state.model.ProgrammeTypeID.Id) {\r\n newValues.ProgrammeID = null;\r\n }\r\n if (!utils.isNull(newValues.DocumentTypeID) && !utils.isNull(this.state.model.DocumentTypeID) && newValues.DocumentTypeID.Id !== this.state.model.DocumentTypeID.Id) {\r\n newValues.PrintTypeID = null;\r\n }\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedLearners: null,\r\n Message: \"\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n }\r\n\r\n onSearchRequiredFieldCheck = () => {\r\n if (searchFormRef.current.getValue()) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n onGridCleared = () => {\r\n this.setState({ clearGrid: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.handleSelectionChange(selection) }}\r\n autoFetchData={false}\r\n toolbarRef={toolbarRef}\r\n onSearchRequiredFieldCheck={this.onSearchRequiredFieldCheck}\r\n clearGrid={this.state.clearGrid}\r\n onGridCleared={this.onGridCleared}\r\n title={\"Learner Certificates and SOR/ROA\"}\r\n >\r\n { this.onkeyup(e) }}\r\n model={this.state.model}\r\n valueChangeHandler={this.handleFormValueChange}\r\n //dependency={this.state.dependency}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnerDocuments)\r\n);","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport ProviderSearch from \"../provider/ProviderSearch\";\r\nimport EmployerSearch from \"../employer/EmployerSearch\";\r\nimport LearnerSearch from \"../learner/LearnerSearch\";\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport LearnershipSetupSearch from '../program/LearnershipSetupSearch';\r\nimport SkillsProgramSetupSearch from '../program/SkillsProgramSetupSearch';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst LearnerAttendanceSearchForm = React.forwardRef((props, ref) => {\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"LearnerID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProgrammeID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default LearnerAttendanceSearchForm;","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport LearnerAttendanceSearchForm from './LearnerAttendanceSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst headCells = [\r\n { id: \"LearnerIDNumber\", numeric: false, disablePadding: true, label: \"Learner ID Number\" },\r\n { id: \"LearnerName\", numeric: false, disablePadding: true, label: \"Learner Name\" },\r\n { id: \"InterventionCode\", numeric: false, disablePadding: true, label: \"Learnership Code\" },\r\n { id: \"InterventionDescription\", numeric: false, disablePadding: true, label: \"Learnership Description\" },\r\n { id: \"TrainingProviderName\", numeric: false, disablePadding: true, label: \"Training Provider Name\" },\r\n]\r\n\r\nconst searchParameters = [\r\n { Name: \"ProgrammeID\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: \"\" },\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst searchFormRef = React.createRef();\r\n\r\nclass LearnerAttendance extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n ProgrammeID: null,\r\n LearnerID: null\r\n },\r\n selectedLearners: null,\r\n keyUpSwitch: false,\r\n clearGrid: false,\r\n documentGenerated: false,\r\n documentName: null,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'generate', label: 'Generate', icon: 'CreateIcon', tooltip: 'Generate attendance certificates',disabled: utils.isNull(this.state.selectedLearners)}\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"generate\" === buttonId) {\r\n this.generateDocuments();\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n\r\n FileDownload = (documentName) => {\r\n\r\n utils.invokeUrl(\"api/sims/learnerattendancecertificate/DownloadLearnerCertificates?FileName=\" + documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"download\", true);\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n generateDocuments = () => {\r\n const LearnerProgrammeIDs = this.state.selectedLearners.map(e => e.Id);\r\n let data = {\r\n LearnerProgrammeIDs: LearnerProgrammeIDs,\r\n ...this.state.model\r\n }\r\n let url = \"api/sims/learnerattendancecertificate/GenerateLearnerAttendanceCertificates\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n let documentInfo = JSON.parse(response.Message);\r\n this.FileDownload(documentInfo.OriginalFileName);\r\n toolbarRef.current.setButtonDisabled(\"download\", !this.state.documentGenerated);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearners: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedLearners: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n if (!utils.isNull(newValues.ProgrammeTypeID) && !utils.isNull(this.state.model.ProgrammeTypeID) && newValues.ProgrammeTypeID.Id !== this.state.model.ProgrammeTypeID.Id) {\r\n newValues.ProgrammeID = null;\r\n }\r\n if (!utils.isNull(newValues.DocumentTypeID) && !utils.isNull(this.state.model.DocumentTypeID) && newValues.DocumentTypeID.Id !== this.state.model.DocumentTypeID.Id) {\r\n newValues.PrintTypeID = null;\r\n }\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedLearners: null,\r\n Message: \"\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n }\r\n\r\n onSearchRequiredFieldCheck = () => {\r\n if (searchFormRef.current.getValue()) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n onGridCleared = () => {\r\n this.setState({ clearGrid: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.handleSelectionChange(selection) }}\r\n autoFetchData={false}\r\n toolbarRef={toolbarRef}\r\n onSearchRequiredFieldCheck={this.onSearchRequiredFieldCheck}\r\n clearGrid={this.state.clearGrid}\r\n onGridCleared={this.onGridCleared}\r\n title={\"Learner Attendance Certificates\"}\r\n >\r\n { this.onkeyup(e) }}\r\n model={this.state.model}\r\n valueChangeHandler={this.handleFormValueChange}\r\n //dependency={this.state.dependency}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnerAttendance)\r\n);","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport ProviderSearch from \"../provider/ProviderSearch\";\r\nimport EmployerSearch from \"../employer/EmployerSearch\";\r\nimport LearnerSearch from \"../learner/LearnerSearch\";\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport QualificationSetupSearch from '../program/QualificationSetupSearch';\r\nimport LearnershipSetupSearch from '../program/LearnershipSetupSearch';\r\nimport SkillsProgramSetupSearch from '../program/SkillsProgramSetupSearch';\r\nimport UnitStandardSetupSearch from '../program/UnitStandardSetupSearch';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst BulkApprovalSearchForm = React.forwardRef((props, ref) => {\r\n const [dependency, setDependency] = React.useState(props.dependency);\r\n\r\n React.useEffect(() => {\r\n setDependency(props.dependency);\r\n }, [props.dependency]);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {\r\n !utils.isNull(form.values[\"ProgrammeTypeID\"]) && form.values[\"ProgrammeTypeID\"].Description === \"Qualification\" ?\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProgrammeID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(form.values[\"ProgrammeTypeID\"]) && form.values[\"ProgrammeTypeID\"].Description === \"Unit Standards\" ?\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProgrammeID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(form.values[\"ProgrammeTypeID\"]) && form.values[\"ProgrammeTypeID\"].Description === \"Learnership\" ?\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProgrammeID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n {\r\n !utils.isNull(form.values[\"ProgrammeTypeID\"]) && form.values[\"ProgrammeTypeID\"].Description === \"Skills Programmes\" ?\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProgrammeID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n :\r\n \"\"\r\n }\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"LearnerID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n {\r\n !utils.isNull(form.values[\"ApprovalTypeID\"]) && form.values[\"ApprovalTypeID\"].Description === \"Endorsement\" ?\r\n\r\n
\r\n \r\n
: null\r\n }\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default BulkApprovalSearchForm;","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport BulkApprovalSearchForm from './BulkApprovalSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst headCells = [\r\n { id: \"LearnerIDNumber\", numeric: false, disablePadding: true, label: \"Learner ID Number\" },\r\n { id: \"LearnerName\", numeric: false, disablePadding: true, label: \"Learner Name\" },\r\n { id: \"InterventionCode\", numeric: false, disablePadding: true, label: \"Intervention Code\" },\r\n { id: \"InterventionDescription\", numeric: false, disablePadding: true, label: \"Intervention Description\" },\r\n { id: \"TrainingProviderName\", numeric: false, disablePadding: true, label: \"Training Provider Name\" },\r\n]\r\n\r\nconst searchParameters = [\r\n { Name: \"ApprovalTypeID\", Value: \"\" },\r\n { Name: \"ProgrammeTypeID\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: \"\" },\r\n { Name: \"ProviderID\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: \"\" },\r\n { Name: \"EmployerID\", Value: \"\" },\r\n { Name: \"QualityAssuranceBody\", Value: \"\" }\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst searchFormRef = React.createRef();\r\n\r\nclass BulkApproval extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n ApprovalTypeID: null,\r\n ProgrammeTypeID: null,\r\n ProgrammeID: null,\r\n ProviderID: null,\r\n EmployerID: null,\r\n LearnerID: null,\r\n QualityAssuranceBodyID: null\r\n },\r\n selectedLearners: null,\r\n keyUpSwitch: false,\r\n learnersApproved: false,\r\n clearGrid: false,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n dependency: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {\r\n id: 'generate', label: 'Approve', icon: 'ApproveIcon', tooltip: 'Approve the selected learners',disabled: utils.isNull(this.state.selectedLearners)\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"generate\" === buttonId) {\r\n this.approve();\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n\r\n approve = () => {\r\n const LearnerProgrammeIDs = this.state.selectedLearners.map(e => e.Id);\r\n let data = {\r\n LearnerProgrammeIDs: LearnerProgrammeIDs,\r\n ...this.state.model\r\n }\r\n \r\n\r\n let url = \"api/sims/bulklearnerapproval/ApproveLearners\";\r\n\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response)\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearners: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedLearners: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n if (!utils.isNull(newValues.ApprovalTypeID) && !utils.isNull(this.state.model.ApprovalTypeID) && newValues.ApprovalTypeID.Id !== this.state.model.ApprovalTypeID.Id) {\r\n newValues.QualityAssuranceBodyID = null;\r\n }\r\n if (!utils.isNull(newValues.ProgrammeTypeID) && !utils.isNull(this.state.model.ProgrammeTypeID) && newValues.ProgrammeTypeID.Id !== this.state.model.ProgrammeTypeID.Id) {\r\n newValues.ProgrammeID = null;\r\n }\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedLearners: null,\r\n Message: \"\"\r\n });\r\n if (!utils.isNull(newValues.ApprovalTypeID) && JSON.stringify(this.state.dependency) !== JSON.stringify(newValues.ApprovalTypeID)) {\r\n const approvalTypeID = {\r\n Name: \"ApprovalTypeID\",\r\n Value: newValues.ApprovalTypeID.Id\r\n }\r\n if (!utils.isNull(approvalTypeID.Value)) {\r\n this.setState({ dependency: approvalTypeID })\r\n }\r\n };\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n }\r\n\r\n onSearchRequiredFieldCheck = () => {\r\n if (searchFormRef.current.getValue()) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n onGridCleared = () => {\r\n this.setState({ clearGrid: false });\r\n }\r\n\r\n successCallback = (response) => {\r\n this.setState({ clearGrid: true });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n\r\n\r\n \r\n { this.handleSelectionChange(selection) }}\r\n autoFetchData={false}\r\n toolbarRef={toolbarRef}\r\n onSearchRequiredFieldCheck={this.onSearchRequiredFieldCheck}\r\n clearGrid={this.state.clearGrid}\r\n onGridCleared={this.onGridCleared}\r\n title={\"Bulk QA Approval\"}\r\n >\r\n { this.onkeyup(e) }}\r\n model={this.state.model}\r\n valueChangeHandler={this.handleFormValueChange}\r\n dependency={this.state.dependency}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(BulkApproval)\r\n);","import React from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport MaterialTable from \"material-table\";\r\nimport Save from \"@material-ui/icons/Save\";\r\nimport Delete from \"@material-ui/icons/Delete\";\r\nimport Edit from \"@material-ui/icons/Edit\";\r\nimport Add from \"@material-ui/icons/Add\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport { makeStyles } from \"@material-ui/core\";\r\nimport { Row } from \"antd\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst actionIcons = {\r\n save: () => ,\r\n delete: () => ,\r\n add: () => ,\r\n edit: () => \r\n};\r\n\r\nconst useStyles = makeStyles({\r\n tableContainer: {\r\n overflowY: \"auto\",\r\n maxHeight: \"73vh\"\r\n }\r\n});\r\n\r\nconst CustomMaterialTable = function (props) {\r\n const [data, setData] = React.useState(!utils.isNull(props.data) ? props.data : []);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(props.rowsPerPage ? props.rowsPerPage : 10);\r\n const classes = useStyles();\r\n\r\n //Data coming from a remote source\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.dataUrl)) {\r\n utils.invokeUrl(props.dataUrl + \"?request=\" + utils.doGetRequestJson(page, rowsPerPage, props.searchParameters, props.paged), response => {\r\n let result;\r\n if (typeof response === \"string\") {\r\n result = JSON.parse(response);\r\n }\r\n else {\r\n result = response;\r\n }\r\n\r\n let remoteData = result.Data;\r\n setData(remoteData);\r\n })\r\n }\r\n }, [props.searchParameters]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nCustomMaterialTable.propTyles = {\r\n columns: PropTypes.array.isRequired,\r\n}\r\n\r\nexport default CustomMaterialTable;\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport CustomMaterialTable from \"../../widgets/CustomMaterialTable\";\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\n\r\n\r\nconst customCellRender = (rowData, valueProperty, columnIndex) => {\r\n let value = parseInt(rowData[valueProperty]);\r\n let rowId = JSON.stringify(rowData.Id);\r\n let columnId = JSON.stringify(columnIndex);\r\n\r\n const FileDownload = (rowId, columnId) => {\r\n\r\n utils.invokeUrl(\"api/sims/expirynotification/ExportExcel?rowId=\" + rowId + \"&columnId=\" + columnId, (response) => {\r\n\r\n var blob = new Blob([base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n const base64ToArrayBuffer = (base64) => {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n return (\r\n value > 0 ?\r\n

{ FileDownload(rowId, columnId) }}>\r\n {value}\r\n

\r\n \r\n :\r\n

{value}

\r\n );\r\n};\r\n\r\nconst columns = [\r\n\r\n { title: \"Category\", field: \"Category\" },\r\n {\r\n title: \"Financial Year\",\r\n field: \"FinancialYear\",\r\n headerStyle: {\r\n width: \"45%\",\r\n },\r\n cellStyle: {\r\n width: \"45%\",\r\n }\r\n },\r\n { title: \"Apr\", field: \"April\", render: data => customCellRender(data, \"April\", 1)},\r\n { title: \"May\", field: \"May\", render: data => customCellRender(data, \"May\", 2) },\r\n { title: \"Jun\", field: \"June\", render: data => customCellRender(data, \"June\", 3) },\r\n { title: \"Jul\", field: \"July\", render: data => customCellRender(data, \"July\", 4) },\r\n { title: \"Aug\", field: \"August\", render: data => customCellRender(data, \"August\", 5) },\r\n { title: \"Sep\", field: \"September\", render: data => customCellRender(data, \"September\", 6) },\r\n { title: \"Oct\", field: \"October\", render: data => customCellRender(data, \"October\", 7) },\r\n { title: \"Nov\", field: \"November\", render: data => customCellRender(data, \"November\", 8) },\r\n { title: \"Dec\", field: \"December\", render: data => customCellRender(data, \"December\", 9) },\r\n { title: \"Jan\", field: \"January\", render: data => customCellRender(data, \"January\", 10) },\r\n { title: \"Feb\", field: \"February\", render: data => customCellRender(data, \"February\", 11) },\r\n { title: \"Mar\", field: \"March\", render: data => customCellRender(data, \"March\", 12) },\r\n]\r\nconst utils = new ViewUtils();\r\nclass ExpiryNotification extends Component {\r\n\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n

\r\n Expiry Notification\r\n

\r\n\r\n
\r\n\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ExpiryNotification)\r\n);\r\n","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport ProviderSearch from \"../provider/ProviderSearch\";\r\nimport EmployerSearch from \"../employer/EmployerSearch\";\r\nimport LearnerSearch from \"../learner/LearnerSearch\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport SkillsProgramSetupSearch from '../program/SkillsProgramSetupSearch';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst LearnerEndorsementLetterSearchForm = React.forwardRef((props, ref) => {\r\n const [dependency, setDependency] = React.useState(props.dependency);\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"50px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n \r\n React.useEffect(() => {\r\n setDependency(props.dependency);\r\n }, [props.dependency]);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProgrammeID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"LearnerID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default LearnerEndorsementLetterSearchForm;","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport LearnerEndorsementLetterSearchForm from './LearnerEndorsementLetterSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst headCells = [\r\n { id: \"LearnerIDNumber\", numeric: false, disablePadding: true, label: \"Learner ID Number\" },\r\n { id: \"LearnerName\", numeric: false, disablePadding: true, label: \"Learner Name\" },\r\n { id: \"LearnerSurname\", numeric: false, disablePadding: true, label: \"Learner Surname\" },\r\n { id: \"SkillsProgrammeCode\", numeric: false, disablePadding: true, label: \"Skills Programme Code\" },\r\n { id: \"SkillsProgrammeTitle\", numeric: false, disablePadding: true, label: \"Skills Programme Title\" },\r\n { id: \"ReasonForReprint\", numeric: false, disablePadding: true, label: \"Reason For Reprint\" },\r\n { id: \"PrintingErrorReason\", numeric: false, disablePadding: true, label: \"Printing Error Reason\" },\r\n { id: \"EndorsementNumber\", numeric: false, disablePadding: true, label: \"EndorsementNumber\" },\r\n { id: \"DateEndorsementCreated\", numeric: false, disablePadding: true, label: \"Date Endorsement Created\" },\r\n]\r\n\r\nconst searchParameters = [\r\n { Name: \"PrintTypeID\", Value: \"\" },\r\n { Name: \"ProgrammeID\", Value: \"\" },\r\n { Name: \"ProviderID\", Value: \"\" },\r\n { Name: \"EmployerID\", Value: \"\" },\r\n { Name: \"LearnerID\", Value: \"\" },\r\n { Name: \"ReasonForReprintID\", Value: \"\" },\r\n { Name: \"PrintingErrorReason\", Value: \"\" }\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst searchFormRef = React.createRef();\r\n\r\nclass LearnerEndorsementLetter extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n PrintTypeID: null,\r\n ProgrammeTypeID: null,\r\n ProgrammeID: null,\r\n ProviderID: null,\r\n EmployerID: null,\r\n LearnerID: null,\r\n ReasonForReprintID: null,\r\n PrintingErrorReason : null\r\n },\r\n selectedLearners: null,\r\n keyUpSwitch: false,\r\n clearGrid: false,\r\n documentGenerated: false,\r\n documentName: null,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n {id: 'generate', label: 'Generate', icon: 'CreateIcon', tooltip: 'Generate letters / certificates',disabled: utils.isNull(this.state.selectedLearners)}\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"generate\" === buttonId) {\r\n this.generateDocuments();\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n\r\n FileDownload = (documentName) => {\r\n\r\n utils.invokeUrl(\"api/sims/learnerendorsementletter/DownloadLearnerEndorsementLetter?FileName=\" + documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"download\", true);\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n generateDocuments = () => {\r\n const LearnerProgrammeIDs = this.state.selectedLearners.map(e => e.Id);\r\n let data = {\r\n LearnerProgrammeIDs: LearnerProgrammeIDs,\r\n ...this.state.model\r\n }\r\n let url = \"api/sims/learnerendorsementletter/GenerateLearnerEndorsementLetter\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n let documentInfo = JSON.parse(response.Message);\r\n this.FileDownload(documentInfo.OriginalFileName);\r\n toolbarRef.current.setButtonDisabled(\"download\", !this.state.documentGenerated);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearners: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedLearners: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n if (!utils.isNull(newValues.ProgrammeTypeID) && !utils.isNull(this.state.model.ProgrammeTypeID) && newValues.ProgrammeTypeID.Id !== this.state.model.ProgrammeTypeID.Id) {\r\n newValues.ProgrammeID = null;\r\n }\r\n if (!utils.isNull(newValues.DocumentTypeID) && !utils.isNull(this.state.model.DocumentTypeID) && newValues.DocumentTypeID.Id !== this.state.model.DocumentTypeID.Id) {\r\n newValues.PrintTypeID = null;\r\n }\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedLearners: null,\r\n Message: \"\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n }\r\n }\r\n }\r\n\r\n onSearchRequiredFieldCheck = () => {\r\n if (searchFormRef.current.getValue()) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n onGridCleared = () => {\r\n this.setState({ clearGrid: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.handleSelectionChange(selection) }}\r\n autoFetchData={false}\r\n toolbarRef={toolbarRef}\r\n onSearchRequiredFieldCheck={this.onSearchRequiredFieldCheck}\r\n clearGrid={this.state.clearGrid}\r\n onGridCleared={this.onGridCleared}\r\n title={\"Learner Endorsement Letter - Skills Programme\"}\r\n >\r\n { this.onkeyup(e) }}\r\n model={this.state.model}\r\n valueChangeHandler={this.handleFormValueChange}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnerEndorsementLetter)\r\n);","import React from 'react';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport { LookupField } from '../../widgets/LookupField';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { CustomDatePicker } from '../../widgets/CustomDatePicker';\r\nimport ProviderSearch from \"../provider/ProviderSearch\";\r\nimport EmployerSearch from \"../employer/EmployerSearch\";\r\nimport LearnerSearch from \"../learner/LearnerSearch\";\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst ProofOfRegistrationSearchForm = React.forwardRef((props, ref) => {\r\n const [dependency, setDependency] = React.useState(props.dependency);\r\n\r\n React.useEffect(() => {\r\n setDependency(props.dependency);\r\n }, [props.dependency]);\r\n\r\n const onCheckFieldValitationArray = (fields, values) => {\r\n if (values.FinancialYearID !== null) {\r\n fields = fields.filter(e => e.id !== \"PrintTypeID\");\r\n }\r\n console.log(fields);\r\n return fields;\r\n }\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n form.setLookupSelection(\"EmployerID\", value)\r\n }}\r\n autoFetchData={false}\r\n selection={props.selection}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default ProofOfRegistrationSearchForm;","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ProofOfRegistrationSearchForm from './ProofOfRegistrationSearchForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst headCells = [\r\n { id: \"Name\", numeric: false, disablePadding: true, label: \"Learner Name\" },\r\n { id: \"Surname\", numeric: false, disablePadding: true, label: \"Learner Surname\" },\r\n { id: \"Surname\", numeric: false, disablePadding: true, label: \"Learner Surname\" },\r\n { id: \"IDNumber\", numeric: false, disablePadding: true, label: \"Learner ID Number\" },\r\n { id: \"ProgrammeType\", numeric: false, disablePadding: true, label: \"Programme Type\" },\r\n { id: \"Programme\", numeric: false, disablePadding: true, label: \"Programme\" },\r\n]\r\n\r\nconst searchParameters = [\r\n { Name: \"FinancialYearID\", Value: \"\" },\r\n { Name: \"LearningProgrammeID\", Value: \"\" },\r\n { Name: \"SocioEconomicStatusID\", Value: \"\" },\r\n { Name: \"RegistrationDateFrom\", Value: \"\" },\r\n { Name: \"RegistrationDateTo\", Value: \"\" },\r\n { Name: \"ProviderID\", Value: \"\" },\r\n { Name: \"EmployerID\", Value: \"\" },\r\n { Name: \"LearnershipName\", Value: \"\" },\r\n { Name: \"QualificationName\", Value: \"\" },\r\n { Name: \"SponsorshipID\", Value: \"\" }\r\n]\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nconst searchFormRef = React.createRef();\r\n\r\nclass LearnerDocuments extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n model: {\r\n FinancialYearID: null,\r\n LearningProgrammeID: null,\r\n SocioEconomicStatusID: null,\r\n RegistrationDateFrom: null,\r\n RegistrationDateTo: null,\r\n ProviderID: null,\r\n EmployerID: null,\r\n LearnershipName: null,\r\n QualificationName: null,\r\n SponsorshipID: null\r\n },\r\n selectedLearners: null,\r\n keyUpSwitch: false,\r\n clearGrid: false,\r\n documentGenerated: false,\r\n documentName: null,\r\n messsageAlert: null,\r\n messageStyle: null,\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'generate', label: 'Generate', icon: 'CreateIcon', tooltip: 'Generate Letter', disabled: utils.isNull(this.state.selectedLearners) },\r\n { id: 'email', label: 'Email', icon: 'EmailIcon', tooltip: 'Email Letter', disabled: utils.isNull(this.state.selectedLearners) }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"generate\" === buttonId) {\r\n this.generateLetter();\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n toolbarRef.current.setButtonDisabled(\"email\", true);\r\n } else if (\"email\" === buttonId) {\r\n this.EmailLetter();\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n toolbarRef.current.setButtonDisabled(\"email\", true);\r\n }\r\n }\r\n\r\n FileDownload = (documentName) => {\r\n\r\n utils.invokeUrl(\"api/sims/ProofOfRegistration/DownloadLetters?FileName=\" + documentName, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n toolbarRef.current.setButtonDisabled(\"download\", true);\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n\r\n };\r\n\r\n generateLetter = () => {\r\n const LearnerProgrammeIDs = this.state.selectedLearners.map(e => e.Id);\r\n let data = {\r\n IDs: LearnerProgrammeIDs,\r\n ...this.state.model\r\n }\r\n let url = \"api/sims/ProofOfRegistration/GenerateLetters\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n let documentInfo = JSON.parse(response.Message);\r\n this.FileDownload(documentInfo.OriginalFileName);\r\n toolbarRef.current.setButtonDisabled(\"download\", !this.state.documentGenerated);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n EmailLetter = () => {\r\n const LearnerProgrammeIDs = this.state.selectedLearners.map(e => e.Id);\r\n let data = {\r\n IDs: LearnerProgrammeIDs,\r\n ...this.state.model\r\n }\r\n let url = \"api/sims/ProofOfRegistration/EmailLetters\";\r\n utils.invokeUrl(url, (response) => {\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n },\r\n null,\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(data)\r\n }\r\n )\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedLearners: selection, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"email\", selection.length === 0);\r\n }\r\n )\r\n } else {\r\n this.setState({ selectedLearners: null, Message: \"\" },\r\n () => {\r\n toolbarRef.current.setButtonDisabled(\"generate\", selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"email\", selection.length === 0);\r\n }\r\n )\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ propmtOpen: false })\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n if (!utils.isNull(newValues.FinancialYearID) && !utils.isNull(this.state.model.FinancialYearID) && newValues.FinancialYearID.Id !== this.state.model.FinancialYearID.Id) {\r\n newValues.FinancialYearID = null;\r\n }\r\n if (!utils.isNull(newValues.LearningProgrammeID) && !utils.isNull(this.state.model.LearningProgrammeID) && newValues.LearningProgrammeID.Id !== this.state.model.LearningProgrammeID.Id) {\r\n newValues.LearningProgrammeID = null;\r\n }\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedLearners: null,\r\n Message: \"\"\r\n });\r\n toolbarRef.current.setButtonDisabled(\"generate\", true);\r\n toolbarRef.current.setButtonDisabled(\"email\", true);\r\n }\r\n }\r\n }\r\n\r\n onSearchRequiredFieldCheck = () => {\r\n if (searchFormRef.current.getValue()) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n onGridCleared = () => {\r\n this.setState({ clearGrid: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.handleSelectionChange(selection) }}\r\n autoFetchData={false}\r\n toolbarRef={toolbarRef}\r\n onSearchRequiredFieldCheck={this.onSearchRequiredFieldCheck}\r\n clearGrid={this.state.clearGrid}\r\n onGridCleared={this.onGridCleared}\r\n title={\"Proof Of Registration\"}\r\n >\r\n { this.onkeyup(e) }}\r\n model={this.state.model}\r\n valueChangeHandler={this.handleFormValueChange}\r\n //dependency={this.state.dependency}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnerDocuments)\r\n);","import React from 'react';\r\nimport { EntityForm } from './widgets/Forms';\r\nimport { GridItem } from './widgets/GridItem';\r\n\r\n//const ref = React.createRef();\r\n\r\nconst testHeadCells = [\r\n {\r\n id: 'Name', numeric: false, disablePadding: false, label: 'Name', widthRatio: .4,\r\n editor: {\r\n type: \"TEXT\"\r\n }\r\n },\r\n {\r\n id: 'DateOfBirth', numeric: false, disablePadding: false, label: 'Date of Birth', widthRatio: .3,\r\n editor: {\r\n type: \"DATE\"\r\n }\r\n },\r\n {\r\n id: 'Gender', numeric: false, disablePadding: false, label: 'Gender', widthRatio: .3,\r\n editor: {\r\n type: \"SELECT\",\r\n dataUrl: \"api/indicium/employer/GetLookupList?listId=Gender\"\r\n }\r\n }\r\n];\r\n\r\nconst searchParameters = [{ Name: \"OrganisationTradeName\", Value: \"\" },\r\n{ Name: \"OrganisationSDLNumber\", Value: \"\" },\r\n { Name: \"OrganisationLegalName\", Value: \"\" }];\r\n\r\nexport const TestForm = React.forwardRef((props, ref) => {\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { TestForm } from './TestForm';\r\n\r\nconst testFormRef = React.createRef();\r\nclass Test extends Component {\r\n render() {\r\n return (\r\n
\r\n

Editable Table

\r\n { alert(values) }} />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(Test)\r\n);\r\n","import React from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport MaterialTable from \"material-table\";\r\nimport Save from \"@material-ui/icons/Save\";\r\nimport Delete from \"@material-ui/icons/Delete\";\r\nimport Edit from \"@material-ui/icons/Edit\";\r\nimport Add from \"@material-ui/icons/Add\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport { makeStyles } from \"@material-ui/core\";\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n} from '@material-ui/pickers';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst actionIcons = {\r\n save: () => ,\r\n delete: () => ,\r\n add: () => ,\r\n edit: () => \r\n};\r\n\r\nconst useStyles = makeStyles({\r\n tableContainer: {\r\n overflowY: \"auto\",\r\n maxHeight: \"73vh\"\r\n }\r\n});\r\n\r\nconst TableCellContent = (props) => {\r\n const valueType = props.valueType;\r\n const value = props.value;\r\n\r\n return (\r\n valueType === \"file\" ?\r\n \r\n {value}\r\n \r\n :\r\n valueType === \"date\" ?\r\n \r\n \r\n \r\n :\r\n

{value}

\r\n );\r\n};\r\n\r\nconst testColumn = [\r\n {\r\n field: \"testFile\",\r\n title: \"Test file column\",\r\n valueType: \"file\",\r\n get valueProperty() {\r\n return this.field;\r\n }\r\n },\r\n\r\n {\r\n field: \"testDate\",\r\n title: \"Test date column\",\r\n valueType: \"date\",\r\n get valueProperty() {\r\n return this.field;\r\n }\r\n }\r\n];\r\n\r\nconst testData = [\r\n { testFile: \"test data\", testDate: \"05/02/1995\" },\r\n { testFile: \"test data2\", testDate: \"06/02/1995\" },\r\n { testFile: \"test data3\", testDate: \"07/02/1995\" }\r\n];\r\n\r\nconst CustomMaterialTable = function (props) {\r\n const [data, setData] = React.useState(!utils.isNull(props.data) ? props.data : []);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(props.rowsPerPage ? props.rowsPerPage : 10);\r\n const [columns, setColumns] = React.useState(testColumn);\r\n const classes = useStyles();\r\n\r\n const customCellRender = valueProperty => valueType => rowData => {\r\n const rowId = !utils.isNull(rowData.Id) ? rowData.Id : rowData.tableData[\"id\"];\r\n return (\r\n \r\n );\r\n };\r\n\r\n const applyCustomCellRender = () => {\r\n let newColumns = testColumn.map((column) => {\r\n return { ...column, render: (rowData) => customCellRender(column.valueProperty)(column.valueType)(rowData) }\r\n });\r\n setColumns(newColumns);\r\n };\r\n\r\n React.useEffect(() => {\r\n applyCustomCellRender();\r\n }, [testColumn]);\r\n\r\n //Data coming from a remote source\r\n React.useEffect(() => {\r\n if (!utils.isNull(props.dataUrl)) {\r\n utils.invokeUrl(props.dataUrl + \"?request=\" + utils.doGetRequestJson(page, rowsPerPage, props.searchParameters, props.paged),\r\n response => {\r\n let result;\r\n if (typeof response === \"string\") {\r\n result = JSON.parse(response);\r\n }\r\n else {\r\n result = response;\r\n }\r\n let remoteData = result.Data;\r\n setData(remoteData);\r\n })\r\n }\r\n }, [props.searchParameters]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nCustomMaterialTable.propTyles = {\r\n columns: PropTypes.array.isRequired,\r\n}\r\n\r\nexport default CustomMaterialTable;\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport \"../View.css\";\r\nimport \"../Grid.css\";\r\nimport \"../Form.css\";\r\nimport \"../App.css\";\r\nimport { ViewContainer } from \"../View.jsx\";\r\nimport CustomMaterialTable from \"./Table.js\";\r\n\r\nconst columns = [];\r\n\r\nclass TestTableDemo extends Component {\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(TestTableDemo)\r\n);\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\n\r\nexport const DGApplicationCreationForm = React.forwardRef((props, ref) => {\r\n\r\n const [FinancialYear, setFinancialYear] = React.useState(null);\r\n const [DGType, setDGType] = React.useState(null);\r\n const [dependency, setDependency] = React.useState(props.dependency);\r\n\r\n const showDGIntervention = (FinancialYearID, DGTypeID) => {\r\n if (FinancialYearID != undefined) { setFinancialYear(FinancialYearID.Id) }\r\n if (DGTypeID != undefined) { setDGType(DGTypeID.Id) }\r\n }\r\n\r\n React.useEffect(() => {\r\n setDependency(props.dependency);\r\n }, [props.dependency]);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\nexport default DGApplicationCreationForm;\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport EnhancedToolbar from \"../../widgets/Toolbar\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./../organisation/DGOrganisation.css\";\r\nimport { DGApplicationCreationForm } from \"./DGApplicationCreationForm\";\r\n\r\nimport ViewUtils from \"../../ViewUtils\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nconst utils = new ViewUtils();\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst userRef = React.createRef();\r\n\r\nclass DGApplication extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: {\r\n Name: \"\",\r\n Description: \"\",\r\n LetterType: \"\",\r\n },\r\n title: \"\",\r\n id:\r\n !utils.isNull(this.props.location.state) &&\r\n !utils.isNull(this.props.location.state.selection)\r\n ? this.props.location.state.selection\r\n : null,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"close\", label: \"CLOSE\", tooltip: \"Close\" },\r\n { id: \"save\", label: \"SAVE\", tooltip: \"Save\", icon: \"SaveIcon\" },\r\n ],\r\n },\r\n ],\r\n };\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.close();\r\n } else if (\"save\" === buttonId) {\r\n this.save();\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n Name: values.Name,\r\n });\r\n }\r\n };\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n\r\n //Organisation\r\n // formValue.Organisation = {Description: \"OrganisationID\", Id: this.props.location.state.preSelectedProp}\r\n // formValue.OrganisationID = {Description: \"OrganisationID\", Id: this.props.location.state.preSelectedProp}\r\n formValue.OrganisationID = this.props.location.state.preSelectedProp;\r\n console.log(formValue);\r\n console.log(this.props.location.state);\r\n\r\n if (formValue !== null && typeof formValue !== \"undefined\") {\r\n let isAdd = true;\r\n if (\r\n !utils.isNull(this.props.location.state) &&\r\n !utils.isNull(this.props.location.state.selection)\r\n ) {\r\n formValue.id = this.props.location.state.selection;\r\n isAdd = false;\r\n }\r\n let data = JSON.stringify(formValue);\r\n\r\n if (isAdd) {\r\n const url = `api/sims/dgapplication/insertdgapplication`;\r\n utils.saveForm(\r\n this,\r\n userRef,\r\n url,\r\n (response) => {\r\n this.setState({\r\n message: \"DG Application added successfully\",\r\n messageStyle: \"SUCCESS\",\r\n });\r\n },\r\n this.error\r\n );\r\n } else {\r\n const url = `api/sims/dgapplication/updateledgapplication`;\r\n utils.updateForm(\r\n this,\r\n userRef,\r\n url,\r\n (response) => {\r\n this.setState({\r\n message: \"DG Application updated successfully\",\r\n messageStyle: \"SUCCESS\",\r\n });\r\n },\r\n this.error\r\n );\r\n }\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n });\r\n }\r\n error(response) {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n });\r\n }\r\n close() {\r\n this.props.history.push({\r\n pathname: \"/DGApplicationSearch\",\r\n state: { selection: this.state.id },\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n this.handleToolbarButtonClick(buttonId)\r\n }\r\n enabled={true}\r\n config={this.toolbarConfig}\r\n />\r\n
\r\n \r\n this.handleFormValueChange(values)\r\n }\r\n id={\r\n typeof this.props.location.state !== \"undefined\"\r\n ? this.props.location.state.selection\r\n : null\r\n }\r\n editPermission={this.props.menuPermissionItem.Edit}\r\n />\r\n
\r\n \r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(DGApplication));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nfunction DGApplicationSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n const [FinancialYear, setFinancialYear] = React.useState(null);\r\n const [DGType, setDGType] = React.useState(null);\r\n\r\n\r\n\r\n const showDGIntervention = (FinancialYearID, DGTypeID) => {\r\n if (FinancialYearID != undefined) { setFinancialYear(FinancialYearID.Id) }\r\n if (DGTypeID != undefined) { setDGType(DGTypeID.Id) }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default DGApplicationSearchForm;","import React, { Component, Fragment } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport simslogoLoading from '../../../content/images/logos/sims_logo_loading.png';\r\nimport LoadingIndicatorLogin from '../../LoadingIndicatorLogin';\r\nimport { ViewContainer } from \"../../View\";\r\nimport Paper from '@material-ui/core/Paper';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass DGPrintReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n queueData: null\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getFormHead();\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/DGApplication/GetFindQueue?DGApplicationID=\" + this.props.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n isLoading: false,\r\n queueData: response\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n FileDownload = () => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(this.state.queueData.Document.Base64)], { type: this.state.queueData.Document.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = this.state.queueData.Document.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n checkGenerateReportActive = () => {\r\n if (!utils.isNull(this.state.queueData)) {\r\n if (!utils.isNull(this.state.queueData.DGReportsPrintQueueStatusID) && this.state.queueData.DGReportsPrintQueueStatusID.Id == 3 /*completed*/) {\r\n return true;\r\n }\r\n else if (utils.isNull(this.state.queueData.DGReportsPrintQueueStatusID)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n GenerateReport = () => {\r\n this.setState({ isLoading: true })\r\n let url = \"api/sims/DGApplication/DGPrintQueueStart?DGApplicationID=\" + this.props.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.getFormHead();\r\n }\r\n else {\r\n this.setState({ isLoading: false })\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n CheckProgress = () => {\r\n this.setState({ isLoading: true })\r\n this.getFormHead();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n {!this.state.isLoading ?\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Status
\r\n
\r\n \r\n \r\n Last Ran
\r\n
\r\n \r\n
\r\n
\r\n
\r\n  \r\n  \r\n  \r\n
:\r\n null\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(DGPrintReport);","\r\nimport React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport \"./../organisation/DGOrganisation.css\";\r\nimport DGApplicationSearchForm from \"./DGApplicationSearchForm\";\r\nimport DGApplicationCreationForm from \"./DGApplicationCreationForm\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { ViewContainer } from \"../../View\";\r\nimport FormDialog from \"../../etqa/FormDialog\";\r\nimport Prompt from '../../widgets/Prompt';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport DGPrintReport from './DGPrintReport';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Typography } from \"antd\";\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst headCells = [\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' },\r\n { id: 'FundingWindow', numeric: false, disablePadding: true, label: 'Funding Window' },\r\n { id: 'SubmissionNumber', numeric: false, disablePadding: true, label: 'Submission Number' },\r\n { id: 'DGType', numeric: false, disablePadding: true, label: 'DG Type' },\r\n { id: 'DGIntervention', numeric: false, disablePadding: true, label: 'DG Intervention' },\r\n { id: 'DGStatus', numeric: false, disablePadding: true, label: 'DG Status' },\r\n { id: 'DueDate', numeric: false, disablePadding: true, label: 'Due Date' },\r\n { id: 'SubmittedDate', numeric: false, disablePadding: true, label: 'Submitted Date' },\r\n { id: 'SubmittedBy', numeric: false, disablePadding: true, label: 'Submitted By' },\r\n { id: 'VerificationDate', numeric: false, disablePadding: true, label: 'Verification Date' },\r\n { id: 'Verified By', numeric: false, disablePadding: true, label: 'Verified By' },\r\n { id: 'ApprovedDate', numeric: false, disablePadding: true, label: 'Approved Date' },\r\n { id: 'RejectedDate', numeric: false, disablePadding: true, label: 'Rejected Date' }\r\n];\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst addFormRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\n\r\nconst useStyles = theme => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n title: {\r\n flex: 1,\r\n color: 'white',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nclass DGApplicationDashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n keyUpSwitch: false,\r\n addDialogOpen: false,\r\n selectedDGApplication: null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n id: this.props.location.state.organisationID,\r\n promptOpen: false,\r\n promptTitle: \"Remove DG Application\",\r\n promptContent: \"Are you sure you want to remove this DG Application?\",\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }, { Name: \"FinancialYearID\", Value: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null }],\r\n dependency: null\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: \"CloseIcon\" }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Create Application', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'view', label: '', tooltip: 'View Application Forms', icon: 'ViewIcon', disabled: utils.isNull(this.state.selectedDGApplication) },\r\n { id: 'remove', label: '', tooltip: 'Remove DG Application', disabled: utils.isNull(this.state.selectedDGApplication), icon: \"Delete\", visible: this.props.menuPermissionItem.Delete },\r\n { id: \"print\", label: \"Print Authorisation Pages\", tooltip: \"\", disabled: true },\r\n\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGOrganisation',\r\n state: { selection: this.state.id }\r\n });\r\n }\r\n else if (\"add\" === buttonId) {\r\n this.setState({ addDialogOpen: true, Message: \"\" })\r\n }\r\n else if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/DGForms\",\r\n state: {\r\n DGID: this.state.selectedDGApplication,\r\n organisationID: this.state.id,\r\n FinancialYearID: this.state.FinancialYearID\r\n }\r\n })\r\n\r\n }\r\n else if (\"remove\" === buttonId) {\r\n this.setState({ promptOpen: true })\r\n } else if (\"print\" === buttonId) {\r\n this.setState({ OpenPrintDialog: true });\r\n }\r\n }\r\n\r\n postAddHandler(cancel, save) {\r\n if (save === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedDGApplication: null,\r\n Message: \"Organisation DG Application successfully created\",\r\n MessageStyle: \"success\",\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedDGApplication: null,\r\n Message: \"\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedDGApplication: null,\r\n Message: \"A system error has occured, please try again later or contact your administrator\",\r\n MessageStyle: \"warning\"\r\n })\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n if (!utils.isNull(selection)) {\r\n this.setState({ selectedDGApplication: selection[0].Id }, () => {\r\n });\r\n this.GetDGPermissionCheck(selection[0].Id);\r\n }\r\n } else {\r\n this.setState({ selectedDGApplication: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"view\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"print\", selection === null || selection.length === 0);\r\n }\r\n\r\n\r\n GetDGPermissionCheck = (Id) => {\r\n let url = \"api/sims/DGApplication/GetDGApplicationPermissionCheck?DGApplicationID=\" + Id;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result.split(\",\")[0] === \"ViewOnly\") {\r\n this.setState({\r\n adddisabled: true,\r\n })\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n }\r\n else if (response.Result.split(\",\")[1] === \"Delete\") {\r\n this.setState({ adddisabled: true }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", false);\r\n toolbarRef.current.setButtonDisabled(\"view\", false);\r\n })\r\n\r\n }\r\n else if (response.Result.split(\",\")[0] === \"Enabled\") {\r\n this.setState({ adddisabled: true }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", false);\r\n toolbarRef.current.setButtonDisabled(\"view\", false);\r\n })\r\n\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n successfulApplicationRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({ selectedDGApplication: null, Message: response.Message, MessageStyle: response.MessageType.toLowerCase() });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulApplicationRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ Message: response.Message, MessageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n removeApplication(url) {\r\n this.setState({ promptOpen: false }, () => {\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n })\r\n\r\n let fullUrl = `${url}?id=${this.state.selectedDGApplication}`;\r\n utils.invokeUrlDelete(fullUrl, this.successfulApplicationRemoveCallback, this.unsuccessfulApplicationRemoveCallback);\r\n }\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false })\r\n }\r\n\r\n handleFormValueChange(values) {\r\n\r\n let FinancialYearID = values.FinancialYearID.Id;\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = FinancialYearID\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n FinancialYearID: FinancialYearID\r\n });\r\n }\r\n\r\n handleCreateFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n\r\n console.log(newValues);\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedDG: null,\r\n Message: \"\"\r\n });\r\n if (!utils.isNull(newValues.DGTypeID) && JSON.stringify(this.state.dependency) !== JSON.stringify(newValues.DGTypeID)) {\r\n const dgTypeID = [{ Name: \"FinancialYearID\", Value: newValues.FinancialYearID.Id }, { Name: \"DGTypeID\", Value: newValues.DGTypeID.Id }]\r\n if (!utils.isNull(dgTypeID[1].Value)) {\r\n this.setState({ dependency: dgTypeID })\r\n }\r\n };\r\n }\r\n }\r\n }\r\n\r\n ClosePrintDialog = () => {\r\n this.setState({ OpenPrintDialog: false });\r\n toolbarRef.current.setButtonDisabled(\"remove\", true);\r\n toolbarRef.current.setButtonDisabled(\"view\", true);\r\n toolbarRef.current.setButtonDisabled(\"print\", true);\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n \r\n\r\n

\r\n {\"DG Application Dashboard\" + (this.props.location.state.organisationName !== null ? \" > \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"\")}\r\n

\r\n\r\n \r\n\r\n
\r\n this.handleFormValueChange(values)}\r\n />\r\n\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig}\r\n />\r\n\r\n { this.handleSelectionChange(selection) }}\r\n dataUrl={!utils.isNull(this.state.FinancialYearID) ? \"api/sims/dgapplication/GetSearch\" : null}\r\n searchParameters={this.state.searchParameters}\r\n paged={true} />\r\n
\r\n\r\n this.postAddHandler(cancel, save)}\r\n valueChangeHandler={this.handleCreateFormValueChange}\r\n datamodel={this.state.model}\r\n >\r\n \r\n \r\n\r\n { this.removeApplication(\"api/sims/DGApplication/RemoveDGApplication\") }}\r\n closePrompt={this.closePrompt}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Print DG Application Report\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withStyles(useStyles())(withMenuPermission(DGApplicationDashboard)));\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { ViewContainer } from \"../../../View.jsx\";\r\nimport ViewUtils from \"../../../ViewUtils\";\r\nimport Button from \"@material-ui/core/Button\";\r\n// import withMenuPermission from \"../../../../../widgets/withMenuPermission\";\r\nimport { withStyles, makeStyles } from \"@material-ui/core/styles\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableContainer from \"@material-ui/core/TableContainer\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Item from \"antd/lib/list/Item\";\r\nimport AlertItem from \"../../../widgets/AlertItem\";\r\nimport EnhancedToolbar from \"../../../widgets/Toolbar\";\r\n\r\nimport \"./Style.css\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [{ id: \"close\", label: \"Back to DG Dashboard\", tooltip: \"\" }],\r\n },\r\n ],\r\n};\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: \"#01579B\",\r\n color: theme.palette.common.white,\r\n border: \"1px solid white\",\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500,\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n \"&:nth-of-type(odd)\": {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main,\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = (theme) => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nclass DGForms extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n objectProps: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.object)) ? this.props.location.state.object : null,\r\n formArray: [],\r\n FinancialYear: '',\r\n OrganisationName: '',\r\n Status: '',\r\n model: {\r\n Name: \"\",\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGID)) ? this.props.location.state.DGID : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getForms(this.state.Id);\r\n this.getFormHead(this.state.Id);\r\n this.GetDGFormSubmissionCheck(this.state.Id);\r\n }\r\n getForms() {\r\n let url =\r\n \"api/sims/dgapplication/GetDGForms?DGApplicationID=\" + this.state.id;\r\n utils.invokeUrl(\r\n url,\r\n (response) => {\r\n this.setState({ formArray: response });\r\n },\r\n null,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"Bearer \" + localStorage.getItem(\"token\"),\r\n },\r\n }\r\n );\r\n }\r\n getFormHead() {\r\n let url =\r\n \"api/sims/dgapplication/getfindheader?DGApplicationID=\" + this.state.id;\r\n utils.invokeUrl(\r\n url,\r\n (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n SDLNumber: response.SDLNumber,\r\n Status: response.Status,\r\n });\r\n },\r\n null,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"Bearer \" + localStorage.getItem(\"token\"),\r\n },\r\n }\r\n );\r\n }\r\n GetDGFormSubmissionCheck() {\r\n let url =\r\n \"api/sims/DGApplication/GetDGFormSubmissionCheck?DGApplicationID=\" + this.state.id;\r\n utils.invokeUrl(\r\n url,\r\n (response) => {\r\n this.setState({\r\n CanSubmit: response.Result,\r\n });\r\n },\r\n null,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"Bearer \" + localStorage.getItem(\"token\"),\r\n },\r\n }\r\n );\r\n }\r\n submit(id) {\r\n let url =\r\n \"api/sims/DGApplication/updateDGApplicationSubmit?DGApplicationID=\" + this.state.id;\r\n utils.invokeUrl(\r\n url,\r\n (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: \"PUT\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"Bearer \" + localStorage.getItem(\"token\"),\r\n },\r\n }\r\n );\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n this.GetDGFormSubmissionCheck();\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: \"/DGApplicationDashboard\",\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n FinancialYearID: this.state.FinancialYearID\r\n },\r\n });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n //this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n buttonSubmitClickHandler() {\r\n this.submit();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const tablerows = this.state.formArray.map((item, index) =>\r\n\r\n item.URL !== \"\" ? (\r\n \r\n \r\n {item.Number}\r\n \r\n \r\n {item.FormDescription}\r\n \r\n {item.DueDate}\r\n \r\n \r\n \r\n Select\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n\r\n \r\n {item.FormDescription}\r\n \r\n\r\n \r\n\r\n \r\n \r\n )\r\n );\r\n const submitrow =\r\n this.state.CanSubmit == \"1\" ? (\r\n this.buttonSubmitClickHandler()}\r\n className={classes.margin}\r\n >\r\n SUBMIT\r\n \r\n ) : (\r\n Application Status : {this.state.Status}\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n this.handleToolbarButtonClick(buttonId)\r\n }\r\n enabled={true}\r\n config={toolbarConfig}\r\n />\r\n \r\n DG Application Forms\r\n
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {submitrow}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n #\r\n Form Description\r\n Due Date\r\n Select\r\n \r\n \r\n {tablerows}\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withStyles(useStyles())(DGForms));\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function DGVerificationSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n const [dependency, setDependency] = React.useState(props.dependency);\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setDependency(props.dependency);\r\n }, [props.dependency]);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from \"../../ViewUtils\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport DGVerificationSearchForm from \"./DGVerificationSearchForm\";\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nclass DGVerificationSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n \r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"close\",label: \"Close\", tooltip: \"Close\", icon: \"CloseIcon\"},\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [ \r\n { id: \"view\", label: \"\", tooltip: \"View\", icon: \"ViewIcon\", disabled: true },\r\n \r\n ],\r\n },\r\n ],\r\n };\r\n\r\n this.headCells = [\r\n {id: \"FinancialYear\",numeric: false,disablePadding: true,label: \"Financial Year\"}, \r\n {id: \"FundingWindow\",numeric: false,disablePadding: true,label: \"Funding Window\"},\r\n {id: \"SubmissionNumber\",numeric: false,disablePadding: true,label: \"Submission Number\"},\r\n {id: \"DGType\", numeric: false, disablePadding: true, label: \"DG Type\"},\r\n {id: \"DGIntervention\",numeric: false,disablePadding: true,label: \"DG Intervention\"},\r\n {id: \"DGApplicationStatus\",numeric: false,disablePadding: true,label: \"DG Application Status\"},\r\n ];\r\n\r\n let model = {\r\n OrganisationID: this.props.location.state.organisationID,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : \"\",\r\n FundingWindowID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FundingWindowID)) ? this.props.location.state.FundingWindowID : \"\",\r\n };\r\n\r\n this.searchParameters = [\r\n { Name: \"OrganisationID\", Value: this.props.location.state.organisationID },\r\n { Name: \"FinancialYearID\", Value: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : \"\" } ,\r\n { Name: \"FundingWindowID\", Value: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FundingWindowID)) ? this.props.location.state.FundingWindowID : \"\" } ,\r\n ];\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedDG: null,\r\n OrganisationID: this.props.location.state.organisationID,\r\n FinancialYearID : null,\r\n FundingWindowID : null,\r\n dependency: null\r\n };\r\n }\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedDG: selection[0].Id });\r\n } else {\r\n this.setState({ selectedDG: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"view\", false);\r\n\r\n }\r\n \r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedDG: null,\r\n Message: \"\",\r\n FinancialYearID: values.FinancialYearID.Id\r\n });\r\n if (!utils.isNull(newValues.FinancialYearID) && JSON.stringify(this.state.dependency) !== JSON.stringify(newValues.FinancialYearID)) {\r\n const financialYearID = {\r\n Name: \"FinancialYearID\",\r\n Value: newValues.FinancialYearID.Id\r\n }\r\n if (!utils.isNull(financialYearID.Value)) {\r\n this.setState({ dependency: financialYearID })\r\n }\r\n };\r\n }\r\n }\r\n}\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/DGVerificationMain\",\r\n state: {\r\n OrganisationID: this.state.OrganisationID,\r\n DGApplicationID: this.state.selectedDG,\r\n FinancialYearID : this.state.model.FinancialYearID,\r\n FundingWindowID : this.state.model.FundingWindowID\r\n },\r\n });\r\n }\r\n else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"DG Verification \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n
\r\n { this.handleSelection(selection) }}\r\n toolbarRef={toolbarRef}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={this.handleFormValueChange}\r\n dependency={this.state.dependency}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(connect()(DGVerificationSearch));\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport Item from \"antd/lib/list/Item\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport './Style.css'\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport WebIcon from '@material-ui/icons/Web';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Typography } from \"antd\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Verification Dashboard', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation', widthRatio: .154 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .047 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .047 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .047 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .047 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .047 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .047 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .047 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .047 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .047 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .047 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .047 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .047 },\r\n { id: 'Age1', numeric: false, disablePadding: true, label: 'Age < 35', widthRatio: .047 },\r\n { id: 'Age2', numeric: false, disablePadding: true, label: 'Age 35 - 55', widthRatio: .047 },\r\n { id: 'Age3', numeric: false, disablePadding: true, label: 'Age > 55', widthRatio: .047 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .047 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .047 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .047 }\r\n];\r\n\r\nconst useStyles = theme => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n title: {\r\n flex: 1,\r\n color: 'white',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nclass DGVerificationMain extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n objectProps: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.object)) ? this.props.location.state.object : null,\r\n formObject: null,\r\n lookupArray: null,\r\n lookupVArray: null,\r\n lookupQVArray: null,\r\n FinancialYear: '',\r\n OrganisationName: '',\r\n Status: '',\r\n model: {\r\n Name: \"\",\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n OrganisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.OrganisationID)) ? this.props.location.state.OrganisationID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n FundingWindowID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FundingWindowID)) ? this.props.location.state.FundingWindowID : null,\r\n VerificationPermission: \"\",\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"OrganisationID\", Value: this.props.location.state.OrganisationID }, { Name: \"FinancialYearID\", Value: this.props.location.state.FinancialYearID }],\r\n OpenDialog: false,\r\n formViewURL: \"\",\r\n formName: \"\",\r\n linkDialogOpen: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getHeaders(this.state.id)\r\n this.getVerification(this.state.id)\r\n this.getVerificationStatusList(this.state.id)\r\n this.getlookup(this.state.id)\r\n this.CheckVerificationPermissions(this.state.id);\r\n }\r\n\r\n getHeaders = (id) => {\r\n let url = \"api/sims/dgverification/getfindheader?DGApplicationID=\" + id;\r\n\r\n utils.invokeUrl(\r\n url,\r\n (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n SDLNumber: response.SDLNumber\r\n })\r\n console.log(response);\r\n },\r\n null,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"Bearer \" + localStorage.getItem(\"token\"),\r\n },\r\n }\r\n );\r\n };\r\n\r\n getVerification(id) {\r\n let url = `api/sims/dgverification/GetDGVerification?request={\"searchParameters\":[{\"Name\":\"DGApplicationID\",\"Value\":${this.state.id}},{\"Name\":\"OrganisationID\",\"Value\":${this.state.OrganisationID}},{\"Name\":\"FinancialYearID\",\"Value\":${this.state.FinancialYearID.Id}}]}`;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n formObject: response\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n getVerificationStatusList(id) {\r\n let url = `api/sims/dgverification/GetDGVerificationStatusList?request={\"searchParameters\":[{\"Name\":\"DGApplicationID\",\"Value\":${this.state.id}},{\"Name\":\"OrganisationID\",\"Value\":${this.state.OrganisationID}},{\"Name\":\"FinancialYearID\",\"Value\":${this.state.FinancialYearID.Id}}]}`;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n VerificationStatusListObject: response\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n getlookup(id) {\r\n let url = \"api/sims/dgverification/GetLookupListDGEvidenceVerified\";\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ lookupArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n\r\n let urlV = \"api/sims/dgverification/GetLookupListDGVerificationStatus\";\r\n utils.invokeUrl(urlV, (response) => {\r\n this.setState({ lookupVArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n\r\n let urlQV = \"api/sims/dgverification/GetLookupListDGQualifictionVerificationStatus\";\r\n utils.invokeUrl(urlQV, (response) => {\r\n this.setState({ lookupQVArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n CheckVerificationPermissions(id) {\r\n let url = \"api/sims/DGVerification/GetDGVerificationPermissionCheck?DGApplicationID=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n VerificationPermission: response.Result\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n\r\n\r\n\r\n handleChecklistArrayEV = (event, index) => {\r\n const values = [...this.state.formObject.DGVerificationDocumentsDto];\r\n const indexObject = { ...values[index] };\r\n indexObject.DGEvidenceVerifiedID = { Id: event.target.value };\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, DGVerificationDocumentsDto: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayC = (event, index) => {\r\n const values = [...this.state.formObject.DGVerificationDocumentsDto];\r\n const indexObject = { ...values[index] };\r\n indexObject.Comment = event.target.value;\r\n values[index] = indexObject;\r\n const finalObject = { ...this.state.formObject, DGVerificationDocumentsDto: values }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayQV = (event, index) => {\r\n const values = [...this.state.formObject.DGVerificationInterventionDto.DGVerificationInterventionData];\r\n const indexObject = { ...values[index] };\r\n indexObject.QualificationVerificationStatusID = event.target.value;\r\n values[index] = indexObject;\r\n const newDGVerificationInterventionDto = { ...this.state.formObject.DGVerificationInterventionDto };\r\n newDGVerificationInterventionDto.DGVerificationInterventionData = values;\r\n const finalObject = { ...this.state.formObject, DGVerificationInterventionDto: newDGVerificationInterventionDto }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayQC = (event, index) => {\r\n const values = [...this.state.formObject.DGVerificationInterventionDto.DGVerificationInterventionData];\r\n const indexObject = { ...values[index] };\r\n indexObject.QualificationVerificationComments = event.target.value;\r\n values[index] = indexObject;\r\n const newDGVerificationInterventionDto = { ...this.state.formObject.DGVerificationInterventionDto };\r\n newDGVerificationInterventionDto.DGVerificationInterventionData = values;\r\n const finalObject = { ...this.state.formObject, DGVerificationInterventionDto: newDGVerificationInterventionDto }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleStatus = (event) => {\r\n const finalObject = { ...this.state.formObject, DGStatusID: { Id: event.target.value } }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleComment = (event) => {\r\n const finalObject = { ...this.state.formObject, Comments: event.target.value }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n SaveVerification = () => {\r\n\r\n let url = \"api/sims/dgverification/UpdateDGVerification\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(this.state.formObject)\r\n }\r\n )\r\n }\r\n\r\n successCallback(response) {\r\n\r\n if (response.MessageType === \"WARNING\") {\r\n let errResult = JSON.parse(response.Message);\r\n let message = \"\";\r\n errResult.map((item, index) => (\r\n message += item.Item1 + ' : ' + item.Item2 + '\\n'\r\n ))\r\n this.setState({ message: message, messageStyle: response.MessageType });\r\n }\r\n else {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n this.getVerification(this.state.id);\r\n this.getVerificationStatusList(this.state.id)\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/DGVerificationSearch',\r\n state: {\r\n organisationID: this.state.OrganisationID,\r\n DGApplicationID: this.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID,\r\n FundingWindowID: this.state.FundingWindowID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber\r\n },\r\n });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.close();\r\n }\r\n }\r\n\r\n buttonSubmitClickHandler() {\r\n this.submit();\r\n }\r\n\r\n FileDownload(id, DocumentType) {\r\n console.log(id);\r\n utils.invokeUrl(\"api/sims/dgverification/DownloadDGDocument?DocumentID=\" + id, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n };\r\n\r\n OpenForm(id, formUrl, fName) {\r\n console.log(formUrl);\r\n let newsearchParameters = [...this.state.searchParameters];\r\n let temp_element = { ...newsearchParameters[1] };\r\n temp_element.Value = id\r\n newsearchParameters[1] = temp_element;\r\n\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(newsearchParameters)),\r\n OpenDialog: true,\r\n formViewURL: formUrl,\r\n formName: fName\r\n });\r\n }\r\n\r\n CloseForm = () => {\r\n this.setState({\r\n OpenDialog: false,\r\n formViewURL: \"\",\r\n formName: \"\"\r\n });\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const doctablerows = !utils.isNull(this.state.formObject) ? this.state.formObject.DGVerificationDocumentsDto.map((item, index) => (\r\n\r\n \r\n \r\n {index + 1}\r\n \r\n {item.DocumentDescription}\r\n {item.EvidenceAvaialble}\r\n \r\n this.handleChecklistArrayEV(values, index)} >\r\n \r\n {this.state.lookupArray.map((lookupitem, index) => (\r\n {lookupitem.Description}\r\n ))}\r\n \r\n \r\n \r\n this.handleChecklistArrayC(values, index)}> \r\n \r\n \r\n {item.DGDocumentUploadID !== 0 ?\r\n this.FileDownload(item.DGDocumentUploadID)} >\r\n :\r\n null\r\n }\r\n \r\n \r\n ))\r\n :\r\n null;\r\n\r\n const inttableheader = !utils.isNull(this.state.formObject) ? this.state.formObject.DGVerificationInterventionDto.FriendlyColumnNames.map((item, index) => (\r\n item === \"ID\" ? # : {item}\r\n )) : null;\r\n\r\n const inttablerows = !utils.isNull(this.state.formObject) ? this.state.formObject.DGVerificationInterventionDto.DGVerificationInterventionData.map((item, index) => (\r\n \r\n {Object.keys(item).map((innerItem, indexObject) => (\r\n indexObject === 0 ? \r\n {indexObject + 1}\r\n :\r\n innerItem === \"QualificationVerificationStatusID\" ?\r\n \r\n this.handleChecklistArrayQV(values, index)} >\r\n \r\n {this.state.lookupQVArray.map((lookupitem, index) => (\r\n {lookupitem.Description}\r\n ))}\r\n \r\n :\r\n innerItem === \"QualificationVerificationComments\" ?\r\n \r\n this.handleChecklistArrayQC(values, index)}> \r\n :\r\n {item[innerItem]}\r\n ))}\r\n \r\n ))\r\n :\r\n null;\r\n\r\n const statuslistrows = !utils.isNull(this.state.VerificationStatusListObject) && this.state.VerificationStatusListObject.TotalNumberOfRows !== 0 ? this.state.VerificationStatusListObject.Data.map((item, index) => (\r\n\r\n \r\n {item.Verifier}\r\n {item.VerificationDate}\r\n {item.DGStatus}\r\n \r\n ))\r\n :\r\n null;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n DG Verification
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n #\r\n Supporting Documentation\r\n Evidence Available / Submitted (Yes/No)\r\n Evidence Verified\r\n Comments\r\n Links\r\n \r\n \r\n \r\n {doctablerows}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {inttableheader}\r\n \r\n \r\n \r\n {inttablerows}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Status
\r\n
\r\n this.handleStatus(values)}>\r\n \r\n {!utils.isNull(this.state.lookupVArray) ? this.state.lookupVArray.map((lookupVitem, index) => (\r\n\r\n {lookupVitem.Description}\r\n\r\n )) : null}\r\n \r\n \r\n Comments
\r\n
\r\n this.handleComment(values)}> \r\n
\r\n
\r\n {!utils.isNull(this.state.VerificationStatusListObject) && this.state.VerificationStatusListObject.TotalNumberOfRows !== 0 ?\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Updated By\r\n Date Updated\r\n DG Status\r\n \r\n \r\n \r\n {statuslistrows}\r\n \r\n
\r\n
\r\n : null}\r\n
\r\n  \r\n\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withStyles(useStyles())(withMenuPermission(DGVerificationMain)));","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { SelectItem } from './../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function DGEvaluationSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from \"../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport DGEvaluationSearchForm from \"./DGEvaluationSearchForm\";\r\nimport EnhancedToolbar from \"../../widgets/Toolbar\";\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nclass DGEvaluationSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"close\", label: \"Close\", tooltip: \"Close\", icon: \"CloseIcon\" },\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"view\", label: \"\", tooltip: \"View\", icon: \"ViewIcon\", disabled: true },\r\n\r\n ],\r\n },\r\n ],\r\n };\r\n\r\n this.headCells = [\r\n { id: \"FinancialYear\", numeric: false, disablePadding: true, label: \"Financial Year\" },\r\n { id: \"SubmissionNumber\", numeric: false, disablePadding: true, label: \"Submission Number\" },\r\n { id: \"DGType\", numeric: false, disablePadding: true, label: \"DG Type\" },\r\n { id: \"DGIntervention\", numeric: false, disablePadding: true, label: \"DG Intervention\" },\r\n { id: \"DGApplicationStatus\", numeric: false, disablePadding: true, label: \"DG Application Status\" },\r\n ];\r\n\r\n let model = {\r\n OrganisationID: this.props.location.state.organisationID,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : \"\"\r\n };\r\n\r\n this.searchParameters = [\r\n { Name: \"OrganisationID\", Value: this.props.location.state.organisationID },\r\n { Name: \"FinancialYearID\", Value: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : \"\" }\r\n ];\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedDG: null,\r\n OrganisationID: this.props.location.state.organisationID,\r\n FinancialYearID: null\r\n };\r\n }\r\n\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedDG: selection[0].Id });\r\n } else {\r\n this.setState({ selectedDG: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"view\", false);\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedDG: null,\r\n Message: \"\",\r\n FinancialYearID: values.FinancialYearID.Id\r\n });\r\n }\r\n }\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/DGEvaluationMain\",\r\n state: {\r\n OrganisationID: this.state.OrganisationID,\r\n DGApplicationID: this.state.selectedDG,\r\n FinancialYearID: this.state.model.FinancialYearID\r\n },\r\n });\r\n }\r\n else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"DG Evaluation \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n
\r\n { this.handleSelection(selection) }}\r\n toolbarRef={toolbarRef}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={this.handleFormValueChange}\r\n dependency={this.state.dependency}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(connect()(DGEvaluationSearch));\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../../View.css\";\r\nimport \"./../../../Grid.css\";\r\nimport \"./../../../Form.css\";\r\nimport \"./../../../App.css\";\r\nimport \"../../../etqa/program/LearnershipSetup.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport ViewUtils from '../../../ViewUtils';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport withMenuPermission from \"../../../widgets/withMenuPermission\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst headCells = [\r\n { id: 'Name', numeric: false, disablePadding: true, label: 'Reason Name' },\r\n { id: 'Description', numeric: false, disablePadding: true, label: 'Reason Description' }\r\n];\r\n\r\nclass DGLetterReasonDialog extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.searchParameters =\r\n [\r\n { Name: \"DGApplicationID\", Value: this.props.DGApplicationID },\r\n { Name: \"NewDGStatusID\", Value: this.props.NewDGStatusID }\r\n ]\r\n\r\n if (!utils.isNull(props.exclusions)) {\r\n this.searchParameters.push({ Name: \"Exclusions\", Value: props.exclusions });\r\n }\r\n\r\n this.state = {\r\n keyUpSwitch: false,\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'add', label: '', tooltip: 'Add', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: '', tooltip: 'Edit', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: \"delete\", label: \"\", tooltip: \"Remove Learnership\", icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(withMenuPermission(DGLetterReasonDialog));","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport './Style.css'\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport LinkDialog from \"../../etqa/LinkDialog\";\r\nimport DGLetterReasonDialog from \"../application/Controls/DGLetterReasonDialog\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Evaluation Dashboard', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n fontSize: 11,\r\n padding: 5\r\n },\r\n body: {\r\n fontSize: 11,\r\n padding: 5\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n title: {\r\n flex: 1,\r\n color: 'white',\r\n },\r\n table: {\r\n minWidth: 700,\r\n }\r\n});\r\n\r\nclass DGEvaluationMain extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n objectProps: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.object)) ? this.props.location.state.object : null,\r\n formObject: null,\r\n lookupEArray: null,\r\n lookupQEArray: null,\r\n FinancialYear: '',\r\n OrganisationName: '',\r\n Status: '',\r\n model: {\r\n Name: \"\",\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n OrganisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.OrganisationID)) ? this.props.location.state.OrganisationID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n EvaluationPermission: \"\",\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"OrganisationID\", Value: this.props.location.state.OrganisationID }, { Name: \"FinancialYearID\", Value: this.props.location.state.FinancialYearID }],\r\n OpenDialog: false,\r\n formViewURL: \"\",\r\n formName: \"\",\r\n linkDialogOpen: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getHeaders(this.state.id)\r\n this.getEvaluation(this.state.id)\r\n this.getlookup(this.state.id)\r\n this.CheckEvaluationPermissions(this.state.id);\r\n }\r\n\r\n getHeaders = (id) => {\r\n let url = \"api/sims/dgevaluation/getfindheader?DGApplicationID=\" + id;\r\n\r\n utils.invokeUrl(\r\n url,\r\n (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"Bearer \" + localStorage.getItem(\"token\"),\r\n },\r\n }\r\n );\r\n };\r\n\r\n getEvaluation(id) {\r\n let url = `api/sims/dgevaluation/GetDGEvaluation?request={\"searchParameters\":[{\"Name\":\"DGApplicationID\",\"Value\":${this.state.id}}]}`;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n formObject: response\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n getlookup(id) {\r\n\r\n let urlE = \"api/sims/dgevaluation/GetLookupListDGEvaluationStatus\";\r\n utils.invokeUrl(urlE, (response) => {\r\n this.setState({ lookupEArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n\r\n let urlQE = \"api/sims/dgevaluation/GetLookupListDGQualifictionEvaluationStatus\";\r\n utils.invokeUrl(urlQE, (response) => {\r\n this.setState({ lookupQEArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n CheckEvaluationPermissions(id) {\r\n let url = \"api/sims/DGEvaluation/GetDGEvaluationPermissionCheck?DGApplicationID=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n EvaluationPermission: response.Result\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleChecklistArrayQN = (event, index) => {\r\n const values = [...this.state.formObject.DGEvaluationInterventionDto.DGEvaluationInterventionData];\r\n const indexObject = { ...values[index] };\r\n indexObject.NumberRecommendedForApproval = event.target.value;\r\n values[index] = indexObject;\r\n const newDGEvaluationInterventionDto = { ...this.state.formObject.DGEvaluationInterventionDto };\r\n newDGEvaluationInterventionDto.DGEvaluationInterventionData = values;\r\n const finalObject = { ...this.state.formObject, DGEvaluationInterventionDto: newDGEvaluationInterventionDto }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayQV = (event, index) => {\r\n const values = [...this.state.formObject.DGEvaluationInterventionDto.DGEvaluationInterventionData];\r\n const indexObject = { ...values[index] };\r\n indexObject.QualificationEvaluationStatusID = event.target.value;\r\n values[index] = indexObject;\r\n const newDGEvaluationInterventionDto = { ...this.state.formObject.DGEvaluationInterventionDto };\r\n newDGEvaluationInterventionDto.DGEvaluationInterventionData = values;\r\n const finalObject = { ...this.state.formObject, DGEvaluationInterventionDto: newDGEvaluationInterventionDto }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayQC = (event, index) => {\r\n const values = [...this.state.formObject.DGEvaluationInterventionDto.DGEvaluationInterventionData];\r\n const indexObject = { ...values[index] };\r\n indexObject.QualificationEvaluationComments = event.target.value;\r\n values[index] = indexObject;\r\n const newDGEvaluationInterventionDto = { ...this.state.formObject.DGEvaluationInterventionDto };\r\n newDGEvaluationInterventionDto.DGEvaluationInterventionData = values;\r\n const finalObject = { ...this.state.formObject, DGEvaluationInterventionDto: newDGEvaluationInterventionDto }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleStatus = (event) => {\r\n const finalObject = { ...this.state.formObject, DGStatusID: { Id: event.target.value } }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleComment = (event) => {\r\n const finalObject = { ...this.state.formObject, Comments: event.target.value }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n CheckStatus = () => {\r\n if (this.state.formObject.DGStatusID.Id === \"4\" || this.state.formObject.DGStatusID.Id === 4) {\r\n this.setState({\r\n linkDialogOpen: true,\r\n linkDialogTitle: 'Query Reasons',\r\n LinkDialogName: 'QueryReasons',\r\n NewDGStatusID: 4,\r\n message: \"\"\r\n })\r\n }\r\n else if (this.state.formObject.DGStatusID.Id === \"5\" || this.state.formObject.DGStatusID.Id === 5) {\r\n this.setState({\r\n linkDialogOpen: true,\r\n linkDialogTitle: 'Rejection Reasons',\r\n LinkDialogName: 'RejectionReasons',\r\n NewDGStatusID: 5,\r\n message: \"\"\r\n })\r\n }\r\n else { this.SaveEvaluation(null) }\r\n\r\n }\r\n\r\n SaveEvaluation = (selection) => {\r\n\r\n let ReasonsList = \"\";\r\n if (selection !== null) {\r\n for (let i = 0; i < selection.length; i++) {\r\n if (i === 0) { ReasonsList += selection[i].Id; }\r\n else { ReasonsList += \",\" + selection[i].Id; }\r\n\r\n }\r\n }\r\n\r\n let SaveObject = { ...this.state.formObject, Reasons: ReasonsList };\r\n this.setState({ formObject: SaveObject });\r\n\r\n let url = \"api/sims/dgevaluation/UpdateDGEvaluation\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(SaveObject)\r\n }\r\n )\r\n }\r\n\r\n postLinkHandler(isCancel, linked) {\r\n if (linked === true) {\r\n\r\n this.setState({\r\n linkDialogOpen: false,\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters))\r\n });\r\n }\r\n else if (isCancel === true) {\r\n this.setState({\r\n linkDialogOpen: false\r\n })\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n\r\n if (response.MessageType === \"WARNING\") {\r\n let errResult = JSON.parse(response.Message);\r\n let message = \"\";\r\n errResult.map((item, index) => (\r\n message += item.Item1 + ' : ' + item.Item2 + '\\n'\r\n ))\r\n this.setState({ message: message, messageStyle: response.MessageType });\r\n }\r\n else {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n this.getEvaluation(this.state.id)\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/DGEvaluationSearch',\r\n state: {\r\n organisationID: this.state.OrganisationID,\r\n DGApplicationID: this.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber\r\n },\r\n });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.close();\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const inttableheader = !utils.isNull(this.state.formObject) ? this.state.formObject.DGEvaluationInterventionDto.FriendlyColumnNames.map((item, index) => (\r\n item === \"ID\" ? # : {item}\r\n )) : null;\r\n\r\n const inttablerows = !utils.isNull(this.state.formObject) ? this.state.formObject.DGEvaluationInterventionDto.DGEvaluationInterventionData.map((item, index) => (\r\n \r\n {Object.keys(item).map((innerItem, indexObject) => (\r\n indexObject === 0 ? \r\n {indexObject + 1}\r\n :\r\n innerItem === \"QualificationEvaluationStatusID\" ?\r\n \r\n this.handleChecklistArrayQV(values, index)} >\r\n \r\n {this.state.lookupQEArray.map((lookupitem, index) => (\r\n {lookupitem.Description}\r\n ))}\r\n \r\n :\r\n innerItem === \"QualificationEvaluationComments\" ?\r\n \r\n this.handleChecklistArrayQC(values, index)}> \r\n :\r\n innerItem == \"NumberRecommendedForApproval\" ?\r\n \r\n this.handleChecklistArrayQN(values, index)}> \r\n \r\n : {item[innerItem]}\r\n ))}\r\n \r\n ))\r\n :\r\n null;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n DG Evaluation
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {inttableheader}\r\n \r\n \r\n \r\n {inttablerows}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Status
\r\n
\r\n this.handleStatus(values)}>\r\n \r\n {!utils.isNull(this.state.lookupEArray) ? this.state.lookupEArray.map((lookupVitem, index) => (\r\n\r\n {lookupVitem.Description}\r\n\r\n )) : null}\r\n \r\n \r\n Comments
\r\n
\r\n this.handleComment(values)}> \r\n \r\n Evaluator
\r\n
\r\n\r\n \r\n \r\n Evaluation Date
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n  \r\n\r\n this.postLinkHandler(isCancelled, linked)}\r\n dialogTitle={this.state.linkDialogTitle}\r\n linkName={this.state.linkDialogName} linkHandler={(selection) => this.SaveEvaluation(selection)}\r\n selectionId={this.state.id}\r\n buttonName=\"Save\"\r\n >\r\n \r\n \r\n\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withStyles(useStyles())(withMenuPermission(DGEvaluationMain)));","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { EntityForm } from '../../widgets/Forms';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function DGApprovalSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport ViewUtils from \"../../ViewUtils\";\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport DGApprovalSearchForm from \"./DGApprovalSearchForm\";\r\n\r\n\r\n\r\nconst utils = new ViewUtils();\r\nconst toolbarRef = React.createRef();\r\nclass DGApprovalSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n \r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: \"close\",label: \"Close\", tooltip: \"Close\", icon: \"CloseIcon\"},\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [ \r\n { id: \"view\", label: \"\", tooltip: \"View\", icon: \"ViewIcon\", disabled: true },\r\n \r\n ],\r\n },\r\n ],\r\n };\r\n\r\n this.headCells = [\r\n {id: \"SubmissionNumber\", numeric: false, disablePadding: true, label: \"Submission Number\"},\r\n {id: \"DGIntervention\",numeric: false,disablePadding: true,label: \"DG Intervention\"},\r\n {id: \"DGApplicationStatus\",numeric: false,disablePadding: true,label: \"DG Application Status\"},\r\n {id: \"DGNumber\",numeric: false,disablePadding: true,label: \"DG Number\"},\r\n {id: \"ApprovedNotApprovedBy\",numeric: false,disablePadding: true,label: \"Approved Not Approved By\"},\r\n {id: \"ApprovedNotApprovedDate\",numeric: false,disablePadding: true,label: \"Approved No Approved Date\"}, \r\n ];\r\n\r\n let model = {\r\n OrganisationID: this.props.location.state.organisationID,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : \"\"\r\n };\r\n\r\n this.searchParameters = [\r\n { Name: \"OrganisationID\", Value: this.props.location.state.organisationID },\r\n { Name: \"FinancialYearID\", Value: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : \"\" } \r\n ];\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedDG: null,\r\n OrganisationID: this.props.location.state.organisationID,\r\n FinancialYearID : null\r\n };\r\n }\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedDG: selection[0].Id });\r\n } else {\r\n this.setState({ selectedDG: null });\r\n }\r\n toolbarRef.current.setButtonDisabled(\"view\", false);\r\n\r\n }\r\n \r\n handleFormValueChange = (values) => {\r\n let newValues = null;\r\n if (!utils.isNull(values)) {\r\n newValues = { ...values };\r\n }\r\n if (!utils.isNull(newValues)) {\r\n if (JSON.stringify(this.state.model) !== JSON.stringify(newValues)) {\r\n this.setState({\r\n model: newValues,\r\n clearGrid: true,\r\n selectedDG: null,\r\n Message: \"\",\r\n FinancialYearID: values.FinancialYearID.Id\r\n });\r\n }\r\n }\r\n}\r\n\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"view\" === buttonId) {\r\n this.props.history.push({\r\n pathname: \"/DGApprovalMain\",\r\n state: {\r\n OrganisationID: this.state.OrganisationID,\r\n DGApplicationID: this.state.selectedDG,\r\n FinancialYearID : this.state.model.FinancialYearID\r\n },\r\n });\r\n }\r\n else if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"DG Approval \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n\r\n
\r\n { this.handleSelection(selection) }}\r\n toolbarRef={toolbarRef}\r\n >\r\n { this.onkeyup(e) }}\r\n valueChangeHandler={this.handleFormValueChange}\r\n dependency={this.state.dependency}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(connect()(DGApprovalSearch));\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ViewContainer } from \"../../View.jsx\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport Button from '@material-ui/core/Button';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport './Style.css'\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Approval Dashboard', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst headCells = [\r\n { id: 'Occupation', numeric: false, disablePadding: true, label: 'Occupation', widthRatio: .154 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .047 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .047 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .047 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .047 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .047 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .047 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .047 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .047 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .047 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .047 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .047 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .047 },\r\n { id: 'Age1', numeric: false, disablePadding: true, label: 'Age < 35', widthRatio: .047 },\r\n { id: 'Age2', numeric: false, disablePadding: true, label: 'Age 35 - 55', widthRatio: .047 },\r\n { id: 'Age3', numeric: false, disablePadding: true, label: 'Age > 55', widthRatio: .047 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .047 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .047 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .047 }\r\n];\r\n\r\nconst useStyles = theme => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n title: {\r\n flex: 1,\r\n color: 'white',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nclass DGApprovalMain extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n objectProps: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.object)) ? this.props.location.state.object : null,\r\n formObject: null,\r\n lookupADArray: null,\r\n lookupArray: null,\r\n FinancialYear: '',\r\n OrganisationName: '',\r\n Status: '',\r\n model: {\r\n Name: \"\",\r\n },\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n OrganisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.OrganisationID)) ? this.props.location.state.OrganisationID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n FundingWindowID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FundingWindowID)) ? this.props.location.state.FundingWindowID : null,\r\n ApprovalPermission: \"\",\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"OrganisationID\", Value: this.props.location.state.OrganisationID }, { Name: \"FinancialYearID\", Value: this.props.location.state.FinancialYearID }],\r\n OpenDialog: false,\r\n formViewURL: \"\",\r\n formName: \"\",\r\n linkDialogOpen: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getHeaders(this.state.id)\r\n this.getApproval(this.state.id)\r\n this.getApprovalStatusList(this.state.id)\r\n this.getlookup(this.state.id)\r\n this.CheckApprovalPermissions(this.state.id);\r\n }\r\n\r\n getHeaders = (id) => {\r\n let url = \"api/sims/dgapproval/getfindheader?DGApplicationID=\" + id;\r\n\r\n utils.invokeUrl(\r\n url,\r\n (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"Bearer \" + localStorage.getItem(\"token\"),\r\n },\r\n }\r\n );\r\n };\r\n\r\n getApproval(id) {\r\n let url = `api/sims/dgapproval/GetDGApproval?request={\"searchParameters\":[{\"Name\":\"DGApplicationID\",\"Value\":${this.state.id}}]}`;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n formObject: response\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n getApprovalStatusList(id) {\r\n let url = `api/sims/dgapproval/GetDGApprovalStatusList?request={\"searchParameters\":[{\"Name\":\"DGApplicationID\",\"Value\":${this.state.id}}]}`;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n ApprovalStatusListObject: response\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n getlookup(id) {\r\n let url = \"api/sims/dgapproval/GetLookupListDGApprovalDetailStatus\";\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({ lookupADArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n\r\n let urlV = \"api/sims/dgapproval/GetLookupListDGApprovalStatus\";\r\n utils.invokeUrl(urlV, (response) => {\r\n this.setState({ lookupVArray: response })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n CheckApprovalPermissions(id) {\r\n let url = \"api/sims/DGApproval/GetDGApprovalPermissionCheck?DGApplicationID=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n ApprovalPermission: response.Result\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n\r\n\r\n\r\n handleChecklistArrayAD = (event, index) => {\r\n const values = [...this.state.formObject.DGApprovalInterventionDto.DGApprovalInterventionData];\r\n const indexObject = { ...values[index] };\r\n indexObject.DGApprovalDetailStatusID = event.target.value;\r\n values[index] = indexObject;\r\n const newDGApprovalInterventionDto = { ...this.state.formObject.DGApprovalInterventionDto };\r\n newDGApprovalInterventionDto.DGApprovalInterventionData = values;\r\n const finalObject = { ...this.state.formObject, DGApprovalInterventionDto: newDGApprovalInterventionDto }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleChecklistArrayNLA = (event, index) => {\r\n const values = [...this.state.formObject.DGApprovalInterventionDto.DGApprovalInterventionData];\r\n const indexObject = { ...values[index] };\r\n indexObject.NoOfLearnersApproved = event.target.value;\r\n values[index] = indexObject;\r\n const newDGApprovalInterventionDto = { ...this.state.formObject.DGApprovalInterventionDto };\r\n newDGApprovalInterventionDto.DGApprovalInterventionData = values;\r\n const finalObject = { ...this.state.formObject, DGApprovalInterventionDto: newDGApprovalInterventionDto }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n handleStatus = (event) => {\r\n const finalObject = { ...this.state.formObject, DGStatusID: { Id: event.target.value } }\r\n this.setState({ formObject: finalObject });\r\n }\r\n\r\n SaveApproval = () => {\r\n let url = \"api/sims/dgapproval/UpdateDGApproval\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(this.state.formObject)\r\n }\r\n )\r\n }\r\n\r\n ReverseDGApproval = () => {\r\n let url = \"api/sims/dgapproval/ReverseDGApproval\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(({\r\n \"DGApplicationID\": this.state.id\r\n }))\r\n }\r\n )\r\n }\r\n\r\n EmailDGLetter = () => {\r\n let url = \"api/sims/dgapproval/EmailDGLetter\";\r\n utils.invokeUrl(url, (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n },\r\n {\r\n method: 'PUT',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n },\r\n body: JSON.stringify(({\r\n \"DGApplicationID\": this.state.id\r\n }))\r\n }\r\n )\r\n }\r\n\r\n successCallback(response) {\r\n\r\n if (response.MessageType === \"WARNING\") {\r\n let errResult = JSON.parse(response.Message);\r\n let message = \"\";\r\n errResult.map((item, index) => (\r\n message += item.Item1 + ' : ' + item.Item2 + '\\n'\r\n ))\r\n this.setState({ message: message, messageStyle: response.MessageType });\r\n }\r\n else {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n this.getApproval(this.state.id);\r\n this.getApprovalStatusList(this.state.id)\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/DGApprovalSearch',\r\n state: {\r\n organisationID: this.state.OrganisationID,\r\n DGApplicationID: this.state.id,\r\n FinancialYearID: this.state.FinancialYearID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber\r\n },\r\n });\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.close();\r\n }\r\n }\r\n\r\n buttonSubmitClickHandler() {\r\n this.submit();\r\n }\r\n\r\n DownloadDGApprovalLetter = () => {\r\n let url = \"api/sims/dgapproval/DownloadDGApprovalLetter?DGApplicationID=\" + this.state.id;\r\n utils.invokeUrl(url, (response) => {\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n };\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const inttableheader = !utils.isNull(this.state.formObject) ? this.state.formObject.DGApprovalInterventionDto.FriendlyColumnNames.map((item, index) => (\r\n item === \"ID\" ? # : {item}\r\n )) : null;\r\n\r\n const inttablerows = !utils.isNull(this.state.formObject) ? this.state.formObject.DGApprovalInterventionDto.DGApprovalInterventionData.map((item, index) => (\r\n \r\n {Object.keys(item).map((innerItem, indexObject) => (\r\n indexObject === 0 ? \r\n {indexObject + 1}\r\n :\r\n innerItem === \"DGApprovalDetailStatusID\" ?\r\n \r\n this.handleChecklistArrayAD(values, index)} >\r\n \r\n {this.state.lookupADArray.map((lookupitem, index) => (\r\n {lookupitem.Description}\r\n ))}\r\n \r\n :\r\n innerItem === \"NoOfLearnersApproved\" ?\r\n \r\n this.handleChecklistArrayNLA(values, index)}> \r\n :\r\n {item[innerItem]}\r\n ))}\r\n \r\n ))\r\n :\r\n null;\r\n\r\n const statuslistrows = !utils.isNull(this.state.ApprovalStatusListObject) && this.state.ApprovalStatusListObject.TotalNumberOfRows !== 0 ? this.state.ApprovalStatusListObject.Data.map((item, index) => (\r\n\r\n \r\n {item.Approver}\r\n {item.ApprovalDate}\r\n {item.DGStatus}\r\n \r\n ))\r\n :\r\n null;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n DG Approval
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {inttableheader}\r\n \r\n \r\n \r\n {inttablerows}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Status
\r\n
\r\n this.handleStatus(values)}>\r\n \r\n {!utils.isNull(this.state.lookupVArray) ? this.state.lookupVArray.map((lookupVitem, index) => (\r\n\r\n {lookupVitem.Description}\r\n\r\n )) : null}\r\n \r\n \r\n Approved/Not Approved By
\r\n
\r\n\r\n \r\n \r\n Approved/Not Approved Date
\r\n
\r\n\r\n \r\n
\r\n
\r\n {!utils.isNull(this.state.ApprovalStatusListObject) && this.state.ApprovalStatusListObject.TotalNumberOfRows !== 0 ?\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Updated By\r\n Date Updated\r\n DG Status\r\n \r\n \r\n \r\n {statuslistrows}\r\n \r\n
\r\n
\r\n : null}\r\n
\r\n \r\n  \r\n  \r\n {!utils.isNull(this.state.formObject) && this.state.formObject.ShowLetterButton === 1 ?\r\n \r\n  \r\n \r\n : null\r\n }\r\n  \r\n \r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withStyles(useStyles())(withMenuPermission(DGApprovalMain)));","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"./Style.css\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport {ViewContainer} from \"../../View\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\n\r\nconst userRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: 'LegalName', numeric: false, disablePadding: true, label: 'Legal Name' },\r\n { id: 'TradeName', numeric: false, disablePadding: true, label: 'Trade Name' },\r\n { id: 'SDLNumber', numeric: false, disablePadding: true, label: 'SDL Number' },\r\n { id: 'FinancialYear', numeric: false, disablePadding: true, label: 'Financial Year' }\r\n];\r\n\r\nclass DGContracts extends Component {\r\n\r\n constructor(props){\r\n super(props)\r\n this.state={\r\n OrganisationID: this.props.location.state.organisationID,\r\n FinancialYearID: null,\r\n showMessage: true,\r\n message: '',\r\n messageStyle: 'SUCCESS',\r\n searchParameters: [{ Name: \"OrganisationID\", Value: this.props.location.state.organisationID }]\r\n }\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Close', tooltip: 'Close', icon: 'CloseIcon'},\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [ \r\n { id: 'downloadContract', label: 'Download Contract', tooltip: 'Download Contract', icon: 'DownloadIcon', disabled: utils.isNull(this.state.FinancialYearID)},\r\n { id: 'emailContract', label: 'Email Contract', tooltip: 'Email Contract', icon: 'EmailIcon', disabled: utils.isNull(this.state.FinancialYearID) }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n handleFormValueChange(values) {\r\n }\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ FinancialYearID: selection[0].FinancialYearID })\r\n } else {\r\n this.setState({ FinancialYearID: null })\r\n }\r\n toolbarRef.current.setButtonDisabled(\"downloadContract\", selection === null || selection.length === 0);\r\n toolbarRef.current.setButtonDisabled(\"emailContract\", selection === null || selection.length === 0);\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/DGOrganisation',\r\n state: { selection: this.props.location.state.organisationID }\r\n });\r\n } else if (\"downloadContract\" === buttonId) {\r\n this.downloadContract(); \r\n } else if (\"emailContract\" === buttonId) {\r\n this.emailContract(); \r\n }\r\n }\r\n\r\n emailContract=()=>{\r\n const url = `api/sims/dgcontracts/emaildgcontract`;\r\n utils.invokeApiPut(\r\n JSON.stringify({\r\n \"OrganisationID\" : this.props.location.state.organisationID,\r\n \"FinancialYearID\" : this.state.FinancialYearID\r\n }),\r\n url,\r\n (response) => {\r\n this.successCallback(response);\r\n },\r\n (response) => {\r\n this.error(response);\r\n }\r\n );\r\n }\r\n\r\n downloadContract=()=>{\r\n const url = `api/sims/dgcontracts/viewdgcontract`;\r\n utils.invokeApiPut(\r\n JSON.stringify({\r\n \"OrganisationID\" : this.props.location.state.organisationID,\r\n \"FinancialYearID\" : this.state.FinancialYearID\r\n }),\r\n url,\r\n (response) => {\r\n var blob = new Blob([this.base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: response.MessageType,\r\n showMessage: true\r\n }, ()=>{\r\n setTimeout(()=>{this.setState({showMessage: false})},2000)\r\n });\r\n },\r\n (response) => {\r\n this.setState({\r\n message: \"Error downloading DG Contract.\",\r\n messageStyle: \"ERROR\",\r\n showMessage: true\r\n }, ()=>{\r\n setTimeout(()=>{this.setState({showMessage: false})},2000)\r\n });\r\n }\r\n );\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"DG Contracts \" + (this.props.location.state.organisationName !== null ? \"> \" + this.props.location.state.organisationName + (this.props.location.state.sdlnumber !== null ? \" - \" + this.props.location.state.sdlnumber : \"\") : \"> Add\")}\r\n

\r\n \r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n { this.handleSelectionChange(selection) }}\r\n searchParameters={this.state.searchParameters} paged={true} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(connect()(DGContracts)\r\n);\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function TradeSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Trade Name\r\n \r\n props.model.TradeName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Trade Code\r\n \r\n props.model.TradeCode = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../../View.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport TradeSearchForm from './TradeSearchForm';\r\nimport { ViewContainer } from \"../../../View.jsx\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"TradeID\", numeric: false, disablePadding: true, label: \"Trade ID\" },\r\n { id: \"TradeName\", numeric: false, disablePadding: true, label: \"Trade Name\" },\r\n { id: \"TradeCode\", numeric: false, disablePadding: true, label: \"Trade Code\" },\r\n]\r\n\r\n\r\nclass TradeSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters =\r\n [\r\n { Name: \"TradeID\", Value: \"\" },\r\n { Name: \"TradeCode\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" }\r\n\r\n ];\r\n\r\n\r\n let model =\r\n {\r\n \r\n TradeID: \"\", \r\n TradeName: \"\",\r\n TradeCode: \"\"\r\n }\r\n\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedQual: null,\r\n linkDialogOpen: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(TradeSearch)\r\n);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TradeSearch from '../../Controls/TradeSearch';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const ArtisanForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"DGTradesID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../Style.css'\r\nimport { ArtisanForm } from './ArtisanForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Trade', numeric: false, disablePadding: true, label: 'Trade', widthRatio: .154 },\r\n { id: 'NoOfLearners', numeric: false, disablePadding: true, label: 'Number of Learners', widthRatio: .040 },\r\n { id: 'WorksiteWorkPlace', numeric: false, disablePadding: true, label: 'Worksite WorkPlace', widthRatio: .042 },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date', widthRatio: .040 },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date', widthRatio: .040 },\r\n { id: 'Mentor', numeric: false, disablePadding: true, label: 'Mentor', widthRatio: .042 },\r\n { id: 'TrainingProvider', numeric: false, disablePadding: true, label: 'Training Provider', widthRatio: .042 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .040 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .040 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .040 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .040 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .040 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .040 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .040 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .040 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .040 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .040 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .040 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .040 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .040 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .040 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .040 }\r\n\r\n];\r\n\r\nclass Artisan extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n DGApplicationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n DGFormID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormID)) ? this.props.location.state.DGFormID : null,\r\n DGFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormName)) ? this.props.location.state.DGFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"DGFormID\", Value: this.props.location.state.DGFormID }],\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/InsertArtisanEU`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) !=\r\n parseInt(formValue.NoOfLearners)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of males plus females does not equal the total number of learners.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/DGApplicationForms2022/GetArtisanEUFind?DGArtisanEUID=\" + this.state.RecordID + \"&DGFormID=\" + this.state.DGFormID, (response) => {\r\n response.DGApplicationID = this.state.DGApplicationID;\r\n response.DGFormID = this.state.DGFormID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove this DG Form Record?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this DG Form?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/updateArtisanEU`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/DGApplicationForms2022/removeArtisanEU\";\r\n let fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}&DGArtisanEUID=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/DGApplicationForms2022/removeAllArtisanEU\";\r\n fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/dgForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n DGID: this.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID\r\n }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/dgapplication/GetFindHeader?DGApplicationID=\" + this.state.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/dgapplication/GetDGFormPermissionCheck?DGApplicationID=\" + this.state.DGApplicationID + \"&DGFormsID=\" + this.state.DGFormID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0)\r\n {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\")\r\n {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n \r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.DGFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n {this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n /> \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Artisan);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function ProviderSearch(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n SDL Number\r\n \r\n props.model.SDLNumber = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Legal Name\r\n \r\n props.model.LegalName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Trade Name\r\n \r\n props.model.TradeName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../../View.css\";\r\nimport \"../../../Grid.css\";\r\nimport \"../../../Form.css\";\r\nimport \"../../../App.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport ProviderSearchForm from './ProviderSearchForm';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"SDLNumber\", numeric: false, disablePadding: true, label: \"SDL Number\" },\r\n { id: \"LegalName\", numeric: false, disablePadding: true, label: \"Legal Name\" },\r\n { id: \"TradeName\", numeric: false, disablePadding: true, label: \"Trade Name\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select Provider from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nclass ProviderSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = \r\n //For search on the provider search screen\r\n [\r\n { Name: \"SDLNumber\", Value: \"\" },\r\n { Name: \"LegalName\", Value: \"\" },\r\n { Name: \"TradeName\", Value: \"\" }\r\n ]\r\n\r\n let model = \r\n {\r\n SDLNumber: \"\",\r\n LegalName: \"\",\r\n TradeName: \"\"\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedProvider: null,\r\n linkDialogOpen: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(ProviderSearch)\r\n);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\nimport ProviderSearch from '../../Controls/ProviderSearch';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nexport const AETForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n  
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../Style.css'\r\nimport { AETForm } from './AETForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'AET', numeric: false, disablePadding: true, label: 'AET', widthRatio: .056 },\r\n { id: 'NumberOfLiteracyLearners', numeric: false, disablePadding: true, label: 'Number Of Literacy Learners', widthRatio: .042 },\r\n { id: 'NumberOfNumeracyLearners', numeric: false, disablePadding: true, label: 'Number Of Numeracy Learners', widthRatio: .042 },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date', widthRatio: .056 },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date', widthRatio: .056 },\r\n { id: 'NameOfMentor', numeric: false, disablePadding: true, label: 'Name Of Mentor', widthRatio: .07 },\r\n { id: 'TrainingProvider', numeric: false, disablePadding: true, label: 'Training Provider', widthRatio: .082 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .038 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .038 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .041 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .039 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .039 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .042 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .040 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .040 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .041 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .039 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .039 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .041 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .039 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .039 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .041 }\r\n\r\n];\r\n\r\nclass AET extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n DGApplicationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n DGFormID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormID)) ? this.props.location.state.DGFormID : null,\r\n DGFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormName)) ? this.props.location.state.DGFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n open: null,\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"DGFormID\", Value: this.props.location.state.DGFormID }],\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n NumberOfLiteracyLearners: 0,\r\n NumberOfNumeracyLearners: 0,\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/insertAET`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.NumberOfLiteracyLearners) + parseInt(formValue.NumberOfNumeracyLearners) === 0) {\r\n ErrorMessage = \"Number of Literacy / Numeracy: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) !== parseInt(formValue.NumberOfLiteracyLearners) + parseInt(formValue.NumberOfNumeracyLearners)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/DGApplicationForms2022/GetAETFind?DGAETID=\" + this.state.RecordID + \"&DGFormID=\" + this.state.DGFormID, (response) => {\r\n response.DGApplicationID = this.state.DGApplicationID;\r\n response.DGFormID = this.state.DGFormID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove this DG Form Record?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this DG Form?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/updateAET`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/DGApplicationForms2022/removeAET\";\r\n let fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/DGApplicationForms2022/removeAllAET\";\r\n fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/DGForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n DGID: this.props.location.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID\r\n }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetDGFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/DGApplication/GetFindHeader?DGApplicationID=\" + this.state.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n DGStatus: response.Status,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetDGFormPermissionCheck() {\r\n let url = \"api/sims/DGApplication/GetDGFormPermissionCheck?DGApplicationID=\" + this.state.DGApplicationID + \"&DGFormsID=\" + this.state.DGFormID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.DGFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AET);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function QualificationsSearch(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n SAQAQualificationTitle\r\n \r\n props.model.SAQAQualificationTitle = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n SAQA Code\r\n \r\n props.model.SAQAQualificationID = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../../View.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport QualificationsSearchForm from './QualificationsSearchForm';\r\nimport { ViewContainer } from \"../../../View.jsx\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"SAQAQualificationID\", numeric: false, disablePadding: true, label: \"Qualification ID\" },\r\n { id: \"SAQAQualificationTitle\", numeric: false, disablePadding: true, label: \"Qualification Title\" }\r\n]\r\n\r\n\r\nclass QualificationsSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters =\r\n [\r\n { Name: \"SAQAQualificationID\", Value: \"\" },\r\n { Name: \"SAQAQualificationTitle\", Value: \"\" }\r\n ];\r\n\r\n\r\n let model =\r\n {\r\n\r\n SAQAQualificationTitle: \"\",\r\n SAQAQualificationID: \"\"\r\n\r\n }\r\n\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedQual: null,\r\n linkDialogOpen: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(QualificationsSearch)\r\n);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function InstitutionSearch(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n Provider Code\r\n \r\n props.model.ProviderCode = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Institution Name\r\n \r\n props.model.InstitutionName = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../../View.css\";\r\nimport \"../../../Grid.css\";\r\nimport \"../../../Form.css\";\r\nimport \"../../../App.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport InstitutionSearchForm from './InstitutionSearchForm';\r\nimport { ViewContainer } from \"./../../../View.jsx\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"ProviderCode\", numeric: false, disablePadding: true, label: \"Provider Code\" },\r\n { id: \"InstitutionName\", numeric: false, disablePadding: true, label: \"Institution Name\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select Provider from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nclass InstitutionSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters =\r\n //For search on the provider search screen\r\n [\r\n { Name: \"ProviderCode\", Value: \"\" },\r\n { Name: \"InstitutionName\", Value: \"\" }\r\n ]\r\n\r\n let model =\r\n {\r\n ProviderCode: \"\",\r\n InstitutionName: \"\"\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedProvider: null,\r\n linkDialogOpen: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(InstitutionSearch)\r\n);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\nimport QualificationSearch from '../../Controls/QualificationsSearch';\r\nimport InstitutionSearch from '../../Controls/InstitutionSearch';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nexport const BursaryForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"QualificationID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"InstitutionID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../Style.css'\r\nimport { BursaryForm } from './BursaryForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Qualification', numeric: false, disablePadding: true, label: 'Qualification', widthRatio: .07 },\r\n { id: 'Institution', numeric: false, disablePadding: true, label: 'Institution', widthRatio: .083 },\r\n { id: 'NumberLearners', numeric: false, disablePadding: true, label: 'Number Of Learners', widthRatio: .042 },\r\n { id: 'TuitionFees', numeric: false, disablePadding: true, label: 'Tuition Fees', widthRatio: .07 },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date', widthRatio: .065 },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date', widthRatio: .065 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .038 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .038 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .041 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .043 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .043 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .043 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .040 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .040 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .041 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .039 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .039 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .041 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .039 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .039 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .041 }\r\n\r\n];\r\n\r\nclass Bursary extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n DGApplicationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n DGFormID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormID)) ? this.props.location.state.DGFormID : null,\r\n DGFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormName)) ? this.props.location.state.DGFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n open: null,\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"DGFormID\", Value: this.props.location.state.DGFormID }],\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n NumberLearners: 0,\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/insertBursary`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.NumberLearners) === 0) {\r\n ErrorMessage = \"Number of Learners: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/DGApplicationForms2022/GetBursaryFind?DGBursaryID=\" + this.state.RecordID + \"&DGFormID=\" + this.state.DGFormID, (response) => {\r\n response.DGApplicationID = this.state.DGApplicationID;\r\n response.DGFormID = this.state.DGFormID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: false,\r\n removealldisabled: true,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove this DG Form Record?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this DG Form?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/updateBursary`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/DGApplicationForms2022/removeBursary\";\r\n let fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/DGApplicationForms2022/removeAllBursary\";\r\n fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/DGForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n DGID: this.props.location.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID\r\n }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetDGFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/DGApplication/GetFindHeader?DGApplicationID=\" + this.state.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n DGStatus: response.Status,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetDGFormPermissionCheck() {\r\n let url = \"api/sims/DGApplication/GetDGFormPermissionCheck?DGApplicationID=\" + this.state.DGApplicationID + \"&DGFormsID=\" + this.state.DGFormID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.DGFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Bursary);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\nimport ProviderSearch from '../../Controls/ProviderSearch';\r\nimport QualificationSearch from '../../Controls/QualificationsSearch';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const LearnershipForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n  \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"QualificationID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../Style.css'\r\nimport { LearnershipForm } from './LearnershipForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Learnership', numeric: false, disablePadding: true, label: 'Learnership', widthRatio: .040 },\r\n { id: 'Qualification', numeric: false, disablePadding: true, label: 'Qualification', widthRatio: .040 },\r\n { id: 'OFO Code', numeric: false, disablePadding: true, label: 'OFOCode', widthRatio: .040 },\r\n { id: 'TrainingProvider', numeric: false, disablePadding: true, label: 'Training Provider', widthRatio: .040 },\r\n { id: 'AccreditationNumber', numeric: false, disablePadding: true, label: 'Accreditation Number', widthRatio: .040 },\r\n { id: 'AccreditationBody', numeric: false, disablePadding: true, label: 'Accreditation Body', widthRatio: .040 },\r\n { id: 'NoOfLearners', numeric: false, disablePadding: true, label: 'Number of Learners', widthRatio: .040 },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date', widthRatio: .040 },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date', widthRatio: .040 },\r\n { id: 'NameOfMentor', numeric: false, disablePadding: true, label: 'Name of Mentor', widthRatio: .040 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .040 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .040 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .040 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .040 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .040 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .040 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .040 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .040 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .040 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .040 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .040 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .040 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .040 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .040 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .040 }\r\n\r\n];\r\n\r\nclass Learnership extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n DGApplicationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n DGFormID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormID)) ? this.props.location.state.DGFormID : null,\r\n DGFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormName)) ? this.props.location.state.DGFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"DGFormID\", Value: this.props.location.state.DGFormID }],\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/InsertLearnershipEU`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) !=\r\n parseInt(formValue.NoOfLearners)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of males plus females does not equal the total number of learners.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/DGApplicationForms2022/GetLearnershipEUFind?DGLearnershipEUID=\" + this.state.RecordID + \"&DGFormID=\" + this.state.DGFormID, (response) => {\r\n response.DGApplicationID = this.state.DGApplicationID;\r\n response.DGFormID = this.state.DGFormID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove this DG Form Record?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this DG Form?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/updateLearnershipEU`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/DGApplicationForms2022/removeLearnershipEU\";\r\n let fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}&DGLearnershipEUID=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/DGApplicationForms2022/removeAllLearnershipEU\";\r\n fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/dgForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n DGID: this.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID\r\n }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/dgapplication/GetFindHeader?DGApplicationID=\" + this.state.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/dgapplication/GetDGFormPermissionCheck?DGApplicationID=\" + this.state.DGApplicationID + \"&DGFormsID=\" + this.state.DGFormID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0)\r\n {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\")\r\n {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n \r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.DGFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n {this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n /> \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Learnership);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\nimport QualificationSearch from '../../Controls/QualificationsSearch';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nexport const CandidacyForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"QualificationID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n  \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../Style.css'\r\nimport { CandidacyForm } from './CandidacyForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Qualification', numeric: false, disablePadding: true, label: 'Qualification', widthRatio: .08 },\r\n { id: 'Duration', numeric: false, disablePadding: true, label: 'Duration', widthRatio: .041 },\r\n { id: 'NoOfGraduates', numeric: false, disablePadding: true, label: 'Number Of Graduates', widthRatio: .046 },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date', widthRatio: .067 },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date', widthRatio: .067 },\r\n { id: 'EmploymentAssistance', numeric: false, disablePadding: true, label: 'Numbers to assist to find employment', widthRatio: .044 },\r\n { id: 'ProfessionalBody', numeric: false, disablePadding: true, label: 'Name of Professional Body', widthRatio: .05 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .038 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .038 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .041 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .043 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .043 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .043 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .040 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .040 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .041 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .039 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .039 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .041 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .039 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .039 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .041 }\r\n\r\n];\r\n\r\nclass Candidacy extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n DGApplicationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n DGFormID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormID)) ? this.props.location.state.DGFormID : null,\r\n DGFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormName)) ? this.props.location.state.DGFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n open: null,\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"DGFormID\", Value: this.props.location.state.DGFormID }],\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n NoOfGraduates: 0,\r\n EmploymentAssistance: 0,\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/insertCandidacy`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.NoOfGraduates) === 0) {\r\n ErrorMessage = \"Number of Graduates: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/DGApplicationForms2022/GetCandidacyFind?DGCandidacyID=\" + this.state.RecordID + \"&DGFormID=\" + this.state.DGFormID, (response) => {\r\n response.DGApplicationID = this.state.DGApplicationID;\r\n response.DGFormID = this.state.DGFormID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: false,\r\n removealldisabled: true,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove this DG Form Record?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this DG Form?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/updateCandidacy`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/DGApplicationForms2022/removeCandidacy\";\r\n let fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/DGApplicationForms2022/removeAllCandidacy\";\r\n fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/DGForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n DGID: this.props.location.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID\r\n }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetDGFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/DGApplication/GetFindHeader?DGApplicationID=\" + this.state.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n DGStatus: response.Status,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetDGFormPermissionCheck() {\r\n let url = \"api/sims/DGApplication/GetDGFormPermissionCheck?DGApplicationID=\" + this.state.DGApplicationID + \"&DGFormsID=\" + this.state.DGFormID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.DGFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Candidacy);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\nimport QualificationSearch from '../../Controls/QualificationsSearch';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nexport const TVETForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"QualificationID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n  \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../Style.css'\r\nimport { TVETForm } from './TVETForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Qualification', numeric: false, disablePadding: true, label: 'Qualification', widthRatio: .07 },\r\n { id: 'NoOfLearnersEmployed', numeric: false, disablePadding: true, label: 'Number Of Learners', widthRatio: .041 },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date', widthRatio: .041 },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date', widthRatio: .041 },\r\n { id: 'EmploymentAssistance', numeric: false, disablePadding: true, label: 'Numbers to assist', widthRatio: .038 },\r\n { id: 'WorkplaceLocation', numeric: false, disablePadding: true, label: 'Workplace Location', widthRatio: .041 },\r\n { id: 'WorkplaceExposureTime', numeric: false, disablePadding: true, label: 'Workplace Exposure Time', widthRatio: .041 },\r\n { id: 'Mentor', numeric: false, disablePadding: true, label: 'Mentor', widthRatio: .041 },\r\n { id: 'Employer', numeric: false, disablePadding: true, label: 'Employer', widthRatio: .041 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .038 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .038 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .041 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .043 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .043 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .043 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .040 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .040 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .041 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .039 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .039 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .041 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .039 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .039 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .041 }\r\n\r\n \r\n\r\n];\r\n\r\nclass TVET extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n DGApplicationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n DGFormID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormID)) ? this.props.location.state.DGFormID : null,\r\n DGFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormName)) ? this.props.location.state.DGFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n open: null,\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"DGFormID\", Value: this.props.location.state.DGFormID }],\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n NoOfLearnersEmployed: 0,\r\n EmploymentAssistance: 0,\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/insertTVET`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.NoOfLearnersEmployed) === 0) {\r\n ErrorMessage = \"Number of Learners: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/DGApplicationForms2022/GetTVETFind?DGTVETID=\" + this.state.RecordID + \"&DGFormID=\" + this.state.DGFormID, (response) => {\r\n response.DGApplicationID = this.state.DGApplicationID;\r\n response.DGFormID = this.state.DGFormID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: false,\r\n removealldisabled: true,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove this DG Form Record?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this DG Form?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/updateTVET`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/DGApplicationForms2022/removeTVET\";\r\n let fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/DGApplicationForms2022/removeAllTVET\";\r\n fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/DGForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n DGID: this.props.location.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID\r\n }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetDGFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/DGApplication/GetFindHeader?DGApplicationID=\" + this.state.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n DGStatus: response.Status,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetDGFormPermissionCheck() {\r\n let url = \"api/sims/DGApplication/GetDGFormPermissionCheck?DGApplicationID=\" + this.state.DGApplicationID + \"&DGFormsID=\" + this.state.DGFormID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.DGFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(TVET);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function LearnershipSearch(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Learnership Code\r\n \r\n props.model.LearnershipCode = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Learnership Title\r\n \r\n props.model.LearnershipTitle = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../../View.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport LearnershipSearchForm from './LearnershipSearchForm';\r\nimport { ViewContainer } from \"../../../View.jsx\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"LearnershipCode\", numeric: false, disablePadding: true, label: \"Learnership Code\" },\r\n { id: \"LearnershipTitle\", numeric: false, disablePadding: true, label: \"Learnership Title\" }\r\n]\r\n\r\n\r\nclass LearnershipSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters =\r\n [\r\n { Name: \"LearnershipCode\", Value: \"\" },\r\n { Name: \"LearnershipTitle\", Value: \"\" }\r\n ];\r\n\r\n\r\n let model =\r\n {\r\n\r\n LearnershipCode: \"\",\r\n LearnershipTitle: \"\"\r\n\r\n }\r\n\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedLShip: null,\r\n linkDialogOpen: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(LearnershipSearch)\r\n);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\nimport LearnershipSearch from '../../Controls/LearnershipSearch';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const LearnershipRPLForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"LearnershipID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../Style.css'\r\nimport { LearnershipRPLForm } from './LearnershipRPLForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'LearnershipTitle', numeric: false, disablePadding: true, label: 'Learnership Title', widthRatio: .045 },\r\n { id: 'LearnershipCode', numeric: false, disablePadding: true, label: 'Learnership Code', widthRatio: .045 },\r\n { id: 'OFOCode', numeric: false, disablePadding: true, label: 'OFO Code', widthRatio: .030 },\r\n { id: 'TrainingProvider', numeric: false, disablePadding: true, label: 'Training Provider', widthRatio: .040 },\r\n { id: 'AccreditationNumber', numeric: false, disablePadding: true, label: 'Accreditation Number', widthRatio: .040 },\r\n { id: 'AccreditationBody', numeric: false, disablePadding: true, label: 'Accreditation Body', widthRatio: .040 },\r\n { id: 'NoOfLearnersEmployed', numeric: false, disablePadding: true, label: 'Number of Employed Learners', widthRatio: .040 },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date', widthRatio: .040 },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date', widthRatio: .040 },\r\n { id: 'NameOfMentor', numeric: false, disablePadding: true, label: 'Name of Mentor', widthRatio: .040 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .040 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .040 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .040 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .040 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .040 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .040 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .040 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .040 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .040 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .040 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .040 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .040 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .040 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .040 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .040 }\r\n\r\n];\r\n\r\nclass LearnershipRPL extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n DGApplicationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n DGFormID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormID)) ? this.props.location.state.DGFormID : null,\r\n DGFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormName)) ? this.props.location.state.DGFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"DGFormID\", Value: this.props.location.state.DGFormID }],\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/InsertLearnershipRPL`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) !=\r\n parseInt(formValue.NoOfLearnersEmployed)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of males plus females does not equal the total number of learners.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/DGApplicationForms2022/GetLearnershipRPLFind?DGLearnershipRPLID=\" + this.state.RecordID + \"&DGFormID=\" + this.state.DGFormID, (response) => {\r\n response.DGApplicationID = this.state.DGApplicationID;\r\n response.DGFormID = this.state.DGFormID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove this DG Form Record?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this DG Form?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/updateLearnershipRPL`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/DGApplicationForms2022/removeLearnershipRPL\";\r\n let fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}&DGLearnershipRPLID=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/DGApplicationForms2022/removeAllLearnershipRPL\";\r\n fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/dgForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n DGID: this.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID\r\n }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/dgapplication/GetFindHeader?DGApplicationID=\" + this.state.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/dgapplication/GetDGFormPermissionCheck?DGApplicationID=\" + this.state.DGApplicationID + \"&DGFormsID=\" + this.state.DGFormID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0)\r\n {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\")\r\n {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n \r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.DGFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n {this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n /> \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(LearnershipRPL);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\nimport QualificationSearch from '../../Controls/QualificationsSearch';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nexport const InternshipForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"QualificationID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../Style.css'\r\nimport { InternshipForm } from './InternshipForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Qualification', numeric: false, disablePadding: true, label: 'Qualification', widthRatio: .07 },\r\n { id: 'Duration', numeric: false, disablePadding: true, label: 'Duration', widthRatio: .038 },\r\n { id: 'NoOfLearnersEmployed', numeric: false, disablePadding: true, label: 'Number Of Learners', widthRatio: .038 },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date', widthRatio: .038 },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date', widthRatio: .038 },\r\n { id: 'EmploymentAssistance', numeric: false, disablePadding: true, label: 'Numbers to assist', widthRatio: .038 },\r\n { id: 'WorkplaceLocation', numeric: false, disablePadding: true, label: 'Workplace Location', widthRatio: .038 },\r\n { id: 'WorkplaceExposureTime', numeric: false, disablePadding: true, label: 'Workplace Exposure Time', widthRatio: .038 },\r\n { id: 'Mentor', numeric: false, disablePadding: true, label: 'Mentor', widthRatio: .038 },\r\n { id: 'Employer', numeric: false, disablePadding: true, label: 'Employer', widthRatio: .038 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .038 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .038 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .038 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .038 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .038 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .038 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .038 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .038 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .038 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .038 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .038 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .038 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .038 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .038 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .038 }\r\n\r\n\r\n\r\n];\r\n\r\nclass Internship extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n DGApplicationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n DGFormID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormID)) ? this.props.location.state.DGFormID : null,\r\n DGFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormName)) ? this.props.location.state.DGFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n open: null,\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"DGFormID\", Value: this.props.location.state.DGFormID }],\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n NoOfLearnersEmployed: 0,\r\n EmploymentAssistance: 0,\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/insertInternship`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.NoOfLearnersEmployed) === 0) {\r\n ErrorMessage = \"Number of Learners: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/DGApplicationForms2022/GetInternshipFind?DGInternshipID=\" + this.state.RecordID + \"&DGFormID=\" + this.state.DGFormID, (response) => {\r\n response.DGApplicationID = this.state.DGApplicationID;\r\n response.DGFormID = this.state.DGFormID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: false,\r\n removealldisabled: true,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove this DG Form Record?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this DG Form?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/updateInternship`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/DGApplicationForms2022/removeInternship\";\r\n let fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/DGApplicationForms2022/removeAllInternship\";\r\n fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/DGForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n DGID: this.props.location.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID\r\n }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetDGFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/DGApplication/GetFindHeader?DGApplicationID=\" + this.state.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n DGStatus: response.Status,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetDGFormPermissionCheck() {\r\n let url = \"api/sims/DGApplication/GetDGFormPermissionCheck?DGApplicationID=\" + this.state.DGApplicationID + \"&DGFormsID=\" + this.state.DGFormID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.DGFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Internship);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function SkillsProgrammeSearch(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Skills Programme Code\r\n \r\n props.model.SkillsProgrammeCode = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n Skills Programme Title\r\n \r\n props.model.SkillsProgrammeTitle = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../../View.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport SkillsProgrammeSearchForm from './SkillsProgrammeSearchForm';\r\nimport { ViewContainer } from \"../../../View.jsx\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"SkillsProgrammeCode\", numeric: false, disablePadding: true, label: \"Skills Programme Code\" },\r\n { id: \"SkillsProgrammeTitle\", numeric: false, disablePadding: true, label: \"Skills Programme Title\" }\r\n]\r\n\r\n\r\nclass SkillsProgrammeSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters =\r\n [\r\n { Name: \"SkillsProgrammeCode\", Value: \"\" },\r\n { Name: \"SkillsProgrammeTitle\", Value: \"\" }\r\n ];\r\n\r\n\r\n let model =\r\n {\r\n\r\n SkillsProgrammeCode: \"\",\r\n SkillsProgrammeTitle: \"\"\r\n\r\n }\r\n\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedSP: null,\r\n linkDialogOpen: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(SkillsProgrammeSearch)\r\n);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\nimport SkillsProgrammeSearch from '../../Controls/SkillsProgrammeSearch';\r\nimport ProviderSearch from '../../Controls/ProviderSearch';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nconst useStyles = theme => ({\r\n table: {\r\n minWidth: 700,\r\n },\r\n});\r\n\r\nfunction rand() {\r\n return Math.round(Math.random() * 20) - 10;\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 5;\r\n const left = 5;\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`\r\n };\r\n}\r\n\r\nexport const SkillsProgrammeForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"SkillsProgrammeID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n  \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"ProviderID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../Style.css'\r\nimport { SkillsProgrammeForm } from './SkillsProgrammeForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'SkillsProgrammeTitle', numeric: false, disablePadding: true, label: 'Skills Programme Title', widthRatio: .045 },\r\n { id: 'SkillsProgrammeCode', numeric: false, disablePadding: true, label: 'Skills Programme Code', widthRatio: .045 },\r\n { id: 'TotalCredits', numeric: false, disablePadding: true, label: 'Total Credits', widthRatio: .030 },\r\n { id: 'OFOCode', numeric: false, disablePadding: true, label: 'OFO Code', widthRatio: .040 },\r\n { id: 'AccreditationNumber', numeric: false, disablePadding: true, label: 'Accreditation Number', widthRatio: .040 },\r\n { id: 'AccreditationBody', numeric: false, disablePadding: true, label: 'Accreditation Body', widthRatio: .040 },\r\n { id: 'NoOfLearnersEmployed', numeric: false, disablePadding: true, label: 'Number of Employed Learners', widthRatio: .040 },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date', widthRatio: .040 },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date', widthRatio: .040 },\r\n { id: 'Mentor', numeric: false, disablePadding: true, label: 'Mentor', widthRatio: .040 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .040 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .040 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .040 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .040 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .040 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .040 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .040 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .040 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .040 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .040 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .040 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .040 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .040 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .040 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .040 }\r\n\r\n];\r\n\r\nclass SkillsProgramme extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n DGApplicationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n DGFormID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormID)) ? this.props.location.state.DGFormID : null,\r\n DGFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormName)) ? this.props.location.state.DGFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n OFOCode: null,\r\n open: null,\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"DGFormID\", Value: this.props.location.state.DGFormID }],\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/InsertSkillsProgramme`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) !=\r\n parseInt(formValue.NoOfLearnersEmployed)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of males plus females does not equal the total number of learners.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/DGApplicationForms2022/GetSkillsProgrammeFind?DGSkillsProgrammeID=\" + this.state.RecordID + \"&DGFormID=\" + this.state.DGFormID, (response) => {\r\n response.DGApplicationID = this.state.DGApplicationID;\r\n response.DGFormID = this.state.DGFormID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove this DG Form Record?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this DG Form?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: false,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/updateSkillsProgramme`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/DGApplicationForms2022/removeSkillsProgramme\";\r\n let fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}&DGLearnershipRPLID=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/DGApplicationForms2022/removeAllSkillsProgramme\";\r\n fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/dgForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n DGID: this.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID\r\n }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n console.log(values);\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetWSPATRFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/dgapplication/GetFindHeader?DGApplicationID=\" + this.state.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n WSPStatus: response.WSPStatus,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetWSPATRFormPermissionCheck() {\r\n let url = \"api/sims/dgapplication/GetDGFormPermissionCheck?DGApplicationID=\" + this.state.DGApplicationID + \"&DGFormsID=\" + this.state.DGFormID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0)\r\n {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\")\r\n {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n \r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.DGFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n {this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n /> \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(SkillsProgramme);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function OFOSearchForm(props) {\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n OFO Code\r\n\t\t\t\t\t\t\t\t\r\n props.model.OFOCode = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n \r\n \r\n \r\n OFODescription\r\n\t\t\t\t\t\t\t\t\r\n props.model.OFODescription = ev.target.value}\r\n labelWidth={labelWidth}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../../../View.css\";\r\nimport SearchView from \"../../../widgets/SearchView\";\r\nimport OFOSearchForm from './OFOSearchForm';\r\nimport { ViewContainer } from \"../../../View.jsx\";\r\nimport ViewUtils from '../../../ViewUtils';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst headCells = [\r\n { id: \"OFOCode\", numeric: false, disablePadding: true, label: \"OFO Code\" },\r\n { id: \"OFODescription\", numeric: false, disablePadding: true, label: \"OFO Description\" }\r\n]\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'info', label: '', tooltip: 'Select OFO Occupation from the table and click save to add', icon: 'InfoIcon' }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\nclass OFOSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.searchParameters = !utils.isNull(this.props.DGApplicationID) ?\r\n //For search of providers that can be linked to a particular entity\r\n [\r\n { Name: \"DGApplicationID\", Value: this.props.DGApplicationID },\r\n { Name: \"OFOCode\", Value: \"\" },\r\n { Name: \"OFODescription\", Value: \"\" }\r\n ]\r\n :\r\n //For search on the provider search screen\r\n [\r\n { Name: \"OFOCode\", Value: \"\" },\r\n { Name: \"OFODescription\", Value: \"\" }\r\n ]\r\n\r\n let model = !utils.isNull(this.props.DGApplicationID) ?\r\n {\r\n OFOCode: \"\",\r\n OFODescription: \"\",\r\n DGApplicationID: this.props.DGApplicationID\r\n }\r\n :\r\n {\r\n OFOCode: \"\",\r\n OFODescription: \"\"\r\n }\r\n\r\n this.state = {\r\n model: model,\r\n keyUpSwitch: false,\r\n selectedOFO: null,\r\n linkDialogOpen: false\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n { this.onkeyup(e) }} model={this.state.model} />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(\r\n connect()(OFOSearch)\r\n);","import React from 'react';\r\nimport { CustomTextField } from '../../../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../../../widgets/Forms';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport TabPanel from '../../../../widgets/TabPanel';\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { LookupField } from '../../../../widgets/LookupField';\r\nimport Table from '@material-ui/core/Table';\r\nimport { CustomDatePicker } from '../../../../widgets/CustomDatePicker';\r\nimport QualificationSearch from '../../Controls/QualificationsSearch';\r\nimport { SelectItem } from '../../../../widgets/SelectItem';\r\nimport OFOSearch from '../../Controls/OFOSearch';\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst styles = makeStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n minWidth: 50,\r\n textAlign: 'center',\r\n },\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 200\r\n },\r\n inputForm: {\r\n minWidth: '200px',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n inputCenter: {\r\n textAlign: 'center'\r\n },\r\n paper: {\r\n position: \"absolute\",\r\n width: 600,\r\n height: 450,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(0.1)\r\n }\r\n}));\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: '#01579B',\r\n color: theme.palette.common.white,\r\n border: '1px solid white',\r\n height: 6\r\n },\r\n body: {\r\n fontSize: 11,\r\n },\r\n\r\n}))(TableCell);\r\n\r\nconst StyledTableTextCell = withStyles((theme) => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n // width: 50,\r\n textAlign: 'center'\r\n },\r\n },\r\n body: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n }\r\n\r\n}))(TableCell);\r\n\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n height: theme.palette.action.main\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nexport const WorkExperienceForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n form.setLookupSelection(\"QualificationID\", value)\r\n }} autoFetchData={false} selection={props.selection} />\r\n \r\n \r\n \r\n {\r\n form.setLookupSelection(\"OFOOccupationID\", value)\r\n }} autoFetchData={false} selection={props.selection} DGApplicationID={props.DGApplicationID} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n African\r\n Coloured\r\n Indian/Asian\r\n White\r\n \r\n\r\n \r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n\r\n M\r\n F\r\n D\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../../../widgets/Toolbar';\r\nimport \"./../../../../Grid.css\";\r\nimport \"./../../../../Form.css\";\r\nimport \"./../../../../App.css\";\r\nimport '../Style.css'\r\nimport { WorkExperienceForm } from './WorkExperienceForm';\r\nimport ViewUtils from '../../../../ViewUtils';\r\nimport AlertItem from \"../../../../widgets/AlertItem\";\r\nimport Button from '@material-ui/core/Button';\r\nimport EnhancedTable from '../../../../widgets/ResponsiveTable';\r\nimport { ViewContainer } from \"./../../../../View.jsx\";\r\nimport Prompt from '../../../../widgets/Prompt';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'Back to DG Forms', tooltip: '' }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nconst formRef = React.createRef();\r\n\r\nconst headCells = [\r\n { id: 'Qualification', numeric: false, disablePadding: true, label: 'Qualification', widthRatio: .07 },\r\n { id: 'OFOCode', numeric: false, disablePadding: true, label: 'OFO', widthRatio: .055 },\r\n { id: 'ScarceSkills', numeric: false, disablePadding: true, label: 'Scarce Skills', widthRatio: .040 },\r\n { id: 'Duration', numeric: false, disablePadding: true, label: 'Duration', widthRatio: .045 },\r\n { id: 'NoOfLearnersEmployed', numeric: false, disablePadding: true, label: 'Number Of Learners', widthRatio: .038 },\r\n { id: 'StartDate', numeric: false, disablePadding: true, label: 'Start Date', widthRatio: .040 },\r\n { id: 'EndDate', numeric: false, disablePadding: true, label: 'End Date', widthRatio: .040 },\r\n { id: 'EmploymentAssistance', numeric: false, disablePadding: true, label: 'Numbers to assist', widthRatio: .038 },\r\n //{ id: 'WorkplaceLocation', numeric: false, disablePadding: true, label: 'Workplace Location', widthRatio: .038 },\r\n //{ id: 'WorkplaceExposureTime', numeric: false, disablePadding: true, label: 'Workplace Exposure Time', widthRatio: .038 },\r\n { id: 'Mentor', numeric: false, disablePadding: true, label: 'Mentor', widthRatio: .038 },\r\n { id: 'Employer', numeric: false, disablePadding: true, label: 'Employer', widthRatio: .038 },\r\n { id: 'AfricanMale', numeric: false, disablePadding: true, label: 'African Male', widthRatio: .035 },\r\n { id: 'AfricanFemale', numeric: false, disablePadding: true, label: 'African Female', widthRatio: .038 },\r\n { id: 'AfricanDisabled', numeric: false, disablePadding: true, label: 'African Disabled', widthRatio: .038 },\r\n { id: 'ColouredMale', numeric: false, disablePadding: true, label: 'Coloured Male', widthRatio: .038 },\r\n { id: 'ColouredFemale', numeric: false, disablePadding: true, label: 'Coloured Female', widthRatio: .038 },\r\n { id: 'ColouredDisabled', numeric: false, disablePadding: true, label: 'Coloured Disabled', widthRatio: .038 },\r\n { id: 'IndianMale', numeric: false, disablePadding: true, label: 'Indian Male', widthRatio: .035 },\r\n { id: 'IndianFemale', numeric: false, disablePadding: true, label: 'Indian Female', widthRatio: .038 },\r\n { id: 'IndianDisabled', numeric: false, disablePadding: true, label: 'Indian Disabled', widthRatio: .038 },\r\n { id: 'WhiteMale', numeric: false, disablePadding: true, label: 'White Male', widthRatio: .035 },\r\n { id: 'WhiteFemale', numeric: false, disablePadding: true, label: 'White Female', widthRatio: .038 },\r\n { id: 'WhiteDisabled', numeric: false, disablePadding: true, label: 'White Disabled', widthRatio: .038 },\r\n { id: 'TotalMale', numeric: false, disablePadding: true, label: 'Total Male', widthRatio: .035 },\r\n { id: 'TotalFemale', numeric: false, disablePadding: true, label: 'Total Female', widthRatio: .038 },\r\n { id: 'TotalDisabled', numeric: false, disablePadding: true, label: 'Total Disabled', widthRatio: .038 }\r\n\r\n\r\n\r\n];\r\n\r\nclass WorkExperience extends Component {\r\n\r\n state = {\r\n organisationDetails: {\r\n LegalName: \"\",\r\n },\r\n message: \"\",\r\n messageStyle: \"\",\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n organisationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.organisationID)) ? this.props.location.state.organisationID : null,\r\n DGApplicationID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGApplicationID)) ? this.props.location.state.DGApplicationID : null,\r\n DGFormID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormID)) ? this.props.location.state.DGFormID : null,\r\n DGFormName: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.DGFormName)) ? this.props.location.state.DGFormName : null,\r\n RecordID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.RecordID)) ? this.props.location.state.RecordID : null,\r\n FinancialYearID: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.FinancialYearID)) ? this.props.location.state.FinancialYearID : null,\r\n open: null,\r\n searchParameters: [{ Name: \"DGApplicationID\", Value: this.props.location.state.DGApplicationID }, { Name: \"DGFormID\", Value: this.props.location.state.DGFormID }],\r\n adddisabled: false,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: false,\r\n promptOpen: false,\r\n promptTitle: \"\",\r\n promptContent: \"\",\r\n removeAll: false,\r\n formPermission: \"Enabled\",\r\n addDefaultObject: {\r\n NoOfLearnersEmployed: 0,\r\n EmploymentAssistance: 0,\r\n AfricanMale: 0,\r\n AfricanFemale: 0,\r\n AfricanDisabled: 0,\r\n ColouredMale: 0,\r\n ColouredFemale: 0,\r\n ColouredDisabled: 0,\r\n IndianMale: 0,\r\n IndianFemale: 0,\r\n IndianDisabled: 0,\r\n WhiteMale: 0,\r\n WhiteFemale: 0,\r\n WhiteDisabled: 0\r\n }\r\n };\r\n\r\n add = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/insertWorkExperience`;\r\n utils.saveForm(this, formRef, url, (response) => {\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n this.successCallback(response);\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n CheckRaceGenderRules = (formValue) => {\r\n let RaceGender = true;\r\n let ErrorMessage = \"\";\r\n\r\n if (parseInt(formValue.NoOfLearnersEmployed) === 0) {\r\n ErrorMessage = \"Number of Learners: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale) +\r\n parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale) +\r\n parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale) +\r\n parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale) === 0) {\r\n ErrorMessage = \"Race and Gender Breakdown: Cannot be zero.\";\r\n RaceGender = false;\r\n }\r\n if ((parseInt(formValue.AfricanMale) < 0) || (parseInt(formValue.AfricanFemale) < 0) || (parseInt(formValue.AfricanDisabled) < 0) ||\r\n (parseInt(formValue.ColouredMale) < 0) || (parseInt(formValue.ColouredFemale) < 0) || (parseInt(formValue.ColouredDisabled) < 0) ||\r\n (parseInt(formValue.IndianMale) < 0) || (parseInt(formValue.IndianFemale) < 0) || (parseInt(formValue.IndianDisabled) < 0) ||\r\n (parseInt(formValue.WhiteMale) < 0) || (parseInt(formValue.WhiteFemale) < 0) || (parseInt(formValue.WhiteDisabled) < 0)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Negative numbers are not allowed.\";\r\n RaceGender = false;\r\n }\r\n\r\n if ((parseInt(formValue.AfricanMale) + parseInt(formValue.AfricanFemale)) < parseInt(formValue.AfricanDisabled) ||\r\n (parseInt(formValue.ColouredMale) + parseInt(formValue.ColouredFemale)) < parseInt(formValue.ColouredDisabled) ||\r\n (parseInt(formValue.IndianMale) + parseInt(formValue.IndianFemale)) < parseInt(formValue.IndianDisabled) ||\r\n (parseInt(formValue.WhiteMale) + parseInt(formValue.WhiteFemale)) < parseInt(formValue.WhiteDisabled)) {\r\n ErrorMessage = \"Race and Gender Breakdown: Total count of disabled records may not be greater than male plus female.\";\r\n RaceGender = false;\r\n }\r\n\r\n if (!RaceGender) { this.setState({ message: ErrorMessage, messageStyle: \"warning\" }) }\r\n\r\n return RaceGender;\r\n }\r\n\r\n edit = () => {\r\n\r\n utils.invokeUrl(\"api/sims/DGApplicationForms2022/GetWorkExperienceFind?DGWorkExperienceID=\" + this.state.RecordID + \"&DGFormID=\" + this.state.DGFormID, (response) => {\r\n response.DGApplicationID = this.state.DGApplicationID;\r\n response.DGFormID = this.state.DGFormID;\r\n this.setState({\r\n RecordID: JSON.parse(JSON.stringify(this.state.RecordID)),\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: false,\r\n canceldisabled: false,\r\n EditFormData: response,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n\r\n }, this.error);\r\n }\r\n\r\n remove = () => {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: false,\r\n removealldisabled: true,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n promptOpen: true,\r\n removeAll: false,\r\n promptTitle: \"Remove DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove this DG Form Record?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n removeAll = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: true,\r\n removeAll: true,\r\n promptTitle: \"Remove ALL DG Form Record\",\r\n promptContent: \"Are you sure you want to Remove ALL records from this DG Form?\",\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n cancel = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n\r\n update = () => {\r\n\r\n let formValue = formRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const RaceGender = this.CheckRaceGenderRules(formValue);\r\n\r\n if (RaceGender) {\r\n\r\n formValue.DGApplicationID = this.state.DGApplicationID;\r\n formValue.DGFormID = this.state.DGFormID;\r\n formValue.ID = this.state.RecordID;\r\n\r\n const url = `api/sims/DGApplicationForms2022/updateWorkExperience`;\r\n utils.updateForm(this, formRef, url, (response) => {\r\n //this.setState({ message: \"Letter updated successfully\", messageStyle: \"SUCCESS\" });\r\n\r\n utils.showMessage(this, response.Message, response.MessageType);\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.successCallback(response);\r\n } else {\r\n this.setState({\r\n message: response.Message,\r\n messageStyle: \"WARNING\"\r\n })\r\n }\r\n }, this.error);\r\n }\r\n }\r\n }\r\n\r\n removeRecord() {\r\n this.setState({ promptOpen: false })\r\n\r\n let url = \"api/sims/DGApplicationForms2022/removeWorkExperience\";\r\n let fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}&Id=${this.state.RecordID}`;\r\n\r\n if (this.state.removeAll === true) {\r\n url = \"api/sims/DGApplicationForms2022/removeAllWorkExperience\";\r\n fullUrl = `${url}?DGApplicationID=${this.state.DGApplicationID}&DGFormID=${this.state.DGFormID}`;\r\n }\r\n\r\n utils.invokeUrlDelete(fullUrl, this.successfulRemoveCallback, this.unsuccessfulRemoveCallback);\r\n }\r\n\r\n successfulRemoveCallback = (response) => {\r\n\r\n if (!utils.isNull(response.EntityId) && response.EntityId === 0) {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null,\r\n RecordID: null, message: response.Message, messageStyle: response.MessageType.toLowerCase()\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n\r\n unsuccessfulRemoveCallback = (response) => {\r\n if (!utils.isNull(response.Message) && response.Message !== \"\") {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType.toLowerCase() })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n EditFormData: null,\r\n clearSelectedRow: true,\r\n RecordID: null,\r\n promptOpen: false,\r\n bulkImportOpen: false\r\n })\r\n }\r\n\r\n successCallback(response) {\r\n if (response.MessageType === \"SUCCESS\") {\r\n this.setState({\r\n addDefaultObject: JSON.parse(JSON.stringify(this.state.addDefaultObject)),\r\n message: response.Message, messageStyle: response.MessageType,\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n EditFormData: null\r\n });\r\n //Force a refresh\r\n this.setState({ searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)) })\r\n }\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n\r\n handleFormValueChange(values) {\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleFormValueChangeAdd(values) {\r\n\r\n this.setState({\r\n organisationDetails: {\r\n values\r\n }\r\n });\r\n }\r\n\r\n handleSelectionChange = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n\r\n this.setState({\r\n RecordID: selection[0].Id, Message: \"\",\r\n adddisabled: true,\r\n removedisabled: false,\r\n editdisabled: false,\r\n updatedisabled: true,\r\n canceldisabled: false,\r\n clearSelectedRow: false,\r\n message: \"\",\r\n messageStyle: \"\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n Message: \"\",\r\n adddisabled: false,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n clearSelectedRow: true,\r\n bulkImportOpen: false\r\n });\r\n }\r\n\r\n if (this.state.formPermission !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true\r\n })\r\n }\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"save\" === buttonId) {\r\n this.save();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.props.history.push({\r\n pathname: '/DGForms',\r\n state: {\r\n organisationID: this.state.organisationID,\r\n organisationName: this.state.OrganisationName,\r\n sdlnumber: this.state.SDLNumber,\r\n DGID: this.props.location.state.DGApplicationID,\r\n FinancialYearID: this.state.FinancialYearID\r\n }\r\n });\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"ID\"]) && values[\"ID\"] !== 0) {\r\n this.setState({ id: values[\"ID\"] });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getFormHead()\r\n this.GetDGFormPermissionCheck()\r\n }\r\n\r\n getFormHead() {\r\n let url = \"api/sims/DGApplication/GetFindHeader?DGApplicationID=\" + this.state.DGApplicationID;\r\n utils.invokeUrl(url, (response) => {\r\n this.setState({\r\n FinancialYear: response.FinancialYear,\r\n OrganisationName: response.OrganisationName,\r\n DGStatus: response.Status,\r\n SDLNumber: response.SDLNumber\r\n })\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n GetDGFormPermissionCheck() {\r\n let url = \"api/sims/DGApplication/GetDGFormPermissionCheck?DGApplicationID=\" + this.state.DGApplicationID + \"&DGFormsID=\" + this.state.DGFormID;\r\n utils.invokeUrl(url, (response) => {\r\n if (response.Result !== \"Enabled\") {\r\n this.setState({\r\n adddisabled: true,\r\n removedisabled: true,\r\n removealldisabled: true,\r\n editdisabled: true,\r\n updatedisabled: true,\r\n canceldisabled: true,\r\n formPermission: response.Result\r\n })\r\n }\r\n\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onClearSelectedRow = () => {\r\n this.setState({ clearSelectedRow: false });\r\n }\r\n\r\n onDataArrive = (results) => {\r\n if (results.TotalNumberOfRows === 0) {\r\n this.setState({\r\n removealldisabled: true\r\n });\r\n }\r\n\r\n else if (results.TotalNumberOfRows > 0 && this.state.formPermission === \"Enabled\") {\r\n this.setState({\r\n removealldisabled: false\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n let CaptureFormEdit = this.handleFormValueChange(values)} dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n data={this.state.EditFormData} />;\r\n\r\n let CaptureFormAdd = this.handleFormValueChangeAdd(values)}\r\n data={this.state.addDefaultObject} />;\r\n\r\n if (this.state.EditFormData === null) {\r\n CaptureFormEdit = null;\r\n }\r\n else {\r\n CaptureFormAdd = null;\r\n }\r\n if (this.state.formPermission !== \"Enabled\") { CaptureFormAdd = null; CaptureFormEdit = null; }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.handleToolbarButtonClick(buttonId)} enabled={true} config={toolbarConfig} />\r\n \r\n {this.state.DGFormName}
\r\n {this.state.FinancialYear}\r\n
\r\n {this.state.OrganisationName} - {this.state.SDLNumber}   \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {CaptureFormAdd}\r\n {CaptureFormEdit}\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n {this.state.showReport ? { this.ReportDownload() }}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n download\r\n style={{ textDecoration: \"underline\" }}\r\n >Download Report : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { this.handleSelectionChange(selection) }}\r\n onDataArrive={(results) => { this.onDataArrive(results) }}\r\n makeRowBold={true}\r\n searchParameters={this.state.searchParameters} paged={true} clearSelectedRow={this.state.clearSelectedRow} onClearSelectedRow={this.onClearSelectedRow} />\r\n
\r\n
\r\n\r\n { this.removeRecord() }}\r\n closePrompt={this.closePrompt}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(WorkExperience);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { EntityForm } from '../../widgets/SearchForm';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n MuiSelectSelectMenu: {\r\n '& .MuiSelect-selectMenu': { paddingRight: \"150px !important\" }\r\n }\r\n}));\r\n\r\nexport default function HelpdeskRequestSearchForm(props) {\r\n const [labelWidth, setLabelWidth, tabValue] = React.useState(0);\r\n const labelRef = React.useRef(null);\r\n const classes = useStyles();\r\n\r\n React.useEffect(() => {\r\n if (labelRef.current !== null) {\r\n setLabelWidth(labelRef.current.offsetWidth);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DocumentUpload from \"../../widgets/DocumentUpload\";\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport const HelpdeskRequestAddForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [UploadFilename, setUploadFilename] = React.useState(\"\");\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setUploadFilename(data.name);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"../Helpdesk.css\";\r\nimport SearchView from \"../../widgets/SearchView\";\r\nimport FormDialog from \"../../etqa/FormDialog\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport HelpdeskSearchForm from './HelpdeskRequestSearchForm';\r\nimport { HelpdeskRequestAddForm } from \"./HelpdeskRequestAddForm\";\r\nimport ViewUtils from '../../ViewUtils';\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nconst utils = new ViewUtils();\r\n\r\nconst filterParameters = [\r\n\r\n]\r\nconst headCells = [\r\n { id: 'ReferenceNumber', numeric: false, disablePadding: true, label: 'Reference Number' },\r\n { id: 'Title', numeric: false, disablePadding: true, label: 'Title' },\r\n { id: 'RequestType', numeric: false, disablePadding: true, label: 'Request Type' },\r\n { id: 'Module', numeric: false, disablePadding: true, label: 'Module' },\r\n { id: 'Priority', numeric: false, disablePadding: true, label: 'Priority' },\r\n { id: 'Status', numeric: false, disablePadding: true, label: 'Status' },\r\n { id: 'DateCreated', numeric: false, disablePadding: true, label: 'Date Created' },\r\n { id: 'DateUpdated', numeric: false, disablePadding: true, label: 'Date Updated' },\r\n { id: 'UpdatedBy', numeric: false, disablePadding: true, label: 'Updated By' }\r\n\r\n];\r\n\r\n\r\n\r\nconst formRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\nconst addFormRef = React.createRef();\r\n\r\nclass HelpdeskRequestSearch extends Component {\r\n\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n model: {\r\n ReferenceNumber: \"\",\r\n RequestTypeID: \"\",\r\n StatusID: \"\",\r\n PriorityID: \"\"\r\n\r\n },\r\n keyUpSwitch: false,\r\n addDialogOpen: false,\r\n selectedRequest: null,\r\n Message: \"\",\r\n MessageStyle: \"\",\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'new', label: 'Add Request', tooltip: 'Add HelpDesk Request', icon: 'AddIcon', visible: this.props.menuPermissionItem.Add },\r\n { id: 'edit', label: 'Edit Request', tooltip: 'Edit HelpDesk Request', icon: 'EditIcon', disabled: true, visible: this.props.menuPermissionItem.Edit },\r\n { id: 'delete', label: 'Remove Request', tooltip: 'Remove HelpDesk Request record', icon: \"DeleteIcon\", disabled: true, visible: this.props.menuPermissionItem.Delete }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.searchParameters = [\r\n { Name: \"ReferenceNumber\", Value: \"\" },\r\n { Name: \"RequestTypeID\", Value: \"\" },\r\n { Name: \"StatusID\", Value: \"\" },\r\n { Name: \"PriorityID\", Value: \"\" }\r\n\r\n ]\r\n }\r\n\r\n\r\n handleToolbarButtonMenuClick = (menu) => {\r\n this.setState({ linkDialogOpen: true, selectedLinkType: menu });\r\n }\r\n\r\n handleToolbarButtonClick = (buttonId) => {\r\n if (\"new\" === buttonId) {\r\n this.setState({ addDialogOpen: true, Message: \"\",selectedRequest: null })\r\n }\r\n else if (\"edit\" === buttonId) {\r\n this.props.history.push({\r\n pathname: '/HelpdeskRequest',\r\n state: { selection: this.state.selectedRequest }\r\n })\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n this.setState({ model: values });\r\n }\r\n handleSelection = (selection) => {\r\n if (selection !== null && selection.length !== 0) {\r\n this.setState({ selectedRequest: selection[0].Id, Message: \"\" });\r\n } else {\r\n this.setState({ selectedRequest: null, Message: \"\" });\r\n }\r\n }\r\n\r\n onkeyup(e) {\r\n if (e.charCode == 13) {\r\n this.setState({ keyUpSwitch: !this.state.keyUpSwitch })\r\n }\r\n }\r\n\r\n postAddHandler = (cancel, save) => {\r\n if (save === true) {\r\n this.setState({\r\n searchParameters: JSON.parse(JSON.stringify(this.state.searchParameters)),\r\n addDialogOpen: false,\r\n selectedRequest: null,\r\n Message: \"Helpdesk Request Added Successfully\",\r\n MessageStyle: \"success\"\r\n });\r\n }\r\n else if (cancel === true) {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedRequest: null,\r\n Message: \"\"\r\n })\r\n }\r\n else {\r\n this.setState({\r\n addDialogOpen: false,\r\n selectedRequest: null,\r\n Message: \"A system error has occured, please try again later or contact your administrator\",\r\n MessageStyle: \"warning\"\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Helpdesk > Requests\"}\r\n

\r\n { this.handleSelection(selection) }}\r\n >\r\n { this.onkeyup(e) }} ref={formRef} id={typeof this.props.location.state !== 'undefined' ? this.props.location.state.selection : null}\r\n valueChangeHandler={(values) => this.handleFormValueChange(values)}\r\n />\r\n \r\n\r\n this.postAddHandler(cancel, save)}\r\n >\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(HelpdeskRequestSearch));\r\n","import React from 'react';\r\nimport \"./../../View.css\";\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"../Helpdesk.css\";\r\nimport EnhancedTable from '../../widgets/ResponsiveTable';\r\n\r\nexport default function HelpdeskComments(props, ref) {\r\n\r\n const headCells = \r\n [\r\n { id: 'Comment', numeric: false, disablePadding: true, label: 'Comment' },\r\n { id: 'CreatedBy', numeric: false, disablePadding: true, label: 'Created By' },\r\n { id: 'DateCreated', numeric: false, disablePadding: true, label: 'Date Created' },\r\n { id: 'DocumentName', numeric: false, disablePadding: true, label: 'Document Name', contentType: 'document' }\r\n ]\r\n return (\r\n { props.handleCell(rowid, columnid) }} searchParameters={[{ Name: \"ID\", Value: props.selection }]} paged={true}\r\n dataUrl={props.DataUrl} \r\n />\r\n );\r\n}\r\n","import React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabPanel from '../../widgets/TabPanel';\r\nimport { SelectItem } from '../../widgets/SelectItem';\r\nimport { CustomTextField } from '../../widgets/CustomTextField';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { EntityForm } from '../../widgets/Forms';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DocumentUpload from \"../../widgets/DocumentUpload\";\r\nimport HelpdeskComments from \"./HelpdeskComments\";\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nexport const HelpdeskRequestForm = React.forwardRef((props, ref) => {\r\n const [tabValue, setTabValue] = React.useState(0);\r\n const [UploadFilename, setUploadFilename] = React.useState(\"\");\r\n const [CommentURL, setCommentURL] = React.useState(null);\r\n\r\n const handleTabChange = (event, newValue) => {\r\n setTabValue(newValue);\r\n if (newValue == 1) {\r\n setCommentURL(\"api/sims/HelpDeskRequest/GetHelpDeskRequestComments\");\r\n }\r\n else {\r\n setCommentURL(null);\r\n }\r\n };\r\n\r\n const styles = makeStyles({\r\n TextArea: {\r\n '& .MuiOutlinedInput-inputMultiline': {\r\n height: \"200px !important\",\r\n width: \"600px !important\"\r\n }\r\n }\r\n })\r\n\r\n const onUploadHandler = (data) => {\r\n if (data) {\r\n setUploadFilename(data.name);\r\n }\r\n };\r\n\r\n const FileDownload = (rowid, headCell,DocumentType) => {\r\n \r\n if(DocumentType === \"Comment\")\r\n {\r\n \r\n if (headCell.contentType === \"document\") {\r\n utils.invokeUrl(\"api/sims/HelpDeskRequest/DownloadHelpDeskCommentDocument?Id=\" + rowid, (response) => {\r\n \r\n var blob = new Blob([base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n \r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n else\r\n {\r\n utils.invokeUrl(\"api/sims/HelpDeskRequest/DownloadHelpDeskDocument?Id=\" + rowid, (response) => {\r\n \r\n var blob = new Blob([base64ToArrayBuffer(response.Base64)], { type: response.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = response.Name;\r\n link.target = '_blank';\r\n link.click();\r\n }, (e) => {\r\n this.setState({ messsageAlert: utils.SYSTEM_ERROR_MESSAGE, messageStyle: \"outlinedError\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n const base64ToArrayBuffer = (base64) => {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n return (\r\n \r\n {form =>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {form.values[\"OriginalFileName\"] !== \"\" && !utils.isNull(form.values[\"OriginalFileName\"]) ?\r\n \r\n :\r\n \r\n }\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n FileDownload(props.id, \"\",\"Original\")} > Download - {form.values[\"OriginalFileName\"]}\r\n \r\n  \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n \r\n FileDownload(rowid, headCell, \"Comment\")} DataUrl={CommentURL} selection={props.id} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n})\r\n\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport \"../Helpdesk.css\";\r\nimport { HelpdeskRequestForm } from './HelpdeskRequestForm';\r\nimport ViewUtils from '../../ViewUtils';\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\nimport { ViewContainer } from \"../../View\";\r\nimport withMenuPermission from \"../../widgets/withMenuPermission\";\r\nconst utils = new ViewUtils();\r\n\r\n\r\nconst userRef = React.createRef();\r\nconst toolbarRef = React.createRef();\r\n\r\nclass HelpdeskRequest extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n title: \"\",\r\n id: (!utils.isNull(this.props.location.state) && !utils.isNull(this.props.location.state.selection)) ? this.props.location.state.selection : null,\r\n\r\n };\r\n\r\n this.toolbarConfig = {\r\n items: [\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'close', label: 'CLOSE', tooltip: 'Close', icon: 'CloseIcon' }\r\n ]\r\n },\r\n {\r\n type: \"devider\"\r\n },\r\n {\r\n type: \"buttonGroup\",\r\n buttons: [\r\n { id: 'save', label: 'SAVE', tooltip: 'Save', icon: 'SaveIcon' }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n }\r\n\r\n handleToolbarButtonClick(buttonId) {\r\n if (\"close\" === buttonId) {\r\n this.close()\r\n } else if (\"save\" === buttonId) {\r\n this.save()\r\n }\r\n }\r\n\r\n handleFormValueChange = (values) => {\r\n if (!utils.isNull(values)) {\r\n this.setState({\r\n Name: values.Name\r\n });\r\n }\r\n }\r\n\r\n\r\n save() {\r\n let formValue = userRef.current.getValue();\r\n\r\n if (formValue !== null && typeof formValue !== 'undefined') {\r\n const url = `api/sims/HelpDeskRequest/UpdateHelpdeskRequest`;\r\n utils.updateForm(this, userRef, url, (response) => {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }, this.error);\r\n }\r\n }\r\n\r\n successCallback(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n error(response) {\r\n this.setState({ message: response.Message, messageStyle: response.MessageType });\r\n }\r\n close() {\r\n this.props.history.push('/HelpdeskRequestSearch');\r\n }\r\n\r\n dataArrivedHandler = (values) => {\r\n if (!utils.isNull(values[\"StatusID\"])) {\r\n if(values.StatusID.Description === \"Complete\")\r\n {\r\n toolbarRef.current.setButtonDisabled(\"save\", true);\r\n }\r\n else\r\n {\r\n toolbarRef.current.setButtonDisabled(\"save\", false);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

\r\n {\"Helpdesk > Requests > Detail\"}\r\n

\r\n\r\n \r\n\r\n\r\n
\r\n this.handleToolbarButtonClick(buttonId)}\r\n ref={toolbarRef}\r\n config={this.toolbarConfig} />\r\n\r\n this.handleFormValueChange(values)}\r\n id={this.state.id}\r\n editPermission={this.props.menuPermissionItem.Edit}\r\n dataArrivedHandler={(values) => this.dataArrivedHandler(values)}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(withMenuPermission(HelpdeskRequest));\r\n// export default withRouter(HelpdeskRequest);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport EnhancedToolbar from '../../widgets/Toolbar';\r\nimport \"./../../Grid.css\";\r\nimport \"./../../Form.css\";\r\nimport \"./../../App.css\";\r\nimport ViewUtils from \"./../../ViewUtils\";\r\nimport { ViewContainer } from \"./../../View.jsx\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport AlertItem from \"../../widgets/AlertItem\";\r\n\r\n\r\nconst utils = new ViewUtils();\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\n\r\n\r\nclass HelpDeskReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null }]\r\n }\r\n }\r\n\r\n\r\n\r\n handleExecuteReport = () => {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/HelpDeskReports/GetHelpDeskReportExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data; \r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n }\r\n\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n render() {\r\n\r\n return (\r\n \r\n

\r\n Help Desk Report\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(HelpDeskReport);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n\r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass TrainingProviderListPerAccreditationStatusLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetTrainingProviderListPerAccreditationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Accreditation Status: {point.y:.1f} TotalAccreditations'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerAccreditationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerAccreditationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Training Provider List Per Accreditation Status Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(TrainingProviderListPerAccreditationStatusLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n\r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass TrainingProviderListPerAccreditationStatusBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetTrainingProviderListPerAccreditationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Accreditation Status: {point.y:.1f} TotalAccreditations'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerAccreditationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions: {\r\n // colum: {\r\n // labels: {\r\n // rotation: -45,\r\n // style: {\r\n // fontSize: '13px',\r\n // fontFamily: 'Verdana, sans-serif'\r\n // }\r\n // }\r\n // }\r\n //},\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerAccreditationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Training Provider List Per Accreditation Status Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(TrainingProviderListPerAccreditationStatusBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass TrainingProviderListPerAccreditationStatusPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n let url = `api/sims/QALPDashboard/GetTrainingProviderListPerAccreditationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Accreditation Status\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Accreditation Status: {point.y:.1f} TotalAccreditations'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerAccreditationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerAccreditationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Training Provider List Per Accreditation Status Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(TrainingProviderListPerAccreditationStatusPieChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass TrainingProviderListPerRegionBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetTrainingProviderListPerRegionSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Region: {point.y:.1f} TotalRegions'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions: {\r\n // colum: {\r\n // labels: {\r\n // rotation: -45,\r\n // style: {\r\n // fontSize: '13px',\r\n // fontFamily: 'Verdana, sans-serif'\r\n // }\r\n // }\r\n // }\r\n //},\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Training Provider List Per Region Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(TrainingProviderListPerRegionBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass TrainingProviderListPerRegionLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetTrainingProviderListPerRegionSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Region: {point.y:.1f} TotalRegions'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Training Provider List Per Region Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(TrainingProviderListPerRegionLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\", \r\n color: \"white\"\r\n },\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass TrainingProviderListPerRegionPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetTrainingProviderListPerRegionSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Region\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Region: {point.y:.1f} TotalRegions'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Training Provider List Per Region Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(TrainingProviderListPerRegionPieChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass TrainingProviderListPerProviderClassPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetTrainingProviderListPerProviderClassSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Provider Class\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Provider Class: {point.y:.1f} TotalClasses'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerProviderClassExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerProviderClassExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Training Provider List Per Provider Class Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(TrainingProviderListPerProviderClassPieChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n \r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass TrainingProviderListPerProviderClassBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetTrainingProviderListPerProviderClassSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Provider Class: {point.y:.1f} TotalClasses'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerProviderClassExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerProviderClassExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Training Provider List Per Provider Class Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(TrainingProviderListPerProviderClassBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass TrainingProviderListPerProviderClassLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetTrainingProviderListPerProviderClassSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Provider Class: {point.y:.1f} TotalClasses'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerProviderClassExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetTrainingProviderListPerProviderClassExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Training Provider List Per Provider Class Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(TrainingProviderListPerProviderClassLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass AssessorPerRegionBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetAssessorPerRegionSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Assessor Per Region: {point.y:.1f} TotalAssessors'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions: {\r\n // colum: {\r\n // labels: {\r\n // rotation: -45,\r\n // style: {\r\n // fontSize: '13px',\r\n // fontFamily: 'Verdana, sans-serif'\r\n // }\r\n // }\r\n // }\r\n //},\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Assessor Per Region Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(AssessorPerRegionBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass AssessorPerRegionLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetAssessorPerRegionSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Assessor Region: {point.y:.1f} TotalAssessors'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Assessor Per Region Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(AssessorPerRegionLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass AssessorPerRegionPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetAssessorPerRegionSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Assessor Per Region\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Assessor Per Region: {point.y:.1f} TotalAssessors'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Assessor Per Region Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(AssessorPerRegionPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass AssessorPerRegistrationStatusBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetAssessorPerRegistrationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Assessor Per Registration Status: {point.y:.1f} TotalAssessors'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions: {\r\n // colum: {\r\n // labels: {\r\n // rotation: -45,\r\n // style: {\r\n // fontSize: '13px',\r\n // fontFamily: 'Verdana, sans-serif'\r\n // }\r\n // }\r\n // }\r\n //},\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Assessor Per Registration Status Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(AssessorPerRegistrationStatusBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass AssessorPerRegistrationStatusLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetAssessorPerRegistrationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Assessor Per Registration Status: {point.y:.1f} TotalAssessors'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Assessor Per Registration Status Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(AssessorPerRegistrationStatusLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass AssessorPerRegistrationStatusPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetAssessorPerRegistrationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Assessor Per Registration Status\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Assessor Per Registration Status: {point.y:.1f} TotalAssessors'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Assessor Per Registration Status Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(AssessorPerRegistrationStatusPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass AssessorPerAssessorTypeBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetAssessorPerAssessorTypeSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Assessor Per Type: {point.y:.1f} TotalAssessorType'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerAssessorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerAssessorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Assessor Per Type Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(AssessorPerAssessorTypeBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass AssessorPerAssessorTypeLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetAssessorPerAssessorTypeSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Assessor Per Type: {point.y:.1f} TotalAssessorType'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerAssessorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerAssessorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Assessor Per Type Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(AssessorPerAssessorTypeLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass AssessorPerAssessorTypePieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetAssessorPerAssessorTypeSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Assessor Per Type\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Assessor Per Type: {point.y:.1f} TotalAssessorType'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerAssessorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetAssessorPerAssessorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Assessor Per Type Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(AssessorPerAssessorTypePieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n \r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass ModeratorPerModeratorTypeBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetModeratorPerModeratorTypeSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Moderator Per Type: {point.y:.1f} TotalModeratorTypes'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerModeratorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerModeratorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Moderator Per Type Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(ModeratorPerModeratorTypeBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass ModeratorPerModeratorTypeLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetModeratorPerModeratorTypeSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Moderator Per Type: {point.y:.1f} TotalModeratorTypes'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerModeratorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerModeratorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Moderator Per Type Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(ModeratorPerModeratorTypeLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass ModeratorPerModeratorTypePieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetModeratorPerModeratorTypeSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Moderator Per Type\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Moderator Per Type: {point.y:.1f} TotalModeratorTypes'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerModeratorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerModeratorTypeExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Moderator Per Type Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(ModeratorPerModeratorTypePieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n \r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass ModeratorPerRegistrationStatusBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetModeratorPerRegistrationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Moderator Per Registration Status: {point.y:.1f} TotalModerators'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions: {\r\n // colum: {\r\n // labels: {\r\n // rotation: -45,\r\n // style: {\r\n // fontSize: '13px',\r\n // fontFamily: 'Verdana, sans-serif'\r\n // }\r\n // }\r\n // }\r\n //},\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Moderator Per Registration Status Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(ModeratorPerRegistrationStatusBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass ModeratorPerRegistrationStatusLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetModeratorPerRegistrationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Moderator Per Registration Status: {point.y:.1f} TotalModerators'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Moderator Per Registration Status Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(ModeratorPerRegistrationStatusLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass ModeratorPerRegistrationStatusPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetModeratorPerRegistrationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Moderator Per Registration Status\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Moderator Per Registration Status: {point.y:.1f} TotalModerators'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegistrationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Moderator Per Registration Status Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(ModeratorPerRegistrationStatusPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass ModeratorPerRegionBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetModeratorPerRegionSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Moderator Per Region: {point.y:.1f} TotalModerators'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions: {\r\n // colum: {\r\n // labels: {\r\n // rotation: -45,\r\n // style: {\r\n // fontSize: '13px',\r\n // fontFamily: 'Verdana, sans-serif'\r\n // }\r\n // }\r\n // }\r\n //},\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Moderator Per Region Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n \r\nexport default withStyles(styles)(ModeratorPerRegionBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass ModeratorPerRegionLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetModeratorPerRegionSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Moderator Per Region: {point.y:.1f} TotalModerators'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Moderator Per Region Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(ModeratorPerRegionLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass ModeratorPerRegionPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetModeratorPerRegionSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Moderator Per Region\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Moderator Per Region: {point.y:.1f} TotalModerators'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n //plotOptions:\r\n //{\r\n // series:\r\n // {\r\n // connectNulls: false,\r\n // marker:\r\n // {\r\n // enabled: true,\r\n // value: 'x'\r\n // }\r\n // }\r\n //},\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetModeratorPerRegionExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Moderator Per Region Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(ModeratorPerRegionPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerMunicipalityBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerMunicipalitySearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learnerships Per Municipality: {point.y:.1f} TotalMunicipalities'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Municipality Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerMunicipalityBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerMunicipalityLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerMunicipalitySearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Municipality: {point.y:.1f} TotalMunicipalities'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Municipality Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerMunicipalityLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerMunicipalityPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerMunicipalitySearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Per Municipality\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Municipality: {point.y:.1f} TotalMunicipalities'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Municipality Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerMunicipalityPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerSponsorshipBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerSponsorshipSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learnerships Per Sponsorship: {point.y:.1f} TotalSponsorships'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Sponsorship Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerSponsorshipBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerSponsorshipLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerSponsorshipSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Sponsorship: {point.y:.1f} TotalSponsorships'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Sponsorship Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerSponsorshipLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerSponsorshipPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerSponsorshipSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Per Sponsorship\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Sponsorship: {point.y:.1f} TotalSponsorships'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Sponsorship Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerSponsorshipPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n }, \r\n}\r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerAgreementStatusBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerAgreementStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learnerships Per Agreement Status: {point.y:.1f} TotalAgreementStatus'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerAgreementStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerAgreementStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Agreement Status Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerAgreementStatusBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerAgreementStatusLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerAgreementStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Agreement Status: {point.y:.1f} TotalAgreementStatus'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerAgreementStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n \r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerAgreementStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Agreement Status Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerAgreementStatusLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerAgreementStatusPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerAgreementStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Per Agreement Status\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Agreement Status: {point.y:.1f} TotalAgreementStatus'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerAgreementStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n \r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerAgreementStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Agreement Status Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerAgreementStatusPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerLearnershipTitleBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerLearnershipTitleSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learnerships Per Learnership Title: {point.y:.1f} TotalLearnershipTitles'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerLearnershipTitleExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerLearnershipTitleExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Learnership Title Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerLearnershipTitleBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerLearnershipTitleLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerLearnershipTitleSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Learnership Title: {point.y:.1f} TotalLearnershipTitles'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerLearnershipTitleExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerLearnershipTitleExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Learnership Title Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerLearnershipTitleLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerLearnershipsPerLearnershipTitlePieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerLearnershipsPerLearnershipTitleSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Per Learnership Title\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Learnership Title: {point.y:.1f} TotalLearnershipTitles'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerLearnershipTitleExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerLearnershipsPerLearnershipTitleExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Learnerships Per Learnership Title Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerLearnershipsPerLearnershipTitlePieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerMunicipalityBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerMunicipalitySearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learnerships Skills Per Municipality: {point.y:.1f} TotalMunicipalities'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n \r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Municipality Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerMunicipalityBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerMunicipalityLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerMunicipalitySearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Skills Per Municipality: {point.y:.1f} TotalMunicipalities'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Municipality Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerMunicipalityLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerMunicipalityPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerMunicipalitySearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Skills Per Municipality\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Skills Per Municipality: {point.y:.1f} TotalMunicipalities'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Municipality Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerMunicipalityPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerBursaryNameBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryNameSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learnerships Skills Per Bursary Name: {point.y:.1f} TotalBursaryNames'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Bursary Name Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerBursaryNameBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerBursaryNameLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryNameSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Skills Per Bursary Name: {point.y:.1f} TotalBursaryNames'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Bursary Name Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerBursaryNameLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerBursaryNamePieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryNameSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Skills Per Bursary Name\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Skills Per Bursary Name: {point.y:.1f} TotalBursaryNames'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Bursary Name Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerBursaryNamePieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n} \r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerSponsorshipBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerSponsorshipSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learnerships Skills Per Sponsorship: {point.y:.1f} TotalSponsorships'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Sponsorship Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerSponsorshipBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerSponsorshipLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerSponsorshipSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Skills Per Sponsorship: {point.y:.1f} TotalSponsorships'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Sponsorship Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerSponsorshipLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n }, \r\n}\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerSponsorshipPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerSponsorshipSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Skills Per Sponsorship\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Skills Per Sponsorship: {point.y:.1f} TotalSponsorships'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Sponsorship Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerSponsorshipPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerBursaryStatusBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learnerships Skills Per Bursary Status: {point.y:.1f} TotalBursaryStatuss'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Bursary Status Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerBursaryStatusBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerBursaryStatusLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Skills Per Bursary Status: {point.y:.1f} TotalBursaryStatuss'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Bursary Status Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerBursaryStatusLineChart); ","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerSkillsProgrammesPerBursaryStatusPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Skills Per Bursary Status\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Skills Per Bursary Status: {point.y:.1f} TotalBursaryStatuss'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerSkillsProgrammesPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Skills Programmes Per Bursary Status Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerSkillsProgrammesPerBursaryStatusPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerBursaryPerMunicipalityBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerMunicipalitySearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Municipality: {point.y:.1f} TotalBursaryMunicipalities'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n \r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Municipality Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerBursaryPerMunicipalityBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n\r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerBursaryPerMunicipalityLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerMunicipalitySearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Municipality: {point.y:.1f} TotalBursaryMunicipalities'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Municipality Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerBursaryPerMunicipalityLineChart); ","\r\nimport React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerBursaryPerMunicipalityPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerMunicipalitySearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Bursary Per Municipality\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Municipality: {point.y:.1f} TotalBursaryMunicipalities'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerMunicipalityExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Municipality Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerBursaryPerMunicipalityPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerBursaryPerBursaryNameBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerBursaryNameSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Bursary Name: {point.y:.1f} TotalBursaries'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Bursary Name Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerBursaryPerBursaryNameBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerBursaryPerBursaryNameLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerBursaryNameSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Bursary Name: {point.y:.1f} TotalBursaries'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Bursary Name Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerBursaryPerBursaryNameLineChart); ","\r\nimport React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerBursaryPerBursaryNamePieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerBursaryNameSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Bursary Per Bursary Name\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Bursary Name: {point.y:.1f} TotalBursaries'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryNameExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Bursary Name Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerBursaryPerBursaryNamePieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerBursaryPerSponsorshipBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerSponsorshipSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Sponsorship: {point.y:.1f} TotalSponsorships'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Sponsorship Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n \r\nexport default withStyles(styles)(LearnerBursaryPerSponsorshipBarChart);\r\n"," import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerBursaryPerSponsorshipLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerSponsorshipSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Sponsorship: {point.y:.1f} TotalBursarySponsorships'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Sponsorship Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerBursaryPerSponsorshipLineChart); ","\r\nimport React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n }, \r\n}\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerBursaryPerSponsorshipPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerSponsorshipSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Bursary Per Sponsorship\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Sponsorship: {point.y:.1f} TotalBursarySponsorships'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerSponsorshipExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Sponsorship Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerBursaryPerSponsorshipPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerBursaryPerBursaryStatusBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerBursaryStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Bursary Status: {point.y:.1f} TotalBursaryStatusses'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Bursary Status Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerBursaryPerBursaryStatusBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerBursaryPerBursaryStatusLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerBursaryStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Bursary Status: {point.y:.1f} TotalBursaryStatusses'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Bursary Status Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerBursaryPerBursaryStatusLineChart); ","\r\nimport React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerBursaryPerBursaryStatusPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerBursaryPerBursaryStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Bursary Per Bursary Status\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Bursary Per Bursary Status: {point.y:.1f} TotalBursaryStatusses'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerBursaryPerBursaryStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Bursary Per Bursary Status Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerBursaryPerBursaryStatusPieChart); \r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './BarChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n },\r\n}\r\n\r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\n\r\nclass LearnerPerAllocationStatusBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'column',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n rotation: -90,\r\n //color: '#FFFFFF',\r\n align: 'right',\r\n format: '{point.y:.1f}', // one decimal\r\n y: 10, // 10 pixels down from the top\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerPerAllocationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n Highcharts.chart({\r\n\r\n chart: {\r\n type: 'column',\r\n renderTo: 'atmospheric-composition',\r\n height: '350px'\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '13px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n },\r\n xAxis: {\r\n categories: categories\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Allocation and Un-Allocation: {point.y:.1f} TotalStatusses'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerPerAllocationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n console.log(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerPerAllocationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n \r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Per Allocation and Un-Allocation Status Bar Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(LearnerPerAllocationStatusBarChart);\r\n","import React, { Component } from \"react\";\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './LineChart.css';\r\nimport ViewUtils from '../ViewUtils';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n}\r\n\r\n \r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerPerAllocationStatusLineChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n\r\n series: [{\r\n type: 'line',\r\n allowPointSelect: true,\r\n keys: ['name', 'y'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }]\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerPerAllocationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('linecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ''\r\n },\r\n\r\n xAxis: {\r\n //keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Allocation and Un-Allocation Status: {point.y:.1f} TotalStatusses'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerPerAllocationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerPerAllocationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Per Allocation and Un-Allocation Status Line Chart\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(LearnerPerAllocationStatusLineChart); ","\r\nimport React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport { Card, Col } from 'react-bootstrap';\r\nimport Highcharts from 'highcharts';\r\nimport './PieChart.css';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport ReactDom from 'react-dom';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = {\r\n fullHeightCard: {\r\n height: \"60%\",\r\n color: \"white\"\r\n },\r\n} \r\n\r\nconst utils = new ViewUtils();\r\nvar test = [];\r\nvar data = [];\r\nvar array = [];\r\nvar arrayData = [];\r\n//var RoleID = !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0;\r\nvar RoleID = 0;\r\nvar categories;\r\nvar xAxisCategory = [];\r\nvar yAxisCategory = [];\r\n\r\n\r\n\r\nclass LearnerPerAllocationStatusPieChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchParameters: [{ Name: \"RoleID\", Value: null },\r\n { Name: \"ExportToExcel\", Value: null },\r\n { Name: \"Filter\", Value: null }],\r\n //RoleID: !utils.isNull(this.props.RoleID) ? this.props.RoleID : 0,\r\n\r\n series: [{\r\n type: 'pie',\r\n allowPointSelect: true,\r\n keys: ['name', 'y', 'selected', 'sliced'],\r\n data: yAxisCategory,\r\n showInLegend: true,\r\n }],\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\"\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n highChartsRender() {\r\n\r\n xAxisCategory.splice(0, xAxisCategory.length);\r\n yAxisCategory.splice(0, yAxisCategory.length);\r\n var categories;\r\n\r\n\r\n let url = `api/sims/QALPDashboard/GetLearnerPerAllocationStatusSearch?request={\"searchParameters\":[{\"Name\":\"RoleID\",\"Value\":${RoleID}}, {\"Name\":\"ExportToExcel\",\"Value\": \"No\"}, {\"Name\":\"Filter\",\"Value\": \"\"}]}`\r\n\r\n utils.invokeUrl(url, (response) => {\r\n\r\n test = response;\r\n //arrayData = new Array();\r\n\r\n //console.log(response);\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n var arr = response[i].Values\r\n xAxisCategory.push(arr);\r\n }\r\n\r\n\r\n for (var i = 0; i < response.length; i++) {\r\n yAxisCategory.push([response[i].Values, response[i].Total]);\r\n }\r\n\r\n categories = response.map((o) => String(o.Values))\r\n\r\n\r\n Highcharts.chart('piecontainer', {\r\n chart: {\r\n styledMode: true,\r\n height: '350px',\r\n },\r\n\r\n title: {\r\n text: ' '\r\n },\r\n\r\n xAxis: {\r\n title: \"Learner Per Allocation and Un-Allocation Status\",\r\n // keys: ['x'],\r\n categories: categories\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n tooltip: {\r\n pointFormat: 'Learner Per Allocation and Un-Allocation Status: {point.y:.1f} TotalStatusses'\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: (e) => {\r\n\r\n let searchParameters = [];\r\n\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: this.RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"Yes\" })\r\n searchParameters.push({ Name: \"Filter\", Value: xAxisCategory[e.point.x] })\r\n console.clear();\r\n console.log(searchParameters);\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerPerAllocationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, (e) => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n series: this.state.series\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.highChartsRender();\r\n };\r\n\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n };\r\n\r\n ExportAllToExcel() {\r\n let searchParameters = [];\r\n\r\n searchParameters.push({ Name: \"RoleID\", Value: RoleID })\r\n searchParameters.push({ Name: \"ExportToExcel\", Value: \"All\" })\r\n searchParameters.push({ Name: \"Filter\", Value: \"\" })\r\n\r\n\r\n utils.invokeUrl(\"api/sims/QALPDashboard/GetLearnerPerAllocationStatusExcel?request=\" + utils.doGetRequestJson(0, 0, searchParameters, true), (data) => {\r\n var result;\r\n if (typeof data === \"string\") {\r\n result = JSON.parse(data);\r\n } else {\r\n result = data;\r\n }\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(result.Base64)], { type: result.Type });\r\n var url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = result.Name;\r\n link.target = '_blank';\r\n link.click();\r\n\r\n }, () => {\r\n this.setState({ message: \"Unable to execute report. A system error has occurred. Please contact your system administrator\", messageStyle: \"ERROR\" });\r\n });\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { chartOptions, hoverData } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n Learner Per Allocation and Un-Allocatioon Status Pie Chart\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles)(LearnerPerAllocationStatusPieChart); \r\n","import React, { Component } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport \"../Grid.css\";\r\nimport \"../Form.css\";\r\nimport \"../App.css\";\r\nimport { ViewContainer } from \"../View.jsx\";\r\nimport ViewUtils from '../ViewUtils';\r\nimport EnhancedToolbar from '../widgets/Toolbar';\r\nimport withMenuPermission from \"../widgets/withMenuPermission\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\n\r\n\r\nimport TrainingProviderListPerAccreditationStatusLineChart from '../QALPDashboardCharts/TrainingProviderListPerAccreditationStatusLineChart';\r\nimport TrainingProviderListPerAccreditationStatusBarChart from '../QALPDashboardCharts/TrainingProviderListPerAccreditationStatusBarChart';\r\nimport TrainingProviderListPerAccreditationStatusPieChart from '../QALPDashboardCharts/TrainingProviderListPerAccreditationStatusPieChart';\r\n\r\nimport TrainingProviderListPerRegionBarChart from '../QALPDashboardCharts/TrainingProviderListPerRegionBarChart';\r\nimport TrainingProviderListPerRegionLineChart from '../QALPDashboardCharts/TrainingProviderListPerRegionLineChart';\r\nimport TrainingProviderListPerRegionPieChart from '../QALPDashboardCharts/TrainingProviderListPerRegionPieChart';\r\n\r\nimport TrainingProviderListPerProviderClassPieChart from '../QALPDashboardCharts/TrainingProviderListPerProviderClassPieChart';\r\nimport TrainingProviderListPerProviderClassBarChart from '../QALPDashboardCharts/TrainingProviderListPerProviderClassBarChart';\r\nimport TrainingProviderListPerProviderClassLineChart from '../QALPDashboardCharts/TrainingProviderListPerProviderClassLineChart';\r\n\r\n\r\nimport AssessorPerRegionBarChart from '../QALPDashboardCharts/AssessorPerRegionBarChart';\r\nimport AssessorPerRegionLineChart from '../QALPDashboardCharts/AssessorPerRegionLineChart';\r\nimport AssessorPerRegionPieChart from '../QALPDashboardCharts/AssessorPerRegionPieChart';\r\n\r\nimport AssessorPerRegistrationStatusBarChart from '../QALPDashboardCharts/AssessorPerRegistrationStatusBarChart';\r\nimport AssessorPerRegistrationStatusLineChart from '../QALPDashboardCharts/AssessorPerRegistrationStatusLineChart';\r\nimport AssessorPerRegistrationStatusPieChart from '../QALPDashboardCharts/AssessorPerRegistrationStatusPieChart';\r\n\r\nimport AssessorPerAssessorTypeBarChart from '../QALPDashboardCharts/AssessorPerAssessorTypeBarChart';\r\nimport AssessorPerAssessorTypeLineChart from '../QALPDashboardCharts/AssessorPerAssessorTypeLineChart';\r\nimport AssessorPerAssessorTypePieChart from '../QALPDashboardCharts/AssessorPerAssessorTypePieChart';\r\n\r\n\r\nimport ModeratorPerModeratorTypeBarChart from '../QALPDashboardCharts/ModeratorPerModeratorTypeBarChart';\r\nimport ModeratorPerModeratorTypeLineChart from '../QALPDashboardCharts/ModeratorPerModeratorTypeLineChart';\r\nimport ModeratorPerModeratorTypePieChart from '../QALPDashboardCharts/ModeratorPerModeratorTypePieChart';\r\n\r\nimport ModeratorPerRegistrationStatusBarChart from '../QALPDashboardCharts/ModeratorPerRegistrationStatusBarChart';\r\nimport ModeratorPerRegistrationStatusLineChart from '../QALPDashboardCharts/ModeratorPerRegistrationStatusLineChart';\r\nimport ModeratorPerRegistrationStatusPieChart from '../QALPDashboardCharts/ModeratorPerRegistrationStatusPieChart';\r\n\r\nimport ModeratorPerRegionBarChart from '../QALPDashboardCharts/ModeratorPerRegionBarChart';\r\nimport ModeratorPerRegionLineChart from '../QALPDashboardCharts/ModeratorPerRegionLineChart';\r\nimport ModeratorPerRegionPieChart from '../QALPDashboardCharts/ModeratorPerRegionPieChart';\r\n\r\n\r\nimport LearnerLearnershipsPerMunicipalityBarChart from '../QALPDashboardCharts/LearnerLearnershipsPerMunicipalityBarChart';\r\nimport LearnerLearnershipsPerMunicipalityLineChart from '../QALPDashboardCharts/LearnerLearnershipsPerMunicipalityLineChart';\r\nimport LearnerLearnershipsPerMunicipalityPieChart from '../QALPDashboardCharts/LearnerLearnershipsPerMunicipalityPieChart';\r\n\r\nimport LearnerLearnershipsPerSponsorshipBarChart from '../QALPDashboardCharts/LearnerLearnershipsPerSponsorshipBarChart';\r\nimport LearnerLearnershipsPerSponsorshipLineChart from '../QALPDashboardCharts/LearnerLearnershipsPerSponsorshipLineChart';\r\nimport LearnerLearnershipsPerSponsorshipPieChart from '../QALPDashboardCharts/LearnerLearnershipsPerSponsorshipPieChart';\r\n\r\nimport LearnerLearnershipsPerAgreementStatusBarChart from '../QALPDashboardCharts/LearnerLearnershipsPerAgreementStatusBarChart'; \r\nimport LearnerLearnershipsPerAgreementStatusLineChart from '../QALPDashboardCharts/LearnerLearnershipsPerAgreementStatusLineChart';\r\nimport LearnerLearnershipsPerAgreementStatusPieChart from '../QALPDashboardCharts/LearnerLearnershipsPerAgreementStatusPieChart';\r\n\r\nimport LearnerLearnershipsPerLearnershipTitleBarChart from '../QALPDashboardCharts/LearnerLearnershipsPerLearnershipTitleBarChart';\r\nimport LearnerLearnershipsPerLearnershipTitleLineChart from '../QALPDashboardCharts/LearnerLearnershipsPerLearnershipTitleLineChart';\r\nimport LearnerLearnershipsPerLearnershipTitlePieChart from '../QALPDashboardCharts/LearnerLearnershipsPerLearnershipTitlePieChart';\r\n\r\n\r\nimport LearnerSkillsProgrammesPerMunicipalityBarChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerMunicipalityBarChart';\r\nimport LearnerSkillsProgrammesPerMunicipalityLineChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerMunicipalityLineChart';\r\nimport LearnerSkillsProgrammesPerMunicipalityPieChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerMunicipalityPieChart';\r\n\r\nimport LearnerSkillsProgrammesPerBursaryNameBarChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryNameBarChart';\r\nimport LearnerSkillsProgrammesPerBursaryNameLineChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryNameLineChart';\r\nimport LearnerSkillsProgrammesPerBursaryNamePieChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryNamePieChart';\r\n\r\nimport LearnerSkillsProgrammesPerSponsorshipBarChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerSponsorshipBarChart';\r\nimport LearnerSkillsProgrammesPerSponsorshipLineChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerSponsorshipLineChart';\r\nimport LearnerSkillsProgrammesPerSponsorshipPieChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerSponsorshipPieChart';\r\n\r\nimport LearnerSkillsProgrammesPerBursaryStatusBarChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryStatusBarChart';\r\nimport LearnerSkillsProgrammesPerBursaryStatusLineChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryStatusLineChart';\r\nimport LearnerSkillsProgrammesPerBursaryStatusPieChart from '../QALPDashboardCharts/LearnerSkillsProgrammesPerBursaryStatusPieChart';\r\n\r\n\r\nimport LearnerBursaryPerMunicipalityBarChart from '../QALPDashboardCharts/LearnerBursaryPerMunicipalityBarChart';\r\nimport LearnerBursaryPerMunicipalityLineChart from '../QALPDashboardCharts/LearnerBursaryPerMunicipalityLineChart';\r\nimport LearnerBursaryPerMunicipalityPieChart from '../QALPDashboardCharts/LearnerBursaryPerMunicipalityPieChart';\r\n \r\nimport LearnerBursaryPerBursaryNameBarChart from '../QALPDashboardCharts/LearnerBursaryPerBursaryNameBarChart';\r\nimport LearnerBursaryPerBursaryNameLineChart from '../QALPDashboardCharts/LearnerBursaryPerBursaryNameLineChart';\r\nimport LearnerBursaryPerBursaryNamePieChart from '../QALPDashboardCharts/LearnerBursaryPerBursaryNamePieChart';\r\n \r\nimport LearnerBursaryPerSponsorshipBarChart from '../QALPDashboardCharts/LearnerBursaryPerSponsorshipBarChart';\r\nimport LearnerBursaryPerSponsorshipLineChart from '../QALPDashboardCharts/LearnerBursaryPerSponsorshipLineChart';\r\nimport LearnerBursaryPerSponsorshipPieChart from '../QALPDashboardCharts/LearnerBursaryPerSponsorshipPieChart';\r\n \r\nimport LearnerBursaryPerBursaryStatusBarChart from '../QALPDashboardCharts/LearnerBursaryPerBursaryStatusBarChart';\r\nimport LearnerBursaryPerBursaryStatusLineChart from '../QALPDashboardCharts/LearnerBursaryPerBursaryStatusLineChart';\r\nimport LearnerBursaryPerBursaryStatusPieChart from '../QALPDashboardCharts/LearnerBursaryPerBursaryStatusPieChart';\r\n\r\n\r\n\r\n//LEARNER\r\nimport LearnerPerAllocationStatusBarChart from '../QALPDashboardCharts/LearnerPerAllocationStatusBarChart';\r\nimport LearnerPerAllocationStatusLineChart from '../QALPDashboardCharts/LearnerPerAllocationStatusLineChart';\r\nimport LearnerPerAllocationStatusPieChart from '../QALPDashboardCharts/LearnerPerAllocationStatusPieChart';\r\n\r\n\r\n\r\nimport { Row } from 'react-bootstrap';\r\n\r\n\r\nconst utils = new ViewUtils();\r\n\r\n\r\nclass QALPDashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n\r\n trainingproviderlistperaccreditationstatusshow: false, \r\n trainingproviderlistperregionshow: false, \r\n trainingproviderlistperproviderclassshow: false,\r\n \r\n assessorperregionshow: false,\r\n assessorperregistrationstatusshow: false,\r\n assessorperassessortypeshow: false,\r\n \r\n moderatorpermoderatortypeshow: false,\r\n moderatorperregistrationstatusshow: false,\r\n moderatorperregionshow: false,\r\n \r\n learnerlearnershipsperagreementstatusshow: false,\r\n learnerlearnershipspermunicipalityshow: false,\r\n learnerlearnershipspersponsorshipshow: false,\r\n learnerlearnershipsperlearnershiptitleshow: false,\r\n \r\n learnerskillsprogrammespermunicipalityshow: false,\r\n learnerskillsprogrammesperbursarynameshow: false, \r\n learnerskillsprogrammespersponsorshipshow: false,\r\n learnerskillsprogrammesperbursarystatusshow: false, \r\n\r\n\r\n learnerbursarypermunicipalityshow: false,\r\n learnerbursaryperbursarynameshow: false,\r\n learnerbursarypersponsorshipshow: false,\r\n learnerbursaryperbursarystatusshow: false,\r\n \r\n learnerperallocationstatusshow: false\r\n\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n utils.setLegend(\"QA And LP Dashboard\");\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: true });\r\n }\r\n\r\n\r\n handleReportNameChanged = (event) => {\r\n\r\n var divToShow = event.target.value;\r\n\r\n if (divToShow == 'divTrainingProviderListPerAccreditationStatus') {\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: true });\r\n\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n\r\n }\r\n else if (divToShow == 'divTrainingProviderListPerRegion') {\r\n this.setState({ trainingproviderlistperregionshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divTrainingProviderListPerProviderClass') {\r\n this.setState({ trainingproviderlistperproviderclassshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divAssessorPerRegion')\r\n {\r\n this.setState({ assessorperregionshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divAssessorPerRegistrationStatus') {\r\n this.setState({ assessorperregistrationstatusshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divAssessorPerRegion')\r\n {\r\n this.setState({ assessorperregionshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divAssessorPerAssessorType')\r\n {\r\n this.setState({ assessorperassessortypeshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divModeratorPerModeratorType')\r\n {\r\n this.setState({ moderatorpermoderatortypeshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divModeratorPerRegistrationStatus')\r\n {\r\n this.setState({ moderatorperregistrationstatusshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n\r\n else if (divToShow == 'divModeratorPerRegion')\r\n {\r\n this.setState({ moderatorperregionshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n\r\n else if (divToShow == 'divLearnerLearnershipsPerLearnershipAgreementStatus')\r\n {\r\n this.setState({ learnerlearnershipsperagreementstatusshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnerLearnershipsPerMunicipality')\r\n {\r\n this.setState({ learnerlearnershipspermunicipalityshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnerLearnershipsPerSponsorship')\r\n {\r\n this.setState({ learnerlearnershipspersponsorshipshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnerLearnershipsPerLearnershipTitle')\r\n {\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnerSkillsProgrammesReportPerMunicipality')\r\n {\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnerSkillsProgrammesReportPerBursaryName')\r\n {\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnerSkillsProgrammesReportPerSponsorship')\r\n {\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnerSkillsProgrammesReportPerBursaryStatus')\r\n {\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnerBursaryReportPerMunicipality')\r\n {\r\n this.setState({ learnerbursarypermunicipalityshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnerBursaryReportPerBursaryName')\r\n {\r\n this.setState({ learnerbursaryperbursarynameshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnerBursaryReportPerSponsorship')\r\n {\r\n this.setState({ learnerbursarypersponsorshipshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnerBursaryReportPerBursaryStatus')\r\n {\r\n this.setState({ learnerbursaryperbursarystatusshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n\r\n\r\n this.setState({ learnerperallocationstatusshow: false });\r\n }\r\n else if (divToShow == 'divLearnersPerAllocatedAndUnAllocatedLearners')\r\n {\r\n this.setState({ learnerperallocationstatusshow: true });\r\n\r\n this.setState({ trainingproviderlistperaccreditationstatusshow: false });\r\n this.setState({ trainingproviderlistperregionshow: false });\r\n this.setState({ trainingproviderlistperproviderclassshow: false });\r\n\r\n this.setState({ assessorperregionshow: false });\r\n this.setState({ assessorperregistrationstatusshow: false });\r\n this.setState({ assessorperassessortypeshow: false });\r\n\r\n this.setState({ moderatorpermoderatortypeshow: false });\r\n this.setState({ moderatorperregistrationstatusshow: false });\r\n this.setState({ moderatorperregionshow: false });\r\n\r\n this.setState({ learnerlearnershipspersponsorshipshow: false });\r\n this.setState({ learnerlearnershipsperagreementstatusshow: false });\r\n this.setState({ learnerlearnershipsperlearnershiptitleshow: false });\r\n this.setState({ learnerlearnershipspermunicipalityshow: false });\r\n\r\n this.setState({ learnerskillsprogrammespermunicipalityshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarynameshow: false });\r\n this.setState({ learnerskillsprogrammespersponsorshipshow: false });\r\n this.setState({ learnerskillsprogrammesperbursarystatusshow: false });\r\n\r\n this.setState({ learnerbursaryperbursarynameshow: false });\r\n this.setState({ learnerbursaryperbursarystatusshow: false });\r\n this.setState({ learnerbursarypermunicipalityshow: false });\r\n this.setState({ learnerbursarypersponsorshipshow: false });\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n\r\n
\r\n
\r\n \r\n this.handleReportNameChanged(values)}>\r\n Training Provider List Per Accreditation Status\r\n Training Provider List Per Region\r\n Training Provider List Per Provider Class\r\n \r\n Assessor Per Region\r\n Assessor Per Registration Status\r\n Assessor Per Assessor Type\r\n\r\n Moderator Per Moderator Type\r\n Moderator Per Registration Status\r\n Moderator Per Region\r\n\r\n Learner Learnerships Per Learnership Agreement Status\r\n Learner Learnerships Per Municipality\r\n Learner Learnerships Per Sponsorship\r\n Learner Learnerships Per Learnership Title\r\n\r\n Learner Skills Programmes Report Per Municipality\r\n Learner Skills Programmes Report Per Bursary Name\r\n Learner Skills Programmes Report Per Sponsorship\r\n Learner Skills Programmes Report Per Bursary Status\r\n\r\n Learner Bursary Report Per Municipality\r\n Learner Bursary Report Per Bursary Name\r\n Learner Bursary Report Per Sponsorship\r\n Learner Bursary Report Per Bursary Status\r\n\r\n\r\n Learners Per Allocated And UnAllocated Learners\r\n \r\n \r\n\r\n
\r\n\r\n {\r\n this.state.trainingproviderlistperaccreditationstatusshow ?\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n \r\n {\r\n this.state.trainingproviderlistperregionshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n \r\n\r\n {\r\n this.state.trainingproviderlistperproviderclassshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n \r\n\r\n {\r\n this.state.assessorperregionshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n \r\n\r\n {\r\n this.state.assessorperregistrationstatusshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n {\r\n this.state.assessorperassessortypeshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n {\r\n this.state.moderatorpermoderatortypeshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n {\r\n this.state.moderatorperregistrationstatusshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n {\r\n this.state.moderatorperregionshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n {\r\n this.state.learnerlearnershipsperagreementstatusshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n {\r\n this.state.learnerlearnershipspermunicipalityshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n {\r\n this.state.learnerlearnershipspersponsorshipshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n {\r\n this.state.learnerlearnershipsperlearnershiptitleshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n\r\n {\r\n this.state.learnerskillsprogrammespermunicipalityshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n \r\n \r\n \r\n {\r\n this.state.learnerskillsprogrammesperbursarynameshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n {\r\n this.state.learnerskillsprogrammespersponsorshipshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n {\r\n this.state.learnerskillsprogrammesperbursarystatusshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n {\r\n this.state.learnerbursarypermunicipalityshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n {\r\n this.state.learnerbursaryperbursarynameshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n {\r\n this.state.learnerbursarypersponsorshipshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n {\r\n this.state.learnerbursaryperbursarystatusshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n {\r\n this.state.learnerperallocationstatusshow ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n );\r\n\r\n }\r\n}\r\n\r\nexport default withRouter(withMenuPermission(QALPDashboard));\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport EmployerSearch from \"./etqa/employer/EmployerSearch\";\r\nimport Employer from \"./etqa/employer/Employer\";\r\nimport WorkplaceSearch from \"./etqa/workplace/WorkplaceSearch\";\r\nimport Workplace from \"./etqa/workplace/Workplace\";\r\nimport WorkplaceCRM from \"./etqa/workplace/WorkplaceCRM\";\r\nimport AssessorSearch from \"./etqa/assessor/AssessorSearch\";\r\nimport FacilitatorSearch from \"./etqa/facilitator/FacilitatorSearch\";\r\nimport ProjectOwnerSearch from \"./etqa/projectowner/ProjectOwnerSearch\";\r\nimport ConsultantSearch from \"./etqa/consultant/ConsultantSearch\";\r\nimport AuditTrial from \"./etqa/assessor/AuditTrial\";\r\nimport Assessor from \"./etqa/assessor/Assessor\";\r\nimport Facilitator from \"./etqa/facilitator/Facilitator\";\r\nimport ProjectOwner from \"./etqa/projectowner/ProjectOwner\";\r\nimport Consultant from \"./etqa/consultant/Consultant\";\r\nimport ConsultantCRM from \"./etqa/consultant/ConsultantCRM\";\r\nimport BDASearch from \"./etqa/bda/BDASearch\";\r\nimport PersonSearch from \"./etqa/person/PersonSearch\";\r\nimport LearnerSearch from \"./etqa/learner/LearnerSearch\";\r\nimport Learner from \"./etqa/learner/Learner\";\r\nimport LearnerCRM from \"./etqa/learner/LearnerCRM\";\r\nimport LearnerCRMBulkUpload from \"./etqa/learner/LearnerCRMBulkUpload\";\r\nimport Person from \"./etqa/person/Person\";\r\nimport LearnerSkillsProgrammeSearch from \"./etqa/learner/LearnerSkillsProgram\";\r\nimport LearnerAbsorptionSearch from \"./etqa/learner/LearnerAbsorption\";\r\nimport LearnerSponsorshipSearch from \"./etqa/learner/LearnerSponsorship\";\r\nimport LearnerEnterpriseDevelopmentSearch from \"./etqa/learner/LearnerEnterpriseDevelopment\";\r\nimport LearnerSupplierDevelopmentSearch from \"./etqa/learner/LearnerSupplierDevelopment\";\r\nimport LearnerBursarySearch from \"./etqa/learner/LearnerBursary\";\r\nimport LearnerUnitStandardSearch from \"./etqa/learner/LearnerUnitStandard\";\r\nimport LearnerCandidacySearch from \"./etqa/learner/LearnerCandidacy\";\r\nimport LearnerInternshipsSearch from \"./etqa/learner/LearnerInternships\";\r\nimport LearnerAETSearch from \"./etqa/learner/LearnerAET\";\r\nimport LearnerFETSearch from \"./etqa/learner/LearnerFET\";\r\nimport LearnerQualificationSearch from \"./etqa/learner/LearnerQualification\";\r\nimport LearnerQualificationUSSearch from \"./etqa/learner/LearnerQualificationUSSearch\";\r\nimport LearnerTradeSearch from \"./etqa/learner/LearnerTrade\";\r\nimport LearnerLearnershipSearch from \"./etqa/learner/LearnerLearnership\";\r\nimport LearnerLearnershipAchievements from \"./etqa/learner/LearnerLearnershipAchievement\";\r\nimport LearnerUnitStandardAchievement from \"./etqa/learner/LearnerUnitStandardAchievement\";\r\nimport LearnerQualificationAchievement from \"./etqa/learner/LearnerQualificationAchievement\";\r\nimport LearnerSkillsProgrammeAchievement from \"./etqa/learner/LearnerSkillsProgrammeAchievement\";\r\nimport LearnerLearnershipAssessments from \"./etqa/learner/LearnerLearnershipAssessment\";\r\nimport ViewLearnershipAchievementUS from \"./etqa/learner/ViewLearnershipAchievementUS\";\r\nimport ViewSkillsProgrammeAchievementUS from \"./etqa/learner/ViewSkillsProgrammeAchievementUS\";\r\nimport ViewQualificationAchievementUS from \"./etqa/learner/ViewQualificationAchievementUS\";\r\nimport ViewLearnershipAssessment from \"./etqa/learner/ViewLearnershipAssessment\";\r\nimport ViewSkillsProgrammeAssessment from \"./etqa/learner/ViewSkillsProgrammeAssessment\";\r\nimport ViewBursaryAssessment from \"./etqa/learner/ViewBursaryAssessment\";\r\nimport ViewQualificationAssessment from \"./etqa/learner/ViewQualificationAssessment\";\r\nimport ViewUnitStandardAssessment from \"./etqa/learner/ViewUnitStandardAssessment\";\r\nimport LearnerUnitStandardAssessment from \"./etqa/learner/LearnerUnitStandardAssessment\";\r\nimport LearnerQualificationAssessment from \"./etqa/learner/LearnerQualificationAssessment\";\r\nimport LearnerSkillsProgrammeAssessment from \"./etqa/learner/LearnerSkillsProgrammeAssessment\";\r\nimport LearnerBursaryAssessment from \"./etqa/learner/LearnerBursaryAssessment\";\r\nimport Moderator from \"./etqa/moderator/Moderator\";\r\nimport ModeratorSearch from \"./etqa/moderator/ModeratorSearch\";\r\nimport ModeratorSkillsProgramme from \"./etqa/moderator/ModeratorSkillsProgramme\";\r\nimport ModeratorBursary from \"./etqa/moderator/ModeratorBursary\";\r\nimport ModeratorQualification from \"./etqa/moderator/ModeratorQualification\";\r\nimport Moderatorlearnership from \"./etqa/moderator/ModeratorLearnerships\";\r\nimport ModeratorUnitStandards from \"./etqa/moderator/ModeratorUnitStandards\";\r\nimport ModeratorProviderSearch from \"./etqa/moderator/ModeratorProviders\";\r\nimport ModeratorRegistrationDetails from \"./etqa/moderator/ModeratorRegistrationDetails\";\r\nimport AssessorSkillsProgrammeSearch from \"./etqa/assessor/AssessorSkillsProgramme\";\r\nimport AssessorBursarySearch from \"./etqa/assessor/AssessorBursary\";\r\nimport FacilitatorSkillsProgrammeSearch from \"./etqa/facilitator/FacilitatorSkillsProgramme\";\r\nimport AssessorQualificationSearch from \"./etqa/assessor/AssessorQualifications\";\r\nimport FacilitatorQualificationSearch from \"./etqa/facilitator/FacilitatorQualifications\";\r\nimport AssessorLearnershipSearch from \"./etqa/assessor/AssessorLearnerships\";\r\nimport FacilitatorLearnershipSearch from \"./etqa/facilitator/FacilitatorLearnerships\";\r\nimport AssessorLearnershipUSSearch from \"./etqa/assessor/AssessorLearnershipUSSearch\";\r\nimport FacilitatorLearnershipUSSearch from \"./etqa/facilitator/FacilitatorLearnershipUSSearch\";\r\nimport ModeratorRegistrationHistory from \"./etqa/moderator/RegistrationHistory\";\r\nimport ModeratorCRM from \"./etqa/moderator/ModeratorCRM\";\r\nimport UploadPerson from \"./etqa/bulkupload/uploadPerson\";\r\nimport UploadLearnership from \"./etqa/bulkupload/uploadLearnership\";\r\nimport UploadSkills from \"./etqa/bulkupload/uploadSkills\";\r\nimport UploadBursaries from \"./etqa/bulkupload/uploadBursaries\";\r\nimport UploadInternship from \"./etqa/bulkupload/uploadInternship\";\r\nimport UploadAET from \"./etqa/bulkupload/uploadAET\";\r\nimport UploadCandidacy from \"./etqa/bulkupload/uploadCandidacy\";\r\nimport UploadFET from \"./etqa/bulkupload/uploadFET\";\r\nimport UploadQualification from \"./etqa/bulkupload/uploadQualification\";\r\nimport UploadUnitStandard from \"./etqa/bulkupload/uploadUnitStandard\";\r\nimport UploadAchievement from \"./etqa/bulkupload/uploadAchievement\";\r\nimport AssessorRegistrationHistory from \"./etqa/assessor/RegistrationHistory\";\r\nimport FacilitatorRegistrationHistory from \"./etqa/facilitator/RegistrationHistory\";\r\nimport LearnerSkillsProgram from \"./etqa/learner/LearnerSkillsProgram\";\r\nimport AddLearnerSkillsProgram from \"./etqa/learner/AddLearnerSkillsProgram\";\r\nimport AddLearnerBursary from \"./etqa/learner/AddLearnerBursary\";\r\nimport AddLearnerInternships from \"./etqa/learner/AddLearnerInternships\";\r\nimport AddLearnerLearnership from \"./etqa/learner/AddLearnerLearnership\";\r\nimport AddLearnerQualification from \"./etqa/learner/AddLearnerQualification\";\r\nimport AddLearnerUnitStandard from \"./etqa/learner/AddLearnerUnitStandard\";\r\nimport AddLearnerAET from \"./etqa/learner/AddLearnerAET\";\r\nimport AddLearnerFET from \"./etqa/learner/AddLearnerFET\";\r\nimport AddLearnerCandidacy from \"./etqa/learner/AddLearnerCandidacy\";\r\nimport AddLearnerTrade from \"./etqa/learner/AddLearnerTrade\";\r\nimport AssessorUnitStandards from \"./etqa/assessor/AssessorUnitStandards\";\r\nimport FacilitatorUnitStandards from \"./etqa/facilitator/FacilitatorUnitStandards\";\r\nimport AssessorProviderSearch from \"./etqa/assessor/AssessorProvider\";\r\nimport FacilitatorProviderSearch from \"./etqa/facilitator/FacilitatorProvider\";\r\nimport AssessorRegistrationDetails from \"./etqa/assessor/AssessorRegistrationDetails\";\r\nimport FacilitatorRegistrationDetails from \"./etqa/facilitator/FacilitatorRegistrationDetails\";\r\nimport AssessorCRM from \"./etqa/assessor/AssessorCRM\";\r\nimport FacilitatorCRM from \"./etqa/facilitator/FacilitatorCRM\";\r\nimport EmployerCRM from \"./etqa/employer/EmployerCRM\";\r\nimport FacilitatorProjectSearch from \"./etqa/facilitator/FacilitatorProjectSearch\";\r\n\r\nimport OrganisationCRM from \"./skills/organisation/OrganisationCRM\";\r\n\r\nimport GrantSetupSearch from \"./etqa/grants/grantsetup/GrantSetupSearch\";\r\nimport AddEditTranche from \"./etqa/grants/grantsetup/AddEditTranche\";\r\nimport TrancheDetails from \"./etqa/grants/grantsetup/TrancheDetails\";\r\nimport GrantSetupElectiveUSSearch from \"./etqa/grants/grantsetup/GrantSetupElectiveUSSearch\";\r\nimport TrancheSetupProjectCost from \"./etqa/grants/grantsetup/TrancheSetupProjectCost\";\r\nimport TrancheSetupLearners from \"./etqa/grants/grantsetup/GrantSetupLearnerSearch\";\r\nimport TrancheSetupCRM from \"./etqa/grants/grantsetup/GrantSetupCRM\";\r\nimport TrancheSetupCRMBulkUpload from \"./etqa/grants/grantsetup/GrantSetupCRMBulkUpload\";\r\nimport TrancheSetupEAPTarget from \"./etqa/grants/grantsetup/TrancheSetupEAPTarget\";\r\nimport ProcessingNav from \"./etqa/grants/grantprocessing/ProcessingNav\";\r\nimport GenerateClaimSearch from \"./etqa/grants/grantprocessing/GenerateClaimSearch\";\r\nimport ApproveClaimSearch from \"./etqa/grants/grantprocessing/ApproveClaimSearch\";\r\nimport GrantClaimFormReversalSearch from \"./etqa/grants/grantprocessing/GrantClaimFormReversalSearch\";\r\nimport DownloadClaimSearch from \"./etqa/grants/grantprocessing/DownloadClaimSearch\";\r\nimport GenerateBatchSearch from \"./etqa/grants/grantprocessing/GenerateBatchSearch\";\r\nimport DownloadBatchSearch from \"./etqa/grants/grantprocessing/DownloadBatchSearch\";\r\nimport AXProcessorSearch from \"./etqa/grants/grantprocessing/AXProcessorSearch\";\r\nimport GrantReversalsSearch from \"./etqa/grants/grantprocessing/GrantReversalsSearch\";\r\nimport BulkGrantAssociation from \"./etqa/grants/grantassociations/BulkGrantAssociation\";\r\nimport BulkGrantDeAssociation from \"./etqa/grants/grantassociations/BulkGrantDiAssociation\";\r\nimport TrancheTracking from \"./etqa/grants/grantsetup/TrancheTracking\";\r\n\r\nimport ProviderCRM from \"./etqa/provider/ProviderCRM\";\r\nimport AssessorIDDocument from \"./etqa/assessor/AssessorIDDocument\";\r\n\r\nimport ProviderSearch from \"./etqa/provider/ProviderSearch\";\r\nimport Provider from \"./etqa/provider/Provider\";\r\nimport Outcome from \"./etqa/program/Outcome\";\r\nimport ProviderMonitoringAndEvaluation from \"./etqa/provider/ProviderMonitoringAndEvaluation\";\r\nimport ProviderTrade from \"./etqa/provider/ProviderTrade\";\r\nimport ProviderContact from \"./etqa/provider/ProviderContact\";\r\nimport ProviderUsers from \"./etqa/provider/ProviderUsers\";\r\nimport ProviderSiteVisitsSearch from \"./etqa/provider/ProviderSiteVisits\";\r\nimport ProviderAccreditation from \"./etqa/provider/ProviderAccreditation\";\r\nimport ProviderAccreditationHistory from \"./etqa/provider/ProviderAccreditationHistory\";\r\nimport ProviderLearner from \"./etqa/provider/ProviderLearner\";\r\nimport ProviderUnitStandards from \"./etqa/provider/ProviderUnitStandards\";\r\nimport ProviderQualificationSearch from \"./etqa/provider/ProviderQualificationsSearch\";\r\nimport ProviderSkillsProgrammeSearch from \"./etqa/provider/ProviderSkillsProgrammeSearch\";\r\nimport ProviderSkillsProgrammeUSSearch from \"./etqa/provider/ProviderSkillsProgrammeUSSearch\";\r\nimport ProviderBursarySearch from \"./etqa/provider/ProviderBursarySearch\";\r\nimport ProviderLearnershipUSSearch from \"./etqa/provider/ProviderLearnershipUSSearch\";\r\nimport ProviderQualificationUSSearch from \"./etqa/provider/ProviderQualificationUSSearch\";\r\nimport ProviderLearnershipSearch from \"./etqa/provider/ProviderLearnershipSearch\";\r\nimport ProviderAssessorSearch from \"./etqa/provider/ProviderAssessors\";\r\nimport ProviderModeratorSearch from \"./etqa/provider/ProviderModeratorSearch\";\r\nimport ExternalProviderSearch from \"./etqa/externalmoderator/ExternalModeratorSearch\";\r\nimport UnitStandardSetupSearch from \"./etqa/program/UnitStandardSetupSearch\";\r\nimport UnitStandardSetup from \"./etqa/program/UnitStandardSetup\";\r\nimport QualificationSetupSearch from \"./etqa/program/QualificationSetupSearch\";\r\nimport QualificationSetup from \"./etqa/program/QualificationSetup\";\r\nimport LearnershipSetupSearch from \"./etqa/program/LearnershipSetupSearch\";\r\nimport AETSetupSearch from \"./etqa/program/AET/AETSetupSearch\";\r\nimport AETSetup from \"./etqa/program/AET/AETSetup\";\r\nimport TradeSetupSearch from \"./etqa/program/Trade/TradeSetupSearch\";\r\nimport TradeSetup from \"./etqa/program/Trade/TradeSetup\";\r\nimport LearnershipUnitStandardSearch from \"./etqa/program/LearnershipUnitStandardSearch\";\r\nimport LearnershipSetup from \"./etqa/program/LearnershipSetup\";\r\nimport LearnershipSetupCRM from \"./etqa/program/LearnershipSetupCRM\";\r\nimport LearnershipSetupCRMBulkUpload from \"./etqa/program/LearnershipSetupCRMBulkUpload\";\r\nimport SAQAXMLImport from \"./etqa/program/SAQAXMLImport\";\r\nimport ShortCourseSetupSearch from \"./etqa/program/ShortCourseSetupSearch\";\r\nimport SkillsProgramSetupSearch from \"./etqa/program/SkillsProgramSetupSearch\";\r\nimport SkillsProgramSetup from \"./etqa/program/SkillsProgramSetup\";\r\nimport SkillsProgrammeSetupCRM from \"./etqa/program/SkillsProgrammeSetupCRM\";\r\nimport SkillsProgrammeSetupCRMBulkUpload from \"./etqa/program/SkillsProgrammeSetupCRMBulkUpload\";\r\nimport BursarySetupSearch from \"./etqa/program/BursarySetupSearch\";\r\nimport BursarySetup from \"./etqa/program/BursarySetup\";\r\nimport BursarySetupCRM from \"./etqa/program/BursarySetupCRM\";\r\nimport BursarySetupCRMBulkUpload from \"./etqa/program/BursarySetupCRMBulkUpload\";\r\nimport ArtisansSetupSearch from \"./etqa/program/ArtisansSetupSearch\";\r\nimport EmployerLearnerSearch from \"./etqa/employer/EmployerLearnerSearch\";\r\nimport EmployerProjectSearch from \"./etqa/employer/EmployerProjectSearch\";\r\nimport EmployerUserSearch from \"./etqa/employer/EmployerUserSearch\";\r\nimport EmployerContactSearch from \"./etqa/employer/EmployerContactSearch\";\r\nimport EmployerBillingContactSearch from \"./etqa/employer/EmployerBillingContactSearch\";\r\nimport AddLearnerFlow from \"./etqa/learner/AddLearnerFlow\";\r\nimport AddPersonFlow from \"./etqa/person/AddPersonFlow\";\r\nimport AddAssessorFlow from \"./etqa/assessor/AddAssessorFlow\";\r\nimport AddModeratorFlow from \"./etqa/moderator/AddModeratorFlow\";\r\nimport AddFacilitatorFlow from \"./etqa/facilitator/AddFacilitatorFlow\";\r\nimport AddConsultantFlow from \"./etqa/consultant/AddConsultantFlow\";\r\nimport AddProjectOwnerFlow from \"./etqa/projectowner/AddProjectOwnerFlow\";\r\nimport Dashboard from \"./widgets/Dashboard\";\r\nimport SDFDashboard from \"./Dashboards/SDFDashboard\";\r\nimport StakeholderDashboard from \"./Dashboards/StakeholderDashboard\";\r\nimport SkillsDashboard from \"./Dashboards/SkillsDashboard\";\r\nimport { Route } from \"react-router-dom\";\r\nimport QualificationUnitStandardSearch from \"./etqa/program/QualificationUnitStandardSearch\";\r\nimport SkillsUnitStandardSearch from \"./etqa/program/SkillsUnitStandardSearch\";\r\nimport BursaryUnitStandardSearch from \"./etqa/program/BursaryUnitStandardSearch\";\r\nimport SDFSearch from \"./skills/sdf/SDFSearch\";\r\nimport RoleMaintenanceSearch from \"./maintenance/Role/RoleSearch\";\r\nimport UserMaintenanceSearch from \"./maintenance/User/UserSearch\";\r\nimport UserDetailsMaintenanceSearch from \"./maintenance/User/UserDetail\";\r\n\r\nimport UserRoleSearch from \"./maintenance/User/UserRoles\";\r\nimport ClientsEmailsSearch from \"./maintenance/Clients/ClientsEmailsSearch\";\r\nimport AudienceOptions from \"./maintenance/Clients/AudienceOptions\";\r\nimport EmailAdd from \"./maintenance/Clients/EmailAdd\";\r\n\r\nimport SkillsLetterCreationSearch from \"./maintenance/Skills/SkillsLetterCreationSearch\";\r\nimport SkillsLetterCreation from \"./maintenance/Skills/SkillsLetterCreation\";\r\nimport SkillsQueryReasonSearch from \"./maintenance/Skills/SkillsQueryReasonSearch\";\r\nimport SkillsQueryReason from \"./maintenance/Skills/SkillsQueryReason\";\r\nimport SkillsRejectionReasonSearch from \"./maintenance/Skills/SkillsRejectionReasonSearch\";\r\nimport SkillsRejectionReason from \"./maintenance/Skills/SkillsRejectionReason\";\r\nimport SkillsTNumberConversionSearch from \"./maintenance/Skills/SkillsTNumberConversionSearch\";\r\nimport SkillsTNumberConversion from \"./maintenance/Skills/SkillsTNumberConversion\";\r\n\r\nimport CreateBenefitsDescriptionSearch from \"./maintenance/Benefits/CreateBenefitsDescriptionSearch\";\r\nimport BenefitsDescriptionsSearch from \"./maintenance/Benefits/BenefitsDescriptionsSearch\";\r\nimport CreateInterventionTitles from \"./maintenance/Benefits/CreateInterventionTitles\";\r\nimport BenefitsTargetAddFormSearch from \"./maintenance/Benefits/BenefitsTargetAddFormSearch\";\r\nimport BenefitsTargetsSearch from \"./maintenance/Benefits/BenefitsTargetsSearch\";\r\nimport InterventionTitlesSearch from \"./maintenance/Benefits/InterventionTitlesSearch\";\r\n\r\nimport LinkingSearch from \"./maintenance/Benefits/LinkingSearch\";\r\nimport BenefitsUpload from \"./maintenance/Benefits/BenefitsUpload\";\r\nimport CreateLinkingSearch from \"./maintenance/Benefits/CreateLinkingSearch\";\r\n\r\nimport DGLetterCreation from \"./maintenance/DG/DGLetterCreation\";\r\nimport DGLetterCreationSearch from \"./maintenance/DG/DGLetterCreationSearch\";\r\nimport DGQueryReasonSearch from \"./maintenance/DG/DGQueryReasonSearch\";\r\nimport DGQueryReason from \"./maintenance/DG/DGQueryReason\";\r\nimport DGRejectionReasonSearch from \"./maintenance/DG/DGRejectionReasonSearch\";\r\nimport DGRejectionReason from \"./maintenance/DG/DGRejectionReason\";\r\n\r\nimport Role from \"./maintenance/Role/Role\";\r\nimport RolePermissionSearch from \"./maintenance/Role/RolePermissionSearch\";\r\nimport RolePermission from \"./maintenance/Role/RolePermission\";\r\nimport SDF from \"./skills/sdf/SDF\";\r\nimport SDFOrganisationDetails from \"./skills/sdf/SDFOrganisations\";\r\n\r\nimport DGOrganisationSearch from \"./dg/organisation/DGOrganisationSearch\";\r\nimport DGOrganisation from \"./dg/organisation/DGOrganisation\";\r\nimport StakeholderSearch from \"./dg/stakeholder/StakeholderSearch\";\r\nimport Stakeholder from \"./dg/stakeholder/Stakeholder\";\r\nimport StakeholderOrganisationDetails from \"./dg/stakeholder/StakeholderOrganisationDetails\";\r\nimport DGOrganisationContact from \"./dg/organisation/DGOrganisationContact\";\r\nimport DGDocumentsUpload from \"./dg/documentuploads/DGDocumentUploads\";\r\nimport OrganisationStakeholder from \"./dg/organisation/OrganisationStakeholder\";\r\nimport DGOrganisationCRM from \"./dg/organisation/DGOrganisationCRM\";\r\n\r\nimport Organisation from \"./skills/organisation/Organisation\";\r\nimport OrganisationSearch from \"./skills/organisation/OrganisationSearch\";\r\nimport OrganisationContact from \"./skills/organisation/OrganisationContact\";\r\nimport OrganisationBankingDetails from \"./skills/organisation/OrganisationBankingDetails\";\r\nimport ChildOrganisationSearch from \"./skills/organisation/ChildOrganisationSearch\";\r\nimport ChildOrganisation from \"./skills/organisation/ChildOrganisation\";\r\nimport OrganisationCFODetails from \"./skills/organisation/OrganisationCFODetails\";\r\nimport TrainingCommitteeSearchRecord from \"./skills/organisation/TrainingCommitteeRecords\";\r\nimport TrainingCommittee from \"./skills/organisation/TrainingCommittee\";\r\nimport UnionSearchRecord from \"./skills/organisation/UnionRecords\";\r\n\r\nimport WspAtrForms from \"./skills/WspAtrForms/WspAtrForms\";\r\nimport EmploymentNumberForm2022 from \"./skills/WspAtrForms/Forms/2022/EmploymentNumber\";\r\nimport EmploymentNumberSmallForm2022 from \"./skills/WspAtrForms/Forms/2022/EmploymentNumberSmall\";\r\nimport AnnualTrainingReportForm2022 from \"./skills/WspAtrForms/Forms/2022/AnnualTrainingReport\";\r\nimport ActualPivotalTrainingForm2022 from \"./skills/WspAtrForms/Forms/2022/ActualPivotalTraining\";\r\nimport WorkplaceSkillsPlanForm2022 from \"./skills/WspAtrForms/Forms/2022/WorkplaceSkillsPlan\";\r\nimport QualificationProfileForm2022 from \"./skills/WspAtrForms/Forms/2022/QualificationProfile\";\r\nimport PlannedPivotalTrainingForm2022 from \"./skills/WspAtrForms/Forms/2022/PlannedPivotalTraining\";\r\nimport ActualBeneficiariesTrainingForm2022 from \"./skills/WspAtrForms/Forms/2022/ActualBeneficiariesTraining\";\r\nimport ActualAETForm2022 from \"./skills/WspAtrForms/Forms/2022/ActualAET\";\r\nimport PlannedBeneficiariesTrainingForm2022 from \"./skills/WspAtrForms/Forms/2022/PlannedBeneficiariesTraining\";\r\nimport ProvincialDetailsForm2022 from \"./skills/WspAtrForms/Forms/2022/ProvincialDetails\";\r\nimport PlannedAETForm2022 from \"./skills/WspAtrForms/Forms/2022/PlannedAET\";\r\nimport ImpactAssessmentForm2022 from \"./skills/WspAtrForms/Forms/2022/ImpactAssessment\";\r\nimport HardToFillVacanciesForm2022 from \"./skills/WspAtrForms/Forms/2022/HardToFillVacancies\";\r\nimport CheckListForm2022 from \"./skills/WspAtrForms/Forms/2022/CheckList\";\r\nimport WspAtrDashboard from \"./skills/WspAtrForms/WspAtrDashboard\";\r\nimport WspAtrDocumentsUpload from \"./skills/WspAtrForms/DocumentsUpload\";\r\nimport WspAtrVerification from \"./skills/WspAtrForms/WSPATRVerificationSearch\";\r\nimport WSPATRVerificationMain from \"./skills/WspAtrForms/WSPATRVerificationMain\";\r\nimport WSPATREvaluation from \"./skills/WspAtrForms/WSPATREvaluationSearch\";\r\nimport WSPATREvaluationMain from \"./skills/WspAtrForms/WSPATREvaluationMain\";\r\nimport Approval from \"./skills/WspAtrForms/Approval\";\r\nimport WspAtrApproval from \"./skills/WspAtrForms/WSPATRApprovalSearch\";\r\nimport WSPATRApprovalMain from \"./skills/WspAtrForms/WSPATRApprovalMain\";\r\nimport Verification from \"./skills/WspAtrForms/Verification\";\r\nimport Evaluation from \"./skills/WspAtrForms/Evaluation\";\r\nimport Feedback from \"./skills/organisation/Stackholderfeedback\";\r\nimport RequestExtension from \"./skills/WspAtrForms/Extension\";\r\nimport LodgeApeal from \"./skills/WspAtrForms/LodgeApeal\";\r\n\r\nimport OrganisationSDF from \"./skills/organisation/OrganisationSDF\";\r\nimport OrganisationGrantsLevies from \"./skills/organisation/OrganisationGrantsLevies\";\r\nimport Levies from \"./skills/organisation/Levies\";\r\nimport Grants from \"./skills/organisation/Grants\";\r\nimport DiscretionaryGrants from \"./skills/organisation/DiscretionaryGrants\";\r\nimport InterSetaTransfer from \"./skills/organisation/InterSetaTransfer\";\r\nimport SDFComplianceLetter from \"./skills/organisation/OrganisationSDFComplianceLetter\";\r\n\r\nimport EmployerFileImport from \"./skills/EmployerFileImport/EmployerFileImport\";\r\n\r\nimport ETQAReportSearch from \"./reports/etqa/ETQAReportSearch\";\r\nimport ETQAReport from \"./reports/etqa/ETQAReport\";\r\nimport SkillsReportSearch from \"./reports/skills/SkillsReportSearch\";\r\nimport SkillsReport from \"./reports/skills/SkillsReport\";\r\nimport MasterFileSearch from \"./reports/masterfiles/MasterFileSearch\";\r\nimport MasterFile from \"./reports/masterfiles/MasterFile\";\r\nimport SETMISFileSearch from \"./reports/setmisfiles/SETMISFileSearch\";\r\nimport SETMISFile from \"./reports/setmisfiles/SETMISFile\";\r\nimport DGReportSearch from \"./reports/dg/DGReportSearch\";\r\nimport DGReport from \"./reports/dg/DGReport\";\r\nimport CustomReports from \"./reports/customreports/CustomReports\";\r\nimport AdminReportSearch from \"./reports/admin/AdminReportSearch\";\r\nimport AdminReport from \"./reports/admin/AdminReport\";\r\nimport ProviderReportSearch from \"./reports/provider/ProviderReportSearch\";\r\nimport ProviderReport from \"./reports/provider/ProviderReport\";\r\n\r\nimport ProviderDocuments from \"./etqa/approval and certification/ProviderDocuments\";\r\nimport AssessorDocuments from \"./etqa/approval and certification/AssessorDocuments\";\r\nimport ModeratorDocuments from \"./etqa/approval and certification/ModeratorDocuments\";\r\nimport LearnerDocuments from \"./etqa/approval and certification/LearnerDocuments\";\r\nimport LearnerAttendance from \"./etqa/approval and certification/LearnerAttendance\";\r\nimport BulkApproval from \"./etqa/approval and certification/BulkApproval\";\r\nimport ExpiryNotification from \"./etqa/expiry notification/ExpiryNotification\";\r\nimport LearnerEndorsementLetter from \"./etqa/approval and certification/LearnerEndorsementLetter\";\r\nimport POR from \"./etqa/proof of registration/ProofOfRegistrationSearch\";\r\n\r\nimport Test from \"./Test\";\r\nimport TestTableDemo from \"./test components/TestTableDemo\";\r\n\r\nimport DGApplication from \"./dg/application/DGApplication\";\r\nimport DGApplicationDashboard from \"./dg/application/DGApplicationDashboard\";\r\nimport DGForms from \"./dg/application/Forms/DGForms\";\r\nimport DGVerificationSearch from \"./dg/verification/DGVerificationSearch\";\r\nimport DGVerificationMain from \"./dg/verification/DGVerificationMain\";\r\nimport DGEvaluationSearch from \"./dg/evaluation/DGEvaluationSearch\";\r\nimport DGEvaluationMain from \"./dg/evaluation/DGEvaluationMain\";\r\nimport DGApprovalSearch from \"./dg/approval/DGApprovalSearch\";\r\nimport DGApprovalMain from \"./dg/approval/DGApprovalMain\";\r\nimport DGContracts from \"./dg/contracts/DGContracts\";\r\n\r\n//DG Forms 2022\r\nimport ArtisanForm2022 from \"./dg/application/Forms/2022/Artisan\";\r\nimport AETForm2022 from \"./dg/application/Forms/2022/AET\";\r\nimport BursaryForm2022 from \"./dg/application/Forms/2022/Bursary\";\r\nimport LearnershipForm2022 from \"./dg/application/Forms/2022/Learnership\";\r\nimport CandidacyForm2022 from \"./dg/application/Forms/2022/Candidacy\";\r\nimport TVETForm2022 from \"./dg/application/Forms/2022/TVET\";\r\nimport LearnershipRPLForm2022 from \"./dg/application/Forms/2022/LearnershipRPL\";\r\nimport InternshipForm2022 from \"./dg/application/Forms/2022/Internship\";\r\nimport SkillsProgrammeForm2022 from \"./dg/application/Forms/2022/SkillsProgramme\";\r\nimport WorkExperienceForm2022 from \"./dg/application/Forms/2022/WorkExperience\";\r\n\r\n//Helpdesk\r\nimport HelpdeskRequestSearch from \"./helpdesk/Request/HelpdeskRequestSearch\";\r\nimport HelpdeskRequest from \"./helpdesk/Request/HelpdeskRequest\";\r\nimport HelpDeskReport from \"./helpdesk/Report/HelpDeskReport\";\r\n\r\n\r\n/*QALP Dashboard*/\r\nimport QALPDashboard from \"./Dashboards/QALPDashboard\";\r\n\r\n\r\n\r\nclass Routes extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*DG Application*/}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*End DG Application*/}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*Helpdesk*/}\r\n \r\n \r\n \r\n {/*End Helpdesk*/}\r\n\r\n\r\n {/*QALPDashboard*/}\r\n \r\n\r\n\r\n\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(connect()(Routes));\r\n","import React from 'react';\r\nimport { Col } from 'react-bootstrap';\r\nimport \"./widgets.css\";\r\n\r\nconst styles = {\r\n color:\"red\"\r\n}\r\n\r\nconst FooterPage = (props) => {\r\n return (\r\n \r\n {props.children} \r\n Copyright © {new Date().getFullYear()} | Developed by SoluGrowth\r\n \r\n );\r\n}\r\n\r\nexport default FooterPage;","import { useMediaQuery } from '@material-ui/core';\r\nimport { makeStyles, useTheme } from '@material-ui/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Header from \"./header\";\r\nimport SideBar from \"./sidebar\";\r\nimport Routes from \"../Routes\";\r\nimport Footer from '../widgets/Footer';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport { Scrollbars } from 'react-custom-scrollbars';\r\nimport simsDashboard from '../../content/images/sims_dashboardsidenav_background.png';\r\nimport ViewUtils from '../ViewUtils';\r\nimport React, { Fragment, useEffect } from 'react';\r\n\r\nconst utils = new ViewUtils();\r\nconst sideBarWidth = 320;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'flex',\r\n height: \"100%\"\r\n },\r\n\r\n appBar: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n transition: theme.transitions.create(['width', 'margin'], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n },\r\n\r\n appBarShift: {\r\n marginLeft: sideBarWidth,\r\n width: `calc(100% - ${sideBarWidth}px)`,\r\n transition: theme.transitions.create(['width', 'margin'], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n },\r\n\r\n menuButton: {\r\n marginRight: 36,\r\n },\r\n\r\n hide: {\r\n display: 'none',\r\n },\r\n\r\n drawer: {\r\n width: sideBarWidth,\r\n flexShrink: 0,\r\n whiteSpace: 'nowrap',\r\n marginTop: '48px'\r\n },\r\n\r\n fullHeightDrawer: {\r\n height: \"100%\",\r\n //backgroundColor: \"#fff !important\",\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundImage: `url(${simsDashboard})`,\r\n backgroundPosition: \"center\",\r\n backgroundSize: \"cover\",\r\n },\r\n\r\n drawerOpen: {\r\n width: sideBarWidth,\r\n transition: theme.transitions.create('width', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n marginTop: '48px'\r\n },\r\n\r\n drawerClose: {\r\n transition: theme.transitions.create('width', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n overflowX: 'hidden',\r\n width: 0,/* theme.spacing(7) + 1,*/\r\n //[theme.breakpoints.up('sm')]: {\r\n // width: theme.spacing(9) + 1,\r\n //},\r\n },\r\n\r\n toolbar: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n marginTop: '48px',\r\n },\r\n\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(2),\r\n marginTop: \"48px\",\r\n\r\n height: \"100%\"\r\n },\r\n legend: {\r\n },\r\n colorScrollBar: {\r\n color: theme.palette.action.main,\r\n fill: theme.palette.action.main\r\n }\r\n}));\r\n\r\nexport default function MainLayout(props) {\r\n const [isMenuOpen, setIsMenuOpen] = React.useState(false);\r\n const theme = useTheme();\r\n const classes = useStyles();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up('lg'), {\r\n defaultMatches: false\r\n });\r\n //const [dashboardURL, setDashboardURL] = React.useState(\"\");\r\n //const [dashboardTitle, setDashboardTitle] = React.useState(\"\");\r\n\r\n const handleOpenMenu = () => {\r\n setIsMenuOpen(!isMenuOpen);\r\n }\r\n\r\n //useEffect(() => {\r\n // getdashboardlink();\r\n //}, [])\r\n\r\n //const getdashboardlink = () => {\r\n // let url = \"api/sims/Dashboard/GetDashboardURL\";\r\n // utils.invokeUrl(url, (response) => {\r\n // setDashboardURL(response.DashboardURL);\r\n // setDashboardTitle(response.DashboardTitle);\r\n // },\r\n // null,\r\n // {\r\n // method: 'GET',\r\n // headers: {\r\n // 'Accept': 'application/json',\r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n // }\r\n // }\r\n // )\r\n //}\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Dashboard\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { Button } from \"react-bootstrap\";\r\nimport { withAlert } from 'react-alert'\r\n//import { actionCreators } from '../../store/SecurityStore';\r\nimport * as actions from '../../store/actions/auth';\r\nimport \"./Login.css\";\r\nimport simslogoLoading from '../../content/images/logos/sims_logo_loading.png'\r\nimport LoadingIndicatorLogin from '../LoadingIndicatorLogin';\r\nimport ViewUtils from \"../ViewUtils\";\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Input from \"@material-ui/core/Input\";\r\n\r\n//const handler = (state) => {\r\n// let isLoading = state.security.isLoading;\r\n// let userDetails = state.security.userDetails;\r\n// return {\r\n// isLoading: isLoading,\r\n// userDetails: userDetails,\r\n// authenticated: userDetails.Authenticated,\r\n// otpSent: userDetails.OTPSent,\r\n// message: userDetails.Message,\r\n// };\r\n//};\r\nimport { useState } from \"react\";\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass Login extends Component {\r\n\r\n state = {\r\n username: \"\",\r\n password: \"\",\r\n message: \"\",\r\n passwordShown: false,\r\n //display: \"none\",\r\n //loading: true\r\n };\r\n\r\n\r\n showAlert(msg, msgType) {\r\n this.props.alert.show(msg, {\r\n timeout: 15000, // custom timeout just for this one alert\r\n type: msgType,\r\n onOpen: () => {\r\n //console.log('open')\r\n }, // callback that will be executed after this alert open\r\n onClose: () => {\r\n //console.log('closed')\r\n } // callback that will be executed after this alert is removed\r\n })\r\n }\r\n\r\n validateUserName() {\r\n return this.state.username.length > 0;\r\n }\r\n\r\n validatePassword() {\r\n return this.state.password.length > 0;\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.authenticated !== this.props.authenticated && this.props.authenticated) {\r\n this.props.history.push('/role');\r\n }\r\n if (prevProps.otpSent !== this.props.otpSent && this.props.otpSent) {\r\n this.props.history.push('/confirmOTP');\r\n }\r\n if (prevProps.passwordExpired !== this.props.passwordExpired && this.props.passwordExpired) {\r\n this.props.history.push('/reset');\r\n }\r\n\r\n if (prevProps.message !== this.props.message && this.props.message) {\r\n this.setState({ message: this.props.message });\r\n }\r\n\r\n if (prevProps.loginErrorMessage !== this.props.loginErrorMessage && this.props.loginErrorMessage) {\r\n this.showAlert(this.props.loginErrorMessage, 'error');\r\n }\r\n\r\n if (prevProps.loginMessage !== this.props.loginMessage && this.props.loginMessage) {\r\n this.showAlert(this.props.loginMessage, 'error');\r\n }\r\n }\r\n\r\n login = () => {\r\n\r\n if (!this.validateUserName() && !this.validatePassword()) {\r\n this.setState({ message: \"Enter username\", display: \"\" });\r\n this.showAlert('Enter username & password', 'error');\r\n return;\r\n }\r\n\r\n if (!this.validateUserName()) {\r\n this.setState({ message: \"Enter username\", display: \"\" });\r\n this.showAlert('Enter username', 'error');\r\n return;\r\n }\r\n\r\n if (!this.validatePassword()) {\r\n this.setState({ message: \"Enter password\" });\r\n this.showAlert('Enter Password', 'error');\r\n return;\r\n }\r\n\r\n this.setState({ message: \"\" });\r\n //this.props.login(this.state.username, this.state.password);\r\n this.props.onUserAuth(this.state.username, this.state.password, '/login');\r\n }\r\n\r\n // Password toggle handler\r\n togglePassword = () => {\r\n // chnage inverse the boolean state passwordShown\r\n if (this.state.passwordShown === false) {\r\n this.setState({ passwordShown: true })\r\n }\r\n else {\r\n this.setState({ passwordShown: false })\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n this.setState({ username: ev.target.value })}\r\n className=\"form-control\"\r\n placeholder=\"Enter Username\"\r\n aria-label=\"Username\"\r\n aria-describedby=\"basic-addon\" />\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n this.setState({ password: ev.target.value })}\r\n type={this.state.passwordShown ? \"text\" : \"password\"} className=\"form-control\"\r\n placeholder=\"Password\" aria-label=\"Password\"\r\n aria-describedby=\"basic-addon\"\r\n endAdornment={\r\n \r\n \r\n {this.state.passwordShown ? : }\r\n \r\n\r\n \r\n }\r\n />\r\n
\r\n\r\n
\r\n \r\n Login\r\n \r\n
\r\n Forgot password?

\r\n {/*SDF Registration
*/}\r\n {/*Stakeholder Registration (Discretionary Grant)*/}\r\n \r\n
\r\n
\r\n @ {new Date().getFullYear()} Copyright SIMS. All rights reserved. Developed By SoluGrowth\r\n
\r\n \r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\n//export default withRouter(\r\n// connect(handler,\r\n// dispatch => bindActionCreators(actionCreators, dispatch)\r\n// )(withAlert()(Login)))\r\n\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n isLoading: state.auth.isLoading,\r\n userDetails: state.auth.userDetails,\r\n authenticated: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Authenticated : false,\r\n otpSent: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.OTPSent : false,\r\n passwordExpired: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.PasswordExpired : false,\r\n loginMessage: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Message : null,\r\n loginErrorMessage: state.auth.errorMessage\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onUserAuth: (email, password, loginPath) => dispatch(actions.authUser(email, password, loginPath))\r\n };\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withAlert()(Login)));\r\n\r\n","import { LogLevel } from \"@azure/msal-browser\";\r\n\r\nexport const msalConfig = {\r\n auth: {\r\n clientId: \"5311aa91-d578-4c36-9d92-b8a39a9af24f\",\r\n authority: \"https://login.microsoftonline.com/2f37307c-b165-45ea-a717-caf228c409ab\"\r\n },\r\n cache: {\r\n cacheLocation: \"sessionStorage\", // This configures where your cache will be stored\r\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback: (level, message, containsPii) => {\r\n if (containsPii) {\r\n return;\r\n }\r\n switch (level) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n case LogLevel.Info:\r\n console.info(message);\r\n return;\r\n case LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n case LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const loginRequest = {\r\n scopes: [\"api://simsbat.solugrowth.com/SIMSUser.read\"]\r\n};","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { Button } from \"react-bootstrap\";\r\nimport { withAlert } from 'react-alert'\r\nimport * as actions from '../../store/actions/auth';\r\nimport \"./Login.css\";\r\nimport simslogoLoading from '../../content/images/logos/sims_logo_loading.png'\r\nimport LoadingIndicatorLogin from '../LoadingIndicatorLogin';\r\nimport ViewUtils from \"../ViewUtils\";\r\nimport { withMsal } from \"@azure/msal-react\";\r\nimport { InteractionStatus } from \"@azure/msal-browser\";\r\nimport { loginRequest } from './ADAuthConfig';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass ADLoginHandler extends Component {\r\n\r\n state = {\r\n username: \"\",\r\n password: \"\",\r\n message: \"\",\r\n //display: \"none\",\r\n //loading: true\r\n };\r\n\r\n showAlert(msg, msgType) {\r\n this.props.alert.show(msg, {\r\n timeout: 3000, // custom timeout just for this one alert\r\n type: msgType,\r\n onOpen: () => {\r\n //console.log('open')\r\n }, // callback that will be executed after this alert open\r\n onClose: () => {\r\n //console.log('closed')\r\n } // callback that will be executed after this alert is removed\r\n })\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.location.pathname !== \"/ADlogin\") {\r\n this.props.history.push('/ADlogin');\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.authenticated !== this.props.authenticated && this.props.authenticated) {\r\n this.props.history.push('/role');\r\n }\r\n if (prevProps.otpSent !== this.props.otpSent && this.props.otpSent) {\r\n this.props.history.push('/confirmOTP');\r\n }\r\n if (prevProps.passwordExpired !== this.props.passwordExpired && this.props.passwordExpired) {\r\n this.props.history.push('/reset');\r\n }\r\n\r\n if (prevProps.message !== this.props.message && this.props.message) {\r\n this.setState({ message: this.props.message });\r\n }\r\n\r\n if (prevProps.loginErrorMessage !== this.props.loginErrorMessage && this.props.loginErrorMessage) {\r\n this.showAlert(this.props.loginErrorMessage, 'error');\r\n }\r\n\r\n if (prevProps.loginMessage !== this.props.loginMessage && this.props.loginMessage) {\r\n this.showAlert(this.props.loginMessage, 'error');\r\n }\r\n }\r\n\r\n login = () => {\r\n this.callLogin();\r\n\r\n }\r\n\r\n callLogin() {\r\n const isAuthenticated = this.props.msalContext.accounts.length > 0;\r\n const msalInstance = this.props.msalContext.instance;\r\n\r\n // If a user is not logged in and authentication is not already in progress, invoke login\r\n if (!isAuthenticated && this.props.msalContext.inProgress === InteractionStatus.None) {\r\n msalInstance.loginPopup(loginRequest).then((loginResponse) => {\r\n this.props.onUserADAuth('/ADlogin', loginResponse.accessToken);\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n Login\r\n \r\n \r\n
\r\n
\r\n @ {new Date().getFullYear()} Copyright SIMS. All rights reserved. Developed By SoluGrowth\r\n
\r\n \r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n isLoading: state.auth.isLoading,\r\n userDetails: state.auth.userDetails,\r\n authenticated: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Authenticated : false,\r\n otpSent: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.OTPSent : false,\r\n passwordExpired: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.PasswordExpired : false,\r\n loginMessage: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Message : null,\r\n loginErrorMessage: state.auth.errorMessage\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onUserADAuth: (loginPath, Token) => dispatch(actions.authADUser(loginPath, Token))\r\n };\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withAlert()(withMsal(ADLoginHandler))));\r\n\r\n","import React, { Component } from \"react\";\r\nimport \"./Login.css\";\r\n//import { MsalProvider } from \"@azure/msal-react\";\r\n//import { PublicClientApplication } from \"@azure/msal-browser\";\r\nimport AdLoginHandler from './ADLoginHandler';\r\n/*import { msalConfig } from './ADAuthConfig';*/\r\n\r\n/*const pca = new PublicClientApplication(msalConfig);*/\r\n\r\nclass ADLogin extends Component {\r\n\r\n render() {\r\n return (\r\n /* */\r\n \r\n /* */\r\n );\r\n }\r\n}\r\n\r\nexport default ADLogin;\r\n\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { Button } from \"react-bootstrap\";\r\nimport { withAlert } from 'react-alert'\r\n//import { actionCreators } from '../../store/SecurityStore';\r\nimport * as actions from '../../store/actions/auth';\r\nimport \"./Login.css\";\r\nimport simslogoLoading from '../../content/images/logos/sims_logo_loading.png'\r\nimport LoadingIndicatorLogin from '../LoadingIndicatorLogin';\r\nimport ViewUtils from \"../ViewUtils\";\r\n\r\n//const handler = (state) => {\r\n// let isLoading = state.security.isLoading;\r\n// let hashdetails = state.security.hashdetails;\r\n// return {\r\n// isLoading: isLoading,\r\n// hashdetails: hashdetails,\r\n// hashmailsent: hashdetails.HashMailSent,\r\n// message: hashdetails.Message,\r\n// };\r\n//};\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport class Forgot extends Component {\r\n\r\n state = {\r\n Username: \"\",\r\n message: \"\",\r\n display: \"none\",\r\n loading: true\r\n };\r\n\r\n validateUsername() {\r\n return this.state.Username.length > 0;\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n\r\n if (prevProps.loginErrorMessage !== this.props.loginErrorMessage && this.props.loginErrorMessage) {\r\n this.showAlert(this.props.loginErrorMessage, 'error');\r\n }\r\n\r\n if (prevProps.loginMessage !== this.props.loginMessage && this.props.loginMessage) {\r\n this.showAlert(this.props.loginMessage, 'error');\r\n }\r\n\r\n //if (prevProps.message !== this.props.message && this.props.message) {\r\n // if (this.props.hashmailsent === true) {\r\n // this.setState({ message: this.props.message });\r\n // this.showAlert(this.props.message, \"success\")\r\n // }\r\n // else {\r\n // this.setState({ message: this.props.message });\r\n // this.showAlert(this.props.message, 'error');\r\n // }\r\n //}\r\n }\r\n\r\n reset = () => {\r\n\r\n if (!this.validateUsername()) {\r\n this.setState({ message: \"Enter Username\", display: \"\" });\r\n this.showAlert('Enter Username', 'error');\r\n return;\r\n }\r\n\r\n this.setState({ message: \"\" });\r\n //this.props.reset(this.state.Username);\r\n this.props.onAuthForgotPassword(this.state.Username);\r\n }\r\n\r\n showAlert(msg, msgType) {\r\n this.props.alert.show(msg, {\r\n timeout: 3000, // custom timeout just for this one alert\r\n type: msgType,\r\n onOpen: () => {\r\n },\r\n onClose: () => {\r\n }\r\n })\r\n }\r\n\r\n //componentDidMount() {\r\n // demoAsyncCall().then(() => this.setState({ loading: false }));\r\n //}\r\n\r\n render() {\r\n\r\n const successMessage = (\r\n
An email has been sent with your new password. Please note the email may take several minutes to receive. Please also remember to check your email blocking and spam settings if applicable.
\r\n );\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n this.setState({ Username: ev.target.value })}\r\n className=\"form-control\"\r\n placeholder=\"Please enter your Username\"\r\n aria-label=\"Username\"\r\n aria-describedby=\"basic-addon\" />\r\n
\r\n
\r\n {this.props.forgotPasswordSuccess && successMessage}\r\n \r\n Reset Password\r\n \r\n Back to Login\r\n \r\n
\r\n
\r\n @ {new Date().getFullYear()} Copyright SIMS. All rights reserved. Developed By SoluGrowth\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\n//function demoAsyncCall() {\r\n// return new Promise((resolve) => setTimeout(() => resolve(), 2500));\r\n//}\r\n\r\n//export default withRouter(\r\n// connect(handler,\r\n// dispatch => bindActionCreators(actionCreators, dispatch)\r\n// )(withAlert()(Forgot)))\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n isLoading: state.auth.isLoading,\r\n loginMessage: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Message : null,\r\n loginErrorMessage: state.auth.errorMessage,\r\n forgotPasswordSuccess: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.ForgotPasswordSuccess : false\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onAuthForgotPassword: (Username) => dispatch(actions.authForgotPassword(Username))\r\n };\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withAlert()(Forgot)));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { Button } from \"react-bootstrap\";\r\nimport { withAlert } from 'react-alert'\r\n//import { actionCreators } from '../../store/SecurityStore';\r\nimport * as actions from '../../store/actions/auth';\r\nimport \"./Login.css\";\r\nimport simslogoLoading from '../../content/images/logos/sims_logo_loading.png'\r\nimport LoadingIndicatorLogin from '../LoadingIndicatorLogin';\r\nimport ViewUtils from \"../ViewUtils\"; import VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Input from \"@material-ui/core/Input\";\r\n\r\n\r\n//const handler = (state) => {\r\n// let isLoading = state.security.isLoading;\r\n// let validdetails = state.security.validdetails;\r\n// return {\r\n// isLoading: isLoading,\r\n// validdetails: validdetails,\r\n// Valid: validdetails.Valid,\r\n// message: validdetails.Message,\r\n// };\r\n//};\r\n\r\nconst utils = new ViewUtils();\r\n\r\nexport class Reset extends Component {\r\n\r\n state = {\r\n Currentpassword: \"\",\r\n Newpassword: \"\",\r\n Confirmpassword: \"\",\r\n Valid: false,\r\n message: \"\",\r\n display: \"none\",\r\n loading: true,\r\n passwordShown1: false,\r\n passwordShown2: false,\r\n passwordShown3: false\r\n };\r\n\r\n validateCurrentPassword() {\r\n if (this.state.Currentpassword !== undefined) {\r\n return this.state.Currentpassword.length > 0;\r\n }\r\n }\r\n\r\n validateNewPassword() {\r\n if (this.state.Newpassword !== undefined) {\r\n return this.state.Newpassword.length > 0;\r\n }\r\n }\r\n\r\n validateConfirmPassword() {\r\n if (this.state.Confirmpassword !== undefined) {\r\n return this.state.Confirmpassword.length > 0;\r\n }\r\n }\r\n\r\n showAlert(msg, msgType) {\r\n this.props.alert.show(msg, {\r\n timeout: 20000, // custom timeout just for this one alert\r\n type: msgType,\r\n onOpen: () => {\r\n },\r\n onClose: () => {\r\n }\r\n })\r\n }\r\n\r\n submit = () => {\r\n\r\n if (!this.validateCurrentPassword()) {\r\n this.setState({ message: \"Enter current password\", display: \"\" });\r\n this.showAlert('Enter current password', 'error');\r\n return;\r\n }\r\n\r\n if (!this.validateNewPassword()) {\r\n this.setState({ message: \"Enter new password\", display: \"\" });\r\n this.showAlert('Enter new password', 'error');\r\n return;\r\n }\r\n\r\n if (!this.validateConfirmPassword()) {\r\n this.setState({ message: \"Enter password confirmation\", display: \"\" });\r\n this.showAlert('Enter password confirmation', 'error');\r\n return;\r\n }\r\n\r\n if (this.state.Newpassword !== this.state.Confirmpassword) {\r\n this.setState({ message: \"Passwords do not match\", display: \"\" });\r\n this.showAlert('Passwords do not match', 'error');\r\n return;\r\n }\r\n\r\n //let urlElements = window.location.pathname.split('/');\r\n //let urlElelement = (urlElements[2]);\r\n //this.props.sendPasswordResetData(this.state.ConfirmPassword, urlElelement, 't', 't');\r\n //this.showAlert('Password Updated Successfully', 'success');\r\n //this.props.history.push('/login');\r\n this.props.onAuthResetPassword(this.props.userDetails.Username, this.state.Currentpassword, this.state.Newpassword, this.state.Confirmpassword);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n\r\n //if (this.props.Valid === true) {\r\n // }\r\n // else {\r\n // this.props.history.push('/login');\r\n // }\r\n if (prevProps.passwordReset !== this.props.passwordReset && this.props.passwordReset) {\r\n clearTimeout(this.props.userLoginTimer);\r\n this.props.history.push('/login');\r\n }\r\n\r\n if (prevProps.loginRedirectToLogin !== this.props.loginRedirectToLogin && this.props.loginRedirectToLogin) {\r\n this.props.history.push('/login');\r\n }\r\n\r\n if (prevProps.loginErrorMessage !== this.props.loginErrorMessage && this.props.loginErrorMessage) {\r\n this.showAlert(this.props.loginErrorMessage, 'error');\r\n }\r\n\r\n if (prevProps.loginMessage !== this.props.loginMessage && this.props.loginMessage) {\r\n this.showAlert(this.props.loginMessage, 'error');\r\n }\r\n }\r\n\r\n // Password toggle handler\r\n togglePassword1 = () => {\r\n // chnage inverse the boolean state passwordShown\r\n if (this.state.passwordShown1 === false) {\r\n this.setState({ passwordShown1: true })\r\n }\r\n else {\r\n this.setState({ passwordShown1: false })\r\n }\r\n };\r\n togglePassword2 = () => {\r\n // chnage inverse the boolean state passwordShown\r\n if (this.state.passwordShown2 === false) {\r\n this.setState({ passwordShown2: true })\r\n }\r\n else {\r\n this.setState({ passwordShown2: false })\r\n }\r\n };\r\n togglePassword3 = () => {\r\n // chnage inverse the boolean state passwordShown\r\n if (this.state.passwordShown3 === false) {\r\n this.setState({ passwordShown3: true })\r\n }\r\n else {\r\n this.setState({ passwordShown3: false })\r\n }\r\n };\r\n\r\n //componentDidMount() {\r\n // demoAsyncCall().then(() => this.setState({ loading: false }));\r\n // let urlElements = window.location.pathname.split('/');\r\n // let urlElelement = (urlElements[2])\r\n // this.props.TokenValid(urlElelement,'local','192.168.2.32');\r\n //}\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n
\r\n \r\n

Your Password has expired.

Please enter new password

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n this.setState({ Currentpassword: ev.target.value })}\r\n type={this.state.passwordShown1 ? \"text\" : \"password\"} className=\"form-control\"\r\n placeholder=\"Current Password\" aria-label=\"Password\"\r\n aria-describedby=\"basic-addon\"\r\n endAdornment={\r\n \r\n \r\n {this.state.passwordShown1 ? : }\r\n \r\n\r\n \r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n this.setState({ Newpassword: ev.target.value })}\r\n type={this.state.passwordShown2 ? \"text\" : \"password\"} className=\"form-control\"\r\n placeholder=\"New Password\" aria-label=\"Password\"\r\n aria-describedby=\"basic-addon\"\r\n endAdornment={\r\n \r\n \r\n {this.state.passwordShown2 ? : }\r\n \r\n\r\n \r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n this.setState({ Confirmpassword: ev.target.value })}\r\n type={this.state.passwordShown3 ? \"text\" : \"password\"} className=\"form-control\"\r\n placeholder=\"Confirm Password\" aria-label=\"Password\"\r\n aria-describedby=\"basic-addon\"\r\n endAdornment={\r\n \r\n \r\n {this.state.passwordShown3 ? : }\r\n \r\n\r\n \r\n }\r\n />\r\n
\r\n
\r\n \r\n Submit\r\n \r\n \r\n
\r\n
\r\n @ {new Date().getFullYear()} Copyright SIMS. All rights reserved. Developed By SoluGrowth\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\n//function demoAsyncCall() {\r\n// return new Promise((resolve) => setTimeout(() => resolve(), 2500));\r\n//}\r\n\r\n//export default withRouter(\r\n// connect(handler,\r\n// dispatch => bindActionCreators(actionCreators, dispatch)\r\n// )(withAlert()(Reset)))\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n isLoading: state.auth.isLoading,\r\n userDetails: state.auth.userDetails,\r\n loginMessage: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Message : null,\r\n loginErrorMessage: state.auth.errorMessage,\r\n loginRedirectToLogin: state.auth.redirectToLogin,\r\n userLoginTimer: state.auth.userLoginTimer,\r\n passwordReset: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.PasswordResetDone : false\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onAuthResetPassword: (Username, CurrentPassword, NewPassword, ConfirmPassword) => dispatch(actions.authResetPassword(Username, CurrentPassword, NewPassword, ConfirmPassword))\r\n };\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withAlert()(Reset)));","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom'\r\nimport { bindActionCreators } from 'redux';\r\nimport { Button } from \"react-bootstrap\";\r\n//import { actionCreators } from '../../store/SecurityStore';\r\nimport * as actions from '../../store/actions/auth';\r\nimport \"./RoleSelect.css\";\r\nimport { withAlert } from 'react-alert';\r\nimport LoadingIndicatorLogin from '../LoadingIndicatorLogin';\r\nimport ViewUtils from \"../ViewUtils\";\r\n\r\n//const handler = (state) => {\r\n// return {\r\n// userRoles: state.security.userRoles,\r\n// userDetails: state.security.userDetails,\r\n// isLoading: state.security.isLoading,\r\n// roleSet: state.security.roleSet,\r\n// error: state.security.error\r\n// };\r\n//};\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass RoleSelect extends Component {\r\n\r\n state = {\r\n selectedRole: \"-1\",\r\n message: \"\",\r\n loading: true\r\n };\r\n\r\n showAlert(msg, msgType) {\r\n this.props.alert.show(msg, {\r\n timeout: 3000, // custom timeout just for this one alert\r\n type: msgType,\r\n onOpen: () => {\r\n //console.log('open')\r\n }, // callback that will be executed after this alert open\r\n onClose: () => {\r\n //console.log('closed')\r\n } // callback that will be executed after this alert is removed\r\n })\r\n }\r\n\r\n //validateForm() {\r\n // return this.state.selectedRole !== null;\r\n //}\r\n\r\n componentDidMount() {\r\n if (!utils.isNull(this.props.userDetails) && !utils.isNull(this.props.userDetails.UserKey)) {\r\n this.props.onGetRoles(this.props.userDetails.UserKey);\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.roleSet !== this.props.roleSet && this.props.roleSet) {\r\n clearTimeout(this.props.userLoginTimer);\r\n this.props.onGetMenuPermissions();\r\n //this.props.history.push('/home');\r\n }\r\n\r\n if (prevProps.menuPermissions !== this.props.menuPermissions && this.props.menuPermissions) {\r\n //this.props.history.push('/dashboard');\r\n this.props.history.push(this.props.dashboardURL);\r\n }\r\n\r\n if (prevProps.loginRedirectToLogin !== this.props.loginRedirectToLogin && this.props.loginRedirectToLogin) {\r\n //this.props.history.push('/login');\r\n this.props.history.push(this.props.loginRedirectToLoginPath);\r\n }\r\n\r\n if (prevProps.loginErrorMessage !== this.props.loginErrorMessage && this.props.loginErrorMessage) {\r\n this.showAlert(this.props.loginErrorMessage, 'error');\r\n }\r\n\r\n if (prevProps.loginMessage !== this.props.loginMessage && this.props.loginMessage) {\r\n this.showAlert(this.props.loginMessage, 'error');\r\n }\r\n\r\n if (prevProps.IsProvider !== this.props.IsProvider && this.props.IsProvider) {\r\n this.props.history.push('/loginprovider');\r\n }\r\n\r\n if (prevProps.IsEmployer !== this.props.IsEmployer && this.props.IsEmployer) {\r\n this.props.history.push('/loginemployer');\r\n }\r\n\r\n if (prevProps.userKeyRetrieved !== this.props.userKeyRetrieved && this.props.userKeyRetrieved) {\r\n this.props.onGetRoles(this.props.userDetails.UserKey);\r\n }\r\n }\r\n\r\n back() {\r\n clearTimeout(this.props.userLoginTimer);\r\n //this.props.history.push('/login');\r\n this.props.history.push(this.props.loginRedirectToLoginPath);\r\n }\r\n\r\n select() {\r\n this.setState({ message: \"\" });\r\n //this.props.selectRole(this.state.selectedRole, this.props.userDetails.Username);\r\n this.props.onSelectRoles(this.props.userDetails.UserKey, this.state.selectedRole);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n

{this.state.message}

\r\n

Select a Role

\r\n
\r\n {this.props.userRoles.map(userRole => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n BACK\r\n \r\n \r\n \r\n NEXT\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n//export default withRouter(\r\n// connect(\r\n// handler,\r\n// dispatch => bindActionCreators(actionCreators, dispatch)\r\n// )(RoleSelect)\r\n//);\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n isLoading: state.auth.isLoading,\r\n userDetails: state.auth.userDetails,\r\n authenticated: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Authenticated : false,\r\n otpSent: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.OTPSent : false,\r\n loginMessage: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Message : null,\r\n userRoles: !utils.isNull(state.auth.userDetails) ? !utils.isNull(state.auth.userDetails.Roles) ? state.auth.userDetails.Roles : [] : [],\r\n loginErrorMessage: state.auth.errorMessage,\r\n loginRedirectToLogin: state.auth.redirectToLogin,\r\n userLoginTimer: state.auth.userLoginTimer,\r\n roleSet: !utils.isNull(state.auth.userDetails) ? !utils.isNull(state.auth.userDetails.Token) ? true : false : false,\r\n menuPermissions: !utils.isNull(state.auth.menuPermissionsDetails) ? true : false,\r\n loginRedirectToLoginPath: state.auth.loginRedirectToLoginPath,\r\n IsProvider: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.IsProvider : false,\r\n IsEmployer: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.IsEmployer : false,\r\n dashboardURL: !utils.isNull(state.auth.menuPermissionsDetails) ? state.auth.menuPermissionsDetails.DashboardInfo.DashboardURL : null,\r\n userKeyRetrieved: !utils.isNull(state.auth.userDetails) && !utils.isNull(state.auth.userDetails.UserKey) ? true : false\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onGetRoles: (UserKey) => dispatch(actions.authRoleGet(UserKey)),\r\n onSelectRoles: (UserKey, RoleKey) => dispatch(actions.authRoleSelect(UserKey, RoleKey)),\r\n onGetMenuPermissions: () => dispatch(actions.authMenuPermission())\r\n };\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withAlert()(RoleSelect)));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom'\r\nimport { Button } from \"react-bootstrap\";\r\n//import { actionCreators } from '../../store/SecurityStore';\r\nimport * as actions from '../../store/actions/auth';\r\nimport \"./ProviderSelect.css\";\r\nimport { withAlert } from 'react-alert';\r\nimport LoadingIndicatorLogin from '../LoadingIndicatorLogin';\r\nimport ViewUtils from \"../ViewUtils\";\r\n\r\n//const handler = (state) => {\r\n// return {\r\n// userRoles: state.security.userRoles,\r\n// userDetails: state.security.userDetails,\r\n// isLoading: state.security.isLoading,\r\n// roleSet: state.security.roleSet,\r\n// error: state.security.error\r\n// };\r\n//};\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass ProviderSelect extends Component {\r\n\r\n state = {\r\n selectedRole: \"-1\",\r\n message: \"\",\r\n loading: true\r\n };\r\n\r\n showAlert(msg, msgType) {\r\n this.props.alert.show(msg, {\r\n timeout: 3000, // custom timeout just for this one alert\r\n type: msgType,\r\n onOpen: () => {\r\n //console.log('open')\r\n }, // callback that will be executed after this alert open\r\n onClose: () => {\r\n //console.log('closed')\r\n } // callback that will be executed after this alert is removed\r\n })\r\n }\r\n\r\n //validateForm() {\r\n // return this.state.selectedRole !== null;\r\n //}\r\n\r\n componentDidMount() {\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.roleSet !== this.props.roleSet && this.props.roleSet) {\r\n clearTimeout(this.props.userLoginTimer);\r\n this.props.onGetMenuPermissions();\r\n //this.props.history.push('/home');\r\n }\r\n\r\n if (prevProps.menuPermissions !== this.props.menuPermissions && this.props.menuPermissions) {\r\n //this.props.history.push('/home');\r\n this.props.history.push(this.props.dashboardURL);\r\n }\r\n\r\n if (prevProps.loginRedirectToLogin !== this.props.loginRedirectToLogin && this.props.loginRedirectToLogin) {\r\n //this.props.history.push('/login');\r\n this.props.history.push(this.props.loginRedirectToLoginPath);\r\n }\r\n\r\n if (prevProps.loginErrorMessage !== this.props.loginErrorMessage && this.props.loginErrorMessage) {\r\n this.showAlert(this.props.loginErrorMessage, 'error');\r\n }\r\n\r\n if (prevProps.loginMessage !== this.props.loginMessage && this.props.loginMessage) {\r\n this.showAlert(this.props.loginMessage, 'error');\r\n }\r\n }\r\n\r\n back() {\r\n clearTimeout(this.props.userLoginTimer);\r\n this.props.history.push('/role');\r\n }\r\n\r\n select() {\r\n this.setState({ message: \"\" });\r\n this.props.onSelectProvider(this.props.userDetails.UserKey, this.props.userDetails.RoleKey, this.state.selectedProvider);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n

{this.state.message}

\r\n

Select a Provider

\r\n
\r\n {this.props.userProviders.map(userProvider => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n BACK\r\n \r\n \r\n \r\n NEXT\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n//export default withRouter(\r\n// connect(\r\n// handler,\r\n// dispatch => bindActionCreators(actionCreators, dispatch)\r\n// )(RoleSelect)\r\n//);\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n isLoading: state.auth.isLoading,\r\n userDetails: state.auth.userDetails,\r\n authenticated: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Authenticated : false,\r\n otpSent: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.OTPSent : false,\r\n loginMessage: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Message : null,\r\n userProviders: !utils.isNull(state.auth.userDetails) ? !utils.isNull(state.auth.userDetails.Providers) ? state.auth.userDetails.Providers : [] : [],\r\n loginErrorMessage: state.auth.errorMessage,\r\n loginRedirectToLogin: state.auth.redirectToLogin,\r\n userLoginTimer: state.auth.userLoginTimer,\r\n roleSet: !utils.isNull(state.auth.userDetails) ? !utils.isNull(state.auth.userDetails.Token) ? true : false : false,\r\n menuPermissions: !utils.isNull(state.auth.menuPermissionsDetails) ? true : false,\r\n loginRedirectToLoginPath: state.auth.loginRedirectToLoginPath,\r\n dashboardURL: !utils.isNull(state.auth.menuPermissionsDetails) ? state.auth.menuPermissionsDetails.DashboardInfo.DashboardURL : null,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onSelectProvider: (UserKey, RoleKey, ProviderKey) => dispatch(actions.authProviderSelect(UserKey, RoleKey, ProviderKey)),\r\n onGetMenuPermissions: () => dispatch(actions.authMenuPermission())\r\n };\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withAlert()(ProviderSelect)));\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom'\r\nimport { Button } from \"react-bootstrap\";\r\nimport * as actions from '../../store/actions/auth';\r\nimport \"./EmployerSelect.css\";\r\nimport { withAlert } from 'react-alert';\r\nimport LoadingIndicatorLogin from '../LoadingIndicatorLogin';\r\nimport ViewUtils from \"../ViewUtils\";\r\n\r\n//const handler = (state) => {\r\n// return {\r\n// userRoles: state.security.userRoles,\r\n// userDetails: state.security.userDetails,\r\n// isLoading: state.security.isLoading,\r\n// roleSet: state.security.roleSet,\r\n// error: state.security.error\r\n// };\r\n//};\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass EmployerSelect extends Component {\r\n\r\n state = {\r\n selectedEmployer: \"-1\",\r\n message: \"\",\r\n loading: true\r\n };\r\n\r\n showAlert(msg, msgType) {\r\n this.props.alert.show(msg, {\r\n timeout: 3000, // custom timeout just for this one alert\r\n type: msgType,\r\n onOpen: () => {\r\n //console.log('open')\r\n }, // callback that will be executed after this alert open\r\n onClose: () => {\r\n //console.log('closed')\r\n } // callback that will be executed after this alert is removed\r\n })\r\n }\r\n\r\n //validateForm() {\r\n // return this.state.selectedRole !== null;\r\n //}\r\n\r\n componentDidMount() {\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.roleSet !== this.props.roleSet && this.props.roleSet) {\r\n clearTimeout(this.props.userLoginTimer);\r\n this.props.onGetMenuPermissions();\r\n //this.props.history.push('/home');\r\n }\r\n\r\n if (prevProps.menuPermissions !== this.props.menuPermissions && this.props.menuPermissions) {\r\n //this.props.history.push('/home');\r\n this.props.history.push(this.props.dashboardURL);\r\n }\r\n\r\n if (prevProps.loginRedirectToLogin !== this.props.loginRedirectToLogin && this.props.loginRedirectToLogin) {\r\n //this.props.history.push('/login');\r\n this.props.history.push(this.props.loginRedirectToLoginPath);\r\n }\r\n\r\n if (prevProps.loginErrorMessage !== this.props.loginErrorMessage && this.props.loginErrorMessage) {\r\n this.showAlert(this.props.loginErrorMessage, 'error');\r\n }\r\n\r\n if (prevProps.loginMessage !== this.props.loginMessage && this.props.loginMessage) {\r\n this.showAlert(this.props.loginMessage, 'error');\r\n }\r\n }\r\n\r\n back() {\r\n clearTimeout(this.props.userLoginTimer);\r\n this.props.history.push('/role');\r\n }\r\n\r\n select() {\r\n this.setState({ message: \"\" });\r\n this.props.onSelectEmployer(this.props.userDetails.UserKey, this.props.userDetails.RoleKey, this.state.selectedEmployer);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n

{this.state.message}

\r\n

Select a Client

\r\n
\r\n {this.props.userEmployers.map(userEmployer => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n BACK\r\n \r\n \r\n \r\n NEXT\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n//export default withRouter(\r\n// connect(\r\n// handler,\r\n// dispatch => bindActionCreators(actionCreators, dispatch)\r\n// )(RoleSelect)\r\n//);\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n isLoading: state.auth.isLoading,\r\n userDetails: state.auth.userDetails,\r\n authenticated: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Authenticated : false,\r\n otpSent: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.OTPSent : false,\r\n loginMessage: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Message : null,\r\n userEmployers: !utils.isNull(state.auth.userDetails) ? !utils.isNull(state.auth.userDetails.Employers) ? state.auth.userDetails.Employers : [] : [],\r\n loginErrorMessage: state.auth.errorMessage,\r\n loginRedirectToLogin: state.auth.redirectToLogin,\r\n userLoginTimer: state.auth.userLoginTimer,\r\n roleSet: !utils.isNull(state.auth.userDetails) ? !utils.isNull(state.auth.userDetails.Token) ? true : false : false,\r\n menuPermissions: !utils.isNull(state.auth.menuPermissionsDetails) ? true : false,\r\n loginRedirectToLoginPath: state.auth.loginRedirectToLoginPath,\r\n dashboardURL: !utils.isNull(state.auth.menuPermissionsDetails) ? state.auth.menuPermissionsDetails.DashboardInfo.DashboardURL : null\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onSelectEmployer: (UserKey, RoleKey, EmployerKey) => dispatch(actions.authEmployerSelect(UserKey, RoleKey, EmployerKey)),\r\n onGetMenuPermissions: () => dispatch(actions.authMenuPermission())\r\n };\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withAlert()(EmployerSelect)));\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter, Link } from 'react-router-dom';\r\n//import { bindActionCreators } from 'redux';\r\nimport { Button } from \"react-bootstrap\";\r\nimport { withAlert } from 'react-alert'\r\n//import { actionCreators } from '../../store/SecurityStore';\r\nimport * as actions from '../../store/actions/auth';\r\n//import LoadingScreen from 'react-loading-screen';\r\n//import { AlertStyle } from '../../components/widgets/AlertTemplate';\r\nimport \"./Login.css\";\r\nimport simslogoLoading from '../../content/images/logos/sims_logo_loading.png'\r\nimport LoadingIndicatorLogin from '../LoadingIndicatorLogin';\r\nimport ViewUtils from \"../ViewUtils\";\r\n\r\n//const handler = (state) => {\r\n// let isLoading = state.security.isLoading;\r\n// let userDetails = state.security.userDetails;\r\n// return {\r\n// isLoading: isLoading,\r\n// userDetails: userDetails,\r\n// authenticated: userDetails.Authenticated,\r\n// otpSent: userDetails.otpSent,\r\n// message: userDetails.Message,\r\n// };\r\n//};\r\n\r\n//const alertStyle = { AlertStyle }\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass confirmOTP extends Component {\r\n\r\n state = {\r\n otp: \"\",\r\n message: \"\",\r\n display: \"none\",\r\n loading: true\r\n };\r\n\r\n showAlert(msg, msgType) {\r\n this.props.alert.show(msg, {\r\n timeout: 3000, // custom timeout just for this one alert\r\n type: msgType,\r\n onOpen: () => {\r\n //console.log('open')\r\n }, // callback that will be executed after this alert open\r\n onClose: () => {\r\n //console.log('closed')\r\n } // callback that will be executed after this alert is removed\r\n })\r\n }\r\n\r\n validateOTP() {\r\n return this.state.otp.length > 0;\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.authenticated !== this.props.authenticated && this.props.authenticated) {\r\n this.props.history.push('/role');\r\n }\r\n\r\n if (prevProps.loginRedirectToLogin !== this.props.loginRedirectToLogin && this.props.loginRedirectToLogin) {\r\n this.props.history.push('/login');\r\n }\r\n\r\n if (prevProps.message !== this.props.message && this.props.message) {\r\n this.setState({ message: this.props.message });\r\n }\r\n\r\n if (prevProps.loginErrorMessage !== this.props.loginErrorMessage && this.props.loginErrorMessage) {\r\n this.showAlert(this.props.loginErrorMessage, 'error');\r\n }\r\n\r\n if (prevProps.loginMessage !== this.props.loginMessage && this.props.loginMessage) {\r\n this.showAlert(this.props.loginMessage, 'error');\r\n }\r\n }\r\n\r\n login = () => {\r\n\r\n if (!this.validateOTP()) {\r\n this.setState({ message: \"Enter OTP\", display: \"\" });\r\n this.showAlert('Enter OTP', 'error');\r\n return;\r\n }\r\n\r\n this.setState({ message: \"\" });\r\n //this.props.confirmOTP(this.state.otp, this.props.userDetails.UserKey);\r\n this.props.onConfirmOTP(this.state.otp, this.props.userDetails.UserKey);\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n this.setState({ otp: ev.target.value })}\r\n className=\"form-control\"\r\n placeholder=\"Enter OTP\"\r\n aria-label=\"OTP\"\r\n aria-describedby=\"basic-addon\" />\r\n
\r\n
\r\n \r\n Confirm\r\n \r\n Back to Login\r\n \r\n
\r\n
\r\n @ {new Date().getFullYear()} Copyright SIMS. All rights reserved. Developed By SoluGrowth\r\n
\r\n \r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\n//function demoAsyncCall() {\r\n// return new Promise((resolve) => setTimeout(() => resolve(), 2500));\r\n//}\r\n\r\n//export default withRouter(\r\n// connect(handler,\r\n// dispatch => bindActionCreators(actionCreators, dispatch)\r\n// )(withAlert()(confirmOTP)))\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n isLoading: state.auth.isLoading,\r\n userDetails: state.auth.userDetails,\r\n authenticated: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Authenticated : false,\r\n otpSent: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.OTPSent : false,\r\n loginMessage: !utils.isNull(state.auth.userDetails) ? state.auth.userDetails.Message : null,\r\n loginErrorMessage: state.auth.errorMessage,\r\n loginRedirectToLogin: state.auth.redirectToLogin\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onConfirmOTP: (OTP, UserKey) => dispatch(actions.authOTP(OTP, UserKey))\r\n };\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withAlert()(confirmOTP)));\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport ViewUtils from './components/ViewUtils';\r\nimport * as actions from './store/actions/auth';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nclass InterfaceVersion extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n promptOpen: false,\r\n promptTitle: \"Application Update\",\r\n promptContent: \"There is an update available, do you want to continue with the update?\",\r\n }\r\n }\r\n\r\n\r\n componentDidMount() {\r\n const interfaceVersionValue = utils.GetInterfaceVersion(true);\r\n this.getInterfaceVersion(interfaceVersionValue);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.interfaceVersionUpdateConfirm !== prevProps.interfaceVersionUpdateConfirm && this.props.interfaceVersionUpdateConfirm) {\r\n this.setState({ promptOpen: true })\r\n }\r\n }\r\n\r\n closePrompt = () => {\r\n this.setState({ promptOpen: false })\r\n this.props.onInterfaceVersionCheck(false);\r\n this.props.onInterfaceVersionShouldCheck(false);\r\n }\r\n\r\n handleYes = () => {\r\n this.props.onInterfaceVersionCheck(false);\r\n this.setState({ promptOpen: false })\r\n window.location.reload(true);\r\n }\r\n\r\n getInterfaceVersion(interfaceVersionValue) {\r\n let url = \"api/sims/settings/GetInterfaceVersion\";\r\n utils.invokeUrlExternal(url, (response) => {\r\n console.log(\"Latest Interface Version: \" + response);\r\n const localStoreName = 'InterfaceVersionTryCount';\r\n const getCount = localStorage.getItem(localStoreName) ? parseInt(localStorage.getItem(localStoreName)) : 1;\r\n const latestValue = parseInt(response);\r\n if (latestValue > interfaceVersionValue && getCount < 3) {\r\n console.log('Interface Try Count: ' + getCount);\r\n localStorage.setItem(localStoreName, getCount + 1)\r\n window.location.reload(true);\r\n } else if (getCount == 3) {\r\n localStorage.setItem(localStoreName, 1);\r\n }\r\n },\r\n null,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + localStorage.getItem(\"token\")\r\n }\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.promptTitle}\r\n \r\n \r\n {this.state.promptContent}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n interfaceVersionUpdateConfirm: state.auth.interfaceVersionUpdateConfirm,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onInterfaceVersionCheck: (interfaceVersionUpdateConfirm) => dispatch(actions.interfaceVersionCheck(interfaceVersionUpdateConfirm)),\r\n onInterfaceVersionShouldCheck: (interfaceVersionShouldBeChecked) => dispatch(actions.interfaceVersionShouldCheck(interfaceVersionShouldBeChecked))\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(InterfaceVersion);","import React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { BrowserRouter as Router, Switch, Redirect, Route } from 'react-router-dom';\r\nimport MainLayout from \"./components/layout/main\";\r\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';\r\nimport ViewUtils from './components/ViewUtils';\r\nimport Login from './components/security/Login';\r\nimport ADLogin from './components/security/ADLogin';\r\nimport Forgot from './components/security/forgot';\r\nimport Reset from './components/security/reset';\r\nimport RoleSelect from './components/security/RoleSelect';\r\nimport ProviderSelect from './components/security/ProviderSelect';\r\nimport EmployerSelect from './components/security/EmployerSelect';\r\nimport ConfirmOTP from './components/security/confirmOTP';\r\nimport SDF from './components/skills/sdf/SDF';\r\nimport SDFOrganisation from './components/skills/sdf/SDFOrganisations';\r\nimport Stakeholder from './components/dg/stakeholder/Stakeholder';\r\nimport StakeholderOrganisation from './components/dg/stakeholder/StakeholderOrganisationDetails';\r\nimport InterfaceVersion from './InterfaceVersion';\r\n\r\nconst utils = new ViewUtils();\r\n\r\nconst theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n main: '#003F6B'\r\n },\r\n secondary: {\r\n main: '#009C44'\r\n },\r\n action: {\r\n main: '#ffffff'\r\n }\r\n\r\n }\r\n},\r\n)\r\n\r\nclass App extends Component {\r\n\r\n render() {\r\n let redirect = null\r\n if (this.props.autoLogout) {\r\n redirect = (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n (\r\n )} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ()} />\r\n \r\n \r\n ()} />\r\n \r\n {this.props.roleSet && }\r\n \r\n {redirect}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n autoLogout: state.auth.autoLogout,\r\n loginRedirectToLoginPath: state.auth.loginRedirectToLoginPath,\r\n roleSet: !utils.isNull(state.auth.userDetails) ? !utils.isNull(state.auth.userDetails.Token) ? true : false : false\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, null)(App);","import React, {Fragment} from 'react';\r\n\r\n// Alert optional cofiguration\r\n\r\nexport const AlertStyle = {\r\n backgroundColor: '#dc3545',\r\n color: 'white',\r\n padding: '10px',\r\n textTransform: 'uppercase',\r\n borderRadius: '3px',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n boxShadow: 'rgba(0, 0, 0, 0.03) 0px 2px 2px 2px',\r\n fontFamily: 'Arial',\r\n width: 'auto',\r\n boxSizing: 'border-box',\r\n margin: '30px'\r\n};\r\n\r\nconst alertButtonStyle = {\r\n marginLeft: '20px',\r\n border: 'none',\r\n backgroundColor: 'transparent',\r\n cursor: 'pointer',\r\n color: 'rgb(255, 255, 255)'\r\n}\r\n\r\nexport const options = {\r\n position: 'top center',\r\n timeout: 0,\r\n offset: '30px',\r\n transition: 'scale',\r\n containerStyle: {\r\n marginTop: '260px'\r\n }\r\n}\r\nfunction NewlineText(msg) {\r\n const text = msg.text;\r\n console.log(text);\r\n return text.split('\\n').map(str =>
{str}
);\r\n }\r\n\r\nexport const AlertTemplate = ({ options, message, close }) => (\r\n
\r\n \r\n \r\n \r\n\r\n {options.type === 'info' && ''}\r\n {options.type === 'success' && ''}\r\n {options.type === 'error' && ''}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n)\r\n\r\nexport default AlertTemplate;","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","//import 'bootstrap/dist/css/bootstrap.css';\r\nimport './index.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\n//import { ConnectedRouter } from 'react-router-redux';\r\nimport { createBrowserHistory } from 'history';\r\nimport configureStore from './store/configureStore';\r\nimport { Provider as AlertProvider } from 'react-alert';\r\nimport App from './App';\r\nimport { AlertTemplate, options } from './components/widgets/AlertTemplate';\r\nimport registerServiceWorker, { unregister } from './registerServiceWorker';\r\nimport { MsalProvider } from \"@azure/msal-react\";\r\nimport { PublicClientApplication } from \"@azure/msal-browser\";\r\nimport { msalConfig } from './components/security/ADAuthConfig';\r\n\r\n\r\n// Create browser history to use in the Redux store\r\n//const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\n//const history = createBrowserHistory({ basename: baseUrl });\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available.\r\nconst initialState = window.initialReduxState;\r\nconst store = configureStore(/*history,*/ initialState);\r\n\r\nconst pca = new PublicClientApplication(msalConfig);\r\n\r\nconst rootElement = document.getElementById('root');\r\n\r\nwindow.globalAppRXStore = store;\r\nwindow.globalAppADStore = pca;\r\n\r\nReactDOM.render(\r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n ,\r\n rootElement);\r\n\r\n//registerServiceWorker();\r\nunregister();","import { applyMiddleware, combineReducers, compose, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\n//import { routerReducer, routerMiddleware } from 'react-router-redux';\r\nimport * as Security from './SecurityStore';\r\nimport authReducer from './reducers/auth';\r\n//import * as WorkBench from './WorkBenchStore';\r\n\r\nexport default function configureStore(/*history,*/ initialState) {\r\n const reducers = {\r\n security: Security.reducer,\r\n /*workBench: WorkBench.reducer*/\r\n auth: authReducer\r\n };\r\n\r\n const middleware = [\r\n thunk/*,\r\n routerMiddleware(history)*/\r\n ];\r\n\r\n // In development, use the browser's Redux dev tools extension if installed\r\n const enhancers = [];\r\n const isDevelopment = process.env.NODE_ENV === 'development';\r\n if (isDevelopment && typeof window !== 'undefined' && window.devToolsExtension) {\r\n enhancers.push(window.devToolsExtension());\r\n }\r\n\r\n const rootReducer = combineReducers({\r\n ...reducers/*,\r\n routing: routerReducer*/\r\n });\r\n\r\n return createStore(\r\n rootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middleware), ...enhancers)\r\n );\r\n}\r\n","module.exports = __webpack_public_path__ + \"static/media/sims_logo_loading.edcf0129.png\";","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 445;","module.exports = __webpack_public_path__ + \"static/media/PersonUpload_Template_V2.fb1f1ed3.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/LearnershipUpload_Template.2aef6937.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/SkillsProgrammeUpload_Template.e676290b.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/BursariesUpload_Template.b088fabf.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/InternshipUpload_Template.51c5a6ce.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/AETUpload_Template.9f69bf86.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/CandidacyUpload_Template.2e7a9714.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/FETPlacementUpload_Template.27ce060c.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/QualificationUpload_Template.24220e21.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/UnitStandardUpload_Template.65840c42.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/AchievementUpload_Template.3dddbd45.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/sims_dashboardsidenav_background.5cacb952.png\";"],"sourceRoot":""}