Here is a little static method I wrote to change their party type. One thing to worry about, when you go from Organization to Person, you may want to check if there are multiple contacts before you make the change. Not exactly sure what it will do.
static server boolean changeCustPartyType(CustTable _custTable, DirPartyType _dirPartyType) { CustTable custTable; ; if (_custTable && _custTable.PartyType != _dirPartyType) { ttsbegin; custTable.selectForUpdate(true); custTable.data(_custTable); custTable.PartyType = _dirPartyType; custTable.setNameAlias(); DirParty::updatePartyFromCommon(custTable.PartyId, custTable, DirSystemPrivacyGroupType::Public, true); custTable.doUpdate(); smmBusRelTable::updateFromCustTableSFA2(custTable); custTable.setAccountOnVend(custTable.orig()); smmTransLog::initTrans(custTable, smmLogAction::update); ttscommit; return true; } return false; }