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)
bunka_odberatel=list.GetCellByPosition(5,7)'F8
odberatel=trim(bunka_odberatel.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("C:\firma\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("C:\firma\faktúry\faktúra "+cesta+".ods")
					.otvor("C:\firma\databázy\faktúry.ods")	
					.najdi(cislo,"data")
					.vloz
					.uloz_zosit("C:\firma\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("C:\firma\databázy\faktúry.ods")
			ovladanie.vyberlb("data","A10000")
			gosub vloz_novyzaznam
			ovladanie.uloz_zosit("C:\firma\databázy\faktúry.ods")
			msgbox("Všetky údaje boli uložené do databázy",0,"Databáza")'hláška
			'-------------------------------------------------------------------------------------		
			ovladanie.uloz_zosit("C:\firma\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
	        ovladanie.uloz_ako("C:\firma\faktúry\faktúra "+cesta+".ods")'uloženie dokumentu
			'---------------zošit ----(databáza)
			gosub kopiruj
			ovladanie.vyberlb("faktúra","C3")
			ovladanie.otvor("C:\firma\databázy\faktúry.ods")
			ovladanie.vyberlb("data","A10000")
			gosub vloz_novyzaznam
			ovladanie.uloz_zosit("C:\firma\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_a_zavri'ulož a zavri
			'-------------------------------------------------------------------------------------
	end if' koniec zaznam
'-------------------------------------------------------------------------------------
elseif tlacidlo=7 then ' nie tlacidlo
			tlacidlo1=msgbox("Chceš aspoň uložiť dokument ako koncept faktúra "+odberatel+".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("C:\firma\faktúry\pripravené\faktúra "+odberatel+".ods")'uloženie dokumentu
			ovladanie.zavri 'zavrieť dokument
	elseif  tlacidlo1=7 then   'nie tlacidlo2
			ovladanie.zavri       '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","C:\firma\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("C:\firma\š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_obchod 'pre faktúru obchodnej firmy
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)
bunka_odberatel=list.GetCellByPosition(5,7)'F8
odberatel=trim(bunka_odberatel.string)
'zafixovanie dátumu faktúry:
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("C:\firma\obchod\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 nove_mnozstva
		gosub kopiruj
			with ovladanie
				.vyberlb("faktúra","C3")
				.uloz_zosit("C:\firma\obchod\faktúry\faktúra "+cesta+".ods")
				.otvor("C:\firma\obchod\databázy\faktúry.ods")	
				.najdi(cislo,"data")
				.vloz
				.uloz_zosit("C:\firma\obchod\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
	        gosub fix_odpoctu
	        gosub vloz_tovary
			'---------------zošit----(databáza)
			gosub kopiruj
			ovladanie.vyberlb("faktúra","C3")
			ovladanie.otvor("C:\firma\obchod\databázy\faktúry.ods")
			ovladanie.vyberlb("data","A10000")
			gosub vloz_novyzaznam
			ovladanie.uloz_zosit("C:\firma\obchod\databázy\faktúry.ods")
			msgbox("Všetky údaje boli uložené do databázy",0,"Databáza")'hláška
			'-------------------------------------------------------------------------------------		
			ovladanie.uloz_zosit("C:\firma\obchod\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---------------------------------
		    ovladanie.uloz_ako("C:\firma\obchod\faktúry\faktúra "+cesta+".ods")'uloženie tohto dokumentu
			gosub nove_mnozstva
	        gosub fix
			gosub fix_odpoctu
	        ovladanie.uloz_ako("C:\firma\obchod\faktúry\faktúra "+cesta+".ods")'uloženie dokumentu
			'---------------zošit ----(databáza)
			gosub kopiruj
			ovladanie.vyberlb("faktúra","C3")
			ovladanie.otvor("C:\firma\obchod\databázy\faktúry.ods")
			ovladanie.vyberlb("data","A10000")
			gosub vloz_novyzaznam
			ovladanie.uloz_zosit("C:\firma\obchod\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.nastav_subor("faktúra "+cesta+"")		
			ovladanie.uloz_a_zavri'ulož a zavri
			'-------------------------------------------------------------------------------------
	end if' koniec zaznam
'-------------------------------------------------------------------------------------
elseif tlacidlo=7 then ' nie tlacidlo
			tlacidlo1=msgbox("Chceš aspoň uložiť dokument ako koncept faktúra "+odberatel+".ods?", 35,"Databáza")
	if tlacidlo1=6 then ' ano tlacidlo
	        gosub fix_odpoctu
			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("C:\firma\obchod\faktúry\pripravené\faktúra "+odberatel+".ods")'uloženie dokumentu
			ovladanie.zavri 'zavrieť dokument
	elseif  tlacidlo1=7 then   'nie tlacidlo2
			ovladanie.zavri       '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.nastav_subor("faktúra "+cesta+"")
ovladanie.vyberlb("faktúra","J1")'číslo faktúry
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
ovladanie.vloz
return

kopiruj:
with ovladanie
		.nastav_subor("faktúra "+cesta+"")
 		.vyberlb("export","A2:FR2")
		.zkopiruj
end with
return
'manipulácia so skladom
fix_odpoctu:
with ovladanie
 		.vyberlb("tovary","M2:M500")
		.zkopiruj
		.vyberlb("","O2")
		.vloz
		.vyberlb("faktúra","C3")
end with		
return

nove_mnozstva:
with ovladanie
		.otvor("C:\firma\obchod\databázy\tovary.ods")
 		.vyberlb("data","J2:J500")
		.zkopiruj 'nové dáta zkopírované
		.nastav_subor("faktúra "+cesta+"")
		.vyberlb("tovary","P2")
		.vloz 'nové dáta vložené
		.vyberlb("tovary","Q2:Q500")
		.zkopiruj'upravené množstvá zkopírované
		.vyberlb("faktúra","C3")
		.nastav_subor("tovary")
		.vyberlb("data","J2")
		.vloz'upravené množstvá vložené
		.uloz_a_zavri'ulož a zavri tovary.ods
		.otvor("C:\firma\obchod\šablony\faktúra.ots")
		.vyberlb("tovary","J2")
		.vloz'množstvá vložené
		.vyberlb("faktúra","C3")
		.uloz_a_zavri'ulož a zavri faktúra.ots
end with
return

vloz_tovary:
with ovladanie
		.vyberlb("tovary","N2:N500")
		.zkopiruj
		.vyberlb("faktúra","C3")
		.otvor("C:\firma\obchod\šablony\faktúra.ots")
		.vyberlb("tovary","J2")
		.vloz'množstvá vložené
		.vyberlb("faktúra","C3")
		.uloz_a_zavri'ulož a zavri faktúra.ots
		.otvor("C:\firma\obchod\databázy\tovary.ods")
 		.vyberlb("data","J2")
		.vloz'množstvá vložené
		.uloz_a_zavri'ulož a zavri tovary.ods
end with
return

end sub
