Objekt TKAPDocument
Z K.A.P.
Pomocí objektu TKAPDocument lze ve skriptovacím programovacím jazyku pracovat s příjmovými i dodacími doklady. Objekt je dostupný pouze ve skladovém programu. Při vytvoření nové instance objektu se otevřou tabulky SKLADKAR, SKLADZAS a MEMO a pomocí těchto tabulek pak program zjišťuje požadované informace. Doporučujeme proto nevytvářet současně mnoho instancí třídy TKAPDocument a v případě, že se objekty již nevyužívají, tak je uvolnit.
Objekt TKAPDocument
TKAPDocument = class
property Sklad: word; {doklady lze evidovat pouze v aktuálním skladu; načíst lze ale i doklady z jiných skladů}
property Prijem: Boolean; {vlastnosti Prijem a Typ dokladu jsou pouze pro čtení - lze je nastavit pomocí SetDocType}
property Rok : integer; { Vlastnost Rok odpovídá roku z data odeslání dokladu }
property TypDokladu : byte;
property CisloDokladu: longint;
property Vaha: byte; {pouze pro čtení}
property UcetniMesic: byte;
property DatumOdeslano: TDateTime;
property Jmeno: String;
property Jmeno2: String;
property Ulice: String;
property Mesto: String;
property PSC: String;
property Ucet: String;
property Banka: String;
property KonstantniSymbol: String;
property VariabilniSymbol: String;
property SpecifickySymbol: String;
property CisloDL: String;
property CisloObjednavky: String;
property DatumObjednavky: TDateTime;
property DatumPrijato: TDateTime;
property DatumZaplaceno: TDateTime; {Vlastnosti DatumZaplaceno a Zaplaceno se aktualizují pomocí AddPayment}
property Zadano: TDateTime; {pouze pro čtení}
property DatumZdanPlneni: TDateTime;
property Priznaky : word;
property Uhrada : byte;
property PocetTisku : byte; {pouze pro čtení}
property PocetOprav : byte; {pouze pro čtení}
property FaktBankUcet : byte;
property Splatnost : word;
property CisloBankVypisu: word;
property Stredisko : word;
property Podnik : byte;
property ICO: String;
property DIC: String;
property Zakazka: String;
property Vystavil: String;
property Celkem: Double; {pouze pro čtení}
property Zaplaceno: Double; {Vlastnosti DatumZaplaceno a Zaplaceno se aktualizují pomocí AddPayment}
property Mena: String;
property Kurz: Double;
property Sleva: Double;
property ProcPenale: Double;
property PocetPalet : Double;
property CasZadano : TDateTime; {pouze pro čtení}
property PosledniZmena : TDateTime; {pouze pro čtení}
property Preprava : String;
property Poznamka : String;
property PASIdObj : longint;
property Bonus : Double;
property ExtID : String;
property IndivCena : String;
property ID : String;
property Vyskladnil : String;
property StavExpedice : byte;
property DatExpedice : TDateTime;
property TypDopravy : byte;
property Priznaky2 : longint;
property Priznaky3 : word;
property CenovePasmo : byte {TTypCeny};
property DocType: TKAPDocType; {pouze pro čtení - odkazuje na automaticky vytvořený objekt popisující typ dokladu}
property Memo1 : TStringList;
property Memo2 : TStringList;
property MemoExp : TStringList;
property LastError: String; {pouze pro čtení}
property RaiseExcept: Boolean; {true=při výskytu chyby se vyvolá výjimka; false=chyby se zapisují jen do LastError (výchozí) }
property IgnoreRights : Boolean; {určuje, zda jsou při evidování dokladu ignorována některá omezení daná přístupovými právy}
property AutoNumber : Boolean; {automatické číslování dokladu}
property UpdatePrices : Boolean; {automatická aktualizace cen při přidání položky pomocí AddDocItem}
property DeliveryNo : word; { číslo dodávky pro nové operace }
property DeliveryDate : TDateTime; { datum dodávky pro nové operace }
property AutoDeliveryNo: Boolean; { určuje, zda číslo dodávky bude určeno automaticky nebo na základě vlastností DeliveryNo a DeliveryDate }
property Items[Index: integer]: TKAPDocItem; {pole objektů zpřístupňující jednotlivé operace dokladu}
constructor Create(UpdatePrices: Boolean);
destructor Destroy;
procedure ClearLastError;
function InitNewDocument(Prijem: Boolean; TypDokladu: byte): Boolean;
function SetDocType(Prijem: Boolean; TypDokladu: byte): Boolean;
function SetPartner(ICO: String): Boolean;
function LoadDocHeaderFromDataset(Dataset: TDataset): Boolean;
function LoadDocItemsFromDataset(Dataset: TDataset; var ErrorOnRow: longint): Boolean;
procedure AddPayment(PaymentDate: TDateTime; Payment : Double);
procedure ClearItems;
procedure DeleteItem(Index: longint);
function ItemsCount: longint;
function AddDocItem(ProductCode: string; Quantity, Price, VATtotal: Double): Boolean;
function LoadDocumentByDocNo(Sklad: word; Prijem: Boolean; Rok : Word; TypDokladu : byte;
CisloDokladu: longint; LoadItems: Boolean): Boolean;
function GetCPYIndexesFromExchangeFile(FileName, Fields: String; GetCPYDoc, GetCPYReadedDoc: Boolean): TClientDataset;
function LoadDocumentFromExchangeFile(FileName, ProtocolFileName: String; IndexCPY: longint;
ReadDocHeader, ReadDocMemo1, ReadBarCodes, ReadNewProducts, UpdateProducts, UpdatePurchasePrices, DeleteCPY: Boolean; LogText: String): Boolean;
function SaveDocumentToExchangeFile(FileName: String;
SaveRecommendedPrices, SaveBarCodes, SaveLocations, SaveDocMemo1 : Boolean; LogText: String) : longint;
function SaveDocumentHeaderToClientDataset(Fields: String): TDataset; {vrací objekt TClientDataset}
function CheckItemsBeforeSave(var ErrItemNo: longint): Boolean;
function SaveDocument: Boolean;
end;