Objekt TKAPOrder
Z K.A.P.
Skočit na navigaciSkočit na vyhledáváníPomocí objektu TKAPOrder lze pracovat s požadavky (čili objednávkami zákazníků). 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 TKAPOrder a v případě, že se objekty již nevyužívají, tak je uvolnit.
Objekt TKAPOrder
TKAPOrder = class property Sklad: word; property Prijem: Boolean; property CisloObjednavky: longint; property Pozadovano: TDateTime; property Zalozeno: TDateTime; property Podnik: byte; property Jmeno: String; property Jmeno2: String; property Ulice: String; property Mesto: String; property Telefon: String; property PSC: String; property ICO: String; property DIC: String; property Radek1: String; property Radek2: String; property Osoba: String; property Uhrada: byte; property Prevedeno: byte; property Doprava: byte; property Zakazka: String; property Vystavil: String; property CelkemBezDPH: Double; property CelkemSDPH : Double; property ProcVykrKc : Double; property ProcVykrytiMj : Double; property Sleva : Double; property MaxDatumDodani: TDateTime; property PocetPalet : Double; property CelkHmotnost : Double; property ExtCisloObj : String; property CasDodani : String; property TypDokladuSkl : byte; property PASIdObj : longint; property IndivCena : String; property PocetTisku : byte; property PocetOprav : byte; property Priznaky : byte; property Mena : String; property Kurz : Double; property Priznaky2 : byte; property Priznaky3 : byte; property MemoA : TStringList; property MemoB : TStringList; property MemoI : TStringList; property LastError: String; constructor Create(AktualizaceCen: Boolean); destructor Destroy; function SetCustomer(ICO: String): Boolean; function LoadOrderHeaderFromDataset(Dataset: TDataset): Boolean; function LoadOrderItemsFromDataset(Dataset: TDataset; var ChybaNaRadku: longint): Boolean; procedure ClearItems; function AddOrderItem(Kod: String; Pocet, PocetBal: Double; AutoPocetBal: Boolean; Cena: Double; Identifikace: String): Boolean; function SaveNewOrder: Boolean; end;
Funkce | Popis |
---|---|
constructor Create(AktualizaceCen: Boolean) | Parametr určuje, zda mají být ceny v objednávce počítány automaticky se zohledněním individuálních cen odběratele nebo budou určeny uživatelským skriptem při přidávání jednotlivých položek. vytvořené objekty nezapomeňte uvolnit pomocí metody Free |
function SetCustomer(ICO: String): Boolean | Podle údaje IČO dohledá zákazníka a naplní hlavičku objednávky podle fakturačního místa z adresy. Pokud odběratel není nalezen, tak je odběratel v objednávce vynulován. Podle zákazníka jsou určeny i individuální ceny pro případ automatické aktualizace cen. Funkce vrací true, pokud je zákazník nalezen. |
function LoadOrderHeaderFromDataset(Dataset: TDataset): Boolean | Funkce načte z tabulky určené parametrem Dataset hlavičku objednávky. Struktura vstupní tabulky (jména polí) musí odpovídat struktuře tabulky SkladOBJ ze skladového programu. Pokud tabulka obsahuje pole MEMOA nebo MEMOB, tak jsou informace z tohoto pole přeneseny do vlastností MemoA, popř. MemoB (typu StringList). Pole EMAIL, RESPPERSON, PHONE, GUID, FAX, MOBILE, CONTACTEMAIL, SENDINFO jsou uložena ve formátu JménoPole=Hodnota do údaje MemoI. Pokud je ve vstupní tabulce definováno pole Mena a toto pole obsahuje cizí měnu, tak je automaticky dohledán v kurzovém lístku kurz a nastaví se příznaky pro používání cizí měny. Při přidávání položek jsou pak ceny uváděny v cizí měně. |
function LoadOrderItemsFromDataset(Dataset: TDataset; var ChybaNaRadku: longint): Boolean | Funkce načte z tabulky určené parametrem Dataset položky objednávky. Jména polí mohou být následující: Autokod nebo GUID (nepovinné jednoznačné označení záznamu), Kod nebo ProductCode (kód zboží z tabulky skladových karet), Pocet nebo Quantity (objednaný počet MJ), BaleniX nebo QuantityP (objednaný počet balení - důležité pro výpočet vázaných obalů; pokud pole není definováno, tak se počet balení určí automaticky), Cena nebo Price (cena bez DPH za MJ; pokud je nastavena automatická aktualizace cen, tak se toto pole ignoruje), Identifik nebo Comment (nepovinné pole, max. 30 znakový komentář k položce). Pokud některá položka objednávky nejde importovat, tak je do údaje CisloRadku uloženo pořadové číslo řádku, kde nastala chyba (od 1). Předchozí řádky zůstávají načteny. |
procedure ClearItems | Tato procedura vymaže interní seznam položek objednávky. |
function AddOrderItem(Kod: String; Pocet, PocetBal: Double; AutoPocetBal: Boolean; Cena: Double; Identifikace: String): Boolean | Funkce přidá jednu položku objednávky. Krta určená kódem zboží musí existovat v seznamu skladových karet, počet musí být nenulový. Pokud je nastavena automatická aktualizace cen, tak se parametr Cena ignoruje a cena je určena automaticky programem se zohledněním individuální ceny odběratele. Pokud je parametr AutoPocetBal nastaven na true, tak se parametr PocetBal ignouje a počet balení je určen automaticky. |
function SaveNewOrder: Boolean | Funkce uloží hlavičku objednávky (přidělí jí číslo dle číselné řady požadavků), položky a poznámky uložené v MemoA, memoB a MemoI. Pokud je vrácena hodnota true, tak je objednávka uložena do databáze. Může se ale stát, že se uloží objednávka s položkami, ale poznámky se nepodaří uložit (podrobnosti je v tomto případě možné zjistit z pole LastError). Pokud je vrácena hodnota false, tak se objednávku nepovedlo uložit (a není uložena ani hlavička, ani položky) |