Revision 00662498
Von Werner Hahn vor fast 8 Jahren hinzugefügt
SL/Controller/RecordLinks.pm | ||
---|---|---|
|
||
my @link_type_specifics = (
|
||
{ title => t8('Requirement spec'), type => 'requirement_spec', model => 'RequirementSpec', number => 'id', project => 'project', description => 'title', date => undef, filter => 'working_copy_filter', },
|
||
{ title => t8('Shop Order'), type => 'shop_order', model => 'ShopOrder', number => 'shop_ordernumber', },
|
||
{ title => t8('Shop Order'), type => 'shop_order', model => 'ShopOrder', number => 'shop_ordernumber', date => 'order_date', project => undef, },
|
||
{ title => t8('Sales quotation'), type => 'sales_quotation', model => 'Order', number => 'quonumber', },
|
||
{ title => t8('Sales Order'), type => 'sales_order', model => 'Order', number => 'ordnumber', },
|
||
{ title => t8('Sales delivery order'), type => 'sales_delivery_order', model => 'DeliveryOrder', number => 'donumber', },
|
||
... | ... | |
eval {
|
||
my $linked_records = $self->object->linked_records(direction => 'both', recursive => 1, save_path => 1);
|
||
push @{ $linked_records }, $self->object->sepa_export_items if $self->object->can('sepa_export_items');
|
||
$main::lxdebug->dump(0, 'WH: RECORDS:', \$linked_records);
|
||
|
||
my $output = SL::Presenter->get->grouped_record_list(
|
||
$linked_records,
|
SL/DB/Helper/LinkedRecords.pm | ||
---|---|---|
'SL::DB::PurchaseInvoice' => sub { $_[0]->invnumber },
|
||
'SL::DB::RequirementSpec' => sub { $_[0]->id },
|
||
'SL::DB::Letter' => sub { $_[0]->letternumber },
|
||
'SL::DB::ShopOrder' => sub { $_[0]->shop_ordernumber },
|
||
UNKNOWN => '9999999999999999',
|
||
);
|
||
my $number_xtor = sub {
|
||
... | ... | |
'SL::DB::PurchaseInvoice' => 150,
|
||
'SL::DB::PurchaseInvoice' => 150,
|
||
'SL::DB::Letter' => 200,
|
||
'SL::DB::ShopOrder' => 250,
|
||
UNKNOWN => 999,
|
||
);
|
||
my $score_xtor = sub {
|
SL/DB/ShopOrder.pm | ||
---|---|---|
return $order;
|
||
};
|
||
|
||
sub compare_to {
|
||
my ($self, $other) = @_;
|
||
|
||
return 1 if $self->transfer_date && !$other->transfer_date;
|
||
return -1 if !$self->transfer_date && $other->transfer_date;
|
||
|
||
my $result = 0;
|
||
$result = $self->transfer_date <=> $other->transfer_date if $self->transfer_date;
|
||
return $result || ($self->id <=> $other->id);
|
||
}
|
||
|
||
1;
|
SL/Presenter/Record.pm | ||
---|---|---|
my $output = '';
|
||
|
||
$output .= _requirement_spec_list( $self, $groups{requirement_specs}, %params) if $groups{requirement_specs};
|
||
$output .= _shop_order_list( $self, $groups{shop_orders}, %params) if $groups{shop_orders};
|
||
$output .= _shop_order_list( $self, $groups{shop_orders}, %params) if $groups{shop_orders};
|
||
$output .= _sales_quotation_list( $self, $groups{sales_quotations}, %params) if $groups{sales_quotations};
|
||
$output .= _sales_order_list( $self, $groups{sales_orders}, %params) if $groups{sales_orders};
|
||
$output .= _sales_delivery_order_list( $self, $groups{sales_delivery_orders}, %params) if $groups{sales_delivery_orders};
|
||
... | ... | |
|
||
sub _group_records {
|
||
my ($list) = @_;
|
||
$main::lxdebug->dump(0, 'WH: GROUP_RECORDS: ',\@_);
|
||
my %matchers = (
|
||
requirement_specs => sub { (ref($_[0]) eq 'SL::DB::RequirementSpec') },
|
||
shop_orders => sub { (ref($_[0]) eq 'SL::DB::ShopOrder') },
|
||
shop_orders => sub { (ref($_[0]) eq 'SL::DB::ShopOrder') && $_[0]->id },
|
||
sales_quotations => sub { (ref($_[0]) eq 'SL::DB::Order') && $_[0]->is_type('sales_quotation') },
|
||
sales_orders => sub { (ref($_[0]) eq 'SL::DB::Order') && $_[0]->is_type('sales_order') },
|
||
sales_delivery_orders => sub { (ref($_[0]) eq 'SL::DB::DeliveryOrder') && $_[0]->is_sales },
|
||
... | ... | |
|
||
sub _shop_order_list {
|
||
my ($self, $list, %params) = @_;
|
||
$main::lxdebug->dump(0, 'WH: ORDER_LIST: ',\@_);
|
||
|
||
return $self->record_list(
|
||
$list,
|
||
title => $::locale->text('Shop Orders'),
|
||
type => 'shop_order',
|
||
columns => [
|
||
[ $::locale->text('Shop Order Date'), 'order_date' ],
|
||
[ $::locale->text('Shop Order Number'), sub { $self->shop_order($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Transfer Date'), 'transfer_date' ],
|
||
# [ $::locale->text('Customer'), 'customer' ],
|
||
[ $::locale->text('Net amount'), 'netamount' ],
|
||
#[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
#[ $::locale->text('Project'), 'globalproject', ],
|
||
#[ $::locale->text('Closed'), 'closed' ],
|
||
[ $::locale->text('Shop Order Date'), sub { $_[0]->order_date->to_kivitendo } ],
|
||
[ $::locale->text('Shop Order Number'), sub { $self->shop_order($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Transfer Date'), 'transfer_date' ],
|
||
[ $::locale->text('Amount'), 'amount' ],
|
||
],
|
||
%params,
|
||
);
|
||
... | ... | |
title => $::locale->text('Sales Quotations'),
|
||
type => 'sales_quotation',
|
||
columns => [
|
||
[ $::locale->text('Quotation Date'), 'transdate' ],
|
||
[ $::locale->text('Quotation Number'), sub { $self->sales_quotation($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Customer'), 'customer' ],
|
||
[ $::locale->text('Net amount'), 'netamount' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
[ $::locale->text('Quotation Date'), 'transdate' ],
|
||
[ $::locale->text('Quotation Number'), sub { $self->sales_quotation($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Customer'), 'customer' ],
|
||
[ $::locale->text('Amount'), 'amount' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
],
|
||
%params,
|
||
);
|
||
... | ... | |
title => $::locale->text('Request Quotations'),
|
||
type => 'request_quotation',
|
||
columns => [
|
||
[ $::locale->text('Quotation Date'), 'transdate' ],
|
||
[ $::locale->text('Quotation Number'), sub { $self->request_quotation($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Vendor'), 'vendor' ],
|
||
[ $::locale->text('Net amount'), 'netamount' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
[ $::locale->text('Quotation Date'), 'transdate' ],
|
||
[ $::locale->text('Quotation Number'), sub { $self->request_quotation($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Vendor'), 'vendor' ],
|
||
[ $::locale->text('Net amount'), 'netamount' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
],
|
||
%params,
|
||
);
|
||
... | ... | |
title => $::locale->text('Sales Orders'),
|
||
type => 'sales_order',
|
||
columns => [
|
||
[ $::locale->text('Order Date'), 'transdate' ],
|
||
[ $::locale->text('Order Number'), sub { $self->sales_order($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Quotation'), 'quonumber' ],
|
||
[ $::locale->text('Customer'), 'customer' ],
|
||
[ $::locale->text('Net amount'), 'netamount' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
[ $::locale->text('Order Date'), 'transdate' ],
|
||
[ $::locale->text('Order Number'), sub { $self->sales_order($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Quotation'), 'quonumber' ],
|
||
[ $::locale->text('Customer'), 'customer' ],
|
||
[ $::locale->text('Amount'), 'amount' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
],
|
||
%params,
|
||
);
|
||
... | ... | |
title => $::locale->text('Purchase Orders'),
|
||
type => 'purchase_order',
|
||
columns => [
|
||
[ $::locale->text('Order Date'), 'transdate' ],
|
||
[ $::locale->text('Order Date'), 'transdate' ],
|
||
[ $::locale->text('Order Number'), sub { $self->purchase_order($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Request for Quotation'), 'quonumber' ],
|
||
[ $::locale->text('Vendor'), 'vendor' ],
|
||
[ $::locale->text('Net amount'), 'netamount' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
[ $::locale->text('Request for Quotation'), 'quonumber' ],
|
||
[ $::locale->text('Vendor'), 'vendor' ],
|
||
[ $::locale->text('Net amount'), 'netamount' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
],
|
||
%params,
|
||
);
|
||
... | ... | |
title => $::locale->text('Sales Delivery Orders'),
|
||
type => 'sales_delivery_order',
|
||
columns => [
|
||
[ $::locale->text('Delivery Order Date'), 'transdate' ],
|
||
[ $::locale->text('Delivery Order Date'), 'transdate' ],
|
||
[ $::locale->text('Delivery Order Number'), sub { $self->sales_delivery_order($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Order Number'), 'ordnumber' ],
|
||
[ $::locale->text('Customer'), 'customer' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Delivered'), 'delivered' ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
[ $::locale->text('Order Number'), 'ordnumber' ],
|
||
[ $::locale->text('Customer'), 'customer' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Delivered'), 'delivered' ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
],
|
||
%params,
|
||
);
|
||
... | ... | |
title => $::locale->text('Purchase Delivery Orders'),
|
||
type => 'purchase_delivery_order',
|
||
columns => [
|
||
[ $::locale->text('Delivery Order Date'), 'transdate' ],
|
||
[ $::locale->text('Delivery Order Date'), 'transdate' ],
|
||
[ $::locale->text('Delivery Order Number'), sub { $self->purchase_delivery_order($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Order Number'), 'ordnumber' ],
|
||
[ $::locale->text('Vendor'), 'vendor' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Delivered'), 'delivered' ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
[ $::locale->text('Order Number'), 'ordnumber' ],
|
||
[ $::locale->text('Vendor'), 'vendor' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Project'), 'globalproject', ],
|
||
[ $::locale->text('Delivered'), 'delivered' ],
|
||
[ $::locale->text('Closed'), 'closed' ],
|
||
],
|
||
%params,
|
||
);
|
||
... | ... | |
title => $::locale->text('Sales Invoices'),
|
||
type => 'sales_invoice',
|
||
columns => [
|
||
[ $::locale->text('Invoice Date'), 'transdate' ],
|
||
[ $::locale->text('Type'), sub { $_[0]->displayable_type } ],
|
||
[ $::locale->text('Invoice Date'), 'transdate' ],
|
||
[ $::locale->text('Type'), sub { $_[0]->displayable_type } ],
|
||
[ $::locale->text('Invoice Number'), sub { $self->sales_invoice($_[0], display => 'table-cell') } ],
|
||
[ $::locale->text('Quotation Number'), 'quonumber' ],
|
||
[ $::locale->text('Order Number'), 'ordnumber' ],
|
||
[ $::locale->text('Customer'), 'customer' ],
|
||
[ $::locale->text('Net amount'), 'netamount' ],
|
||
[ $::locale->text('Paid'), 'paid' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
[ $::locale->text('Quotation Number'), 'quonumber' ],
|
||
[ $::locale->text('Order Number'), 'ordnumber' ],
|
||
[ $::locale->text('Customer'), 'customer' ],
|
||
[ $::locale->text('Amount'), 'amount' ],
|
||
[ $::locale->text('Paid'), 'paid' ],
|
||
[ $::locale->text('Transaction description'), 'transaction_description' ],
|
||
],
|
||
%params,
|
||
);
|
SL/Presenter/ShopOrder.pm | ||
---|---|---|
|
||
my $text = join '', (
|
||
$params{no_link} ? '' : '<a href="controller.pl?action=ShopOrder/show&id='.$self->escape($shop_order->id).'">',
|
||
$self->escape($shop_order->id),
|
||
$self->escape($shop_order->shop_ordernumber),
|
||
$params{no_link} ? '' : '</a>',
|
||
);
|
||
return $self->escaped_text($text);
|
Auch abrufbar als: Unified diff
Shopmodul: RecordLinks - Vernüpfte Belege gefixt(bei 2 Shoporder),Linktext anstatt id shop_ordernumber