Podrobný popis položek a jejich hodnot |
Top Previous Next |
Seznam témat:
Aby se u karty mohly vypočíst odpisy (po importu, jinak se doplňuje automaticky po insertu) musí mít status "karta hlavní". Při importu je pak nutné doplnit položky: ai_hlavni = id_ai, ai_nadkarta = id_ai, datan_id=data_id, danah_id= data_id. Toto se děje v automaticky v triggeru, ovšem pouze v případě že položky ai_hlavni, ai_nadkarta, datan_id, danah_id mají hodnotu null
neuplatněná poměrná část odpisu numeric rozdil_sk
kde
Pozn1
Pozn2
Pozn3
Kontroly
kde
Kontroly
Procedury z_import_dm a z_import_oe řeší import z třetích stran na základě popisu položek. Předpokládá se založení tabulek z_import_dm a z_import_oe.
!! samozřejmě, názvy položek mohou být jiné, ale pak je potřeba změnit procedury !! nebo importní profil
Postup u dlouhodobého majetku:
Postup u operativní evidence:
Pokud provádíte import do již existující databáze, je nutné zazávorkovat poslední řádek delete dba.zdzm Nezapomenout odzávorkovat výpočet odpisů podle toho jak mám proběhnout výpočet
Tabulka z_import_dm create table "DBA"."z_import_dm" ( KONTO varchar(7) null, INV varchar(20) null, NAZEV varchar(50) null, POCETKS bigint null, CENAKS decimal(13,2) null, CENAVST decimal(13,2) null, CENAAKT decimal(13,2) null, DAT_PORIZ date null, DAT_ZARAZ date null, HODNOTA decimal(13,2) null, CENAPROD decimal(13,2) null, ZHU decimal(13,2) null, ZHD decimal(13,2) null, OPRAVKYU decimal(13,2) null, OPRAVKYD decimal(13,2) null, DPH bigint null, CASTDPH decimal(13,2) null, KOEFDPH bigint null, ICO varchar(20) null, MULTI bigint null, ROZLIS varchar(6) null, VYRCIS varchar(20) null, TYP varchar(20) null, POL1 varchar(20) null, POL2 varchar(20) null, STRED varchar(25) null, CINN varchar(5) null, ZAKAZ varchar(15) null, CLENENI varchar(10) null, BUDOVA varchar(10) null, MISTNOST varchar(10) null, REFERENT varchar(10) null, SKP varchar(10) null, ODPDSKUP bigint null, ODPDZPUS bigint null, JEDNODAN bigint null, OMEZDAN bigint null, PROCDAN decimal(5,2) null, DATUMTZ date null, ODPUZPUS bigint null, POCMES bigint null, ODPUPROC bigint null, JEDNOUCT bigint null, ODPUROK decimal(13,2) null, STAV bigint null, DAT_VYRAZ date null, ODPOCET bigint null, PROCento bigint null, VPROK integer NULL , POCMESTZH integer NULL , POCMESTZHU integer NULL , ROZDIL_SK decimal(13,2) null, ) go grant select, insert, delete, update, alter, references on "DBA"."z_import_dm" to "public" go if user_id('obecny_uzivatel') <> 0 then grant select, insert, delete, update, alter, references on "DBA"."z_import_dm" to "obecny_uzivatel" end if go #DisableErrors go if user_id('group_common') <> 0 then grant select, insert, delete, update, alter, references on "DBA"."z_import_dm" to "group_common" end if
Tabulka z_import_oe create table "DBA"."z_import_oe" ( INV char(20) null, NAZEV char(50) null, POCETKS integer null, CENAKS decimal(13,2) null, CENA decimal(13,2) null, DAT_ZARAZ date null, CENAPROD decimal(13,2) null, DPH integer null, CASTDPH decimal(13,2) null, ROZLIS char(6) null, ROKVYROBY integer null, VYRCIS char(20) null, TYP char(20) null, POL1 char(20) null, POL2 char(20) null, STRED char(25) null, BUDOVA char(10) null, MISTNOST char(10) null, REFERENT char(10) null, ) go grant select, insert, delete, update, alter, references on "DBA"."z_import_oe" to "public" go if user_id('obecny_uzivatel') <> 0 then grant select, insert, delete, update, alter, references on "DBA"."z_import_oe" to "obecny_uzivatel" end if go #DisableErrors go if user_id('group_common') <> 0 then grant select, insert, delete, update, alter, references on "DBA"."z_import_oe" to "group_common" end if
Procedura z_import_dm ALTER PROCEDURE "DBA"."z_import_dm" /* @parameter_name parameter_type [= default_value] [OUTPUT], ... */ as begin --input into dba.z_import_dm from c:\CESTA\nazev_tabulky.dbf format DBASEIII nebo format FOXPRO --input into dba.z_import_dm from c:\CESTA\nazev_tabulky.xls --vytvori se tabulka dle zadane tabulky ( nazev_tabulky.dbf nebo nazev_tabulky.xls) declare @par1 integer declare @par1_ins integer declare @did integer declare @period datetime -- declare @KONTO konto_ declare @INV char(20) declare @NAZEV nazev_ declare @aitr integer -- declare @NAZEV_nazev nazev_ declare @yesuct integer declare @perioda integer -- declare @POCETKS integer declare @CENAKS penize_ declare @CENAVST penize_ declare @CENAAKT penize_ declare @DAT_PORIZ datetime declare @DAT_ZARAZ datetime declare @HODNOTA penize_ declare @CENAPROD penize_ declare @ZHU penize_ declare @ZHD penize_ declare @OPRAVKYU penize_ declare @OPRAVKYD penize_ declare @DPH penize_ declare @CASTDPH penize_ declare @KOEFDPH integer declare @ICO ico_ declare @MULTI integer -- declare @ROZLIS nazev_ declare @VYRCIS nazev_ declare @TYP nazev_ declare @POL1 nazev_ declare @POL2 nazev_ declare @STRED nazev_ declare @CINN nazev_ declare @ZAKAZ nazev_ declare @CLENENI nazev_ declare @BUDOVA nazev_ declare @MISTNOST nazev_ declare @REFERENT nazev_ -- declare @SKP nazev_ declare @ODPDSKUP integer declare @ODPDZPUS integer declare @JEDNODAN integer declare @OMEZDAN integer declare @PROCDAN penize_ declare @ROZDIL_SK penize_ declare @PRVNI_ODPIS integer -- declare @DATUMTZ datetime declare @ODPUZPUS integer declare @POCMES integer declare @ODPUPROC penize_ declare @JEDNOUCT integer declare @ODPUROK penize_ declare @STAV integer -- declare @DAT_VYRAZ datetime declare @ODPOCET integer -- declare @PROCento integer declare @VPROK integer -- -- select @period = period from dba._gusers select @did=ggetdataid(*) -- -- -- max id_ai select @par1 = max(id_ai) from dba.zdstav -- --aby se pei insertech a updatech neprovadel prepocet odpisu if exists(select value from dba.globals where name = 'mj_recalc') update dba.globals set value = 'N' where name = 'mj_recalc' else insert into dba.globals( value,name) values( 'N','mj_recalc') -- --zd_import_stav delete from dba.zd_import_stav delete from dba.zd_import_error -- select @par1=1 declare n dynamic scroll cursor for select KONTO,INV,NAZEV,POCETKS,CENAKS,CENAVST, CENAAKT,DAT_PORIZ,DAT_ZARAZ,HODNOTA,CENAPROD,ZHU,ZHD,OPRAVKYU,OPRAVKYD, DPH,CASTDPH,KOEFDPH,ICO,MULTI, ROZLIS,VYRCIS,TYP,POL1,POL2,STRED, CINN,ZAKAZ,CLENENI,BUDOVA,MISTNOST,REFERENT, SKP,ODPDSKUP,ODPDZPUS,JEDNODAN,OMEZDAN,PROCDAN, DATUMTZ,ODPUZPUS,POCMES,JEDNOUCT,ODPUROK,STAV,DAT_VYRAZ,ODPOCET,PROCENTO,ODPUPROC,VPROK, ROZDIL_SK from DBA.z_import_dm where isnull(dat_vyraz,dateadd(day,1,@period)) > @period order by inv asc open n while 1 = 1 begin fetch next n into @KONTO,@INV,@NAZEV,@POCETKS,@CENAKS,@CENAVST, @CENAAKT,@DAT_PORIZ,@DAT_ZARAZ,@HODNOTA,@CENAPROD, @ZHU,@ZHD,@OPRAVKYU,@OPRAVKYD, @DPH,@CASTDPH,@KOEFDPH,@ICO,@MULTI, @ROZLIS,@VYRCIS,@TYP,@POL1,@POL2,@STRED, @CINN,@ZAKAZ,@CLENENI,@BUDOVA,@MISTNOST,@REFERENT, @SKP,@ODPDSKUP,@ODPDZPUS,@JEDNODAN,@OMEZDAN,@PROCDAN,@DATUMTZ, @ODPUZPUS,@POCMES,@JEDNOUCT,@ODPUROK,@STAV,@DAT_VYRAZ,@ODPOCET, @PROCENTO, @ODPUPROC, @VPROK, @ROZDIL_SK if @@sqlstatus = 1 begin raiserror 99999 return end else begin if @@sqlstatus = 2 break else if sqlstate <> '00000' break end -- -- select @par1=isnull(@par1,0)+1 -- insert into dba.zd_import_stav( id_ai,invcis,uct,anl,cena,datumpor,dph,nazev, perioda,sazba,skpcislo_id,skupina,vpcislo,vprok, vptyp,zpusobuct,zpusobdan,cenadan,cenauct,opravdan,opravuct, prodcena,cenaks,cenanom,cl1,cl2,cl3,cl4, oprpol,odpisrok,roktzh,pocetks,ec_ec,ref, yesodp,rok_id,data_id,zpusobmes,polozka1,polozka2,typdph,koefdph,sazbadph, rozdol_sk) values( @par1,@inv,@konto,null,@cenaakt,@dat_zaraz,@dph,@nazev, @perioda,0,@skp,@ODPDSKUP,@vyrcis,@vprok, @typ,@ODPUZPUS,@ODPDZPUS,@zhd,@zhu,@opravkyd,@opravkyu, @cenaprod,@cenaks,@cenaakt,@stred,@cinn,@zakaz,null, 0,@odpurok,null,@pocetks,null,@referent, @yesuct,@period,@did,0,@pol1,@pol2,@dph,@koefdph,@castdph, @rozdil_sk) -- --skutecne id_ai... v tigrovi zd_import_stav select @par1_ins = id_ai from dba.zdstav where invcis = @inv -- -- pokud nejaka vazba na zctr if isnull(@aitr,0) <> 0 begin if not exists(select id_aitr from dba.zctr where id_aitr = @aitr) insert into dba.zctr( id_aitr,text) values( @aitr,'IMPORT') update dba.zdstav set aitr_id = @aitr where id_ai = @par1_ins end -- if isnull(@odpuproc,0) <> 0 begin update dba.zdinvk set sazbauct = @odpuproc where ai_id = @par1_ins and data_id = @did end -- if isnull(@budova,'') <> '' begin if not exists(select id_kodbudova from dba.zcbdv where id_kodbudova = @budova) insert into dba.zcbdv( data_id,id_kodbudova,nazev) values( @did,@budova,'IMPORT') -- if isnull(@mistnost,'') <> '' begin if not exists(select id_kodmistnost from dba.zcmist where kodbudova_id = @budova and id_kodmistnost = @mistnost) insert into dba.zcmist( data_id,kodbudova_id,id_kodmistnost,nazev) values( @did,@budova,@mistnost,'IMPORT') end -- insert into dba.zdbdv( data_id,ai_id,id_porcis,kodbudova_id,kodmistnost_id,pocetks,datab_id,datam_id,datod) values( @did,@par1_ins,10,@budova,@mistnost,@pocetks,@did,@did,@dat_zaraz) end -- end close n -- -- --BUD ......... odpisy .... pocatecni stav update dba.globals set value = 'Y' where name = 'mj_recalc' -- declare c_odp dynamic scroll cursor for select id_ai,data_id from dba.zdstav -- open c_odp while 1 = 1 begin fetch next c_odp into @par1, @did if @@sqlstatus = 1 begin raiserror 99999 return end else begin if @@sqlstatus = 2 break else if sqlstate <> '00000' break end -- execute dba.zd_odpis @par1,@did -- end close c_odp -- -- A NEBO ......... odpisy v prubehu roku update dba.globals set value = 'Y' where name = 'mj_recalc' -- declare c_odp_n dynamic scroll cursor for select id_ai,data_id from dba.zdstav -- open c_odp_n while 1 = 1 begin fetch next c_odp_n into @par1, @did if @@sqlstatus = 1 begin raiserror 99999 return end else begin if @@sqlstatus = 2 break else if sqlstate <> '00000' break end -- -- execute dba.zd_odpis @par1,@did -- -- !!!!! tady doplnit od kdy se maji zpracovavat odpisy tj, prvni mesic odpisu, impl. @PRVNI_ODPIS = 0 -- --update dba.zdodp set sazba = 0 where ai_id = @par1 --update dba.zdodp set zprac = 1 where ai_id = @par1 and poradi < @PRVNI_ODPIS and priznak = 1 --execute dba.zd_odpis @par1,@did -- nezapomenout nastavit parametr 1. odpis na klientovi .... parametr 1. odpis = :PRVNI_ODPIS -- end close c_odp_n -- --pripadn zmeny v tab zdzm --delete from dba.zdzm end
Procedura z_import_oe ALTER PROCEDURE "DBA"."z_import_oe" /* @parameter_name parameter_type [= default_value] [OUTPUT], ... */ as begin --input into dba.z_import_oe from c:\CESTA.dbf format DBASEIII nebo format FOXPRO --vytvori se tabulka dle zadane tabulky ( *.dbf ) -- declare @par1 integer declare @par1_ins integer declare @did integer declare @pariod datetime -- declare @INV char(20) declare @NAZEV nazev_ declare @NAZEV_nazev nazev_ declare @POCETKS integer declare @CENAKS penize_ declare @CENA penize_ declare @DAT_ZARAZ datetime declare @CENAPROD penize_ declare @DPH integer declare @CASTDPH penize_ declare @ROZLIS integer declare @ROKVYROBY integer declare @VYRCIS char(20) declare @VPTYP char(20) declare @POL1 char(20) declare @POL2 char(20) declare @STRED char(25) declare @BUDOVA char(10) declare @MISTNOST char(10) declare @REFERENT char(10) -- declare @pocetksall integer declare @max integer declare @invpoc nazev_ -- declare @period datetime -- -- select @period = period from dba._gusers select @did=ggetdataid(*) -- -- --zd_import_stav delete from dba.zd_import_op delete from dba.zd_import_error -- select @par1=1 declare n dynamic scroll cursor for select trim(INV),NAZEV,POCETKS,CENAKS,CENA,DAT_ZARAZ,cenaprod,dph, castdph,rozlis=convert(integer,rozlis),rokvyroby,vyrcis,typ,pol1,pol2,STRED,budova,mistnost,referent from DBA.z_import_oe order by inv asc open n while 1 = 1 begin fetch next n into @INV,@NAZEV,@POCETKS,@CENAKS,@CENA,@DAT_ZARAZ,@cenaprod,@dph, @CASTDPH,@ROZLIS,@rokvyroby,@VYRCIS,@VPTYP,@POL1,@pol2,@STRED,@budova,@mistnost, @REFERENT if @@sqlstatus = 1 begin raiserror 99999 return end else begin if @@sqlstatus = 2 break else if sqlstate <> '00000' break end -- /* // tady doplnit prislusne zmeny // select @nazev_nazev=(select first nazev from dba.excels_nazvy_op where trim(inv) = @inv) select @nazev=@nazev_nazev */ -- delete from dba.zd_import_op --print 'insert indo zd_import_op ' || @inv insert into dba.zd_import_op( id_aiop,data_id,cena,cenaks,pocetks, datumpor,nazev,invcis, cl1,cl2,cl3,cl4,rok_id, rokvyr,vptyp,vyrcislo,rozlis,pol1,pol2) values( @par1,@did,@cena,@cenaks,@pocetks, @dat_zaraz,@nazev,trim(@inv), @stred,null,null,null,@period, @rokvyroby,@vptyp,@vyrcis,@rozlis,@pol1,@pol2) -- --skutecne id_ai... v tigrovi zd_import_op select @par1_ins = id_aiop from dba.zdop where invcis =@inv -- -- print 'insert indo zd_import_op konec ' || @inv -- if isnull(@budova,'') <> '' begin if not exists(select id_kodbudova from dba.zcbdv where id_kodbudova = @budova) insert into dba.zcbdv( data_id,id_kodbudova,nazev) values( @did,@budova,'IMPORT') -- if isnull(@mistnost,'') <> '' begin if not exists(select id_kodmistnost from dba.zcmist where kodbudova_id = @budova and id_kodmistnost = @mistnost) insert into dba.zcmist( data_id,kodbudova_id,id_kodmistnost,nazev) values( @did,@budova,@mistnost,'IMPORT') end -- insert into dba.zdbdvn( data_id,aiop_id,id_porcis,kodbudova_id,kodmistnost_id,pocetks,datab_id,datam_id,datod) values( @did,@par1_ins,10,@budova,@mistnost,@pocetks,@did,@did,@dat_zaraz) end -- if isnull(@referent,'') <> '' begin if not exists(select id_oscislo from dba.zcref where @referent = id_oscislo) insert into dba.zcref( data_id, id_oscislo,pouzit, pozn) values( @did, @referent,0,'IMPORT') --
insert into dba.zdrefn( data_id,aiop_id, oscislo_id,pocetks, datod) values( @did,@par1_ins,@referent, @pocetks,@dat_zaraz) end -- select @par1=@par1+1 end close n end
Související témata |