REM  *****  BASIC  *****							

sub skontroluj_sablona_objednavka
'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("objednávka")
end sub

sub tlacit_objednavku 'pozor pri tomto makre musí byť OO-calc nastavený defaultne na tlačiť len vybrané listy
dim oDoc as object
ovladanie.vyberlb("pdf")
oDoc=ThisComponent
oDoc.Print(Array())
ovladanie.vyberlb("objednávka")
end sub

sub tlacit_aj_list_vyroby 'pozor pri tomto makre musí byť OO-calc nastavený defaultne na tlačiť len vybrané listy
tlacit_list_vyroby
tlacit_objednavku
end sub

sub spet_na_objednavku
ovladanie.vyberlb("objednávka")
end sub

sub prezriet_list_vyroby
	with ovladanie
		.aktualizovat_tabulky("list výroby","O2")
		.aktualizovat_tabulky("list výroby","D50")
		.vyberlb("list výroby","A4")
	end with
end sub

sub tlacit_list_vyroby 'pozor pri tomto makre musí byť OO-calc nastavený defaultne na tlačiť len vybrané listy
dim oDoc as object
oDoc=ThisComponent
prezriet_list_vyroby
oDoc.Print(Array())
ovladanie.vyberlb("objednávka")
end sub

sub ob_export_pdf
dim list, bunka, dokument, bunka1, bunka2, dispatcher, document as object
dim subor, subor1, druh as string
dokument=stardesktop.currentcomponent
list=dokument.sheets(0)'list1
bunka=list.GetCellByPosition(5,3)'F4 názov firmy
bunka1=list.GetCellByPosition(2,3)'C4 číslo objednávky
bunka2=list.GetCellByPosition(12,1)'M2 druh dokumentu
subor=trim(bunka.string)          ' názov firmy
subor1=trim(bunka1.string)        ' číslo objednávky
druh=trim(bunka2.string)          ' druh dokumentu

if druh=1 then 'je to objednávka
ovladanie.SheetToPDF("pdf","C:\firma\obchod\objednávky\pdf\"+subor+" ob"+subor1+".pdf")
else 'je to ponuka
ovladanie.SheetToPDF("pdf","C:\firma\obchod\ponuky\pdf\"+subor+" ponuka"+subor1+".pdf")
endif
ovladanie.vyberlb("objednávka")
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\obchod\šablony\objednávka.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 ulozit_objednavku
dim tlacidlo, tlacidlo1 as integer
dim dokument, list, bunka, document, document1, bunka_zaznam, bunka1, bunka2, dispatcher, sablona, faktura,oDoc,octl,oCell,bunka_ponuka as object
dim subor, cislo, druh, zaznam,sURL,ponuka 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
'----------------------------------------------------------------------------------------------------------------
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dokument=stardesktop.currentcomponent
list=dokument.sheets(0)'list1
list4=dokument.sheets(3)'list4 export
bunka=list.GetCellByPosition(5,3)'F4 názov firmy
bunka1=list4.GetCellByPosition(2,1)'C2 na liste export interné číslo objednávky alebo ponuky
bunka2=list.GetCellByPosition(12,1)'M2 druh dokumentu
subor=trim(bunka.string)          ' názov firmy
cislo=trim(bunka1.string)        ' číslo objednávky
druh=trim(bunka2.string)          ' druh dokumentu
bunka_zaznam=list.GetCellByPosition(13,0)'N1 záznam
zaznam=trim(bunka_zaznam.string)' záznam
bunka_hladaj=list4.GetCellByPosition(0,1)'A2 na liste export interné číslo objednávky
hladaj=trim(bunka_hladaj.string)' číslo objednávky odberateľa
document= ThisComponent.CurrentController.Frame
'--------------------------------------------------------- kopírovanie dát------------------- zošit č.1
gosub kopiruj
'--------------------------------------------------------------------------------------------------------------
if druh="1" then' jedná sa o objednávku
'msgbox("Je to objednávka",0,"Databáza")'hláška
tlacidlo=msgbox("Chceš uložiť dáta z dokumentu ako záznam do databázy?", 35,"Databáza")
	if tlacidlo=6 then ' ano
		if zaznam="1" then ' záznam už je v databáze
		ovladanie.uloz_ako("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")
'msgbox("Záznam je v databáze",0,"Databáza")'hláška
			'------export dát------------ zošit ----(faktúra)
				with ovladanie
					.otvor("C:\firma\obchod\šablony\faktúra.ots")
					.najdi(hladaj,"objednavky")
					.vloz
					.vyberlb("faktúra")
					.uloz_zosit("C:\firma\obchod\šablony\faktúra.ots")
					.otvor("C:\firma\obchod\databázy\objednavky.ods")
					.najdi(hladaj,"objednavky")
					.vloz
					.vyberlb("objednavky")
					.uloz_zosit("C:\firma\obchod\databázy\objednavky.ods"
				end with
			msgbox("Záznam č."+cislo+" bol zaktualizovaný",0,"Databáza")'hláška
			dokument.Store("",Array())    'ulozit(dokument)
			dokument.Close(true)          'zavrieť(dokument)	
		elseif zaznam="0" then ' zaznam nie je v databáze je to nová objednávka
novy:
'msgbox("Záznam nie je v databáze",0,"Databáza")'hláška
gosub fix 'zafixovanie čísla objednávky
         with ovladanie
            		.uloz_ako("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")			
		    	gosub kopiruj
' ---------------------------export dát------------ zošit ----(faktúra)		
		            .otvor("C:\firma\obchod\šablony\faktúra.ots")
		        	.vyberlb("objednavky")
				gosub vloz				
					.vyberlb("faktúra")
					.uloz_zosit("C:\firma\obchod\šablony\faktúra.ots")
					.otvor("C:\firma\obchod\databázy\objednavky.ods")
					.vyberlb("objednavky")
				gosub vloz
					.uloz_zosit("C:\firma\obchod\databázy\objednavky.ods")
			    	.uloz_zosit("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")
		end with
'msgbox("Všetky údaje boli uložené do databázy",0,"Databáza")'hláška
		
		elseif zaznam="3" then 'dokument bol už uložený no záznam nie a bola to objednávka
msgbox("Záznam nie je v databáze, ale dokument už bol uložený a bola to objednávka",0,"Databáza")'hláška
		ovladanie.uloz_ako("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")
        	bunka_zaznam.Value=1	
			goto novy
			
			elseif zaznam="2" then 'dokument bol už uložený no záznam nie a bola to ponuka
'msgbox("Záznam nie je v databáze, ale dokument už bol uložený a bola to ponuka",0,"Databáza")'hláška
			dokument.Store("",Array())    'ulozit(dokument)
            ovladanie.uloz_ako("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")
			bunka_zaznam.Value=1	
			goto novy				
		end if ' koniec zaznam
	elseif tlacidlo=7 then ' nie (tlačidlo)
		tlacidlo1=msgbox("Chceš uložiť dokument ako "+subor+" ob"+cislo+".ods?", 33,"Uloženie dokumentu")
		if tlacidlo1=1 then 'ano (tlačidlo1)
			bunka_zaznam.Value=3
			ovladanie.uloz_ako("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")
		end if 'nie nechcem uložiť (tlačidlo1)
			document.Close(true)       'zavrieť dokument bez uloženia (dokument)
	else ' zrušiť (tlačidlo)
	end if 'koniec(tlačidlo)
'-------------------------------------------------------------------------------------------------------------------------	
else' je to cenová ponuka
    if zaznam="2" then'zaznam uz bol uložený a bola to ponuka 
   		dokument.Store("",Array())    'ulozit(dokument) 
   		gosub kopiruj
                 with ovladanie  
                    .otvor("C:\firma\obchod\databázy\objednavky.ods")
					.najdi(hladaj,"ponuky")
					.vloz
					.uloz_zosit("C:\firma\obchod\databázy\objednavky.ods"
				end with
			msgbox("Záznam č."+cislo+" bol zaktualizovaný",0,"Databáza")'hláška
			dokument.Close(true)'zavrieť dokument
	else	'zaznam nebol ulozený a je to nová cenová ponuka 	
		msgbox("uloží sa ako "+subor+" ponuka "+cislo+".ods  ",0,"Databáza")'hláška
		gosub fix1 'zafixovanie čísla ponuky
		bunka_zaznam.Value=2
		gosub kopiruj
		         with ovladanie
		            .uloz_ako("C:\firma\obchod\ponuky\"+subor+" ponuka"+cislo+".ods")
					.otvor("C:\firma\obchod\databázy\objednavky.ods")
					.vyberlb("ponuky")
				gosub vloz
					.uloz_zosit("C:\firma\obchod\databázy\objednavky.ods"
					.uloz_zosit("C:\firma\obchod\ponuky\"+subor+" ponuka"+cislo+".ods")
				end with
	endif
endif' koniec druh dokumentu
exit sub

vloz:
ovladanie.vyberlb("","A10000")
set document= ThisComponent.CurrentController.Frame
dispatcher.executeDispatch(document, ".uno:GoUpToStartOfData", "", 0, hore())
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array()
ovladanie.vloz
return

kopiruj:
with ovladanie
	.vyberlb("export","A2:FK2")
	.zkopiruj
	.vyberlb("objednávka")
end with
return

fix:
'zafixovanie dát:
ovladanie.vyberlb("objednávka","L1")
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
ovladanie.vloz
return

fix1:
'zafixovanie dát:
ovladanie.vyberlb("objednávka","L3")
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
ovladanie.vloz
return

end sub

sub ulozit_objednavku_obchod
dim tlacidlo, tlacidlo1 as integer
dim dokument, list, bunka, document, document1, bunka_zaznam, bunka1, bunka2, dispatcher, sablona, faktura,oDoc,octl,oCell,bunka_ponuka as object
dim subor, cislo, druh, zaznam,sURL,ponuka 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
'----------------------------------------------------------------------------------------------------------------
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dokument=stardesktop.currentcomponent
list=dokument.sheets(0)'list1
list4=dokument.sheets(3)'list4 export
bunka=list.GetCellByPosition(5,3)'F4 názov firmy
bunka1=list4.GetCellByPosition(2,1)'C2 na liste export interné číslo objednávky alebo ponuky
bunka2=list.GetCellByPosition(12,1)'M2 druh dokumentu
subor=trim(bunka.string)          ' názov firmy
cislo=trim(bunka1.string)        ' číslo objednávky
druh=trim(bunka2.string)          ' druh dokumentu
bunka_zaznam=list.GetCellByPosition(13,0)'N1 záznam
zaznam=trim(bunka_zaznam.string)' záznam
bunka_hladaj=list4.GetCellByPosition(0,1)'A2 na liste export interné číslo objednávky
hladaj=trim(bunka_hladaj.string)' číslo objednávky odberateľa
document= ThisComponent.CurrentController.Frame
'--------------------------------------------------------- kopírovanie dát------------------- zošit č.1
gosub kopiruj
'--------------------------------------------------------------------------------------------------------------
if druh="1" then' jedná sa o objednávku
'msgbox("Je to objednávka",0,"Databáza")'hláška
tlacidlo=msgbox("Chceš uložiť dáta z dokumentu ako záznam do databázy?", 35,"Databáza")
	if tlacidlo=6 then ' ano
		if zaznam="1" then ' záznam už je v databáze
		ovladanie.uloz_ako("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")
'msgbox("Záznam je v databáze",0,"Databáza")'hláška
			'------export dát------------ zošit ----(faktúra)
				with ovladanie
					.otvor("C:\firma\obchod\šablony\faktúra.ots")
					.najdi(hladaj,"objednavky")
					.vloz
					.vyberlb("faktúra")
					.uloz_zosit("C:\firma\obchod\šablony\faktúra.ots")
					.otvor("C:\firma\obchod\databázy\objednavky.ods")
					.najdi(hladaj,"objednavky")
					.vloz
					.vyberlb("objednavky")
					.uloz_zosit("C:\firma\obchod\databázy\objednavky.ods"
				end with
			msgbox("Záznam č."+cislo+" bol zaktualizovaný",0,"Databáza")'hláška
			dokument.Store("",Array())    'ulozit(dokument)
			dokument.Close(true)          'zavrieť(dokument)	
		elseif zaznam="0" then ' zaznam nie je v databáze je to nová objednávka
novy:
'msgbox("Záznam nie je v databáze",0,"Databáza")'hláška
gosub fix 'zafixovanie čísla objednávky
         with ovladanie
            		.uloz_ako("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")			
		    	gosub kopiruj
' ---------------------------export dát------------ zošit ----(faktúra)		
		            .otvor("C:\firma\obchod\šablony\faktúra.ots")
		        	.vyberlb("objednavky")
				gosub vloz				
					.vyberlb("faktúra")
					.uloz_zosit("C:\firma\obchod\šablony\faktúra.ots")
					.otvor("C:\firma\obchod\databázy\objednavky.ods")
					.vyberlb("objednavky")
				gosub vloz
					.uloz_zosit("C:\firma\obchod\databázy\objednavky.ods")
			    	.uloz_zosit("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")
		end with
'msgbox("Všetky údaje boli uložené do databázy",0,"Databáza")'hláška
		
		elseif zaznam="3" then 'dokument bol už uložený no záznam nie a bola to objednávka
msgbox("Záznam nie je v databáze, ale dokument už bol uložený a bola to objednávka",0,"Databáza")'hláška
		ovladanie.uloz_ako("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")
        	bunka_zaznam.Value=1	
			goto novy
			
			elseif zaznam="2" then 'dokument bol už uložený no záznam nie a bola to ponuka
'msgbox("Záznam nie je v databáze, ale dokument už bol uložený a bola to ponuka",0,"Databáza")'hláška
			dokument.Store("",Array())    'ulozit(dokument)
            ovladanie.uloz_ako("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")
			bunka_zaznam.Value=1	
			goto novy				
		end if ' koniec zaznam
	elseif tlacidlo=7 then ' nie (tlačidlo)
		tlacidlo1=msgbox("Chceš uložiť dokument ako "+subor+" ob"+cislo+".ods?", 33,"Uloženie dokumentu")
		if tlacidlo1=1 then 'ano (tlačidlo1)
			bunka_zaznam.Value=3
			ovladanie.uloz_ako("C:\firma\obchod\objednávky\"+subor+" ob"+cislo+".ods")
		end if 'nie nechcem uložiť (tlačidlo1)
			document.Close(true)       'zavrieť dokument bez uloženia (dokument)
	else ' zrušiť (tlačidlo)
	end if 'koniec(tlačidlo)
'-------------------------------------------------------------------------------------------------------------------------	
else' je to cenová ponuka
    if zaznam="2" then'zaznam uz bol uložený a bola to ponuka 
   		dokument.Store("",Array())    'ulozit(dokument) 
   		gosub kopiruj
                 with ovladanie  
                    .otvor("C:\firma\obchod\databázy\objednavky.ods")
					.najdi(hladaj,"ponuky")
					.vloz
					.uloz_zosit("C:\firma\obchod\databázy\objednavky.ods"
				end with
			msgbox("Záznam č."+cislo+" bol zaktualizovaný",0,"Databáza")'hláška
			dokument.Close(true)'zavrieť dokument
	else	'zaznam nebol ulozený a je to nová cenová ponuka 	
		msgbox("uloží sa ako "+subor+" ponuka "+cislo+".ods  ",0,"Databáza")'hláška
		gosub fix1 'zafixovanie čísla ponuky
		bunka_zaznam.Value=2
		gosub kopiruj
		         with ovladanie
		            .uloz_ako("C:\firma\obchod\ponuky\"+subor+" ponuka"+cislo+".ods")
					.otvor("C:\firma\obchod\databázy\objednavky.ods")
					.vyberlb("ponuky")
				gosub vloz
					.uloz_zosit("C:\firma\obchod\databázy\objednavky.ods"
					.uloz_zosit("C:\firma\obchod\ponuky\"+subor+" ponuka"+cislo+".ods")
				end with
	endif
endif' koniec druh dokumentu
exit sub

vloz:
ovladanie.vyberlb("","A10000")
set document= ThisComponent.CurrentController.Frame
dispatcher.executeDispatch(document, ".uno:GoUpToStartOfData", "", 0, hore())
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array()
ovladanie.vloz
return

kopiruj:
with ovladanie
	.vyberlb("export","A2:FK2")
	.zkopiruj
	.vyberlb("objednávka")
end with
return

fix:
'zafixovanie dát:
ovladanie.vyberlb("objednávka","L1")
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
ovladanie.vloz
return

fix1:
'zafixovanie dát:
ovladanie.vyberlb("objednávka","L3")
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
ovladanie.vloz
return

end sub


