]> wagnertech.de Git - mfinanz.git/blob - SL/Presenter/Order.pm
restart apache2 in postinst
[mfinanz.git] / SL / Presenter / Order.pm
1 package SL::Presenter::Order;
2
3 use strict;
4
5 use SL::Presenter::EscapedText qw(escape is_escaped);
6 use SL::Presenter::Tag         qw(link_tag);
7
8 use Exporter qw(import);
9 our @EXPORT_OK = qw(show order sales_quotation sales_order_intake sales_order request_quotation purchase_quotation_intake purchase_order purchase_order_confirmation);
10
11 use Carp;
12
13 sub show {goto &order}
14
15 sub sales_quotation {goto &order}
16
17 sub sales_order_intake {goto &order}
18
19 sub sales_order {goto &order}
20
21 sub request_quotation {goto &order}
22
23 sub purchase_quotation_intake {goto &order}
24
25 sub purchase_order {goto &order}
26
27 sub purchase_order_confirmation {goto &order}
28
29 sub order {
30   my ($order, %params) = @_;
31   my $type = $order->record_type;
32
33   $params{display} ||= 'inline';
34
35   croak "Unknown display type '$params{display}'" unless $params{display} =~ m/^(?:inline|table-cell)$/;
36
37   my $text = escape($order->record_number);
38   if (! delete $params{no_link}) {
39     my $href = 'controller.pl?action=Order/edit'
40                . '&type=' . $type
41                . '&id=' . escape($order->id);
42     $text = link_tag($href, $text, %params);
43   }
44
45   is_escaped($text);
46 }
47
48 1;
49
50
51 __END__
52
53 =pod
54
55 =encoding utf8
56
57 =head1 NAME
58
59 SL::Presenter::Order - Presenter module for Rose::DB objects for sales
60 quotations, sales order_intakes, sales orders,
61 requests for quotations, purchase_quotation_intakes,
62 purchase orders and purchase order confirmations
63
64 =head1 SYNOPSIS
65
66   # Sales quotations:
67   my $object = SL::DB::Manager::Order->get_first(where => [ SL::DB::Manager::Order->type_filter('sales_quotation') ]);
68   my $html   = SL::Presenter::Order::sales_quotation($object, display => 'inline');
69
70   # Sales orders:
71   my $object = SL::DB::Manager::Order->get_first(where => [ SL::DB::Manager::Order->type_filter('sales_order') ]);
72   my $html   = SL::Presenter::Order::sales_order($object, display => 'inline');
73
74   # Requests for quotations:
75   my $object = SL::DB::Manager::Order->get_first(where => [ SL::DB::Manager::Order->type_filter('request_quotation') ]);
76   my $html   = SL::Presenter::Order::request_quotation($object, display => 'inline');
77
78   # Purchase orders:
79   my $object = SL::DB::Manager::Order->get_first(where => [ SL::DB::Manager::Order->type_filter('purchase_order') ]);
80   my $html   = SL::Presenter::Order::purchase_order($object, display => 'inline');
81
82   # or for all types:
83   my $html   = SL::Presenter::Order::order($object);
84   my $html   = $object->presenter->show();
85
86 =head1 FUNCTIONS
87
88 =over 4
89
90 =item C<show $object %params>
91
92 Alias for C<order $object %params>.
93
94 =item C<sales_quotation $object %params>
95
96 Alias for C<order $object %params>.
97
98 =item C<sales_order_intake $object %params>
99
100 Alias for C<order $object %params>.
101
102 =item C<sales_order $object %params>
103
104 Alias for C<order $object %params>.
105
106 =item C<request_quotation $object %params>
107
108 Alias for C<order $object %params>.
109
110 =item C<purchase_quotation_intake $object %params>
111
112 Alias for C<order $object %params>.
113
114 =item C<purchase_order $object %params>
115
116 Alias for C<order $object %params>.
117
118 =item C<order $object %params>
119
120 Returns a rendered version (actually an instance of
121 L<SL::Presenter::EscapedText>) of the purchase order object
122 C<$object>.
123
124 Remaining C<%params> are passed to the function
125 C<SL::Presenter::Tag::link_tag>. It can include:
126
127 =over 2
128
129 =item * display
130
131 Either C<inline> (the default) or C<table-cell>. Is passed to the function
132 C<SL::Presenter::Tag::link_tag>.
133
134 =item * no_link
135
136 If falsish (the default) then the  order number will be linked
137 to the "edit order" dialog.
138
139 =back
140
141 =back
142
143 =head1 BUGS
144
145 Nothing here yet.
146
147 =head1 AUTHOR
148
149 Moritz Bunkus E<lt>m.bunkus@linet-services.deE<gt>
150
151 =cut