Compare commits

...

19 Commits

Author SHA1 Message Date
Abijah a3148cc17d Fixed bug that was using an existing entry, even when the source had been selected as new.
git-svn-id: file:///svn-source/pmgr/branches/hosted_migration_20130215@1029 97e9348a-65ac-dc4b-aefc-98561f571b83
2013-05-30 03:38:17 +00:00
Abijah c709f0bbf5 Prevent redirection when in dev mode, so that we can see the debug output from each page
git-svn-id: file:///svn-source/pmgr/branches/hosted_migration_20130215@1028 97e9348a-65ac-dc4b-aefc-98561f571b83
2013-05-30 03:36:38 +00:00
Abijah 8faafe7f4e Fixed a very long-standing but with a unclosed <div> tag. Also forced autocomplete to OFF for the new items. I wouldn't really care, but this was causing a bug with Chrome where the autocomplete was forcing the radio buttons to be unchecked.
git-svn-id: file:///svn-source/pmgr/branches/hosted_migration_20130215@1027 97e9348a-65ac-dc4b-aefc-98561f571b83
2013-05-30 03:35:55 +00:00
Abijah 4319847665 Bug fixes that have been made since going live.
git-svn-id: file:///svn-source/pmgr/branches/hosted_migration_20130215@1026 97e9348a-65ac-dc4b-aefc-98561f571b83
2013-05-30 02:04:42 +00:00
Abijah d22a69b510 Fix for annoying 400 error from apache on lunarpages when the requested url is a top level request without a trailing slash.
git-svn-id: file:///svn-source/pmgr/branches/hosted_migration_20130215@1025 97e9348a-65ac-dc4b-aefc-98561f571b83
2013-02-16 00:10:48 +00:00
Abijah e9028b7558 Fixed the rebuild mechanism to run directly without scripts
git-svn-id: file:///svn-source/pmgr/branches/hosted_migration_20130215@1024 97e9348a-65ac-dc4b-aefc-98561f571b83
2013-02-16 00:09:39 +00:00
Abijah 26559f3c59 Bug fixes to work with lunarpages
git-svn-id: file:///svn-source/pmgr/branches/hosted_migration_20130215@1023 97e9348a-65ac-dc4b-aefc-98561f571b83
2013-02-15 21:04:41 +00:00
abijah 4d24428a19 First pass at conversion for lunarpages. Untested as of yet, but this checkin will allow an svn export, and I can work on the bugs then.
git-svn-id: file:///svn-source/pmgr/branches/hosted_migration_20130215@1022 97e9348a-65ac-dc4b-aefc-98561f571b83
2013-02-15 19:08:29 +00:00
abijah 15fc04e690 Branch to prepare for moving from local server to a hosted machine on the cloud
git-svn-id: file:///svn-source/pmgr/branches/hosted_migration_20130215@1021 97e9348a-65ac-dc4b-aefc-98561f571b83
2013-02-15 16:59:27 +00:00
abijah 60254860b4 Releasing fixes, most notably the jqGrid update
git-svn-id: file:///svn-source/pmgr/tags/v0.3.2@1020 97e9348a-65ac-dc4b-aefc-98561f571b83
2012-11-17 18:26:03 +00:00
abijah 20284046c3 Fixed bug charging customers again when there is not charge through date.
git-svn-id: file:///svn-source/pmgr/branches/v0.3_work@1019 97e9348a-65ac-dc4b-aefc-98561f571b83
2012-11-17 18:20:48 +00:00
abijah 99a98cbc7d Added some minor view tweaks
git-svn-id: file:///svn-source/pmgr/branches/v0.3_work@1018 97e9348a-65ac-dc4b-aefc-98561f571b83
2012-11-17 18:18:36 +00:00
abijah fc9226594c Added customer link on the receipts page
git-svn-id: file:///svn-source/pmgr/branches/v0.3_work@1017 97e9348a-65ac-dc4b-aefc-98561f571b83
2012-08-07 00:14:54 +00:00
abijah 352bdbbf49 Fixed non-backward compatible jqGrid issue caused during upgrade from 3.8.x to 4.0.0 (grid.postext.js module is no longer supported and is now a plugin)
git-svn-id: file:///svn-source/pmgr/branches/v0.3_work@1016 97e9348a-65ac-dc4b-aefc-98561f571b83
2012-08-07 00:11:03 +00:00
abijah 11fbdf0701 Upgraded to jqGrid 4.4.0
git-svn-id: file:///svn-source/pmgr/branches/v0.3_work@1015 97e9348a-65ac-dc4b-aefc-98561f571b83
2012-08-06 17:57:49 +00:00
abijah 2519f4c8a7 Added support for account name and number on the deposit slips
git-svn-id: file:///svn-source/pmgr/branches/v0.3_work@1014 97e9348a-65ac-dc4b-aefc-98561f571b83
2012-08-06 17:33:21 +00:00
abijah b6ed57c02c Checking in changes from some time ago, changing the reports screen to give direct Quickbooks invoice and credits info.
git-svn-id: file:///svn-source/pmgr/branches/v0.3_work@1013 97e9348a-65ac-dc4b-aefc-98561f571b83
2012-06-14 01:32:44 +00:00
abijah 4dffa540a0 Fixed a long standing bug preventing proper display of the customer-contact relationship fields.
git-svn-id: file:///svn-source/pmgr/branches/v0.3_work@1010 97e9348a-65ac-dc4b-aefc-98561f571b83
2011-05-11 19:19:08 +00:00
abijah 3d1c4d2492 Added income / expense reports that produce results suitable for entry into quickbooks as per the current paradigm
git-svn-id: file:///svn-source/pmgr/branches/v0.3_work@1009 97e9348a-65ac-dc4b-aefc-98561f571b83
2011-03-30 16:57:28 +00:00
32 changed files with 963 additions and 148 deletions
+14 -19
View File
@@ -1,25 +1,20 @@
<IfModule mod_rewrite.c> <IfModule mod_rewrite.c>
RewriteEngine on RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L] RewriteRule ^$ webroot/ [L]
# Need this prevent a 400 error without trailing /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) webroot/$1 [L]
</IfModule> </IfModule>
# Lets deny everyone -- its a clean slate! # Need to make sure directories can't be listed, since the rewrite
order deny,allow # rule excludes rewriting when an actual directory is requested
deny from all Options -Indexes
# Now allow local access
# Localhost
# allow from 127.0.0
# Local subnet
# allow from 192.168.7
# Provide a mechanism for user authentication # Provide a mechanism for user authentication
AuthType Digest AuthType Basic
AuthName "Property Manager" AuthName "Valley Storage"
AuthUserFile "D:/Website/auth/pmgr.htpasswd" AuthUserFile "/home/perki2/valley_storage.pmgr.htpasswd"
Require valid-user Require valid-user
# Instead of satisfy all (too restrictive)
# This allows EITHER local domain OR authenticated user
satisfy any
+17 -4
View File
@@ -37,7 +37,7 @@
class AppController extends Controller { class AppController extends Controller {
var $uses = array('Option', 'Permission'); var $uses = array('Option', 'Permission');
var $helpers = array('Html', 'Form', 'Javascript', 'Format', 'Time', 'Grid'); var $helpers = array('Html', 'Form', 'Javascript', 'Format', 'Time', 'Grid');
var $components = array('DebugKit.Toolbar'); //var $components = array('DebugKit.Toolbar');
var $sidemenu = array('areas' => array('SITE' => false, 'REPORT' => false, 'CONTROLLER' => false, 'ACTION' => false, 'SANDBOX' => false)); var $sidemenu = array('areas' => array('SITE' => false, 'REPORT' => false, 'CONTROLLER' => false, 'ACTION' => false, 'SANDBOX' => false));
var $std_area = 10; var $std_area = 10;
@@ -278,8 +278,20 @@ class AppController extends Controller {
$this->addSideMenuLink('Unit Summary', $this->addSideMenuLink('Unit Summary',
array('controller' => 'units', 'action' => 'overview'), null, array('controller' => 'units', 'action' => 'overview'), null,
'REPORT'); 'REPORT');
$this->addSideMenuLink('Monthly Charges', /* $this->addSideMenuLink('Monthly Income', */
array('controller' => 'statement_entries', 'action' => 'chargesbymonth'), null, /* array('controller' => 'statement_entries', 'action' => 'incomebymonth'), null, */
/* 'REPORT'); */
/* $this->addSideMenuLink('Monthly Expenses', */
/* array('controller' => 'statement_entries', 'action' => 'expensebymonth'), null, */
/* 'REPORT'); */
$this->addSideMenuLink('Quickbook Invoice',
array('controller' => 'statement_entries', 'action' => 'incomebymonth', 4, 1), null,
'REPORT');
$this->addSideMenuLink('Quickbook Credits',
array('controller' => 'statement_entries', 'action' => 'expensebymonth', 4, 0), null,
'REPORT');
$this->addSideMenuLink('Monthly Net',
array('controller' => 'statement_entries', 'action' => 'netbymonth'), null,
'REPORT'); 'REPORT');
} }
else { else {
@@ -452,7 +464,8 @@ class AppController extends Controller {
App::import('Helper', 'Html'); App::import('Helper', 'Html');
$url = HtmlHelper::url($url, true); $url = HtmlHelper::url($url, true);
if (headers_sent()) { if (headers_sent() ||
($this->dev() && $this->Option->enabled('dev'))) {
// If we've already sent the headers, it's because // If we've already sent the headers, it's because
// we're debugging, and our debug output has gotten // we're debugging, and our debug output has gotten
// out before the redirect. That's probably a good // out before the redirect. That's probably a good
-5
View File
@@ -1,5 +0,0 @@
@echo off
mysqldump --user=pmgr --password=pmgruser --opt property_manager > H:\pmgr_dev.sql
mysql --user=pmgr --password=pmgruser --database=pmgr_dev < H:\pmgr_dev.sql
del H:\pmgr_dev.sql
echo Build Complete!
-5
View File
@@ -1,5 +0,0 @@
@echo off
mysqldump --user=pmgr --password=pmgruser --opt property_manager > H:\pmgr_sand.sql
mysql --user=pmgr --password=pmgruser --database=pmgr_sand < H:\pmgr_sand.sql
del H:\pmgr_sand.sql
echo Build Complete!
+6 -6
View File
@@ -5,17 +5,17 @@ class DATABASE_CONFIG {
'driver' => 'mysql', 'driver' => 'mysql',
'persistent' => false, 'persistent' => false,
'host' => 'localhost', 'host' => 'localhost',
'login' => 'pmgr', 'login' => 'perki2_pmgruser',
'password' => 'pmgruser', 'password' => 'pmgrauth',
'database' => 'property_manager', 'database' => 'perki2_pmgr',
'prefix' => 'pmgr_', 'prefix' => '',
); );
function __construct() { function __construct() {
if (devbox()) if (devbox())
$this->default['database'] = 'pmgr_dev'; $this->default['database'] = 'perki2_pmgr_dev';
if (sandbox()) if (sandbox())
$this->default['database'] = 'pmgr_sand'; $this->default['database'] = 'perki2_pmgr_sand';
} }
} }
?> ?>
@@ -260,38 +260,65 @@ class StatementEntriesController extends AppController {
/************************************************************************** /**************************************************************************
************************************************************************** **************************************************************************
************************************************************************** **************************************************************************
* action: chargesbymonth * action: incexpbymonth
* - Displays charges by month * - Displays income and/or expenses by month
*/ */
function chargesbymonth($months = 12) { function incexpbymonth($accts, $security_deposits, $months) {
$datefrom = 'DATE(NOW() - INTERVAL '.($months-1).' MONTH - INTERVAL DAY(NOW())-1 DAY)';
$dateto = 'NOW()';
/* $datefrom = '"2009-01-01"'; */
/* $dateto = '"2012-12-31"'; */
$result = $this->StatementEntry->find $result = $this->StatementEntry->find
('all', ('all',
array('link' => array('Account' => array('fields' => 'name')), array('link' => array('Account' => array('fields' => 'name')),
'fields' => array_merge(array('MONTHNAME(effective_date) AS month', 'fields' => array_merge(array('MONTHNAME(effective_date) AS month',
'YEAR(effective_date) AS year'), 'YEAR(effective_date) AS year'),
$this->StatementEntry->chargeDisbursementFields(true)), $this->StatementEntry->chargeDisbursementFields(true)),
'conditions' => array('Account.type' => 'INCOME', 'conditions' => array('Account.type' => $accts,
'effective_date >= DATE(NOW() - INTERVAL '.($months-1).' MONTH - INTERVAL DAY(NOW())-1 DAY)', "effective_date >= $datefrom",
'effective_date <= NOW()', "effective_date <= $dateto",
), ),
'group' => array('YEAR(effective_date)', 'MONTH(effective_date)', 'Account.id'), 'group' => array('YEAR(effective_date)', 'MONTH(effective_date)', 'Account.id'),
'order' => array('YEAR(effective_date) DESC', 'MONTH(effective_date) DESC', 'Account.name'), 'order' => array('YEAR(effective_date) DESC', 'MONTH(effective_date) DESC', 'Account.type',
'IF(Account.id = '.$this->StatementEntry->Account->rentAccountID().', "---", Account.name)'),
)); ));
$overview = array('months' => array(), 'charges' => 0); if ($security_deposits) {
foreach ($result AS $row) { $sdresult = $this->StatementEntry->Transaction->LedgerEntry->find
('all',
array('link' => array('Transaction' => array('StatementEntry' => array('fields' => 'effective_date'),
'fields' => array()),
'Account' => array('fields' => 'name')),
'fields' => array_merge(array('MONTHNAME(effective_date) AS month',
'YEAR(effective_date) AS year'),
$this->StatementEntry->Transaction->LedgerEntry->debitCreditFields(true)),
'conditions' => array('LedgerEntry.account_id' => $this->StatementEntry->Account->securityDepositAccountID(),
"effective_date >= $datefrom",
"effective_date <= $dateto",
'StatementEntry.id = (SELECT MIN(id) FROM statement_entries WHERE transaction_id = `Transaction`.id)'
),
'group' => array('YEAR(effective_date)', 'MONTH(effective_date)', 'Account.id'),
'order' => array('YEAR(effective_date) DESC', 'MONTH(effective_date) DESC', 'Account.type', 'Account.name'),
));
} else {
$sdresult = array();
}
$overview = array('months' => array(), 'amount' => 0);
foreach (array_merge($result, $sdresult) AS $row) {
$mname = $row[0]['month'] .', '. $row[0]['year']; $mname = $row[0]['month'] .', '. $row[0]['year'];
if (empty($overview['months'][$mname])) if (empty($overview['months'][$mname]))
$overview['months'][$mname] = array('name' => $mname, $overview['months'][$mname] = array('name' => $mname,
'subs' => array(), 'subs' => array(),
'charges' => 0); 'amount' => 0);
$month = &$overview['months'][$mname]; $month = &$overview['months'][$mname];
$month['subs'][] = array('name' => $row['Account']['name'], $month['subs'][] = array('name' => $row['Account']['name'],
'charges' => $row[0]['balance']); 'amount' => $row[0]['balance']);
$month['charges'] += $row[0]['balance']; $month['amount'] += $row[0]['balance'];
$overview['charges'] += $row[0]['balance']; $overview['amount'] += $row[0]['balance'];
} }
// Enable the Reports menu section // Enable the Reports menu section
@@ -299,8 +326,26 @@ class StatementEntriesController extends AppController {
// Prepare to render. // Prepare to render.
$this->set('months', $months); $this->set('months', $months);
$this->set('title', 'Monthly Charges');
$this->set(compact('overview')); $this->set(compact('overview'));
$this->render('chargesbymonth');
}
function incomebymonth($months = 12, $invoice = false) {
$this->set('title', 'Monthly Gross Income');
$this->set('reptype', 'Gross Income');
$this->incexpbymonth(array('INCOME'), $invoice, $months);
}
function expensebymonth($months = 12) {
$this->set('title', 'Gross Monthly Expenses');
$this->set('reptype', 'Gross Expenses');
$this->incexpbymonth(array('EXPENSE'), false, $months);
}
function netbymonth($months = 12) {
$this->set('title', 'Net Monthly Income');
$this->set('reptype', 'Net Income');
$this->incexpbymonth(array('INCOME', 'EXPENSE'), true, $months);
} }
+3 -3
View File
@@ -468,7 +468,7 @@ class TransactionsController extends AppController {
function deposit_slip($id) { function deposit_slip($id) {
// Find the deposit transaction // Find the deposit transaction
$this->Transaction->id = $id; $this->Transaction->id = $id;
$deposit = $this->Transaction->find('first', array('contain' => false)); $deposit = $this->Transaction->find('first', array('contain' => array('Account')));
// Get a summary of all forms of tender in the deposit // Get a summary of all forms of tender in the deposit
$tenders = $this->Transaction->find $tenders = $this->Transaction->find
@@ -503,8 +503,8 @@ class TransactionsController extends AppController {
foreach ($deposit['types'] AS $type) foreach ($deposit['types'] AS $type)
$deposit_total += $type['total']; $deposit_total += $type['total'];
if ($deposit['Transaction']['amount'] != $deposit_total) if (abs($deposit['Transaction']['amount'] - $deposit_total) >= .001)
$this->INTERNAL_ERROR("Deposit items do not add up to deposit slip total"); $this->INTERNAL_ERROR("Deposit items ($deposit_total) do not add up to deposit slip total (".$deposit['Transaction']['amount'].")");
$this->addSideMenuLink('View', $this->addSideMenuLink('View',
array('action' => 'view', $id), null, array('action' => 'view', $id), null,
+2 -2
View File
@@ -91,8 +91,8 @@ class UnitSizesController extends AppController {
$fields[] = 'SUM(IF(' . $this->UnitSize->Unit->conditionUnavailable() . ', 1, 0)) AS unavailable'; $fields[] = 'SUM(IF(' . $this->UnitSize->Unit->conditionUnavailable() . ', 1, 0)) AS unavailable';
$fields[] = 'SUM(IF(' . $this->UnitSize->Unit->conditionAvailable() . ', 1, 0)) AS available'; $fields[] = 'SUM(IF(' . $this->UnitSize->Unit->conditionAvailable() . ', 1, 0)) AS available';
$fields[] = 'SUM(IF(' . $this->UnitSize->Unit->conditionOccupied() . ', 1, 0)) AS occupied'; $fields[] = 'SUM(IF(' . $this->UnitSize->Unit->conditionOccupied() . ', 1, 0)) AS occupied';
$fields[] = 'SUM(IF(' . $this->UnitSize->Unit->conditionOccupied() . ', 0, 1)) / COUNT(unit.id) AS vacancy'; $fields[] = 'SUM(IF(' . $this->UnitSize->Unit->conditionOccupied() . ', 0, 1)) / COUNT(Unit.id) AS vacancy';
$fields[] = 'SUM(IF(' . $this->UnitSize->Unit->conditionOccupied() . ', 1, 0)) / COUNT(unit.id) AS occupancy'; $fields[] = 'SUM(IF(' . $this->UnitSize->Unit->conditionOccupied() . ', 1, 0)) / COUNT(Unit.id) AS occupancy';
return $fields; return $fields;
} }
+7 -33
View File
@@ -4,31 +4,6 @@ class UtilController extends AppController {
var $uses = array(); var $uses = array();
/**************************************************************************
**************************************************************************
**************************************************************************
* function: reset_data
* - Development function. TO BE DELETED
*/
function reset_data() {
$this->layout = null;
$this->autoLayout = false;
$this->autoRender = false;
Configure::write('debug', '0');
$script = $_SERVER['DOCUMENT_ROOT'] . '/pmgr/build.cmd';
echo "<P>" . date('r') . "\n";
//echo "<P>Script: $script" . "\n";
$handle = popen($script . ' 2>&1', 'r');
//echo "<P>Handle: $handle; " . gettype($handle) . "\n";
echo "<P><PRE>\n";
while (($read = fread($handle, 2096))) {
echo $read;
}
echo "</PRE>\n";
pclose($handle);
}
/************************************************************************** /**************************************************************************
************************************************************************** **************************************************************************
************************************************************************** **************************************************************************
@@ -40,21 +15,20 @@ class UtilController extends AppController {
$this->autoLayout = false; $this->autoLayout = false;
$this->autoRender = false; $this->autoRender = false;
Configure::write('debug', '0'); Configure::write('debug', '0');
$script = preg_replace('%/webroot/index.php$%',
'/build_'.$type.'box.cmd',
$_SERVER['SCRIPT_FILENAME']);
// REVISIT <AP>: 20090828 $usrpass = '--user=perki2_pmgruser --password=pmgrauth';
// Just use system call $boxdb = 'perki2_pmgr_' . $type;
$handle = popen($script . ' 2>&1', 'r');
$handle = popen("mysqldump $usrpass --opt perki2_pmgr" .
" | mysql $usrpass --database=$boxdb", 'r');
while (($read = fread($handle, 2096))) { while (($read = fread($handle, 2096))) {
// Do nothing // Do nothing
} }
pclose($handle); pclose($handle);
$url = $_SERVER['HTTP_REFERER']; $url = $_SERVER['HTTP_REFERER'];
if (empty($url)) if (empty($url) || $url == 'undefined')
$url = "/"; $url = "/$type";
$this->redirect($url); $this->redirect($url);
} }
+1 -1
View File
@@ -91,7 +91,7 @@ class Contact extends AppModel {
// If the user has entered all new data, we need to // If the user has entered all new data, we need to
// save that as a brand new entry. // save that as a brand new entry.
if (!isset($item['id'])) { if (!isset($item['id']) || $item['source'] == 'new') {
$I = new $class(); $I = new $class();
$I->create(); $I->create();
if (!$I->save($item, false)) { if (!$I->save($item, false)) {
+2
View File
@@ -347,6 +347,8 @@ class Lease extends AppModel {
$this->pr(17, compact('date', 'charge_through_date') $this->pr(17, compact('date', 'charge_through_date')
+ array('date_str' => date('Y-m-d', $date), + array('date_str' => date('Y-m-d', $date),
'charge_through_date_str' => date('Y-m-d', $charge_through_date))); 'charge_through_date_str' => date('Y-m-d', $charge_through_date)));
if (!$charge_through_date)
return $this->prReturn(null);
if ($charge_through_date >= $date) if ($charge_through_date >= $date)
return $this->prReturn(null); return $this->prReturn(null);
@@ -163,7 +163,7 @@ class ToolbarComponent extends Object {
trigger_error(sprintf(__('Could not load DebugToolbar panel %s', true), $panel), E_USER_WARNING); trigger_error(sprintf(__('Could not load DebugToolbar panel %s', true), $panel), E_USER_WARNING);
continue; continue;
} }
$panelObj =& new $className(); $panelObj = new $className();
if (is_subclass_of($panelObj, 'DebugPanel') || is_subclass_of($panelObj, 'debugpanel')) { if (is_subclass_of($panelObj, 'DebugPanel') || is_subclass_of($panelObj, 'debugpanel')) {
$this->panels[$panel] =& $panelObj; $this->panels[$panel] =& $panelObj;
} }
@@ -456,7 +456,7 @@ class LogPanel extends DebugPanel {
* @return array * @return array
*/ */
function _parseFile($filename) { function _parseFile($filename) {
$file =& new File($filename); $file = new File($filename);
$contents = $file->read(); $contents = $file->read();
$timePattern = '/(\d{4}-\d{2}\-\d{2}\s\d{1,2}\:\d{1,2}\:\d{1,2})/'; $timePattern = '/(\d{4}-\d{2}\-\d{2}\s\d{1,2}\:\d{1,2}\:\d{1,2})/';
$chunks = preg_split($timePattern, $contents, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); $chunks = preg_split($timePattern, $contents, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
@@ -30,14 +30,14 @@ $timers = DebugKitDebugger::getTimers();
?> ?>
<h2><?php __('Timers'); ?></h2> <h2><?php __('Timers'); ?></h2>
<p class="request-time"> <p class="request-time">
<?php $totalTime = sprintf(__('%s (seconds)', true), $number->precision(DebugKitDebugger::requestTime(), 6)); ?> <?php $totalTime = sprintf(__('%.6s (seconds)', true), DebugKitDebugger::requestTime()); ?>
<?php echo $toolbar->message(__('Total Request Time:', true), $totalTime)?> <?php echo $toolbar->message(__('Total Request Time:', true), $totalTime)?>
</p> </p>
<?php foreach ($timers as $timerName => $timeInfo): <?php foreach ($timers as $timerName => $timeInfo):
$rows[] = array( $rows[] = array(
$timeInfo['message'], $timeInfo['message'],
$number->precision($timeInfo['time'], 6) sprintf(__('%.6s', true), $timeInfo['time'])
); );
$headers = array(__('Message', true), __('time in seconds', true)); $headers = array(__('Message', true), __('time in seconds', true));
endforeach; endforeach;
+9
View File
@@ -0,0 +1,9 @@
abijah:Property Manager:a2369e3cc9e231ea6f02ce799a8b9970
anja:Property Manager:4539d5a6e58dd5895f2f3891d29705b0
kevin:Property Manager:f01accc9f5e5cdfc028dcf0cca837cf1
adam:Property Manager:ae6835569bb2fc0a0a4a773580ac8cda
shirley:Property Manager:e7e9d674c700796c99cdbf3cf105e739
admin:Property Manager:bab2226685d9b4b66220db8df80f1822
dev:Property Manager:e5c27b3c025e47239a45daceea2c0a00
vasst:Property Manager:523abc6c2b8458b463d5a9baa4f58f2e
answerfirst:Property Manager:6ac128447fab8be985c74ba7539c39b3
+1 -1
View File
@@ -100,7 +100,7 @@ echo $this->element('ledger_entries', array
'filter' => array('Account.id' => $account['id']), 'filter' => array('Account.id' => $account['id']),
'exclude' => array('Account', 'Amount', 'Cr/Dr', 'Balance', 'exclude' => array('Account', 'Amount', 'Cr/Dr', 'Balance',
empty($account['receipts']) ? 'Tender' : null), empty($account['receipts']) ? 'Tender' : null),
'include' => array('Debit', 'Credit', 'Sub-Total'), 'include' => array('Transaction', 'Debit', 'Credit', 'Sub-Total'),
'limit' => 50, 'limit' => 50,
))); )));
+15 -3
View File
@@ -68,7 +68,7 @@ function contactMethodDiv($obj, $type, $legend, $values = null) {
'</DIV>' . "\n" . '</DIV>' . "\n" .
// BEGIN method-div // BEGIN method-div
'<div id="'.$type.'-%{id}-method-div"' . "\n" . '<div id="'.$type.'-%{id}-method-div"' . '>' . "\n" .
$obj->element $obj->element
('form_table', ('form_table',
@@ -131,14 +131,18 @@ function contactMethodTypeDiv($obj, $type, $stype, $values = null) {
elseif ($stype === 'new') { elseif ($stype === 'new') {
$fields = array $fields = array
('type' => array('label_attributes' => array('class' => 'required'), ('type' => array('label_attributes' => array('class' => 'required'),
'opts' => array('options' => $obj->varstore['phoneTypes']), 'opts' => array('autocomplete' => 'off',
'options' => $obj->varstore['phoneTypes']),
'after' => "Physical type of the phone."), 'after' => "Physical type of the phone."),
'phone' => array('label_attributes' => array('class' => 'required empty'), 'phone' => array('label_attributes' => array('class' => 'required empty'),
'opts' => array('autocomplete' => 'off'),
'after' => "Required: Phone number."), 'after' => "Required: Phone number."),
'ext' => array('name' => "Extension", 'ext' => array('name' => "Extension",
'label_attributes' => array('class' => 'optional empty'), 'label_attributes' => array('class' => 'optional empty'),
'opts' => array('autocomplete' => 'off'),
'after' => "Optional: Extension number."), 'after' => "Optional: Extension number."),
'comment' => array('label_attributes' => array('class' => 'optional empty'), 'comment' => array('label_attributes' => array('class' => 'optional empty'),
'opts' => array('autocomplete' => 'off'),
'after' => "Optional: Comments about this phone number."), 'after' => "Optional: Comments about this phone number."),
); );
} }
@@ -167,17 +171,23 @@ function contactMethodTypeDiv($obj, $type, $stype, $values = null) {
elseif ($stype === 'new') { elseif ($stype === 'new') {
$fields = array $fields = array
('address' => array('label_attributes' => array('class' => 'required empty'), ('address' => array('label_attributes' => array('class' => 'required empty'),
'opts' => array('autocomplete' => 'off'),
'after' => "Required: First line of mailing address."), 'after' => "Required: First line of mailing address."),
'city' => array('label_attributes' => array('class' => 'required empty'), 'city' => array('label_attributes' => array('class' => 'required empty'),
'opts' => array('autocomplete' => 'off'),
'after' => "Required."), 'after' => "Required."),
'state' => array('label_attributes' => array('class' => 'required empty'), 'state' => array('label_attributes' => array('class' => 'required empty'),
'opts' => array('autocomplete' => 'off'),
'after' => "Required."), 'after' => "Required."),
'postcode' => array('name' => 'Zip Code', 'postcode' => array('name' => 'Zip Code',
'label_attributes' => array('class' => 'required empty'), 'label_attributes' => array('class' => 'required empty'),
'opts' => array('autocomplete' => 'off'),
'after' => "Required."), 'after' => "Required."),
'country' => array('label_attributes' => array('class' => 'optional empty'), 'country' => array('label_attributes' => array('class' => 'optional empty'),
'opts' => array('autocomplete' => 'off'),
'after' => "Optional: USA is presumed."), 'after' => "Optional: USA is presumed."),
'comment' => array('label_attributes' => array('class' => 'optional empty'), 'comment' => array('label_attributes' => array('class' => 'optional empty'),
'opts' => array('autocomplete' => 'off'),
'after' => "Optional: Comments about this mailing address."), 'after' => "Optional: Comments about this mailing address."),
); );
} }
@@ -208,8 +218,10 @@ function contactMethodTypeDiv($obj, $type, $stype, $values = null) {
elseif ($stype === 'new') { elseif ($stype === 'new') {
$fields = array $fields = array
('email' => array('label_attributes' => array('class' => 'required empty'), ('email' => array('label_attributes' => array('class' => 'required empty'),
'after' => "Required: E-mail address."), 'opts' => array('autocomplete' => 'off'),
'after' => "Required: E-mail address."),
'comment' => array('label_attributes' => array('class' => 'optional empty'), 'comment' => array('label_attributes' => array('class' => 'optional empty'),
'opts' => array('autocomplete' => 'off'),
'after' => "Optional: Comments about this email address."), 'after' => "Optional: Comments about this email address."),
); );
} }
+1 -1
View File
@@ -66,7 +66,7 @@ function customerContactDiv($obj, $values = null, $primary = false) {
'</DIV>' . "\n" . '</DIV>' . "\n" .
// BEGIN contact-div // BEGIN contact-div
'<div id="contact-%{id}-contact-div"' . "\n" . '<div id="contact-%{id}-contact-div">' . "\n" .
$obj->element $obj->element
('form_table', ('form_table',
+4 -1
View File
@@ -157,7 +157,10 @@ function onRowSelect(grid_id, customer_id) {
$("#customer-id").val(customer_id); $("#customer-id").val(customer_id);
// Set the customer name, so the user knows who the receipt is for // Set the customer name, so the user knows who the receipt is for
$("#receipt-customer-name").html($(grid_id).getCell(customer_id, 'Customer-name')); $("#receipt-customer-name")
.html('<A HREF="view/' + customer_id + '">'
+ $(grid_id).getCell(customer_id, 'Customer-name')
+ '</A>');
// Hide the "no customer" message and show the current customer // Hide the "no customer" message and show the current customer
$(".customer-selection-invalid").hide(); $(".customer-selection-invalid").hide();
+21
View File
@@ -105,6 +105,27 @@ echo $this->element('ledger_entries', array
))); )));
/**********************************************************************
* Invoice History
*/
/* NOT COMPLETED
echo $this->element('transactions', array
(// Grid configuration
'config' => array
('caption' => 'Invoices',
'limit' => 5,
'filter' => array('Customer.id' => $customer['Customer']['id'],
'Transaction.type' => 'INVOICE',
),
//'include' => array(),
'exclude' => array('Type'),
'remap' => array('ID' => 'Invoice',
//'Timestamp' => 'Date',
'Entries' => 'Charges'),
)));
NOT COMPLETED */
/********************************************************************** /**********************************************************************
* Lease History * Lease History
*/ */
+1
View File
@@ -50,6 +50,7 @@ if (!isset($grid_setup))
$html->css('ui.jqgrid', null, null, false); $html->css('ui.jqgrid', null, null, false);
$javascript->link('jqGrid/grid.locale-en', false); $javascript->link('jqGrid/grid.locale-en', false);
$javascript->link('jqGrid/jquery.jqGrid.min', false); $javascript->link('jqGrid/jquery.jqGrid.min', false);
$javascript->link('jqGrid/grid.postext', false);
$javascript->link('pmgr_jqGrid', false); $javascript->link('pmgr_jqGrid', false);
+1 -1
View File
@@ -11,8 +11,8 @@ $cols['ID'] = array('index' => 'Transaction.id', 'formatter' =
$cols['Type'] = array('index' => 'Transaction.type', 'formatter' => 'enum'); $cols['Type'] = array('index' => 'Transaction.type', 'formatter' => 'enum');
$cols['Customer'] = array('index' => 'Customer.name', 'formatter' => 'longname'); $cols['Customer'] = array('index' => 'Customer.name', 'formatter' => 'longname');
$cols['Timestamp'] = array('index' => 'Transaction.stamp', 'formatter' => 'date'); $cols['Timestamp'] = array('index' => 'Transaction.stamp', 'formatter' => 'date');
$cols['Amount'] = array('index' => 'Transaction.amount', 'formatter' => 'currency');
$cols['Entries'] = array('index' => 'entries', 'formatter' => 'number'); $cols['Entries'] = array('index' => 'entries', 'formatter' => 'number');
$cols['Amount'] = array('index' => 'Transaction.amount', 'formatter' => 'currency');
$cols['Comment'] = array('index' => 'Transaction.comment', 'formatter' => 'comment'); $cols['Comment'] = array('index' => 'Transaction.comment', 'formatter' => 'comment');
// Render the grid // Render the grid
+1 -1
View File
@@ -75,7 +75,7 @@
echo $html->css('print', null, array('media' => 'print')) . "\n"; echo $html->css('print', null, array('media' => 'print')) . "\n";
echo $html->css('sidemenu') . "\n"; echo $html->css('sidemenu') . "\n";
echo $javascript->link('jquery-1.3.2.min') . "\n"; echo $javascript->link('jquery-1.7.2.min') . "\n";
echo $javascript->link('jquery-ui-1.7.2.custom.min') . "\n"; echo $javascript->link('jquery-ui-1.7.2.custom.min') . "\n";
//echo $javascript->link($protocol . 'ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js') . "\n"; //echo $javascript->link($protocol . 'ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js') . "\n";
//echo $javascript->link($protocol . 'ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js') . "\n"; //echo $javascript->link($protocol . 'ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js') . "\n";
@@ -10,11 +10,11 @@ echo '<div class="statement_entry overview">' . "\n";
*/ */
$rows = array(); $rows = array();
$rows[] = array("$months Month Charges", FormatHelper::currency($overview['charges'])); $rows[] = array("$months Month Total", FormatHelper::currency($overview['amount']) . " / (" . FormatHelper::currency($overview['amount'] / $months) . " per month)");
echo $this->element('table', echo $this->element('table',
array('class' => 'item statement_entry detail', array('class' => 'item statement_entry detail',
'caption' => 'Monthly Charges', 'caption' => $reptype,
'rows' => $rows, 'rows' => $rows,
'column_class' => array('field', 'value'))); 'column_class' => array('field', 'value')));
@@ -38,11 +38,11 @@ foreach ($overview['months'] AS $month) {
$odd = 1; $odd = 1;
foreach ($month['subs'] AS $sub) { foreach ($month['subs'] AS $sub) {
$row_class[] = array('subitem', $odd ? 'oddrow' : 'evenrow'); $row_class[] = array('subitem', $odd ? 'oddrow' : 'evenrow');
$rows[] = array($sub['name'], FormatHelper::currency($sub['charges'])); $rows[] = array($sub['name'], FormatHelper::currency($sub['amount']));
$odd = !$odd; $odd = !$odd;
} }
$row_class[] = 'grand'; $row_class[] = 'grand';
$rows[] = array('Total for '.$month['name'], FormatHelper::currency($month['charges'])); $rows[] = array('Total for '.$month['name'], FormatHelper::currency($month['amount']));
} }
echo $this->element('table', echo $this->element('table',
+9 -2
View File
@@ -2,11 +2,18 @@
//style="display:inline; //style="display:inline;
echo('<H2 style="display:inline;">Deposit Slip: ' . echo('<H2 style="display:inline;">Deposit Slip: ' .
FormatHelper::datetime($deposit['Transaction']['stamp']) FormatHelper::date($deposit['Transaction']['stamp'])
. '</H2>' . "\n"); . '</H2><br>' . "\n");
/* echo('(' . */ /* echo('(' . */
/* FormatHelper::age($deposit['Transaction']['stamp'], 60) */ /* FormatHelper::age($deposit['Transaction']['stamp'], 60) */
/* . ')<BR>' . "\n"); */ /* . ')<BR>' . "\n"); */
if ($deposit['Account']['external_name'] || $deposit['Account']['external_account']) {
echo('<H2 style="display:inline;">' .
($deposit['Account']['external_name'] ? $deposit['Account']['external_name'] : '') .
($deposit['Account']['external_name'] && $deposit['Account']['external_account'] ? ': ' : '') .
($deposit['Account']['external_account'] ? 'Account #' . $deposit['Account']['external_account'] : '') .
'</H2><br>' . "\n");
}
//pr(compact('deposit')); //pr(compact('deposit'));
+11 -10
View File
@@ -95,16 +95,17 @@ if ($transaction['type'] === 'INVOICE' ||
* Ledger Entries * Ledger Entries
*/ */
echo $this->element('ledger_entries', array if (0) {
(// Grid configuration echo $this->element('ledger_entries', array
'config' => array (// Grid configuration
( 'config' => array
'caption' => 'Ledger Entries', (
'filter' => array('Transaction.id' => $transaction['id'], 'caption' => 'Ledger Entries',
'Account.id !=' => $account['id']), 'filter' => array('Transaction.id' => $transaction['id'],
'exclude' => array('Transaction'), 'Account.id !=' => $account['id']),
))); 'exclude' => array('Transaction'),
)));
}
/* /\********************************************************************** */ /* /\********************************************************************** */
/* * Tenders Deposited */ /* * Tenders Deposited */
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -55,7 +55,7 @@
* *
*/ */
if (!defined('CAKE_CORE_INCLUDE_PATH')) { if (!defined('CAKE_CORE_INCLUDE_PATH')) {
define('CAKE_CORE_INCLUDE_PATH', 'D:\Website\localhost\CakePHP'); define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . APP_DIR . DS . 'CakePHP');
} }
/** /**
+169 -1
View File
@@ -1 +1,169 @@
(function(a){a.jgrid={defaults:{recordtext:"View {0} - {1} of {2}",emptyrecords:"No records to view",loadtext:"Loading...",pgtext:"Page {0} of {1}"},search:{caption:"Search...",Find:"Find",Reset:"Reset",odata:["equal","not equal","less","less or equal","greater","greater or equal","begins with","does not begin with","is in","is not in","ends with","does not end with","contains","does not contain"],groupOps:[{op:"AND",text:"all"},{op:"OR",text:"any"}],matchText:" match",rulesText:" rules"},edit:{addCaption:"Add Record",editCaption:"Edit Record",bSubmit:"Submit",bCancel:"Cancel",bClose:"Close",saveData:"Data has been changed! Save changes?",bYes:"Yes",bNo:"No",bExit:"Cancel",msg:{required:"Field is required",number:"Please, enter valid number",minValue:"value must be greater than or equal to ",maxValue:"value must be less than or equal to",email:"is not a valid e-mail",integer:"Please, enter valid integer value",date:"Please, enter valid date value",url:"is not a valid URL. Prefix required ('http://' or 'https://')"}},view:{caption:"View Record",bClose:"Close"},del:{caption:"Delete",msg:"Delete selected record(s)?",bSubmit:"Delete",bCancel:"Cancel"},nav:{edittext:"",edittitle:"Edit selected row",addtext:"",addtitle:"Add new row",deltext:"",deltitle:"Delete selected row",searchtext:"",searchtitle:"Find records",refreshtext:"",refreshtitle:"Reload Grid",alertcap:"Warning",alerttext:"Please, select row",viewtext:"",viewtitle:"View selected row"},col:{caption:"Show/Hide Columns",bSubmit:"Submit",bCancel:"Cancel"},errors:{errcap:"Error",nourl:"No url is set",norecords:"No records to process",model:"Length of colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Sun","Mon","Tue","Wed","Thr","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}}})(jQuery); ;(function($){
/**
* jqGrid English Translation
* Tony Tomov tony@trirand.com
* http://trirand.com/blog/
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
**/
$.jgrid = $.jgrid || {};
$.extend($.jgrid,{
defaults : {
recordtext: "View {0} - {1} of {2}",
emptyrecords: "No records to view",
loadtext: "Loading...",
pgtext : "Page {0} of {1}"
},
search : {
caption: "Search...",
Find: "Find",
Reset: "Reset",
odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ],
matchText: " match",
rulesText: " rules"
},
edit : {
addCaption: "Add Record",
editCaption: "Edit Record",
bSubmit: "Submit",
bCancel: "Cancel",
bClose: "Close",
saveData: "Data has been changed! Save changes?",
bYes : "Yes",
bNo : "No",
bExit : "Cancel",
msg: {
required:"Field is required",
number:"Please, enter valid number",
minValue:"value must be greater than or equal to ",
maxValue:"value must be less than or equal to",
email: "is not a valid e-mail",
integer: "Please, enter valid integer value",
date: "Please, enter valid date value",
url: "is not a valid URL. Prefix required ('http://' or 'https://')",
nodefined : " is not defined!",
novalue : " return value is required!",
customarray : "Custom function should return array!",
customfcheck : "Custom function should be present in case of custom checking!"
}
},
view : {
caption: "View Record",
bClose: "Close"
},
del : {
caption: "Delete",
msg: "Delete selected record(s)?",
bSubmit: "Delete",
bCancel: "Cancel"
},
nav : {
edittext: "",
edittitle: "Edit selected row",
addtext:"",
addtitle: "Add new row",
deltext: "",
deltitle: "Delete selected row",
searchtext: "",
searchtitle: "Find records",
refreshtext: "",
refreshtitle: "Reload Grid",
alertcap: "Warning",
alerttext: "Please, select row",
viewtext: "",
viewtitle: "View selected row"
},
col : {
caption: "Select columns",
bSubmit: "Ok",
bCancel: "Cancel"
},
errors : {
errcap : "Error",
nourl : "No url is set",
norecords: "No records to process",
model : "Length of colNames <> colModel!"
},
formatter : {
integer : {thousandsSeparator: ",", defaultValue: '0'},
number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'},
currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
date : {
dayNames: [
"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
],
monthNames: [
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
],
AmPm : ["am","pm","AM","PM"],
S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
srcformat: 'Y-m-d',
newformat: 'n/j/Y',
masks : {
// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
// and see http://docs.jquery.com/UI/Datepicker/formatDate
// and https://github.com/jquery/globalize#dates for alternative formats used frequently
// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
// information about date, time, numbers and currency formats used in different countries
// one should just convert the information in PHP format
ISO8601Long:"Y-m-d H:i:s",
ISO8601Short:"Y-m-d",
// short date:
// n - Numeric representation of a month, without leading zeros
// j - Day of the month without leading zeros
// Y - A full numeric representation of a year, 4 digits
// example: 3/1/2012 which means 1 March 2012
ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
// long date:
// l - A full textual representation of the day of the week
// F - A full textual representation of a month
// d - Day of the month, 2 digits with leading zeros
// Y - A full numeric representation of a year, 4 digits
LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
// long date with long time:
// l - A full textual representation of the day of the week
// F - A full textual representation of a month
// d - Day of the month, 2 digits with leading zeros
// Y - A full numeric representation of a year, 4 digits
// g - 12-hour format of an hour without leading zeros
// i - Minutes with leading zeros
// s - Seconds, with leading zeros
// A - Uppercase Ante meridiem and Post meridiem (AM or PM)
FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
// month day:
// F - A full textual representation of a month
// d - Day of the month, 2 digits with leading zeros
MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
// short time (without seconds)
// g - 12-hour format of an hour without leading zeros
// i - Minutes with leading zeros
// A - Uppercase Ante meridiem and Post meridiem (AM or PM)
ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
// long time (with seconds)
// g - 12-hour format of an hour without leading zeros
// i - Minutes with leading zeros
// s - Seconds, with leading zeros
// A - Uppercase Ante meridiem and Post meridiem (AM or PM)
LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
SortableDateTime: "Y-m-d\\TH:i:s",
UniversalSortableDateTime: "Y-m-d H:i:sO",
// month with year
// Y - A full numeric representation of a year, 4 digits
// F - A full textual representation of a month
YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
},
reformatAfterEdit : false
},
baseLinkUrl: '',
showAction: '',
target: '',
checkbox : {disabled:true},
idName : 'id'
}
});
})(jQuery);
+64
View File
@@ -0,0 +1,64 @@
;(function($){
/**
* jqGrid extension
* Paul Tiseo ptiseo@wasteconsultants.com
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl-2.0.html
**/
$.jgrid.extend({
getPostData : function(){
var $t = this[0];
if(!$t.grid) { return; }
return $t.p.postData;
},
setPostData : function( newdata ) {
var $t = this[0];
if(!$t.grid) { return; }
// check if newdata is correct type
if ( typeof(newdata) === 'object' ) {
$t.p.postData = newdata;
}
else {
alert("Error: cannot add a non-object postData value. postData unchanged.");
}
},
appendPostData : function( newdata ) {
var $t = this[0];
if(!$t.grid) { return; }
// check if newdata is correct type
if ( typeof(newdata) === 'object' ) {
$.extend($t.p.postData, newdata);
}
else {
alert("Error: cannot append a non-object postData value. postData unchanged.");
}
},
setPostDataItem : function( key, val ) {
var $t = this[0];
if(!$t.grid) { return; }
$t.p.postData[key] = val;
},
getPostDataItem : function( key ) {
var $t = this[0];
if(!$t.grid) { return; }
return $t.p.postData[key];
},
removePostDataItem : function( key ) {
var $t = this[0];
if(!$t.grid) { return; }
delete $t.p.postData[key];
},
getUserData : function(){
var $t = this[0];
if(!$t.grid) { return; }
return $t.p.userData;
},
getUserDataItem : function( key ) {
var $t = this[0];
if(!$t.grid) { return; }
return $t.p.userData[key];
}
});
})(jQuery);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long