1 package SL::Presenter::Order;
5 use SL::Presenter::EscapedText qw(escape is_escaped);
6 use SL::Presenter::Tag qw(link_tag);
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);
13 sub show {goto &order}
15 sub sales_quotation {goto &order}
17 sub sales_order_intake {goto &order}
19 sub sales_order {goto &order}
21 sub request_quotation {goto &order}
23 sub purchase_quotation_intake {goto &order}
25 sub purchase_order {goto &order}
27 sub purchase_order_confirmation {goto &order}
30 my ($order, %params) = @_;
31 my $type = $order->record_type;
33 $params{display} ||= 'inline';
35 croak "Unknown display type '$params{display}'" unless $params{display} =~ m/^(?:inline|table-cell)$/;
37 my $text = escape($order->record_number);
38 if (! delete $params{no_link}) {
39 my $href = 'controller.pl?action=Order/edit'
41 . '&id=' . escape($order->id);
42 $text = link_tag($href, $text, %params);
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
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');
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');
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');
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');
83 my $html = SL::Presenter::Order::order($object);
84 my $html = $object->presenter->show();
90 =item C<show $object %params>
92 Alias for C<order $object %params>.
94 =item C<sales_quotation $object %params>
96 Alias for C<order $object %params>.
98 =item C<sales_order_intake $object %params>
100 Alias for C<order $object %params>.
102 =item C<sales_order $object %params>
104 Alias for C<order $object %params>.
106 =item C<request_quotation $object %params>
108 Alias for C<order $object %params>.
110 =item C<purchase_quotation_intake $object %params>
112 Alias for C<order $object %params>.
114 =item C<purchase_order $object %params>
116 Alias for C<order $object %params>.
118 =item C<order $object %params>
120 Returns a rendered version (actually an instance of
121 L<SL::Presenter::EscapedText>) of the purchase order object
124 Remaining C<%params> are passed to the function
125 C<SL::Presenter::Tag::link_tag>. It can include:
131 Either C<inline> (the default) or C<table-cell>. Is passed to the function
132 C<SL::Presenter::Tag::link_tag>.
136 If falsish (the default) then the order number will be linked
137 to the "edit order" dialog.
149 Moritz Bunkus E<lt>m.bunkus@linet-services.deE<gt>