package Local::Quickbooks;
# ABSTRACT: Base class for our local interface to XML::Quickbooks
use Math::Fraction;
use TJ;
use Moose;
extends qw(XML::Quickbooks);
has 'getnewsql' => (is => 'rw', lazy_build => 1);
has 'exportmode' => ( is => 'rw' );
has 'recordi' => ( is => 'rw' );
has 'recordcount' => ( is => 'rw' );
has 'progressbar' => ( is => 'rw' );
has 'manager_results' => (
is => 'rw',
default => sub { use Data::MultiValuedHash; Data::MultiValuedHash->new }
);
sub getnew {
my ($self) = @_;
use DBI;
DBI->trace(1);
$self->dbs->query($self->getnewsql)->hashes;
}
1;
####
package Local::Quickbooks::GetNewTicketData;
use Moose::Role;
override 'getnew' => sub {
my ($self) = @_;
my @row = $self->dbs->query( $self->getnewsql )->hashes;
my %row;
my %customerid;
for my $row (@row) {
if ( $row->{amount} < 0 ) {
$row->{amount} *= -1;
$row->{quantity} *= -1;
}
push @{ $row{ $row->{id} } }, $row;
$customerid{ $row->{id} } = $row->{customer_listid};
}
my @ret = map {
my %row = (
CustomerRef => { ListID => $customerid{$_} },
transactions => $row{$_}
);
\%row;
} ( keys %row );
warn Dumper(
'Original Data', \@row, 'Mapped Data', \%row,
'Returned Data', \@ret
);
return wantarray ? @ret : \@ret;
};
1;
####
package Local::Quickbooks::InvoiceAdd;
use Data::Dumper;
use Data::Rmap qw(:all);
use DateTime;
use Moose;
extends qw(XML::Quickbooks::Writer::InvoiceAdd Local::Quickbooks);
with 'Local::Quickbooks::GetNewTicketData';
1;
####
*** unhandled exception in callback:
*** You cannot override 'getnew' because it has no super method at C:/strawberry/perl/site/lib/Moose/Meta/Class.pm line 521
*** Moose::Meta::Class::add_override_method_modifier('Moose::Meta::Class=HASH(0xe9b969c)', 'getnew', 'CODE(0xe9d8fa4)', 'Local::Quickbooks::GetNewTicketData') called at C:/strawberry/perl/site/lib/Moose/Meta/Role/Application/ToClass.pm line 209
*** Moose::Meta::Role::Application::ToClass::apply_override_method_modifiers('Moose::Meta::Role::Application::ToClass=HASH(0xe9d8864)', 'Moose::Meta::Role=HASH(0xec09eac)', 'Moose::Meta::Class=HASH(0xe9b969c)') called at C:/strawberry/perl/site/lib/Moose/Meta/Role/Application.pm line 59
*** Moose::Meta::Role::Application::apply('Moose::Meta::Role::Application::ToClass=HASH(0xe9d8864)', 'Moose::Meta::Role=HASH(0xec09eac)', 'Moose::Meta::Class=HASH(0xe9b969c)') called at C:/strawberry/perl/site/lib/Moose/Meta/Role/Application/ToClass.pm line 33
*** Moose::Meta::Role::Application::ToClass::apply('Moose::Meta::Role::Application::ToClass=HASH(0xe9d8864)', 'Moose::Meta::Role=HASH(0xec09eac)', 'Moose::Meta::Class=HASH(0xe9b969c)', 'HASH(0xec0811c)') called at C:/strawberry/perl/site/lib/Moose/Meta/Role.pm line 482
*** Moose::Meta::Role::apply('Moose::Meta::Role=HASH(0xec09eac)', 'Moose::Meta::Class=HASH(0xe9b969c)') called at C:/strawberry/perl/site/lib/Moose/Util.pm line 154
*** Moose::Util::_apply_all_roles('Moose::Meta::Class=HASH(0xe9b969c)', undef, 'Local::Quickbooks::GetNewTicketData') called at C:/strawberry/perl/site/lib/Moose/Util.pm line 93
*** Moose::Util::apply_all_roles('Moose::Meta::Class=HASH(0xe9b969c)', 'Local::Quickbooks::GetNewTicketData') called at C:/strawberry/perl/site/lib/Moose.pm line 65
*** Moose::with('Moose::Meta::Class=HASH(0xe9b969c)', 'Local::Quickbooks::GetNewTicketData') called at C:/strawberry/perl/site/lib/Moose/Exporter.pm line 356
*** Moose::with('Local::Quickbooks::GetNewTicketData') called at c:\Users\thequietcenter\prg\biotrackthc\trunk\Local\lib/Local/Quickbooks/InvoiceAdd.pm line 10
*** require Local/Quickbooks/InvoiceAdd.pm called at c:\Users\thequietcenter\prg\biotrackthc\trunk\Local\lib/Local/Quickbooks.pm line 40
*** Local::Quickbooks::BEGIN() called at c:\Users\thequietcenter\prg\biotrackthc\trunk\Local\lib/Local/Quickbooks/InvoiceAdd.pm line 0
*** eval {...} called at c:\Users\thequietcenter\prg\biotrackthc\trunk\Local\lib/Local/Quickbooks/InvoiceAdd.pm line 0
*** require Local/Quickbooks.pm called at main.pm line 629
*** main::loadQuickbooks('Gtk2::MenuItem=HASH(0xb9f6384)') called at C:\Users\thequietcenter\prg\biotrackthc\trunk\biotrackthc.pl line 504
*** eval {...} called at C:\Users\thequietcenter\prg\biotrackthc\trunk\biotrackthc.pl line 504
*** Compilation failed in require at c:\Users\thequietcenter\prg\biotrackthc\trunk\Local\lib/Local/Quickbooks.pm line 40, line 496.
*** BEGIN failed--compilation aborted at c:\Users\thequietcenter\prg\biotrackthc\trunk\Local\lib/Local/Quickbooks.pm line 40, line 496.