Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 36d7ceb2

Von Tamino Steinert vor mehr als 1 Jahr hinzugefügt

  • ID 36d7ceb2d203115fe890f1a47e252e20c5e5a1d2
  • Vorgänger f596739c
  • Nachfolger e2e5606d

S:Presenter:Record: Alias Funktion "show" in verwendeten Objekten

Verknüpfte Belege nutzt folgende Objekte:
DeliveryOrder, Dunning, EmailJournal, GL, Invoice, Letter, Order,
Reclamation, RequirementSpec, ShopOrder

Unterschiede anzeigen:

SL/Presenter/DeliveryOrder.pm
use SL::Presenter::Tag qw(link_tag);
use Exporter qw(import);
our @EXPORT_OK = qw(sales_delivery_order purchase_delivery_order delivery_order_status_line);
our @EXPORT_OK = qw(
show delivery_order delivery_order_status_line
sales_delivery_order purchase_delivery_order
rma_delivery_order supplier_delivery_order
);
use Carp;
sub sales_delivery_order {
my ($delivery_order, %params) = @_;
sub show {goto &delivery_order};
return _do_record($delivery_order, 'sales_delivery_order', %params);
}
sub sales_delivery_order {goto &delivery_order}
sub rma_delivery_order {
my ($delivery_order, %params) = @_;
return _do_new_record($delivery_order, 'rma_delivery_order', %params);
}
sub rma_delivery_order {goto &delivery_order};
sub purchase_delivery_order {
my ($delivery_order, %params) = @_;
sub purchase_delivery_order {goto &delivery_order};
return _do_record($delivery_order, 'purchase_delivery_order', %params);
}
sub supplier_delivery_order {goto &delivery_order};
sub supplier_delivery_order {
sub delivery_order {
my ($delivery_order, %params) = @_;
return _do_new_record($delivery_order, 'supplier_delivery_order', %params);
}
sub _do_new_record {
my ($delivery_order, $type, %params) = @_;
$params{display} ||= 'inline';
croak "Unknown display type '$params{display}'" unless $params{display} =~ m/^(?:inline|table-cell)$/;
my $text = join '', (
$params{no_link} ? '' : '<a href="controller.pl?action=DeliveryOrder/edit&amp;type=' . $type . '&amp;id=' . escape($delivery_order->id) . '">',
escape($delivery_order->donumber),
$params{no_link} ? '' : '</a>',
);
is_escaped($text);
}
sub _do_record {
my ($delivery_order, $type, %params) = @_;
$params{display} ||= 'inline';
croak "Unknown display type '$params{display}'" unless $params{display} =~ m/^(?:inline|table-cell)$/;
......
my $object = SL::DB::Manager::DeliveryOrder->get_first(where => [ record_type => PURCHASE_DELIVERY_ORDER_TYPE ]);
my $html = SL::Presenter::DeliveryOrder::purchase_delivery_order($object, display => 'inline');
#...
# or for all types:
my $html = SL::Presenter::DeliveryOrder::delivery_order($object);
my $html = $object->presenter->show();
=head1 FUNCTIONS
=over 4
=item C<sales_delivery_order $object, %params>
=item C<show $object %params>
Returns a rendered version (actually an instance of
L<SL::Presenter::EscapedText>) of the sales delivery order object
C<$object>.
Alias for C<delivery_order $object %params>.
Remaining C<%params> are passed to the function
C<SL::Presenter::Tag::link_tag>. It can include:
=item C<sales_delivery_order $object, %params>
=over 2
Alias for C<delivery_order $object %params>.
=item * display
=item C<purchase_delivery_order $object, %params>
Either C<inline> (the default) or C<table-cell>. Is passed to the function
C<SL::Presenter::Tag::link_tag>.
Alias for C<delivery_order $object %params>.
=item * no_link
=item C<rma_delivery_order $object, %params>
If falsish (the default) then the delivery order number will be linked
to the "edit delivery order" dialog from the sales menu.
Alias for C<delivery_order $object %params>.
=back
=item C<supplier_delivery_order $object, %params>
=item C<purchase_delivery_order $object, %params>
Alias for C<delivery_order $object %params>.
=item C<delivery_order $object, %params>
Returns a rendered version (actually an instance of
L<SL::Presenter::EscapedText>) of the purchase delivery order object
L<SL::Presenter::EscapedText>) of the sales delivery order object
C<$object>.
Remaining C<%params> are passed to the function
C<SL::Presenter::Tag::link_tag>. It can include:
L<SL::Presenter::Tag/link_tag>. It can include:
=over 2
......
=item * no_link
If falsish (the default) then the delivery order number will be linked
to the "edit delivery order" dialog from the purchase menu.
to the "edit delivery order" dialog from the sales menu.
=back

Auch abrufbar als: Unified diff