Funktion "Erzeugnis fertigen" sucht Bestandteile im falschen Lager.(2)
authorMartin Helmling martin.helmling@octosoft.eu <martin.helmling@octosoft.eu>
Mon, 18 Jul 2016 06:24:54 +0000 (08:24 +0200)
committerMartin Helmling martin.helmling@octosoft.eu <martin.helmling@octosoft.eu>
Mon, 18 Jul 2016 06:30:31 +0000 (08:30 +0200)
Auf Wunsch von Jan ist dies kein Bug mehr, sondern ist nun per Mandantenkonfig konfigurierbar

Als default wird das Ziellager genommen, falls "transfer_default_warehouse_for_assembly" gesetzt,
wird das Standardlager des Bestandteils verwendet.

Anmerkung:
Wo wir derzeit in der unstable wh.pl:create_assembly() verwendet/aufgerufen ?
Kann ich nicht finden.

SL/DB/MetaSetup/Default.pm
SL/WH.pm
locale/de/all
sql/Pg-upgrade2/add_warehouse_for_assembly.sql [new file with mode: 0644]
templates/webpages/client_config/_warehouse.html

index bd02674..50764a4 100644 (file)
@@ -116,6 +116,7 @@ __PACKAGE__->meta->columns(
   transfer_default_ignore_onhand            => { type => 'boolean', default => 'false' },
   transfer_default_services                 => { type => 'boolean', default => 'true' },
   transfer_default_use_master_default_bin   => { type => 'boolean', default => 'false' },
+  transfer_default_warehouse_for_assembly   => { type => 'boolean', default => 'false' },
   transport_cost_reminder_article_number_id => { type => 'integer' },
   vendornumber                              => { type => 'text' },
   version                                   => { type => 'varchar', length => 8 },
index a25aa31..495c43b 100644 (file)
--- a/SL/WH.pm
+++ b/SL/WH.pm
@@ -182,6 +182,10 @@ sub transfer_assembly {
   # on assembly.parts_id = parts.id  where assembly.id = ? and
   # (inventory_accno_id IS NOT NULL or parts.assembly = TRUE)|;
 
+  # Lager in dem die Bestandteile gesucht werden kann entweder das Ziellager sein oder ist per Mandantenkonfig
+  # auf das Standardlager des Bestandteiles schaltbar
+
+  my $use_default_warehouse = $::instance_conf->get_transfer_default_warehouse_for_assembly;
 
   my $query = qq|select assembly.parts_id, assembly.qty, parts.warehouse_id from assembly inner join parts on assembly.parts_id = parts.id
                   where assembly.id = ? and (inventory_accno_id IS NOT NULL or parts.assembly = TRUE)|;
@@ -204,7 +208,7 @@ sub transfer_assembly {
     $schleife_durchlaufen=1;  # Erzeugnis definiert
     my $partsQTY = $hash_ref->{qty} * $params{qty}; # benötigte teile * anzahl erzeugnisse
     my $currentPart_ID = $hash_ref->{parts_id};
-    my $currentPart_WH_ID = $hash_ref->{warehouse_id};
+    my $currentPart_WH_ID = $use_default_warehouse ? $hash_ref->{warehouse_id} : $params{dst_warehouse_id};
     my $warehouse_info = $self->get_basic_warehouse_info('id' => $currentPart_WH_ID);
     my $warehouse_desc = $warehouse_info->{"warehouse_description"};
 
index e518d95..eff3f24 100755 (executable)
@@ -567,6 +567,7 @@ $self->{texts} = {
   'Clients this user has access to' => 'Mandanten, auf die Benutzer Zugriff hat',
   'Close'                       => 'Übernehmen',
   'Close Books up to'           => 'Die Bücher abschließen bis zum',
+  'Close Details'               => '',
   'Close Flash'                 => 'Schließen',
   'Close SEPA exports'          => 'SEPA-Export abschließen',
   'Close Window'                => 'Fenster Schließen',
@@ -1792,7 +1793,6 @@ $self->{texts} = {
   'No file has been uploaded yet.' => 'Es wurde noch keine Datei hochgeladen.',
   'No function blocks have been created yet.' => 'Es wurden noch keine Funktionsblöcke angelegt.',
   'No groups have been created yet.' => 'Es wurden noch keine Gruppen angelegt.',
-  'No header found'             => 'Keine Kopfzeile gefunden',
   'No internal phone extensions have been configured yet.' => 'Es wurden noch keine internen Durchwahlen konfiguriert.',
   'No invoices have been selected.' => 'Es wurden keine Rechnungen ausgewählt.',
   'No or an unknown authenticantion module specified in "config/kivitendo.conf".' => 'Es wurde kein oder ein unbekanntes Authentifizierungsmodul in "config/kivitendo.conf" angegeben.',
@@ -3169,6 +3169,7 @@ $self->{texts} = {
   'Transfer from warehouse'     => 'Quelllager',
   'Transfer in'                 => 'Einlagern',
   'Transfer in via default'     => 'Einlagern über Standard-Lagerplatz',
+  'Transfer of assemblies use the default warehous not the destination warehouse.' => 'Zum Fertigen wird das Standardlager des Bestandteils verwendet nicht das Ziellager',
   'Transfer out'                => 'Auslagern',
   'Transfer out all items of a sales invoice when posting it. Items are transfered out acording to the settings above.' => 'Alle Artikel automatisch auslagern, wenn eine Verkaufsrechnung gebucht wird. Die Lagerbewegungen erfolgt entsprechend der Einstellungen oben.',
   'Transfer out on posting sales invoices?' => 'Auslagern beim Buchen einer Verkaufsrechnung.',
@@ -3243,10 +3244,11 @@ $self->{texts} = {
   'Use As New'                  => 'Als neu verwenden',
   'Use Balance Sheet'           => 'Bilanz verwenden',
   'Use Datevautomatik'          => 'Datev-Automatik verwenden',
-  'Use Income'                  => 'GUV und BWA verwenden',
   'Use Erfolgsrechnung'         => 'Erfolgsrechnung verwenden',
+  'Use Income'                  => 'GUV und BWA verwenden',
   'Use UStVA'                   => 'UStVA verwenden',
   'Use WebDAV Repository'       => 'WebDAV-Ablage verwenden',
+  'Use default warehouse for assembly transfer' => 'Zum Fertigen Standardlager des Bestandteils verwenden',
   'Use existing templates'      => 'Vorhandene Druckvorlagen verwenden',
   'Use linked items'            => 'Verknüpfte Positionen verwenden',
   'Use master default bin for Default Transfer, if no default bin for the part is configured' => 'Standardlagerplatz für Ein- / Auslagern über Standard-Lagerplatz, falls für die Ware kein expliziter Lagerplatz konfiguriert ist',
diff --git a/sql/Pg-upgrade2/add_warehouse_for_assembly.sql b/sql/Pg-upgrade2/add_warehouse_for_assembly.sql
new file mode 100644 (file)
index 0000000..c7f701b
--- /dev/null
@@ -0,0 +1,4 @@
+-- @tag: add_warehouse_for_assembly
+-- @description: Konfigurations-Option für das Fertigen von Erzeugnissen aus dem Standardlager
+-- @depends: release_3_4_1 add_warehouse_defaults add_warehouse_client_config_default
+ALTER TABLE defaults add column transfer_default_warehouse_for_assembly boolean default false;
index 30e8a00..106d5a7 100644 (file)
    [% LxERP.t8('Transfer out all items of a sales invoice when posting it. Items are transfered out acording to the settings above.') %]
    </td>
   </tr>
+  <tr>
+   <td align="right">[% LxERP.t8('Use default warehouse for assembly transfer') %]</td>
+   <td>
+    [% L.yes_no_tag('defaults.transfer_default_warehouse_for_assembly', SELF.defaults.transfer_default_warehouse_for_assembly) %]
+   </td>
+   <td>
+    [% LxERP.t8('Transfer of assemblies use the default warehous not the destination warehouse.') %]<br>
+   </td>
+  </tr>
   <tr><td colspan="3"><hr /></td></tr>
   <tr>
   <tr>