Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 00662498

Von Werner Hahn vor fast 8 Jahren hinzugefügt

  • ID 00662498babe5cfa1bc24c246be228d71fe6d215
  • Vorgänger 5a19dcad
  • Nachfolger 5a973c14

Shopmodul: RecordLinks - Vernüpfte Belege gefixt(bei 2 Shoporder),Linktext anstatt id shop_ordernumber

Unterschiede anzeigen:

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&amp;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