Uskutečněné plnění (položkově dle pohybů)

Top  Previous  Next

Seznam témat:

řešení

 

Import uskutečněného plnění dle importů

 

CTRL+I vyvolá browser profilů:

Přidáte nový profil (typ importu bude Uskutečněné plnění - z položek), zvolíte kód profilu (např. IMPORT_TGSSC):

Nastavíte dle typu (nutno kurzorem opusti položku Kód profilu):

Uložíte a zvolíte Editovat poč. profil a stisknete Naplnit importní tab.

Zde zvolíte importní soubor (v tomto případě hlavičky faktur) a případně změníte další nastavení.

Na záložce oddělovače nastavíte Čárku, Úvozovky, yyyy/mm/dd - a .

Stisknete Vytvořit SQL a pak Upravit SQL pro temporary. Obsah pro deklaraci Temporary tabulky nahradíte tímto textem:

declare local temporary table import(obd date,age char(3),rada char(4),dokl integer,druhpln integer,ico char(20),multi integer,objedmulti integer,prijemmulti integer,dico char(15),fnazev1 char(80),fnazev2 char(80),fulice char(35),fobec char(35),fpsc char(15),fstat char(3),intcis integer,hledisko integer,datdokl date,datpln date,datsplat date,vsym char (10),nazev char(60),dphmes integer,mena_id char(5),kurz double,kurzc integer,kurze double,z0_nepr numeric (18,2),z0_nekoef numeric (18,2),z0_osvkoef numeric (18,2),z0_prpodn numeric (18,2),z0_mdopr numeric (18,2),z0_vzboz numeric (18,2),z0_vzbozvp numeric (18,2),z0_vsluz numeric (18,2),zs numeric (18,2),zz numeric (18,2),ds numeric (18,2),dz numeric (18,2),spdans numeric (18,2),spdanz numeric  (18,2),celkem numeric (18,2),ucet_z0 char(3),anal_z0 char(10),ucet_zs char(3),anal_zs char(10),ucet_zz char(3),anal_zz char(10),ucet_sd char(3),anal_sd char(10),jcd numeric (18,2),dandoklvyvoz char(15),cl1 char(25),cl2 char(5),cl3 char(15),cl4 char(10),zakobj char(30),zpusob integer)  ON COMMIT PRESERVE ROWS

 

Na záložce Obsah temp tabulky zvolíte Naplnit, čímž se z importního souboru naplní dočasná tabulka import:

 

Na záložce Položky tabulek se definují SQL dotazy pro úpravu dat a následný převod do vlastních importovacích tabulek.

Přes Upravit SQL -> Přidat přidáte nový SQL dotaz:

update import set age = 'VFA' where age is null;

update import set rada = left (dokl, length (dokl) - 6) where rada is null and length (dokl) > 6;

update import set rada = '0001' where rada is null;

update import set dokl = right (dokl, 6) where length (dokl) > 6;

update import set kurz = 1, kurzc = 1 where mena_id = 'CZK';

update import set kurzc = 1 where isnull(kurzc, 0) = 0;

insert into dba.o_ivydfakt (id_hl, obd, age, rada, dokl, druhpln, ico, multi, objedmulti_id, prijemico_id, prijemmulti_id, dico, fnazev1, fnazev2, fulice, fobec, fpsc, fstat, intcis, hledisko, datdokl, datprip, datpln, datsplat, vsym, nazev, dphmes, mena_id, kurz, kurzc, kurze, z0nepr_ciz, z0nekoef_ciz, z0osvkoef_ciz, z0prpodn_ciz, z0mdopr_ciz, z0vzboz_ciz, z0vzbozvp_ciz, z0vsluz_ciz, zs_ciz, zz_ciz, ds_ciz, dz_ciz, spdan0_ciz, spdans_ciz, spdanz_ciz, celkem_ciz, z0nepr, z0nekoef, z0osvkoef, z0prpodn, z0mdopr, z0vzboz, z0vzbozvp, z0vsluz, zs, zz, ds, dz, spdan0, spdans, spdanz, celkem, ucetzd_rek, analzd_rek, ucetsd_rek, analsd_rek, jcd, dandoklvyvoz, cl1, cl2, cl3, cl4, zakobj)

  select obd||age||rada||dokl, obd, age, rada, dokl, druhpln, ico, multi, objedmulti, ico, prijemmulti, dico, fnazev1, fnazev2, fulice, fobec, fpsc, fstat, intcis, hledisko, datdokl, datdokl, datpln, datsplat, vsym, nazev, dphmes, mena_id, kurz, kurzc, kurze, z0_nepr, z0_nekoef, z0_osvkoef, z0_prpodn, z0_mdopr, z0_vzboz, z0_vzbozvp, z0_vsluz, zs, zz, ds, dz, 0, spdans, spdanz, celkem, z0_nepr*(isnull(kurz,0)/kurzc), z0_nekoef*(isnull(kurz,0)/kurzc), z0_osvkoef*(isnull(kurz,0)/kurzc), z0_prpodn*(isnull(kurz,0)/kurzc), z0_mdopr*(isnull(kurz,0)/kurzc), z0_vzboz*(isnull(kurz,0)/kurzc), z0_vzbozvp*(isnull(kurz,0)/kurzc), z0_vsluz*(isnull(kurz,0)/kurzc), zs*(isnull(kurz,0)/kurzc), zz*(isnull(kurz,0)/kurzc), ds*(isnull(kurz,0)/kurzc), dz*(isnull(kurz,0)/kurzc), 0, spdans*(isnull(kurz,0)/kurzc), spdanz*(isnull(kurz,0)/kurzc), celkem*(isnull(kurz,0)/kurzc), ucet_z0, anal_z0, ucet_sd, anal_sd, jcd, dandoklvyvoz, cl1, cl2, cl3, cl4, zakobj from import

 

Podtržené údaje nutno nastavit dle potřeby...

Opustíte browser SQL příkazů a na záložce Položky tabulek kliknete na právě zadaný SQL příkaz. Jeho obsah se zobrazí v okně Příkaz SQL pro import. Zadáte Provést SQL. Tím se naplní importovací tabulka hlavičkama.

Kliknete na uložit zdroj.

Na záložce Soubor pro import zvolíte Vybrat zdroj dat Nový... Zvolíte importní soubor položek faktur a zopakujete postup jako pro hlavičky s těmito rozdíly:

Deklarace temporary tabulky:

declare local temporary table import(obd date,age char(3),rada char(4),dokl integer,typ integer,typkodu integer,kod char(100),nazev char(60),text char(2048),mj char(10),dph integer,duvodosv integer,pohyb char(15),zd0_ucet char(3),zd0_anal char(10),zds_ucet char(3),zds_anal char(10),zdz_ucet char(3),zdz_anal char(10),sd_ucet char(3),sd_anal char(10),mnoz numeric (20,4),prodcenaciz numeric (24,6),spdanciz numeric (24,6),prodcenacizsdph numeric (24,6),cl1 char(25),cl2 char(5),cl3 char(15),cl4 char(10),zakobj char(30))  ON COMMIT PRESERVE ROWS

 

SQL příkaz:

update import set age = 'VFA' where age is null;

update import set rada = left (dokl, length (dokl) - 6) where rada is null and length (dokl) > 6;

update import set rada = '0001' where rada is null;

update import set dokl = right (dokl, 6) where length (dokl) > 6;

update import set dph = 0 where dph = 1;

update import set dph = 1 where dph = 3;

update import set prodcenacizsdph = (prodcenaciz+spdanciz)*(1+(if dph=0 then 0 else if dph=1 then (select value from dba.globalsyear where name = 'u_dphs' and rok = datepart (year, obd)) else (select value from dba.globalsyear where name = 'u_dphz' and rok = datepart (year, obd)) endif endif)/100.0);

insert into dba.o_ivydfaktit (id_hl, typ, typkodu, kod, nazev, mj, dph, duvodosvob, pohyb, zd0_ucet, zd0_anal, zds_ucet, zds_anal, zdz_ucet, zdz_anal, sd_ucet, sd_anal, mnoz, prodcenaciz, prodcenacizsdph, spdanciz, cl1, cl2, cl3, cl4, zakobj)

select obd||age||rada||dokl, typ, typkodu, kod, nazev || text, mj, dph, duvodosv, pohyb, zd0_ucet, zd0_anal, zds_ucet, zds_anal, zdz_ucet, zdz_anal, sd_ucet, sd_anal, mnoz, prodcenaciz, prodcenacizsdph, spdanciz, cl1, cl2, cl3, cl4, zakobj from import

 

Taky dáte Uložit zdroj a pak Ukončit. (Když v budoucnosti kdykoliv otevřete Vámi definovaný profil (např. IMPORT_TGSSC), bude obsahovat právě 2 zdroje dat: „1“ pro hlavičky a „2“ pro položky.)

Kliknutím na Data k importu se otevře browser hlaviček pro import). Tady lze ručně upravit jakoukoliv položku:

položky importu

Na záložce Fakturační položky jsou pak jednotlivé položky faktur...

Na formuláři Importy-profily se pak  na záložce Příkazy SQL zadávají jednotlivé „upravovací SQL dotazy“:

 

update dba.o_ivydfakt set ico = '0123456789' where ico is null;

update dba.o_ivydfakt set datdokl = current date where datdokl is null;

update dba.o_ivydfakt set datprip = current date where datprip is null;

update dba.o_ivydfakt set datpln = current date where datpln is null;

update DBA.o_ivydfakt set datsplat = current date where datsplat is null;

update dba.o_ivydfakt set idxmon = datepart (month, datprip) where idxmon is null;

update DBA.o_ivydfakt set dphmes = 100*datepart(year,datpln)+datepart(month,datpln) where isnull (dphmes, 0) = 0;

update DBA.o_ivydfakt set objedmulti_id = 0 where objedmulti_id is null;

update DBA.o_ivydfakt set prijemico_id = ico where prijemico_id is null;

update DBA.o_ivydfakt set prijemmulti_id = 0 where prijemmulti_id is null;

update DBA.o_ivydfakt set druhpln = 0 where druhpln is null;

update DBA.o_ivydfakt set hledisko = 0 where hledisko is null;

update DBA.o_ivydfakt set kontovzt = '311000' where kontovzt is null;

update DBA.o_ivydfakt set jcd = 0 where jcd is null;

update DBA.o_ivydfakt set data_id=1

 

Opět platí, že podtržené údaje nutno zadat dle nastavení...

 

Na záložce Chyby a provedení se vykonají SQL dotazy kliknutím na SQL a po úspěšném provedení se zavolá Kontrola. Je možné, že se objeví nějaká chyba, např.

seznam chyb při importu

 

Kliknutím na Chybné položky se zobrazí browser položek, které obsahují danou chybu a je možné je opravit. (Případně přes Příkazy SQL vytvořit dočasný SQL dotaz, kterým se hromadně některé položky opraví.)

 

Tady by se zadal Pohyb tak, aby odpovídal nastavení v databázi...

Opětovné spuštění kontroly by nakonec mělo vést k tomu, že všechny kontroly projdou v pořádku a na závěr se stiskne Import (vedle tlačítka Kontrola). (Použití „velkého“ Importu zatím neovládám, takže používám jenom „malý“ Import...) Toto buďto zahlásí nějakou systémovou chybu, případně to nezahlásí nic. Jak import dopadl lze zjistit v browseru Data k importu, kde někde na konci sloupečků bude Status, který říká, jak to dopadlo. Když je tam 1, tak byla věta importována, když je tam 2 nebo něco záporného, tak došlo k chybě - teoreticky by tam měl být k dispozici i text chyby... Např. nevyplněné členění apod.

 

Související témata

CRM