B2B exporty a importy mezi systémy ABRA Gen - parametry driverů, podmínky importu, struktura XML
V této kap. jsou uvedeny podrobnější informace k exportovaným souborům a k importu jednotlivých dat.
Na straně exportu vznikají XML soubory pod názvem sestavovaným následovně:
Výchozí pojmenování vyexportovaného souboru:
'AbraGen_B2B_' + zkratka dokl. + '-' + číslo dokl. + '-' + období dokl. + '.XML'
Pro export FV: AbraGen_B2B_FV-2356-2008.XML
Pro export ZLV: AbraGen_B2B_ZLV-12-2008.XML
Struktura XML (zjednodušeně):
<ABRADocuments>
<ABRADocument doctype="Invoice" version="1" id="1000000101" docname="FV-1/2008">
<tag1>..</tag1>
...
<tagN>..</tagN>
<Rows>
<Row>
<rowtag1>...</rowtag1>
...
<rowtagN>...</rowtagN>
</Row>
...
</Rows>
</ABRADocument>
<ABRADocuments>
Tag <ABRADocument> XML souboru obsahuje typicky tyto atributy:
- doctype - typ dokladu
- version - číslo verze exportu (slouží k identifikaci verze struktury, aby bylo možné importovat i soubory vzniklé v případných starších verzích exportu)
- id - OID exportovaného dokladu
- docname - DisplayName exportovaného dokladu
Na straně importu importní driver B2B import dokladů do faktur přijatých. Dále naleznete:
- Parametry driveru pro import do faktury přijaté
- Podmínky, které musí být splněny, aby bylo možné naimportovat do vytvářeného dokladu
- Struktura XML souboru pro B2B import FV do FP
Parametry driveru pro import do faktury přijaté:
Import si nejdříve vyžádá doplnění povinných údajů, resp. umožní nastavení parametrů driveru, podrobněji viz obecný popis Funkce B2B import. Výchozí hodnoty těchto položek nastaví podle nastavení parametrů driveru, viz Nastavení ovladače. Použité hodnoty se v případě úspěšného importu poté zapamatují na uživatele a předvyplní se pro další použití.
Příklad parametrů, které lze nastavit pro importní ovladač Import do faktur přijatých
Název | Popis |
---|---|
Cesta k importním souborům | Cesta, kde jsou uloženy soubory, z nich se bude vybírat soubor k importu. Povinná položka. |
Po importu provést akci | Možnost nastavit, co se má stát po provedení B2B importu: zpracovaný soubor lze v daném místě ponechat, lze jej vymazat, zkopírovat či přesunout do jiné složky. |
Cesta pro ukládání zpracovaných souborů | Položku je nutné zadat, pokud je v předchozí položce nastaveno kopírování či přesun zpracovaného souboru. |
Ukládat autora importovaného dokladu |
Možnost nastavit, zda se má z importovaného XML souboru převzít i osoba, která jej vystavila. Je-li zatrženo, kontroluje se, zda je autor dokumentu (tag <Author>) evidován v Adresáři osob. Kontroluje se shoda položek Příjmení a Jméno. Pokud není taková osoba dohledána, pak se automaticky založí a připojí se k firmě evidované v adresáři firem, která je uvedená jako dodavatel v XML souboru (tag <Supplier>). Osoba se pouze uloží do adresáře osob, na vystavovaný doklad se automaticky z adresáře osob nevybere. Vybrat ji musíte na daný doklad ručně v položce Osoba na záložce Firma vystavovaného dokladu. |
Středisko | Středisko pro předvyplnění do řádků vytvářeného dokladu. Zadáte kód střediska nebo vyberete z číselníku středisek. (Který údaj se má v položce zadávat resp. zobrazovat, lze nastavit.) Povinná položka. Bez něj nelze řádky naimportovat (nelze samozřejmě použít střediska z importovaného dokladu, jelikož dodavatel může mít úplně jiná střediska). |
Zakázka | Zakázka pro předvyplnění do řádků vytvářeného dokladu. Zadáte kód zakázky nebo vyberete z číselníku zakázek. (Který údaj se má v položce zadávat resp. zobrazovat, lze nastavit.) Zda je položka při importu k dispozici a zda je povinná, závisí na stavu parametru Používání zakázek ve Firemních údajích. Pokud je povinná, nelze bez ní řádky naimportovat (nelze samozřejmě použít zakázky z importovaného dokladu, jelikož dodavatel může mít úplně jiné zakázky nebo je nemusí mít vůbec). |
Obchodní případ | Totéž jako položka Zakázka, jen zde se jedná o Obchodní případ. |
Projekt | Totéž jako položka Zakázka, jen zde se jedná o Projekt. |
Poté se pokusí naimportovat data z vybraného souboru do vytvářeného dokladu. Nejdříve se otestuje, zda jde o podporovanou strukturu a zda je doklad skutečně určen pro daného příjemce (firmu vlastnící systém ABRA Gen) a zda jsou splněny další podmínky. Kontroly se provádí přes více položek.
Podmínky, které musí být splněny, aby bylo možné naimportovat do vytvářeného dokladu:
- Firma uvedená jako odběratel v XML souboru (tag <Customer>) musí být shodná s firmou uživatele, tj. s firmou uvedenou ve Firemních nastaveních. Jinak nelze v importu pokračovat. Kontroluje se shoda položek Název, IČO, DIČ.
- V každém exportu je příznak, zda firma, která provedla export, je plátce nebo neplátce. Viz položka Plátce DPH ve firemních údajích. Platí:
- Export lze provést jen, pokud je firma plátcem DPH
- Import lze provést jen pro firmu, která je plátcem DPH a přijímá data, ve kterých je označeno, že je exportoval také plátce DPH.
- Firma uvedená jako dodavatel v XML souboru (tag <Supplier>) musí být dohledána v adresáři odběratele. Kontroluje se shoda položek Název, IČO, DIČ. Dále musí být u této firmy dohledáno:
- provozovna s adresou shodnou s adresou uvedenou u dodavatele v XML souboru (tag <Supplier.ResidenceAddress>). Kontroluje se shoda položek: Ulice, Město, PSČ, Kód země v údajích provozoven evidovaných k dané firmě. (Tagy <Street>, <City>, <PostCode>, <CountryCode>).
- bankovní účet shodný s účtem uvedeným v XML souboru (tag <FirmBankAccount>). Kontroluje se shoda položek: Číslo účtu v údajích bankovních účtů evidovaných k dané firmě.
Pokud se při importu vyskytnou nějaké chyby, import vyvolá agendu Editoru a otevře ji "přes" agendu, odkud byl B2B import vyvolán. V editoru je pak založena editace nového souboru, v němž je pak zobrazena výsledná informace o chybách při importu. Soubor můžete uložit, příp. ukončit jeho editaci bez uložení. K dispozici jsou všechny funkce agendy Editor. Pokud se jedná o chybu, kdy se ve vašich číselnících nepodařilo dohledat údaj uvedený v importovaném dokladu a kvůli tomu není možné příslušnou položku na vytvářeném dokladu naplnit, pak požadované údaje doplňte a akci zopakujte. Po zavření takto otevřené agendy Editoru se program vrátí do agendy, odkud byl B2B import vyvolán.
Příklady chyb a chybových hlášení, kvůli kterým nelze doklad naimportovat do vytvářeného dokladu:
- Importovaný doklad není určen pro firmu ALFA. Firma "ALBUS" uvedená na importovaném dokladu není shodná s firmou "ALFA", která je nastavena ve firemních údajích systému ABRA.
- V adresáři se nepodařilo dohledat firmu "Název: ABC IČO: 36579052 DIČ: CZ36579052" uvedenou na importovaném dokladu FV-1/2008.
- U firmy "00002 ABC" se nepodařilo dohledat provozovnu "Ulice: Na Valentince 1 Město: Praha 5 PSČ: 150 00" Země:"CZ" uvedenou na importovaném dokladu FV-1/2008.
- U firmy "ABC" se nepodařilo dohledat bankovní účet "12345678910/2400" uvedený na importovaném dokladu FV-1/2008.
Pro tento import mj. platí:
- Importují se pouze řádky typu 1,2,3 (čistě textové řádky typu 0 se ignorují).
- U exportovaných řádků typu 3 se podle údajů exportované skladové karty (tag <Commodity>) pokusí na importní straně dohledat odpovídající skl. kartu, sestrojit dle ní text do řádku dokladu a příp. o daného dodavatele zaktualizovat seznam dodavatelů dané skladové karty. Podrobněji viz pravidla dohledání skl. karet na importní straně v popisu tagu <Commodity> importu FP do FV.
Struktura XML souboru pro B2B import FV do FP
Popis je platný k v.9.02 (pokud jsou ve vaší verzi odlišnosti, které nejsou bez dokumentace srozumitelné, či pokud máte další nejasnosti ohledně významu tagů, kontaktujte servisní oddělení výrobce).
Tag <ABRADocument> XML souboru obsahuje atributy s tímto významem:
- doctype "Invoice"
- version - číslo verze exportu (slouží k identifikaci verze struktury, aby bylo možné importovat i soubory vzniklé v případných starších verzích exportu)
- id - OID exportované FV (z formálních důvodů)
- docname - DisplayName exportované FV
Další XML tagy (XML elementy) | Cílová položka (FP) | Zdrojová data (FV) | ||||||
---|---|---|---|---|---|---|---|---|
Supplier |
Firm_ID. Dohledá se podle:jména, IČO, DIČ, Adresy Provozovnu dodavatele zkusí najít podle údajů dodavatele v XML tagu Supplier. Nejdříve se zkusí dohledat provozovna podle jména dodavatele a pokud se to nepovede, tak podle adresy dodavatele (XML tag Supplier.ResideceAddress). |
|||||||
Supplier.VatPayor | Příznak, zda je vlastní firma plátce DPH. | |||||||
Supplier.Name | Název vlastní firmy | |||||||
Supplier.OrgIdentNumber | Vlastní IČO | |||||||
Supplier.VATOrgIdentNumber | Vlastní DIČ | |||||||
Supplier.ResidenceAddress | ||||||||
Supplier.ResidenceAddress.Street | Ulice ze sídla vlastní firmy | |||||||
Supplier.ResidenceAddress.City | Město ze sídla vlastní firmy | |||||||
Supplier.ResidenceAddress.PostCode | PSČ ze sídla vlastní firmy | |||||||
Supplier.ResidenceAddress.CountryCode | Kód země sídla vlastní firmy | |||||||
Customer | Pro kontrolu, zda je import opravdu určen pro tuto firmu. |
|||||||
Customer.Name | ||||||||
Customer.OrgIdentNumber | Firm_ID.OrgIdentNumber | |||||||
Customer.VATOrgIdentNumber | Firm_ID.VATOrgIdentNumber | |||||||
Customer.ResidenceAddress | ||||||||
Customer.ResidenceAddress.Street | Firm_ID.ResidenceAddress_ID.Street | |||||||
Customer.ResidenceAddress.City | Firm_ID.ResidenceAddress_ID.City | |||||||
Customer.ResidenceAddress.PostCode | Firm_ID.ResidenceAddress_ID.PostCode | |||||||
Customer.ResidenceAddress.CountryCode | Firm_ID.ResidenceAddress_ID.CountryCode | |||||||
Description | Description | Description | ||||||
CountryCode | Country_ID - dohledá se ID podle ISO kódu země | Země lokální firmy | ||||||
CurrencyCode |
Currency_ID - dohledá se ID podle ISO kódu měny CurrRate, RefCurrRate - doplní se aktuální kurz k měně |
Currency_ID.Code | ||||||
VATDocument | VATDocument | VATDocument. Zda se jedná o doklad s DPH. | ||||||
FirmBankAccount | FirmBankAccount_ID - dohledá se ID podle čísla účtu | BankAccount_ID.BankAccount | ||||||
Amount | Na importní straně se pro import do celk. ceny nevyužívá. Celková cena FP se napočte z cen z řádků. | Celková cena s daní. Vyplývá z řádků. (Pokud byly na FV slevy, jedná se o cenu již slevenou.) | ||||||
AmountWithoutVAT | Na importní straně se pro import do celk. ceny nevyužívá. Celková cena FP bez daně se napočte z cen bez daně z řádků. | Celková cena bez daně. Vyplývá z řádků. (Pokud byly na FV slevy, jedná se o cenu již slevenou.) | ||||||
DueDate | DueDate | DueDate | ||||||
VATDate | VATDate | VATDate | ||||||
ConstSymbol | ConstSymbol_ID - dohledá se ID podle ConstSymbol | ConstSymbol_ID.Code | ||||||
ExternalNumber | ExternalNumber | DisplayName | ||||||
VarSymbol | VarSymbol | VarSymbol | ||||||
RoundingAmount | RoundingAmount | RoundingAmount | ||||||
Author | Dohledá se, případně založí osoba k firmě protistrany, viz parametry importu. | CreatedBy_ID.Name. Např. Petr Novák. |
||||||
TradeType | TradeType | TradeType | ||||||
VATCountryCode | VATCountry_ID - dohledá se ID podle kódu země DPH | VATCountry_ID - rozvoj | ||||||
PricesWithVAT | DataEntryKind | PricesWithVAT | ||||||
IntrastatDeliveryTerm | IntrastatDeliveryTerm_ID | |||||||
IntrastatTransactionType | IntrastatTransactionType_ID | |||||||
IntrastatTransportationType | IntrastatTransportationType_ID | |||||||
IntrastatCompleteKind | IntrastatCompleteKind | |||||||
TransportationType | TransportationType_ID | |||||||
Rows | Naplní se kolekce Rows z dat obsahu tohoto tagu | Rows | ||||||
Row | Cílová položka (řádek FP): | Zdrojová data (řádek FV): | ||||||
PosIndex | Pořadí řádku. PosIndex | |||||||
RowType | Přebírají se pouze typy 1,2,3. Typ 0 (Jen text nemá v FP smysl, ani podporu). | Typ řádku. RowType | ||||||
Text | Text | |||||||
Commodity | ||||||||
Commodity.EAN | Údaje, podle nichž se pokusí dohledat sklad. karty na importní straně. |
Nejdříve se systém pokusí dohledat skladové karty. Pravidla dohledání skl. karet na importní straně: Hledá v seznamu sklad. karet na importní straně vyhovující kartu podle položek EAN, Kód a Název skl. karty a Ext.název a Ext.kód v seznamech jejich dodavatelů a to v tomto pořadí:
Pokud odpovídající kartu najde nebo pokud je odpovídající karta přiřazena ručně, pak z jejích údajů Kód a Název sestrojí text do řádku vystavovaného dokladu. (Pokud ji nenajde, zůstane text řádku prázdný.) Pokud dohledaná sklad. karta v seznamu svých dodavatelů dosud nemá záznam pro daného dodavatele a jednotku, pod kterou dodavatel dodává (tj. jednotku z importovaného souboru), pak jej automaticky založí (a to okamžitě, nečeká na uložení editovaného dokladu). Údaj Ext. kód doplní z <Commodity.SupplierCode> a Ext. název z <Commodity.Name>. Tj. zaktualizuje o daného dodavatele seznam dodavatelů dané skladové karty. Pokud jednotka, pod kterou dodavatel kartu dodává (s danou zkratkou a vztahem) není v seznamu jednotek dané skl. karty uvedena, automaticky se na kartě založí. To je nutné, aby bylo možné záznam dodavatele založit pro snazší dohledávání skl.karty při dalším importu. Pokud se však karta dohledala podle některého z výše uvedených kritérií, kde vstupuje do hry jednotka (tj. podle EAN jednotky nebo podle záznamu dodavatele pro nějakou jednotku), ale jednotky měly jinou zkratku, může to vést k založení další jednotky (což lze na importní straně považovat za nežádoucí efekt, i když drobný.). Objasníme na příkladu: Na straně exportu pro firmu ABC nechť je jednotka "bal" se vztahem 5 a EAN=123456789. Na straně importu nechť je skl.karta, která má jednotku se zkratkou "balík", vztahem 5 a EAN=123456789. Karta se podle EAN jednotky "balík" dohledá. Na kartě se založí záznam dodavatele ABC a to pro jednotku "bal". Jelikož ale tato jednotka nebyla v seznamu jednotek zatím uvedena, automaticky se založí. Na straně exportu pro firmu ABC nechť je jednotka "bal" se vztahem 5, bez EAN, ale s dodavatelským kódem např. "01x" (tag <Commodity.SupplierCode>). Na straně importu nechť je skl.karta, která má v seznamu dodavatelů záznam pro firmu ABC s jednotkou se zkratkou "balík", vztahem 5 a Ex. kódem 01x. Karta se podle Ext. kódu dohledá (i když to bylo dle záznamu pro jednotku s jinou zkratkou). Na kartě se založí záznam dodavatele ABC a to pro jednotku "bal". Jelikož ale tato jednotka nebyla v seznamu jednotek zatím uvedena, automaticky se založí. Srovnej s B2B importem do dodavatelského ceníku, kde k podobnému jevu nedochází. |
Údaje o exportovaných skladových kartách (skl. položkách) pro dohledání skladových karet na importní straně. |
StoreCard_ID.EAN. Exportuje EAN jednotky, |
||||
Commodity.SupplierCode | StoreCard_ID.Code | |||||||
Commodity.Name | StoreCard_ID.Name | |||||||
Commodity.ForeignName | StoreCard_ID.ForeignName | |||||||
Commodity.CustomerCode | V seznamu odběratelů dané skladové karty se pokusí dohledat kód, který pro danou skladovou kartu používá daný odběratel (položka Ext.kód v seznamu odběratelů dané skladové karty). | |||||||
UnitRate | - | Na importní straně se u FP nevyužívají. Informace o množství a jednotkách se u FP neevidují. Do řádků se importují celkové řádkové ceny po případných slevách, viz tag <TAmountWithoutVAT>. | UnitRate | |||||
Quantity | Quantity | |||||||
QUnit | QUnit | |||||||
UnitPrice | - |
UnitPrice. Jednotková cena na řádku (neslevená, tj. před uplatněním slev, pokud nějaké slevy byly na FV zadány). |
||||||
TotalPrice | - |
TotalPrice. Celková cena na řádku (neslevená, tj. před uplatněním slev, pokud nějaké slevy byly na FV zadány). |
||||||
TAmountWithoutVAT | TAmountWithoutVAT |
TAmountWithoutVAT Celková cena na řádku bez daně (slevená, tj. po uplatnění slev, pokud nějaké slevy byly na FV zadány). |
||||||
TAmount | TAmount |
TAmount Celková cena na řádku s daní (slevená, tj. po uplatnění slev, pokud nějaké slevy byly na FV zadány). |
||||||
VATRate | VATRate | VATRate | ||||||
DealerDiscount | - | Na importní straně se nevyužívají. Ceny do řádků se importují již slevené, viz tag <TAmountWithoutVAT>. | DealerDiscount. Procento dealerské slevy. | |||||
QuantityDiscount | QuantityDiscount. Procento kusové slevy. | |||||||
RowDiscount | RowDiscount. Procento řádkové slevy. | |||||||
VATAttributes | VATindex_ID- dohledá se podle atributů, pokud je jich víc, použije se výchozí | |||||||
VATAttributes.Direction | Hodnoty: 0 - Bez ohledu 1 - vstup DPH 2 - výstup DPH |
|||||||
VATAttributes.Type | Hodnoty: 0 - Tuzemský 1 - Jiný stát EU 2 - Mimo EU |
|||||||
VATAttributes.ForInverseDocuments | Hodnoty: 0 - Ano 1 - Ne |
|||||||
ToIntrastat | ToIntrastat | |||||||
IntrastatRegionCode | IntrastatRegion_ID.Code | |||||||
IntrastatTransport |
IntrastatTransport |
Na straně importu importní driver B2B import do příjemky.
Parametry driveru pro B2B import do PR jsou obdobné jako u B2B importu FV do FP, navíc je zde pouze následující položka:
Název | Popis |
---|---|
Sklad | Sklad pro předvyplnění do řádků vytvářeného dokladu. Zadáte kód skladu nebo vyberete z číselníku skladů. (Který údaj se má v položce zadávat resp. zobrazovat, lze nastavit.) Povinná položka. Bez něj nelze řádky naimportovat (nelze samozřejmě použít sklady z importovaného dokladu, jelikož dodavatel může mít úplně jiné sklady). |
Podmínky pro tento import - shodné jako u B2B importu FV do FP, s tím rozdílem, že zde platí:
- Importují se pouze řádky typu 3 (ostatní se ignorují, pro PR nemají význam).
Importovaný DL informaci o ceně nemá. Cena se však v řádku PR předvyplní standardním způsobem podle pravidel popsaných u položky Jedn. cena v řádku PR. Výhodou ale je, že pokud jste před importem DL do PR již provedli i import.odpovídající FV do FP, budete již mít zaktualizován i seznam dodavatelů a odpovídající cenu v něm uvedenu, jelikož daný import seznam dodavatelů aktualizuje. Viz výše podmínky B2B importu FV do FP. Tudíž se do PR předvyplní právě cena z tohoto dodavatele.
Pro tento import mj. platí:
- U exportovaných řádků typu 3 se podle údajů exportované skladové karty (tag <Commodity>) pokusí na importní straně dohledat odpovídající skl. kartu a příp. zaktualizovat seznam dodavatelů dané skladové karty. Podrobněji viz popis tagu <Commodity> importu DL do PR.
Struktura XML souboru pro B2B import DL do PR
Popis je platný k v.9.02 (pokud jsou ve vaší verzi odlišnosti, které nejsou bez dokumentace srozumitelné, či pokud máte další nejasnosti ohledně významu tagů, kontaktujte servisní oddělení výrobce).
Tag <ABRADocument> XML souboru obsahuje atributy s tímto významem:
- doctype "BillOfDelivery"
- version - číslo verze exportu (slouží k identifikaci verze struktury, aby bylo možné importovat i soubory vzniklé v případných starších verzích exportu)
- id - OID exportovaného DL (z formálních důvodů)
- docname - DisplayName exportovaného DL
Struktura XML je obdobná jako u B2B importu FV do FP, zde s tím rozdílem, že zde nejsou položky, které nemají pro dodací listy význam (DPH, typ obchodu, ceny apod.):
Další XML tagy | Cílová položka (FP) | Zdrojová data (FV) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Supplier | Shodně jako u importu FV do FP. | ||||||||||||||
Customer | Shodně jako u importu FV do FP. | ||||||||||||||
Description | Description | Description | |||||||||||||
CountryCode | Country_ID - dohledá se ID podle ISO kódu země | Země lokální firmy | |||||||||||||
CurrencyCode | Currency_ID - dohledá se ID podle ISO kódu měny. Zde lokální měna. | Currency_ID.Code | |||||||||||||
Author | Dohledá se, případně založí osoba k firmě protistrany, viz parametry importu | Person_ID.DisplayName |
|||||||||||||
Rows | Naplní se kolekce Rows z dat obsahu tohoto tagu | Rows | |||||||||||||
Row | Cílová položka (řádek PR): | Zdrojová data (řádek DL): | |||||||||||||
PosIndex | PosIndex | ||||||||||||||
RowType | Přebírají se pouze typy 3. Typy 0,1,2 nemají v PR smysl, ani podporu. | RowType | |||||||||||||
Text | Text | ||||||||||||||
Commodity | |||||||||||||||
Commodity.EAN |
Údaje, podle nichž se pokusí na importní straně dohledat odpovídající skl. kartu, sestrojit dle ní text do řádku dokladu a příp. o daného dodavatele zaktualizovat seznam dodavatelů dané skladové karty. Odpovídající skl. kartu hledá podle shodných pravidel, jaká byla uvedena u importu FV do FP. Viz pravidla dohledání skl. karet na importní straně v popisu tagu <Commodity> importu FP do FV. Jelikož však v řádku PR je skl. karta povinný údaj a nemůže zůstat nedohledána, tak pro importované položky, pro které se nepodařilo dohledat automaticky odpovídající skl. karty, které mají shodný některý z hledaných údajů, systém hned v první fázi importu nabídne možnost je dohledat a připojit ručně. Zobrazí se dialogové okno se seznamem skl. karet, které byly použity do importovaného dokladu (v xml souboru). Pro každou je uveden očekávaný EAN (obsah tagu <Commodity.EAN>), Název (obsah tagu <Commodity.Name>), Dodavatelský kód (obsah tagu <Commodity.SupplierCode>. Dále je zde uveden Kód připojené skl. karty z našeho systému ABRA Gen (dohledaná ručně uživatelem). Položka Skl.karta je uživatelsky editovatelná, tj. umožňuje si otevřít číselník skl. karet, dohledat odpovídající skl. kartu:
Příklad dialogového okna v systému ABRA Gen s podvojným účetnictvím se seznamem importovaných položek, pro něž se nepodařilo automaticky dohledat skl. kartu Obsažené položky:
U přiřazené skl. karty zaktualizuje seznam dodavatelů, aby příště došlo k automatickému dohledání dané karty. Pokud takto ručně přiřazená sklad. karta v seznamu svých dodavatelů dosud nemá záznam pro daného dodavatele a jednotku z importovaného dokladu, pak jej automaticky založí (a to okamžitě, nečeká na uložení editovaného dokladu). Údaj Ext. kód doplní z <Commodity.SupplierCode> a Ext. název z <Commodity.Name>. Pokud je daný dodavatel již v seznamu pro danou jednotku uveden, doplní jen jeho položky Ext. kód a Ext. název. Tj. zaktualizuje seznam dodavatelů dané skladové karty. U karet, které se podařilo dohledat automaticky, též aktualizuje seznam dodavatelů a to takto: Pokud dohledaná sklad. karta v seznamu svých dodavatelů dosud nemá záznam pro daného dodavatele a jednotku z importovaného dokladu, pak jej automaticky založí (a to okamžitě, nečeká na uložení editovaného dokladu). Údaj Ext. kód doplní z <Commodity.SupplierCode> a Ext. název z <Commodity.Name>. Na stav zatržítka "Aktualizovat dodavatele" v hlavičce PR u tohoto B2B importu nehledí. Jedná se o jednu z možností, jak přidat dodavatele ke skladové kartě. |
Údaje o skladových položkách pro dohledání skladových položek na importní straně. Viz popis téhož tagu <Commodity> u importu FV do FP. | |||||||||||||
Commodity.CustomerCode | |||||||||||||||
Commodity.SupplierCode | |||||||||||||||
Commodity.Name | |||||||||||||||
Commodity.ForeignName | |||||||||||||||
UnitRate | |||||||||||||||
Quantity | Quantity | ||||||||||||||
QUnit | QUnit |
Na straně importu importní driver B2B import do příjemky.
Parametry driveru pro B2B import do PR jsou obdobné jako u B2B importu FV do FP, s tím rozdílem, že v parametrech driveru se zadává navíc sklad stejně jako při B2B importu DL do PR.
Podmínky pro tento import - obdobné jako u B2B importu FV do FP, s tím rozdílem, že zde platí:
- Importují se pouze řádky typu 3 (ostatní se ignorují, pro PR nemají význam).
Importovaná FV nese informaci o ceně a tuto cenu do řádku PR předvyplní. Krom toho v řádku PR funguje možnost předvyplnění ceny standardním způsobem podle pravidel popsaných u položky Jedn. cena v řádku PR. Výhodou ale je, že import cenu dle importované FV do řádku předvyplní i tehdy, pokud dodavatel uvedený na importované FV zatím v seznamu dodavatelů dané skladové karty uveden není. (Seznam dodavatelů se podle importovaných údajů zaktualizuje standardním způsobem až po uložení PR, pokud je na hlavičce PR zatržena položka Aktualizovat dodavatele.)
Pro tento import mj. platí:
- U exportovaných řádků typu 3 se podle údajů exportované skladové karty (tag <Commodity>) pokusí na importní straně dohledat odpovídající skl. kartu a příp. zaktualizovat seznam dodavatelů dané skladové karty. Podrobněji viz popis tagu <Commodity> importu DL do PR.
U tohoto B2B importu však hledí na stav zatržítka "Aktualizovat dodavatele" v hlavičce PR. Tj. u karet dohledaných automaticky neaktualizuje seznam ihned, ale až při uložení dokladu s ohledem na stav zatržítka.
Stejný transportní formát (struktura XML) jako u B2B importu FV do FP, jen některé položky se na importní straně u PR využijí jiným způsobem než u FP. Zde zmíníme následující:
Row | Cílová položka (řádek PR): | Zdrojová data (řádek FV): | |||
---|---|---|---|---|---|
UnitRate | Využívají se k dohledání odpovídající jednotky sklad. karty na importní straně. Viz též popis Pravidla dohledání skl. karet na importní straně u B2B importu FV do FP. | UnitRate | |||
Quantity | Quantity | ||||
QUnit | QUnit | ||||
UnitPrice |
U PR se nevyužívá. UnitPrice na řádku PR se naplní nulou bez ohledu na to, jaká cena byla uvedena v tagu <UnitPrice>. |
Uvedený postup importu (tj. plnění UnitPrice nulou a import <TAmountWithoutVAT> do TotalPrice je použit proto:
Mějme na exportní straně FV, s 2 sklad. řádky. Na FV je zapnuta hlavičková dotatečná sleva a řádková sleva. Pro jednoduchost nechť jsou obě 10%, DPH sazba taky 10%, na obou řádcích je 1ks s jedn. cenou 1000. |
UnitPrice. Jednotková cena na řádku (neslevená, tj. před uplatněním slev, pokud nějaké slevy byly na FV zadány). |
||
TotalPrice |
U PR se nevyužívá. TotalPrice na řádku PR se naplní jinak, viz dále, bez ohledu na to, jaká cena byla uvedena v tagu <TotalPrice>. |
TotalPrice. Celková cena na řádku (neslevená, tj. před uplatněním slev, pokud nějaké slevy byly na FV zadány). |
|||
TAmountWithoutVAT | TotalPrice. Tj. cena z tagu <TAmountWithoutVAT> se použije pro import do položky C.cena v řádku PR. |
TAmountWithoutVAT Celková cena na řádku bez daně (slevená, tj. po uplatnění slev, pokud nějaké slevy byly na FV zadány). |
|||
TAmount |
U PR se nevyužívá. TAmount na řádku PR dopočte z TotalPrice bez ohledu na to, jaká cena byla uvedena v tagu <TotalPrice>. |
TAmount Celková cena na řádku s daní (slevená, tj. po uplatnění slev, pokud nějaké slevy byly na FV zadány). |
|||
VATRate | - | Na PR se neevidují žádné informace o DPH. | VATRate | ||
DealerDiscount | - | Na importní straně se nevyužívají. Ceny do řádků se importují již slevené, viz tag <TAmountWithoutVAT>. | DealerDiscount. Procento dealerské slevy. | ||
QuantityDiscount | QuantityDiscount. Procento kusové slevy. | ||||
RowDiscount | RowDiscount. Procento řádkové slevy. | ||||
VATAttributes | - | Na PR se neevidují žádné informace o DPH. |
Na straně importu importní driver B2B import do zálohového listu přijatého.
Parametry driveru a podmínky pro tento import jsou obdobné jako u B2B importu FV do FP, s tím rozdílem, že zde platí:
- Importují se i textové řádky typu 0.
Pro tento import mj. platí:
- U exportovaných řádků typu 3 se podle údajů exportované skladové karty (tag <Commodity>) pokusí na importní straně dohledat odpovídající skl. kartu, sestrojit dle ní text do řádku dokladu a příp. o daného dodavatele zaktualizovat seznam dodavatelů dané skladové karty. Podrobněji viz pravidla dohledání skl. karet na importní straně v popisu tagu <Commodity> importu FP do FV.
Struktura XML souboru pro B2B import ZLV do ZLP
Popis je platný k v.9.02 (pokud jsou ve vaší verzi odlišnosti, které nejsou bez dokumentace srozumitelné, či pokud máte další nejasnosti ohledně významu tagů, kontaktujte servisní oddělení výrobce).
Tag <ABRADocument> XML souboru obsahuje atributy s tímto významem:
- doctype "DepositInvoice"
- version - číslo verze exportu (slouží k identifikaci verze struktury, aby bylo možné importovat i soubory vzniklé v případných starších verzích exportu)
- id - OID exportovaného ZLV (z formálních důvodů)
- docname - DisplayName exportovaného ZLV
Struktura XML je obdobná jako u B2B importu FV do FP, zde s tím rozdílem, že zde nejsou položky, které nemají pro zálohové listy význam (DPH, typ obchodu apod.):
Další XML tagy | Cílová položka (ZLP) | Zdrojová data (ZLV) | |||
---|---|---|---|---|---|
Supplier | Shodně jako u importu FV do FP. | ||||
Customer | Shodně jako u importu FV do FP. | ||||
Description | Description | Description | |||
CountryCode | Country_ID - dohledá se ID podle ISO kódu země | Země lokální firmy | |||
CurrencyCode |
Currency_ID - dohledá se ID podle ISO kódu měny CurrRate, RefCurrRate - doplní se aktuální kurz k měně |
Currency_ID.Code | |||
BankAccount | Dohledá se ID účtu firmy podle čísla účtu | BankAccount_ID.BankAccount | |||
ExternalNumber | ExternalNumber | DisplayName | |||
Amount | Vyplývá z řádků. Částka zálohy (řádek typu 4 - záloha). | ||||
DueDate | DueDate | DueDate | |||
VATDate | VATDate | VATDate | |||
ConstSymbol | ConstSymbol_ID - dohledá se ID podle ConstSymbol | ConstSymbol_ID.Code | |||
VarSymbol | VarSymbol | VarSymbol | |||
Author | Dohledá se, případně založí osoba k firmě protistrany, viz parametry importu | Person_ID.DisplayName |
|||
Rows | Naplní se kolekce Rows z dat obsahu tohoto tagu | Rows | |||
Row | Cílová položka (řádek FP): | Zdrojová data (řádek FV): | |||
PosIndex | PosIndex | ||||
RowType | Přebírají se všechny typy. | RowType | |||
Text | Text | ||||
Commodity | |||||
Commodity.EAN | Údaje, podle nichž se pokusí na importní straně dohledat odpovídající skl. kartu, sestrojit dle ní text do řádku dokladu a příp. o daného dodavatele zaktualizovat seznam dodavatelů dané skladové karty. Podrobněji viz pravidla dohledání skl. karet na importní straně v popisu tagu <Commodity> importu FP do FV. | Údaje o skladových položkách pro dohledání skladových položek na importní straně. Viz popis téhož tagu <Commodity> u importu FV do FP. | |||
Commodity.CustomerCode | |||||
Commodity.SupplierCode | |||||
Commodity.Name | |||||
Commodity.ForeignName | |||||
UnitRate | |||||
Quantity | Quantity | ||||
QUnit | QUnit | ||||
TAmount | TAmount | TAmount |
Na straně importu importní driver B2B import do dobropisu faktury přijaté.
Parametry driveru a podmínky pro tento import jsou obdobné jako u B2B importu FV do FP, s tím rozdílem, že zde platí:
- Importují se i textové řádky typu 0.
- Při importu musí být dohledána FP, která je dobropisována. Tj. musí být dohledána FP s externím číslem uvedeným jako externí číslo FP v XML souboru. Hledá se podle údajů VarSymbol a ExternalNumber v subtagu <SourceInvoice>). V případě řádků se bude dohledávat vhodný zdrojový řádek podle údajů v subtagu <SourceInvoiceRow>.
Od dodavatele je exportována FV (Var. symbol=123456, DisplayName=FV-1/2009) ⇒ U odběratele je naimportována B2B importy do FP (Var. symbol=123456, ExternalNumber=FV-1/2009). Pak je u dodavatele vystaven k dané FV dobropis a vyexportován ⇒ U odběratele je při importu hledána FP s var. symbolem 123456 a externím číslem FV-1/2009. Pokud je taková nalezena, pokračuje se v importu, tj. do dobropisu přijatého se naimportují data z dobropisu vydaného od dodavatele.
Pokud je takových nalezeno víc, použije se první nalezený.
Pro tento import mj. platí:
- U exportovaných řádků typu 3 se podle údajů exportované skladové karty (tag <Commodity>) pokusí na importní straně dohledat odpovídající skl. kartu, sestrojit dle ní text do řádku dokladu a příp. o daného dodavatele zaktualizovat seznam dodavatelů dané skladové karty. Podrobněji viz pravidla dohledání skl. karet na importní straně v popisu tagu <Commodity> importu FP do FV.
Struktura XML souboru pro B2B import DV do DP
Popis je platný k v.9.02 (pokud jsou ve vaší verzi odlišnosti, které nejsou bez dokumentace srozumitelné, či pokud máte další nejasnosti ohledně významu tagů, kontaktujte servisní oddělení výrobce).
Tag <ABRADocument> XML souboru obsahuje atributy s tímto významem:
- doctype "CreditNote"
- version - číslo verze exportu (slouží k identifikaci verze struktury, aby bylo možné importovat i soubory vzniklé v případných starších verzích exportu)
- id - OID exportovaného DV (z formálních důvodů)
- docname - DisplayName exportovaného DV
Struktura XML je obdobná jako u B2B importu FV do FP, zde s tím rozdílem, že navíc obsahuje tagy pro dohledání dobropisovaného dokladu <SourceInvoice> a <SourceInvoiceRow>:
Další XML tagy | Cílová položka (DP) | Zdrojová data (DV) | |||||
---|---|---|---|---|---|---|---|
SourceInvoice | |||||||
SourceInvoice.VarSymbol | Source_ID.Varsymbol | ||||||
SourceInvoice.ExternalNumber | Source_ID.DisplayName | ||||||
Rows | Naplní se kolekce Rows z dat obsahu tohoto tagu | Rows | |||||
Row | Cílová položka (řádek FP): | Zdrojová data (řádek FV): | |||||
SourceInvoiceRow | Údaje pro dohledání ID dobropisovaného řádku faktury | PosIndex | |||||
SourceInvoiceRow.Text | RSource_ID.Text | ||||||
SourceInvoiceRow.VATAttributes | |||||||
SourceInvoiceRow.VATAttributes.Direction | Získá se z DPH indexu RSource_ID.VATIndex_ID | ||||||
SourceInvoiceRow.VATAttributes.Type | Získá se z DPH indexu RSource_ID.VATIndex_ID | ||||||
SourceInvoiceRow.VATAttributes.ForInverseDocuments | Získá se z DPH indexu RSource_ID.VATIndex_ID | ||||||
SourceInvoiceRow.TAmount | RSource_ID.TAmount | ||||||
SourceInvoiceRow.TAmountWithoutVAT | RSource_ID.TAmountWithoutVAT | ||||||
SourceInvoiceRow.VATRate | RSource_.ID.VATRate |
Na straně importu importní driver B2B import do daňového zálohového listu přijatého.
Parametry driveru a podmínky pro tento import jsou obdobné jako u importu FV do FP s tím, že zde platí:
- Importují se i textové řádky typu 0.
- Při importu je potřeba dohledat platby k importovanému dokladu DZP. Hledá se pouze mezi zálohovými listy přijatými podle údaje ExternalNumber.
Od dodavatele je exportován ZLV (DisplayName=ZLV-3/2009) ⇒ U odběratele je naimportován B2B importy do ZLP (ExternalNumber=FV-3/2009). Pak je u dodavatele vystaven k danému ZLV daňový zálohový list DZV a vyexportován (export obsahuje mj. i číslo ZLV)⇒ U odběratele je při importu hledán ZLP s externím číslem ZLV-3/2009. Pokud je takový nalezen, pokračuje se v importu, tj. do daň. zálohového listu přijatého se naimportují data z daň. zálohového listu vydaného od dodavatele.
Struktura XML souboru pro B2B import DZV do DZP
Popis je platný k v.9.02 (pokud jsou ve vaší verzi odlišnosti, které nejsou bez dokumentace srozumitelné, či pokud máte další nejasnosti ohledně významu tagů, kontaktujte servisní oddělení výrobce).
Tag <ABRADocument> XML souboru obsahuje atributy s tímto významem:
- doctype "VATDepositInvoice"
- version - číslo verze exportu (slouží k identifikaci verze struktury, aby bylo možné importovat i soubory vzniklé v případných starších verzích exportu)
- id - OID exportovaného DZV (z formálních důvodů)
- docname - DisplayName exportovaného DZV
Struktura XML je obdobná jako u B2B importu FV do FP, zde s tím rozdílem, že zde nejsou položky, které nemají pro daň. zálohové listy význam (variabilní symbol, datum splatnosti apod.) a navíc obsahuje tag pro dohledání zdrojové platby k importovanému dokladu DZP:
Další XML tagy | Cílová položka (DZP) | Zdrojová data (DZV) | ||
---|---|---|---|---|
SourcePayment | ExternalNumber dokladu použitelného jako platba DZP | DisplayName platby DZV. Např. ZLV-1/2009. | ||
Rows | Naplní se kolekce Rows z dat obsahu tohoto tagu | Rows | ||
Row | Cílová položka (řádek FP): | Zdrojová data (řádek FV): | ||
PosIndex | PosIndex | |||
RowType | Přebírají se všechny typy. | RowType | ||
Text | Text | |||
TAmountWithoutVAT | ||||
TAmount | TAmount | TAmount | ||
VATRate |
Na straně importu importní driver B2B import do dobropisu daňového zálohového listu přijatého.
Parametry driveru a podmínky pro tento import jsou obdobné jako u B2B importu DV do DP.
Atribut doctype tagu <ABRADocument> XML souboru má hodnotu "VATCreditNote". Dále XML obsahuje tagy obdobné jako je uvedeno u B2B importu DV do DP. Pro dohledání zdrojového dokladu používá tag <SourceInvoice> (není zde jen SourceInvoice.VarSymbol, jelikož zde nemá význam).
Na straně importu importní driver B2B import do objednávky vydané.
Parametry driveru pro import do OV jsou obdobné jako u B2B importu FV do FP, s tím rozdílem, že v parametrech driveru se zadává navíc sklad stejně jako při B2B importu DL do PR.
Podmínky pro tento import - obdobné jako u B2B importu FV do FP, s tím rozdílem, že zde platí:
- Importují se i textové řádky typu 0.
- Podporován je i import cen, na OV musí být ale zatržena položka S cenami.
Pro tento import mj. platí:
- U exportovaných řádků typu 3 se podle údajů exportované skladové karty (tag <Commodity>) pokusí na importní straně dohledat odpovídající skl. kartu a příp. zaktualizovat seznam dodavatelů dané skladové karty a to stejně jako u importu do PR. Podrobněji viz popis tagu <Commodity> importu DL do PR.
Atribut doctype tagu <ABRADocument> XML souboru má hodnotu "IssuedOffer".
Na straně importu importní driver B2B import do objednávky přijaté.
Parametry driveru pro tento import - obdobné jako u B2B importu FV do FP, s tím rozdílem, že v parametrech driveru jsou zde navíc následující položky:
Název | Popis |
---|---|
Sklad | Význam obdobný jako při B2B importu DL do PR. |
Vyplňovat jednotkovou cenu, pokud byla zadána |
Umožňuje zajistit, aby se na importní straně plnila do řádků nenulová jednotková cena UnitPrice. Defaultně (tj. není-li tento parametr zatržen) se totiž vždy plní nulou (neboli cena uvedená v tagu <UnitPrice> se nijak nevyužívá). V importním xml sice ceny UnitPrice a TotalPrice jsou k dispozici (jsou to ceny, které na řádcích zadal přímo uživatel), ale v nich nejsou zohledněny slevy, rozpouštění DPH apod. Proto naprosto nejsou vhodné pro použití pro import cen do řádků na importní straně a nevyužívají se. Z řádků OV se do řádků PR defaultně importují koncové ceny TAmount, TAmountWithoutVAT, v nichž jsou již zohledněny slevy a jsou zaokrouhleny na 2 desetinná místa. Tento způsob zajistí přenos správných koncových cen. Z těchto koncových cen TAmount, TAmountWithoutVAT by bylo možné jednotkovou cenu přes množství dopočítat, ale nevýhodou je, že může dojít k zaokrouhlovacímu rozdílu (protože množství krát takto dopočtená jednotková cena nemusí dát stejnou celkovou cenu), proto se to defaultně nedělá. Pokud ale uživateli nevyhovuje, že se jednotková cena plní v řádcích PR nulou (a je si vědom uvedené nevýhody), pak může tento parametr zatrhnout. Dále viz popis tagů <UnitPrice> a spol. |
Podmínky pro tento import - obdobné jako u B2B importu FV do FP, s tím rozdílem, že zde platí:
- Importují se i textové řádky typu 0.
Pro tento import mj. platí:
- U exportovaných řádků typu 3 se podle údajů exportované skladové karty (tag <Commodity>) pokusí na importní straně dohledat odpovídající skl. kartu a příp. zaktualizovat seznam odběratelů. Podrobněji viz dále popis tagu <Commodity>.
- Pokud je OV vystavena bez cen (cena na hlavičce OV je nulová), tak se při importu ceny z OV nepřeberou a na vzniklé OP se předvyplní jednotkové ceny tak, jako kdyby se řádky zadaly ručně (tj. výchozí prodejní cenou).
- Pokud je OV vystavena s cenami a má zadány nějaké slevy: Jednotkové ceny (UnitPrice) se exportují bez slev. Tudíž na importní straně se importuje jednotková cena neslevená. (V exportu se v řádku exportuje UnitPrice (neslevená), v hlavičce celková cena (slevená), ale s tou se na importní straně nepracuje.)
Pokud byste chtěli exportovat a importovat ceny slevené, je to technicky možné, pouze by se musela upravit definice B2B exportu.
Struktura XML souboru pro B2B import OV do OP
Popis je platný k v.9.03 (pokud jsou ve vaší verzi odlišnosti, které nejsou bez dokumentace srozumitelné, či pokud máte další nejasnosti ohledně významu tagů, kontaktujte servisní oddělení výrobce).
Tag <ABRADocument> XML souboru obsahuje atributy s tímto významem:
- Atribut doctype tagu <ABRADocument> XML souboru má hodnotu "IssuedOrder".
Další XML tagy | Cílová položka (OP) | Zdrojová data (OP) | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Supplier | Význam jako u B2B importu FV do FP. | ||||||||||||||||||
Customer | |||||||||||||||||||
Description | |||||||||||||||||||
CountryCode | |||||||||||||||||||
CurrencyCode | |||||||||||||||||||
VATDocument | |||||||||||||||||||
PricesWithVAT | |||||||||||||||||||
VATRounding | |||||||||||||||||||
TotalRounding | |||||||||||||||||||
Amount | |||||||||||||||||||
AmountWithoutVAT | |||||||||||||||||||
ExternalNumber | |||||||||||||||||||
RoundingAmount | |||||||||||||||||||
Author | |||||||||||||||||||
TradeType | |||||||||||||||||||
IntrastatDeliveryTerm | |||||||||||||||||||
IntrastatTransactionType | |||||||||||||||||||
IntrastatTransportationType | |||||||||||||||||||
Rows | |||||||||||||||||||
Row | Cílová položka (řádek OP): | Zdrojová data (řádek OV): | |||||||||||||||||
PosIndex | Význam jako u B2B importu FV do FP. | ||||||||||||||||||
RowType | |||||||||||||||||||
Text | |||||||||||||||||||
Commodity | |||||||||||||||||||
Commodity.EAN | Údaje, podle nichž se pokusí dohledat sklad. karty na importní straně. |
Pravidla dohledání skl. karet na importní straně: Hledá v seznamu sklad. karet na importní straně vyhovující kartu podle položek EAN, Kód a Název skl. karty a Ext.název a Ext.kód v seznamech jejích odběratelů a to v tomto pořadí:
Pro importované položky, pro které se nepodařilo dohledat automaticky odpovídající skl. karty, které mají shodný některý z hledaných údajů, systém hned v první fázi importu nabídne možnost je dohledat a připojit ručně. Nicméně v řádku OP není skl. karta povinný údaj a může zůstat nedohledána. Zobrazí se dialogové okno se seznamem skl. karet, které byly použity do importovaného dokladu (v xml souboru). Pro každou je uveden očekávaný EAN (obsah tagu <Commodity.EAN>), očekávaný Název (obsah tagu <Commodity.Name> a očekávaný odběratelský kód (<Commodity.SupplierCode>). Dále je zde možnost nastavit, jak danou kartu importovat a Kód případně připojené skl. karty z našeho systému ABRA Gen (dohledané ručně uživatelem). Položka Skl.karta je uživatelsky editovatelná, tj. umožňuje si otevřít číselník skl. karet, dohledat odpovídající skl. kartu: Příklad dialogového okna v systému ABRA Gen s podvojným účetnictvím se seznamem importovaných položek, pro něž se nepodařilo automaticky dohledat skl. kartu Obsažené položky:
Pokud dohledaná sklad. karta v seznamu svých odběratelů dosud nemá záznam pro daného odběratele, pak jej automaticky založí (a to okamžitě, nečeká na uložení editovaného dokladu). Údaj Ext. kód doplní z <Commodity.SupplierCode> a Ext. název z <Commodity.Name>. Tj. zaktualizuje o daného odběratele seznam odběratelů dané skladové karty. Jedná se o jednu z možností, jak přidat odběratele ke skladové kartě. |
Údaje o exportovaných skladových kartách (skl. položkách) pro dohledání skladových karet na importní straně. |
StoreCard_ID.EAN. Exportuje EAN jednotky, |
|||||||||||||||
Commodity.SupplierCode | StoreCard_ID.Code | ||||||||||||||||||
Commodity.Name | StoreCard_ID.Name | ||||||||||||||||||
Commodity.ForeignName | StoreCard_ID.ForeignName | ||||||||||||||||||
Commodity.CustomerCode |
V seznamu odběratelů dané skladové karty se pokusí dohledat kód, který pro danou skladovou kartu používá daný odběratel (položka Ext.kód v seznamu odběratelů dané skladové karty). |
||||||||||||||||||
UnitRate |
Pokud není v parametrech B2B importu OV do OP zatrženo Vyplňovat jednotkovou cenu, pokud byla zadána, pak je význam a použití těchto tagů obdobný jako u B2B importu FV do PR (tj. UnitPrice se nastavuje na nulu a TotalPrice se nevyužívá), zde jen s následujícím rozdílem: U B2B importu OV do OP záleží na tom, je-li OV vystavená v cenách bez DPH nebo s DPH. UnitPrice je vždy 0 (jako u importu FV do PR), ale TotalPrice je buď plněna z tagu <TAmount> nebo <TAmountWithoutVAT>. Mějme na exportní straně OV, s 2 sklad. řádky. Na OV je zapnuta hlavičková dodatečná sleva a řádková sleva. Pro jednoduchost nechť jsou obě 10%, DPH sazba taky 10%, na obou řádcích je 1ks s jedn. cenou 1000. Pokud je v parametrech B2B importu OV do OP zatrženo Vyplňovat jednotkovou cenu, pokud byla zadána, testuje se, jestli je v importu nenulová jednotková cena <UnitPrice>. Pokud je nenulová (a zatržen zmíněný parametr), má se za to, že uživatel vyžaduje naplnit do importu jednotkovou cenu nenulovou hodnotou. Hodnotu uvedenou přímo v tagu <UnitPrice> však nelze přímo použít (nezohledňuje slevy atd.), proto ji systém dopočítá podělením <TAmount> resp. <TAmountWithoutVAT> množstvím. Z tohoto plyne, že může dojít k zaokrouhlovací chybě, protože množství krát jednotková cena nemusí dát stejnou celkovou cenu. Pokud je jednotková cena nulová, přenáší se celková cena. |
||||||||||||||||||
Quantity | |||||||||||||||||||
QUnit | |||||||||||||||||||
UnitPrice | |||||||||||||||||||
TotalPrice | |||||||||||||||||||
TAmountWithoutVAT | |||||||||||||||||||
TAmount | |||||||||||||||||||
VATRate |
Na straně importu importní driver B2B import do potvrzení dobropisu faktury vydané.
Parametry driveru pro tento import - zde pouze parametry pro zadání cest k souborům, viz popis u importu FV do FP. Ostatní zde nemají význam.
Podmínky pro tento import - obdobné jako u importu FV do FP s tím, že zde platí:
- Neimportují se žádné řádky (nemají pro PDV význam).
- Při importu je potřeba dohledat dobropis faktury vydané (DV) k němuž se má vystavit doklad PDV. Hledá se podle údaje ExternalNumber v importním XML souboru.
Od dodavatele je exportován odběrateli doklad FV. Nechť má DisplayName=FV-11/2009. ⇒ v XML souboru bude tag <ExternalNumber>=FV-1/2009. ⇒ U odběratele je naimportován B2B importy do FP (FP bude mít v položce Externí číslo =FV-11/2009).
Dodavatel vystaví k této FV dobropis. Od dodavatele je tento DV exportován odběrateli. Nechť má DisplayName=DV-1/2009. ⇒ v XML souboru bude tag <ExternalNumber>=DV-1/2009. ⇒ U odběratele je naimportován B2B importy do DP (DP bude mít v položce Externí číslo =DV-1/2009).
Odběratel chce přijetí dobropisu potvrdit. ⇒ Odběratel provede B2B export tohoto DP a pošle dodavateli. ⇒ v XML souboru bude tag <ExternalNumber>=DV-1/2009. ⇒ U odběratele je naimportován B2B importy do PDV. Import se pokusí dohledat dobropis vydaný DV, který má DisplayName =DV-1/2009. Pokud vše proběhne dle popisu výše, pak jej dohledá, dovolí pokračovat v importu a založí k němu doklad PDV.
Struktura XML souboru pro B2B import DP do PDV
Popis je platný k v.9.02 (pokud jsou ve vaší verzi odlišnosti, které nejsou bez dokumentace srozumitelné, či pokud máte další nejasnosti ohledně významu tagů, kontaktujte servisní oddělení výrobce).
Tag <ABRADocument> XML souboru obsahuje atributy s tímto významem:
- doctype "CreditNoteAcknowledgement"
- version - číslo verze exportu (slouží k identifikaci verze struktury, aby bylo možné importovat i soubory vzniklé v případných starších verzích exportu)
- id - OID exportovaného DP (z formálních důvodů)
- docname - DisplayName exportovaného DP
Struktura XML je v tomto případě velmi jednoduchá (tagy Supplier a Customer obdobné jako u ostatních XML, viz výše):
Další XML tagy | Cílová položka (FP) | Zdrojová data (FV) |
---|---|---|
Supplier | Shodně jako u importu FV do FP. | |
Customer | Shodně jako u importu FV do FP. | |
Description | Description | Description |
ExternalNumber | ExternalNumber | DisplayName. DisplayName svázaného dobropisu faktury přijaté. |
Author | Dohledá se, případně založí osoba k firmě protistrany, viz parametry importu | Person_ID.DisplayName |
Jedná se o export cen z ceníků pro vybrané skl. položky určený pro automatické naplnění dodavatelského ceníku na importní straně.
B2B Export ze skl. karet se před exportem zeptá na následující údaje, které jsou pro následný import do dodavatelského ceníku potřeba:
Příklad dialogu zobrazeného v rámci B2B exportu skl. karet do dodavatelského ceníku. ABRA vzhled modrý.
Exportovaná cena:
Cena, která bude do exportního souboru pro danou sklad. kartu vyexportována. Určí se s ohledem na výše zadaná kritéria stejným způsobem, jako se vyčísluje výchozí prodejní cena na doklady. Viz výpočet výchozí prodejní ceny (tj. vezmou se v potaz nastavené platnosti ceníků, aktuální nastavení jejich použití pro firmu resp. pro sklad, jejich priority, případné nastavení tabulek dealerských slev pro určení výchozí definice prodejní ceny atd.), s tím rozdílem, že zde lze nastavit nezohlednění akčních ceníků (viz dále). Dále zde na rozdíl od dokladů platí, že na stanovenou cenu nelze před exportem nijak editovat (jedině až v hotovém vyexportovaném souboru) a že se na ni NIJAK neaplikují případná procenta dealerských, kusových či jiných slev (které se při vystavování dokladů mohou aplikovat podle nastavení použití slev v hlavičce dokladu - viz výpočet výchozí prodejní ceny - Předvyplněná cena a následná aplikace slev).
Aby bylo možno cenu získat tímto způsobem, tedy shodně, jako by byla vyčíslena na expedičních dokladech, je export umístěn v agendě skladových karet, nikoli přímo v seznamu ceníků v agendě Ceníky či v Adresáři firem.
Název | Popis |
---|---|
Firma odběratele | Možnost nastavit, pro jakou firmu se mají ceny exportovat. Tj. ovlivňuje exportovanou cenu. Dále viz tag <Customer>. |
Ceny pro sklad | Možnost nastavit, pro jaký sklad se mají ceny exportovat. Tj. ovlivňuje exportovanou cenu. |
Datum platnosti cen | Datum platnosti cen, které se mají exportovat. Viz platnosti ceníku. |
Kód a název ceníku | Použije se pro vytvoření jména exportního souboru. |
Exportované ceny budou | Volba, zda exportovat ceny za všechny jednotky na kartě nebo jen za hlavní jednotku. |
Exportovat ceny | Volba, zda exportovat cenu s daní či bez daně. Tj. ovlivňuje exportovanou cenu. |
Komentář pro příjemce | Libovolná poznámka pro příjemce. |
Zohlednit platné akční ceníky |
Možnost zatrhnout, zda se při stanovení exportované ceny, mají či nemají zohlednit případné aktuálně platné akční ceníky či nikoli. Jak bylo řečeno výše, při stanovení exportované ceny se postupuje stejně jako při výpočtu výchozí prodejní ceny, do níž se ale běžně berou v potaz i aktuálně platné akční ceníky. To by ale mohlo být pro účely exportu do dodavatelského ceníku nežádoucí. (Akční ceníky jsou obvykle krátkodobé ceníky např. pro víkendové ceny, happyhours apod. Pokud uživatel tyto akční ceníky má, ale pro svého dlouhodobého odběratele je exportovat nechce (např. proto, že prodává jak velkoobchodu, tak maloobchodu, ale pro velkoobchodní odběratele má dlouhodobě platné ceny v běžných cenících), může si zde nastavit export cen bez zohlednění ceníků akčních. |
Tag <ABRADocument> XML souboru obsahuje atributy s tímto významem:
- doctype "PriceList"
- version - číslo verze exportu (slouží k identifikaci verze struktury, aby bylo možné importovat i soubory vzniklé v případných starších verzích exportu)
- docname - Kód + jméno ceníku
Na straně importu importní driver B2B import do dodavatelského ceníku.
Parametry driveru pro tento import - zde pouze parametry pro zadání cest k souborům, viz popis u importu FV do FP. Ostatní zde nemají význam.
Pro tento import mj. platí:
- Podle údajů exportované skladové karty (viz tag <Item>) se pokusí na importní straně dohledat odpovídající skl. kartu (viz položka Skladová karta v řádku dodavatelského ceníku), a příp. o daného dodavatele zaktualizovat seznam dodavatelů dané skladové karty obdobně jako při importu FV do FP. Podrobněji viz pravidla dohledání skl. karet na importní straně v popisu tagu <Commodity> importu FP do FV.
Struktura XML:
Další XML tagy | Cílová položka (dodavatelský ceník) | Zdrojová data (prodejní ceník) | |||
---|---|---|---|---|---|
Supplier |
Shodně jako u importu FV do FP. Viz položka "Firma" v hlavičce dodavatelského ceníku. Tj. z tagu <Supplier> předvyplní do nového dodavatelského ceníku položku Firma (pokud ji v Adresáři na importní straně dohledá). Pokud ji nedohledá, nahlásí chybu obdobně jako u importu FV do FP. |
||||
Customer | Shodně jako u importu FV do FP. Tj. slouží pro kontrolu, zda je import opravdu určen pro tuto firmu. | ||||
Code | Code. Viz položka "Kód" v hlavičce dodavatelského ceníku. | Z parametru Kód ceníku zadaného před exportem. | |||
Name | Name. Viz položka "Název" v hlavičce dodavatelského ceníku. | Z parametru Název ceníku zadaného před exportem. | |||
ValidFromDate | ValidFromDate$DATE. Viz položka "Platný od" v hlavičce dodavatelského ceníku. | Z parametru Datum platnosti cen zadaného před exportem. | |||
CountryCode | Viz položka "Země" v hlavičce dodavatelského ceníku. | Země lok. firmy. | |||
PricesWithVAT | Viz položka "Ceny jsou" v hlavičce dodavatelského ceníku. | Z parametru Exportovat ceny s daní/bez daně zadaného před exportem. | |||
Comment | Viz položka "Poznámka" v hlavičce dodavatelského ceníku. | Z parametru Komentář zadaného před exportem. | |||
Items | Naplní se kolekce položek dodavatelského ceníku z dat obsahu tohoto tagu | ||||
Item | Cílová položka dodavatelského ceníku. | Zdrojová položka - skladová karta. | |||
Code |
Údaje, podle nichž se pokusí na importní straně dohledat odpovídající skl. kartu, sestrojit dle ní text do řádku dokladu a příp. o daného dodavatele zaktualizovat seznam dodavatelů dané skladové karty. Podrobněji viz pravidla dohledání skl. karet na importní straně v popisu tagu <Commodity> importu FP do FV. Zde je oproti chování při importu FP do FV odlišnost v aktualizaci seznamu dodavatelů v tom, pro jakou jednotku se případně založí nový záznam dodavatele. Dodavatelský ceník si totiž "pamatuje" v řádku vztah mezi jednotkou, pod kterou dodavatel dodává (tj. jednotkou z importovaného souboru), a svázanou jednotkou z dohledané sklad. karty. Čili pokud je v tomto případě potřeba založit záznam pro daného dodavatele a jednotku, tento se založí pro dohledanou svázanou jednotku ze skl. karty (nikoli pro jednotku z importního souboru). Tudíž ani není třeba nějaké jednotky k dané skl.kartě automaticky přidávat (jako je tomu právě u importu ála FV do FP). Na straně exportu pro firmu ABC nechť je jednotka "bal" se vztahem 5 a EAN=123456789. Na straně importu nechť je skl.karta, která má jednotku se zkratkou "balík", vztahem 5 a EAN=123456789. Karta se podle EAN jednotky "balík" dohledá. Na kartě se založí záznam dodavatele ABC a to pro jednotku "balík" (pokud tam takový už není). Na straně exportu pro firmu ABC nechť je jednotka "bal" se vztahem 5, bez EAN, ale s dodavatelským kódem např. "01x" (tag <Commodity.SupplierCode>). Na straně importu nechť je skl.karta, která má jednotky "ks" (vztah 1) a "balík" (vztah 5) a v seznamu dodavatelů záznam pro firmu ABC s jednotkou "ks" a Ex. kódem 01x. Karta se podle Ext. kódu dohledá (i když to je dle záznamu pro jednotku s jinou zkratkou a vztahem) a podle vztahu jednotek z importu se dohledá i odpovídající jednotka balík. Na kartě se založí záznam dodavatele ABC a to pro jednotku "balík". Srovnej s B2B importem FV do FP. Pokud se nepodaří dohledat kartu nebo adekvátní jednotku k dané importované položce ceníku, zobrazí se varování, ale ceník uložit lze. Skl. kartu je třeba pak připojit ručně pomocí funkce Připojit z lišty navigátoru. Nemůže už dojít k situaci, že je napojena karta, ale jednotka nikoli. |
Údaje o skladových položkách pro dohledání skladových položek na importní straně. Viz popis téhož tagu <Commodity> u importu FV do FP. | Kód karty | ||
Name | Název karty | ||||
EAN | EAN (příslušný exportované jednotce) | ||||
QUnit | Exportovaná jednotka | ||||
UnitRate | Vztah exportované jednotky k jedné | ||||
PurchasePrice | Vyčíslená cena | ||||
CurrencyCode | Kód měny, ve které je částka uvedena | ||||
VATRate | Sazba DPH z karty zboží | ||||
MinimalQuantity | Nedělitelné množství z jednotky |
Umožní použít funkce ze skriptování, které se mají vykonat pro provedení importu a které lze použít alternativně k dodávaným výše uvedeným driverům.
Driver v execute volá skript, který je nastaven v parametru driveru "Importní skript". Parametry skriptu jsou:
ABusinessObject: INxBusinessObject; {BO k naplnění}
AData: TStream; vlastní data (pokud nebude stream Nil, driver se nebude ptát po vstupním souboru, a data si vezme rovnou z tohoto streamu)
(Návratová hodnota je Boolean, nesoucí informaci, zda se skript povedl či nikoli.)
Druhý skript slouží k editaci parametrů specifických pro dané řešení a je nastaven v parametru driveru "Skript definice parametrů". Tento skript je spouštěn z editačního formuláře parametrů pomocí funkčního tlačítka "Další nastavení". Nebude-li skript zadefinován, nebude zmíněné tlačítko viditelné. Parametry skriptu jsou:
AParams: INxParameters; {parametry driveru}
Přehled parametrů driveru:
- ImportPath - cesta k importním souborům
- ActionAfterPath - cesta pro ukládání zpracovaných souborů
- ActionAfter, ActionAfterPath - co s naimportovaným souborem
- ScriptName - jméno importovacího skriptu
- ParametersEditScript - jméno skriptu pro editaci parametrů
+ další parametry dle definice skriptu
Jak psát a používat skriptovací driver, objasníme na konkrétním příkladu. Příklad uvedený dále představuje XML soubor. Jeho naimportováním do balíčků skriptů vznikne balíček s dvěma knihovnami: Edit a Execute. Parametry importního driveru je pak třeba zadat následovně:
Zadání parametrů pro Skriptovací ovladač
Pokud se u ovladače nastaví parametr "Použít dialog na výběr vstupního souboru" na nezatrženo, zneviditelní se položky určující, jaká akce se má s importním souborem provést po provedeni importu. (Pokud není zatrženo "Použít dialog na výběr vstupního souboru", tak načtení souborů nebo jiné získání importovacích dat musí zajistit samotný importovací skript.)
Příklad, jak psát skript pro Skriptovací ovladač:
Popis je platný k v.9.02. Příklad je jen orientační a má uživatele navést v použití tohoto ovladače. Konkrétní znění skriptu je samozřejmě třeba upravit pro konkrétní verzi a pro požadovaný účel. (Pokud jsou ve vaší verzi odlišnosti, které nejsou bez dokumentace srozumitelné, či pokud máte další nejasnosti ohledně použití, kontaktujte servisní oddělení výrobce).
<ScriptPackageExport>
<Header>
<Name>b2bscript.lib</Name>
<WithoutSources>N</WithoutSources>
<Description>B2B skripty</Description>
<UsageState>2</UsageState>
<RunOrder>0</RunOrder>
<Note>Příklad, jak psát skripty pro skriptovací B2B ovladač.</Note>
</Header>
<Rows>
<Row Position="1">
<ScriptKind>0</ScriptKind>
<ScriptID>Edit</ScriptID>
<ScriptData>
{Příklad, jak lze zadávat parametry ovladače}
function EditParams(AParams: TNxParameters): boolean;
var
ii: integer;
mStr, mS1: string;
NextParamsForm: TForm;
lblParam1: TLabel;
lblParam2: TLabel;
lblParam3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
btnOK: TButton;
btnCancel: TButton;
chkParam4: TCheckBox;
mResult: integer;
begin
Result := False;
NextParamsForm := TForm.Create(nil);
try
lblParam1 := TLabel.Create(NextParamsForm);
lblParam2 := TLabel.Create(NextParamsForm);
lblParam3 := TLabel.Create(NextParamsForm);
Edit1 := TEdit.Create(NextParamsForm);
Edit2 := TEdit.Create(NextParamsForm);
Edit3 := TEdit.Create(NextParamsForm);
btnOK := TButton.Create(NextParamsForm);
btnCancel := TButton.Create(NextParamsForm);
chkParam4 := TCheckBox.Create(NextParamsForm);
with NextParamsForm do
begin
Name := 'NextParamsForm';
Left := 273;
Top := 134;
Width := 500;
Height := 301;
Caption := 'Další parametry';
Color := clBtnFace;
Font.Color := clWindowText;
Font.Height := -11;
Font.Name := 'MS Sans Serif';
OldCreateOrder := False;
PixelsPerInch := 96;
end;
with lblParam1 do
begin
Name := 'lblParam1';
Parent := NextParamsForm;
Left := 16;
Top := 26;
Width := 36;
Height := 13;
Caption := 'Param1';
end;
with lblParam2 do
begin
Name := 'lblParam2';
Parent := NextParamsForm;
Left := 16;
Top := 61;
Width := 36;
Height := 13;
Caption := 'Param2';
end;
with lblParam3 do
begin
Name := 'lblParam3';
Parent := NextParamsForm;
Left := 16;
Top := 93;
Width := 36;
Height := 13;
Caption := 'Param3';
end;
with Edit1 do
begin
Name := 'Edit1';
Parent := NextParamsForm;
Left := 88;
Top := 24;
Width := 121;
Height := 21;
TabOrder := 0;
Text := 'Edit1';
end;
with Edit2 do
begin
Name := 'Edit2';
Parent := NextParamsForm;
Left := 88;
Top := 56;
Width := 121;
Height := 21;
TabOrder := 1;
Text := 'Edit2';
end;
with Edit3 do
begin
Name := 'Edit3';
Parent := NextParamsForm;
Left := 88;
Top := 88;
Width := 121;
Height := 21;
TabOrder := 2;
Text := 'Edit3';
end;
with btnOK do
begin
Name := 'btnOK';
Parent := NextParamsForm;
Left := 296;
Top := 232;
Width := 75;
Height := 25;
Caption := 'OK';
ModalResult := 1;
TabOrder := 4;
end;
with btnCancel do
begin
Name := 'btnCancel';
Parent := NextParamsForm;
Left := 392;
Top := 232;
Width := 75;
Height := 25;
Caption := 'Zrušit';
ModalResult := 2;
TabOrder := 5;
end;
with chkParam4 do
begin
Name := 'chkParam4';
Parent := NextParamsForm;
Left := 88;
Top := 128;
Width := 97;
Height := 17;
Caption := 'Param4';
TabOrder := 3;
end;
Edit1.Text := AParams.GetOrCreateParam(dtString, 'PrvniStr', pkInput).AsString;
Edit2.Text := AParams.GetOrCreateParam(dtInteger, 'DruheCislo', pkInput).AsString;
Edit3.Text := AParams.GetOrCreateParam(dtString, 'TretiStr', pkInput).AsString;
chkParam4.Checked := AParams.GetOrCreateParam(dtBoolean, 'Ctvrty', pkInput).AsBoolean;
mResult := NextParamsForm.ShowModal;
if mResult = mrOK then begin
AParams.ParamByName('PrvniStr').AsString := Edit1.Text;
AParams.ParamByName('DruheCislo').AsInteger := StrToInt(Edit2.Text);
AParams.ParamByName('TretiStr').AsString := Edit3.Text;
AParams.ParamByName('Ctvrty').AsBoolean := chkParam4.Checked;
Result := True;
end;
finally
NextParamsForm.Free;
end;
{SMAZAT
Result := True;
mS1 := AParams.GetOrCreateParam(dtString, 'PrvniStr', pkInput).AsString;
if mS1 = '' then
AParams.ParamByName('PrvniStr').AsString := 'Nazdar';
mS1 := AParams.GetOrCreateParam(dtString, 'DruheCislo', pkInput).AsString;
if mS1 = '' then
AParams.ParamByName('DruheCislo').AsInteger := 44;
mStr := '';
for ii := 0 to AParams.Count - 1 do begin
mStr := mStr + AParams.Params[ii].Name + AParams.Params[ii].AsString + #13#10;
end;
ShowMessage(mStr);
}
end;
begin
end.
</Row>
<Row Position="2">
<ScriptKind>0</ScriptKind>
<ScriptID>Execute</ScriptID>
<ScriptData>
{Příklad, jak získávat data v průběhu importu}
function ExecuteScript(ABusinessObject: TNxCustomBusinessObject; AStream: TStream; AParameters: TNxParameters): boolean;
begin
ShowMessage('ABusinessObject = ' + ABusinessObject.DisplayName);
if AStream <> nil then
ShowMessage('AStream = ' + NxReadString(AStream));
ShowMessage('ImportPath = ' + AParameters.ParamByName('ImportPath').AsString);
ShowMessage('AParameters.Count ' + IntToStr(AParameters.Count));
if AParameters.ParamExist('PrvniStr') then
ShowMessage('PrvniStr = ' + AParameters.ParamByName('PrvniStr').AsString);
Result := True;
end;
begin
end;
</Row>
</Rows>
</ScriptPackageExport>