OBS/Makros und Scripting/Allgemeines/Klassen/Vorgänge: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Es gibt für die Generierung von Vorgängen eigene Klassen. Da es zwischen den Vorgängen immer irgendwelche Unterschiede gibt, existiert auch für jeden Vorgangs-Typ eine eigene Klasse.
Es gibt für die Generierung von Vorgängen eigene Klassen. Da es zwischen den Vorgängen immer irgendwelche Unterschiede gibt, existiert auch für jeden Vorgangs-Typ eine eigene Klasse.<br />
<br />
Übersicht Klassen:
Übersicht Klassen:
*[[OBS/Makros und Scripting/Allgemeines/Klassen/Vorgänge/Angebot|Angebot]]
*[[OBS/Makros und Scripting/Allgemeines/Klassen/Vorgänge/Angebot|Angebot]]

Version vom 9. April 2019, 15:23 Uhr

Es gibt für die Generierung von Vorgängen eigene Klassen. Da es zwischen den Vorgängen immer irgendwelche Unterschiede gibt, existiert auch für jeden Vorgangs-Typ eine eigene Klasse.

Übersicht Klassen:

Basis TVorgang

Variablen

        oMyDB             : TxDB;
        cMainTable        : string;
        cPosTable         : string;
        oProtokoll        : TStringList;
        lMeldung          : Boolean;                        //Meldungen Anzeigen
        lSetPSBemAuto     : Boolean;

        cVorgNr           : String;                         // Vorgangsnummer
        cProjNr           : String;                         // Projektnummer
        lBrutto           : Boolean;                        // Brutto positionen
        cLanguage         : String;                         // Sprache
        cTyp              : String;                         // Auftragstyp
        cStatus           : String;                         // Auftrags-Status (0-22)
        cStatM            : String;                         // 1-stellig
        cStatS            : String;                         // 1-stellig
        cStatL            : String;                         // 2-stellig
        cStatR            : String;                         // 2-stellig
        dVorgDat          : TDateTime;                      // Vorgangsdatum
        dFaelligDat       : TDateTime;                      // Fälligkeitsdatum
        dBuchDat          : TDateTime;                      // Buchungsdatum
        dAufDat           : TDateTime;                      // Auftragsdatum
        cKdNr             : String;                         // Kundennummer
        cAnrede           : String;                         // Kunde Anrede
        cName             : String;                         // Kunde Nachname
        cVorname          : String;                         // Kunde Vorname
        cZusatz1          : String;                         // Kunde Zusatz1
        cZusatz2          : String;                         // Kunde Zusatz2
        cStrasse          : String;                         // Kunde Straße
        cPostfach         : String;                         // Kunde Postfach
        cLK               : String;                         // Kunde Land
        cPLZ              : String;                         // Kunde PLZ
        cOrt              : String;                         // Kunde Ort
        cAngebNr          : String;                         // Auftragsnummer
        cLSNr             : String;                         // Lieferscheinnummer
        cRechNr           : String;                         //
        cAuftNr           : String;                         // Auftragsnummer
        cRepaNr           : String;                         // Reparaturauftragsnummer
        cEinkaufsNr       : String;                         // Einkaufsnummer
        cBestellNr        : String;                         // Bestellnummer
        cPosText          : String;                         // Positionstext
        cLProjNr          : String;                         // Lieferantenprojektnr
        cKopfNr           : String;                         // Kopftext-Nummer (00-999)
        cKopftext         : String;                         // Freier Kopftext
        cFusstext         : String;                         // Freier Fusstext
        cFussNr           : String;                         // Fusstext-Nummer (00-999)
        nNBetrag          : Double;                         // Nettobetrag der Auftrag
        nBBetrag          : Double;                         // Bruttobetrag der Auftrag
        nEKBetrag         : Double;                         // Einkaufsbetrag der Auftrag
        nRabattBetrag     : Double;                         // Rabatt Betrag
        nRabattProz       : Double;                         // Rabatt Prozentual
        nPorto            : Double;                         // Portobetrag
        nVerpackung       : Double;                         // Verpackungskosten
        cVersand          : String;                         // Versand über (0-99)
        cZahlBed          : String;                         // Zahlungsbedingung (0-99)
        cWaehr            : String;                         // Währung (0-99)
        cFormul           : String;                         //
        cVAnr             : String;                         // Kostenstelle
        cVKdNr            : String;                         // Versand Kundennummer
        cVName1           : String;                         // Versand Name
        cVName2           : String;                         // Versand Name
        cVZusatz          : String;                         // Versand Zusatz
        cVStrasse         : String;                         // Versand Straße
        cVLK              : String;                         // Versand Land
        cVPLZ             : String;                         // Versand PLZ
        cVOrt             : String;                         // Versand Ort
        cVUID             : String;                         // Versand UID
        cAuftNrKd         : String;                         // Auftragsnummer des Kunden
        cBesteller        : String;                         //
        cSachb            : String;                         // Sachbearbeiter (0-99)
        cRabPosJN         : String;                         // J oder N
        cMWSTJN           : String;                         // J oder N
        cSText1           : String;                         //
        cSText2           : String;                         //
        cSText3           : String;                         //
        cSText4           : String;                         //
        cSText5           : String;                         //
        cSText6           : String;                         //
        cSText7           : String;                         //
        cPreisJN          : String;                         // J oder N
        nNet1             : Double;                         //
        nNet2             : Double;                         //
        nNet3             : Double;                         //
        nBrutto1          : Double;                         //
        nBrutto2          : Double;                         //
        nBrutto3          : Double;                         //
        nMwSt1            : Double;                         //
        nMwSt2            : Double;                         //
        nMwSt3            : Double;                         //
        cMwStSchl1        : String;                         //
        cMwStSchl2        : String;                         //
        cMwStSchl3        : String;                         //
        cMwStAbs          : String;                         //
        dLiefDat          : TDateTime;                      // Lieferdatum
        cDeleted          : String;                         //
        dLDat2            : TDateTime;                      // Lieferdatum
        cSprache          : String;                         //
        cReEmpf           : String;                         // Kundennummer des Rg-Empfängers
        cVertreter        : String;                         // Vertreter (000-9999)
        cVerbucht         : String;                         //
        cLager            : String;                         //
        //cRgArt            : String;                         //
        cBonusJN          : String;                         // J oder N
        cWLiefNr          : String;                         //
        cRechFrei         : String;                         //
        cBonNr            : String;                         //
        cMandant          : String;                         // Mandant (001-999)
        nMwStDM           : Double;                         //
        nKursDM           : Double;                         //
        nAbschlag         : Double;                         //
        nZBetrag          : Double;                         //
        nZSkonto          : Double;                         //
        dZDatum           : TDateTime;                      //
        cMemo             : String;                         // Memofeld
        nValuta           : Integer;                        // Valuta in Tagen (max. 4 Stellen)
        cKostenst         : String;                         // Kostenstelle
        cKostentraeger    : String;                         // Kostenträger
        cKalkGr           : String;                         //
        cKalkRet          : String;                         //
        nOFBetrag         : Double;                         //
        cWKNr             : String;                         //
        cFrachtV          : String;                         //
        nFrachtK          : Double;                         //
        nFrachtG          : Integer;                        //
        cGruppe           : String;                         //
        cPosFormat        : String;                         // Format der Positionsnummerierung
        cFiliale          : String;                         //
        cRabText          : String;
        cErfasser         : String;
        nSKFBetrag        : Double;
        nMBWert           : Double;
        cLiefStrecke      : String;
        cMindbest         : String;
        cBetreff          : String;                         //Betreff
        cGeraet           : String;
        cVersandkostenMBW : String;
        cKeineVersPausch  : String;
        cMemoDruck        : String;                         //Positionslangtext drucken? Ja, Nein oder Voreinstellung
        cLieferLiefNr     : String;                         //Lieferscheinnummer des Lieferanten
        cRabattText       : String;                         // Rabatttext (Rabatt, Lagerrabatt, Auftragsrabatt, Objektrabatt)
        cArt              : String;
        cSysUid           : String;
        cDMS_TYP          : String;

Methoden

        function  IstAngebot(): boolean;
        function  IstAuftrag(): boolean;
        function  IstReparaturAuftrag(): boolean;
        function  IstLieferschein(): boolean;
        function  IstRechnung(): boolean;

        function  NeuNumLock(): boolean;
        procedure NeuNumLockRelease();
        function  VorgNeuNum(cFilter: string=''; lAbweichend: boolean = false): string;
        function  VorgNeuNumBool(cFilter: string=''; lAbweichend: boolean = false): boolean;
        function  IstVorgNrGueltig(cUID: string=''): boolean;

        function  NeuePositionBase(): TVorgangPos;
        procedure NeuePositionBaseMS(oOrgPos: TVorgangPos);
        procedure LoeschePositionBase(nDel: integer);
        procedure VerschiebePositionBase(nPos: integer; nZiel: integer);
        function  CheckIfNotNull(): Boolean;
        function  IsPosBerechnung(cPosArt: string): boolean;
        procedure CopyFrom(oSrc: TVorgang);
        procedure KalkAll();
        procedure Check_Multisteuer(oOrgPos: TVorgangPos; const cTable: string; const cMUID: string; const cRefNr: string);
        function  CopyPosmenge(cFromUID : string): string;
        function  CopyPosverp(cFromUID : string): string;
        procedure FillPersonBase(qPers: TxFQuery);
        function  SaveRecord(cUID : String = ''; lAlleSpeichern : Boolean = true): Boolean; virtual; abstract;
        function  ReadVorgangBase(qQuery: TxFQuery; lPos: boolean=false): boolean; overload;
        function  ReadVorgangBase(const cNr: string; lPos: boolean=false): boolean; overload;
        function  JahrNr(): string;

Properties

        property  PnPosCnt                     : integer       read nPosCnt     write nPosCnt;
        property  PaPositionen[Index: integer] : TVorgangPos   read GetPosition write SetPosition; // Vorgangspositionen
        property  PcRabGrPers                  : string        read cRabGrPers;

Basis TVorgangPos

Variablen

        oMyDB             : TxDB;
        nPosIndex         : Integer;   //Index des Positionsarrays aus TVorgang
        cNr               : String;    //Vorgangsnummer
        cKundNr           : String;    //Kundennummer
        cAuftragsNr       : String;    //Auftragsnummer
        cBestellNr        : String;    //Bestellnummer
        cPosText          : String;    //Positionstext
        cLProjNr          : String;    //Liefernatenprojektnr
        cLieferNr         : String;    //Versandnummer
        cVersandNr        : String;    //Versandnummer
        cPosNr            : String;    //Positionsnummer
        cPosNr2           : String;    //Positionsnummer Erweiterung
        cPosKas           : String;    //Positionsnummer
        cTyp              : String;    //Typ
        cArtikelNr        : String;    //Artikel-Nummer
        cLeistungsNr      : String;    //Leistungs-Nummer
        cBezeichnung1     : String;    //Bezeichnung 1
        cBezeichnung2     : String;    //Bezeichnung 2
        nMenge            : Double;    //Menge
        nUrMenge          : Double;    //nicht fakturierte Menge (MDS -> Leistungs-Einheitsfaktor)
        nLeistFaktor      : Double;    //Leistungs Mengen Faktor (MDS -> Leistungs-Einheitsfaktor)
        cEinheit          : String;    //Einheit
        nMengeG           : Integer;   //MengeG
        nKolli            : Integer;   //Kolli
        cVerpackung       : String;    //Verpackung
        nInhalt           : Double;    //Inhalt
        nEPreis           : Double;    //Einzelpreis VK in Netto
        nBEPreis          : Double;    //Einzelpreis VK in Brutto
        nOBPreis          : Double;    //Open Book Preis
        nUrPreis          : Double;    //UrPreis
        nUrPreisEK        : Double;    //UrPreisEK
        nGPreis           : Double;    //Gesamt Preis VK Netto
        nBGPreis          : Double;    //Gesamt Preis VK Brutto
        nEKPreis          : Double;    //EKPreis
        nEKSPreis         : Double;    //EKPreis
        cManPreis         : String;    //Manueller Preis Varianten
        nRabatt           : Double;    //Rabatt
        nRabatt1          : Double;    //Rabatt
        cRabArt1          : String;    //RabattArt
        nRabatt2          : Double;    //Rabatt
        cRabArt2          : String;    //RabattArt
        nRabatt3          : Double;    //Rabatt
        cRabArt3          : String;    //RabattArt
        nRabatt4          : Double;    //Rabatt
        cRabArt4          : String;    //RabattArt
        nRabatt5          : Double;    //Rabatt
        cRabArt5          : String;    //RabattArt
        nAddSub           : Double;    //AddSub
        cKonto            : String;    //Konto
        cLagNr            : String;    //LagerNr
        cLagONr           : String;    //Lagerort
        cVerkaufer        : String;    //Sachbearbeiter
        cStatus           : String;    //Positionskennzeichen
        cAngebotsNr       : String;    //AuftragsNr
        cUID              : String;    //UID
        cMUID             : String;    //Multi-Steuer UID
        cSpNr             : String;    //SpNr
        cBestellUID       : String;    //BestellUID
        cMaterialUID      : String;    //MaterialUID
        cEiliUID          : String;    //EiliUID
        cXUID1            : String;    //XUID1
        cXUID2            : String;    //XUID2
        cXUID3            : String;    //XUID3
        cXUID4            : String;    //XUID4
        cKommentar        : String;    //Kommentar
        nProvision        : Double;    //Provision
        cLiefKz           : String;    //LiefKz
        cProdGr           : String;    //ProdGr
        nFrachtV          : Double;    //FrachtV
        cLSNr             : String;    //Lieferschein-Nummer
        dLSDatum          : TDateTime; //Lieferschein-Datum
        cPosArt           : String;    //Positionsart
        cSKFJN            : String;    //Skonto fähig J/N
        cEKHerkunft       : String;
        cLiefNr           : String;    //Liefer Nr.
        cLagStreck        : String;    //Streckenlieferung
        cAufschlag        : String;    //Aufschlag
        nStaffelPreis     : integer;
        nStaffelmenge     : Double;
        lAktionspreis     : Boolean;
        lVerbrauchsMater  : Boolean;
        cAusdruckJN       : String;    //Ausdruck Ja/Nein
        cMemoDruck        : String;    //Positionslangtext drucken? Ja, Nein oder Voreinstellung

        cCMPUID       : String;    //Zum merken von referenzen
        cZeit_CMPUID  : String;    //Zum merken von referenzen
        cZeit_Text    : String;    //Zum merken von referenzen
        cZeit_Mitarb  : String;    //Zum merken von referenzen
        dZeit_Date    : TDateTime; //Zum merken von referenzen
        cZeit_NurLei  : String;    //Zum merken von referenzen

        //Rechnung
        cKostst           : String;
        lNeuNum           : Boolean;
        cSysUID           : String;    //SYS_UID

Methoden

        procedure PositionsVorbelegung();
        procedure GenNewUid();
        function  CopyPosmenge(cFromUID : string): string;
        function  CopyPosverp(cFromUID : string): string;
        procedure CopyFrom(oSrc: TVorgangPos; lFull: boolean=False);
        procedure QueryToPos(      qTmp       : TxFQuery); overload;
        procedure QueryToPos(      qTmp       : TxFQuery;
                             const cFromTable : string;
                                   lVerpack   : Boolean=False;
                                   lUmkehr    : boolean=False); overload;
        procedure DBPosToPos(const cFromTable : string;
                             const cSysUid    : string;
                                   lVerpack   : Boolean=False;
                                   lUmkehr    : boolean=False);
        function  GetLan_Artikel(cArtNr: String; cFeld: string; cDefault: string): string;
        procedure FillArtikel(cArtNr:String);
        function  SetzeLieferant(const cLiefNr: string; lEKNeu: boolean=True; lDefaultEK1: boolean=False): boolean;
        function  GetLan_Leist(cLeistNr: String; cFeld: string; cDefault: string): string;
        procedure FillLeistung(cLeistNr:String);
        procedure KalkPos();
        procedure SetPosNr(cP: string; cT: string=''; cG: string=''; cFormat: string=''); overload;
        procedure SetPosNr(nP: integer; nT: integer=-1; nG: integer=-1; cFormat: string=''); overload;
        function  PosLaufend(iPos: integer=0): string;
        procedure Preisfindung(cShopNr: string=CONST_NO_SHOP);

Properties

        property PcMWSTSch        : string   read cMWSTSch        write SetMWSTSch;
        property PcMengeIn        : string   read cMengeIn        write SetcMengeIn;
        property PnMengeIn        : double   read nMengeIn        write SetnMengeIn;
        property PnMengeInFak     : double   read nMengeInFak     write SetnMengeInFak;
        property PcMemofeld       : string   read cMemofeld       write SetcMemofeld;
        property PcMemofeldAnsi   : string   read cMemofeldAnsi   write SetcMemofeldAnsi;
        property cPosLaufend      : string   read ReadPosLfd      write cPosLfd;

Allgemeine Konstanten

    POSTYP_POS =  '0'; //Artikel/Leistung Position
    POSTYP_TXT =  '1'; //Text
    POSTYP_ELN =  '2'; //Leerzeile (empty line)
    POSTYP_ZWS =  '3'; //Zwischensumme
    POSTYP_TIS =  '4'; //Titelsumme
    POSTYP_TIT =  '7'; //Titel
    POSTYP_GEW =  '8'; //Gewerk
    POSTYP_PBR = '17'; //Seitenumbruch (Pagebreak)
    POSTYP_PIC = '19'; //Bildposition

Allgemeine Funktionen

function IstVKVorgang(cMainTable: string): boolean;
function IstVKVorgangPos(cPosTable: string): boolean;
function CopyPosmengeDB(oMyDB: TxDB; cFromUID : string): string;
function CopyPosverpDB(oMyDB: TxDB; cFromUID : string): string;
function CopyRTFLan(oMyDB: TxDB; cVonTable: String; cVonRef: String; cNachTable: String; cNachRef: String): String;
function PosNrFormatCheck(const cFormat: string): boolean;
function PosNrFormatCounts(const cFormat: string; out nG: integer; out nT: integer; out nP: integer): boolean;
function GetVorgangMandant(oMyDB: TxDB; const cTable: string; const cNr: string): string;