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

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 108: Zeile 108:
</syntaxhighlight>
</syntaxhighlight>
=Beispiel=
=Beispiel=
Nehmen wir an, wir bekommen eine Datei mit folgendem Inhalt:
Nehmen wir an, wir bekommen eine Datei und speichern diese für den Import in der OBS-Verzeichnisstruktur unter \data\Import\ in einem eigenen Verzeichnis ''AUimp''. Die Datei hat folgenden Inhalt:
  000=2019-04-11 14:12:53
  000=2019-04-11 14:12:53
  001=23548641
  001=23548641
Zeile 137: Zeile 137:
  S01=89.06
  S01=89.06
  S03=557.81
  S03=557.81
Der Inhalt dieser Datei soll als Auftrag im OBS erscheinen. Dafür müssen wir uns zunächst einmal anschauen, welche Daten wir haben. Für unser Beispiel kommen folgende Daten zusammen:
*'''000''' bis '''002'''
:Kopfdaten mit Auftragsdatum (000), Referenz (001) und Kundennummer (002)
*'''A00''' bis '''A07'''
:Anschrift des Auftraggebers mit Anrede (A00), drei Zeilen für den Namen (A01 bis A03), Straße (A04), PLZ (A05), Ort (A06) und Land im Format [https://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste ''ISO 3166-1 Alpha-2''] (A07)
*'''B00''' bis '''B07'''
:Anschrift des Warenempfängers mit Anrede (A00), drei Zeilen für den Namen (A01 bis A03), Straße (A04), PLZ (A05), Ort (A06) und Land im Format [https://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste ''ISO 3166-1 Alpha-2''] (A07)
*'''P00'''
:Jeder Eintrag entspricht einer Position mit den Angaben Positionsnummer, Artikelnummer, Bezeichnung, Menge, Einzelpreis Netto und Steuersatz. Die Angaben sind mit Slash getrennt.
*'''S00''' bis '''S02'''
:Summen für Netto (S00), Steuer (S01) und Brutto (S02)
Ein Import könnte wie folgt gestaltet werden:
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang="Delphi">


</syntaxhighlight>
</syntaxhighlight>

Version vom 11. April 2019, 15:10 Uhr


Basis TAuftrag

Variablen

        cAbKto            : String;
        cAnsprec          : string;
        cAnspZahl         : String;
        nAnzAbs           : Integer;
        nBPorto           : Double;
        nBVerpack         : Double;
        cDMSNr            : string;
        cEMail            : String;
        cFMPro            : string;
        cFreigabe         : String;
        cInroomDepartment : String;
        cInroomName       : String;
        cInroomTelf       : String;
        cIntern           : String;
        cKeinMaterAnlegen : String;
        cKommission       : String;
        cLagerverw        : String;
        cMaterMD5         : String;
        cMesse            : String;
        cMessenStand      : String;
        cMessenStandUID   : String;
        cMessentermin     : String;
        cMessenterminUID  : String;
        cOnline           : String;
        cPara13           : String;
        cRVNR             : String;
        cSamRech          : String;
        cShopBestID       : String;
        cShopNr           : String;
        cSMS              : String;
        cStatusL          : String;
        cStatusR          : String;
        cTR_Mail          : String;
        cStdSteuer        : String;
        cKommisionsbeleg  : String;

Methoden

        constructor  Create (oxDB: TxDB); overload; virtual;
        constructor  Create (oxDB: TxDB; cAuftNr: String; lPos: boolean=false); overload; virtual;
        Destructor   Destroy (); override;
        function  NeuePosition(): TAuftragPos;
        procedure FillPerson(cKdNr:String;lShop:Boolean=False);
        procedure FillVersand(cVaNrueber:String;lShop:Boolean=False); overload;
        procedure FillVersand(cVNr:String;cVPNr:String;lShop:Boolean=False); overload;
        procedure FillKopie(Query: TxFQuery;cTable:String='');
        function  SaveRecord(cUID: string = '';lAlleAnzeigen : Boolean = true): Boolean; override;
        function  UpdateRecord(cUid : string): Boolean;
        procedure CalcAddSub(cArtNr:String; nFaktor:Double);
        procedure Assign(oSrc: TAuftrag); reintroduce;

Basis TAuftragPos

Variablen

        oAuftrag          : TAuftrag;

Methoden

        constructor  Create (oxAuftrag:TAuftrag);   virtual;
        Destructor   Destroy ();  override;

        procedure FillKopie(Query: TxFQuery);

Allgemeine Konstanten

const
    MODE_SETMD5   = 1;
    MODE_READUID  = 2;

Allgemeine Funktionen

procedure UebernahmeMaterial(cAuftNr: String; lGebucht: Boolean=False;lEKManuell:Boolean=False);
procedure UebernahmeMaterialDB(oMyDB: TxDB; cAuftNr: String; lGebucht: Boolean=False;lEKManuell:Boolean=False);
procedure UbernahmeGeraetRepaDB(oMyDB:TxDB; const cRepaNr:String; const cAngNr:String);

procedure MateArtiGet(cKnr:String;qArtiQuery:TxFQuery;var qMaterData:TqSQL);

function  MakeNewAuftPos(cAuftNr : String) : String;
function  MakeNewAuftPosDB(oMyDB:TxDB;cAuftNr : String) : String;

function  MakeNewRaufPos(cRaufNr : String) : String;
function  MakeNewRaufPosDB(oMyDB:TxDB;cRaufNr : String) : String;

procedure AutragAusFiliale(oFiliDB:TxDB;cBestNr:String;cKuNr:String);
function  Auftrag_MaterMD5(oDB:TxDB;Const cAuftNr:String;nMode:Integer;var cUIDs:String;var cAuftNrs:String):Boolean;

function  Auftrag_Rohertrag(oMyDB:TxDB; cAuftNr:String;nNettoBetrag:Double):String;
function  Auftrag_Rohertrag_Ext(oMyDB:TxDB; const cAuftNr:String; nNettoBetrag:Double; lSollStunden:Boolean):String;

procedure SumSubGetPosText(    cArtNr       : String;
                               lBrutto      : Boolean;
                               nAddSub      : Double;
                               nNetto       : Double;
                               nBrutto      : Double;
                           var nNetNachlass : Double;
                           var nBrtNachlass : Double;
                           var cText        : String);

function  Auftrag_PositionsInfo(oMyDB:TxDB; const cAufNr:String; lMeldung:Boolean=True):String;
procedure Auftrag_PositionsInfoXLS(oMyDB:TxDB; cSQL:String);
function  Generate_StdAuftrag(oMyDB: TxDB; const cStdNr: String; const cKdNr: string): String;
function  CopyAuftragDB(oMyDB : TxDB; oStdDB : TxDB; cUID : String; cFiliale : String = '') : Boolean;

Beispiel

Nehmen wir an, wir bekommen eine Datei und speichern diese für den Import in der OBS-Verzeichnisstruktur unter \data\Import\ in einem eigenen Verzeichnis AUimp. Die Datei hat folgenden Inhalt:

000=2019-04-11 14:12:53
001=23548641
002=113458
A00=
A01=Ernst Bergau GmbH
A02=
A03=
A04=Am Steinkamp 17
A05=21684
A06=Stade
A07=de
B00=
B01=Ernst Bergau GmbH
B02=
B03=
B04=Am Steinkamp 17
B05=21684
B06=Stade
B07=de
P00=0001/T1XYSW/Toner XY sw/1.00/89.70/0.19
P00=0002/T1XYMG/Toner XY magenta/1.00/106.78/0.19
P00=0003/T1XYCY/Toner XY cyan/1.00/106.78/0.19
P00=0004/T1XYYW/Toner XY yellow/1.00/106.78/0.19
P00=0005/K500P080/Karton Papier 80g 500 Blatt/5.00/8.67/0.19
P00=0006/K500P160/Karton Papier 160g 500 Blatt/1.00/15.36/0.19
S00=468.75
S01=89.06
S03=557.81

Der Inhalt dieser Datei soll als Auftrag im OBS erscheinen. Dafür müssen wir uns zunächst einmal anschauen, welche Daten wir haben. Für unser Beispiel kommen folgende Daten zusammen:

  • 000 bis 002
Kopfdaten mit Auftragsdatum (000), Referenz (001) und Kundennummer (002)
  • A00 bis A07
Anschrift des Auftraggebers mit Anrede (A00), drei Zeilen für den Namen (A01 bis A03), Straße (A04), PLZ (A05), Ort (A06) und Land im Format ISO 3166-1 Alpha-2 (A07)
  • B00 bis B07
Anschrift des Warenempfängers mit Anrede (A00), drei Zeilen für den Namen (A01 bis A03), Straße (A04), PLZ (A05), Ort (A06) und Land im Format ISO 3166-1 Alpha-2 (A07)
  • P00
Jeder Eintrag entspricht einer Position mit den Angaben Positionsnummer, Artikelnummer, Bezeichnung, Menge, Einzelpreis Netto und Steuersatz. Die Angaben sind mit Slash getrennt.
  • S00 bis S02
Summen für Netto (S00), Steuer (S01) und Brutto (S02)

Ein Import könnte wie folgt gestaltet werden: