Objekt TKAPOrder: Porovnání verzí
Z K.A.P.
Skočit na navigaciSkočit na vyhledávání (TKAPOrderItem) |
|||
Řádek 87: | Řádek 87: | ||
|''function SaveOrder: 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) | |''function SaveOrder: 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) | ||
|} | |} | ||
+ | |||
+ | ===Objekt TKAPOrderItem === | ||
+ | |||
+ | TKAPOrderItem = class | ||
+ | constructor Create; {objekt není možné přímo vytvářet - k objektu se lze dostat pomocí TKAPOrder.Items[Index] } | ||
+ | Property ProductCode: string; {Kód zboží} | ||
+ | Property Quantity: Double; {Počet MJ} | ||
+ | Property Price: Double; {Cena za MJ bez DPH} | ||
+ | Property PriceFC: Double; {Cena v cizí měně - jen u objednávek v cizí měně} | ||
+ | Property QuantityPkg: Double; {Počet balení pro vázané obaly} | ||
+ | Property Comment: string; {Identifikace nebo komentář} | ||
+ | Property PASIdPol: longint; {Externí číslo položky} | ||
+ | Property PPrice: Double; {Jen pro čtení - akt.nákupní cena v době objednání} | ||
+ | Property Flags: word; {jen pro čtení - příznaky položky} | ||
+ | end; |
Verze z 15. 2. 2015, 13:34
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; {obsahuje popis poslední nahlášené chyby} property Items(Index: integer): TKAPOrderItem; 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; procedure DeleteItem(Index: integer); function ItemsCount: integer; function AddOrderItem(Kod: String; Pocet, PocetBal: Double; AutoPocetBal: Boolean; Cena: Double; Identifikace: String): Boolean; function SaveOrder: 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 seznam položek objednávky. |
procedure DeleteItem(Index: integer) | Tato procedura vymaže jednu položku objednávky (číslováno od 0). |
function ItemsCount: integer | Funkce vrací počet položek objednávky. |
property Items(Index: integer): TKAPOrderItem | Funkce vrací objekt umožňující číst a měnit hodnoty jedné položky 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 SaveOrder: 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) |
Objekt TKAPOrderItem
TKAPOrderItem = class constructor Create; {objekt není možné přímo vytvářet - k objektu se lze dostat pomocí TKAPOrder.Items[Index] } Property ProductCode: string; {Kód zboží} Property Quantity: Double; {Počet MJ} Property Price: Double; {Cena za MJ bez DPH} Property PriceFC: Double; {Cena v cizí měně - jen u objednávek v cizí měně} Property QuantityPkg: Double; {Počet balení pro vázané obaly} Property Comment: string; {Identifikace nebo komentář} Property PASIdPol: longint; {Externí číslo položky} Property PPrice: Double; {Jen pro čtení - akt.nákupní cena v době objednání} Property Flags: word; {jen pro čtení - příznaky položky} end;