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, 14: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;