summaryrefslogtreecommitdiff
path: root/scripts/drafts.pl
blob: e38b434c12ec66297066150d57f2cb1f50ce4b89 (plain)
  1. package LedgerSMB::Scripts::drafts;
  2. our $VERSION = '0.1';
  3. use LedgerSMB::DBObject::Draft;
  4. use LedgerSMB::Template;
  5. use strict;
  6. sub search {
  7. my ($request) = @_;
  8. $request->{class_types} = [
  9. {text => $request->{_locale}->text('AR'), value => 'ar'},
  10. {text => $request->{_locale}->text('AP'), value => 'ap'},
  11. {text => $request->{_locale}->text('GL'), value => 'GL'},
  12. ];
  13. my $template = LedgerSMB::Template->new(
  14. user =>$request->{_user},
  15. locale => $request->{_locale},
  16. path => 'UI',
  17. template => 'batch/search_transactions',
  18. format => 'HTML'
  19. );
  20. $template->render($request);
  21. }
  22. sub list_drafts {
  23. my ($request) = @_;
  24. my $draft= LedgerSMB::DBObject::Draft->new(base => $request);
  25. my @search_results = $draft->search;
  26. $draft->{script} = "drafts.pl";
  27. my @columns =
  28. qw(select id transdate reference description amount);
  29. my $base_href = "drafts.pl";
  30. my $search_href = "$base_href?action=list_transactions";
  31. my $draft_href= "$base_href?action=get_transaction";
  32. for my $key (
  33. qw(class_id approved created_by description amount_gt amount_lt)
  34. ){
  35. $search_href .= "&$key=$draft->{key}";
  36. }
  37. my %column_heading = (
  38. 'select' => $draft->{_locale}->text('Select'),
  39. amount => {
  40. text => $draft->{_locale}->text('AR/AP/GL Total'),
  41. href => "$search_href&order_by=transaction_total"
  42. },
  43. description => {
  44. text => $draft->{_locale}->text('Description'),
  45. href => "$search_href&order_by=description"
  46. },
  47. id => {
  48. text => $draft->{_locale}->text('ID'),
  49. href => "$search_href&order_by=id"
  50. },
  51. reference => {
  52. text => $draft->{_locale}->text('Reference'),
  53. href => "$search_href&order_by=reference"
  54. },
  55. transdate => {
  56. text => $draft->{_locale}->text('Date'),
  57. href => "$search_href&order_by=transdate"
  58. },
  59. );
  60. my $count = 0;
  61. my @rows;
  62. for my $result (@search_results){
  63. ++$count;
  64. $draft->{"row_$count"} = $result->{id};
  65. push @rows, {
  66. 'select' => {
  67. input => {
  68. type => 'checkbox',
  69. value => 1,
  70. name => "draft_$result->{id}"
  71. }
  72. },
  73. amount => $draft->format_amount(
  74. amount => $result->{amount}
  75. ),
  76. reference => {
  77. text => $result->{reference},
  78. href => "$request->{type}.pl?action=edit&id=$result->{id}",
  79. },
  80. description => $result->{description},
  81. transdate => $result->{transdate},
  82. id => $result->{id},
  83. };
  84. }
  85. $draft->{rowcount} = $count;
  86. my $template = LedgerSMB::Template->new(
  87. user => $request->{_user},
  88. locale => $request->{_locale},
  89. path => 'UI',
  90. template => 'form-dynatable',
  91. format => ($draft->{format}) ? $draft->{format} : 'HTML',
  92. );
  93. my $hiddens = $draft->take_top_level();
  94. $draft->{rowcount} = "$count";
  95. delete $draft->{search_results};
  96. $template->render({
  97. form => $draft,
  98. columns => \@columns,
  99. heading => \%column_heading,
  100. rows => \@rows,
  101. hiddens => $hiddens,
  102. buttons => [{
  103. name => 'action',
  104. type => 'submit',
  105. text => $request->{_locale}->text('Post'),
  106. value => 'draft_approve',
  107. class => 'submit',
  108. },{
  109. name => 'action',
  110. type => 'submit',
  111. text => $request->{_locale}->text('Delete'),
  112. value => 'draft_delete',
  113. class => 'submit',
  114. }]
  115. });
  116. }
  117. sub delete_drafts {
  118. my ($request) = @_;
  119. }