Projekt

Allgemein

Profil

200 ZDok Zentraldokument+Belege » Historie » Version 16

[X] Marcus F, 18.03.2014 11:19

1 1 [X] Daniel S
h1. Zentraldokument (ZDOK)
2
3
h2. Feature-Überblick, implementierte Funktionen
4
5
# Nachkommastellen vorher ermittelt
6
# *Standardtexte* für Kopf, Fuß pro Dokument über Bemerkungsverwaltung möglich; *StandardTexte für Exportkennung*
7
* Auftrag : DOKVERK_TXT_KOPF_AN / DOKVERK_TXT_KOPF_AG ; DOKVERK_TXT_FUSS_AN / DOKVERK_TXT_FUSS_AG (AN=Angebot, AG=Auftrag
8
* Lieferschein : DOKLIEFSCH_TXT_KOPF; DOKLIEFSCH_TXT_FUSS
9
* Rechnung : DOKFAKT_TXT_KOPF; DOKFAKT_TXT_FUSS
10
* Anfrage (Einkauf) : DOKANFRAGE_TXT_KOPF; DOKANFRAGE_TXT_FUSS
11
* Bestellung : DOKEINK_TXT_KOPF_RBE / DOKEINK_TXT_KOPF_BE; DOKEINK_TXT_FUSS_RBE / DOKEINK_TXT_FUSS_BE
12
* ExportKennung: EXPORT-INT; EXPORT-EU, wird anhand des Status in den Debitorendaten ermittelt
13
14
# Momentan fixe Texte für Referenzen, müßten noch erweitert werden:
15
# Ermittlung, ob mehrere Auftragsnummern im Dokument, wenn nicht, wird Auftragsnummer=Dokumentnummer, ansonsten wird Dokumentnummer als Ident verwendet
16
17
# Referenzen; Felder im View: 
18
* Eigene Nummer (Auftragsnummer, Rechnungsnummer) *position_status*, *position_identnummer*, *position_identpos*
19
* Vorgegange IdentNummer *position_identnummer1*, *position_identpos1* (siehe folgende Bsp)
20
21
*Grundfunktionen auf DB-Ebene*
22
* Schema "treporting"
23
* Funktion zum Dropen aller Views, um z.B. Datentypen zu ändern: treporting.DropView()
24
* Funktion zum Erstellen aller Views: treporting.RecreateViews()
25
26
*Hintergrund*
27
28
* Hintergrund wird per Standard aus "Prodat\System\BB-DE.emf" geladen
29
* Über das Bankkontenverzeichnis kann pro Kunde/Lieferant/Rechnung eine Bank ausgewählt werden, welche wiederrum unterschiedliche Briefbogen haben kann
30
* Im Bankkontenverzeichnis (Faktura=>Stammdaten) kann eine Bankverbindung als "Standard" hinterlegt werden, welche wiederrum auch einen abweichenden Briefbogen benennen kann.
31
* In den Spracheinstellungen (Stammdaten=>Sprachen) kann pro Sprache ein unterschiedlicher Briefbogen hinterlegt werden. Somit würde der Hintergrund in Abhängigkeit der in den Adressdaten hinterlegten Sprache umschalten.
32
33
*Sonstiges*
34
35
*Vorgaben für das DruckVorlaufFormular: http://www.prodat-sql.de/redmine/issues/4669*
36
37
* Ansprechpartner werden über 'Automatische Anrede' aus den Stammdaten der Adresse gezogen, dabei muss der Kurzname vorhanden sein
38
  Ist korrekt Herr und Frau in der Anrede hinterlegt, kann das Dokument 'Sehr geehrter Herr', 'Sehr geehrte Frau' drucken, ansonsten 'Damen und Herren'
39
  Im Englischen gibt es Ms. als Anrede, wenn nicht klar ist ob verheiratet oder nicht (der Punkt wird eigentlich im britischen Englisch nicht gesetzt) 
40
41
h1. Aufbau der Views:
42
43
h3. An Kunde:
44
45
* Auftrag:
46
# *position_identnummer* = AuftragsNr (ag_nr)
47
# *position_identpos* = ag_pos
48
# *position_identnummer1* = Eigene AnfrageNr (ag_kanf_nr)
49
# *position_identpos1* = NULL
50
# *referenz* = ag_bda; *referenz_pos* = ag_bdapos; *referenz_vondatum* = ag_bdat
51
52
* Lieferschein:
53
# *position_identnummer* = Unser Auftrag (ag_nr)
54
# *identnummer1/pos1* = NULL  => könnte man interne AnfrageNr machen
55
# *referenz* = belp_referenz=ag_bda; *referenz_pos* = ag_bdapos
56
57
* Rechnung:
58
# *position_identnummer* = Lieferschein-Nr
59
# *position_identnummer1* = Auftrags-Nr (ag_nr)
60
# *referenz* = Referenz (ag_bda)
61
62
h3. An Lieferant
63
64
* Bestellung:
65
# *position_identnummer* = Bestellung normal: Bestellnummer; Auswärtsbearbeitung: Fertigungsauftragsnr (nicht die ld_auftg der Bestellung, sondern der des Auslösenden Produktionsauftrags)
66
# *position_identpos* = ld_pos, wie oben Unterscheidung normale Bestellung, Externbearbeitung
67
# *position_identnummer1, pos1* = NULL
68
69
h2. Aufbau Views:
70
71
# Immer gleicher Aufbau: Kopfview, Positionenview, AbzuschlägePosition, Abzuschläge Gesamt
72
# *dokument_id*      = DokumentId, Dokumentnummer, ACHTUNG: Dokumentnummer auf Ausdruck kann abweichen, wenn die Auftragsnummer als Dokumentnummer genommen wird! (mehrere Auftragsnummern auf einem Dokument)
73
# *dokument_join_id* = Join schlüssel für Views: Dokumentnummer bei Auftg/Ldsdok, Belegnummer bei Rechnung
74
* Beachte Belegviews: *beld_dokunr=dokument_id ABER beld_id=dokument_join_id*, siehe Aufbau Belegview, JoinSchlüssel=BelegId und nicht die Dokumentnummer!
75
76
# *dokument_nummer*  = Ausgewiesene Dokumentnummer auf Liste: Rechnungsnummer, bei Auftrag/Bestellung Bestellnummer, ausser es sind mehrere auf Dokument, dann Dokumentnummer
77
# *doktype_force*    = interne DokumentId für DMS, da nur ein Dokument muß anhand des Statement ermittelt werden, wie es archiviert wird!
78
79 16 [X] Marcus F
h2. Doktypes:
80
81
# Auftrag: auftg_dok
82
# Lieferschein: lfs
83
# Rechnung: rechnung
84
# Bestellanfrage: bestanf 
85
# Bestellung: ldsdok_bestdok
86
# Auswärtsbestellung: awd
87
# Terminmahnung: ldsdok_bestdok_mahn
88
89 1 [X] Daniel S
h2. Konfigurierbare Einstellungen:
90
91
* ReportSettings.Ini steuert Randeinstellungen des Dokuments und des Hintergrund EMFs im Ordner /System
92
* Für mehrere Mandanten können mehrere ReportSettings.INI angelegt werden, indem der DatenbankName verschlüsselt wird. zB ReportSettings.CIMPCS.Ini. Beim Programmstart wird immer zuerst geprüft, ob es eine ReportSettings.DatenbankName.Ini gibt.
93
* Parameter:
94
95
-- *Hintergrund EMF*
96
BB.LogoFileName (Default='BB-DE.emf')
97
BB.Top
98
BB.Left
99
BB.Width  //Skalierung, Original A4 ist 794 x 1123px 
100
BB.Height //Größe der EMF kann aber abweichen, dann Skalierung an EMF anpassen
101
102
-- *Seiteneinstellung*
103
Page.TopMargin
104
Page.LeftMargin
105
Page.RightMargin
106
Page.BottomMargin
107
108
-- *Kopfdaten*
109
Page.AdressLine //Eigene Anschrift über Adresse
110
Page.AdressRight //Adresse rechts (Schweiz)
111
Page.AnrGruss=True (default False) // default werden für Lieferschein und Rechnung Anrede und Grußzeile nicht gedruckt (auch wenn im Formular angehakt)
112
--
113
Adress.AllPages=True (default False) // Adresse und Belegdetails auf allen Seiten
114
Adress.Blankline=True (default False) // macht eine Leerzeile vor dem Ort
115
Adress.Fax (default True) // druckt Fax des Adressaten und Leerzeile nach Plz Ort (Bestellung)
116
Adress.'+<r_dokutype>+'.Fax (default False) //bei beliebigen Dokumenttyp die Faxnummer der Zieladresse ausgeben
117
KontaktKopf.Adresse.Top (default KontaktKopf.Top) // Verschiebt Kontaktdaten nach oben bzw. unten (AdressFeld)
118
KontaktKopf.Top (default 170) // Verschiebt Kontaktdaten nach oben bzw. unten (AnsprechpartnerFeld)
119
Header.ShowProv=True //Zeigt "Provisorisch" an, wenn belege nicht definitiv sind
120
Header.ShowKopie=True //Zeigt "Kopie" bei Kopiedruck an
121
Header.ShowDokuNr=False //Zeigt die Dokumentnummer bevorzugt an (Bestellung: normal wird die Bestellnummer angezeigt, hier kann gesagt werden, das doch die Dokumentnummer bevorzugt wird)
122
Header.ReferenzInKopf=True //Zieht die Referenzen (z. B. Bestell-Nr.) in den Kopf, wenn für alle Positionen gleich.
123
124
Header.BarcodeExprLifsch=<position."artikelnummer"> //Barcode für Lieferschein anzeigen und zuweisen (Wenn Option gesetzt, dann wird Barcode angezeigt) //für Verschlüsselungsfeld auch Konkatenation möglich
125
Header.BarcodeExprLifsch steuert ebenfalls Anzeige des Barcodes der Gelangensbestätigung 
126
default Header.BarcodeExprGbstg='-GBSTG-'+<WorkSql."dokument_nummer"> ist als Vorgabe bereits enthalten, kann aber überschrieben werden
127
128
Header.BarcodeExprAuftg=<position."artikelnummer"> //Barcode für Angebot/Auftrag anzeigen und zuweisen
129
Header.BarcodeExprLdsdok=<position."artikelnummer">  //Barcode für Bestellung/Auswärtsbearbeitung anzeigen und zuweisen
130
Header.BarcodeShowText=False //Text unter dem BarCode; zum Testen, ob der richtige Wert drin steht, sinnvoll
131
132
133
Kopf.AdressatDebinr=False //Anzeige der DebitorenNr, wenn vorhanden
134
Kopf.AdressatFax=False //Anzeige der FaxNr, wenn vorhanden
135
Kopf.AdressatUstID=True
136
Kopf.K_UstID=False //Anzeige der eigenen UstID
137 7 [X] Daniel S
138
-- *Preise*
139
140
auswdok_preise=True //Preise für Auswärtsbearbeitung anzeigen (ansonsten wie Lieferschein->ohne Preise)
141 10 [X] Marcus F
ShowNurTotalNetto=False (default true) // Zeige für Einkaufsdokumente (auch Auswärtsbestellung) nur Total Netto Summe an (keine MwSt und Brutto)
142
ShowNurTotalNetto.doktype=False (default true) // Zeige getrennt für Einkauf, Anfrage, Auswärts
143 1 [X] Daniel S
144
-- *Position*
145 8 [X] Marcus F
Position.ForceGroupHeaderRef=True // Zeigt für jede Position den Gruppenkopf, jedes Dokument
146
Position.'+<r_dokutype>+'.ForceGroupHeaderRef=True // Zeigt für jede Position den Gruppenkopf, je nach doktype
147 1 [X] Daniel S
Position.UseKundLiefArtNo=True //Bevorzugt wird die Kunden/Lieferantenartikelnummer (artzuo, ld_bem) als Artikelnummer angezeigt.
148
Position.'+<r_dokutype>+'.UseKundLiefArtNo=True //Einstellung von oben pro Dokument, damit anderes Verhalten von Einkauf&Verkauf möglich UseKundLiefArtNo:=GetReportSettings_B('Position.'+<r_dokutype>+'.UseKundLiefArtNo', GetReportSettings_B('Position.UseKundLiefArtNo', True));
149
Position.LabelReferenzArtNo="Referenz" //Anschrift vor dem Referenzartikel
150
Position.ReferenzPos=True      //Zeigt beide Positionsnummern an: die eigene, fortlaufend und die Bezugsposition.
151
Position.ReferenzPosFull       //Bestellnummer Kunde + Positionsnummer Kunde in Zeile! => ACHTUNG - blendet die eigene Auftragsnummer, sowie das Bestelldatum Kunde aus!!!!
152
Position.APext=True // Kurzname des externen Ansprechpartner zeigen
153
Position.Rahmenabrufe=True // Deaktivieren der Anzeige der Abrufe eines Rahmenauftrags
154 13 [X] Marcus F
Position.'+<r_dokutype>+'.UseZeichnungAsArtNo=False // ZeichnungsNr wird als ArtikelNr gedruckt, je nach doktype
155 1 [X] Daniel S
Position.UseZeichnungAsArtNo=False // ZeichnungsNr wird als ArtikelNr gedruckt, wenn keine KundenartikelNr vergeben ist
156
Position.ShowWaehrung=True (default false) //Die Währung anzeigen erzwingen (Bestellung und Auswärtsbestellung, AN/AG, Rechnung) - Währung wird normalerweise wegen Redundanz nicht angezeigt (ausser GesamtsummeAnzeigen ist nicht aktiv im Einkauf und AN/AG)
157
Position.'+<r_dokutype>+'.BarcodeExpr1 //Barcode pro Position ausgeben, zB Kundenbestellnummer als Barcode zB Lieferschein => Position.lfs.BarcodeExpr1=<position."referenz">
158
Position.AbZuNachPosZusTxt=True (default false) // Zuschläge nach dem Positionstext anzeigen, zB Loll
159 15 [X] Marcus F
Position.StaffelVorPosZusTxt=True (default false) // Staffelpreise vor dem Positionstext anzeigen ! Überschneidung mit AbZuNachPosZusTxt; beide gleichzeitig true, ist bisher nicht beachtet !
160 1 [X] Daniel S
161
-- *Lieferschein*
162
Position.MengeRestMenge=True   //Zeigt die Ausgangsmenge und die noch offene Menge an (zB Lieferschein - Bestellt .... Geliefert ...)
163
Footer.LFS.WareErhalten=True   //Unterschrift-Feld für Ware erhalten unter Lieferschein
164
LFS.TitelLieferTerm=True // default False Zeigt im Titel von Kopie die Spanne des Auslieferungstermins, sowie in der Position den Lagerort
165
166
-- *Lieferkonditionen, Zahlungskonditionen*
167
Footer.Lieferkond.OhneVersand=False //Keine Versandart
168
Zahlung.OhneZahlBed=False //Keine Zahlungsbedingungen
169 2 [X] Daniel S
Zahlung.OhneZahlBedIf00=False //Wenn 0/0 (Zahlung/Skonto) kommt "gem. Vereinbarung" (ausser es gibt Sonderkonditionen, diese überdecken dies dann)
170 1 [X] Daniel S
Zahlung.OhneZahlungsZielTxt="Gemäß Vereinbarungen" //Zahlungskonditionen, wenn keine Zahlungsbedingungen
171
Zahlung.OhneZahlungsZielTxtRechnung="Gemäß Vereinbarungen" //zB Mattis: Sofort Netto;;; wenn nichts angegeben: => Zahlung.OhneZahlungsZielTxt
172
173
-- *Fuß*
174
Footer.Print=True //eigener Brieffuß mit Bankdaten
175
Footer.Height (default 110) // Angabe in Px; höherer Wert rückt den Footer nach oben; relevant, wenn Inhalt des Footers bereits auf KundenEMF vorhanden und Footer.Print=false
176
177
Footer.Width.Anschrift (default 140)//Gruppe1 Postanschrift                          
178
Footer.Width.Kontaktdaten (default 178) //Gruppe2 Kontaktdaten                            
179
Footer.Width.GF (default 174) //Gruppe4 Geschäftsführer
180
181
Footer.Firma1  //default False (Inhalt von ad_fa1)
182
Footer.TitelGF //default Geschäftsführer
183
Footer.Amtsgericht  //String- Name des Amtsgerichts für Brieffuß (Ort), wenn abweichend des Ort der Firma (Felder werden in Einstellungen später nachgesetzt)
184
Footer.HRB          //String- Handelsregister (Nummer)
185
Footer.LiefDatumLeistDatum = 1  //Text "Lieferdatum entspricht Leistungsdatum" wenn Lieferschein vorhanden, ohne Lieferschein automatisch "Rechnugnsdatum ist Leistungsdatum"
186
Footer.LiefDatumLeistDatum = 0  //immer "Rechnugnsdatum ist Leistungsdatum"
187
Footer.LiefDatumLeistDatum = -1 //Keine Angabe zu Leistungsdatum
188
189
-- *Gelangensbestätigung* (siehe #4512)
190
Gelangenbestg.Print=True // default false
191 3 [X] Daniel S
192
h2. Kundenscripts:
193 4 [X] Daniel S
194 3 [X] Daniel S
http://www.prodat-sql.de/redmine/projects/prodat-v-x/wiki/Kundenspezifische_Abl%C3%A4ufe_auf_ZDok
195
196 14 [X] Daniel S
# Initiales Script :  Report.Init.Script.pas // Ausführung im begin end für allgemeine Zusatzanforderungen   (Ende des begin/end Blocks)
197 9 [X] Marcus F
# Positionszusatztext : Report.PosTxt.Script.pas => Addiert Variable "" an den Zusatztext der Position. zB EDI-IDENT-NR