- 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) = @_;
- }
|