Abweichungen zw Auftragspositionen und Anzahlungs sowie Schlussrechnungen » Historie » Version 8
[S] Jens A, 24.02.2021 15:25
1 | 4 | [X] Jens M | h2. Abweichungen zw. Auftragspositionen und Anzahlungs- sowie Schlussrechnungen |
---|---|---|---|
2 | 1 | [S] Jens A | |
3 | 5 | [X] Jens M | Treten schwer erklärbare Abweichungen zwischen den Nettobeträgen von Anzahlungs- und Schlussrechnungen auf, so kann eine veränderte Zuordnung der Auftragspositionen in Anzahlungs- oder Schlussrechnungen dafür verantwortlich sein. Dies kann dazu führen, dass die Menge von Position A mit dem Einzelpreis von Position B zur Berechnung eines Rechnungsendbetrages herangezogen wird. Folgendes Statement würde diese Abweichungen anzeigen (Rechnungsnummern entsprechend anpassen): |
4 | 1 | [S] Jens A | |
5 | 6 | [S] Dominik G | Hilfe dazu: https://redmine.prodat-sql.de/projects/prodat-v12-public/wiki/Abweichungen_zwischen_Schluss-_und_Anzahlungsrechnungen |
6 | |||
7 | 1 | [S] Jens A | <pre><code class="sql"> |
8 | 7 | [S] Jens A | SELECT |
9 | r.bz_be_bnr AS rbe_bnr, |
||
10 | r.bz_pos AS rbz_pos, |
||
11 | r.bz_auftg AS rbz_auftg, |
||
12 | r.bz_auftgpos AS rbz_auftgpos, |
||
13 | r.bz_fakt_uf1 AS rbz_fakt_uf1, |
||
14 | r.bz_tot AS rbz_netto, |
||
15 | trechnungen.* |
||
16 | FROM belzeil_grund AS r |
||
17 | LEFT JOIN LATERAL |
||
18 | (SELECT string_agg(t.bz_be_bnr || '~' || t.bz_pos, ';')::varchar AS trechnungen_nummer, |
||
19 | sum(bz_fakt_uf1) AS trechnungen_menge, |
||
20 | sum(bz_tot) AS trechnungen_wert |
||
21 | FROM belzeil_grund t JOIN belkopf ON t.bz_be_bnr = be_bnr |
||
22 | WHERE belzeil_add_auftg_pos(t.bz_auftg,t.bz_auftgpos) = belzeil_add_auftg_pos(r.bz_auftg,r.bz_auftgpos) |
||
23 | AND be_prof = 'T' |
||
24 | ) AS trechnungen ON true |
||
25 | WHERE |
||
26 | bz_be_bnr = :nr |
||
27 | </code></pre> |
||
28 | |||
29 | oder |
||
30 | |||
31 | <pre><code class="sql"> |
||
32 | 1 | [S] Jens A | SELECT |
33 | bz_be_bnr, |
||
34 | bz_auftg, |
||
35 | bz_pos, |
||
36 | bz_add_auftg_pos, |
||
37 | bz_fakt, |
||
38 | ag_pos, |
||
39 | ag_stk_uf1, |
||
40 | belzeil_add_auftg_pos(bz_auftg, bz_pos), |
||
41 | belzeil_add_auftg_pos(bz_auftg, bz_pos) <> bz_add_auftg_pos AS FehlerZuordung, |
||
42 | --belzeil_add_auftg_pos(bz_auftg, bz_pos) <> bz_add_auftg_pos AS FehlerZuordnung_cimRed, |
||
43 | bz_fakt <> ag_stk_uf1 AS FehlerMenge, |
||
44 | --bz_fakt <> ag_stk_uf1 AS FehlerMenge_cimRed |
||
45 | (belzeil_add_auftg_pos(bz_auftg, bz_pos) <> bz_add_auftg_pos) OR (bz_fakt <> ag_stk_uf1) AS cimRed |
||
46 | FROM |
||
47 | belzeil_grund |
||
48 | LEFT JOIN auftg ON bz_auftg = ag_nr AND ag_pos = bz_pos |
||
49 | WHERE |
||
50 | -- bz_be_bnr = any(array['AR20-30902', 'RG20-33439']) |
||
51 | bz_be_bnr = any(array['RG20-33439']) |
||
52 | </code></pre> |
||
53 | |||
54 | 7 | [S] Jens A | Eine Lösung besteht darin, die Zuordnungen manuell anzugleichen, ggf. unter Vergabe von Auftragsstrukturpositionen, um den Zustand vor der Änderung zu simulieren. Das sollte vorzugsweise der Kunde selbst tun. Aufgetreten in #15868 und #16207: |
55 | |||
56 | !clipboard-202102241455-vtt1w.png! |
||
57 | !clipboard-202102241456-ugfkk.png! |
||
58 | |||
59 | Alternativ kann die bestehende Anzahlungsrechnung storniert und neu erstellt werden. |
||
60 | |||
61 | Zur Vorbeugung derartiger Fälle bieten sich folgende Maßnahmen an: |
||
62 | |||
63 | 8 | [S] Jens A | # Auftragspositionen prinzipiell in Zehnerschritten vergeben, das lässt Platz für nachträglich eingefügte auftragspositionen, welche die bestehenden nicht zu verschieben brauchen. |
64 | !clipboard-202102241525-asz98.png! |
||
65 | 7 | [S] Jens A | # Man kann vorausschauend bei der Auftragsanlagen Dummypositionen an den Stellen anlegen, von denen man weiß, dasd diese später noch gefüllt werden. |