REM  *****  BASIC  *****
sub skontroluj_sablona_mzdy
'je to tu len kôli tomu , že v linuxe sa to s iným obsahom otvára pri spustení aplikácie
ovladanie.nastav_sablonu("mzdy")
end sub

sub doplnit_datum

dim document, dispatcher,bunka_datum, dokument, list as object
dim datum as string

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dokument=stardesktop.currentcomponent
list=dokument.sheets(0)
bunka_datum=list.GetCellByPosition(2,0)'C1
datum=trim(bunka_datum.string)
ovladanie.vyberlb("mzdy","B4:B34")
dim vypln(5) as new com.sun.star.beans.PropertyValue
vypln(0).Name = "FillDir"
vypln(0).Value = "B"
vypln(1).Name = "FillCmd"
vypln(1).Value = "D"
vypln(2).Name = "FillStep"
vypln(2).Value = "1"
vypln(3).Name = "FillDateCmd"
vypln(3).Value = "D"
vypln(4).Name = "FillStart"
vypln(4).Value = datum
vypln(5).Name = "FillMax"
vypln(5).Value = "1,70E+307"
dispatcher.executeDispatch(document, ".uno:FillSeries", "", 0, vypln())
ovladanie.vyberlb("mzdy","G1")
end sub

sub export 'zo šablóny mzdy
dim document, dispatcher, bunka_zaznam, bunka_novy, dokument, list,bunka_subor,bunka_mesiac,bunka_vzorec as object
dim zaznam,subor,mesiac as string
dim  tlacidlo,novy as integer

dim hore(1) as new com.sun.star.beans.PropertyValue
hore(0).Name = "By"
hore(0).Value = 1
hore(1).Name = "Sel"
hore(1).Value = false

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dokument=stardesktop.currentcomponent
list=dokument.sheets(0)
bunka_zaznam=list.GetCellByPosition(1,36)'B37
zaznam=trim(bunka_zaznam.string)
bunka_novy=list.GetCellByPosition(1,37)'B38
novy=trim(bunka_novy.string)
bunka_subor=list.GetCellByPosition(6,0)'B39
subor=trim(bunka_subor.string)
bunka_mesiac=list.GetCellByPosition(1,38)'G1
mesiac=trim(bunka_mesiac.string)
'----------------------------------------------------------------------------------------------------------------------
	with ovladanie'zafixovanie dát
		.vyberlb("mzdy","B37")
		.vystrihni
		.vloz
	end with
	gosub kopiruj
if novy=1 then'záznam je nový
'	msgbox("záznam je nový",0,"Databáza")'hláška
	gosub vloz_sem 'vloží záznam
	ovladanie.uloz_ako("/home/firma/mzdy/mzdy "+mesiac+"/mzdy "+subor+".ods") 'uloží dokument
	'------------------------------------------------------------
	tlacidlo=msgbox("Pokračovať vo vkladaní dát (ak zvolíš áno môžeš pokračovať vo vkladaní dát ďalšieho zamestnanca,doterajšie dáta budú uložené zatiaľ len do súboru D:/lugesa/mzdy "+mesiac+"/mzdy "+subor+".ods)?", 35,"Uloženie dokumentu"'kontrolná otázka
		if tlacidlo=6 then ' vyčistí sa dochádzka
			ovladanie.vymaz("mzdy","C4:E34")'vráti späť vzorec a vyčistí dáta
			ovladanie.vymaz("mzdy","G4:J34")
			ovladanie.vymaz("mzdy","L4:L8")
			bunka_vzorec=list.getCellRangeByName("B37")
			'xray bunka_vzorec
			bunka_vzorec.Formula="=max(data.A2:A1000)+1"
			ovladanie.vyberlb("mzdy","G1")
		elseif tlacidlo=7 then 'nie nepokračovať vo vkladaní dát dokument exportne dáta do databáz
			gosub exportuj
			dokument.Store("",Array())    'ulozit databázu (dokument)
			dokument.Close(true)          'zavrieť (dokument)
			else'zrušiť
		endif
'------------------------------------------------------------
else'záznam sa bude aktualizovať
'	msgbox("záznam sa bude aktualizovať",0,"Databáza")'hláška
ovladanie.vyberlb("data")'<----- prechod na list
	gosub najdi
	gosub aktualizuj
	dokument.Store("",Array())    'ulozit databázu (dokument)
	dokument.Close(true)          'zavrieť (dokument)
endif

exit sub
kopiruj:
	with ovladanie'zafixovanie dát
		.vyberlb("export","A2:AV2")' zkopírovanie dát ktoré sa vložia do tohto zošitu
		.zkopiruj
	end with
return
najdi:
with ovladanie
	.najdi(zaznam,"data")
	.vloz
	.vyberlb("mzdy")
end with	
return

vloz_sem:
ovladanie.vyberlb("data","A10000")
ovladanie.vyber("data","A10000")
dispatcher.executeDispatch(document, ".uno:GoUpToStartOfData", "", 0, hore())
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array()
ovladanie.vloz
ovladanie.vyberlb("mzdy") 
return

exportuj:
with ovladanie
	.vyberlb("data","A2:AV10000")' zkopírovanie dát ktoré sa vložia do tohto zošitu
	.zkopiruj
	.vyberlb("mzdy","A2")
	rem ----------------------------------------------export dát------------ zošit č.2----(databáza)
	.otvor( "/home/firma/databázy/mzdy data.ods" )'otvorenie databázy
	.vyberlb("data","A2")
	.vloz
	.vyberlb("menu")
	obnov
	.uloz_a_zavri("/home/firma/databázy/mzdy data.ods")
	rem --------------------------------------------export dát----------------------- zošit č.3----(do šablony faktúra)
	.otvor( "/home/firma/šablony/mzdy.ots" )'otvorenie databázy
	.vyberlb("data","A2")
	.vloz
	.vyberlb("mzdy")
	.uloz_a_zavri("/home/firma/šablony/mzdy.ots")
end with
msgbox("Všetky údaje boli uložené do databázy",0,"Databáza")'hláška
return

aktualizuj:
gosub kopiruj
with ovladanie
	.vyberlb("mzdy","A2")
	rem ----------------------------------------------export dát------------ zošit č.2----(databáza)
	.otvor( "/home/firma/databázy/mzdy data.ods" )'otvorenie databázy
	.najdi(zaznam,"data")	
	.vloz
	.vyberlb("menu")
	obnov
	.uloz_a_zavri("/home/firma/databázy/mzdy data.ods")
	rem --------------------------------------------export dát----------------------- zošit č.3----(do šablony faktúra)
	.otvor( "/home/firma/šablony/mzdy.ots" )'otvorenie databázy
	.najdi(zaznam,"data")
	.vloz
	.vyberlb("mzdy")
	.uloz_a_zavri("/home/firma/šablony/mzdy.ots")
end with
msgbox("Všetky údaje boli aktualizované",0,"Databáza")'hláška
return
end sub

sub export_data 'z mzdy data
dim tlacidlo as integer
dim zmena as string
dim dokument,list,bunka_zmena as object
dokument=stardesktop.currentcomponent
list=dokument.sheets(14)
bunka_zmena=list.GetCellByPosition(3,10)'D11
zmena=trim(bunka_zmena.string)

tlacidlo=msgbox("Exportovať zmenené dáta?", 35,"Uloženie dokumentu"'kontrolná otázka
if tlacidlo=6 then ' export
obnov
with ovladanie
	.vyberlb("export","A2:N101")
	.zkopiruj
	.vyberlb("menu")	
	.otvor("/home/firma/šablony/mzdy.ots")
	.vyberlb("vstupy","A2")
	.vloz
	.vyberlb("mzdy")
	.uloz_zosit("/home/firma/šablony/mzdy.ots")
end with
msgbox("Všetky nové a zmenené údaje boli uložené do databázy",0,"Databáza")'hláška
else'zrušiť
endif		
end sub

sub obnov' dáta
with ovladanie
	.aktualizovat_tabulky("tabulka N","A1")
	.aktualizovat_tabulky("tabulky D","A1")
	.aktualizovat_tabulky("tabulky D","H1")
	.aktualizovat_tabulky("tabulky D","P1")
	.vyberlb("menu")
end with	
end sub

sub exportuj_pracovnika 'z mzdy data
dim document, dispatcher, dokument, list, bunka, bunka_cislo   as object
dim novy, cislo as string

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dokument   =stardesktop.currentcomponent          
list       =dokument.sheets(13)'list14
bunka      =list.GetCellByPosition(0,23)'A24
novy      =trim(bunka.string)
bunka_cislo=list.GetCellByPosition(1,21)'B22
cislo=trim(bunka_cislo.string)

dim hore(1) as new com.sun.star.beans.PropertyValue
hore(0).Name = "By"
hore(0).Value = 1
hore(1).Name = "Sel"
hore(1).Value = false

dim vlavo(1)as new com.sun.star.beans.PropertyValue
vlavo(0).Name = "By"
vlavo(0).Value = 13
vlavo(1).Name = "Sel"
vlavo(1).Value = false


if novy="1" then
	gosub kopiruj
	ovladanie.vyberlb("pracovníci","O10000")
	ovladanie.vyber("pracovníci","O10000")
	dispatcher.executeDispatch(document, ".uno:GoUpToStartOfData", "", 0, hore())
	dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array()
	dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, vlavo())'skok vľavo o 13 buniek
	ovladanie.vloz
	ovladanie.vyberlb("pracovník")
else
	gosub kopiruj
	ovladanie.najdi (cislo,"pracovníci")
	dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, vlavo())'skok vľavo o 13 buniek
	ovladanie.vloz
	ovladanie.vyberlb("pracovník")
endif
	ovladanie.vymaz("pracovník","B9:B21")
	ovladanie.vymaz("pracovník","C44")
	ovladanie.vyberlb("pracovník","B9")
exit sub
    kopiruj:
		ovladanie.vyberlb("pracovník","A2:AM2")'<-----označenie buniek
		ovladanie.zkopiruj '<------zkopírovanie
	return	
end sub

sub tlacit_pasky
dim oDoc as object
ovladanie.vyberlb("pásky")
oDoc=ThisComponent
oDoc.Print(Array())
ovladanie.vyberlb("menu")'návrat na menu
end sub

sub tlacit_sumar
dim oDoc as object
ovladanie.vyberlb("mesačný sumár")
oDoc=ThisComponent
oDoc.Print(Array())
ovladanie.vyberlb("menu")'návrat na menu
end sub

sub tlacit_mzdovy_list
dim oDoc as object
ovladanie.vyberlb("mzdové listy")
oDoc=ThisComponent
oDoc.Print(Array())
ovladanie.vyberlb("tabulka ml")
end sub

sub list_pracovnik
ovladanie.vyberlb("pracovník")

end sub
sub list_pracovnici
ovladanie.vyberlb("pracovníci")
end sub

sub list_menu
ovladanie.vyberlb("menu")
end sub

sub list_pasky
ovladanie.vyberlb("pásky")
end sub

sub list_tabulka_mesacny_sumar
ovladanie.vyberlb("tabulka mesačný sumár")
end sub

sub list_mesacny_sumar
ovladanie.vyberlb("mesačný sumár")
end sub


sub list_tabulka_vstupy
ovladanie.vyberlb("tabulka vstupy")
end sub

sub list_tabulka_mzdove_listy
ovladanie.vyberlb("tabulka ml")
end sub

sub list_mzdove_listy
ovladanie.vyberlb("mzdové listy")
end sub


