money::billable_transaction->has_many( billings => 'money::billing' );
money::billable_transaction->has_many( payments => 'money::payment' );
+ money::grocery->has_many( billings => 'money::billing' );
+ money::grocery->has_many( payments => 'money::payment' );
+
money::billing->has_a( xact => 'money::billable_transaction' );
money::payment->has_a( xact => 'money::billable_transaction' );
use base qw/money/;
__PACKAGE__->table('money_billable_xact');
__PACKAGE__->columns(Primary => 'id');
-__PACKAGE__->columns(Essential => qw/xact_start usr/);
-__PACKAGE__->columns(Others => qw/xact_finish/);
+__PACKAGE__->columns(Essential => qw/xact_start usr xact_finish/);
+#-------------------------------------------------------------------------------
+
+package money::grocery;
+use base qw/money/;
+__PACKAGE__->table('money_grocery');
+__PACKAGE__->columns(Primary => 'id');
+__PACKAGE__->columns(Essential => qw/xact_start usr billing_location note xact_finish/);
#-------------------------------------------------------------------------------
package money::open_user_summary;
{
#---------------------------------------------------------------------
+ package money::grocery;
+
+ money::grocery->table( 'money.grocery' );
+ money::grocery->sequence( 'money.billable_xact_id_seq' );
+
+ #---------------------------------------------------------------------
package money::billable_transaction;
money::billable_transaction->table( 'money.billable_xact' );
'Fieldmapper::money::billing' => { hint => 'mb' },
'Fieldmapper::money::billable_transaction' => { hint => 'mbt' },
+ 'Fieldmapper::money::grocery' => { hint => 'mg' },
'Fieldmapper::money::open_user_summary' => { hint => 'mous',
readonly => 1 },
);
CREATE INDEX m_b_x_open_xacts_idx ON money.billable_xact (usr) WHERE xact_finish IS NULL;
+CREATE TABLE money.grocery ( -- Catchall table for local billing
+ billing_location INT NOT NULL, -- library creating transaction
+ note TEXT
+) INHERITS (money.billable_xact);
+
CREATE TABLE money.billing (
id BIGSERIAL PRIMARY KEY,
xact BIGINT NOT NULL, -- money.billable_xact.id