Return TypeFunction nameArguments
hzEcodehdbADP::InitFinancials(const hzString&,)

Declared in file: hzDatabase.h
Defined in file : hdbClass.cpp

Function Logic:

0:START 1:cname hzMapS::Exists 2:m_mapRepositories.Exists(cname) 3:Return hzerr(E_SEQUENCE,This function has already been called) 4:!dataDir 5:Return hzerr(E_ARGUMENT,No application data directory) 6:mname pEnum hdbDatatype::SetTypename hdbEnum::AddItem hdbEnum::AddItem hdbEnum::AddItem hdbEnum::AddItem hdbEnum::AddItem hdbEnum::AddItem hdbEnum::AddItem hdbEnum::AddItem hdbEnum::AddItem hdbEnum::AddItem hdbADP::RegisterDataEnum pClass hdbClass::InitStart rc 7:rc==E_OK 8:mname hdbClass::InitMember rc 9:rc==E_OK 10:mname hdbClass::InitMember rc 11:hdbClass::InitDone rc 12:rc==E_OK 13:hdbADP::RegisterDataClass rc 14:pRepos 15:!pRepos 16:hzexit 17:hdbDatatype::strType hdbObjRepos::InitStart rc 18:rc!=E_OK 19:hzexit 20:mname hdbObjRepos::InitMbrIndex rc 21:rc!=E_OK 22:hzexit 23:hdbObjRepos::InitDone rc 24:rc!=E_OK 25:hzexit 26:hdbObjRepos::strName hzMapS::Insert rc hdbObjRepos::Open cname pClass hdbClass::InitStart rc 27:rc==E_OK 28:mname hdbClass::InitMember rc 29:rc==E_OK 30:mname hdbClass::InitMember rc 31:hdbClass::InitDone rc 32:rc==E_OK 33:hdbADP::RegisterDataClass rc 34:pRepos 35:!pRepos 36:hzexit 37:hdbDatatype::strType hdbObjRepos::InitStart rc 38:rc!=E_OK 39:hzexit 40:mname hdbObjRepos::InitMbrIndex rc 41:rc!=E_OK 42:hzexit 43:hdbObjRepos::InitDone rc 44:rc!=E_OK 45:hzexit 46:hdbObjRepos::strName hzMapS::Insert rc hdbObjRepos::Open cname pClass hdbClass::InitStart rc 47:rc==E_OK 48:mname hdbClass::InitMember rc 49:rc==E_OK 50:mname hdbClass::InitMember rc 51:rc==E_OK 52:mname hdbClass::InitMember rc 53:rc==E_OK 54:mname hdbClass::InitMember rc 55:rc==E_OK 56:mname hdbClass::InitMember rc 57:rc==E_OK 58:mname hdbClass::InitMember rc 59:rc==E_OK 60:mname hdbClass::InitMember rc 61:hdbClass::InitDone rc 62:rc==E_OK 63:hdbADP::RegisterDataClass 64:pRepos 65:!pRepos 66:hzexit 67:hdbDatatype::strType hdbObjRepos::InitStart rc 68:rc!=E_OK 69:hzexit 70:mname hdbObjRepos::InitMbrIndex rc 71:rc!=E_OK 72:hzexit 73:hdbObjRepos::InitDone rc 74:rc!=E_OK 75:hzexit 76:hdbObjRepos::strName hzMapS::Insert rc hdbObjRepos::Open cname pClass hdbClass::InitStart rc 77:rc==E_OK 78:mname hdbClass::InitMember rc 79:rc==E_OK 80:mname hdbClass::InitMember rc 81:rc==E_OK 82:mname hdbClass::InitMember rc 83:rc==E_OK 84:mname hdbClass::InitMember rc 85:rc==E_OK 86:mname hdbClass::InitMember rc 87:rc==E_OK 88:mname hdbClass::InitMember rc 89:rc==E_OK 90:mname hdbClass::InitMember rc 91:rc==E_OK 92:mname hdbClass::InitMember rc 93:rc==E_OK 94:mname hdbClass::InitMember rc 95:rc==E_OK 96:mname hdbClass::InitMember rc 97:hdbClass::InitDone rc 98:rc==E_OK 99:hdbADP::RegisterDataClass 100:pRepos 101:!pRepos 102:hzexit 103:hdbDatatype::strType hdbObjRepos::InitStart rc 104:rc!=E_OK 105:hzexit 106:mname hdbObjRepos::InitMbrIndex rc 107:rc!=E_OK 108:hzexit 109:mname hdbObjRepos::InitMbrIndex rc 110:rc!=E_OK 111:hzexit 112:hdbObjRepos::InitDone rc 113:rc!=E_OK 114:hzexit 115:hdbObjRepos::strName hzMapS::Insert rc hdbObjRepos::Open 116:Return rc

Function body:

hzEcode hdbADP::InitFinancials (const hzString& dataDir)
{
   _hzfunc("hdbADP::InitFinancials") ;
   hdbEnum*        pEnum ;
   hdbClass*       pClass ;
   hdbObjRepos*    pRepos ;
   hzString        cname ;
   hzString        mname ;
   hzEcode         rc ;
   cname = "Currency" ;
   if (m_mapRepositories.Exists(cname))
       return hzerr(E_SEQUENCE, "This function has already been called") ;
   if (!dataDir)
       return hzerr(E_ARGUMENT, "No application data directory") ;
   mname = "enumAccType" ;
   pEnum = new hdbEnum() ;
   pEnum->SetTypename(mname) ;
   pEnum->AddItem("ACC_NULL",      0x0000);
   pEnum->AddItem("ACC_ASSET",     0x0001);
   pEnum->AddItem("ACC_BANK",      0x0002);
   pEnum->AddItem("ACC_CASH",      0x0004);
   pEnum->AddItem("ACC_DIRECTOR",  0x0008);
   pEnum->AddItem("ACC_FOREX",     0x0010);
   pEnum->AddItem("ACC_GOV",       0x0020);
   pEnum->AddItem("ACC_SHARE",     0x0040);
   pEnum->AddItem("ACC_STOCK",     0x0080);
   pEnum->AddItem("ACC_TRADE",     0x0100);
   RegisterDataEnum(pEnum) ;
   /*
   **  ** Currencies
   **      */
   pClass = new hdbClass(*this, HDB_CLASS_DESIG_SYS) ;
   rc = pClass->InitStart(cname) ;
   if (rc == E_OK) { mname = "Name" ;      rc = pClass->InitMember(mname, "string", HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Symbol" ;    rc = pClass->InitMember(mname, "string", HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   rc = pClass->InitDone() ;
   if (rc == E_OK)
       rc = RegisterDataClass(pClass) ;
   pRepos = new hdbObjRepos(*this) ;
   if (!pRepos)
       hzexit(E_MEMORY, "No Currency cache allocated") ;
   rc = pRepos->InitStart(pClass, pClass->strType(), dataDir, HDB_REPOS_CACHE) ;
   if (rc != E_OK)
       hzexit(rc, "Could not init subsriber repos") ;
   mname = "Name" ;
   rc = pRepos->InitMbrIndex(mname, true) ;
   if (rc != E_OK)
       hzexit(rc, "Could not init subsriber repos index") ;
   rc = pRepos->InitDone() ;
   if (rc != E_OK)
       hzexit(rc, "Could not complete subsriber repos initialization") ;
   rc = m_mapRepositories.Insert(pRepos->strName(), pRepos) ;
   pRepos->Open() ;
   /*
   **  ** Categories
   **      */
   cname = "Category" ;
   pClass = new hdbClass(*this, HDB_CLASS_DESIG_SYS) ;
   rc = pClass->InitStart(cname) ;
   if (rc == E_OK) { mname = "Code" ;  rc = pClass->InitMember(mname, "string", HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Desc" ;  rc = pClass->InitMember(mname, "string", HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   rc = pClass->InitDone() ;
   if (rc == E_OK)
       rc = RegisterDataClass(pClass) ;
   pRepos = new hdbObjRepos(*this) ;
   if (!pRepos)
       hzexit(E_MEMORY, "No Currency cache allocated") ;
   rc = pRepos->InitStart(pClass, pClass->strType(), dataDir, HDB_REPOS_CACHE) ;
   if (rc != E_OK)
       hzexit(rc, "Could not init subsriber repos") ;
   mname = "Code" ;
   rc = pRepos->InitMbrIndex(mname, true) ;
   if (rc != E_OK)
       hzexit(rc, "Could not init subsriber repos index") ;
   rc = pRepos->InitDone() ;
   if (rc != E_OK)
       hzexit(rc, "Could not complete subsriber repos initialization") ;
   rc = m_mapRepositories.Insert(pRepos->strName(), pRepos) ;
   pRepos->Open() ;
   /*
   **  ** Accounts
   **      */
   cname = "Account" ;
   pClass = new hdbClass(*this, HDB_CLASS_DESIG_SYS) ;
   rc = pClass->InitStart(cname) ;
   if (rc == E_OK) { mname = "Opened" ;    rc = pClass->InitMember(mname, "sdate",         HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Closed" ;    rc = pClass->InitMember(mname, "sdate",         HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Currency" ;  rc = pClass->InitMember(mname, "string",        HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Code" ;      rc = pClass->InitMember(mname, "string",        HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Desc" ;      rc = pClass->InitMember(mname, "string",        HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "InitBal" ;   rc = pClass->InitMember(mname, "int32",         HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Type" ;      rc = pClass->InitMember(mname, "enumAccType",   HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   rc = pClass->InitDone() ;
   if (rc == E_OK)
       RegisterDataClass(pClass) ;
   pRepos = new hdbObjRepos(*this) ;
   if (!pRepos)
       hzexit(E_MEMORY, "No Currency cache allocated") ;
   rc = pRepos->InitStart(pClass, pClass->strType(), dataDir, HDB_REPOS_CACHE) ;
   if (rc != E_OK)
       hzexit(rc, "Could not init subsriber repos") ;
   mname = "Code" ;
   rc = pRepos->InitMbrIndex(mname, true) ;
   if (rc != E_OK)
       hzexit(rc, "Could not init subsriber repos index") ;
   rc = pRepos->InitDone() ;
   if (rc != E_OK)
       hzexit(rc, "Could not complete subsriber repos initialization") ;
   rc = m_mapRepositories.Insert(pRepos->strName(), pRepos) ;
   pRepos->Open() ;
   /*
   **  ** Transactions
   **      */
   cname = "Transaction" ;
   pClass = new hdbClass(*this, HDB_CLASS_DESIG_SYS) ;
   rc = pClass->InitStart(cname) ;
   if (rc == E_OK) { mname = "Date" ;      rc = pClass->InitMember(mname, "sdate",     HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Currency" ;  rc = pClass->InitMember(mname, "string",    HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Category" ;  rc = pClass->InitMember(mname, "string",    HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "From" ;      rc = pClass->InitMember(mname, "string",    HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "To" ;        rc = pClass->InitMember(mname, "string",    HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Desc" ;      rc = pClass->InitMember(mname, "string",    HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Note" ;      rc = pClass->InitMember(mname, "string",    HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Qty" ;       rc = pClass->InitMember(mname, "string",    HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Value" ;     rc = pClass->InitMember(mname, "int32",     HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   if (rc == E_OK) { mname = "Type" ;      rc = pClass->InitMember(mname, "int32",     HDB_MBR_POP_SINGLE_COMPULSORY) ; }
   rc = pClass->InitDone() ;
   if (rc == E_OK)
       RegisterDataClass(pClass) ;
   pRepos = new hdbObjRepos(*this) ;
   if (!pRepos)
       hzexit(E_MEMORY, "No Currency cache allocated") ;
   rc = pRepos->InitStart(pClass, pClass->strType(), dataDir, HDB_REPOS_CACHE) ;
   if (rc != E_OK)
       hzexit(rc, "Could not init subsriber repos") ;
   mname = "Date" ;
   rc = pRepos->InitMbrIndex(mname, true) ;
   if (rc != E_OK)
       hzexit(rc, "Could not init subsriber repos index") ;
   mname = "From" ;
   rc = pRepos->InitMbrIndex(mname, true) ;
   if (rc != E_OK)
       hzexit(rc, "Could not init subsriber repos index") ;
   rc = pRepos->InitDone() ;
   if (rc != E_OK)
       hzexit(rc, "Could not complete subsriber repos initialization") ;
   rc = m_mapRepositories.Insert(pRepos->strName(), pRepos) ;
   pRepos->Open() ;
   return rc ;
}