REM  *****  BASIC  *****

sub skontroluj_sablona_faktura
'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("faktúra")
end sub

sub export 'pre faktúru euro
dim  tlacidlo, tlacidlo1 ,cislo,zaznam as integer
dim dokument,oDoc,octl,ocell, list, bunka ,document, dispatcher, bunka_zaznam,bunka_cesta as object
dim cesta as 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

document= ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dokument=stardesktop.currentcomponent
list=dokument.sheets(0)
bunka=list.GetCellByPosition(11,0)'L1
cislo=trim(bunka.string)
bunka_zaznam=list.GetCellByPosition(10,0)'K1
zaznam=trim(bunka_zaznam.string)
bunka_cesta=list.GetCellByPosition(9,0)'J1
cesta=trim(bunka_cesta.string)

'zafixovanie dát:
ovladanie.vyberlb("faktúra","C3")'dátum
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
ovladanie.vloz


'uloženie dát:
'------------------------------------------------------------------------------------------------------------------------
tlacidlo=msgbox("Chceš uložiť dáta z dokumentu ako záznam do databázy?", 35,"Databáza")
if tlacidlo=6 then ' ano tlacidlo
ovladanie.uloz_novy_zosit("/media/hda5/lugesa/faktúry/faktúra "+cesta+".ods")'uloženie tohto dokumentu
	if zaznam=1 then 'záznam už je v databáze'//////////////////////////////////////////////////////
			'-------------tento zošit---------------------------
			ovladanie.aktualizovat_tabulky("spotreba","A1")
			    gosub kopiruj
				with ovladanie
					.vyberlb("faktúra","C3")
					.uloz_zosit("/media/hda5/lugesa/faktúry/faktúra "+cesta+".ods")
					.otvor("/media/hda5/lugesa/databázy/faktúry.ods")	
					.najdi(cislo,"data")
					.vloz
					.uloz_zosit("/media/hda5/lugesa/databázy/faktúry.ods")
				end with
			msgbox("Všetky údaje z faktúry č."+cesta+"  boli zaktualizované ",0,"Databáza")'hláška
	'-----------------------------------------------------------------------------------------
	elseif zaznam=0  then' zaznam nie je v databáze ////////////////////////////////////////////////////////////////
	'--------------tento zošit---------------------------------------
	'--------------fix čísla faktúry---------------------------------
	        gosub fix
			'---------------zošit----(databáza)
			gosub kopiruj
			ovladanie.vyberlb("faktúra","C3")
			ovladanie.otvor("/media/hda5/lugesa/databázy/faktúry.ods")
			ovladanie.vyberlb("data","A10000")
			gosub vloz_novyzaznam
			ovladanie.uloz_zosit("/media/hda5/lugesa/databázy/faktúry.ods")
			msgbox("Všetky údaje boli uložené do databázy",0,"Databáza")'hláška
			'-------------------------------------------------------------------------------------		
			ovladanie.uloz_zosit("/media/hda5/lugesa/faktúry/faktúra "+cesta+".ods")'uloženie a zatvorenie dokumentu
			'-------------------------------------------------------------------------------------
	elseif zaznam=2 then'dokument bol uložený ale záznam nie ////////////////////////////////////////////////////////
	        '--------------fix čísla faktúry---------------------------------
	        gosub fix
			'---------------zošit ----(databáza)
			gosub kopiruj
			ovladanie.vyberlb("faktúra","C3")
			ovladanie.otvor("/media/hda5/lugesa/databázy/faktúry.ods")
			ovladanie.vyberlb("data","A10000")
			gosub vloz_novyzaznam
			ovladanie.uloz_zosit("/media/hda5/lugesa/databázy/faktúry.ods" )
			bunka_zaznam.value=1 'vloží číslo 1 do bunky K1 (že je už uložené do databázy)
			msgbox("Všetky údaje boli uložené do databázy",0,"Databáza")'hláška
		    '-------------------------------------------------------------------------------------
			ovladanie.uloz_zosit("/media/hda5/lugesa/faktúry/faktúra "+cesta+".ods")'uloženie a zatvorenie dokumentu
			'-------------------------------------------------------------------------------------
	end if' koniec zaznam
'-------------------------------------------------------------------------------------
elseif tlacidlo=7 then ' nie tlacidlo
			tlacidlo1=msgbox("Chceš aspoň uložiť dokument ako koncept faktúra "+cesta+".ods?", 35,"Databáza")
	if tlacidlo1=6 then ' ano tlacidlo
			bunka_zaznam.Value=2 'vloží číslo 2 do bunky K1 (že je zošit uložený, ale neuložené do databázy)
			ovladanie.uloz_novy_zosit("/media/hda5/lugesa/faktúry/pripravené/faktúra "+cesta+".ods")'uloženie dokumentu
			document.Close(true) 'zavrieť dokument
	elseif  tlacidlo1=7 then   'nie tlacidlo2
			document.Close(true)       'zavrieť dokument bez uloženia
	endif' koniec tlacidlo1
'-------------------------------------------------------------------------------------------------------------------
end if' koniec tlacidlo
exit sub
'-------------------------------------------------------------------------------------------------------------------
vloz_novyzaznam:
set document= ThisComponent.CurrentController.Frame
dispatcher.executeDispatch(document, ".uno:GoUPToStartOfData", "", 0, hore())'presun na koniec dát
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())'skok na nasledujúcu bunku
ovladanie.vloz
return

fix:
ovladanie.vyberlb("faktúra","J1")'číslo faktúry
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
ovladanie.vloz
return

kopiruj:
with ovladanie
 		.vyberlb("export","A2:GP2")
		.zkopiruj
end with		
return
end sub

sub fa_export_pdf
dim dokument, list, bunka  as object
dim  cesta as string
dokument=stardesktop.currentcomponent
list=dokument.sheets(0)'list1
bunka=list.GetCellByPosition(9,0)'J1
cesta=trim(bunka.string)
ovladanie.SheetToPDF("pdf","/media/hda5/lugesa/faktúry/pdf/faktura "+cesta+".pdf")
ovladanie.vyberlb("faktúra")
end sub

sub novy
dim dokument as object
kontakty.novy_odberatel
dokument=ThisComponent
dokument.Close(true)          'zavrieť(dokument)
dim sURL as string
  sURL = ConvertToURL("/media/hda5/lugesa/šablony/faktúra.ots")
dim Args(0) as new com.sun.star.beans.PropertyValue
  Args(0).Name = "AsTemplate"
  Args(0).Value = true
dim oDoc as object
  set oDoc = StarDesktop.loadComponentFromURL(sURL, " ", 0, Args())
end sub

sub tlacit_fakturu1
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Copies"
args1(0).Value = 2
args1(1).Name = "RangeText"
args1(1).Value = "1"
args1(2).Name = "Collate"
args1(2).Value = true
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args1())
end sub

sub tlacit_fakturu
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Copies"
args1(0).Value = 2
args1(1).Name = "Collate"
args1(1).Value = true
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args1())
end sub

sub export_stary_korunovy 'pre faktúru
dim  tlacidlo, tlacidlo1 ,cislo,zaznam as integer
dim dokument,oDoc,octl,ocell, list, bunka ,document, dispatcher, bunka_zaznam,bunka_cesta as object
dim cesta as 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

document= ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dokument=stardesktop.currentcomponent
list=dokument.sheets(0)
bunka=list.GetCellByPosition(11,0)'L1
cislo=trim(bunka.string)
bunka_zaznam=list.GetCellByPosition(10,0)'K1
zaznam=trim(bunka_zaznam.string)
bunka_cesta=list.GetCellByPosition(9,0)'J1
cesta=trim(bunka_cesta.string)

'zafixovanie dát:
ovladanie.vyberlb("faktúra","C3")'dátum
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
ovladanie.vloz
ovladanie.vyberlb("faktúra","J1")'číslo faktúry
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
	with ovladanie
		.vloz
		'zkopírovanie:
		.aktualizovat_tabulky("spotreba","A1")
		.vyberlb("export","A2:GP2")
		.zkopiruj
		.vyberlb("faktúra")
	end with
'uloženie dát:
'------------------------------------------------------------------------------------------------------------------------
tlacidlo=msgbox("Chceš uložiť dáta z dokumentu ako záznam do databázy?", 35,"Databáza")
if tlacidlo=6 then ' ano tlacidlo
ovladanie.uloz_novy_zosit("/media/hda5/lugesa/faktúry/faktúra "+cesta+".ods")'uloženie tohto dokumentu
	if zaznam=1 then 'záznam už je v databáze'//////////////////////////////////////////////////////
			'-------------tento zošit---------------------------
			'gosub kopiruj_zaznam
				with ovladanie
					.vyberlb("faktúra")
					.uloz_zosit("/media/hda5/lugesa/faktúry/faktúra "+cesta+".ods")
					.otvor("/media/hda5/lugesa/databázy/faktúry.ods")	
					.najdi(cislo,"data")
					.vloz
					.uloz_zosit("/media/hda5/lugesa/databázy/faktúry.ods")
				end with
			msgbox("Všetky údaje z faktúry č."+cesta+"  boli zaktualizované ",0,"Databáza")'hláška
	'-----------------------------------------------------------------------------------------
	elseif zaznam=0  then' zaznam nie je v databáze ////////////////////////////////////////////////////////////////
	'--------------tento zošit---------------------------------------
			gosub kopiruj
			ovladanie.vyberlb("faktury","A10000")'nájdenie listu kam sa vložia dáta
			gosub vloz_novyzaznam
			ovladanie.vyberlb("faktúra")
			rem --------uloženie dát--zošit č.2----(Šablona)
			ovladanie.otvor("/media/hda5/lugesa/šablony/faktúra.ots")
			ovladanie.vyberlb("faktury","A10000")
			gosub vloz_novyzaznam
			ovladanie.vyberlb("faktúra")
			ovladanie.uloz_zosit("/media/hda5/lugesa/šablony/faktúra.ots")
			'---------------zošit č.3----(databáza)
			'gosub kopiruj_zaznam
			ovladanie.otvor("/media/hda5/lugesa/databázy/faktúry.ods")
			ovladanie.vyberlb("data","A10000")
			gosub vloz_novyzaznam
			ovladanie.uloz_zosit("/media/hda5/lugesa/databázy/faktúry.ods")
			msgbox("Všetky údaje boli uložené do databázy",0,"Databáza")'hláška
			'-------------------------------------------------------------------------------------
			ovladanie.uloz_zosit("/media/hda5/lugesa/faktúry/faktúra "+cesta+".ods")'uloženie a zatvorenie dokumentu
			'-------------------------------------------------------------------------------------
	elseif zaznam=2 then'dokument bol uložený ale záznam nie (je potrebné zistiť nové číslo dokumentu )
	'----------------------------------------------------
			with ovladanie
				.otvor("/media/hda5/lugesa/šablony/faktúra.ots")
				.vyberlb("faktúra","J1")
				.zkopiruj		
			end with
			document.Close(true) 'zavriet (dokument)
			ovladanie.vyberlb("faktúra","J1")
			ovladanie.vloz	
			rem --------uloženie dát--zošit č.1----(Šablona)
			gosub kopiruj'_cislo
			ovladanie.otvor("/media/hda5/lugesa/šablony/faktúra.ots")
			ovladanie.vyberlb("faktury","A10000")
			gosub vloz_novyzaznam
			ovladanie.vyberlb("faktúra")
			ovladanie.uloz_zosit("/media/hda5/lugesa/šablony/faktúra.ots")
			'---------------zošit č.2----(databáza)
			'gosub kopiruj_zaznam
			ovladanie.otvor("/media/hda5/lugesa/databázy/faktúry.ods")
			ovladanie.vyberlb("data","A10000")
			gosub vloz_novyzaznam
			ovladanie.uloz_zosit("/media/hda5/lugesa/databázy/faktúry.ods" )
			bunka_zaznam.value=1
			'msgbox("Všetky údaje boli uložené do databázy",0,"Databáza")'hláška
			dokument.Store("",Array())    'ulozit(dokument)
			dokument.Close(true)          'zavrieť(dokument)
	end if' koniec zaznam
'-------------------------------------------------------------------------------------
elseif tlacidlo=7 then ' nie tlacidlo
			tlacidlo1=msgbox("Chceš aspoň uložiť dokument ako koncept faktúra "+cesta+".ods?", 35,"Databáza")
	if tlacidlo1=6 then ' ano tlacidlo
			bunka_zaznam.Value=2
			ovladanie.uloz_novy_zosit("/media/hda5/lugesa/faktúry/pripravené/faktúra "+cesta+".ods")'uloženie dokumentu
			document.Close(true) 'zavrieť dokument
	elseif  tlacidlo1=7 then   'nie tlacidlo2
			document.Close(true)       'zavrieť dokument bez uloženia
	endif' koniec tlacidlo1
'-------------------------------------------------------------------------------------------------------------------
end if' koniec tlacidlo
exit sub
'-------------------------------------------------------------------------------------------------------------------
vloz_novyzaznam:
set document= ThisComponent.CurrentController.Frame
dispatcher.executeDispatch(document, ".uno:GoUPToStartOfData", "", 0, hore())'presun na koniec dát
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())'skok na nasledujúcu bunku
ovladanie.vloz
return

'kopiruj_cislo:
'with ovladanie
' 		.vyberlb("export","A2")
'		.zkopiruj
'end with		
'return

kopiruj:
with ovladanie
 		.vyberlb("export","A2:GP2")
		.zkopiruj
end with		
return
end sub

