PMS32 Online- Hilfereferenz
Verträge / Presente
Bezeichnung der Leistung
Langtextfeld, hier kann eine Bezeichnung der eigegeben werden, sofern der gewählte Artikel keine Bezeichnung hat oder Sie diese verändern möchten.
Eingabe des Datums oder Auswahl in der Kalendermaske mit STRG+F2 oder durch Mausklick auf den Button rechts neben dem Datumsfeld.
Dieses Datum gibt den Gültigkeitsbereich an, ab dem ein Vertrag gültig ist. Berechnungszeiträume, die vor diesem Datum berechnet werden, berühren diesen Vertrag nicht.
Letzte Berechnung erfolgte am
Dieses Feld zeigt das Datum der letzten Zahlung/Berechnung an. Das Feld wird normaler weise vom System berechnet und ist bei Neuanlage des Vertrags leer. Wird er Vertrag berechnet, so wird in diesem Feld das Stichdatum der "letzten" Abrechnung eingetragen.
Eingabe des Datums oder Auswahl in der Kalendermaske mit STRG+F2 oder durch Mausklick auf den Button rechts neben dem Datumsfeld.
Geben Sier hier das "ab" Datum der Berechnungsperiode ein. Ab diesem Datum wird die "erste" Berechnung durchgeführt. Dieses Datum wird automatisch bei Neuanlage auf den "Ersten" Tag des Folgemonats des Gültigkeitsdatums "Gültig ab" gesetzt. Der Wert kann variieren, wenn das Flag "Im Voraus" oder die "Zahlungsperiode" geändert wird.
Eingabe des Datums oder Auswahl in der Kalendermaske mit STRG+F2 oder durch Mausklick auf den Button rechts neben dem Datumsfeld.
Hier wird das Tagesdatum der Kündigung eingesetzt. Sie können das Datum aber auch beliebig verändern. Dieser Wert steuert das Vertragsende bei der Berechnung!
Der Vertrag wird als "beendet" angesehen wenn:
"gekündigt wurde" und das "Kündigungsdatum" kleiner ist wie das Datum der "Nächsten Berechnung" und das "Kündigungsdatum" kleiner oder gleich dem Datum der "Kündigungsfrist" ist!
Formel: lEnd = lKue AND datKu
Außerdem wird der Vertrag als beendet angesehen, wenn die Restlaufzeit des Vertrages gleich Null ist und keine "nächste Periode automatisch berechnen" gesetzt ist.
Eingabe des Datums oder Auswahl in der Kalendermaske mit STRG+F2 oder durch Mausklick auf den Button rechts neben dem Datumsfeld.
Dieses Feld zeigt das Datum der nächsten Zahlung/Berechnung an. Das Feld wird normaler weise vom System berechnet und ist bei Neuanlage des Vertrags leer. Wird er Vertrag berechnet, so wird in diesem Feld das Stichdatum der "nächsten" Abrechnung eingetragen.
Bitte füllen Sie möglichst das Feld mit einem eindeutigen Wert, damit Sie bei einer Auswahl (Lookup) die Information deutlich indentifizieren können.
Candidate Felder einer Tabelle definieren einen eindeutigen Suchbefriff für den Benutzer. Meistens hat die Tabelle auch eine interne ID, die den Primärschlüssel der Tabelle bildet. Dann "könnten" mehrere "gleiche" Datensätze mit gleichem Candidateschlüssel angelegt werden. Das System wäre in der Lage, bei Doppeltbenennungen "quasi gleicher" Definitionen, anhand der internen ID die Daten auseinander zu halten. Der Benutzer kann bei einer Auswahl (Lookup) die Informationen dann aber nicht unbedingt auseinanderhalten. Dieses Feld wird "meistens" bei einer Relation aus einer anderen Tabelle heraus angezeigt. Achten Sie deshalb darauf, dass Sie die Information wiedererkennen können. Am Beispiel einer Artikelnummer: Unter einer Artikelnummer mit "74568958743.14" kann sich kaum jemand was vorstellen, jedoch mit "SIE.3TH..." (Hersteller + Typennummer) weiss der Benutzer zumindest, dass es sich hier um Leistungsschütze handelt. Wie Sie Ihre Candidate Schlüssel eingeben bleibt Ihnen überlassen, bedenken Sie jedoch, dass einen sprechende Nummer für nicht eingeweihte Personen besser lesbar ist.
Hier können Sie eine Fremdnummer eingeben
Hier können Sie eine Fremdnummer eingeben, wenn der Vertrag aus einer schriftlichen Vorlage mit anderen Nummer angelegt wurde oder ein Vertrag mit einem Zwischenhändler besteht, der den Vertrag an seinen Endkunden weiter berechnen muss.
Positionsart 8-Stellen.
Hier kann eine Positionsart für den Vertrag hinterlegt werden. Sie können vorhandene Positionsarten mit F3 (Auswahl) auswählen.
Relationales Feld (Lookup) in den Artikelstamm. Der Feldinhalt wird meistens durch F2 bzw. F3 - Auswahl gefüllt.
Relationales Feld zum Artikelstamm. Dieses Feld ist ein Lookup- relationales Feld in den Artikelstamm (B01). Bei SQL Abfragen wird dieses Feld zur Verknüpfung der eigentlichen Tabelle mit dem Artikelstamm benötigt. Ein Beispiel: SELECT b01.artnr, i33.menge_i FROM i33, b01 WHERE i33.idb01 = b01.idb01 AND ...
*/ Dieses Feld ist ein relationales Feld zur Tabelle: B01 - Artikelstamm */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen C55 und B01... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT C55.IDB01 AS _Quelle, B01.IDB01 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"B01.DBF") ON C55.IDB01=B01.IDB01 ; WHERE C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle C55 im Feld _Quelle und nur vorhandene Datensätze der Tabelle B01 */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT C55.IDB01 AS _Quelle, B01.IDB01 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") INNER JOIN (My.Clients.Path.cDbfDir+"B01.DBF") ON C55.IDB01=B01.IDB01 ; WHERE C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Geht auch so... SELECT C55.IDB01 AS _Quelle, B01.IDB01 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") , (My.Clients.Path.cDbfDir+"B01.DBF") ; WHERE C55.IDB01=B01.IDB01 AND C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt... LOCAL loB01 AS Object loB01 = My.Bussines.Strain.Misc.oB01[C55.IDB01] IF !EMPTY(loB01.IDB01) */ Dann wurde der Datensatz in der Tabelle B01 gefunden! */ Weiterer Code kann hier stehen... ENDIF
Relationales Feld (Lookup) in die Adresstabelle. Der Feldinhalt wird meistens durch F2 bzw. F3 - Auswahl gefüllt.
Relationales Feld zur Adresstabelle. Dieses Feld ist ein Lookup- relationales Feld in die Adresstabelle (C30). Die Auswahl dient meistens als Vorlage für eine Lieferanten-, Kunden- oder andere spezifizierte Adressart. Bei einer Änderung der Originaldaten in den Adressen allgemein C3001, hat der Benutzer wählen, ob die Änderungen an die spezifizierten Adressmasken weitergegeben wreden oder nicht. Dies ist mit einer separaten Übersichtsmaske möglich.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: C30 - Adressen */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen C55 und C30... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT C55.IDC30RG AS _Quelle, C30.IDC30 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"C30.DBF") ON C55.IDC30RG=C30.IDC30 ; WHERE C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle C55 im Feld _Quelle und nur vorhandene Datensätze der Tabelle C30 */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT C55.IDC30RG AS _Quelle, C30.IDC30 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") INNER JOIN (My.Clients.Path.cDbfDir+"C30.DBF") ON C55.IDC30RG=C30.IDC30 ; WHERE C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Geht auch so... SELECT C55.IDC30RG AS _Quelle, C30.IDC30 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") , (My.Clients.Path.cDbfDir+"C30.DBF") ; WHERE C55.IDC30RG=C30.IDC30 AND C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt... LOCAL loC30 AS Object loC30 = My.Bussines.Strain.Misc.oC30[C55.IDC30RG] IF !EMPTY(loC30.IDC30) */ Dann wurde der Datensatz in der Tabelle C30 gefunden! */ Weiterer Code kann hier stehen... ENDIF
Primärschlüssel der Tabelle : Verträge / Presente
Primärfelder einer Tabelle indentifizieren den Datensatz der Tabelle. Der Feldinhalt ist immer eindeutig und kann niemals mehrfach vorkommen. Primärfelder können aus einem Feld der Tabelle oder aus mehreren Feldern der Tabelle bestehen.
*/ Das Feld IDC55 ist das Primärschlüsselfeld der Tabelle C55 - Verträge / Presente */ Dieses Feld kann in anderen Tabellen als relationaler Schlüssel zu dieser Tabelle dienen */ An einem SQL - Beispiel eines beschreibbaren Cursors... */ Die Daten des Cursors können zwar geändert werden, die Änderungen werden jedoch NICHT in die Datenbank zurückgeschrieben! SELECT C55.* FROM (My.Clients.Path.cDbfDir+"C55.DBF") ; WHERE C55.IDC55 = m.idc55 ; INTO CURSOR qC55 NOFILTER READWRITE */ Werden die Daten über die die Methode _SqlRead() abgerufen, so kann der Pfad als Datenbank-Verweis angegeben werden... IF poThis._SqlRead([SELECT C55.* FROM CDBFDIR!C55 WHERE IDC55=']+m.idc55+['],"qC55",2) */ Hier könnte Code stehen... */ Siehe auch: My.Clients.SQL.SQLRead(tnDataSession,tcSQLStatement,tcAlias,tvTable) ENDIF
Lookup in : Kundenstammdaten (C63). Eine Änderung erfolgt durch F3 - Auswahl. Der Srung zu Stammtabelle erfolgt mit F2
Hier können Sie einen Kunden aus Ihrem Kundenstamm auswählen. Dieses Feld kann gefüllt werden, falls der Vertrag an einen Zwischenhändler berechnet wird, jedoch die Adresse des Endkunden zur Ausgabe benötigt wird.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: C63 - Kunden */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen C55 und C63... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT C55.IDC63E AS _Quelle, C63.IDC63 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"C63.DBF") ON C55.IDC63E=C63.IDC63 ; WHERE C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle C55 im Feld _Quelle und nur vorhandene Datensätze der Tabelle C63 */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT C55.IDC63E AS _Quelle, C63.IDC63 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") INNER JOIN (My.Clients.Path.cDbfDir+"C63.DBF") ON C55.IDC63E=C63.IDC63 ; WHERE C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Geht auch so... SELECT C55.IDC63E AS _Quelle, C63.IDC63 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") , (My.Clients.Path.cDbfDir+"C63.DBF") ; WHERE C55.IDC63E=C63.IDC63 AND C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt... LOCAL loC63 AS Object loC63 = My.Bussines.Strain.Misc.oC63[C55.IDC63E] IF !EMPTY(loC63.IDC63) */ Dann wurde der Datensatz in der Tabelle C63 gefunden! */ Weiterer Code kann hier stehen... ENDIF
Lookup in : Adress- Erweiterung (C6X). Eine Änderung erfolgt durch F3 - Auswahl. Der Srung zu Stammtabelle erfolgt mit F2
Lookup- bzw. relationale Felder werden benötigt um Tabellen mittels SQL Select oder einer Relation zu verbinden. Durch die Namensgebung der Lookupfelder kann aus dem Feldnamen "meistens" die Zieltabelle der Relation bestimmt werden. Alle Relationen werden in PMS32 über sogenannte ID- Felder hergestellt, wobei die Zieltabelle ab der dritten Stelle des Feldnamens bis zur fünften Stelle des Feldnames angegeben ist. Aus ein paar Beispielen: D51.IDB01 => B01, I40.IDC42VKB => C42, I50.IDC25B => C25. Mit der Formel aus dem Codeblock kann zu "fast" allen ID Feldern die entsprechende Zieltabelle ermittelt werden. Spezial- Lookupfelder wie z.B.: I20.IDZWI oder I23.IDAUFA... benötigen zur Bestimmung die entsprechende IP, mit der über die Systemtabelle Y01 die entsprechende Zieltabelle ermittelt werden kann.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: - */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen C55 und ... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT C55.IDC6X AS _Quelle, . AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") LEFT OUTER JOIN () ON C55.IDC6X=. ; WHERE C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle C55 im Feld _Quelle und nur vorhandene Datensätze der Tabelle */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT C55.IDC6X AS _Quelle, . AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") INNER JOIN () ON C55.IDC6X=. ; WHERE C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Geht auch so... SELECT C55.IDC6X AS _Quelle, . AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"C55.DBF") , () ; WHERE C55.IDC6X=. AND C55.... ; INTO CURSOR qC55 NOFILTER READWRITE */ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt... LOCAL lo AS Object lo = My.Bussines.Strain.Misc.o[C55.IDC6X] IF !EMPTY(lo.) */ Dann wurde der Datensatz in der Tabelle gefunden! */ Weiterer Code kann hier stehen... ENDIF
Welche Adresstabelle ist gemeint? Kann über die Systemtabelle Y01 berechnet werden.
Ein IP-Feld spezifiziert die "Art" eines Datensatzes. Die Erklärungen können über die (System) Tabelle Y01 ermittelt werden. Am Beispiel von B01.IPB01 => Y01.IPY01. Die Tabelle Y01 enthält noch den Sprachkenner IDC26, weshalb dort über die entsprechende Sprache gefiltert werden muss. Für die IP-Felder IPAUF und IPZWI, bei denen keine (existierende) Tabelle angegeben ist gilt: das entsprechende ID-Feld der Tabelle ist ein Switch-Primärschlüssel aus der Tabelle, die über Y01.MASTER ermittelt werden kann. IP-Felder sind Präfixe für bestimmte Tabellen. Beispiel an E11 (Vorgangspositionen) E11.IPY01 = "709" => NN-Artikel. Teilweise geben IP-Felder auch einen Status des entsprechenden Datensatzes an, I22.IPI22S => Status der Lagerumbuchung kann aus Y01.KURZ bzw. Y01.BEZEI ermittelt werden.
*/ Dieses Feld ist ein IP - Feld der Tabelle... */ Der Abruf der Informationen kann über die Tabelle Y01 erfolgen... */ IP Felder geben entweder eine Zeilenart oder eine relationale Tabelle an... LOCAL loY01 AS Object loY01 = My.Bussines.Strain.Misc.vY01[C55.IPC6X] */ Damit kann die Zeilenart bestimmt werden...
Bestellnummer bzw. Vertragsnummer des Kunden
Hier können Sie eine Bestellnummer bzw. Vertragsnummer des Kunden hinterlegen. Wird dann benötigt, wenn die Vertragsposition an einen Zwischenhändler berechnet wird, der diese dann an seinen Endkunden weiter berechnet.
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld führt ein sogenanntes Änderungskennzeichen mit.
Bei jeder Änderung an dem Datensatz der Tabelle wird dieses Feld um 1 nach oben gezählt.
Bei einem Wert der größer 999 ist wird wieder bei 0 angefangen.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LASTUPD WITH (LASTUPD+1)%1000 UPDATE .... , LASTUPD = (LASTUPD+1)%1000
Wurde der Vertrag ausgesetzt?
Mit Setzen dieses Flags wird der Vertrag zwar berechnet, es werden aber keine Zahlungen erwartet. Der Vertrag wird bei einer Berechnung auch in den entsprechenden Vorgang übernommen jedoch wird im Vorgang das Flag "Alternativ" gesetzt, sodass der Wert nicht in den Endbetrag des Vorgangs einbezogen wird.
Weiterhin können die Flags "Gekündigt" und "Beendet" gesetzt werden!
Liegt ein Vertrag in Schriftform vor?
Hier kann gekennzeichnet werden, ob ein Vertrag in Schriftform vorliegt. Dieses Feld ist lediglich ein Hinweis für den Benutzer und wird nicht bei der Berechnung herangezogen.
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das letzte Änderungsdatum des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LDATUM WITH My.xDate UPDATE .... , LDATUM = My.xDate
Wurde der Vertrag beendet?
Mit Setzen dieses Flags wird jede weitere Berechnung des Vertrags verhindert. Das Flag "Gekündigt" allein beendet den Vertrag nur dann, wenn die Periode komplett berechnet wurde und das Kündigungsdatum "vor" dem Datum der Kündigungsfrist liegt. Dieses Flag wird vom System automatisch gesetzt, wenn der Vertrag "rechtzeitig" gekündigt und der komplette Zeitraum berechnet wurde.
Wurde der Vertrag gekündigt?
Mit Setzen dieses Flags wird das Datum DATKU gefüllt, dass Sie nachträglich ändern können. Ist der Vertrag "gekündigt", so wird dieser bei der nächsten Berechnung nicht mehr berechnet, sofern das "Datum der Kündigung" vor dem "Datum der Kündigungsfrist" liegt. Die Positon können Sie auch löschen um eine Berechnung zu verhindern, jedoch fehlt Ihnen in diesem Fall die Historie. Der Vertrag wird um eine volle Periode weiter berechnet, sollte das Kündigungsdatum "nach" dem Datum der letzten Kündigungsfrist liegen. Möchten Sie den Vertrag trotzdem nicht weiter abrechnen, so setzen Sie bitte das Flag "Beendet"
Automatische Verlängerung der Vertragslaufzeit nach einer kompletten Periode
Automatische Verlängerung der Vertragslaufzeit nach einer kompletten Laufzeitperiode. Die Laufzeit eines Vertrags wird im Feld "Laufzeit" angegeben. Wird bei der Berechnung des Vertrags festgestellt, dass eine komplette Periode berechnet wurde, so wird, wenn das Flag gesetzt ist eine weitere Periode mit gleicher Laufzeit angehängt.
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Programm der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LPRG WITH My.lProgram UPDATE .... , LPRG = My.lProgram
Neuer Vertrag, wenn der Zu- bzw. Abschlag greift?
Soll bei der Berechnung des Vertrags, wenn ein prozentualer Auf- bzw. Abschlag (-) angegeben wurde, ein "neuer" Vertrag mit neuem Preis angelegt werden? Der "alte" Vertrag wird dann automatisch auf "Beendet" gesetzt. D.h., ist im Feld Auf-/Abschlag ein prozentualer Wert ungleich Null angegeben, so wird nach einer kompletten Vertragslaufzeit in der Folgeberechnung mit einem anderen Preis gerechnet. Um nun eine Historie zu erhalten kann nach jeder Vertragslaufzeit mit einem Auf- bzw. Abschlag einer "neuer" Vertrag angelegt werden. Die Vertragnummer wird am Ende mit einer fortlaufenden Revisionsnummer .1, .2, .3, etc. versehen. So entsteht für den Benutzer eine Historie mit den Berechnungszeiträumen und den entsprechenden Vertragswerten. Diese Maßnahme greift nur dann, wenn das Flag "Nächste Periode berechnen" gesetzt ist!
Wurde der Vertrag unterzeichnet?
Hier kann gekennzeichnet werden, ob ein Vertrag in Schriftform unterzeichnet wurde. Dieses Feld ist lediglich ein Hinweis für den Benutzer und wird nicht bei der Berechnung herangezogen.
Erfolgt die Berechnung des Vertrags im Voraus?
Soll der Vertrag mit einer Zahlungsperiode im Voraus berechnet werden, so ist dieses Flag zu setzen.
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält den Benutzer der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LWER WITH My.cUser UPDATE .... , LWER = My.cUser
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält die Uhrzeit der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LZEIT WITH My.xTime UPDATE .... , LZEIT = My.xTime
Menge gleicher Verträge
Hier kann die Menge "gleichen" Vertragsgegenstands eingegeben werden. Bei der Berechnung "eines" Vertrags wird der berechnete Wert mit der Menge multipliziert. Die eingegebene Menge sollte "größer" Null sein. Vorbelegt wird das Feld mit Menge=1.
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Neuanlagedatum des Datensatzes.
My.xDate gibt das aktuelle Datum zurück.
Bitte verwenden Sie nicht DATE()!
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NDATUM) VALUES (...,My.xDate)
Notiz für den Anwender
Hier kann der Anwender Notizen hinterlegen. Dieses Feld wird auch mit Hinweisen vom System gefüllt, wenn der Vertrag berechnet wird.
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Programm der Neuanlage des Datensatzes.
My.lProgram gibt das aktuelle Programm zurück.
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NWER) VALUES (...,My.cUser)
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält den Benutzer der Neuanlage des Datensatzes.
My.cUser gibt den angemeldeten Benutzer (C65) zurück.
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NWER) VALUES (...,My.cUser)
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Neuanlageuhrzeit des Datensatzes.
My.xTime gibt das aktuelle Uhrzeit zurück.
Bitte verwenden Sie nicht TIME()!
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NZEIT) VALUES (...,My.xTime)
Positionsnummer. Sortierkriterium der Positionstabelle.
Positionsnummer. Sortierkriterium der Positionstabelle. Die Nummer kann in verschiedenen Modulen mit entsprechenden Funktionen (Menü) geändert bzw. neu nummeriert werden. Teilweise wird die Positionsnummer nur intern verwendet und ist für den Benutzer nach außen nicht sichtbar. In der Vorgangsverwaltung, E-Masken, besteht eine besondere Positionsnummerierung. Dort werden Positionen der gleichen Pseudobaugruppe mit gleicher Positionsnummer angegeben. Intern jedoch verwendet die Positionsnummer vier Nachkommastellen, die aber bei der Anzeige nicht ausgegeben werden. Dadurch entsteht der Effekt der "gleichen" Positionsnummer bei korrekter Sortierung.
Preisfeld in Firmenwährung. Dieses Feld enthält einen Wert in Firmenwährung.
Vertragswert für "eine" Menge. Hier kann der Wert des Vertrags eingegeben werden. Der Wert bezieht sich auf "eine" Menge und die gewählte Einheit (Periode).
Prozentualer Auf- bzw. Abschlag nach einer kompletten Laufzeit
Hier kann ein prozentualer Auf- bzw. Abschlag angegeben werden, der den Vertragswert nach einer kompletten "Laufzeit" ändert. Diese Einstellung wird bei der Vertragsberechnung abgefragt und nur dann berechnet, wenn das Flag "Nächste Periode berechnen" gesetzt ist. Siehe dazu auch das Flag "Neuer Vertrag".
Zeit in der entsprechenden Einheit, in der der Vertrag ausgesetzt ist
Hier kann die Zeit eingegeben werden, in der der Vertrag ausgesetzt wird. Nach Ablauf der angegebenen Zeit wird der Vertrag wieder automatisch berechnet. Siehe dazu auch das Flag "Ausgesetzt". Der Vertrag wird weiterhin berechnet, jedoch werden die ermittelten Werte im Vorgang mit "Alternativ" gekennzeichnet. Wird das Feld auf Null (leer) belassen, so wird keine automatische Aktivierung durchgeführt.
Kündigungsfrist.
Hier kann die Küpndigungsfrist des Vertrags hinterlegt werden. Das Datum der "letztmöglichen" Kündigung wird nach "Datum erste Berechnung" + Laufzeit - Kündigungsfrist berechnet. Liegt das Kündigungsdatum nach der Kündigungsfrist, so wird eine weitere Berechnung des Vertrags durchgeführt.
Laufzeit des Vertrags in der angegebenen Einheit
Laufzeit des Vertrags in der angegebenen Einheit. Die Laufzeit wird in Monate umgerechnet, je nach gewählter Einheit. Siehe dazu auch die Felder "Laufzeiten", "Zahlungsperiode" und "Preiszeitraum"
Restlaufzeit in der Einheit der Laufzeit bis zum Vertragsende
Restlaufzeit in der Einheit der Laufzeit bis zum Vertragsende. Dieses Feld wird vom System berechnet.
Zeit in Monaten, die der Vertrag bisher ausgesetzt war
Hier wird die Zeit in Monaten angezeigt, die der Vertrag bisher ausgesetzt war. Dieses Feld wird vom System bei der Berechnung gesetzt, wenn das Flag "Ausgesetzt" aktiv ist.
Gesamtlaufzeit in Monaten.
In diesem Feld wird die Gesamtlaufzeit in Monaten angezeigt. Dieses Feld wird vom System berechnet und kann vom Benutzer nicht geändert werden!
Einheit der für die Zeit der Unterbrechung. (Ausgesetzt)
Mögliche Werte:
Monat(e)
1/4 Jahr(e)
1/2 Jahr(e)
Jahr(e)
Hier können Sie die Einheit wählen, die für die Unterbrechnungszeit "Ausgesetzt für" gilt.
Einheit der Laufzeit.
Mögliche Werte:
Monat(e)
1/4 Jahr
1/2 Jahr
Jahr
Die Laufzeiten für 1/4 Jahr bis Jahr werden immer in Monate umgerechnet. D.h. 3 - Monate bis 12 - Monate. Wird "Jahr" für die Laufzeit eingestellt, so errechnet sich die Gesamtlaufzeit des Vertrags mit: Laufzeit x Einheit (Monate).
An einem Beispiel für 5 Jahr(e):
Laufzeit = 5, Einheit = Jahr, dann ergibt sich eine Gesamtlaufzeit von 5 x 12 = 60 Monaten. Wäre der Vertrag ab dem 01.03.2010 gültig, so würde der Vertrag bis zum 28.02.2015 laufen. Ist das Flag "Nächste Periode berechnen" gesetzt, so würde bei der Berechnung zum 01.03.2015 der Vertrag um weitere 60 Monate verlängert, bis zum 29.02.2020.
Einheit der Zahlungsperiode
Mögliche Werte:
monatlich
3 monatlich
6 monatlich
12 monatlich
1/4 jährlich
1/2 jährlich
jährlich
Bei den Berechnungseinheiten derZahlungsperiode von 1/4 jährlich bis jährlich wird eine Konsolidierung mit dem Kalender berechnet. D.h., dass der Vertrag immer für die entsprechenden Zeiträume berechnet wird.
Ein Beispiel für 1/4 jährlich.
Ist die "erste Abrechnung" am 04.02.2010 und ist für die Zahlungsperiode 1/4 jährlich eingestellt, so würde eine komplette Periode über ein 1/4 Jahr gehen. Jedoch wird die "erste" Berechnung anteilig vom 04.02.2010 bis zum 31.03.2010 berechnet. Damit wäre die "erste" Zahlungsperiode abgerechnet! Nachfolgend würde berechnet:
01.04.2010 - 30.06.2010 (2. Periode)
01.07.2010 - 30.09.2010 (3. Periode)
01.10.2010 - 31.12.2010 (4. Periode)
Einheit des Preises.
Mögliche Werte:
Monat
1/4 Jahr
1/2 Jahr
Jahr
Hier kann gewählt werden, für welche Einheit der eingegebene Preis (PREIS_F) gültig ist. Hat man einen "Einzelpreis" von z.B. 300€ für eine Einheit von "1/4 Jahr" eingegeben, so würde sich der berechnete Wert für einen Monat von 100€ ergeben. Bei der Berechnung wird intern immer in Monaten gerechnet! Besondere Vorsicht ist bei der Wahl der Zahlungsperiode zu beachten. Die dort eingestellten Werte werden für die Abrechnung benötigt und entsprechend umgerechnet!
Siehe auch : Hauptmenü / Hauptindex / Such Index / Cursor Index / Programm Module / Tabellen Index / Tabellenmodule / Masken Index / Programmcode Index / Servicepacks / My.Struktur / Funktionen / Sonstiges Index
Lokale Benutzerhilfe : Meine eigene Hilfe / Zurück zur PMS32 - Hilfe
Dateiversion:1.0.04#3648 - H.U.DD#SSFF 02.12.2022
Senden Sie Ihren Kommentar zu diesem Thema an das Entwicklungsteam von PMS32
Weitere Informationen finden Sie unter der aktuellen
PMS32 WEB-Hilfe
Die Informationen dieser Mitteilung sind vertraulich und nur für Sie bestimmt. Unbefugtes Weiterleiten,
Veröffentlichen, Kopieren usw. sind untersagt und werden gerichtlich verfolgt.
© PMS Compelec GmbH 2022 ® el-Projekt