public function post_keys_values_handler() { global $FANNIE_PLUGIN_SETTINGS; $dbc = FannieDB::get($FANNIE_PLUGIN_SETTINGS['GiveUsMoneyDB']); $model = new GumSettingsModel($dbc); for ($i = 0; $i < count($this->keys); $i++) { if (!isset($this->values[$i])) { continue; } $model->key($this->keys[$i]); $model->value($this->values[$i]); $model->save(); } header('Location: GumSettingsPage.php'); return false; }
public function settingChange() { global $FANNIE_ROOT, $FANNIE_PLUGIN_SETTINGS; $db_name = $FANNIE_PLUGIN_SETTINGS['GiveUsMoneyDB']; if (empty($db_name)) { return; } $dbc = FannieDB::get($db_name); $tables = array('GumEquityShares', 'GumLoanAccounts', 'GumLoanDefaultInterestRates', 'GumLoanLedger', 'GumLoanValidTerms', 'GumSettings', 'GumTaxIdentifiers', 'GumPayoffs', 'GumEquityPayoffMap', 'GumLoanPayoffMap', 'GumEmailLog', 'GumDividends', 'GumDividendPayoffMap'); foreach ($tables as $t) { $model_class = $t . 'Model'; if (!class_exists($model_class)) { include_once dirname(__FILE__) . '/models/' . $model_class . '.php'; } if (!$dbc->tableExists($t)) { $instance = new $model_class($dbc); $instance->create(); } } $settings = new GumSettingsModel($dbc); /** Employee # used for writing any POS transactions */ $settings->key('emp_no'); if (!$settings->load()) { $settings->value(1001); $settings->save(); } /** Register # used for writing any POS transactions */ $settings->reset(); $settings->key('register_no'); if (!$settings->load()) { $settings->value(99); $settings->save(); } /** $ value of one equity share */ $settings->reset(); $settings->key('equityShareSize'); if (!$settings->load()) { $settings->value(500.0); $settings->save(); } /** Department # for equity-related POS transactions */ $settings->reset(); $settings->key('equityPosDept'); if (!$settings->load()) { $settings->value(993); $settings->save(); } /** Department description for equity-related POS transactions (could probably be pulled from department table instead; guaranteeing a description even if the department doesn't exist may make debugging easier if the department # is misconfigured). */ $settings->reset(); $settings->key('equityDescription'); if (!$settings->load()) { $settings->value('Class C Stock'); $settings->save(); } /** Department # for equity-related POS transactions */ $settings->reset(); $settings->key('loanPosDept'); if (!$settings->load()) { $settings->value(998); $settings->save(); } /** Department description for loan-related POS transactions See equityDescription for justification. */ $settings->reset(); $settings->key('loanDescription'); if (!$settings->load()) { $settings->value('Member Loan'); $settings->save(); } /** Department # for balancing transactions Transactions are written as: $X.XX to loan/equity department -$X.XX to offset department This ensures transactions net to zero. It also allows tender to occur at a different time/place without leaving any transaction half-complete. The tender transaction would (probably) be: $X.XX to offset department -$X.XX tender type */ $settings->reset(); $settings->key('offsetPosDept'); if (!$settings->load()) { $settings->value(800); $settings->save(); } /** Month the fiscal year ends (typically 6 or 12) */ $settings->reset(); $settings->key('FYendMonth'); if (!$settings->load()) { $settings->value(6); $settings->save(); } /** Day the fiscal year ends (typically 30 or 31) */ $settings->reset(); $settings->key('FYendDay'); if (!$settings->load()) { $settings->value(30); $settings->save(); } /** The store's federal tax identification number. Only needed for tax forms. */ $settings->reset(); $settings->key('storeFederalID'); if (!$settings->load()) { $settings->value('12-1234567'); $settings->save(); } /** The store's state tax identification number. Only needed for tax forms. */ $settings->reset(); $settings->key('storeStateID'); if (!$settings->load()) { $settings->value('1234567'); $settings->save(); } /** The store's name (or DBA name) Used for address blocks */ $settings->reset(); $settings->key('storeName'); if (!$settings->load()) { $settings->value('Name of Co-op / DBA'); $settings->save(); } /** The store's street address Multi-line street address is not permitted because vertical spacing is often tight. Some tax forms also *require* a single line street address. Use comma separation as needed. Used for address blocks */ $settings->reset(); $settings->key('storeAddress'); if (!$settings->load()) { $settings->value('Street Address'); $settings->save(); } /** The store's city Used for address blocks */ $settings->reset(); $settings->key('storeCity'); if (!$settings->load()) { $settings->value('Anytown'); $settings->save(); } /** The store's state (or equivalent) Used for address blocks */ $settings->reset(); $settings->key('storeState'); if (!$settings->load()) { $settings->value('XX'); $settings->save(); } /** The store's zip code (or equivalent) Used for address blocks */ $settings->reset(); $settings->key('storeZip'); if (!$settings->load()) { $settings->value('12345'); $settings->save(); } /** The store's phone number Used for [some] address blocks */ $settings->reset(); $settings->key('storePhone'); if (!$settings->load()) { $settings->value('555-867-5309'); $settings->save(); } /** The store's checking account routing # Used for creating checks */ $settings->reset(); $settings->key('routingNo'); if (!$settings->load()) { $settings->value('123456789'); $settings->save(); } /** The store's checking account # Used for creating checks */ $settings->reset(); $settings->key('checkingNo'); if (!$settings->load()) { $settings->value('987654321987'); $settings->save(); } /** The first check number to use when creating checks. The plugin will use check numbers sequentially starting from this value */ $settings->reset(); $settings->key('firstCheckNumber'); if (!$settings->load()) { $settings->value('1'); $settings->save(); } /** Zero-pad check numbers to this many digits. Six is the default. */ $settings->reset(); $settings->key('checkNumberPadding'); if (!$settings->load()) { $settings->value('6'); $settings->save(); } /** POS interaction interface */ $settings->reset(); $settings->key('posLayer'); if (!$settings->load()) { $settings->value('GumCoreLayer'); $settings->save(); } }