Revision f1dd4b47
Von Jan Büren vor mehr als 3 Jahren hinzugefügt
SL/Controller/RecordLinks.pm | ||
---|---|---|
my ($self) = @_;
|
||
|
||
eval {
|
||
my $linked_records = $self->object->linked_records(direction => 'both', recursive => 1, save_path => 1);
|
||
my $linked_records = ($::instance_conf->get_always_record_links_from_order && ref $self->object ne 'SL::DB::Order')
|
||
? $self->get_order_centric_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');
|
||
|
||
my $output = grouped_record_list(
|
||
... | ... | |
$::auth->assert('record_links');
|
||
}
|
||
|
||
# internal
|
||
|
||
sub get_order_centric_linked_records {
|
||
my ($self) = @_;
|
||
|
||
my $all_linked_records = $self->object->linked_records(direction => 'from', recursive => 1);
|
||
my $filtered_orders = [ grep { 'SL::DB::Order' eq ref $_ && $_->is_type('sales_order') } @$all_linked_records ];
|
||
my $id_ref = [ map { $_->id } @$filtered_orders ];
|
||
my $linked_records = SL::DB::Order->new->linked_records(direction => 'to', recursive => 1, batch => $id_ref);
|
||
push @{ $linked_records }, @$filtered_orders;
|
||
|
||
return $linked_records;
|
||
}
|
||
1;
|
SL/DB/MetaSetup/Default.pm | ||
---|---|---|
allow_new_purchase_invoice => { type => 'boolean', default => 'true', not_null => 1 },
|
||
allow_sales_invoice_from_sales_order => { type => 'boolean', default => 'true', not_null => 1 },
|
||
allow_sales_invoice_from_sales_quotation => { type => 'boolean', default => 'true', not_null => 1 },
|
||
always_record_links_from_order => { type => 'boolean', default => 'false' },
|
||
ap_add_doc => { type => 'boolean', default => 'false', not_null => 1 },
|
||
ap_changeable => { type => 'integer', default => 2, not_null => 1 },
|
||
ap_chart_id => { type => 'integer' },
|
doc/changelog | ||
---|---|---|
Mandantenkonfiguration eingestellt werden
|
||
- Optionale Warnung falls eine Verkaufsrechnung nicht aus einem Lieferschein
|
||
erzeugt wurde (Konfigurierbar in der Mandantenkonfiguration)
|
||
- Die Ansicht der verknüpften Belegen kann unabhängig vom aktuellen Beleg immer
|
||
vom Auftrag her aufgebaut werden
|
||
|
||
Bugfixes (Tracker: https://www.kivitendo.de/redmine):
|
||
|
locale/de/all | ||
---|---|---|
'If enabled a warning will be shown in sales delivery orders on workflow to invoices if positions are not stocked out.' => 'Falls aktiviert, wird eine Warnung beim Workflow von Verkaufslieferscheinen zu Rechnungen ausgegeben, wenn die Positionen noch nicht ausgelagert sind.',
|
||
'If enabled only those projects that are assigned to the currently selected customer are offered for selection in sales records.' => 'Wenn eingeschaltet, so werden in Verkaufsbelegen nur diejenigen Projekte zur Auswahl angeboten, die dem aktuell ausgewählten Kunden zugewiesen wurden.',
|
||
'If enabled purchase and sales records cannot be saved if no transaction description has been entered.' => 'Wenn angeschaltet, so können Einkaufs- und Verkaufsbelege nicht gespeichert werden, solange keine Vorgangsbezeichnung eingegeben wurde.',
|
||
'If enabled the record links view starts always from the sales order including all sublevels' => 'Falls aktiv, werden die verknüpften Belege immer vom Verkaufsauftrag inkl. aller darunterliegenden Belege angezeigt',
|
||
'If item not found, allow creation of new item' => 'Falls Artikel nicht gefunden, erlaube Erfassen eines Neuen',
|
||
'If left empty the default sender from the kivitendo configuration will be used (key \'email_from\' in section \'periodic_invoices\'; current value: #1).' => 'Falls leer, so wird der Standardabsender aus der kivitendo-Konfiguration genutzt (Schlüssel »email_from« in Abschnitt »periodic_invoices«; aktueller Wert: #1).',
|
||
'If missing then the start date will be used.' => 'Falls es fehlt, so wird die erste Rechnung für das Startdatum erzeugt.',
|
||
... | ... | |
'Versions' => 'Versionen',
|
||
'View SEPA export' => 'SEPA-Export-Details ansehen',
|
||
'View background job execution result' => 'Verlauf der Hintergrund-Job-Ausführungen anzeigen',
|
||
'View record links from Sales Order' => 'Verknüpfte Belege immer vom Verkaufsauftrag ansehen',
|
||
'View sent email' => 'Verschickte E-Mail anzeigen',
|
||
'View warehouse content' => 'Lagerbestand ansehen',
|
||
'View/edit all employees purchase documents' => 'Bearbeiten/ansehen der Einkaufsdokumente aller Mitarbeiter',
|
sql/Pg-upgrade2/defaults_view_record_links.sql | ||
---|---|---|
-- @tag: defaults_view_record_links
|
||
-- @description: Mandantenkonfiguration: Sichtweise für record links immer vom Auftrag
|
||
-- @depends: release_3_5_8
|
||
|
||
ALTER TABLE defaults ADD COLUMN always_record_links_from_order BOOLEAN DEFAULT FALSE;
|
templates/webpages/client_config/_record_links.html | ||
---|---|---|
[%- USE HTML -%][%- USE LxERP -%][%- USE L -%]
|
||
<div id="record_links">
|
||
<table>
|
||
<tr>
|
||
<td align="right" nowrap="true">[% LxERP.t8('View record links from Sales Order') %]</td>
|
||
<td>[% L.yes_no_tag('defaults.always_record_links_from_order', SELF.defaults.always_record_links_from_order) %]</td>
|
||
<td>
|
||
[% LxERP.t8('If enabled the record links view starts always from the sales order including all sublevels') %]<br>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
templates/webpages/client_config/form.html | ||
---|---|---|
<li><a href="#warehouse">[% LxERP.t8('Warehouse') %]</a></li>
|
||
<li><a href="#features">[% LxERP.t8('Features') %]</a></li>
|
||
<li><a href="#stocktaking">[% LxERP.t8('Stocktaking') %]</a></li>
|
||
<li><a href="#record_links">[% LxERP.t8('Linked Records') %]</a></li>
|
||
</ul>
|
||
|
||
[% PROCESS 'client_config/_ranges_of_numbers.html' %]
|
||
... | ... | |
[% PROCESS 'client_config/_warehouse.html' %]
|
||
[% PROCESS 'client_config/_features.html' %]
|
||
[% PROCESS 'client_config/_stocktaking.html' %]
|
||
[% PROCESS 'client_config/_record_links.html' %]
|
||
[% PROCESS 'client_config/_miscellaneous.html' %]
|
||
</div>
|
||
</form>
|
Auch abrufbar als: Unified diff
Optionale auftragszentrische Verknüpfte Belege
Konfigurierbar in der Mandantenkonfiguration. Unabhängig vom
aktuellen Belegort werden die verknüpften Belege immer vom VK-Auftrag
aufgebaut