Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c1ec3f4f

Von Kivitendo Admin vor fast 9 Jahren hinzugefügt

  • ID c1ec3f4f93af94698c2d017329ed8286a7c3cc0b
  • Vorgänger a7114646
  • Nachfolger cc369842

Belegpositionen nicht mehr mit ordnumber, transdate, cusordnumber speichern

stattdessen für das Drucktemplate der Rechnung ordnumber_oe, transdate_oe und
cusordnumber_oe aus Recordlinks auslesen, und auch entsprechende
Druckvariablen für Angebot und Lieferschein bereitstellen.

Diese Informationen sollen in Zukunft nur noch aus record_links bestimmt
werden, aus Kompatibilitätsgründen werden die alten Werte aber vorerst
noch in der DB belassen, aber eben nicht mehr bei neuen Aufträgen oder
Lieferscheinen gespeichert. Dadurch werden sie auch nicht mehr im Rahmen
des Workflows weitergereicht.

Ursprünglich wurden diese Datenbankfelder wahrscheinlich für
Sammelaufträge konzipiert, d.h. sie sollten nur befüllt werden, wenn man
einen neuen Auftrag aus mehreren bestehenden Aufträgen erstellt hat.
Das passt insofern, als daß diese Felder beim initialen Speichern eines
Auftrags nicht gefüllt wurden. Allerdings wurden die Felder schon
gefüllt, wenn man einen Auftrag zum zweiten Mal gespeichert hat, es war
also nicht allein auf das Zusammenfügen von Aufträgen beschränkt.
Außerdem wurden diese Felder im Rahmen des Workflows von Auftrag zu
Lieferschein oder Auftrag zu Rechnung dann in delivery_order_items oder
invoice gefüllt.

Bei "als neu speichern" eine Auftrags wurde auch noch die alte
Auftragsnummer in die neue Position übernommen.

Weiterhin wurde nicht berücksichtigt, daß man mittlerweile auch aus
mehreren Lieferscheinen eine Rechnung erstellen kann, die auch
unterschiedliche Aufträge haben können.

Für das Rückverfolgen der ursprünglichen Belege ist generell nun
record_links eine gute Möglichkeit, die Rückverfolgung von Positionen zu
ermöglichen. Das Verhalten, daß die Variablen nur dann gefüllt sind,
wenn sie aus Sammelaufträgen stammen, ist nun nicht mehr vorgesehen (und
hat vorher auch nicht richtig funktioniert).

In der Druckvorlage gibt es für Rechnungspositionen nun auch neue
Druckvariablen, nämlich die Angebotsnummer, Angebotsdatum,
Lieferscheinnummer und Lieferscheindatum für die Belege, aus denen die
Positionen im Rahmen des Workflows ursprünglich stammten. Siehe Doku.

Unterschiede anzeigen:

SL/DO.pm
293 293
    UPDATE delivery_order_items SET
294 294
       delivery_order_id = ?, position = ?, parts_id = ?, description = ?, longdescription = ?, qty = ?, base_qty = ?,
295 295
       sellprice = ?, discount = ?, unit = ?, reqdate = ?, project_id = ?, serialnumber = ?,
296
       ordnumber = ?, transdate = ?, cusordnumber = ?,
297 296
       lastcost = ? , price_factor_id = ?, price_factor = (SELECT factor FROM price_factors where id = ?),
298 297
       marge_price_factor = ?, pricegroup_id = ?, active_price_source = ?, active_discount_source = ?
299 298
    WHERE id = ?
......
368 367
               $form->{"sellprice_$i"}, $form->{"discount_$i"} / 100,
369 368
               $form->{"unit_$i"}, conv_date($items_reqdate), conv_i($form->{"project_id_$i"}),
370 369
               $form->{"serialnumber_$i"},
371
               $form->{"ordnumber_$i"}, conv_date($form->{"transdate_$i"}),
372
               $form->{"cusordnumber_$i"},
373 370
               $form->{"lastcost_$i"},
374 371
               conv_i($form->{"price_factor_id_$i"}), conv_i($form->{"price_factor_id_$i"}),
375 372
               conv_i($form->{"marge_price_factor_$i"}),

Auch abrufbar als: Unified diff