//"dokexpk1.sci","Dokument eksportowy korygujący - include","\Dokumenty\Sprzedaż\",0,2.1.12,SYSTEM
//////////////////////////
// Dokument eksportowy korygujący - include
// dokexpk1.sci
/////////////////////////
#include "Wydruki - include"

int sub DrukujKontakt(string t1, string t2, string fx, string eml, int flatmode)
	if flatmode then
		if t1 then
			SetFont("tekst") : print TEL_L +": "
			SetFont(nb)	:		print t1
			if t2 then print ", ";t2
			flatmode = 0
		endif
		if fx then
			if !flatmode then print "   "
			SetFont("tekst") : print FAX_L +": "
			SetFont(nb) : print fx;
			flatmode=0
		endif
		if eml then
			if !flatmode then print "     "
			SetFont("tekst") : print EMAIL_L +": "
			SetFont(nb) : print eml
		endif
		exit
	endif
	if t1 then
		tabela #tblIn
			kolumna 1
			SetFont("tekst") : print TEL_L +":"
			kolumna 2
			SetFont(nb)
			print t1
			if t2 then print ", ";t2
			if fx then
				SetFont("tekst")
				print "   "+ FAX_L +": "
				SetFont(nb)
				print fx
			endif
		koniec
	endif
	if fx && !t1 then
		tabela #tblIn
			kolumna 1
			SetFont ( "tekst" ) : print FAX_L +":"
			kolumna 2
			SetFont ( nb ) : print fx;
		koniec
	endif
	if eml then
		tabela #tblIn
			kolumna 1
			SetFont ( "tekst" ) : print EMAIL_L +":"
			kolumna 2
			SetFont ( nb ) : print eml
		koniec
	endif
endsub


int sub FRDrawContent( int FRszer, int FRwys , int FRid )
	string sPom1
	if FRid==R_PIECZEC then
		if !bmpStamp then
			SetStyl ( sc )
			print at #X,FRwys-40;PIECZEC_L
		else
			bmp = Bitmap FRszer,FRwys,sBitmap
			Bitmap #bmp
		endif
	endif
	if FRid==R_NAZWADOK then
		SetStyl ( bbc )
		pom =  TextHeight(sNazwaDok) *(1+ ( BreakLine ( FRSzer, 1, 1, sNazwaDok ) != Len( sNazwaDok ) ))
		print at #X,#Y+(FRwys-pom)/2;sNazwaDok
	endif
	if FRid==R_DATAIMIEJSCE then
		SetStyl ( nc )
		print at #X,#Y+10;sDataWyst;"  ";MiejsceWyst;LF
		SetStyl ( sc )
		print od #X,#Y;DATAWYST_L
	endif
	if FRid==R_NUMER then
		SetStyl ( nc )
		SetFont ( numr )
		y = TextHeight( sNumerDok )
		x = ( FRszer-TextWidth(sNumerDok,numr))/2
		SetStyl ( nl )
		if x<TextWidth(NR_L +" ") then
			print od (FRszer-TextWidth(NR_L +" "))/2,#Y+y-TextHeight(NR_L );NR_L ;lf
		else
			print od x-TextWidth(NR_L +" "),#Y+y-TextHeight(NR_L );NR_L
		endif
		SetStyl ( nc )
		SetFont ( numr )
		print od 0, #Y;sNumerDok
	endif
	if FRid==R_NAPIS then
		buf=sNapis
		sPom1=ChangeNapis(sNapis)
		x = TextWidth(sPom1,grub)
		if find "DUPLIKAT" then
			buf = " "+data()
		else
			buf = ""
		endif
		y = TextWidth(buf,"tekst")
		SetFont(grub)
		print at (FRSzer-x-y)/2,(FRWys-TextHeight(sPom1,grub))/2;sPom1
		SetFont("tekst")
		print at (FRSzer-x-y)/2+x,#Y+(TextHeight(sPom1,grub)-TextHeight(buf,"tekst"));buf
	endif

	if FRid==R_DATAOKRES then
		rBoxData.PrintGraf(rBoxData.PrepareData(sDataSp), sc, nc, nLang, 0, str.Pozycja(#X), str.Pozycja(#Y)+10)
	endif

	if FRid==R_BITMAP then
		bmp = Bitmap nBmpCoord(1),nBmpCoord(2),sBitmap
		Bitmap #bmp, at nBmpCoord(3),nBmpCoord(4)
	endif

	if FRid==R_SPRZEDAWCA then
        // Tymczasowo nadpisujemy dane sprzedawcy przechowywane w zmiennych
		DaneSprzedawcy tmpSprzedawca
		if CZY_WYSTAWCA Then
		    tmpSprzedawca.Nazwa 		= sFNazwa
		    tmpSprzedawca.KodPocztowy 	= sFkodPocz
		    tmpSprzedawca.Miejscowosc 	= sFMiejsce
		    tmpSprzedawca.Adres			= sFAdres
		    tmpSprzedawca.Nip			= sFNip

		    sFNazwa		= nSprzedawca.Nazwa
		    sFkodPocz	= nSprzedawca.KodPocztowy
		    sFMiejsce 	= nSprzedawca.Miejscowosc
		    sFAdres 	= nSprzedawca.Adres
		    sFNip 		= nSprzedawca.Nip

		    sFTel1	= ""
		    sFTel2	= ""
		    sFFax	= ""
		    sFEmail	= ""
		EndIf
		SetStyl ( nl )
		nPom = TextWidth(SPRZEDAWCA_L +":    ")+10
		tblIn = tabela 0,5,nPom,nl,FRszer-nPom,nbl
		tabela #tblIn
			kolumna 1,SPRZEDAWCA_L +": "
			kolumna 2,PiszWyrazy(sFNazwa,FRszer-nPom-10)
		koniec
		nPom = TextWidth(ADRES_L +":   ")+10
		tblIn = tabela 0,5,nPom,nl,FRszer-nPom,nbl
		tabela #tblIn
			kolumna 1,ADRES_L +":"
			sTmp=sFkodpocz+" "+sFMiejsce
			if sFAdres then sTmp+=", "+sFAdres
			kolumna 2, PiszWyrazy(sTMp,FRszer-nPom-10)
		koniec
		sPom = GetNipEx(sFnip)
		if sPom then
			tabela #tblIn
				kolumna 1
				SetFont ( "tekst" ) : print IIF(nLang, DajNIPe( sPom ), DajNip( sPom ))
				kolumna 2
				SetFont ( nb ) : print buf
			koniec
		endif
		if bDrukBDO == "1" && CZY_WYSTAWCA == 0 then
			tabela #tblIn
				kolumna 1,"BDO: "
				kolumna 2,sFBDO
			koniec
		endif
		If bFDaneTeleadresowe Then DrukujKontakt(sFTel1,sFTel2,sFFax,sFEmail,0)
		if bFNotatka then print sFNotatka
        // Przywracamy do zmiennych prawidłowe dane sprzedawcy
		if CZY_WYSTAWCA Then
		    sFNazwa 	= tmpSprzedawca.Nazwa 
		    sFkodPocz 	= tmpSprzedawca.KodPocztowy
		    sFMiejsce	= tmpSprzedawca.Miejscowosc
		    sFAdres  	= tmpSprzedawca.Adres
		    sFNip		= tmpSprzedawca.Nip
		endif
	endif

	if FRid==R_NABYWCA then
 	 	SetStyl ( nl )
		nPom = TextWidth(NABYWCA_L +": ")+10
		tblIn = tabela 0,5,nPom,nl,FRSzer-nPom,nbl
		If bNDane Then
			tabela #tblIn
				kolumna 1,NABYWCA_L +":"
				kolumna 2,sNabywca
				if FRszer>str.szer/2 then
					SetFont("Tekst")
		   			print "    "+ ADRES_L +": "
  		 			SetFont ( nb )
   					print sNabKodPocz;" ";sNabMiasto
					if sNabAdres then print ", ";sNabAdres
					if (sNabKrajNazwa != "Polska" && ADRES_L != "Address")  then print ", ";sNabKrajNazwa: print lf
				endif
			koniec
			nPom = TextWidth(ADRES_L +":   ")+10
			tblIn = tabela 0,5,nPom,nl,FRSzer-nPom,nbl
			if FRSzer<=str.szer/2 then
				tabela #tblIn
					kolumna 1,ADRES_L +":"
					sTmp=sNabKodPocz+" "+sNabMiasto
					if sNabAdres then sTmp+= ", "+sNabAdres
					if (sNabKrajNazwa != "Polska" && ADRES_L != "Address") then sTmp+= ", "+sNabKrajNazwa
					kolumna 2,piszwyrazy(sTmp,FRSzer-nPom-10)
				koniec
			endif
		Else
			Tabela #tblIn
				Kolumna 1, "Nabywca"
			Koniec
		EndIf
		if sNabNip then
			tabela #tblIn
				kolumna 1
				SetFont ( "tekst" ) : print IIF(nLang, DajNIPe( sNabNip ), DajNip( sNabNip )) 
				kolumna 2
   			SetFont ( nb ) : print buf;"  "
				if bKonth then SetFont ( "tekst" ) : print "  "+KOD_L+": " : SetFont ( nb ) : print sNabKod
			koniec
		endif
		if bKonth && !sNabNip then
			tabela #tblIn
				kolumna 1
				SetFont ( "tekst" ) : print " "+ KOD_L +": "
				kolumna 2
				SetFont ( nb ) : print sNabKod
			koniec
		endif
		if bKhTeleadr then DrukujKontakt(sNabTel1,sNabTel2,sNabFax,sNabEMail,FRSzer>str.szer/2)
		If bNotatkaKh Then print sNotatkaKontr
	endif

	if FRid==R_ODBIORCA then
		SetStyl ( nl )
		nPom = TextWidth ( ODBIORCA_L  +":   " )
				
		if nPom < TextWidth(ADRES_L +":   ")+10 then
			nPom = TextWidth(ADRES_L +":   ")+10
		endif

		tblIn = tabela 0,5,nPom,nl,FRszer-nPom,nbl
		tabela #tblIn
			kolumna 1,ODBIORCA_L  +": "
			kolumna 2,sOdbiorca
		koniec
		tabela #tblIn
			kolumna 1,ADRES_L +": "
			kolumna 2
			print sOdbKodPocz;" ";sOdbMiasto
			if sOdbAdres then print ", ";sOdbAdres
			if (sOdbKrajNazwa != "Polska" && ADRES_L != "Address") then print ", ";sOdbKrajNazwa: print lf
		koniec
	endif

	if FRid==R_UPOWAZW then
		x=(FRSzer-1400)/4
		nPom = tabela 0,0,x,nl,700,nl,2*x,nl,700,nl
		tabela #nPom, at 0,0
			kolumna 2
			buf = Arg5 : sPom="sc2"
			if find regular "=-(^u$)|(upowa?nienie)" then
				buf=UPOWAZ_L
			else
				if !buf then
					buf=NAZWPODPISODB_L
				else
					buf=ODEBRAL_L +": "+buf : sPom="sc3"
				endif
			endif
		 	SetStyl ( sPom )
			print at #X,#Y+210;buf
			kolumna 4
			buf= NAZWPODPISWYST_L	: sPom="sc2"
			if Arg4 then buf=WYSTAWIL_L +": "+Arg4 : sPom="sc3"
	 		SetStyl ( sPom )
			print at #X,#Y+210;buf
		koniec
		y=str.pozycja(#B)-str.pozycja(#T)
		if bRamki then
			DrawLine at x,0,700,0,1 : DrawLine at x,y,700,0,1
			DrawLine at x,0,0,y,1 : DrawLine at x+700,0,0,y,1
			x=x*3+700
			DrawLine at x,0,700,0,1 : DrawLine at x,y,700,0,1
			DrawLine at x,0,0,y,1 : DrawLine at x+700,0,0,y,1
		endif
	endif

	if FRid==R_NRDATAKORYG then
		SetStyl ( nc )
		print at #X, #Y+10; sNrKoryg
		print lf
		SetStyl( sc )
		print od #X, #Y; NUMDATAKOR_L
	endif

	if FRid==R_FORMAPLATOSCI ||  FRid==R_DOZAPLATYN then
		SetStyl ( nl )
		print FORMAPL_L +": "
		SetFont ( nb )
		print IIF(nLang, PaymentsTranslate(sPlatName), sPlatName)
		SetFont ( "tekst" )
		print iif(FRid==R_DOZAPLATYN, "\n"+ WALUTA_L +": ","    "+ WALUTA_L +": ")
		SetFont ( nb )
		print sWaluta
		if bKurs then
			SetFont ( "tekst" )
			print "   "+ KURS_L + ": "
			SetFont ( nb )
			print SformatujKursWaluty( xDocument.kurs )
		endif
		SetFont ( "tekst" )
		print iif(FRid==R_DOZAPLATYN, "\n","    ")
		print TERMINPL_L +": "
		SetFont ( nb )
		print sTerminPlat
		SetFont ( "tekst" )
		if xDocument.FormaPl.Typ==1 then
			print iif( FRid==R_DOZAPLATYN,"\n","   ")
			print BANK_L +": "
			SetFont ( nb )
			print sNazwaBanku
			SetFont ( "tekst" )
			print iif( FRid==R_DOZAPLATYN, "\n","   ")
			print KONTO_L +": "
			SetFont ( nb )
			print sKonto
						
			if bIsSwift then
				SetFont ( "tekst" )	
				if FRid==R_DOZAPLATYN then
					print lf;" Swift: "
				else
					print "   Swift: "
				endif
				SetFont ( nb )
				print sSwift
			endif
		endif
	endif

	If FRid == R_NRDATAKORYG_EXTRA Then
		SetStyl( nc )
		Print At #X , #Y + 10 ; sNrKorygExtra
		Print LF
		SetStyl( sc )
		Print Od #X , #Y ; "numer, data dokumentu korygowanego"
	EndIf

	If FRid==R_KSEFINFORMATION Then
		InsertKSeFInformation(KSEFNUMBER,xDocument.numberKsef,KSEFDATE,xDocument.dataWystawieniaKsef,nl,nb,FRszer,bRamki)		
	EndIf

endsub

int sub Dodaj(int szer, int stl )
	int siz=size(KolTab1)
	if KolTab1(1) then  //jeśli nie pierwsze wywołanie
		siz+=1
		Grow KolTab1,1
		Grow StlTab1,1
		Grow StlHead,1
	endif
	KolTab1(siz) = szer
	StlTab1(siz) = stl
	StlHead(siz) = bc
endsub

Int Sub DodajNP( Int width, Int style )
	Int count = Size( KolTab1NP )
	If KolTab1NP( 1 ) Then
		count += 1
		Grow KolTab1NP, 1
		Grow StlTab1NP, 1
		Grow StlHeadNP, 1
	EndIf
	KolTab1NP( count ) = width
	StlTab1NP( count ) = style
	StlHeadNP( count ) = bc
EndSub

	bOpisTypu	=	GetValFromIni("Opis typu dokumentu",1)
	bStanRozl	=	GetValFromIni("Stan rozliczenia",0)
	bFNotatka = GetValFromIni("Notatka firmy",0)

//****************************
offset1=5


if !bPokaz then
#ifdef SIMPLIFIED
	bPrzed = 0           // Pokazuj pozycje towarowe - Przed korekta  - Nie drukuj
	bPo = 1              //                          - Po korekcie    - Drukuj
	If EXPORTVATdefined Then
		bNettoBrutto = 0 // Wartosci                 - Netto i brutto - Nie drukuj
		bVat = 0         //                          - Vat            - Nie drukuj
	EndIf
	#include "Ustawienia wydruku uproszczonego"
#else
	Form "Ustawienia wydruku",480,305+40+offset1+offset1+offset1

	Group " Kod towaru ",5,5,150,120
	RadioBtn "W osobnej kolumnie",nKod,15,20,120,20
  	RadioBtn "Obok nazwy towaru", nKod,15,40,120,20
  	RadioBtn "Nie pokazuj",       nKod,15,60,100,20
		Text "Kod towaru:",								 15,84,60,18
		CmbBox "",CmbBoxKod,			 nKodTyp,75,80,75,100

	Group "Data/Okres sprzedaży",5,110,150,60
		rBoxData.PrepareControl(10, 127)	

		Group " Zaokrąglanie cen",5,175,150,40
		CmbBox "",CmbBoxZaokrCen,nCenaRound,88,190,62,120
		Text "Dokładność:",15,194,62,18
If EXPORTVATdefined Then
	Group "Wartości",5,220,150,60
		ChkBox "Netto i brutto",bNettoBrutto,15,235,90,20
		ChkBox "VAT", bVat,15,255,90,20
Endif
	rowY+=20
	Group "Inne elementy wydruku dokumentu",165,5,300,160+60
		ChkBox "Kod kontrahenta",bKonth,180,rowY,100,20
		ChkBox "Dane odbiorcy",bOdbiorca,180,rowY+=20,100,20
		ChkBox "Notatka",bNotat,180,rowY+=20,100,20
		ChkBox "Notatka z rodzaju",bNotatRodz,180,rowY+=20,120,20
		ChkBox "Notatka firmy",bFNotatka,180,rowY+=20,120,20
		ChkBox "Kurs waluty",bKurs,180,rowY+=20,100,20
		if CzyRabaty then ChkBox "Rabaty", bRabaty,180,rowY+=20,100,20
		ChkBox "Stan rozliczenia z dnia wystawienia", bStanRozl, 180,rowY+=20,220,20
//#ifndef WDK_ANG 
		ChkBox "Drukuj opis typu jako nazwę dokumentu", bOpisTypu, 180,rowY+=20,220,20 // 180,180
//#endif
if SHOWKSEFINFOdefined Then
		ChkBox "Informacje KSeF", bInfoKSeF, 180,rowY+=20,220,20
endif		
		ChkBox "Dane teleadresowe",	bKhTeleadr, 300,20,120,20
		Text "kontrahenta", 320,43,80,20
		ChkBox "Dekretacje księgowe", bDekretacje, 300,60,120,20
		Text	 "na kopii dokumentu",320,83,100,20
		ChkBox "Dostawy", bDostawy,300,100,100,20
If EXPORTVATdefined Then
		ChkBox "Zerowe kwoty VAT w stopce", bZerVat,300,120,160,20
EndIf
	Group " Jednostka miary ",165,rowY=230,110,60
		RadioBtn "Ewidencyjna",nJednMiary,175,rowY+=15,90,20
		RadioBtn "Wprowadzona", nJednMiary,175,rowY+=20,90,20

	Group "Pokazuj pozycje towarowe",285,rowY=230,180,60
		chkPrzed = ChkBox "Przed korektą",bPrzed,300,rowY+=15,100,20
		chkPo = ChkBox "Po korekcie",bPo,300,rowY+=20,100,20


		Button "&OK",305,rowY=300,75,25,Validate()
		Button "&Anuluj",385,rowY,75,25,ANULUJ

		bmpbtn= Button "Ustawienia &grafiki...",190,rowY,110,25,GraphSet2()
		ChkBox "Nie pokazuj tego okna ponownie",bPokaz,10,rowY+=offset1,180,20
#endif

	if ExecForm ( OnCommand ) == ANULUJ then Error ""
	nDat = rBoxData.TranslateVar()

	PutIni( sSekcja, "Przed korekta",using "%d",bPrzed )
	PutIni( sSekcja, "Po korekcie",using "%d",bPo )
	PutIni( sSekcja, "Data sprzedaży",using "%d",nDat )
	PutIni( sSekcja, "Pokaz odbiorcę",using "%d",bOdbiorca )
	PutIni( sSekcja, "Nie pokazuj dialogu",using "%d",bPokaz )
#ifdef EXPORTVAT
	PutIni( sSekcja, "NettoBrutto",using "%d",bNettoBrutto )
	PutIni( sSekcja, "Vat",using "%d",bVat )
	PutIni( sSekcja, "ZeroweKwotyVat",using "%d",bZerVat )
#endif
	PutIni( sSekcja, "Kontrahent",using "%d",bKonth )
	PutIni( sSekcja, "Notatka",using "%d",bNotat )
	PutIni( sSekcja, "Notatka z rodzaju",using "%d",bNotatRodz )
	PutIni( sSekcja, "Kurs", using "%d",bKurs )
	if CzyRabaty then PutIni( sSekcja, "Rabaty",using "%d",bRabaty)
	PutIni( sSekcja, "Pokaz kod",using "%d",nKod )
	PutIni( sSekcja, "Rodzaj kodu",using "%d",nKodTyp )
	PutIni( sSekcja, "Dane teleadresowe kontrahenta",		using "%d",bKhTeleadr )
	PutIni ( sSekcja, "Dekretacje",          using "%d",bDekretacje )
	bDostawy=KomunikatImp(xDocument.CzyKopia,bDostawy)
	PutIni ( sSekcja, "Dostawy", 					using "%d",bDostawy )
	PutIni( sSekcja, "Jednostka miary",using "%d",nJednMiary )
	PutIni ( sSekcja, "Zaokr. ceny",		using "%d",nCenaRound )
	PutIni( sSekcja, "Opis typu dokumentu",	using "%d",bOpisTypu )
	PutIni( sSekcja, "Stan rozliczenia",	using "%d",bStanRozl )
	PutIni( sSekcja, "Notatka firmy",	using "%d",bFNotatka)

#include "Ustawienia wydruku uproszczonego - PutIni"

	SaveGraphIni()

endif
if !bOpisTypu then sNazwaDok=xDocument.nazwa
	Plat(!bStanRozl)

#ifdef WALUTOWY
	WartoscDoZap=fDoZaplatyWal
	WartoscZaplacona=fWplatyWal
#else
	WartoscDoZap=fDoZaplaty
	WartoscZaplacona=fWplaty
#endif
    if xDocument.objId == DokumentSpObjId && xDocument.CzyWystawiony == 0 then
        WartoscDoZap -= xDocument.rozliczonoZaliczkamiBrutto
    endif

if GRAF then
	str.wydruk( 0, -1, -1 )
	strona 50, 90, 50, 80
	CheckFooterSize(xDocument.TypDK)
	nb = CopyFont( "tekst",1 )
	grub = CopyFont( "tekst", 1, 45 )
	ss = CopyFont( "tekst", -1, 25 )
	bb = CopyFont( "tytuł", 1, 50 )
	numr = CopyFont ( "tytuł", 1, 45 )

	gc = styl( grub, 0 )
	sc = styl( ss, 0)
 	sc2 = Styl ( CopyFont ( "tekst", -1, 30 ), 0, "sc2" )
 	sc3 = Styl ( CopyFont ( "tekst", -1, 32 ), 0, "sc3" )
	nc = styl( "tekst", 0)
	bc = styl( "nagłówek", 0)
	bl = Styl( "nagłówek",-1 )
	bbc =	styl( bb, 0)
	kr = styl( "kwota",1 )
	nl = styl( "tekst", -1)
	nr = styl( "tekst", 1)
	sl = Styl( ss, -1 )
	sr = Styl( ss, 1 )
	nbl = Styl ( nb, -1, "nbl" )

#ifdef SIMPLIFIED
	Dodaj( 105, nc )
	Dodaj( Str.Szer - 105 - IIF( TaxCount > 1 || TaxChanged, 285, 0 ) - IIF( TaxChanged, 285, 0 ), nl )
	If TaxCount > 1 || TaxChanged Then
		Dodaj( 285, nc )
	EndIf
	If TaxChanged Then
		Dodaj( 285, nc )
	EndIf
	DodajNP( 105, nc )
	DodajNP( Str.Szer - 105, nl )
#else
	Dodaj(80,nc)
	Dodaj(650-150*(!nKod)-150*(bDostawy)-150*bRabaty,nl)
	if !nKod then Dodaj(150,nl)
	Dodaj(90,nc)
	if bRabaty then Dodaj(150,nc)
	if bDostawy then Dodaj(150,nl)
	Dodaj(180,kr)
	Dodaj(200,kr)
	Dodaj(200,kr)
If EXPORTVATdefined Then
	Dodaj(150,nc)
	if bVAT then Dodaj(200,kr)
	if bNettoBrutto then Dodaj(200,kr)
EndIf
#endif

#ifdef EXPORTVATPLN
	if !CompactForm Then
		Dodaj(150,nr)
	endif
	if bVAT then Dodaj(200,kr)
	if bNettoBrutto then Dodaj(200,kr)
#endif

	for i=1 to i>size(kolTab1)
		tbl1Szer+=kolTab1(i)
	next i
	for i=1 to i>size(kolTab1)
		lTemp = kolTab1(i)
		lTemp = (lTemp*str.szer)/tbl1Szer
		kolTab1(i) = lTemp
		tbl1+=lTemp
	next i
	KolTab2(1) = KolTab1(size(KolTab1)-1)
	KolTab2(2) = KolTab1(size(KolTAb1))
	kolTab1(2)+=str.szer-tbl1
	tbl1Szer = str.szer

	i=5+!nKod+bDostawy

	StlTab2(1) = nc
	StlTab2(2) = nr

	tbl2 = Tabela 1, 4005, KolTab2, StlTab2
	tbl2Szer = KolTab2(1)+KolTab2(2)//KolTab1(i)+KolTab1(i+1)

	tbl1 = Tabela !bVertLines, 4005, KolTab1, StlTab1
	tblHead1 = Tabela 1, 10005, KolTab1, StlHead

endif


if nDat == 1 then
	sDataSp = sDajOkres(sDataSp)
endif



if GRAF then goto tryb_graf
	#include "Dok. exportowy korekta - tryb tekstowy"
	FooterTxt(1)
end

tryb_graf:
//wydruk graficzny

if nBitmap==1 then
	if !nBmpCoord(1) then nBmpCoord(1)=str.szer
	if !nBmpCoord(2) then nBmpCoord(2)=250
	bmp = Bitmap nBmpCoord(1),nBmpCoord(2),sBitmap
	Bitmap #bmp, at nBmpCoord(3),nBmpCoord(4)
	print lf : print at #X,#Y+5;
endif
FRNewRow(0)
select case nBitmap
	case 0
		If bmpStamp || bMiejsceNapieczec Then FRAddCol(-33,IIF(!bmpStamp,140,220),1,bRamki,0)
		FRAddCol(IIF( bmpStamp || bMiejsceNapieczec, -34, -50 ),IIF(!bmpStamp,140,220),2,bRamki,nGray)
		FRAddCol(IIF( bmpStamp || bMiejsceNapieczec, -33, -50 ),IIF(!bmpStamp,140,220),0,0,0)
		FRAddColRow(IIF(!bmpStamp,65,95),4,bRamki,0)
		FRAddColRow(-100,5,0,0)
		FRDraw()
		FRNewRow(-1)
		FRAddCol(-33,IIF(!bmpStamp,80,70),16,0,0)
		FRAddCol(-34,IIF(!bmpStamp,80,70),6,0,0)
		FRAddCol(-33,IIF(!bmpStamp,80,70),3,0,0)
		FRDraw()
		FRNewRow(-(str.Pozycja(#B) - str.Pozycja(#T)))
#ifdef SIMPLIFIED
			FRAddCol(-100,(str.Pozycja(#B) - str.Pozycja(#T)),0,bRamki,-1)
#else
			FRAddCol(-67,(str.Pozycja(#B) - str.Pozycja(#T)),0,bRamki,-1)
			FRAddCol(-33,(str.Pozycja(#B) - str.Pozycja(#T)),0,bRamki,-1)
#endif
		If sNrKorygExtra != "" Then
			FRDraw()
			FRNewRow( -1 )
			FRAddCol( -100 , IIF( !bmpStamp , 80 , 70 ) , 26 , bRamki , 0 )
		EndIf
	case 1
		FRAddCol(-33,230,16,bRamki,0)
		FRAddCol(-34,230,0,0,0)
		FRAddColRow(140,2,bRamki,nGray)
		FRAddColRow(80,3,bRamki,0)
		FRAddCol(-33,230,0,0,0)
		FRAddColRow(65,4,bRamki,0)
		FRAddColRow(-100,5,0,0)
		FRAddColRow(80,6,bRamki,0)
		If sNrKorygExtra != "" Then
			FRDraw()
			FRNewRow( -1 )
			FRAddCol( -100 , 230 , 26 , bRamki , 0 )
		EndIf
	case 2
		lTemp = str.szer
		lTemp = lTemp*66/100
		nPom=lTemp
		if !nBmpCoord(1) then nBmpCoord(1)=nPom - nBmpCoord(3)
		if !nBmpCoord(2) then nBmpCoord(2)=450 - iif(nBmpCoord(4)>=450,0,nBmpCoord(4))
		if nBmpCoord(1)>nPom then nBmpCoord(1)= nPom
		if nBmpCoord(1)+nBmpCoord(3)>nPom then nBmpCoord(3)=0
		nPom = iif(nBmpCoord(2)+nBmpCoord(4)>450,nBmpCoord(2)+nBmpCoord(4),450)
		FRAddCol(nBmpCoord(1)+nBmpCoord(3),nPom,7,0,0)
		FRAddCol(-100,nPom,0,0,0)
		FRAddColRow(120,2,1,nGray)
		FRAddColRow(65,4,bRamki,0)
		FRAddColRow(-100,5,0,0)
		FRAddColRow(80,3,bRamki,0)
		FRAddColRow(80,6,bRamki,0)
		FRDraw()

		FRNewRow(-1)
		FRAddCol(-50,10,16,bRamki,0)
		FRAddCol(-50,10,18,bRamki,0)
		If sNrKorygExtra != "" Then
			FRDraw()
			FRNewRow( -1 )
			FRAddCol( -100 , 10 , 26 , bRamki , 0 )
		EndIf
endselect
FRDraw()
FRNewRow(-1)
if bSprzedawca || !nBitmap then
	FRAddCol(-50,10,8,bRamki,0)
	FRAddCol(-50,10,9,bRamki,0)
else
	FRAddCol(-100,10,9,bRamki,0)
endif
FRDraw()

if nBitmap!=2 then
	FRNewRow(-1)
	FRAddCol(-100+50*bOdbiorca,10,17+bodbiorca,bRamki,0)
	if bOdbiorca then FRAddCol(-100+50*bOdbiorca,10,11,bRamki,0)
	FRDraw()
else
	if bOdbiorca then
		FRNewRow(-1)
		FRAddCol(-100,10,11,bRamki,0)
		FRDraw()
	endif
endif
#ifdef SHOW_KSEF_INFO
	If bInfoKSeF Then
		FRDrawContent( str.szer, 0, R_KSEFINFORMATION )
	EndIf
#endif

//KorektaWynikow()

if xPoz.Count() then
do
	bPrintStopka = 0
	if !czyPozPodlega && !NPTrigger then NPTrigger=1
	If NPtrigger then
#ifdef EXPORTVAT
	if pozNetto==0 then pozNetto=6+!nKod+bRabaty+bDostawy
	while size(KolTab1)>pozNetto
		kolTab1(2)+=KolTab1(size(KolTab1))
		shrink KolTab1,1:shrink StlTAb1,1:shrink StlHead,1
	wend
	KolTab2(1)=KolTab1(pozNetto-1)
	KOlTab2(2)=KolTab1(pozNetto)
	tbl2 = Tabela 1, 4005, KolTab2, StlTab2
	tbl2Szer = KolTab2(1)+KolTab2(2)
	tbl1 = Tabela !bVertLines, 4005, KolTab1, StlTab1
	tblHead1 = Tabela 1, 10005, KolTab1, StlHead
#endif
		czypozNP=0
        If xDocument.Charakter != 126 && xDocument.Charakter != 127 Then
			SetStyl( nl )
			DrawLine at 0,#Y+40,str.szer,0,6,70
			print at (str.szer-TextWidth( POZNP_L ))/2,#Y+10; POZNP_L + LF
			DrawLine at 0,#Y,str.szer,0,2,70
			print lf
   		EndIf
	endif
	if bPrzed && ((NPtrigger && warNiepodlega) || (!NPtrigger && warPodlega))then
		//pozycje korygowane
		bPrintStopka = 1
		SetStyl( bc )
		print at #X,#Y+20;POZKOR_L + LF

		RysujNaglowek(10)
		bOddTrigger = 0
		pom = 1
		for i = 1 to i > size( Przed )
			if !Nptrigger && Przed(i).niepodlega then czypozNP=1
			if NPtrigger && Przed(i).niepodlega || !(NPtrigger || Przed(i).niepodlega) then
			ZapiszKorekte(Przed(i) , pom, (using"B%d",Przed(i).lp),1,"") : pom=0
			endif
		next i
		if bVertLines then DrawLine at 0,#B,tbl1Szer,0
#ifdef EXPORTVAT
		if NPtrigger then
#endif
		MalaStopka( IIF(NPtrigger,tot_NettoNPBaza,tot_nettoBaza)/fKurs ,0)
#ifdef EXPORTVAT
		else
		 if bPrintStopka then StopkaVat(0,0)
		endif
#endif

#ifdef EXPORTVATPLN
	if !CompactForm Then
		 if bPrintStopka then StopkaVat(0,0)
	endif
#endif

		bPrintStopka=0
	endif
	//korekty
	if ((NPtrigger && warNiepodlega) || (!NPtrigger && warPodlega)) then
	for b=1 to b>size(Korekty) || CompactForm
		if Korekty(b).nKorStat==2 then
			bPrintStopka = 1
			SetStyl(bc)
			print at 0,#Y+20;KORIL_L +"\n"
			RysujNaglowek(10)
			bOddTrigger = 0
			for i = b to i > size( Korekty )
				if !Nptrigger && Korekty(i).niepodlega then czypozNP=1
				if NPtrigger && Korekty(i).niepodlega || !(NPtrigger || Korekty(i).niepodlega) then
					if Korekty(i).nKorStat==2 then ZapiszKorekte(Korekty(i),i==1,(using"K%d",Korekty(i).lp),2,"")
				endif
			next i
			if bVertLines then DrawLine at 0,#B,tbl1Szer,0
			exit
		endif
	next b
	for b=1 to b>size(Korekty) || CompactForm
		if Korekty(b).nKorStat==3 then
			bPrintStopka = 1
			SetStyl(bc)
			print at 0,#Y+20;KORCEN_L +"\n"
			RysujNaglowek(10)
			bOddTrigger = 0
			for i = b to i > size( Korekty )
			if !Nptrigger && Korekty(i).niepodlega then czypozNP=1
				if NPtrigger && Korekty(i).niepodlega || !(NPtrigger || Korekty(i).niepodlega) then
				if Korekty(i).nKorStat==3 then ZapiszKorekte(Korekty(i),i==1,(using"K%d",Korekty(i).lp),2,"")
			endif
			next i
			if bVertLines then DrawLine at 0,#B,tbl1Szer,0
			exit
		endif
	next b
#ifdef EXPORTVAT
		if NPtrigger then
#endif
	If !CompactForm Then MalaStopka(IIF(NPtrigger,xDocument.NiePodlega,xDocument.Netto)/fKurs , 10)
#ifdef EXPORTVAT
		else
		 if bPrintStopka then StopkaVat(1,0)
		endif
#endif
#ifdef EXPORTVATPLN
	if !CompactForm Then
		 if bPrintStopka then StopkaVat(1,0)
	endif
#endif

		bPrintStopka=0
	else
	if warNiepodlega && !NPtrigger then  czypozNP=1
	endif
	if bPo && ((NPtrigger && warNiepodlega) || (!NPtrigger && warPodlega))then
	//pozycje po korekcie
		bPrintStopka = 1
		SetStyl(bc)
		Print At #X, #Y + 20; IIF( CompactForm, "KOREKTY POZYCJI:\n", POZPOK_L +":\n" )
		RysujNaglowek(10)
		bOddTrigger = 0
		pom = 1
		for i = 1 to i > size( Po )
		if !Nptrigger && Po(i).niepodlega then czypozNP=1
		if NPtrigger && Po(i).niepodlega || !(NPtrigger || Po(i).niepodlega) then
			ZapiszKorekte(Po(i),pom,(using"K%d",Po(i).lp),3,Przed(i).StVat) : pom=0
		endif
		next i
		if bVertLines then DrawLine at 0,#B,tbl1Szer,0
#ifdef EXPORTVAT
		if NPtrigger then
#endif
#ifdef SIMPLIFIED
		MalaStopka( IIF( NPtrigger, xDocument.NiePodlega, xDocument.Netto ) / fKurs, 0 )
#else
		MalaStopka( IIF(NPtrigger,tot_NettoNPBaza+xDocument.NiePodlega,tot_nettoBaza+xDocument.Netto)/fKurs,0 )
#endif
#ifdef EXPORTVAT
		else
		 if bPrintStopka then StopkaVat(2,0)
		endif
#endif
#ifdef EXPORTVATPLN
		 if bPrintStopka then StopkaVat(2,0)
#endif
		bPrintStopka=0
	endif
NPtrigger=CzyPozNP
loop while NPtrigger

// -----------------------------------------------------------------
NPtrigger=0
#ifdef SIMPLIFIED
	If bOpis Then
#endif
		ramka od 0,#B+20,str.szer,10,bRamki*5
			SetStyl( nl )
			print " "+PRZYCZYNA_L +": "
			SetFont ( nb )
			print sOpis
		koniec
#ifdef SIMPLIFIED
	EndIf
#endif

#ifdef EkspKorDef
    Zaliczki(xDocument.id)
#endif

	ramka od 0, #B+20, str.szer, 90, bRamki
 		SetStyl( bl )
		if WartoscDoZap > 0.000001 then
			print at 30, 20; RAZEM_L +" "+ DOZAPL_L +" :"
		else
			if WartoscDoZap < -0.000001 then
				print at 30, 20; RAZEM_L +" "+ DOZWR_L +" :"
				wsp = -1
			else
				print at 30, 20; RAZEM_L +" : "
				wsp = 0
			endif
		endif
		if xDocument.Vat < -0.000001 then wsp1 = -1
 		SetFont( grub )
#ifndef WALUTOWY
		sWaluta=sPLN
#else
		sWaluta=" " +sWaluta
#endif
 		print " " + kwota( WartoscDoZap*wsp )+sWaluta
		t1_width=textwidth(kwota( (WartoscZaplacona) * wsp )+sWaluta,grub)
		t2_width=textwidth(kwota( (WartoscDoZap-WartoscZaplacona) * wsp)+sWaluta,grub)
		if !t1_width then t1_width = t2_width
		t1_width=iif(t1_width >= t2_width,0,t2_width-t1_width)
		t2_width=iif(t2_width >= t1_width,0,t1_width-t2_width)

 		SetStyl( bl )
		if Sign(WartoscDoZap-WartoscZaplacona,2) then
			if (WartoscZaplacona > 0.000001) || (WartoscZaplacona < -0.000001) then
				if fWplaty > 0.000001 then
					print at 1800-500, 10; ZAPL_L +" :"
					SetFont( grub )
				else
					print at 1800-500, 10; ZWR_L +" :"
					SetFont( grub )
				endif
		 		print at 1800-320+t1_width, 10; kwota( (WartoscZaplacona) * wsp )+sWaluta
		 		SetStyl( bl )
			endif
			if WartoscDoZap > 0.000001 then
				print at 1800-645, 25 + 30*iif((WartoscZaplacona > 0.000001) || (WartoscZaplacona < -0.000001),1,0); POZOSTALO_L +" "+ DOZAPL_L +"  :"
			else
				print at 1800-648, 25 + 30*iif((WartoscZaplacona > 0.000001) || (WartoscZaplacona < -0.000001),1,0); POZOSTALO_L +" "+ DOZWR_L +" :"
			endif
			SetFont( grub )
	 		print at 1800-320+t2_width, 20 + 30*iif((WartoscZaplacona > 0.000001) || (WartoscZaplacona < -0.000001),1,0) ;kwota( (WartoscDoZap-WartoscZaplacona)* wsp)+sWaluta
		else
			SetFont(grub)
			print at 1800-500, 20; iif(WartoscZaplacona > 0.000001,Ucase( ZAPL_L ),Ucase( ZWR_L ))
		endif
	koniec

	ramka od #L, #B+10, str.szer, 90, bRamki
		SetStyl( bl )
		print at 30, 20; SLOWNIE_L +":"
#ifndef WALUTOWY
	sWaluta=""
#else

#endif
#ifndef WDK_ANG
		print " " + KwotaNaTekst( (using "%.2f",WartoscDoZap*wsp ), sWaluta )
#else
		print " " + KwotaNaTekstAng( (using "%.2f",WartoscDoZap*wsp ), sWaluta )
#endif
	koniec

endif

buf = Arg5 : sPom="sc2"
if find regular "=-(^u$)|(upowa?nienie)" then
	buf= UPOWAZ_L
else
	if !buf then
		buf= NAZWPODPISODB_L
	else
		buf= ODEBRAL_L +": "+buf : sPom="sc3"
	endif
 endif
	SetStyl ( sPom )
	ramka od (str.szer/2-700)/2,#B+50,700,250,0
	print at #X,#Y+210;buf
koniec
nPom=str.pozycja(#B)-str.pozycja(#T)
buf= NAZWPODPISWYST_L	: sPom="sc2"
if Arg4 then buf=WYSTAWIL_L +": "+Arg4 : sPom="sc3"
	SetStyl ( sPom )
ramka od str.szer/2+(str.szer/2-700)/2,#T,700,250,0
	print at #X,#Y+210;buf
koniec
if str.pozycja(#B)-str.pozycja(#T)>nPom then nPom = str.pozycja(#B)-str.pozycja(#T)
ramka od (str.szer/2-700)/2,#T,700,nPom,bRamki,-1
koniec
ramka od str.szer/2+(str.szer/2-700)/2,#T,700,nPom,bRamki,-1
koniec

if bNotat && sNotat then
MultiPagePrint( sNotat, 0, Str.Pozycja( #Y ) + 20, Str.Szer, 10, bRamki, nl )
endif
if arg6 != "" then
	ramka od 0, #y+20, str.szer, 10
		SetFont ( nb ) : Align(-1)
		print UWAGA_L +": "
		SetFont ( "tekst" )
		print Arg6
	koniec
endif
if bNotatRodz && sNotatRodz then
MultiPagePrint( sNotatRodz, 0, Str.Pozycja( #Y ) + 20, Str.Szer, 10, bRamki, nl )
endif

Dekretacje()
Footer(1)