//"xp11_27.sc","XML PIT-11(27)",12646,0,1.0.0,SYSTEM,16350
//"e-Deklaracje",12007,14,16

#include "Procedury dla deklaracji xml"

XmlInit("p11_27")

// NIP lub Pesel i Kod urzędu
XmlPitPoleNipLubPesel(0,1)
XmlPitKodUrzedu(6)

// A
XmlPitPole(4,TYPPOLA_Liczba,1)
XmlPitPole(7,TYPPOLA_Wybor,1)

// B
XmlPitPole(8,TYPPOLA_Wybor,1)
XmlPitPoleDanePodmiotu3(8,9,10)

// C
XmlPitPole(11,TYPPOLA_Wybor,1)

int rezydent = Val( PitPoleNr(11, TYPPOLA_Wybor, 0) )
if rezydent == 1 then
	XmlPitPoleNipLubPesel(PitIdPracownika(), 12)
endif
if rezydent == 2 then
	XmlPitPoleNipLubPeselRezydenta(PitIdPracownika(), 12)
	XmlPitPole(13,TYPPOLA_Tekst,1)
	XmlPitRodzajNrID(14)
	XmlPitKodKraju(15)
endif

XmlPitPole(16,TYPPOLA_Tekst,1)
XmlPitPole(17,TYPPOLA_Tekst,1)
XmlPitPole(18,TYPPOLA_Data,1)
XmlPitKodKraju(19)
XmlLoopPitPole(20,25,TYPPOLA_Tekst,0)
XmlPitPole(26,TYPPOLA_Tekst,1)
XmlPitPole(27,TYPPOLA_Tekst,0)

// D
XmlPitPole(5,TYPPOLA_Liczba,0)
if !CzyZero(29) || !CzyZero(34) then XmlPitPole(28,TYPPOLA_Wybor,1)

// E
Record IteratorType_p11_27
	int i

	int sub CzySekcja(int nr)
		int nr_sekcje(12) = 29,36,41,43,47,51,55,59,62,64,67,70
		for i = 1 to i > 12
			if nr_sekcje(i) == nr then CzySekcja = 1
		next i
	endsub

	int sub CzyOpcjonalne(int nr)
		int nr_opcje(12)  = 30,32,34,35,37,39,45,48,52,56,71,73
		for i = 1 to i > 12
			if nr_opcje(i) == nr then CzyOpcjonalne = 1
		next i
	endsub

	int sub CzyZaokr(int nr)
		int nr_zaokr(10)  = 33,40,46,50,54,58,61,66,69,74
		for i = 1 to i > 10
			if nr_zaokr(i) == nr then CzyZaokr = 1
		next i
	endsub
endrec

IteratorType_p11_27 Iterator

int sub sekcjaE()

	int nr
	int eksport_pola = 0

	for nr = 29 to nr > 74
		if Iterator.CzySekcja(nr) then 
			eksport_pola = !CzyZero(nr)

			// dodatkowo uwzględnianiane przychody z praw autorskich
			if nr == 29 && eksport_pola == 0 then eksport_pola = !CzyZero(34)
			if nr == 36 && eksport_pola == 0 then eksport_pola = !CzyZero(41)
			if nr == 59 && eksport_pola == 0 then eksport_pola = !CzyZero(62)
		endif

		if eksport_pola then
			if Iterator.CzyZaokr(nr) then
				XmlPitPole(nr,TYPPOLA_KwotaZaokr,1)
			else
				XmlPitPole(nr,TYPPOLA_Kwota, !Iterator.CzyOpcjonalne(nr))
			endif
		endif
	next nr

endsub

sekcjaE()
XmlLoopPitPole(75,80,TYPPOLA_Kwota, 0)

// F
if !CzyZero(88) then
	XmlPitPole(81,TYPPOLA_Kwota, 0)
	if !CzyZero(83) then
		XmlPitPole(82,TYPPOLA_Tekst, 1)
		XmlPitPole(83,TYPPOLA_Kwota, 1)
	endif
	if !CzyZero(85) then
		XmlPitPole(84,TYPPOLA_Tekst, 1)
		XmlPitPole(85,TYPPOLA_Kwota, 1)
	endif
	if !CzyZero(87) then
		XmlPitPole(86,TYPPOLA_Tekst, 1)
		XmlPitPole(87,TYPPOLA_Kwota, 1)
	endif
	XmlPitPole(88,TYPPOLA_Kwota, 1)
endif


// G
XmlPitPole(89,TYPPOLA_Kwota,0)
XmlPitPole(90,TYPPOLA_Kwota,0)
XmlPitPole(91,TYPPOLA_Kwota,0)
if !CzyZero(92) then
	XmlPitPole(92,TYPPOLA_Kwota,1)
	XmlPitPole(93,TYPPOLA_Kwota,0)
	XmlPitPole(94,TYPPOLA_Kwota,0)
	XmlPitPole(95,TYPPOLA_Kwota,0)
endif

XmlPitPole(96,TYPPOLA_Wybor,1)

// Załącznik do korekty deklaracji
#include "XML ORD-ZU(3)"

string sKodZalacznik
if CzyKorekta() then
	sKodZalacznik = GetZalacznik()
	if sKodZalacznik == "ORD-ZU" then
		XmlSekcjaZalacznik_ORD_ZU_3()
	endif
endif

XmlSave()
