OBS/Makros und Scripting/Allgemeines/Klassen/Vorgänge

Aus OBS Wiki
Zur Navigation springen Zur Suche springen


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;