//"fv_kor01I.sc","Faktura VAT korygująca I","\Dokumenty\Sprzedaż\",0,1.0.7,SYSTEM
////////////////////////////
// Faktura VAT korygująca I
// fv_kor01I.sc
////////////////////////////

#define SHOWGTU 1

#include "Wydruki - include"

// dla potrzeb nazwy stawki VAT dla pozycji z odwrotnym obciazeniem
#define PO_PRZED	1			// pozycje przed korekta
#define PO_KOREKTY	2			// korekty stawki VAT, ilosci, ceny, wartosci
#define PO_PO		3			// pozycje po korekcie
#define PO_ND		4			// pozostale sekcje / raporty

// podsumowanie kwot z odwrotnym obciazeniem
Int Sub PrintRowSumOO( Int tableNo, Int tableX, Int tableY, Float valueOO )
	If Sign( valueOO ) Then
		If !tableX && !tableY Then
	  		Tabela #tableNo
		Else
  			Tabela #tableNo, od tableX, tableY
		EndIf
				Kolumna 1, Kwota( valueOO )
		 		Kolumna 2, strNazwaVatOO
				Kolumna 3, "0,00"
				Kolumna 4, Kwota( valueOO )
			Koniec
	EndIf
EndSub

int Sub StopkiVAT(int nStat,int nParam)
int i,j,nTab(4),nStyl(4),nStylH(4),nRamkaStart

Int   iNP			// wiersz podsumowania stawki VAT NP
Float fOO			// kwota podsumowania pozycji z odwrotnym obciazeniem

#ifndef SIMPLIFIED
	for i=1 to i >nWNettoPos-1
		nRamkaStart+=KolTab1(i)
	next i
#endif
	nStyl(1)=kr : nStyl(2)=nc : nStyl(3)=nStyl(4)=kr
	nStylH(1)=nStylH(2)=nStylH(3)=nStylH(4)=nc
#ifdef SIMPLIFIED
	nRamkaStart = Str.Szer
	For i = 1 To i > Size( Koltab2 )
		nTab( i ) = KolTab2( i )
		nRamkaStart -= nTab( i )
	Next i
#else	
	if size(KolTab1)-nWNettoPos<4 then
		j=1
		for i=nWNettoPos to i >size(KolTab1)
			nTab(j)=KolTab1(i) : j+=1
		next i
		for i=j to i>4
			nTab(i)=200
		next i
	else
		j=0
		for i=nWNettoPos to i > nWNettoPos+3
			nTab(j)=KolTab1(i) : j+=1
		next i
	endif
	if nRamkaStart+nTab(1)+nTab(2)+nTab(3)+nTab(4)>str.szer then
		j=1
		for i=size(KolTab1)-3 to i > size(KolTab1)
			nTab(j)=KolTab1(i) : j+=1
		next i
		nRamkaStart=0
		for i=1 to i > size(KolTab1)-4
			nRamkaStart+=KolTab1(i)
		next i
	endif
#endif
	j=Tabela 1,4005,nTab,nStylH
	If !fakturkor Then
	Ramka od nRamkaStart,#Y,nTab(1)+nTab(2)+nTab(3)+nTab(4),10,0,nGray
		Tabela	#j
			Kolumna 1,"Wartość netto" + fcSuffix()
			Kolumna 2,"Stawka VAT"
			Kolumna 3,"Kwota VAT" + fcSuffixVAT()
			Kolumna 4,"Wartość brutto" + fcSuffix()
		koniec
	koniec
	EndIf
	currExRate = IIF( PLNonly == 0, xDocument.Kurs, 1 )
	j=Tabela 1,4005,nTab,nStyl
	Ramka od nRamkaStart,#B,nTab(1)+nTab(2)+nTab(3)+nTab(4),10,0,0
	Select case nStat
		case 0
			For i = 1 to i > size(StPrzed)
				iNP = (StPrzed(i).Nazwa=="NP")
				fOO = IIF(iNP,fPlnOO(PO_PRZED),0)
				if Sign ( StPrzed(i).netto-fOO,2 ) || Sign ( StPrzed(i).vat,2 ) || bZerVat then
					tabela #j
	 					kolumna 1, kwota( IIF( PLNonly==0, StPrzed(i).NettoWal, StPrzed(i).Netto-fOO ) )
						kolumna 2, StPrzed(i).Nazwa
						kolumna 3, kwota( StPrzed(i).vat )
						kolumna 4, kwota( IIF( PLNonly==0, StPrzed(i).BruttoWal, StPrzed(i).Brutto-fOO ) )
					koniec
				endif
			Next i
			PrintRowSumOO( j, 0, 0, fOO )
			tabela #j
				kolumna 1, kwota( IIF( PLNonly==0, tot_nettobazaWAL, tot_nettobaza ) )
				kolumna 2, "Razem"
				kolumna 3, kwota( tot_vatbaza)
				kolumna 4, kwota( IIF( PLNonly==0, tot_bruttobazaWAL, tot_bruttobaza ) )
			koniec
		case 1
			If !fakturkor Then
			For i = 1 to i > size(StKorekta)
				iNP = (StKorekta(i).Nazwa=="NP")
				fOO = IIF(iNP,fPlnOO(PO_KOREKTY),0)
				if Sign ( StKorekta(i).netto-fOO,2 ) ||  Sign ( StKorekta(i).vat,2 ) || bZerVat then
					tabela #j
						kolumna 1, kwota( IIF( PLNonly==0, StKorekta(i).NettoWal, StKorekta(i).Netto-fOO ) )
						kolumna 2, StKorekta(i).nazwa
						kolumna 3, kwota( StKorekta(i).vat )
						kolumna 4, kwota( IIF( PLNonly==0, StKorekta(i).BruttoWal, StKorekta(i).Brutto-fOO ) )
					koniec
				endif
			Next i
			PrintRowSumOO( j, 0, 0, fOO )
			if !nParam || (nParam && (xDocument.Netto+xDocument.Vat+xDocument.Brutto)) then
				tabela #j
					kolumna 1, kwota( IIF( PLNonly==0, xDocument.NettoWal, xDocument.Netto ) )
					kolumna 2, "Razem"
					kolumna 3, kwota( xDocument.Vat)
					kolumna 4, kwota( IIF( PLNonly==0, xDocument.BruttoWal, xDocument.Brutto ) )
				koniec
			endif
			EndIf
		case 2
			For i = 1 to i > size(StPo)
				iNP = (StPo(i).Nazwa=="NP")
				fOO = IIF(iNP,fPlnOO(PO_PO),0)
				if Sign( StPo(i).netto-fOO+StPrzed(i).netto-IIF(iNP,fPlnOO(PO_PRZED),0), 2 ) || Sign ( StPo(i).vat+StPrzed(i).vat, 2 ) || bZerVat then
					tabela #j
						kolumna 1, kwota( IIF( PLNonly==0, StPo(i).NettoWal, StPo(i).Netto-fOO ) )
						kolumna 2, StPo(i).nazwa
						kolumna 3, kwota( StPo(i).Vat)
						kolumna 4, kwota( IIF( PLNonly==0, StPo(i).BruttoWal, StPo(i).Brutto-fOO ) )
					koniec
				endif
			Next i
			PrintRowSumOO( j, 0, 0, fOO )
#ifdef FZALSPKOR
			If !Sign( ftNettoPoKOr ) && !Sign( ftVatPoKOr ) && !Sign( ftBruttoPoKor ) Then
				// jesli nie zostalo obliczone dla korekty zaliczki sprzedazy
				ftNettoPoKOr = tot_nettoBaza + xDocument.Netto
				ftVatPoKOr = tot_vatBaza + xDocument.Vat
				ftBruttoPoKor = tot_BruttoBaza + xDocument.Brutto
			EndIf
#endif
			tabela #j
				kolumna 1, kwota( ftNettoPoKOr/currExRate )
				kolumna 2, "Razem"
				kolumna 3, kwota( ftVatPoKOr)
				kolumna 4, kwota( ftBruttoPoKor/currExRate )
			koniec
		case 3//kontrakt
				For i = 1 to i > size(StVatK)
				if Sign ( StVatK(i).netto,2 ) || Sign ( StVatK(i).vat,2 ) || bZerVat  then
					tabela #j
	 					kolumna 1, kwota( IIF( PLNonly==0, StVatK(i).NettoWal, StVatK(i).Netto ) )
						kolumna 2, StVatK(i).nazwa
						kolumna 3, kwota( StVatK(i).vat )
						kolumna 4, kwota( IIF( PLNonly==0, StVatK(i).BruttoWal, StVatK(i).Brutto ) )
					koniec
				endif
			Next i
			tabela #j
				kolumna 1, kwota( IIF( PLNonly == 0, tot_nettokontraktWAL - tot_nettoNPKontraktWAL, tot_nettokontrakt - tot_nettoNPKontrakt ) )
				kolumna 2, "Razem"
				kolumna 3, kwota( tot_vatkontrakt)
				kolumna 4, kwota( IIF( PLNonly == 0, tot_bruttokontraktWAL - tot_nettoNPKontraktWAL, tot_bruttokontrakt - tot_nettoNPKontrakt ) )
			koniec
		case 4 	//korekta zbiorcza
			For i = 1 to i > size(StDokKor)
				iNP = (StKorekta(i).Nazwa=="NP")
				fOO = IIF(iNP,fPlnOO(PO_KOREKTY),0)
				if Sign( StDokKor(i).netto-fOO, 2 ) || Sign ( StDokKor(i).vat, 2 ) || bZerVat then
					tabela #j
						kolumna 1, kwota( IIF( PLNonly==0, StDokKor(i).NettoWal, StDokKor(i).Netto-fOO ) )
						kolumna 2, StDokKor(i).nazwa
						kolumna 3, kwota( StDokKor(i).Vat)
						kolumna 4, kwota( IIF( PLNonly==0, StDokKor(i).BruttoWal, StDokKor(i).Brutto-fOO ) )
					koniec
				endif
			Next i
			PrintRowSumOO( j, 0, 0, fOO )
			tabela #j
				kolumna 1, kwota( dok_Netto/currExRate )
				kolumna 2, "Razem"
				kolumna 3, kwota( dok_Vat)
				kolumna 4, kwota( dok_Brutto/currExRate )
			koniec
	endselect
	koniec
endsub

int Sub StopkiKorekt(int nStat,int npodsum)
int i,j,a,nRazemDist,nStart,x,y
int bOO = 0, cWidth = 180
int KolDscTym(1)
Int TabWidth

Int   iNP			// wiersz podsumowania stawki VAT NP
Float fOO			// kwota podsumowania pozycji z odwrotnym obciazeniem

	nStart = 1
    #ifdef FZALSPKOR
	if bPozTow then
	     if bStopki && (bVat+bBrutto)<2 then print lf : StopkiVat(nStat,0) : exit
    else
        nPodsum = 1
    endif
	for i=1 to i >nWNettoPos-1
		nRazemDist+=KolTab1(i)
	next i
    #else
         if bStopki && (bVat+bBrutto)<2 then print lf : StopkiVat(nStat,0) : exit
         for i=1 to i >nWNettoPos-2
		  nRazemDist+=KolTab1(i)
	     next i
    #endif
	if nWNettoPos > 3 && nWNettoPos - 1 <= size(KolTab1) then
		cWidth=KolTab1( nWNettoPos - 1 ) 
	endif
	if bKodBelow then nRazemDist+=1
    #ifdef FZALSPKOR
		j=Tabela 1,4005,cWidth,nc
		Ramka od nRazemDist - cWidth,#D+1,cWidth,10,0,0
		Tabela #j
	    	Kolumna 1,"Razem"
		koniec
		koniec
    #else
		TabWidth = IIF( CompactForm, 200, KolTab1( nWNettoPos - 1 ) )
		j=Tabela 1,4005,TabWidth,nc
		Ramka od nRazemDist,#D+IIF(bKZ && npodsum,20,0),TabWidth,10,0,nGray
		Tabela #j
	    	Kolumna 1,"Razem"
		koniec
		koniec
    #endif
	for i=1 to i >size(KolDsc)
		if KolDsc(i)==WARTN_ then nStart=i : exit
	next i
	a=nWNettoPos	

	#ifdef FZALKOR
		bOO = (nKod==0 && nSWW!=1 && nOO!=1)
	#else
		bOO = 0
	#endif

	if bOO then
		KolDscTym(1)=WARTN_	
		for i=2 to i > 1+size(KolDsc)
			grow KolDscTym, 1
			KolDscTym(i)=KolDsc(i-1)
		next i		
	endif
	currExRate = IIF( PLNonly == 0, xDocument.Kurs, 1 )
	for i=nStart to i > IIF(bOO, size(KolDscTym), size(KolDsc))
		TabWidth = IIF( CompactForm, 200, KolTab1( a ) )
		Select case (IIF(bOO, KolDscTym(i), KolDsc(i)))
			case WARTN_,KWVAT_,WARTB_
				j=Tabela 1,4005,TabWidth,nr
			case else
				j=Tabela 1,4005,TabWidth,nc
		endSelect
		Ramka od #R,#T,TabWidth,10,0,0
		tabela #j
		Select case (IIF(bOO, KolDscTym(i), KolDsc(i)))
			case WARTN_
				Select case nStat
					case 0
						 kolumna 1, kwota( IIF( PLNonly==0, tot_NettobazaWAL, IIF(fakturkor,ftkPrzedRAZEM,tot_Nettobaza) ) )
					case 1
						 kolumna 1, kwota( IIF( PLNonly==0, xDocument.NettoWal, IIF(fakturkor,xDocument.Brutto,xDocument.Netto) ) )
					case 2
						 kolumna 1, kwota( IIF( PLNonly==0, tot_nettoBazaWAL + xDocument.NettoWal, IIF(fakturkor,ftkPoRAZEM,tot_nettoBaza + xDocument.Netto) ) )
					case 3
						 kolumna 1, kwota( IIF( PLNonly==0, tot_NettoKontraktWAL - tot_nettoNPKontraktWAL, tot_NettoKontrakt - tot_nettoNPKontrakt ) )
					case 4
						kolumna 1,kwota( dok_Netto/currExRate )
				endSelect
			case STVAT_
				kolumna 1, "X"
			case KWVAT_
				Select case nStat
					case 0
						kolumna 1,kwota(tot_vatbaza)
					case 1
						kolumna 1,kwota(xDocument.Vat)
					case 2
						kolumna 1, kwota(tot_VatBaza+xDocument.Vat)
					case 3
						 kolumna 1, kwota(tot_VatKontrakt)
					case 4
						kolumna 1, kwota(dok_Vat)
				endselect
			case SWW_
				kolumna 1, "X"
			case DOSTAWA_
				kolumna 1, "X"
			case WARTB_
				select case nStat
					case 0
						kolumna 1, kwota( IIF( PLNonly==0, tot_bruttobazaWAL, tot_bruttobaza ) )
					case 1
						kolumna 1, kwota( IIF( PLNonly==0, xDocument.BruttoWal, xDocument.Brutto ) )
					case 2
						kolumna 1, kwota( IIF( PLNonly==0, tot_bruttobazaWAL + xDocument.BruttoWal, tot_bruttobaza + xDocument.Brutto ) )
					case 3
						 kolumna 1, kwota( IIF( PLNonly==0, tot_BruttoKontraktWAL - tot_nettoNPKontraktWAL, tot_BruttoKontrakt - tot_nettoNPKontrakt ) )
					case 4
						kolumna 1, kwota( dok_Brutto/currExRate )
				endSelect
		endselect
		koniec
		koniec
		a+=1
	next i
	if (bStopki && bVat && bBrutto) || nPodsum then
		print lf
        #ifdef FZALSPKOR
			j=Tabela 1,4005,cWidth,nc
            if (Korekty(1).lp || CzyNP) then
				Ramka od nRazemDist - cWidth,#D,cWidth+KolTab1(nWNettoPos)+KolTab1(nWNettoPos+1)+KolTab1(nWNettoPos+2)+KolTab1(nWNettoPos+3),10,0,0
					Tabela #j
						Kolumna 1,"W tym"
					koniec
            else
                Ramka od nRazemDist - cWidth,str.Pozycja(#D)+10,cWidth+KolTab1(nWNettoPos)+KolTab1(nWNettoPos+1)+KolTab1(nWNettoPos+2)+KolTab1(nWNettoPos+3),10,0,0
            endif
        #else
			j=Tabela 1,4005,KolTab1(nWNettoPos-1),nc
			Ramka od nRazemDist,#D,KolTab1(nWNettoPos-1)+KolTab1(nWNettoPos)+KolTab1(nWNettoPos+1)+(2*KolTab1(nWNettoPos+3)),10,0,0
			Tabela #j
				Kolumna 1,"W tym"
			koniec
        #endif
		x=str.Pozycja(#R) : y=str.Pozycja(#T)
		j=Tabela 1,4005,KolTab1(nWNettoPos),nr,KolTab1(nWNettoPos+1),nc,KolTab1(nWNettoPos+2),nr,KolTab1(nWNettoPos+3),nr
			Select Case nStat
				case 0
					For i = 1 to i > size(StPrzed)
						iNP = (StPrzed(i).Nazwa=="NP")
						fOO = IIF(iNP,IIF(PLNonly==0,fWalOO(PO_PRZED),fPlnOO(PO_PRZED)),0)
						if Sign ( StPrzed(i).netto-fOO,2 ) || Sign ( StPrzed(i).vat,2 ) || bZerVat then
							tabela #j, od x,y
	 							kolumna 1, kwota( IIF( PLNonly==0, StPrzed(i).NettoWal-fOO, StPrzed(i).Netto-fOO ) )
								kolumna 2, StPrzed(i).nazwa
								kolumna 3, kwota( StPrzed(i).vat )
								kolumna 4, kwota( IIF( PLNonly==0, StPrzed(i).BruttoWal-fOO, StPrzed(i).Brutto-fOO ) )
							koniec
							y=str.Pozycja(#D)
						endif
					Next i
					PrintRowSumOO( j, x, y, fOO )
				case 1
					For i = 1 to i > size(StKorekta)
						iNP = (StKorekta(i).Nazwa=="NP")
						fOO = IIF(iNP,IIF(PLNonly==0,fWalOO(PO_KOREKTY),fPlnOO(PO_KOREKTY)),0)
						if Sign ( StKorekta(i).netto-fOO,2 ) ||  Sign ( StKorekta(i).vat,2 ) || bZerVat then
							tabela #j, od x,y
								kolumna 1, kwota( IIF( PLNonly==0, StKorekta(i).NettoWal-fOO, StKorekta(i).netto-fOO ) )
								kolumna 2, Stkorekta(i).nazwa
								kolumna 3, kwota( StKorekta(i).vat )
								kolumna 4, kwota( IIF( PLNonly==0, StKorekta(i).BruttoWal-fOO, StKorekta(i).Brutto-fOO ) )
							koniec
							y=str.Pozycja(#D)
						endif
					Next i
					PrintRowSumOO( j, x, y, fOO )
				case 2
					For i = 1 to i > Size(StPo)
						iNP = (StPo(i).Nazwa=="NP")
						fOO = IIF(iNP,IIF(PLNonly==0,fWalOO(PO_PO),fPlnOO(PO_PO)),0)
						if StPo(i).Opis || Sign( StPo(i).netto-fOO, 2 ) || Sign ( StPo(i).vat, 2 ) || bZerVat then
							tabela #j, od x,y
								kolumna 1, kwota( IIF( PLNonly==0, StPo(i).NettoWal-fOO, StPo(i).Netto-fOO ) )
								kolumna 2, StPo(i).nazwa
								kolumna 3, kwota( StPo(i).Vat)
								kolumna 4, kwota( IIF( PLNonly==0, StPo(i).BruttoWal-fOO, StPo(i).Brutto-fOO ) )
							koniec
							y=str.Pozycja(#D)
						endif
					Next i
					PrintRowSumOO( j, x, y, fOO )
				case 3
					For i = 1 to i > size(StVatK)
						if Sign( StVatK(i).netto+StVatK(i).netto, 2 ) || Sign ( StVatK(i).vat+StVatK(i).vat, 2 ) || bZerVat then
							tabela #j, od x,y
								kolumna 1, kwota( IIF( PLNonly==0, StVatK(i).NettoWal, StVatK(i).Netto ) )
								kolumna 2, StVatK( i).nazwa
								kolumna 3, kwota( StVatK(i).vat)
								kolumna 4, kwota( IIF( PLNonly==0, StVatK(i).BruttoWal, StVatK(i).Brutto ) )
							koniec
							y=str.Pozycja(#D)
						endif
					Next i
				case 4
					For i = 1 to i > size(StDokKor)
						iNP = (StDokKor(i).Nazwa=="NP")
						fOO = IIF(iNP,fPlnOO(PO_KOREKTY),0)
						if Sign ( StDokKor(i).netto-fOO,2 ) ||  Sign ( StDokKor(i).vat,2 ) || bZerVat then
							tabela #j, od x,y
								kolumna 1, kwota( IIF( PLNonly==0, StDokKor(i).NettoWal, StDokKor(i).Netto-fOO ) )
								kolumna 2, StDokKor(i).nazwa
								kolumna 3, kwota( StDokKor(i).vat )
								kolumna 4, kwota( IIF( PLNonly==0, StDokKor(i).BruttoWal, StDokKor(i).Brutto-fOO ) )
							koniec
							y=str.Pozycja(#D)
						endif
					Next i
					PrintRowSumOO( j, x, y, fOO )
			endselect
		koniec
	endif
endsub

#ifdef FZALSPKOR
int Sub StopkiKorektK(int nStat,int npodsum)
int i,j,a,nRazemDist,nStart,x,y
	nStart = 1
    if iTyp != 137 && iTyp != 153 then
	    if bStopki && (bVat+bBrutto)<2 then print lf : StopkiVat(nStat,0) : exit
	endif
	for i=1 to i >nWNettoPosK-2
		nRazemDist+=KolTab1K(i)
	next i
	if bKodBelow then nRazemDist+=1
	j=Tabela 1,4005,KolTab1K(nWNettoPosK-1),nc
	Ramka od nRazemDist,#D,KolTab1K(nWNettoPosK-1),10,0,0
	Tabela #j
		Kolumna 1,"Razem"
	koniec
	koniec
	for i=1 to i >size(KolDscK)
		if KolDscK(i)==WARTN_ then nStart=i : exit
	next i
	a=nWNettoPosK
	currExRate = IIF( PLNonly == 0, xDocument.Kurs, 1 )
	for i=nStart to i > size(KolDscK)
		Select case KolDscK(i)
			case WARTN_,KWVAT_,WARTB_
				j=Tabela 1,4005,KolTab1K(a),nr
			case else
				j=Tabela 1,4005,KolTab1K(a),nc
		endSelect
		Ramka od #R,#T,KolTab1K(a),10,0,0
		tabela #j
		Select case KolDscK(i)
			case WARTN_
				Select case nStat
					case 0
						 kolumna 1, kwota( IIF( PLNonly==0, tot_NettobazaWAL, tot_Nettobaza ) )
					case 1
						 kolumna 1, kwota( IIF( PLNonly==0, xDocument.NettoWal, xDocument.Netto ) )
					case 2
						 kolumna 1, kwota( IIF( PLNonly==0, tot_nettoBazaWAL + xDocument.NettoWal, tot_nettoBaza + xDocument.Netto ) )
					case 3
						 kolumna 1, kwota( IIF( PLNonly==0, tot_NettoKontraktWAL - tot_nettoNPKontraktWAL, tot_NettoKontrakt - tot_nettoNPKontrakt ) )
				endSelect
			case STVAT_
				kolumna 1, "X"
			case KWVAT_
				Select case nStat
					case 0
						kolumna 1,kwota(tot_vatbaza)
					case 1
						kolumna 1,kwota(xDocument.Vat)
					case 2
						kolumna 1, kwota(tot_VatBaza+xDocument.Vat)
					case 3
						 kolumna 1, kwota(tot_VatKontrakt)
				endselect
			case SWW_
				kolumna 1, "X"
			case DOSTAWA_
				kolumna 1, "X"
			case WARTB_
				select case nStat
					case 0
						kolumna 1, kwota( IIF( PLNonly==0, tot_bruttobazaWAL, tot_bruttobaza ) )
					case 1
						kolumna 1, kwota( IIF( PLNonly==0, xDocument.BruttoWal, xDocument.Brutto ) )
					case 2
						kolumna 1, kwota( IIF( PLNonly==0, tot_bruttobazaWAL + xDocument.BruttoWal, tot_bruttobaza + xDocument.Brutto ) )
					case 3
						 kolumna 1, kwota( IIF( PLNonly==0, tot_BruttoKontraktWAL - tot_nettoNPKontraktWAL, tot_BruttoKontrakt - tot_nettoNPKontrakt ) )
				endSelect
		endselect
		koniec
		koniec
		a+=1
	next i
	if ((bStopki && bVat && bBrutto) || nPodsum) && iTyp != 137 && iTyp != 153 then
		print lf
		j=Tabela 1,4005,KolTab1K(nWNettoPosK-1),nc
		Ramka od nRazemDist,#D,KolTab1K(nWNettoPos-1)+KolTab1K(nWNettoPos)+KolTab1K(nWNettoPos+1)+KolTab1K(nWNettoPos+2)+KolTab1K(nWNettoPos+3),10,0,0
		Tabela #j
			Kolumna 1,"W tym"
		koniec
		x=str.Pozycja(#R) : y=str.Pozycja(#T)
		j=Tabela 1,4005,KolTab1K(nWNettoPosK),nr,KolTab1K(nWNettoPosK+1),nc,KolTab1K(nWNettoPosK+2),nr,KolTab1K(nWNettoPosK+3),nr
			Select Case nStat
				case 0
					For i = 1 to i > size(StPrzed)
						if Sign ( StPrzed(i).netto,2 ) || Sign ( StPrzed(i).vat,2 ) || bZerVat then
							tabela #j, od x,y
	 							kolumna 1, kwota( IIF( PLNonly==0, StPrzed(i).NettoWal, StPrzed(i).Netto ) )
								kolumna 2, StPrzed(i).nazwa
								kolumna 3, kwota( StPrzed(i).vat )
								kolumna 4, kwota( IIF( PLNonly==0, StPrzed(i).BruttoWal, StPrzed(i).Brutto ) )
							koniec
							y=str.Pozycja(#D)
						endif
					Next i
				case 1
					For i = 1 to i > size(StKorekta)
						if Sign ( StKorekta(i).netto,2 ) ||  Sign ( StKorekta(i).vat,2 ) || bZerVat then
							tabela #j, od x,y
								kolumna 1, kwota( IIF( PLNonly==0, StKorekta(i).NettoWal, StKorekta(i).Netto ) )
								kolumna 2, Stkorekta(i).nazwa
								kolumna 3, kwota( StKorekta(i).vat )
								kolumna 4, kwota( IIF( PLNonly==0, StKorekta(i).BruttoWal, StKorekta(i).Brutto ) )
							koniec
							y=str.Pozycja(#D)
						endif
					Next i
				case 2
					For i = 1 to i > Size(StPo)
						if Sign( StPo(i).netto, 2 ) || Sign ( StPo(i).vat, 2 ) || bZerVat then
							tabela #j, od x,y
								kolumna 1, kwota( IIF( PLNonly==0, StPo(i).NettoWal, StPo(i).Netto ) )
								kolumna 2, StPo(i).nazwa
								kolumna 3, kwota( StPo(i).Vat)
								kolumna 4, kwota( IIF( PLNonly==0, StPo(i).BruttoWal, StPo(i).Brutto ) )
							koniec
							y=str.Pozycja(#D)
						endif
					Next i
				case 3
					For i = 1 to i > size(StVatK)
						if Sign( StVatK(i).netto+StVatK(i).netto, 2 ) || Sign ( StVatK(i).vat+StVatK(i).vat, 2 ) || bZerVat then
							tabela #j, od x,y
								kolumna 1, kwota( IIF( PLNonly==0, StVatK(i).NettoWal, StVatK(i).Netto ) )
								kolumna 2, StVatK( i).nazwa
								kolumna 3, kwota( StVatK(i).vat)
								kolumna 4, kwota( IIF( PLNonly==0, StVatK(i).BruttoWal, StVatK(i).Brutto ) )
							koniec
							y=str.Pozycja(#D)
						endif
					Next i
			endselect
		koniec
	endif
endsub

int Sub StopkiVATK(int nStat,int nParam)
int i,j,nTab(4),nStyl(4),nStylH(4),nRamkaStart

	for i=1 to i >nWNettoPosK-1
		nRamkaStart+=KolTab1K(i)
	next i
	nStyl(1)=kr : nStyl(2)=nc : nStyl(3)=nStyl(4)=kr
	nStylH(1)=nStylH(2)=nStylH(3)=nStylH(4)=nc
	if size(KolTab1K)-nWNettoPosK<4 then
		j=1
		for i=nWNettoPosK to i >size(KolTab1K)
			nTab(j)=KolTab1K(i) : j+=1
		next i
		for i=j to i>4
			nTab(i)=200
		next i
	else
		j=0
		for i=nWNettoPosK to i > nWNettoPosK+3
			nTab(j)=KolTab1K(i) : j+=1
		next i
	endif
	if nRamkaStart+nTab(1)+nTab(2)+nTab(3)+nTab(4)>str.szer then
		j=1
		for i=size(KolTab1K)-3 to i > size(KolTab1K)
			nTab(j)=KolTab1K(i) : j+=1
		next i
		nRamkaStart=0
		for i=1 to i > size(KolTab1K)-4
			nRamkaStart+=KolTab1K(i)
		next i
	endif
	j=Tabela 1,4005,nTab,nStylH
	Ramka od nRamkaStart,#Y,nTab(1)+nTab(2)+nTab(3)+nTab(4),10,0,nGray
		Tabela	#j
			Kolumna 1,"Wartość netto" + fcSuffix()
			Kolumna 2,"Stawka VAT"
			Kolumna 3,"Kwota VAT" + fcSuffixVAT()
			Kolumna 4,"Wartość brutto" + fcSuffix()
		koniec
	koniec
	currExRate = IIF( PLNonly == 0, xDocument.Kurs, 1 )
	j=Tabela 1,4005,nTab,nStyl
	Ramka od nRamkaStart,#B,nTab(1)+nTab(2)+nTab(3)+nTab(4),10,0,0
	Select case nStat
		case 0
			For i = 1 to i > size(StPrzed)
				if Sign ( StPrzed(i).netto,2 ) || Sign ( StPrzed(i).vat,2 ) || bZerVat then
					tabela #j
	 					kolumna 1, kwota( IIF( PLNonly==0, StPrzed(i).NettoWal, StPrzed(i).Netto ) )
						kolumna 2, StPrzed(i).Nazwa
						kolumna 3, kwota( StPrzed(i).vat )
						kolumna 4, kwota( IIF( PLNonly==0, StPrzed(i).BruttoWal, StPrzed(i).Brutto ) )
					koniec
				endif
			Next i
			tabela #j
				kolumna 1, kwota( IIF( PLNonly==0, tot_nettobazaWAL, tot_nettobaza ) )
				kolumna 2, "Razem"
				kolumna 3, kwota( tot_vatbaza)
				kolumna 4, kwota( IIF( PLNonly==0, tot_bruttobazaWAL, tot_bruttobaza ) )
			koniec
		case 1
			For i = 1 to i > size(StKorekta)
				if Sign ( StKorekta(i).netto,2 ) ||  Sign ( StKorekta(i).vat,2 ) || bZerVat then
					tabela #j
						kolumna 1, kwota( IIF( PLNonly==0, StKorekta(i).NettoWal, StKorekta(i).Netto ) )
						kolumna 2, StKorekta(i).nazwa
						kolumna 3, kwota( StKorekta(i).vat )
						kolumna 4, kwota( IIF( PLNonly==0, StKorekta(i).BruttoWal, StKorekta(i).Brutto ) )
					koniec
				endif
			Next i
			if !nParam || (nParam && (xDocument.Netto+xDocument.Vat+xDocument.Brutto)) then
				tabela #j
					kolumna 1, kwota( IIF( PLNonly==0, xDocument.NettoWal, xDocument.Netto ) )
					kolumna 2, "Razem"
					kolumna 3, kwota( xDocument.Vat)
					kolumna 4, kwota( IIF( PLNonly==0, xDocument.BruttoWal, xDocument.Brutto ) )
				koniec
			endif
		case 2
			For i = 1 to i > size(StPo)
				if Sign( StPo(i).netto+StPrzed(i).netto, 2 ) || Sign ( StPo(i).vat+StPrzed(i).vat, 2 ) || bZerVat then
					tabela #j
						kolumna 1, kwota( IIF( PLNonly==0, StPo(i).NettoWal, StPo(i).Netto ) )
						kolumna 2, StPo(i).nazwa
						kolumna 3, kwota( StPo(i).Vat)
						kolumna 4, kwota( IIF( PLNonly==0, StPo(i).BruttoWal, StPo(i).Brutto ) )
					koniec
				endif
			Next i
			tabela #j
				kolumna 1, kwota( ftNettoPoKOr/currExRate )
				kolumna 2, "Razem"
				kolumna 3, kwota( ftVatPoKOr)
				kolumna 4, kwota( ftBruttoPoKor/currExRate )
			koniec
		case 3//kontrakt
				For i = 1 to i > size(StVatK)
				if Sign ( StVatK(i).netto,2 ) || Sign ( StVatK(i).vat,2 ) || bZerVat  then
					tabela #j
	 					kolumna 1, kwota( IIF( PLNonly==0, StVatK(i).NettoWal, StVatK(i).Netto ) )
						kolumna 2, StVatK(i).nazwa
						kolumna 3, kwota( StVatK(i).vat )
						kolumna 4, kwota( IIF( PLNonly==0, StVatK(i).BruttoWal, StVatK(i).Brutto ) )
					koniec
				endif
			Next i
			tabela #j
				kolumna 1, kwota( IIF( PLNonly==0, tot_nettokontraktWAL - tot_nettoNPKontraktWAL, tot_nettokontrakt - tot_nettoNPKontrakt ) )
				kolumna 2, "Razem"
				kolumna 3, kwota( tot_vatkontrakt)
				kolumna 4, kwota( IIF( PLNonly==0, tot_bruttokontraktWAL - tot_nettoNPKontraktWAL, tot_bruttokontrakt - tot_nettoNPKontrakt ) )
			koniec

	endselect
	koniec
endsub
#endif

If (bNrParagonuFisk || bNrUnikatowyKasy) Then
		ramka od 0,str.Pozycja(#Y)+20,str.szer,10,bRamki
			if bNrParagonuFisk then
				SetStyl( nl )
				print " Numer paragonu fiskalnego: "
				SetFont ( nb )
				print sNrParagonuFisk
				print "  "
			endif
           if bNrUnikatowyKasy then
		   		SetStyl( nl )
				print " Numer unikatowy kasy: "
				SetFont ( nb )
				print sNrUnikatowyKasy
			endif
		koniec
endif

#ifdef SIMPLIFIED
    If bOpis && sOpis Then 
#endif
		ramka od 0,str.Pozycja(#Y)+20,str.szer,10,bRamki
			SetStyl( nl )
			print " Przyczyna korekty: "
			SetFont ( nb )
			print sOpis
		koniec
#ifdef SIMPLIFIED
    EndIf
#endif

if bKZ && !bPozycje && xDocument.dokumentyKorygowaneKZ.Count() then
	ramka od 0,str.Pozycja(#Y)+20,str.szer,10,bRamki
		SetStyl( nl )
		tblIn = tabela 0,5,str.szer,nl
		tabela #tblIn
			kolumna 1,"Dokumenty korygowane: "
			print lf;
			SetStyl( nbl )
			sNum1 = ""
			sNum2 = ""
			for i=1 to i>xDocument.dokumentyKorygowaneKZ.Count()
				sNum2 = xDocument.dokumentyKorygowaneKZ.item(i).kod+", "+xDocument.dokumentyKorygowaneKZ.item(i).Data	
				if TextWidth(sNum1 + sNum2+  +";  ") < str.szer then 
					sNum1 = sNum1 + IIF(sNum1 != "",";  ", "") + sNum2
				else
					kolumna 1,sNum1
					sNum1 = sNum2
					print lf;
				endif
			next i
			if sNum1 != "" then kolumna 1,sNum1
		koniec
	koniec
endif

if CzyNP then
#ifdef SIMPLIFIED
	Grow KolTab1NP, 1
	Grow KolumnyNP, 1
	Grow StlTab1HNP, 1
	Grow StyleNP, 1
	KolTab1NP(1) = KolTab1NP(2) = 1
	KolumnyNP(1) = 170
	KolumnyNP(2) = Str.Szer - KolumnyNP(1)
	StlTab1HNP(1) = StlTab1HNP(2) = nc
	StyleNP(1) = nc
	StyleNP(2) = nl
	tbl1NPSzer = Str.Szer
#else
	grow KolTab1NP,8
	KolTab1NP(1)=KolTab1NP(2)=KolTab1NP(4)=	KolTab1NP(5)=KolTab1NP(8)=KolTab1NP(9)=1
	grow kolumnyNp,5 : grow StyleNP,5
	KolumnyNP(1)=80 : StyleNP(1)=nr
	if nKod then
		KolumnyNP(2)+=200 : i=3 //kod
	else
		KolTab1NP(3)=1
		grow KolumnyNP, 1 : grow StyleNP,1
		kolumnyNP(3)=200: StyleNP(3)=nl : i=4 //kod
	endif
	KolumnyNP(i)=160: StyleNP(i)=nr//ilosc
	KolumnyNP(i+=1)=130: StyleNP(i)=nc : i+=1//jm
	if !bRabaty then
		KolumnyNP(2)+=160
	else
		KolTab1NP(6)=1
		grow KolumnyNP,1 : grow StyleNP,1 //rabaty
		KolumnyNP(i)=160 : StyleNP(i)=nr : i+=1
	endif
	if !bDostawy then
		KolumnyNP(2)+=200 //dostawy
	else
		KolTab1NP(7)=1
		grow KolumnyNP, 1 : grow StyleNP,1
		kolumnyNP(i)=200: StyleNP(i)=nl : i+=1 //dostawy
	endif
	KolumnyNP(i)=300: StyleNP(i)=nr //cena
	KolumnyNP(i+=1)=300: StyleNP(i)=nr //wartosc
	KolumnyNP(2)=str.szer-80-130-160-bDostawy*200-160*bRabaty-!nKod*200-600 : StyleNP(2)=nl
	grow StlTab1HNP, size(kolumnyNP)-1
	for i=1 to i > size(StlTab1HNP)
		tbl1NPSzer+=kolumnyNP(i)
		StlTab1HNP(i)=nc
	next i
#endif
	tbl1HNP=Tabela !bVertLines, 4005, KolumnyNP, StlTab1HNP
	tbl1NP=Tabela !bVertLines, 4005, KolumnyNP, StyleNP
endif

if iTyp==ZKS || iTyp == SZK || iTyp == SZWK || iTyp == NZWK || iTyp == NZZK then//coś na zaliczkową then
		SetStyl( bc )

		if iTyp!=ZKS then	//pomijamy zaliczkę archiwalną
			// teraz nie ma czasu na finezje - rozszerzyc BHistoriaKontraktu "w wolnej chwili"
			currContract = GetObjById( "BDokumentSp", XHistoriaK.item( 1 ).idDokumentu )
			If currContract Then
				currExRate = IIF( PLNonly == 0, currContract.Kurs, 1 )
			Else
				// if this happens the world is going to end ...
				currExRate = IIF( PLNonly == 0, xDocument.Kurs, 1 )
			EndIf
		else
			currExRate = 1
		endif

		for b=1 to b >  xPozK.Count()
			if !xPozK.item(b).NiePodlega && !PozycjeK(b).Niepodlega then
	            if iTyp != SZK && iTyp != SZWK && iTyp != NZWK && iTyp != NZZK  then
				   print at #X,#Y+20;"POZYCJE KONTRAKTU" + LF
                else
                   SetStyl( nbl )
                   print at #X,#Y+20;"Dane dotyczące umowy\\zamówienia" + LF
                   SetStyl( bc )
                endif
                #ifdef FZALSPKOR
	                RysujNaglowekSZK(10,0)
					bOddTrigger = 0
					pom = 1
					for i = b to i > xPozK.Count()
						if !xPozK.item(i).DoKompletu && !xPozK.item(i).NiePodlega && !PozycjeK(i).Niepodlega then
							ZapiszKontraktSZK(0,PozycjeK(i),pom,(using"%d",i),currExRate) : pom =0
						endif
					next i
					StopkiKorektK(3,0)
                #else
					RysujNaglowekK(10,0)
					bOddTrigger = 0
					pom = 1
					for i = b to i > xPozK.Count()
						if !xPozK.item(i).DoKompletu && !xPozK.item(i).NiePodlega && !PozycjeK(i).Niepodlega then
							ZapiszKontrakt(0,PozycjeK(i),pom,(using"%d",i),currExRate) : pom =0
						endif
					next i
					if bVertLines then DrawLine at 0,#B,tbl1Szer,0
					if (bVat+bBrutto)<2 && bStopki then
						print lf : StopkiVat(3,0)
					else
						StopkiKorekt(3,0)
					endif
                #endif
				exit
			endif
		next b
		print lf

		if CzyNP && bPozycje then
		for b=1 to b >  xPozK.Count()
		if xPozK.item(b).NiePodlega || PozycjeK(b).Niepodlega then
			SetStyl( bl )
            print lf
			print at ((str.szer/2)-(TextWidth("POZYCJE NIE PODLEGAJĄCE VAT"))/2),#Y+10;"POZYCJE NIE PODLEGAJĄCE VAT" + LF
            #ifndef FZALSPKOR
			DrawLine at 0,#Y,str.szer,0,2,70
            #endif
            SetStyl( bc )
			RysujNaglowekK(10,1)
			bOddTrigger = 0
			pom = 1 : nInc=1
			for i = b to i > xPozK.Count()
				if !xPozK.item(i).DoKompletu && (xPozK.item(i).NiePodlega || PozycjeK(i).Niepodlega) then
					ZapiszKontrakt(1,PozycjeK(i),pom,(using"%d",i),currExRate) : pom =0 : nInc+=1
				endif
			next i
            #ifndef FZALSPKOR
			if bVertLines then DrawLine at 0,#B,tbl1Szer,0
            #endif
			StopkaNP( IIF( PLNonly==0, tot_nettoNPKontraktWAL, tot_nettoNPKontrakt ), 0 )
		endif
		next b
		endif

        #ifndef FZALSPKOR
		DrawLine at 0,#Y+40,str.szer,0,6,70
		print LF

			Ramka od 0,#Y,str.szer*0.70,10,0
			buf="ZALICZKA wpłynęła dnia "+sDataSp
			SetStyl ( bbc )
			print buf
			koniec
        #else
            if bOstatnia then
				Ramka od 0,#Y,str.szer*0.70,10,0
				buf="Korekta zaliczki otrzymanej dnia "+sDataSp
				SetStyl( nbl )
				print buf
				koniec
            endif
        #endif
endif
podsum=0

//---------------------------------
if xPoz.Count() then
	if !bKZ then
	if bPrzed && Przed(1).lp && bPozTow then
		//pozycje korygowane
		SetStyl( bc )
		for b=1 to b >size(Przed)
			if !Przed(b).czyNPo then
				print at #X,#Y+20;"POZYCJE KORYGOWANE" + LF
				RysujNaglowek(10,0)
				bOddTrigger = 0
				pom = 1
				for i = b to i > size( Przed )
					printPos = !fakturkor
					For indPos = 1 To indPos > Size( Korekty ) || printPos
						If Przed(i).lp == Korekty(indPos).lp && Korekty(indPos).nKorStat != 1 Then printPos = 1
					Next indPos
					if !Przed(i).czyNPo && printPos then ZapiszKorekte(0,Przed(i),pom,(using"B%d",Przed(i).lp),1,0,"",PO_PRZED) : pom =0 : ftkPrzedRAZEM += Przed(i).WartoscBrutto
				next i
				if bVertLines then DrawLine at 0,#B,tbl1Szer,0
				if (bVat+bBrutto)<2 && bStopki then
					print lf : StopkiVat(0,0)
				else
                    #ifdef FZALSPKOR
	                    if bStopki then
	                #endif
					       StopkiKorekt(0,0)
                    #ifdef FZALSPKOR
	                    endif
	                #endif
				endif
				exit
			endif
		next b
	endif
	else
		if !bPozycje && bStopki &&( tot_nettobaza || tot_vatbaza || tot_bruttobaza ) then
			SetStyl( bc )
			print at #X,#Y+20;"WARTOŚCI KORYGOWANE" + LF
			print lf : StopkiVat(0,0)
		endif
	endif

#ifdef FZALSPKOR
	if bPrzed && !bPozTow && bStopki then
	   if Przed(1).lp || CzyNP then
        if bOstatnia then
		print at #X,#Y+20;"ROZLICZENIE ZALICZKI WG STAWEK PODATKOWYCH PRZED KOREKTĄ" + LF
        else
        print at #X,#Y+20;"ROZLICZENIE FAKTURY WG STAWEK PODATKOWYCH PRZED KOREKTĄ" + LF
        endif
		If !Sign( fPlnOO( PO_PRZED ) ) Then
			For b = 1 To b > Size( Przed )
				If Przed( b ).iOO Then
					fPlnOO( PO_PRZED ) = fPlnOO( PO_PRZED ) + Przed( b ).WartoscBrutto
					fWalOO( PO_PRZED ) = fWalOO( PO_PRZED ) + Przed( b ).BruttoWal
				EndIf
			Next b
		EndIf
       endif
	   if Przed(1).lp then
			//pozycje korygowane
			SetStyl( bc )
			for b=1 to b >size(Przed)
				if !Przed(b).czyNPo then
						j=Tabela 1,4005,KolTab1(size(KolTab1)-3),nc,KolTab1(size(KolTab1)-2),nc,KolTab1(size(KolTab1)-1),nc,KolTab1(size(KolTab1)),nc
						Ramka od nRazemDist2,#Y,KolTab1(size(KolTab1))+KolTab1(size(KolTab1)-1)+KolTab1(size(KolTab1)-2)+KolTab1(size(KolTab1)-3),10,0,nGray
							Tabela #j
							Kolumna 1,"Wartość netto" + fcSuffix()
							Kolumna 2,"Stawka VAT"
							Kolumna 3,"Kwota VAT" + fcSuffixVAT()
							Kolumna 4,"Wartość brutto" + fcSuffix()
							koniec
						koniec
						StopkiKorekt(0,0)
					exit
				endif
			next b
        endif
        if CzyNP then
            StopkaNP( IIF( PLNonly == 0, tot_nettoNPBazaWAL, tot_nettoNPBaza ), nRazemDist2 )
        endif
	endif
#endif

endif
	//korekty
#ifndef FZALSPKOR
	if bPozTow then
		SetStyl( bl )
		If !fakturkor Then
		for b=1 to b>size(Korekty)
			if Korekty(b).nKorStat==1 then
				SetStyl(bc)
				print at #X,#Y+20;"KOREKTY STAWKI VAT\n"
				RysujNaglowek(10,0)
				bOddTrigger = 0
				for i = b to i > size( Korekty )
					if Korekty(i).nKorStat==1 then ZapiszKorekte(0,Korekty(i),i==1,(using"K%d",Korekty(i).lp),2,i,"",PO_KOREKTY)
				next i
				if bVertLines then DrawLine at 0,#B,tbl1Szer,0
				exit
			endif
		next b
		EndIf
		for b=1 to b > size(Korekty)
			if Korekty(b).nKorStat==2 && !Korekty(b).czyNPo then
				SetStyl(bc)
				print at 0,#Y+20;"KOREKTY ILOŚCI\n"
				RysujNaglowek(10,0)
				bOddTrigger = 0
				for i = b to i > size( Korekty)
					if Korekty(i).nKorStat==2 && !Korekty(i).czyNPo then ZapiszKorekte(0,Korekty(i),i==1,(using"K%d",Korekty(i).lp),2,0,"",PO_KOREKTY)
				next i
				if bVertLines then DrawLine at 0,#B,tbl1Szer,0
				exit
			endif
		next b
		if !bKZ then
		for b=1 to b > size(Korekty)
			if Korekty(b).nKorStat==3 && !Korekty(b).czyNPo then
				SetStyl(bc)
				print at 0,#Y+20;"KOREKTY CENY\n"
				RysujNaglowek(10,0)
				bOddTrigger = 0
				for i = b to i > size( Korekty)
					if Korekty(i).nKorStat==3 && !Korekty(i).czyNPo then ZapiszKorekte(0,Korekty(i),i==1,(using"K%d",Korekty(i).lp),2,0,"",PO_KOREKTY)
				next i
				if bVertLines then DrawLine at 0,#B,tbl1Szer,0
				exit
			endif
		next b
		if (xDocument.Netto || xDocument.Vat || xDocument.Brutto) && Korekty(1).lp then
				if ((bVat+bBrutto)<2 && bStopki) then
				print lf : StopkiVat(1,0)
			else
				StopkiKorekt(1,0)
			endif
			endif
		else
			if (xDocument.Netto || xDocument.Vat || xDocument.Brutto ) then			
				SetStyl(bc)
				print at 0,#Y+20;"KOREKTA WARTOŚCI" + LF
			endif
			if bPozycje then
				for d=1 to d > xDocument.dokumentyKorygowaneKZ.Count()
					b=1	
					bDokPoz = 0
					for p=1 to p > size(Korekty)
						if Korekty(p).nKorStat==3 && !Korekty(p).czyNPo && Korekty(p).superkoryg == xDocument.dokumentyKorygowaneKZ.item(d).id then
							if b then
								dok_Netto = 0.0
								dok_Vat = 0.0
								dok_Brutto = 0.0
								if 	bStopki then ClearStawkiVatDokKor()
								SetStyl(sl)
								print at 0,#Y+20; " Dokument korygowany: " 
								SetStyl(nl)
								print xDocument.dokumentyKorygowaneKZ.item(d).kod + ", " + xDocument.dokumentyKorygowaneKZ.item(d).Data + "\n"
								RysujNaglowek(10,0)
								bOddTrigger = 0 : nInc=1
								b=0
								bDokPoz = 1
							endif
							ZapiszKorekte(0,Korekty(p),p==1,(using"K%d",Korekty(p).lp),2,0,"",PO_KOREKTY)
							if bVertLines then DrawLine at 0,#B,tbl1Szer,0
							dok_Netto = dok_Netto + Korekty(p).WartoscNetto
							dok_Vat = dok_Vat + Korekty(p).KwotaVat
							dok_Brutto = dok_Brutto + Korekty(p).WartoscBrutto
							if 	bStopki then SumujStawkiVatDokKor(p)
		endif
					next p
					if bDokPoz then StopkiKorekt(4,0)
				next d
	endif
			if Korekty(1).lp && (xDocument.Netto || xDocument.Vat || xDocument.Brutto ) then 
				if !bPozycje then
					If bKZ && !Sign( fPlnOO( PO_PRZED ) ) && !Sign( fPlnOO( PO_KOREKTY ) ) && !Sign( fPlnOO( PO_PO ) ) && !Sign( fPlnOO( PO_ND ) ) Then
						// korekta zbiorcza bez pozycji - trzeba zsumowac wartosci pozycji z odwrotnym obciazeniem
						For p = 1 To p > Size( Korekty )
							If Korekty( p ).iOO Then
								fPlnOO( PO_KOREKTY ) = fPlnOO( PO_KOREKTY ) + Korekty( p ).wartoscBrutto
								fWalOO( PO_KOREKTY ) = fWalOO( PO_KOREKTY ) + Korekty( p ).BruttoWal
							EndIf
						Next p
					EndIf
					print lf : StopkiVat(1,0)
				else
					if (bVat+bBrutto)<2  then
						print lf : StopkiVat(1,0)
					else
						StopkiKorekt(1,1)
					endif
				endif
			endif
		endif


	endif
#else
	if bpozTow  && Korekty(1).lp then
	//pozycje korygowane
		podsum = 0
		SetStyl(bc)
		for b=1 to b > size(Korekty)
			if !Korekty(b).czyNPo then
	            print lf
	            if bPo || bPrzed then
				    print at #X,#Y+20;"KOREKTA" + LF
                endif
				RysujNaglowek(10,0)
				bOddTrigger = 0
				pom = 1
				for i = b to i > size(Korekty)
					if !Korekty(i).czyNPo then ZapiszKorekte(0,Korekty(i) , pom,(using"K%d",Korekty(i).lp),3,0,"",PO_KOREKTY) : pom = 0
				next i
				if (bVat+bBrutto)<2 && bStopki && (bPo || bPrzed) then
					print lf : StopkiVat(1,0)
				else
	                if bStopki && (bPo || bPrzed) then
					   StopkiKorekt(1,0)
                    endif
				endif
				exit
			endif
		next b
	endif
	If !bpozTow Then
		For i = 1 To i > Size( Korekty )
			If Korekty( i ).iOO Then
				fPlnOO( PO_KOREKTY ) = fPlnOO( PO_KOREKTY ) + IIF( PLNonly==0, Korekty( i ).NettoWal, Korekty( i ).wartoscNetto )
				fWalOO( PO_KOREKTY ) = fWalOO( PO_KOREKTY ) + Korekty( i ).NettoWal
			EndIf
		Next i
	EndIf

	if !bPozTow && bStopki && (bPrzed || bPo) then
		SetStyl(bc)
        if CzyNP || Korekty(1).lp then
	        print lf
			if bOstatnia then
			print at #X,#Y+20;"KOREKTA ROZLICZENIA ZALICZKI WG STAWEK PODATKOWYCH" + LF
		    else
		    print at #X,#Y+20;"KOREKTA ROZLICZENIA FAKTURY WG STAWEK PODATKOWYCH" + LF
		    endif
        endif
        if Korekty(1).lp then
			for b=1 to b > size(Korekty)
				if !Korekty(b).czyNPo then
						j=Tabela 1,4005,KolTab1(size(KolTab1)-3),nc,KolTab1(size(KolTab1)-2),nc,KolTab1(size(KolTab1)-1),nc,KolTab1(size(KolTab1)),nc
						Ramka od nRazemDist2,#Y,KolTab1(size(KolTab1))+KolTab1(size(KolTab1)-1)+KolTab1(size(KolTab1)-2)+KolTab1(size(KolTab1)-3),10,0,nGray
							Tabela #j
							Kolumna 1,"Wartość netto" + fcSuffix()
							Kolumna 2,"Stawka VAT"
							Kolumna 3,"Kwota VAT" + fcSuffixVAT()
							Kolumna 4,"Wartość brutto" + fcSuffix()
							koniec
						koniec
						StopkiKorekt(1,0)
					exit
				endif
			next b
		endif
        if CzyNP then
			currExRate = IIF(PLNonly==0,xDocument.Kurs,1)
            StopkaNP(xDocument.NiePodlega/currExRate, nRazemDist2)
        endif
    endif
#endif

	if !bKZ then
	if bPo && Po(1).lp && ( bpozTow || CompactForm ) then
	//pozycje po korekcie
		podsum = 0
		SetStyl(bc)
		for b=1 to b > size(Po)
			if !Po(b).czyNPo then
	            print lf
				Print At #X, #Y + 20; IIF( CompactForm, "KOREKTY POZYCJI", "POZYCJE PO KOREKCIE" ) + LF
				RysujNaglowek(10,0)
				bOddTrigger = 0
				pom = 1
				for i = b to i > size( Po)
					printPos = !fakturkor
					For indPos = 1 To indPos > Size( Korekty ) || printPos
						If Po(i).lp == Korekty(indPos).lp && Korekty(indPos).nKorStat != 1 Then printPos = 1
					Next indPos
					if !Po(i).czyNPo && printPos then ZapiszKorekte(0,Po(i) , pom,(using"K%d",Po(i).lp),3,0, Przed(i).StVat,PO_PO) : pom = 0 : ftkPoRAZEM += Po(i).WartoscBrutto
				next i
				If !CompactForm Then
					if (bVat+bBrutto)<2 && bStopki then
						print lf : StopkiVat(2,0)
					else
				        #ifdef FZALSPKOR
					        if bStopki then
						#endif
							  StopkiKorekt(2,0)
	                    #ifdef FZALSPKOR
		                     endif
			            #endif
					endif
				EndIf
				exit
			endif
		next b
	endif
	else
		if !bPozycje && bStopki then
			FtNettoPoKor=tot_nettoBaza+xDocument.Netto
			FtVatPoKor=tot_vatBaza+xDocument.Vat
			FtBruttoPoKor=tot_BruttoBaza+xDocument.Brutto

			if ( FtNettoPoKor || FtVatPoKor || FtBruttoPoKor ) then
				SetStyl( bc )
				print at #X,#Y+20;"WARTOŚCI PO KOREKCIE" + LF
				print lf : StopkiVat(2,0)
			endif
		endif
	endif
	#ifdef FZALSPKOR
		if bPo && !bPozTow  && bStopki then
	    SetStyl(bc)
	    if CzyNP || Po(1).lp then
	        print lf
	        if bOstatnia then
			  print at #X,#Y+20;"ROZLICZENIE ZALICZKI WG STAWEK PODATKOWYCH PO KOREKCIE" + LF
	        else
	          print at #X,#Y+20;"ROZLICZENIE FAKTURY WG STAWEK PODATKOWYCH PO KOREKCIE" + LF
	        endif
    		If !Sign( fPlnOO( PO_PO ) ) Then
	    		For b = 1 To b > Size( Po )
		    		If Po( b ).iOO Then
						fPlnOO( PO_PO ) = fPlnOO( PO_PO ) + Po( b ).WartoscBrutto
						fWalOO( PO_PO ) = fWalOO( PO_PO ) + Po( b ).BruttoWal
					EndIf
			    Next b
    		EndIf
        endif
	     if Po(1).lp then
			for b=1 to b > size(Po)
				if !Po(b).czyNPo then
						j=Tabela 1,4005,KolTab1(size(KolTab1)-3),nc,KolTab1(size(KolTab1)-2),nc,KolTab1(size(KolTab1)-1),nc,KolTab1(size(KolTab1)),nc
						Ramka od nRazemDist2,#Y,KolTab1(size(KolTab1))+KolTab1(size(KolTab1)-1)+KolTab1(size(KolTab1)-2)+KolTab1(size(KolTab1)-3),10,0,nGray
							Tabela #j
							Kolumna 1,"Wartość netto" + fcSuffix()
							Kolumna 2,"Stawka VAT"
							Kolumna 3,"Kwota VAT" + fcSuffixVAT()
							Kolumna 4,"Wartość brutto" + fcSuffix()
							koniec
						koniec
						StopkiKorekt(2,0)
					exit
				endif
			next b
	     endif
         if CzyNP then
	         StopkaNP( IIF( PLNonly == 0, tot_nettoNPBazaWAL + xDocument.NiePodlegaWal, tot_nettoNPBaza + xDocument.NiePodlega ), nRazemDist2 )
         endif
        endif
	#endif

	if !bpozTow then
		ramka od 0,#Y, tbl1Szer, 40
		koniec
	endif

    #ifndef FZALSPKOR
	if !bKZ then
		if (xPoz.Count() && (!bStopki || !bpozTow) && !Po(1).czyNPo) then
			ramka 5,20,0,0
			koniec
			if (bVat+bBrutto)<2 || (!bPozTow) then
				If !CompactForm || PPlnVat Then
					StopkiVat(1,1)
				EndIf
			else
					if  bzervat || sign(xDocument.Netto,6) || sign(xDocument.Vat,6) then
					StopkiKorekt(1,1)
				else
					StopkiKorekt(1,0)
				endif
			endif
		endif
		endif
    #else
	   if !bPozTow then
	   SetStyl( nbl )
       print at #X,#Y+20;"Rozliczenie faktury korygującej wg stawek podatkowych:" + LF

		if (xPoz.Count() && !Po(1).czyNPo) then
			ramka 5,20,0,0
			koniec
	        if nRazemDist2 == 0 then
				for i=1 to i >size(KolTab1)-4
					nRazemDist2+=KolTab1(i)
				next i
	        endif
			j=Tabela 1,4005,KolTab1(size(KolTab1)-3),nc,KolTab1(size(KolTab1)-2),nc,KolTab1(size(KolTab1)-1),nc,KolTab1(size(KolTab1)),nc
			Ramka od nRazemDist2,#Y,KolTab1(size(KolTab1))+KolTab1(size(KolTab1)-1)+KolTab1(size(KolTab1)-2)+KolTab1(size(KolTab1)-3),10,0,nGray
				Tabela #j
				Kolumna 1,"Wartość netto" + fcSuffix()
				Kolumna 2,"Stawka VAT"
				Kolumna 3,"Kwota VAT" + fcSuffixVAT()
				Kolumna 4,"Wartość brutto" + fcSuffix()
				koniec
			koniec

			if bzervat || sign(xDocument.Netto,6) || sign(xDocument.Vat,6) then
				StopkiKorekt(1,1)
			else
				StopkiKorekt(1,0)
			endif
		endif
        if CzyNP then
			currExRate = IIF(PLNonly==0,xDocument.Kurs,1)
           StopkaNP(xDocument.NiePodlega/currExRate, nRazemDist2)
        endif
    endif

	if CzyNP then
		if nKod then
			KolumnyNP(2) = tbl1Szer - (KolTab1(size(KolTab1)) + KolumnyNP(1))
            KolumnyNP(3) = KolTab1(size(KolTab1))
		else
            KolumnyNP(2) = tbl1Szer - (KolTab1(size(KolTab1)) + KolTab1(size(KolTab1)-1) + KolTab1(size(KolTab1)-2) + KolTab1(size(KolTab1)-3) + KolumnyNP(1))
            KolumnyNP(3) = KolTab1(size(KolTab1)-1) + KolTab1(size(KolTab1)-2) + KolTab1(size(KolTab1)-3)
            KolumnyNP(4) = KolTab1(size(KolTab1))
		endif
		tbl1NP=Tabela !bVertLines, 4005, KolumnyNP, StyleNP
	endif

    #endif

	if CzyNP then

		if iTyp == SZK || iTyp == SZWK || iTyp == NZWK || iTyp == NZZK then
			i = 0
			if KolTab1NP(4) != 0 then  KolTab1NP(4) = 0 : i += 1
			if KolTab1NP(5) != 0 then  KolTab1NP(5) = 0 : i += 1
			if KolTab1NP(8) != 0 then  KolTab1NP(8) = 0 : i += 1

			if i != 0  then
				shrink KolumnyNP, i
				shrink StyleNP, i
				shrink StlTab1HNP, i

				tbl1NPSzer = 0

				for i=1 to i > size(kolumnyNP)
					tbl1NPSzer+=kolumnyNP(i)
					StlTab1HNP(i)=nc
				next i

				tbl1NP=Tabela !bVertLines, 4005, KolumnyNP, StyleNP
				tbl1HNP=Tabela !bVertLines, 4005, KolumnyNP, StlTab1HNP
			endif
		endif

        #ifdef FZALSPKOR
	         if bPozTow then
	    #endif
		SetStyl( nl )
        #ifndef FZALSPKOR
		DrawLine at 0,#Y+40,str.szer,0,6,70
        #endif
        print lf
		print at (str.szer-TextWidth("POZYCJE NIE PODLEGAJĄCE VAT"))/2,#Y+10;"POZYCJE NIE PODLEGAJĄCE VAT" + LF
        #ifndef FZALSPKOR
		DrawLine at 0,#Y,str.szer,0,2,70
        #endif
        ramka 0,20,0,0
        koniec
		print lf
        #ifdef FZALSPKOR
	         endif
	    #endif
		if !bKZ then
		if bPrzed && bPozTow then
			SetStyl( bc )
			print at #X,#Y+20;"POZYCJE KORYGOWANE" + LF
			RysujNaglowek(10,1)
			bOddTrigger = 0
			pom = 1 : nInc=1
			for i = 1 to i > size( Przed)
				if Przed(i).czyNPo then ZapiszKorekte(1,Przed(i),pom,(using"B%d",Przed(i).lp),1,0,"",PO_PRZED) : pom =0 : nInc+=1
			next i
			currExRate = IIF(PLNonly==0,xDocument.Kurs,1)
			if iTyp == SZK || iTyp == SZWK || iTyp == NZWK || iTyp == NZZK  then
	           if bStopki then
	           StopkaNP( IIF( PLNonly == 0, tot_nettoNPBazaWAL, tot_nettoNPBaza ), tbl1NPSzer-kolumnyNP(size(KolumnyNP))-180+1)
               endif
            else
            StopkaNP( IIF( PLNonly == 0, tot_nettoNPBazaWAL, tot_nettoNPBaza ), 0 )
            endif
		endif
		else
			if !bPozycje && bStopki then
				SetStyl( bc )
				print at #X,#Y;"WARTOŚCI KORYGOWANE" + LF
				ramka 5,10,0,0
				koniec
				print lf : StopkaNP( IIF( PLNonly == 0, tot_nettoNPBazaWAL, tot_nettoNPBaza ), 0 )
				ramka 5,20,0,0
				koniec
			endif
		endif
		#ifndef FZALSPKOR
				SetStyl(bc)
				for b=1 to b>size(Korekty)
					if Korekty(b).czyNPo && Korekty(b).nKorStat==2 then
						if bPozTow then
							print at 0,#Y+20;"KOREKTY ILOŚCI\n"
							RysujNaglowek(10,1)
							bOddTrigger = 0 : nInc=1
						endif
						for i = b to i > size( Korekty)
							if Korekty(i).czyNPo && Korekty(i).nKorStat==2 then
								if bPozTow then ZapiszKorekte(1,Korekty(i),i==1,(using"K%d",Korekty(i).lp),2,0,"",PO_KOREKTY) : ninc+=1
								fTotKIlosc+=Korekty(i).NiePodlega
							endif
						next i
						exit
					endif
				next b
				if !bKZ then
				SetStyl(bc)
				for b=1 to b> size(Korekty)
					if Korekty(b).czyNPo && Korekty(b).nKorStat==3 then
						if bPozTow then
							print at 0,#Y+20;"KOREKTY CENY\n"
							RysujNaglowek(10,1)
							bOddTrigger = 0 : nInc=1
						endif
						for i = 1 to i > size( Korekty)
							if Korekty(i).czyNPo && Korekty(i).nKorStat==3 then
								if bPozTow then ZapiszKorekte(1,Korekty(i),i==1,(using"K%d",Korekty(i).lp),2,0,"",PO_KOREKTY) : nInc+=1
								ftotKCena+=Korekty(i).NiePodlega
							endif
						next i
						exit
					endif
				next b
				else
						SetStyl(bc)
						print at 0,#Y+20;"KOREKTA WARTOŚCI" + LF
					ramka 5,20,0,0
					koniec
					for d=1 to d > xDocument.dokumentyKorygowaneKZ.Count()
						b = 1
						bDokNP = 0
						for p=1 to p > size(Korekty)
							if Korekty(p).czyNPo && Korekty(p).nKorStat==3 && Korekty(p).superkoryg == xDocument.dokumentyKorygowaneKZ.item(d).id then
								if bPozycje then
									if b then
										dok_NettoNP = 0.0
										SetStyl(sl)
										print at 0,#Y+20; " Dokument korygowany: " 
										SetStyl(nl)
										print xDocument.dokumentyKorygowaneKZ.item(d).kod + ", " + xDocument.dokumentyKorygowaneKZ.item(d).Data + "\n"
										RysujNaglowek(10,1)
										bOddTrigger = 0 : nInc=1
										b=0
										bDokNP = 1
									endif
									ZapiszKorekte(1,Korekty(p),p==1,(using"K%d",Korekty(p).lp),2,0,"",PO_KOREKTY)
									dok_NettoNP = dok_NettoNP + Korekty(p).NiePodlega
									nInc+=1
								endif
								ftotKCena+=Korekty(p).NiePodlega
							endif
						next p
						if bDokNP then
							currExRate = IIF(PLNonly==0,xDocument.Kurs,1)
							StopkaNP(dok_NettoNP/currExRate,0)
						EndIf
					next d
				endif
				if ( ftotkIlosc || fTotKCena ) && !CompactForm then
					currExRate = IIF(PLNonly==0,xDocument.Kurs,1)
				    if iTyp == SZK || iTyp == SZWK || iTyp == NZWK || iTyp == NZZK  then
				        StopkaNP((ftotkIlosc+fTotKCena)/currExRate, tbl1NPSzer-kolumnyNP(size(KolumnyNP))-180+1)
			        else
						if bKZ then
							ramka 5,20,0,0
							koniec	
						endif
			            StopkaNP((ftotkIlosc+fTotKCena)/currExRate, 0)
			        endif
				endif
		#endif

		#ifdef FZALSPKOR
				if bPozTow then
					SetStyl( bc )
                    if bPo || bPrzed then
	                   print lf
					   print at #X,#Y+20;"KOREKTA" + LF
                    endif
					RysujNaglowek(10,1)
					bOddTrigger = 0
					pom = 1 : nInc=1
					for i = 1 to i > size(korekty)
						if korekty(i).czyNPo then ZapiszKorekte(1,korekty(i),pom,(using"B%d",korekty(i).lp),1,0,"",PO_ND) : pom =0 : nInc+=1
					next i
                    if bStopki then
						currExRate = IIF(PLNonly==0,xDocument.Kurs,1)
			            StopkaNP(xDocument.NiePodlega/currExRate, tbl1NPSzer-kolumnyNP(size(KolumnyNP))-180+1)
                    endif
				endif
		#endif

		if !bKZ then
		if bPo && ( bPozTow || CompactForm ) then
		//pozycje po korekcie
			podsum = 0
			SetStyl(bc)
            print lf
			Print At #X, #Y + 20; IIF( CompactForm, "KOREKTY POZYCJI", "POZYCJE PO KOREKCIE" ) + LF
			RysujNaglowek(10,1)
			bOddTrigger = 0
			pom = 1
			nInc=1
			for i = 1 to i > size( Po)
				if Po(i).czyNPo then
					ZapiszKorekte(1,Po(i) , pom,(using"K%d",Po(i).lp),3,0,Przed(i).StVat,PO_PO) : pom = 0 : nInc+=1
				endif
			next i
			currExRate = IIF(PLNonly==0,xDocument.Kurs,1)
            if iTyp == SZK || iTyp == SZWK || iTyp == NZWK || iTyp == NZZK  then
	            if bStopki then
			    StopkaNP( IIF( PLNonly == 0, tot_nettoNPBazaWAL + xDocument.NiePodlegaWal, tot_nettoNPBaza + xDocument.NiePodlega ), tbl1NPSzer-kolumnyNP(size(KolumnyNP))-180+1)
                endif
            else
#ifdef SIMPLIFIED
				If PPlnVat Then
					StopkaNP( xDocument.NiePodlega/currExRate, 0 )
				EndIf
#else
                StopkaNP( IIF( PLNonly == 0, tot_nettoNPBazaWAL + xDocument.NiePodlegaWal, tot_nettoNPBaza + xDocument.NiePodlega ), 0 )
#endif
            endif
		endif
		else
			if !bPozycje && bStopki then
				SetStyl( bc )
				print at #X,#Y+20;"WARTOŚCI PO KOREKCIE" + LF
				ramka 5,20,0,0
				koniec
				currExRate = IIF(PLNonly==0,xDocument.Kurs,1)
				print lf : StopkaNP( IIF( PLNonly == 0, tot_nettoNPBazaWAL + xDocument.NiePodlegaWal, tot_nettoNPBaza + xDocument.NiePodlega ), 0 )
			endif
		endif
	endif

    #ifdef FZALSPKOR
	    if bPozTow then

           SetStyl( nbl )
           print at #X,#Y+20;"Rozliczenie faktury korygującej wg stawek podatkowych:" + LF

			if (xPoz.Count() && !Po(1).czyNPo) then
				ramka 5,20,0,0
				koniec
			        if nRazemDist2 == 0 then
						for i=1 to i >size(KolTab1)-4
							nRazemDist2+=KolTab1(i)
						next i
			        endif
                    if (bVat+bBrutto) == 2 then
						j=Tabela 1,4005,KolTab1(size(KolTab1)-3),nc,KolTab1(size(KolTab1)-2),nc,KolTab1(size(KolTab1)-1),nc,KolTab1(size(KolTab1)),nc
						Ramka od nRazemDist2,#Y,KolTab1(size(KolTab1))+KolTab1(size(KolTab1)-1)+KolTab1(size(KolTab1)-2)+KolTab1(size(KolTab1)-3),10,0,nGray
							Tabela #j
							Kolumna 1,"Wartość netto" + fcSuffix()
							Kolumna 2,"Stawka VAT"
							Kolumna 3,"Kwota VAT" + fcSuffixVAT()
							Kolumna 4,"Wartość brutto" + fcSuffix()
							koniec
						koniec
                    endif
					if bzervat || sign(xDocument.Netto,6) || sign(xDocument.Vat,6) then
						StopkiKorekt(1,1)
					else
						StopkiKorekt(1,0)
					endif
			endif
            bPozTow = !bPozTow
            if CzyNP then
				currExRate = IIF(PLNonly==0,xDocument.Kurs,1)
		        StopkaNP(xDocument.NiePodlega/currExRate, nRazemDist2)
		    endif
		endif
    #endif

Zaliczki(xDocument.id)

if xPoz.Count() then

//*****************Ramka do zapłaty
	if DokZakupu then fWplaty = -1 * fWplaty
	fDoZaplaty = xDocument.rzeczywistaWysokoscNaleznosci
    #ifndef FZALSPKOR
 	UstawRamke(50,str.pozycja(#B)+20,str.szer-100,90,bRamki,bl)
    #else
    UstawRamke(50,str.pozycja(#B)+20,str.szer-100,90,0,bl)
    #endif
		if fDoZaplaty > 0.000001 then
			sPom =  "Razem do zapłaty :"
		else
			if fDoZaplaty < -0.000001 then
				sPom =  "Razem do zwrotu :"
				wsp = -1
			else
				sPom = "Razem : "
				wsp = 0
			endif
		endif
        wartoscVat = xDocument.Vat
        if xDocument.objId == DokumentSpObjId then
            wartoscVat -= xDocument.rozliczonoZaliczkamiVat
        endif
		if wartoscVat < -0.000001 then wsp1 = -1
#ifndef KONTRAKTKOR_WAL
		currAmount = IIF( PLNonly == -1, fDoZaplaty, fDoZaplatyWal )
#else
		currAmount = fDoZaplaty / xDocument.Kurs
#endif
		currCurrency = IIF( PLNonly == -1, sPLN, sWaluta )
#ifdef FZALSPKOR_WAL
		currAmount = IIF( PLNonly == 1, xDocument.wysokoscNaleznosciPln, xDocument.wysokoscNaleznosciWal )
		currCurrency = IIF( PLNonly == 1, sPLN, sWaluta )
#endif
		DrukujWRamce(bl,sPom,Styl(grub,-1),kwota( currAmount*wsp ) + currCurrency)
		If !fakturkor Then
     		if wartoscVat > 0.000001 then
 	    		sPom= "w tym zwiększenie podatku VAT :"
		    else
                if wartoscVat < -0.000001 then
 			        sPom = "w tym zmniejszenie podatku VAT :"
                else
                    sPom =  "w tym podatek VAT :"
                endif
		    endif
 		    DrukujWRamce(bl,sPom,Styl(grub,-1),	kwota( wartoscVat * wsp1 )+ sPLN)
		EndIf

		if Sign(fDoZaplaty-fWplaty,2) then
			if (fwplaty > 0.000001) || (fwplaty < -0.000001) then
				if fWplaty > 0.000001 then
					sPom = "Zapłacono :"
				else
					sPom = "Zwrócono :"
				endif
#ifndef KONTRAKTKOR_WAL
				currAmount = IIF( PLNonly == -1, fwplaty, fwplatyWal )
#else
				currAmount = fwplaty / xDocument.Kurs
#endif
#ifdef FZALSPKOR_WAL
				currAmount = IIF( PLNonly == 1, fwplaty, fwplatyWal )
#endif
				DrukujWRamce(bl,sPom,Styl(grub,-1),kwota( currAmount * wsp )+ currCurrency)
		 	endif
			if fDoZaplaty > 0.000001 then
				sPom = "Pozostało do zapłaty : "
			else
				sPom = "Pozostało do zwrotu : "
			endif
#ifndef KONTRAKTKOR_WAL
			currAmount = IIF( PLNonly == -1, (fDoZaplaty-fWplaty), (fDoZaplatyWal-fWplatyWal) )
#else
			currAmount = (fDoZaplaty-fWplaty) / xDocument.Kurs
#endif
#ifdef FZALSPKOR_WAL
			currAmount = IIF( PLNonly == 1, (xDocument.wysokoscNaleznosciPln-fWplaty), (xDocument.wysokoscNaleznosciWal-fWplatyWal) )
#endif
			DrukujWRamce(bl,sPom,Styl(grub,-1),kwota( currAmount * wsp)+ currCurrency)
		else
			DrukujWRamce(bl,"",Styl(grub,-1),iif(fWplaty > 0.000001,"ZAPŁACONO",iif(fWplaty < -0.000001,"ZWRÓCONO", "")))
		endif

	ZakonczRamke()
//**********Koniec Ramki do zapłaty
#ifndef KONTRAKTKOR_WAL
	currAmount = IIF( PLNonly == -1, fDoZaplaty, fDoZaplatyWal )
#else
	currAmount = fDoZaplaty / xDocument.Kurs
#endif
	currCurrency = IIF( PLNonly == -1, "", sWaluta )
#ifdef FZALSPKOR_WAL
	currAmount = IIF( PLNonly == 1, xDocument.wysokoscNaleznosciPln, xDocument.wysokoscNaleznosciWal )
	currCurrency = IIF( PLNonly == 1, "", sWaluta )
#endif
	ramka od #L, #B+10, str.szer-100, 90, bRamki
		SetStyl( bl )
		print at 30, 20; "Słownie:"
		print " " + KwotaNaTekst( (using "%.2f",currAmount * wsp ), currCurrency )
	koniec
endif
print at 0,#B+50;
FRNewRow(0)
FRAddCol(-100,250,R_UPOWAZW,0,0)
FRDraw()

DokumentyWydania()
PlatWyd()

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: "
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)