package LedgerSMB::Scripts::vouchers; our $VERSION = '0.1'; use LedgerSMB::DBObject::Draft; use LedgerSMB::Template; use strict; sub search { my ($request) = @_; my $template = LedgerSMB::Template->new( user =>$request->{_user}, locale => $request->{_locale}, path => 'UI', template => 'batch/search_transactions', format => 'HTML' ); $template->render($request); } sub list_drafts { my ($request) = @_; my $draft= LedgerSMB::Draft->new(base => $request); my @search_results = $draft->search; $draft->{script} = "drafts.pl"; my @columns = qw(select id transdate reference description, amount); my $base_href = "drafts.pl"; my $search_href = "$base_href?action=list_transactions"; my $draft_href= "$base_href?action=get_transaction"; for my $key ( qw(class_id approved created_by description amount_gt amount_lt) ){ $search_href .= "&$key=$draft->{key}"; } my %column_heading = ( 'select' => $draft->{_locale}->text('Select'), transaction_total => { text => $draft->{_locale}->text('AR/AP/GL Total'), href => "$search_href&order_by=transaction_total" }, payment_total => { text => $draft->{_locale}->text('Paid/Received Total'), href => "$search_href&order_by=payment_total" }, description => { text => $draft->{_locale}->text('Description'), href => "$search_href&order_by=description" }, control_code => { text => $draft->{_locale}->text('Batch Number'), href => "$search_href&order_by=control_code" }, id => { text => $draft->{_locale}->text('ID'), href => "$search_href&order_by=control_code" }, ); my $count = 0; my @rows; for my $result (@search_results){ ++$count; $draft->{"row_$count"} = $result->{id}; push @rows, { 'select' => { input => { type => 'checkbox', value => 1, name => "draft_$result->{id}" } }, transaction_total => $draft->format_amount( amount => $result->{transaction_total} ), payment_total => $draft->format_amount ( amount => $result->{payment_total} ), description => $result->{description}, control_code => { text => $result->{control_code}, href => "$draft_href&draft_id=$result->{id}", }, id => $result->{id}, }; } $draft->{rowcount} = $count; my $template = LedgerSMB::Template->new( user => $request->{_user}, locale => $request->{_locale}, path => 'UI', template => 'form-dynatable', format => ($draft->{format}) ? $draft->{format} : 'HTML', ); my $hiddens = $draft->take_top_level(); $draft->{rowcount} = "$count"; delete $draft->{search_results}; $template->render({ form => $draft, columns => \@columns, heading => \%column_heading, rows => \@rows, hiddens => $hiddens, buttons => [{ name => 'action', type => 'submit', text => $request->{_locale}->text('Post'), value => 'draft_approve', class => 'submit', },{ name => 'action', type => 'submit', text => $request->{_locale}->text('Delete'), value => 'draft_delete', class => 'submit', }] }); } sub delete_drafts { my ($request) = @_; }