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.