case 'create': // Record new Invitation // Record new Invitation case 'create_new': // Record Invitation and create new // Record Invitation and create new case 'create_copy': // Record Invitation and create similar // Insert new invitation code...: $edited_Invitation = new Invitation(); // Check that this action request is not a CSRF hacked request: $Session->assert_received_crumb('invitation'); // Check permission: $current_User->check_perm('users', 'edit', true); // load data from request if ($edited_Invitation->load_from_Request()) { // We could load data from form without errors: // While inserting into DB, ID property of Invitation object will be set to autogenerated ID // So far as we set ID manualy, we need to preserve this value // When assignment of wrong value will be fixed, we can skip this $entered_invitation_id = $edited_Invitation->ID; // Insert in DB: $DB->begin(); // because of manual assigning ID, // member function Invitation::dbexists() is overloaded for proper functionality $duplicated_invitation_ID = $edited_Invitation->dbexists('ivc_code', $edited_Invitation->get('code')); if ($duplicated_invitation_ID) { // We have a duplicate entry: param_error('ivc_ID', sprintf(T_('This invitation code already exists. Do you want to <a %s>edit the existing invitation code</a>?'), 'href="?ctrl=invitations&action=edit&ivc_ID=' . $duplicated_invitation_ID . '"')); } else { $edited_Invitation->dbinsert();