//"dokexp01.sc","Dokument eksport I","\Dokumenty\Sprzedaż\Dokument eksportowy\",0,2.1.15,SYSTEM
///////////////////////////
// Dokument eksport I
// dokexp01.sc
///////////////////////////

#define SHOWGTU 1
#define CWalWartDexDef

#include "Wydruki - include"

#define XSYSTEM
#define DEKRET
#define SHOW_CN
#define SHOW_KSEF_INFO
#include "KSeF Extension"
Int bInfoKSeF

Int    SHOW_CNdefined = 1
String CmbBoxData( 2 ) = "Data sprzedaży", "Okres sprzedaży"
#include "Lang_pol"

#ifdef SIMPLIFIED				// dla poprawienia przejrzystosci kodu
Int CompactForm = 1				// "if-defowanie" pojedynczych linii
#else
Int CompactForm = 0
#endif

#ifdef OO_ONLY
Int iOOonly = 1
#else
Int iOOonly = 0
#endif

int VAT = 0

#include "Nagłówek i stopka raportu I"
#include "Engine do dokumentów"
NoDate = 1

#define OK 2
#define ANULUJ -1

string sMarg = "Zbyt małe marginesy lub zbyt wiele kolumn{{icon=S}}"
string cmbBoxKod(3) = "własny","obcy","paskowy"
string cmbBoxZaokr(3) = "0,01","0,1","1,0"
int bPCN,bRabaty,bPokaz,nKod,nPom, bDekretacje, j, bDostawy, nJednMiary,nCenaRound,bPlatnosci, bWydania
int nDat,bRabPods,bPolowa,bOdbiorca,bKonth,bOpis,bKurs,bNotat,bCenaPrzed,bKhTeleadr,bNotatRodz
int ramkx,ramky,ramkdx,ramkdy,pos,tblIn, dx,dy,bmpbtn,btnok, bGrayTrigger,nKodTyp,nRabatRound,bWartPLN
int PPlnVat, PWalVat, CzyKolVat, xtab, nTblMarg
Int yCurr, yRight, yLeft
long lTemp
string cmbBoxZaokrCen(3) = "0,01","0,001","0,0001"
string sPom,sSekcja = GetReportName()
string sSekcjaIn = sSekcja
sSekcja += " "+xDocument.TypDk
if GetIni( sSekcja, "Opis")!="" then sSekcjaIn=sSekcja

string sPlatTyp,sTmpStr
int kr,bc,nl,nc,nr,bbc,nbl,nb,bb,sc,grub,ss,numr,sl,sc2,sc3,yramk,dyramk,dxramk,bmp
float kurs
int tbl0,tbl1,tbl2,i,x,y,nRatio
int nResult,czypozNP,NPtrigger
int bOpisTypu
int bStanRozl,bFNotatka
bPokaz = !Val ( Arg7 )

#include "Dokument sprzedaży - ramki - definicje"
#include "Ustawienia grafiki"
#include "Dokument sprzedaży - ramki"

int sub OnCommand2(int id,int msg)
	if !id && !msg then
		if !GRAF then Enable ( bmpbtn,-1 )
	endif
endsub

//-----------------------------------------
bPCN     = Val( GetIni( sSekcjaIn, "PCN" ) )
bRabaty     = Val( GetIni( sSekcjaIn, "Rabaty" ) )
PPlnVat     = Val( GetIni( sSekcjaIn, "Stopka VAT PLN" ) )
PWalVat     = Val( GetIni( sSekcjaIn, "Stopka VAT w walucie" ) )
nKod        = Val( GetIni( sSekcjaIn, "Pokaz kod" ) )
bPolowa     = Val( GetIni( sSekcjaIn, "Polowa strony" ) )
bOdbiorca   = Val( GetIni( sSekcjaIn, "Pokaz odbiorce" ) )
bRabPods    = Val( GetIni( sSekcjaIn, "Pokaz podsumowanie rabatow" ) )
sBitmap     =      GetIni( sSekcjaIn, "Bitmap" )
nBitmap     = Val( GetIni( sSekcjaIn, "Pokaz bitmape" ) )
bSprzedawca = Val( GetIni( sSekcjaIn, "Pokaz dane sprzedawcy" ) )
nDat        = Val( GetIni( sSekcjaIn, "Data sprzedazy" ) )
rBoxData.Init(1,1,nDat,0)
bKonth      = Val( GetIni( sSekcjaIn, "Kontrahent" ) )
bOpis       = Val( GetIni( sSekcjaIn, "Opis" ) )
bKurs       = Val( GetIni( sSekcjaIn, "Kurs" ) )
bNotat      = Val( GetIni( sSekcjaIn, "Notatka" ) )
bNotatRodz      = Val( GetIni( sSekcjaIn, "Notatka z rodzaju" ) )
If bRabatDlaWartosci Then
	bCenaPrzed  = Val( GetIni ( sSekcjaIn, "Cena z cennika RDW" ) )
Else
	bCenaPrzed  = Val( GetIni ( sSekcjaIn, "Cena z cennika" ) )
EndIf
nKodTyp   	=	GetValFromIni("Rodzaj kodu" ,1)
nRabatRound	=	GetValFromIni("Zaokr. rabatu",1)
bWartPLN		= Val( GetIni( sSekcjaIn, "Wartosc PLN" ) )
bKhTeleadr	=	GetValFromIni("Dane teleadresowe kontrahenta",0)
bDekretacje = Val( GetIni ( sSekcjaIn, "Dekretacje" ) )
bDostawy	= Val( GetIni ( sSekcjaIn, "Dostawy" ) )
bWydania    = Val( GetIni ( sSekcjaIn, "Wydania" ) )
nJednMiary	=	GetValFromIni("Jednostka miary",1)
nCenaRound=GetValFromIni("Zaokr. ceny",1)
	bOpisTypu	=	GetValFromIni("Opis typu dokumentu",1)
	bInfoKSeF = GetValFromIni("Informacje KSeF",0)
	bStanRozl	=	GetValFromIni("Stan rozliczenia",0)
	bFNotatka	=	GetValFromIni("Notatka firmy",0)

#include "Ustawienia wydruku uproszczonego - GetIni"

if !bPokaz then
#ifdef SIMPLIFIED
bPolowa = 0          // Polowa wysokosci strony
bCenaPrzed = 0       // Wartosc przed rabatem / Cena z cennika   - Nie drukuj
bPCN = 0             // CN / PCN                                 - Nie drukuj
bWartPLN = 0         // Wartosc PLN                              - Nie drukuj

#include "Ustawienia wydruku uproszczonego"
#else
	Form "Ustawienia wydruku",527,402
		Group " Kod towaru ",10,5,140,102
 		  RadioBtn "W osobnej kolumnie",nKod,20,20,120,20
		  RadioBtn "Obok nazwy towaru", nKod,20,40,120,20
		  RadioBtn "Nie pokazuj",       nKod,20,60,100,20
			CmbBox "",CmbBoxKod,nKodTyp,79,81,65,80
			Text "Kod towaru:",19,85,60,18

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

		Group " Zaokrąglanie cen",10,175,140,62
		  Text "Rabatów:",15,196,52,18
			CmbBox "",CmbBoxZaokr,nRabatRound,78,191,62,120
		  Text "Cen:",15,215,52,18
			CmbBox "",CmbBoxZaokrCen,nCenaRound,78,211,62,120

		Group "Inne elementy wydruku dokumentu",160,5,345,278
			ChkBox "Kod kontrahenta",bKonth,170,20,110,20
			ChkBox "Dane odbiorcy",bOdbiorca,170,40,110,20
			ChkBox "Opis dokumentu",bOpis,170,60,110,20
			ChkBox "Notatka",bNotat,170,80,110,20
			ChkBox "Notatka firmy",bFNotatka,170,100,110,20
			ChkBox "Notatka z rodzaju",bNotatRodz,170,120,110,20
			ChkBox "Dostawy", bDostawy,170,140,100,20
			ChkBox "Wartość PLN",bWartPLN,170,160,105,20
			If !iOOonly Then
				ChkBox "Stopka VAT PLN",PPlnVat,170,180,105,20
				ChkBox "Stopka VAT w walucie",PWalVat,170,200,130,20
			EndIf
		ChkBox "Stan rozliczenia z dnia wystawienia", bStanRozl, 170,220,220,20
		ChkBox "Drukuj opis typu jako nazwę dokumentu", bOpisTypu, 170,240,220,20
		ChkBox "Informacje KSeF", bInfoKSeF, 170,260,220,20
			ChkBox "Rabaty do pozycji",bRabaty,280,20,155,20
			ChkBox "Podsumowanie rabatów",bRabPods,280,40,155,20
			ChkBox "Kurs waluty",bKurs,280,60,155,20
			If bRabatDlaWartosci Then
			 ChkBox "Wartość przed rabatem",    bCenaPrzed,280,80,155,20
			Else
			 ChkBox "Cena z cennika",           bCenaPrzed,280,80,155,20
			EndIf
		  ChkBox "Dane teleadresowe kontrahenta",	bKhTeleadr, 280,100,170,20
		  ChkBox "Dekretacje księgowe na kopii dokumentu", bDekretacje, 280,120,220,20
          If SHOW_CNdefined Then
			ChkBox "CN", bPCN, 280, 140, 100, 20
          Else
			ChkBox "PCN", bPCN, 280, 140, 100, 20
          EndIf
		  ChkBox "Dokumenty wydań", bWydania, 280,160,220,20
 		Group " Jednostka miary ",160,288,345,40
 		  RadioBtn "Ewidencyjna",nJednMiary,170,303,100,20
		  RadioBtn "Wprowadzona", nJednMiary,280,303,120,20



		ChkBox "Nie pokazuj tego okna ponownie",bPokaz,10,342,200,20

 		btnok = Button "&OK",240,337,100,25,OK
		Button "&Anuluj",350,337,100,25,ANULUJ
		bmpbtn = Button "Ustawienia &grafiki...",10,300,143,30,GraphSet2()
#endif

	if ExecForm ( OnCommand2 ) == ANULUJ then error ""
	
	If iOOonly Then
		PPlnVat = 0
		PWalVat = 0
	EndIf

	nDat = rBoxData.TranslateVar()
	
	PutIni( sSekcja, "PCN", using "%d",bPCN )
	PutIni( sSekcja, "Rabaty", using "%d",bRabaty )
	PutIni( sSekcja, "Stopka VAT PLN", using "%d",PPlnVat )
	PutIni( sSekcja, "Stopka VAT w walucie", using "%d",PWalVat )
	PutIni( sSekcja, "Pokaz kod", using "%d",nKod )
	PutIni( sSekcja, "Polowa strony", using "%d",bPolowa )
	PutIni( sSekcja, "Nie pokazuj dialogu", using "%d",bPokaz )
	PutIni( sSekcja, "Pokaz odbiorce", using "%d",bOdbiorca )
	PutIni( sSekcja, "Pokaz podsumowanie rabatow",using "%d",bRabPods )
	PutIni( sSekcja, "Data sprzedazy",using "%d",nDat )
	PutIni( sSekcja, "Opis", using "%d",bOpis )
	PutIni( sSekcja, "Kontrahent",using "%d",bKonth )
	PutIni( sSekcja, "Kurs",using "%d",bKurs )
	PutIni( sSekcja, "Notatka",using "%d",bNotat )
	PutIni( sSekcja, "Notatka z rodzaju",using "%d",bNotatRodz )
	If bRabatDlaWartosci Then
		PutIni ( sSekcja, "Cena z cennika RDW",   using "%d",bCenaPrzed )
	Else
		PutIni ( sSekcja, "Cena z cennika",   using "%d",bCenaPrzed )
	EndIf
	PutIni ( sSekcja, "Rodzaj kodu",			using "%d",nKodTyp )
	PutIni ( sSekcja, "Zaokr. rabatu",		using "%d",nRabatRound )
	PutIni ( sSekcja, "Wartosc PLN",		using "%d",bWartPLN )
	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, "Informacje KSeF",	using "%d",bInfoKSeF )
	PutIni( sSekcja, "Stan rozliczenia",	using "%d",bStanRozl )
	PutIni( sSekcja, "Notatka firmy",	using "%d",bFNotatka )
	PutIni ( sSekcja, "Wydania",          using "%d",bWydania )

#include "Ustawienia wydruku uproszczonego - PutIni"

	SaveGraphIni()
endif
nRabatRound=3-nRabatRound
	if !bOpisTypu then sNazwaDok=xDocument.nazwa
	Plat(!bStanRozl)
//---------------------------------------------------------------
#include "Engine do wydruków tekstowych"

if GRAF then
 	str.Wydruk(0,-1,-1)
	if bPolowa then
		strona 50,50,50,str.wys/2+100
	else
  		strona 50,90,50,100
	endif

 	bc = Styl ( "nagłówek", 0, "bc" )
 	nl = Styl ( "tekst", -1, "nl" )
 	nc = Styl ( "tekst", 0, "nc" )
 	nr = Styl ( "tekst", 1, "nr" )
 	kr = Styl ( "kwota", 1, "kr" )
	nb = CopyFont ( "tekst",1 )
	grub = CopyFont ( "tekst", 1, 45 )
	numr = CopyFont ( "tytuł", 1, 45 )
	nbl = Styl ( nb, -1, "nbl" )
	ss = CopyFont ( "tekst", -1, 25 )
 	sc2 = Styl ( CopyFont ( "tekst", -1, 30 ), 0, "sc2" )
 	sc3 = Styl ( CopyFont ( "tekst", -1, 32 ), 0, "sc3" )
	sc = Styl ( ss, 0, "sc" )
	bb = CopyFont ( "tytuł", 1, 50 )
	bbc = Styl ( bb, 0, "bbc" )
else
 	str.Wydruk(1,-1,-1)
	if bPolowa then
		strona 50,0,50,str.wys/2+100
	else
 		strona 50,100,50,100
	endif
	bc = Styl ( "10cpi", 0, "bc" )
	nbl = Styl ( "10cpi", -1, "bl" )
	nl = Styl ( "17cpi", -1, "nl" )
	nc = Styl ( "17cpi", 0, "nc" )
	kr = nr = Styl ( "17cpi", 1, "nr" )
	bbc = Styl ( "5cpi", 0, "bbc" )
	sl = Styl ( "17cpi", -1 )
endif
CheckFooterSize(xDocument.TypDK)
//---------------------------------------------------------------
 
if PPlnVat || PWalVat then CzyKolVat = 1
#ifdef SIMPLIFIED
Int KolTab1( 2 )
Int StlTab1( 2 )
#else
int KolTab1( 6 + !nKod + bPCN + bDostawy + bCenaPrzed + bRabaty + CzyKolVat + bWartPLN)
int StlTab1( 6 + !nKod + bPCN + bDostawy + bCenaPrzed + bRabaty + CzyKolVat + bWartPLN )
#endif
int KolTabPR(2)= 250,250
int StlTabPR(4)= kr,kr
int nTblWidth1,nTblWidth2,nDiff

//----------------------------------------------------

int nkol = 2
KolTab1(1) = IIF( CompactForm, 180, 60 ) : StlTab1(1) = nc
KolTab1(2) = IIF( CompactForm, Str.Szer - KolTab1( 1 ), 420 ) : StlTab1(2) = nl
#ifndef SIMPLIFIED
if nKod == 1 then KolTab1(2) += 100
if !nKod then KolTab1(nkol+=1) = 200 : StlTab1(nkol) = nl
if bPCN then KolTab1(nkol+=1) =150 : StlTab1(nkol) = nr
if bDostawy then KolTab1(nkol+=1) = 200 : StlTab1(nkol) = nl
KolTab1(nkol+=1) = 100 : StlTab1(nkol) = kr
KolTab1(nkol+=1) = 80  : StlTab1(nkol) = nc

if bCenaPrzed then KolTab1(nkol+=1) = 200 : StlTab1(nkol) = kr
if bRabaty then KolTab1(nkol+=1) = 200 : StlTab1(nkol) = kr
KolTab1(nkol+=1) = 80 : StlTab1(nkol) = kr
if CzyKolVat then KolTab1(nkol+=1) = 180 : StlTab1(nkol) = kr
KolTab1(nkol+=1) = 180 : StlTab1(nkol) = kr
if bWartPLN then KolTab1(nkol+=1) = 180 : StlTab1(nkol) = kr
#endif

int StlTabH(nkol)

for i=1 to i>nkol
	StlTabH (i) = bc
	nTblWidth1 += KolTab1 (i)
next i

if nTblWidth1 > str.szer then
	message sMarg : error ""
else
	nDiff = ( str.szer - nTblWidth1 ) / nkol
	nTblWidth1 = 0
	for i = 1 to i > nkol
		nTblWidth1 += ( KolTab1 (i) += nDiff )
	next i
	if nTblWidth1 < str.szer then KolTab1(2) += str.szer-nTblWidth1
	nTblWidth1 = str.szer
endif

int KolTab2(2+bWartPLN*2)
int StlTab2(2+bWartPLN*2)
KolTab2(1)=KolTab1(nKol-1-bWartPLN*2) : StlTab2(1)=nc
KolTab2(2)=KolTab1(nKol-bWartPLN*2) : StlTab2(2)=kr
if bWartPLN then
	KolTab2(3)=KolTab1(nKol) : StlTab2(3)=kr
	KolTab2(4)=KolTab1(nKol) : StlTab2(4)=kr
endif

nTblWidth2 = KolTab2(1) + KolTab2(2)
if bWartPLN then nTblWidth2 += (KolTab2(3) + KolTab2(4))

if GRAF then

	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, 220, 1, bRamki, 0 )
			FRAddCol( IIF( bmpStamp || bMiejsceNapieczec, -34, -50 ), 220, 0, 0, 0 )
			FRAddColRow(130,2,bRamki,nGray)
			FRAddColRow(80,3,bRamki,0)
			FRAddCol( IIF( bmpStamp || bMiejsceNapieczec, -33, -50 ), 220, 0, 0, 0)
			FRAddColRow(65,4,bRamki,0)
			FRAddColRow(-100,5,0,0)
			FRAddColRow(80,6,bRamki,0)
		case 1
			FRAddCol(-33,170,0,0,0)
			FRAddColRow(80,3,bRamki,0)
			FRAddColRow(-100,6,bRamki,0)
			FRAddCol(-34,170,2,1,nGray)
			FRAddCol(-33,170,0,0,0)
			FRAddColRow(-50,4,bRamki,0)
			FRAddColRow(-50,5,0,0)
		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(130,2,1,nGray)
			FRAddColRow(65,4,bRamki,0)
			FRAddColRow(-100,5,0,0)
			FRAddColRow(80,3,bRamki,0)
			FRAddColRow(80,6,bRamki,0)
	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 bOdbiorca then
		ramkdx = str.szer/2-5
	else
		ramkdx = str.szer
	endif
 	ramka od 0,#B+10,ramkdx,10,bRamki,0,4005
		SetStyl( nl )
		print "Forma płatności: "
		SetFont( nb )
   	print sPlatName
		SetFont( "tekst" )
		print at #X+100,#Y;"Waluta: "
		SetFont( nb )
		print sWaluta
		if bKurs then SetFont ( "tekst" ) : print "   Kurs: " : SetFont( nb ) : print SformatujKursWaluty( fKurs )
		SetFont( "tekst" )
		if bOdbiorca then
			print lf;"Termin płatności: "
		else
			print at #X+100,#Y;"Termin płatności: "
		endif
		SetFont( nb )
		print sTerminPlat
		if bPrzelew then
			SetFont( "tekst" )
			print lf;"Bank: "
			SetFont( nb )
			print sNazwaBanku
			SetFont( "tekst" )
			if bOdbiorca then
				print lf;"Konto: "
			else
				print "   Konto: "
			endif
			SetFont( nb )
			print sKonto
	
			if bIsSwift then
				SetFont ( "tekst" )	
				if bOdbiorca then
					print lf;" Swift: "
				else
					print "   Swift: "
				endif
				SetFont ( nb )
				print sSwift
			endif
		endif
	koniec

	if bOdbiorca then
		Ramka od str.szer/2+5,#T,str.szer/2-5,str.Pozycja(#B)-str.Pozycja(#T),bRamki
			SetStyl( nl )
			print " Odbiorca: "
			SetFont( nb )
			print sOdbiorca;lf
			SetStyl( nl )
			print " Adres: "
			SetFont( nb )
			print sOdbKodPocz;" ";sOdbMiasto
			if sOdbAdres then print ", ";sOdbAdres
			if sOdbKrajNazwa != "Polska" then print ", ";sOdbKrajNazwa
			print lf
		koniec
	endif

#ifdef SHOW_KSEF_INFO
	If (bInfoKSeF) Then
		InsertKSeFInformation(KSEFNUMBER,xDocument.numberKsef,KSEFDATE,xDocument.dataWystawieniaKsef,nl,nb,str.szer,bRamki)
	EndIf
#endif

	if bOpis && sOpis then
		Ramka od 0,#B+10,str.szer,10,bRamki
			SetFont(nb)
			print sOpis
		koniec
	endif
else // Tekstowy
	SetFont ( "17cpi" )
	If bMiejsceNaPieczec Then Print At 150, 250; "pieczęć firmy"
	SetStyl ( bbc )
	print at 0,50;sNazwaDok;lf;lf
	SetStyl ( nbl )
	print at 1300,#Y;"Nr ";sNumerDok;lf
	print at 1450,#Y;sNapis
	buf=sNapis
	if find "DUPLIKAT" then
		SetFont ( "12cpi" )
		print " ";data()
	endif
	SetFont ( "10cpi" )
	print lf
  	print at 650,#Y;"Data wystawienia: ";sDataWyst;" "
	SetFont( "17cpi" )
	print MiejsceWyst;lf
	rBoxData.PrintTxt(rBoxData.PrepareData(sDataSp), "12cpi", "12cpi", 0, 0, 650, str.Pozycja(#Y))
	print lf;lf	
  	rysuj "-" : print lf
   SetFont( "17cpi" )
  	print "Sprzedawca: "
	SetFont( "12cpi" )
	print sFNazwa;lf
   SetFont( "17cpi" )
  	print "Adres: "
	SetFont( "12cpi" )
	print sFkodPocz;" ";sFMiejsce
	if sFAdres then print ", ";sFAdres
	print lf
	sPom = GetNipEx(sFNip)
	print DajNip(sPom);buf;lf
	nPom=0
		if sFTel1 && bFDaneTeleadresowe then
			SetFont ( "17cpi" ) : print "Telefon:"
			SetFont ( "12cpi" )	:	print sFTel1
			if sFTel2 then print ", ";sFTel2
			nPom=1
		endif
		if sFFax && bFDaneTeleadresowe then
			if nPom then print "   "
			SetFont ( "17cpi" ) : print "Fax:"
			SetFont ( "12cpi" ) : print sFFax;
			nPom=1
		endif
		if sFEMail && bFDaneTeleadresowe then
			if nPom then print "     "
			SetFont ( "17cpi" ) : print "E-mail:"
			SetFont ( "12cpi" ) : print sFEMail
			nPom=1
		endif
		if nPom then print lf
		if bFNotatka then print sFNotatka;lf
	rysuj "-" : print lf
	SetFont( "17cpi" )
	If bNDane Then
		print "Nabywca: "
		SetFont( "12cpi" )
		print sNabywca;lf
		SetFont( "12cpi" )
		print "Adres: ";sNabKodPocz;" ";sNabMiasto
		if sNabAdres then print ", ";sNabAdres
		if sNabKrajNazwa != "Polska" then print ", ";sNabKrajNazwa
	Else
		Print "Nabywca"
	EndIf
	print lf
	print DajNip( sNabNip );buf
	if sNabNip then print "   "
	if bKonth then
		SetFont( "17cpi" )
		print "Kod: "
		SetFont( "12cpi" )
		print sNabKod
	endif
	print lf
	if bKhTeleadr then
		nPom=0
		if sNabTel1 then
			SetFont ( "17cpi" ) : print "Telefon:"
			SetFont ( "12cpi" )	:	print sNabTel1
			if sNabTel2 then print ", ";sNabTel2
			nPom=1
		endif
		if sNabFax then
			if nPom then print "   "
			SetFont ( "17cpi" ) : print "Fax:"
			SetFont ( "12cpi" ) : print sNabFax;
			nPom=1
		endif
		if sNabEMail then
			if nPom then print "     "
			SetFont ( "17cpi" ) : print "E-mail:"
			SetFont ( "12cpi" ) : print sNabEMail
			nPom=1
		endif
		if nPom then print lf
	endif
	If bNotatkaKh Then print sNotatkaKontr; LF
 	rysuj "-" : print lf
	SetFont( "12cpi" )

	if bOdbiorca then
	SetFont( "17cpi" )
	nRatio=TextWidth("W","17cpi")
         nPom = TextWidth( "Odbiorca: " )+10
         print DrukujDaneTxt(1,str.szer/2,"Odbiorca: "+sOdbiorca,-1)
         print DrukujDaneTxt(2,str.szer/2,"Forma płatności: "+sPlatName,-1);lf
	sTmpStr="Adres: "+sOdbKodPocz+" "+sOdbMiasto
	print DrukujDaneTxt(1,str.szer/2,sTmpStr,-1)
	sTmpStr="Waluta: "+sWaluta
	if bKurs then sTmpStr+="   "+"Kurs: "+ SformatujKursWaluty( fKurs )
	print DrukujDaneTxt(2,str.szer/2,sTmpStr,-1);lf
	If sOdbAdres Then
		Print DrukujDaneTxt( 1, str.szer / 2 , sOdbAdres, -1 )
	Else
		print Spacje((str.szer/nRatio)/2-len(PODZIALKOL));PODZIALKOL
	EndIf
	print DrukujDaneTxt(2,str.szer/2,"Termin płatności: "+sTerminPlat,-1);lf
	if bPrzelew then
		print Spacje((str.szer/nRatio)/2-len(PODZIALKOL));PODZIALKOL
		print DrukujDaneTxt(2,str.szer/2,"Bank: "+sNazwaBanku,-1);lf
		if RestData(size(RestData)).sdane!="" then DrukujDaneRst() : print lf
		print Spacje((str.szer/nRatio)/2-len(PODZIALKOL));PODZIALKOL
		print DrukujDaneTxt(2,str.szer/2,"Konto: "+sKonto,-1);lf
		if RestData(size(RestData)).sdane!="" then DrukujDaneRst() : print lf
		shrink nTabSzer, -1 : nTabSzer(1)=0
	endif
	shrink nTabSzer, -1 : nTabSzer(1)=0
	else
		print "Forma płatności: ";sPlatName;"   Waluta: ";sWaluta
      if bKurs then print "   Kurs: " + SformatujKursWaluty( fKurs )
		print "   Termin płatności: ";sTerminPlat;lf
		if bPrzelew then print "Bank: ";sNazwaBanku;" ";"   Konto: ";sKonto;lf
	endif
	rysuj "-" : print lf
	if bOpis && sOpis then
		SetFont ( "17cpi" )
		print sOpis;lf
		SetFont( "12cpi" )
		rysuj "-" : print lf
	endif

endif

if bAnulowano == 1 || bAnulowano == 3 then
	ramka od 0,#Y+10, str.szer,10,bRamki
		if GRAF then
			SetFont( CopyFont( "tekst",1,100 ) )
		else
			SetFont( "5cpi" )
		endif
		Align(0)
		print "ANULOWANO"
	koniec
	if xPoz.Count() && !GRAF then rysuj "-" : print lf
endif
if !GRAF then
		for i=1 to i > size(KolTab1)
			UstalSzerKolumn(i,KolTab1(i))
		next i
		DopasujDoStrony()
endif
do
y=str.Pozycja(#Y)
if xPoz.Count() then
		if !czyPozPodlega && !NPtrigger then NPtrigger=1
		if NPtrigger then
			czypozNP=0
			If xDocument.Charakter != 126 && xDocument.Charakter != 127 Then
				if GRAF then
					tbl0=tabela 0, 10006,str.szer,nc
					tabela #tbl0, od #X,y+10
					kolumna 1, "POZYCJE NIE OBJĘTE OPODATKOWANIEM"
					koniec
					y=str.Pozycja(#B)
				else
					print lf
					rysuj "-"
					print lf
					print Spacje(((str.szer-TextWidth("Pozycje nie objęte opodatkowaniem"))/TextWidth("a"))/2);"Pozycje nie objęte opodatkowaniem";lf
					print lf
					rysuj "-"
					print lf
				endif
			EndIf
		endif

	tbl0 = tabela 1,10006,KolTab1,StlTabH
	if GRAF then
		ramka od 0, #y+10*GRAF,nTblWidth1,10,0,nGray*GRAF
		tabela #tbl0
	endif

			sPom = "Nazwa"
			if nKod==1 then sPom += ",kod"
			if nKod==1 && nKodTyp==2 then sPom+=" obcy"
			if nKod==1 && nKodTyp==3 then sPom+=" paskowy"
			if GRAF then
				kolumna 1, "Lp."
				kolumna 2, sPom
			else
				print DrukujDaneTxt(1,KolTab1(1),"Lp.",0)
				print DrukujDaneTxt(2,KolTab1(2),sPom,0)
			endif
			pos = 2
#ifndef SIMPLIFIED
			if !nKod then
				if GRAF then
					kolumna (pos+=1),"Kod"
					if nKodTyp==2 then print " obcy"
					if nKodTyp==3 then print " paskowy"
				else
					sTmpStr="Kod"
					if nKodTyp==2 then sTmpStr+=" obcy"
					if nKodTyp==3 then sTmpStr+=" paskowy"
					print DrukujDaneTxt(pos+=1,KolTab1(pos),sTmpStr,0)
				endif
			endif
			if bPCN then
                If SHOW_CNdefined Then
					sTmpStr = "CN"
                Else
					sTmpStr = "PCN"
                EndIf
				if GRAF then
						kolumna(pos+=1),sTmpStr
				else
						Print DrukujDaneTxt(pos+=1,KolTab1(pos),sTmpStr,0)
				endif
			endif
			if bDostawy then
				if GRAF then
					kolumna (pos+=1),"Nazwa dostawy"
				else
					print DrukujDaneTxt(pos+=1,KolTab1(pos),"Nazwa dostawy",0)
				endif
			endif
			if GRAF then
				kolumna (pos+=1),"Ilość"
				kolumna (pos+=1),"Jm"
				if CzyKolVat then kolumna (pos+=1),"Stawka VAT"
				if bWartPLN then kolumna (pos+=1),"Wartość PLN"
				If bCenaPrzed && !bRabatDlaWartosci Then kolumna pos+=1,"Cennik"
				If bRabatDlaWartosci && bCenaPrzed Then kolumna pos+=1,"Cena " + sWaluta
				If bRabaty && !bRabatDlaWartosci then kolumna pos+=1,"Rabat %"
				If !bRabatDlaWartosci Then
					kolumna (pos+=1), "Cena " + sWaluta
				Else
					If bCenaPrzed Then Kolumna (pos+=1), "Wartość przed rab."
				EndIf
				If bRabaty && bRabatDlaWartosci then kolumna pos+=1,"Rabat %"
				If bRabatDlaWartosci && !bCenaPrzed Then kolumna pos+=1,"Cena"
				kolumna (pos+=1),"Wartość " + sWaluta
			
				koniec
				koniec
			else
				print DrukujDaneTxt(pos+=1,KolTab1(pos),"Ilość",0)
				print DrukujDaneTxt(pos+=1,KolTab1(pos),"Jm",0)
				if CzyKolVat then print DrukujDaneTxt(pos+=1,KolTab1(pos),"Stawka VAT",0)
				if bWartPLN then print DrukujDaneTxt(pos+=1,KolTab1(pos),"Wartość PLN",0)
				If bCenaPrzed && !bRabatDlaWartosci Then print DrukujDaneTxt(pos+=1,KolTab1(pos),"Cennik",0)
				If bRabatDlaWartosci && bCenaPrzed Then print DrukujDaneTxt(pos+=1,KolTab1(pos),"Cena",0)
				If bRabaty && !bRabatDlaWartosci then print DrukujDaneTxt(pos+=1,KolTab1(pos),"Rabat %",0)
				If !bRabatDlaWartosci Then
					print DrukujDaneTxt(pos+=1,KolTab1(pos),"Cena",0)
				else
					If bCenaPrzed Then print DrukujDaneTxt(pos+=1,KolTab1(pos),"Wartość przed rab.",0)
				endif
				If bRabaty && bRabatDlaWartosci	then print DrukujDaneTxt(pos+=1,KolTab1(pos),"Rabat %",0)
				if bRabatDlaWartosci && !bCenaPrzed then print DrukujDaneTxt(pos+=1,KolTab1(pos),"Cena",0)
				print DrukujDaneTxt(pos+=1,KolTAb1(pos),"Wartość",0)
				if RestData(size(RestData)).sdane!="" then print lf : DrukujDaneRst()
			endif
#else
				If GRAF Then
					Koniec
					Koniec
				EndIf
#endif
	if !GRAF then
		print lf
		rysuj "-"
		print lf
	endif
	tbl1 = tabela !bVertLines || !GRAF,5005,KolTab1,StlTab1
	For i = 1 To i > xPoz.Count()//size( Pozycje )
		if !xPoz.item(i).dokompletu then
		if xPoz.item(i).niepodlega && !NPtrigger then czypozNp=1
		if (NPtrigger && xPoz.item(i).niepodlega) || !(NPtrigger || xPoz.item(i).niepodlega) then
		if GRAF then
			ramka od 0,#Y,nTblWidth1,10,0,nOddGray*bGrayTrigger*GRAF
		   	tabela #tbl1
				kolumna 1,using "%d",xPoz.item(i).Lp
		else
			print DrukujDaneTxt(1,KolTab1(1),(using "%d",xPoz.item(i).Lp),1)
		endif
		sPom = xPoz.item(i).Opis//poz_opis.Get(using"%d",i)
		if nKod==1 then
			select case nKodTyp
				case 1
					sPom += ", "+xPoz.item(i).Kod//Pozycje(i).Kod
				case 2
					nResult=xPoz.item(i).PodajKodObcy() : xErr(nResult)
					if nResult then Message sStndError : error ""
					sPom += ", "+xPoz.item(i).KodObcy
				case 3
					sPom +=  ", "+KodPaskowy_pozycji(i)
			endselect
			endif
			if GRAF then
	  			kolumna 2,PiszWyrazy(sPom,KolTab1(2)-10)
	  		else
	  			print DrukujDaneTxt(2,KolTab1(2),sPom,-1)
	  		endif
			pos = 2
#ifndef SIMPLIFIED
			if !nKod then
				select case nKodTyp
					case 1
						if GRAF then
							kolumna (pos+=1),PiszWyrazy(xPoz.item(i).Kod,KolTab1(pos)-10)
						else
							print DrukujDaneTxt(pos+=1,KolTab1(pos),xPoz.item(i).kod,-1)
						endif
					case 2
						nResult=xPoz.item(i).PodajKodObcy() : xErr(nResult)
						if nResult then Message sStndError : error ""
						if GRAF then
							kolumna (pos+=1),PiszWyrazy(xPoz.item(i).KodObcy,KolTab1(pos)-10)
						else
							print DrukujDaneTxt(pos+=1,KolTab1(pos),xPoz.item(i).KodObcy,-1)
						endif
					case 3
						if GRAF then
							kolumna (pos+=1),PiszWyrazy(KodPaskowy_pozycji(i),KolTab1(pos)-10)
						else
							print DrukujDaneTxt(pos+=1,KolTab1(pos),KodPaskowy_pozycji(i),-1)
					endif
					endselect
			endif
			if bPCN then
				buf=DajPCN(i)
				If GRAF then
					kolumna(pos+=1),PiszWyrazy(buf,KolTab1(pos)-10)
				else
					print DrukujDaneTxt(pos+=1,KolTab1(pos),buf,0)
				endif
			endif
			if bDostawy then
				buf=""
				for idw=1 to idw>nDostawy
					if Dostawy(idw).lp == i then
						//ObliczWys(Dostawy(idw).nazwa,KolTab1(pos+1)-15)
						buf+= Dostawy(idw).nazwa+" "//sBroken
					endif
				next idw
				if GRAF then
					kolumna (pos+=1), PiszWyrazy(buf,KolTab1(pos)-10)
				else
					print DrukujDaneTxt(pos+=1,KOlTab1(pos),buf,0)
				endif
			endif
 			buf = using "%4.4f",iif(nJednMiary,xPoz.item(i).IloscWP,xPoz.item(i).Ilosc)
			delete regular "(0#$)|(.0#$)"
			if GRAF then
				kolumna (pos+=1), PiszWyrazy(buf,KolTab1(pos)-10)
				kolumna (pos+=1),PiszWyrazy(iif(nJednMiary,xPoz.item(i).JednostkaMiaryWP,xPoz.item(i).JednostkaMiary),KolTab1(pos)-10)
				if CzyKolVat then kolumna (pos+=1), PiszWyrazy(xPoz.item(i).StVat.nazwa , KolTab1(pos)-10)
				if bWartPLN then kolumna (pos+=1), kwota( (xPoz.item(i).NiePodlega+xPoz.item(i).Netto))
				if bCenaPrzed then kolumna (pos+=1),formatuj( Round(iif(nJednMiary,xPoz.item(i).CenaCennikowa,xPoz.item(i).CenaCennikowa/Ceny(i).PrzelJmDod),nCenaRound+1),nCenaRound+1 )
				If bRabaty && bRabatDlaWartosci && !bCenaPrzed Then
					buf = using "%2.2f", Round(xPoz.item(i).Rabat*100,nRabatRound)
					find regular "{(/-)|():d##}.{:d##}"
					if (regular 2) == "00" then buf = (regular 1)
					if buf == "0" then buf=""
					if GRAF then
						kolumna (pos+=1), buf
					else
						print DrukujDaneTxt(pos+=1,KolTab1(pos),buf,1)
					endif
				EndIf
				if bRabatDlaWartosci && !bCenaPrzed then 	kolumna (pos+=1), formatuj( Round(iif(nJednMiary,Ceny(i).CenaNettoWP,Ceny(i).CenaNetto)/fKurs,nCenaRound+1),nCenaRound+1 )
				if bRabaty && !bRabatDlaWartosci then
					buf = using "%2.2f", Round(xPoz.item(i).Rabat*100,nRabatRound)
					find regular "{(/-)|():d##}.{:d##}"
					if (regular 2) == "00" then buf = (regular 1)
					if buf == "0" then buf=""
					kolumna (pos+=1), PiszWyrazy(buf,KolTab1(pos)-10)
				endif
			else
				print DrukujDaneTxt(pos+=1,KolTab1(pos),buf,1)
				print DrukujDaneTxt(pos+=1,KolTab1(pos),iif(nJednMiary,xPoz.item(i).JednostkaMiaryWP,xPoz.item(i).JednostkaMiary),0)
				if bCenaPrzed then print DrukujDaneTxt(pos+=1,KolTab1(pos),formatuj( Round(iif(nJednMiary,xPoz.item(i).CenaCennikowa,xPoz.item(i).CenaCennikowa/Ceny(i).PrzelJmDod),nCenaRound+1),nCenaRound+1 ),1)
				if bRabaty && bRabatDlaWartosci && !bCenaPrzed then
					buf = using "%2.2f", Round(xPoz.item(i).Rabat*100,nRabatRound)
					find regular "{(/-)|():d##}.{:d##}"
					if (regular 2) == "00" then buf = (regular 1)
					if buf == "0" then buf=""
					print DrukujDaneTxt(pos+=1,KolTab1(pos),buf,1)
				endif
				if bRabatDlaWartosci && !bCenaPrzed then print DrukujDaneTxt(pos+=1,KolTab1(pos),formatuj( Round(iif(nJednMiary,Ceny(i).CenaNettoWP,Ceny(i).CenaNetto)/fKurs,nCenaRound+1),nCenaRound+1 ),1)
				if bRabaty && !bRabatDlaWartosci then
					buf = using "%2.2f", Round(xPoz.item(i).Rabat*100,nRabatRound)
					find regular "{(/-)|():d##}.{:d##}"
					if (regular 2) == "00" then buf = (regular 1)
					if buf == "0" then buf=""
					print DrukujDaneTxt(pos+=1,KolTab1(pos),buf,1)
				endif
			endif
			If !bRabatDlaWartosci Then
				if GRAF then
		        	kolumna (pos+=1), formatuj( Round(iif(nJednMiary,Ceny(i).CenaNettoWP,Ceny(i).CenaNetto)/fKurs,nCenaRound+1),nCenaRound+1 )
		        else
			        print DrukujDaneTxt(pos+=1,KolTab1(pos),formatuj( Round(iif(nJednMiary,Ceny(i).CenaNettoWP,Ceny(i).CenaNetto)/fKurs,nCenaRound+1),nCenaRound+1 ),1)
		       endif
			Else
				If bCenaPrzed Then
					if GRAF then
						kolumna (pos+=1), formatuj( Round(iif(nJednMiary,xPoz.item(i).IloscWP,xPoz.item(i).Ilosc) * iif(nJednMiary,xPoz.item(i).CenaCennikowa,xPoz.item(i).CenaCennikowa/Ceny(i).PrzelJmDod),nCenaRound+1),nCenaRound+1 )
					else
						print DrukujDaneTxt(pos+=1,KolTab1(pos),formatuj( Round(iif(nJednMiary,xPoz.item(i).IloscWP,xPoz.item(i).Ilosc) * iif(nJednMiary,xPoz.item(i).CenaCennikowa,xPoz.item(i).CenaCennikowa/Ceny(i).PrzelJmDod),nCenaRound+1),nCenaRound+1 ),1)
					endif
				endif
			EndIf
			If bRabaty && bRabatDlaWartosci && bCenaPrzed Then
				buf = using "%2.2f", Round(xPoz.item(i).Rabat*100,nRabatRound)
				find regular "{(/-)|():d##}.{:d##}"
				if (regular 2) == "00" then buf = (regular 1)
				if buf == "0" then buf=""
				if GRAF then
					kolumna (pos+=1), buf
				else
					print DrukujDaneTxt(pos+=1,KolTab1(pos),buf,1)
				endif
			EndIf
			if GRAF then
			 kolumna (pos+=1), kwota( (xPoz.item(i).niePodlegaWal+xPoz.item(i).NettoWal)) //Wartosc netto w walucie.
				//if CzyKolVat then kolumna (pos+=1), PiszWyrazy(xPoz.item(i).StVat.nazwa , KolTab1(pos)-10)
				//if bWartPLN then kolumna (pos+=1), kwota( (xPoz.item(i).NiePodlega+xPoz.item(i).Netto))
				koniec
 		 	 	koniec
 		 	 else
 		 	 	print DrukujDaneTxt(pos+=1,KolTab1(pos),kwota( (xPoz.item(i).NiePodlega+xPoz.item(i).Netto)/fKurs ),1)
 		 	 	//if CzyKolVat then print DrukujDaneTxt(pos+=1,KolTab1(pos),PiszWyrazy(xPoz.item(i).StVat.nazwa , KolTab1(pos)-10),1)
 		 	 	//if bWartPLN then print DrukujDaneTxt(pos+=1,KolTab1(pos),kwota( (xPoz.item(i).NiePodlega+xPoz.item(i).Netto)),1)
 		 	 	print lf
 		 	 endif
#else
		If GRAF Then
			Koniec
			Koniec
		Else
			Print LF
		EndIf
#endif 		 	 
		if i==1 && bVertLines && GRAF then DrawLine at 0,#T,nTblWidth1,0
		if GRAF && bVertLines then
			x = 0
			y = str.pozycja(#B)-str.pozycja(#T)
			pom = 1
			do
				x+=KolTab1(pom)
				DrawLine at x,#T,0,y
				pom+=1
			loop until pom>size(KolTab1)
			DrawLine at 0,#T,0,y
		endif
		if bOddGray && GRAF then bGrayTrigger = !bGrayTrigger
		if !GRAF && RestData(size(RestData)).sdane!="" then DrukujDaneRst() : print lf
		endif
		endif
	Next i
	if GRAF && bVertLines then DrawLine at 0,#Y,nTblWidth1,0
	if !GRAF then rysuj "-" : print lf
endif

if !CzyKolVat then
	if GRAF then
#ifdef OO_ONLY
			SetStyl( nbl )
			Print "Sprzedaż objęta odwrotnym obciążeniem."
#endif
			tbl2 = tabela 1,5005,KolTab2,StlTab2
			tabela #tbl2, od str.szer-nTblWidth2,#Y
				kolumna 1,"RAZEM"
		          kolumna IIF(bWartPLN==0,2,4),kwota( IIF(NPtrigger,xDocument.niePodlegaWal,xDocument.nettoWal) ) + IIF( CompactForm, " " + sWaluta, "" ) //Wartosc netto w walucie.
				if bWartPLN then kolumna 2,kwota( IIF(NPtrigger,xDocument.niepodlega,xDocument.netto) )
			koniec
	else
		nDiff=1
		if bWartPLN then nDiff=2
		print DrukujStopkeTxt(size(KolTab1)-nDiff,size(nTabSzer)-nDiff,nTabSzer(size(nTabSzer)-nDiff),"RAZEM",0,1)
		print DrukujStopkeTxt(0,size(nTabSzer)-nDiff+1,nTabSzer(size(nTabSzer)-nDiff+1),kwota(IIF(NPtrigger,xDocument.niepodlega,xDocument.netto)/xDocument.kurs) + IIF( CompactForm, " " + sWaluta, "" ),1,1) // tot_netto/fKurs ),1,1)
		if bWartPLN then print DrukujStopkeTxt(0,size(nTabSzer)-nDiff+2,nTabSzer(size(nTabSzer)-nDiff+2),kwota( IIF(NPtrigger,xDocument.niepodlega,xDocument.netto) ),1,1)
		print lf
	endif
endif


StVatPos = str.szer //1910
i = size(KolTab1)
for i=1 to i>4
	StVatPos -= 180
next i
shrink KolTab2,-1
grow KolTab2, 3
nTblWidth2 = 0
xtab = 1
nTblMarg = 4005
for i= size(KolTab1) - 3 to i > size(KolTab1)
	KolTab2(xtab) = 180 //KolTab1(i)
	nTblWidth2 += 180 //KolTab2(xtab)
	xtab += 1
next i
tbl2 = tabela 1,nTblMarg,KolTab2,StlTab2
tbl0 = tabela 1,nTblMarg,koltab2,StlTabH


if PPlnVat then
	if GRAF then
		Ramka od StVatPos,#Y+10,nTblWidth2,10,0,nGray
	else
		Ramka od StVatPos,#Y+10,nTblWidth2,10,0
	endif
		tabela #tbl0
			kolumna 1,"Netto"
			kolumna 2,"%"
			kolumna 3,"VAT"
			kolumna 4,"Brutto"
		koniec
	koniec
	For i = 1 To i>size(StawkiVat)//cursize
	if sign(StawkiVat(i).Brutto,2) then //( bZerVat && stvat(kolvat(i)).aktywna ) || sign ( stvat(kolvat(i)).brutto, 2 ) then
			tabela #tbl2, od StVatPos,#B
				kolumna 1, kwota ( StawkiVat(i).netto)//stvat(kolvat(i)).netto )
				kolumna 2, StawkiVat(i).Nazwa//stvat(kolvat(i)).nazwa
				kolumna 3, kwota ( StawkiVat(i).Vat) //stvat(kolvat(i)).vat )
				kolumna 4, kwota ( StawkiVat(i).Brutto ) //stvat(kolvat(i)).brutto )
			koniec
		endif
	next i
	tbl2 = tabela 5,nTblMarg,KolTab2,StlTab2
	tabela #tbl2, od StVatPos,#B
		kolumna 1, kwota ( IIF( xDocument.czyBezVat, xDocument.wartosc, xDocument.Netto ) )
		kolumna 2 :	Align(0) : print "RAZEM"
		kolumna 3, kwota ( IIF( xDocument.czyBezVat, 0, xDocument.Vat ) )
		kolumna 4, kwota ( IIF( xDocument.czyBezVat, xDocument.wartosc, xDocument.Brutto ) )
	koniec
endif

tbl2 = tabela 1,nTblMarg,KolTab2,StlTab2
//ponownie ustawiamy tabele poniewaz dodaje niepotrzebne seperatory	

if PWalVat then
	if GRAF then
		Ramka od StVatPos,#Y+10,nTblWidth2,10,0,nGray
	else
		Ramka od StVatPos,#Y+10,nTblWidth2,10,0
	endif
		tabela #tbl0
			kolumna 1, using "Netto w %s", sWaluta
			kolumna 2,"%"
			kolumna 3,"VAT w PLN"
			kolumna 4, using "Brutto w %s", sWaluta
		koniec
	koniec
	For i = 1 To i>size(StawkiVat)
	if sign(StawkiVat(i).Brutto,2) then
			tabela #tbl2, od StVatPos,#B
				kolumna 1, kwota ( StawkiVat(i).nettoWal )
				kolumna 2, StawkiVat(i).Nazwa
				kolumna 3, kwota ( StawkiVat(i).vat)
				kolumna 4, kwota ( StawkiVat(i).BruttoWal )
			koniec
		endif
	next i
	tbl2 = tabela 1,nTblMarg,KolTab2,StlTab2
	tabela #tbl2, od StVatPos,#B
		kolumna 1, kwota ( IIF( xDocument.czyBezVat, xDocument.wartoscWWalucie, xDocument.NettoWal ) )
		kolumna 2 :	Align(0) : print "RAZEM"
		kolumna 3, kwota ( IIF( xDocument.czyBezVat, 0, xDocument.Vat ) )
		kolumna 4, kwota ( IIF( xDocument.czyBezVat, xDocument.wartoscWWalucie, xDocument.BruttoWal ) )
	koniec
endif

y=str.Pozycja(#B)
NPtrigger=czypozNP
loop while NPtrigger
NPtrigger=0
if GRAF then
    Zaliczki(xDocument.id)
    wartoscBrutto = xDocument.WartoscWWalucie
    if xDocument.objId == DokumentSpObjId then
        wartoscBrutto -= xDocument.rozliczonoZaliczkamiBrutto
    endif
	if GRAF then ramka od 50,#B+10,700,90,bRamki
	SetStyl( nbl )
	print at 30,20;"Razem do zapłaty: "
	SetFont( grub )
	print kwota( wartoscBrutto)+" "+sWaluta
	if GRAF then koniec
	SetStyl( nl )
	print at #R+50,#T+40;" "
	if Sign( fDoZaplatyWal-fWplatyWal ) then
		if fWplatyWal then
			print "Zapłacono: "
			SetFont( nb )
			print kwota ( fWplatyWal )+" "+sWaluta
			SetStyl( nl )
			print "     "
		endif
		print "Pozostało do zapłaty: "
		SetFont ( nb )
		print kwota( round(wartoscBrutto,2)-fWplatyWal )+" "+sWaluta
	else
		SetFont(grub)
		print "ZAPŁACONO"
	endif
	if GRAF then ramka od #L,#B+10,str.szer-100,90,bRamki
		SetStyl( nbl )
		print at 30,20;"Słownie: "
		SetFont( "tekst" )
		print kwotanatekst( (using "%.2f",round(wartoscBrutto,2)), sWaluta )
	if GRAF then koniec
else
//	rysuj "-"
	print lf
	print "Razem do zapłaty: "
	SetFont( "12cpi" )
	print kwota( wartoscBrutto)+" "+sWaluta
	SetFont( "10cpi" )
	print lf;"Słownie: "
	SetFont( "12cpi" )
	print kwotanatekst( (using "%.2f",round(wartoscBrutto,2)), sWaluta );lf
	if Sign ( fDoZaplatyWal-fWplatyWal ) then
		SetFont ( "17cpi" )
		if fWplaty then print "Zapłacono: ";kwota( fWplatyWal)+" "+sWaluta;"\t\t"
		print "Pozostało do zapłaty: ";kwota(round(wartoscBrutto,2)-fWplatyWal )+" "+sWaluta;lf
	else
		SetFont ( "17cpi" )
		print "Z A P Ł A C O N O\n"
	endif
endif

if bRabPods then
	if GRAF then
		tbl0 = tabela 1,5,KolTabPR,StlTabH
		Ramka od str.szer-500,#Y+50,500,10,0,nGray*GRAF
			tabela #tbl0
				kolumna 1,"W sumie rabat"
				kolumna 2,"Wartość"
			koniec
		koniec
		tbl0 = tabela 1,5,KolTabPR,StlTabPR
		tabela #tbl0, od str.szer-500,#Y
			kolumna 1, using "%2.2f%%",Round(fRabat,nRabatRound)
			kolumna 2, kwota ( tot_wartbaza/fKurs - wartoscBrutto )
		koniec
	else
		print DrukujStopkeTxt(size(nTabSzer)-2,size(nTabSzerFoot)-1,15,"W sumie rabat",0,1)
		print DrukujStopkeTxt(0,size(nTabSzerFoot),15,"Wartość",0,1);lf
		print DrukujStopkeTxt(size(nTabSzer)-2,size(nTabSzerFoot)-1,15,(using "%2.2f%%",Round(fRabat,nRabatRound)),0,1)
		print DrukujStopkeTxt(0,size(nTabSzerFoot),15,kwota ( tot_wartbaza/fKurs - wartoscBrutto ),0,1);lf
	endif
endif

if GRAF then

	print at 0,#B+50;
	FRNewRow(0)
	FRAddCol(-100,250,14,0,0)
	FRDraw()

	if bNotat && sNotatka then
		MultiPagePrint( sNotatka, 0, Str.Pozycja( #Y ) + 20, Str.Szer, 10, bRamki, nl )
	endif
	if arg6 != "" then
		ramka od 0, #y+20, str.szer, 10, bRamki
			SetFont ( nb ) : Align(-1)
			print "UWAGA: "
			SetFont ( "tekst" )
			print arg6
		koniec
	endif
	if bNotatRodz && sNotatkaRodz then		
        MultiPagePrint( sNotatkaRodz, 0, Str.Pozycja( #Y ) + 20, Str.Szer, 10, bRamki, nl )
	endif
else
  	print lf;lf;lf;lf
  	SetFont ( "17cpi" )
	buf = Arg5
	if find regular "=-(^u$)|(upowa?nienie)" then
		sPom = "Dokument wystawiony na podstawie pisemnego upoważnienia kupującego"
	else
		if !buf then
			sPom = "osoba upoważniona do odebrania dokumentu"
		else
			sPom = "Odebrał(a): "+Arg5
		endif
	endif
	print at (str.szer/2-TextWidth(sPom))/2,#Y;sPom
	if Arg4 then
		sPom = "Wystawił(a): "+Arg4
		print at str.szer/2+(str.szer/2-TextWidth(sPom))/2,#Y;sPom
	else
		sPom = "osoba upoważniona do wystawienia dokumentu"
		print at str.szer/2+(str.szer/2-TextWidth(sPom))/2,#Y;sPom
	endif
	SetStyl( nl )
	if bNotat && sNotatka then
		print "\n\n\n"		
		MultiPagePrint( sNotatka, 0, Str.Pozycja( #Y ) + 20, Str.Szer, 10, 0, nl )
	endif
	if arg6 then print "\n\n\nUWAGA: ";arg6
	if bNotatRodz && sNotatkaRodz then
		print "\n\n\n"
		MultiPagePrint( sNotatkaRodz, 0, Str.Pozycja( #Y ) + 20, Str.Szer, 10, 0, nl )
	endif

endif

if GRAF then
	// konstrukcja dziwna ze wzgledu na możliwość przejścia na następną stron
	y = str.pozycja(#Y)+50

	tbl0 = tabela 1,4004, 80,bc,350,bc,220,bc,200,bc,150,bc,200,bc  
	tbl1 = tabela 1,4004, 80,bc,350,bc,220,bc
	if bWydania && (Wydania(1).Nazwa||Wydania(1).Data_Wyd) then
		ramka od str.szer-650,y,650,10,0,nGray
			tabela #tbl1, od 0,0
				kolumna 1, "Lp."
				kolumna 2, "Dokument wydania"
				kolumna 3, "Data"
			koniec
		koniec
		yRight = Str.Pozycja( #B )
	endif
	if(bWydania && (Wydania(1).Nazwa || Wydania(1).Data_Wyd)) then
		tbl0 = tabela 1,4004, 80,nc,350,nc,220,nc,200,kr,150,nc,200,kr
		tbl1 = tabela 1,4004, 80,nc,350,nc,220,nc
		j = 1
		yCurr = IIF( yLeft > yRight, yLeft, yRight )
		while j<=Size(Wydania)
			ramka od 0,yCurr,str.szer,10,0
				if j<=Size(Wydania) && (Wydania(1).Nazwa||Wydania(1).Data_Wyd) && bWydania then
					tabela #tbl1, od str.szer-650,0
						kolumna 1, using "%d",j
						kolumna 2, Wydania(j).NAzwa
						kolumna 3, Wydania(j).Data_Wyd
					koniec
				endif
			koniec
			j+=1
			yCurr = Str.Pozycja( #Y )
		wend		
	endif
endif
if GRAF then
	DrukujDekretacjeTxt(1,0,0)
	close
	Footer(1)
else
	DrukujDekretacjeTxt(0,0,0)
	close
	FooterTxt(1)
endif
