addRadio('onDuplicate', ts('Import mode'), [ CRM_Import_Parser::DUPLICATE_SKIP => ts('Insert new contributions'), CRM_Import_Parser::DUPLICATE_UPDATE => ts('Update existing contributions'), ]); $this->setDefaults(['onDuplicate' => CRM_Import_Parser::DUPLICATE_SKIP]); $this->addElement('xbutton', 'loadMapping', ts('Load Mapping'), [ 'type' => 'submit', 'onclick' => 'checkSelect()', ]); $this->addContactTypeSelector(); } /** * Process the uploaded file. */ public function postProcess() { $this->storeFormValues([ 'onDuplicate', 'contactType', 'dateFormats', 'savedMapping', ]); $this->submitFileForMapping('CRM_Contribute_Import_Parser_Contribution'); } /** * @return \CRM_Contribute_Import_Parser_Contribution */ protected function getParser(): CRM_Contribute_Import_Parser_Contribution { if (!$this->parser) { $this->parser = new CRM_Contribute_Import_Parser_Contribution(); $this->parser->setUserJobID($this->getUserJobID()); $this->parser->init(); } return $this->parser; } }