OBS/Makros und Scripting/Allgemeines/Klassen/Vorgänge/Auftrag: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Nimz (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Nimz (Diskussion | Beiträge) |
||
Zeile 108: | Zeile 108: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=Beispiel= | =Beispiel= | ||
Nehmen wir an, wir bekommen eine Datei | 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: