home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 May / CHIPCD5_98.iso / software / testsoft / vendo / VENDO.400 / pak / ZSVAT.REP < prev   
Encoding:
Text File  |  1998-03-24  |  25.0 KB  |  769 lines

  1. * WYDRUK: Faktura VAT KOREKTA, Rachunek Uproszczony KOREKTA
  2. * ATI HURT v 6.2
  3. ********************************************************************************
  4. PRIVATE i
  5. PRIVATE _Lp
  6. PRIVATE LWydruk
  7. PRIVATE M_Numer
  8. PRIVATE M_NumDow
  9. PRIVATE M_Kopia
  10. PRIVATE M_Suma
  11. PRIVATE M_Slownie
  12. PRIVATE M_SlownieN
  13. PRIVATE M_TmpWart
  14. PRIVATE M_LenTmpWart
  15. PRIVATE NazwaPliku
  16. PRIVATE Podkr
  17. PRIVATE PozBuff
  18. PRIVATE BuffZS
  19. PRIVATE PozN
  20. PRIVATE TmpStr
  21. PRIVATE TMPVAT
  22. PRIVATE CO_DR
  23. PRIVATE FV_WART
  24. PRIVATE FK_WART
  25. PRIVATE FK_NETTO
  26. PRIVATE FV_NETTO
  27. PRIVATE FK_POD
  28. PRIVATE FV_POD
  29. PRIVATE ROZNICA
  30. DECLARE DlaKogo[8]
  31. DECLARE LDlaKogo[8]
  32. DECLARE LineBuf[10]
  33. DECLARE M_TMP[4]
  34. DECLARE M_TMPV[4]
  35. DECLARE Tran[4]
  36. PRIVATE RCO_DR
  37. PRIVATE CZY_DR_KOPIA
  38. PRIVATE JesliLOCK
  39. PRIVATE M_Podpis
  40. PRIVATE M_ALIAS
  41. PRIVATE AKtoryS[6]
  42. PRIVATE __Symbol
  43.  
  44. LET AKtoryS[1]= "symbol towaru        "
  45. LET AKtoryS[2]= "oznaczenie S1        "
  46. LET AKtoryS[3]= "oznaczenie S2        "
  47. LET AKtoryS[4]= "oznaczenie S3        "
  48. LET AKtoryS[5]= "oznaczenie S4        "
  49. LET AKtoryS[6]= "oznaczenie S5        "
  50. LET __Symbol = AKtoryS[1]
  51.  
  52.  
  53. LET DlaKogo[ 1] = 'ORYGINAâ   '
  54. LET DlaKogo[ 2] = 'KOPIA 1    '
  55. LET DlaKogo[ 3] = 'KOPIA 2    '
  56. LET DlaKogo[ 4] = 'KOPIA 3    '
  57. LET DlaKogo[ 5] = 'ORYGINAâ ZS'
  58. LET DlaKogo[ 6] = 'KOPIA 1    '
  59. LET DlaKogo[ 7] = 'ORYGINAâ ZM'
  60. LET DlaKogo[ 8] = 'KOPIA 1    '
  61. LET M_Podopis = SPACE(30)
  62.  
  63. DO AFILL( LDlaKogo, .F. )
  64. LET CZY_DR_KOPIA= .T.
  65. LET LDlaKogo[1] = .T.
  66. LET _Lines  = _LinesDefault
  67.  
  68. LET M_Numer  = ZS->NUMER
  69. LET M_NumDow = ZS->WZNUMER
  70. LET M_Alias  = 'WZ'+ALLTRIM(Magnum)
  71.  
  72. FILE TOWARY
  73. FILE KLIENT
  74. FILEZ M_Alias,B_Wz
  75.  
  76. SELECT KLIENT
  77. SEEK ZS->PLAT_SKROT
  78. LET RCO_DR = KLIENT->CZYVAT .AND. .NOT. EMPTY(KLIENT->NIP)
  79. LET M_Podpis = KLIENT->PODPIS
  80. ****************************************************************
  81. PRIVATE Form
  82. PRIVATE OldForm
  83. PRIVATE LOutDev
  84. PRIVATE LOutFile
  85. PRIVATE FormChanged
  86.  
  87. LET LOutDev = _aOutDev[1]
  88. LET LOutFile = PADR('Beznazwy.prn',100)
  89.  
  90. IF .NOT. empty(OutDev)
  91.   PRIVATE TmpN
  92.   LET TmpN = ASCAN(_aOutDev, {|x| SUBSTR(x,1,4)==UPPER(OutDev) })
  93.   LET LOutDev = IF(TmpN==0, _aOutDev[5], _aOutDev[TmpN])
  94. ENDIF
  95.  
  96. LET Form = FormNew()
  97. DO FormAddElem(Form, 1, 2,'Podpis: ','M_Podpis',Replicate('X',30))
  98. DO FormAddElem(Form, 2, 1,' ──────────────────────────────────────────','')
  99. DO FormAddList(Form, 3, 2,'Drukarka  :','LOutDev', _aOutDev, {|| empty(OutDev)})
  100. DO FormAddElem(Form, 4, 2,'Plik      :','LOutFile','@S24', {|| LOutDev==_aOutDev[5]})
  101. DO FormAddElem(Form, 5, 1,' ──────────────────────────────────────────','')
  102. DO FormAddElem(Form, 6, 6,'FAKTURA KOREKTA    DOK.MAGAZYNOWE','')
  103. DO FormAddElem(Form, 7, 6,DlaKogo[1], 'LDlaKogo[1]')
  104. DO FormAddElem(Form,  , 6,DlaKogo[2], 'LDlaKogo[2]')
  105. DO FormAddElem(Form,  , 6,DlaKogo[3], 'LDlaKogo[3]')
  106. DO FormAddElem(Form,  , 6,DlaKogo[4], 'LDlaKogo[4]')
  107. DO FormAddElem(Form, 7, 25,DlaKogo[5], 'LDlaKogo[5]')
  108. DO FormAddElem(Form,  , 25,DlaKogo[6], 'LDlaKogo[6]')
  109. DO FormAddElem(Form,  , 25,DlaKogo[7], 'LDlaKogo[7]')
  110. DO FormAddElem(Form,  , 25,DlaKogo[8], 'LDlaKogo[8]')
  111. DO FormAddElem(Form,  ,  1,' ──────────────────────────────────────────','')
  112. DO FormAddElem(Form,  , 2,"Jako identyfikator towaru wstawiè:")
  113. DO FormAddList(Form,  ,20,'', '__Symbol', AKtoryS )
  114. DO FormAddElem(Form,  ,  2,'Drukowaè napis ORYGINAâ/KOPIA ','CZY_DR_KOPIA')
  115. DO FormAddElem(Form,  ,  2,'DîugoÅè strony wydruku: ','_Lines','999999')
  116.  
  117. LET OldForm = FormREAD('ZSVAT')
  118.  
  119. DO FormChoice(@Form, @OldForm)
  120. LET M_Podpis = KLIENT->PODPIS
  121. DO FormRefrValue(Form)
  122.  
  123. LET FormChanged = FormRun(Form,,,,,' Parametry wydruku ', '')
  124.  
  125. IF LASTKEY()==27
  126.   RETURN
  127. ENDIF
  128.  
  129. IF FormChanged
  130.   DO FormWrite(Form, 'ZSVAT')
  131. ENDIF
  132.  
  133. IF empty(OutDev)
  134.   LET OutDev = SUBSTR(LOutDev,1,4)
  135.   IF OutDev == 'FILE'
  136.     LET OutDev = LOutFile
  137.   ENDIF
  138. ENDIF
  139.  
  140. LET AskLine = .F.
  141.  
  142. LET Form = NIL
  143. *************************************************************************
  144. SELECT KLIENT
  145. SEEK ZS->PLAT_SKROT
  146.  
  147. LET JesliLOCK = REC_LOCK()
  148.  
  149. IF !JesliLOCK
  150.    DO Message('Nie udaîo siï zapisaè podpisu kllienta !')
  151. ENDIF
  152.  
  153. IF JesliLOCK
  154.    LET KLIENT->PODPIS = M_Podpis
  155.    DO DBUNLOCK()
  156. ENDIF
  157.  
  158. SELECT ZSPOZ
  159. RELATION SYMBOL, TOWARY
  160.  
  161. SEEK M_Numer
  162.  
  163. LET Tran[1] = Tran9( FieldLen( 'ZSPOZ->CENAD' ) - 4, CMiejscPP )
  164. LET Tran[2] = Tran9( FieldLen( 'ZSPOZ->ILOSC' ) - 2, IMiejscPP )
  165. LET Tran[3] = Tran9( FieldLen( 'ZSPOZ->CENAD' ) - 1, CMiejscPP )
  166. LET Tran[4] = Tran99( FieldLen( 'ZSPOZ->CENAD' ) - 1, WMiejscPP )
  167.  
  168. LET Podkr = ;
  169.       '╚════════════════════════════════════════════════════════════════════════════════════╦══════════════════════════════════════╣'
  170.  
  171. LET Sep = ;
  172.        '═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════'
  173.  
  174. PAGEH '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗'
  175. PAGEH '║Lp.│ Indeks        │ Nazwa                        │ SWW / KU │J.M│ IloÅè  │ Cena    │ WartoÅè    │ PODATEK VAT│ WartoÅè    ║'
  176. PAGEH '║   │               │                              │          │   │ towaru │ jednost.│ towaru     ├──┬─────────┤ towaru     ║'
  177. PAGEH '║   │               │                              │          │   │        │         │ netto      │% │  kwota  │ brutto     ║'
  178. PAGEH '║───┼───────────────┼──────────────────────────────┼──────────┼───┼────────┼─────────┼────────────┼──┼─────────┼────────────║'
  179.  
  180. PAGEF '──────────────────────────────────────────────────────────────────────────────────────────────────  CDN. ─────────────────── '
  181.  
  182. LET PozBuff = {}
  183. LET BuffZS  = {}
  184.  
  185. DOWHILE NUMER == M_Numer
  186.  
  187.   LET PozN = ASCAN( PozBuff, { |x| x[ 1] == ZSPOZ->SYMBOL   .AND.;
  188.                                    x[ 2] == ZSPOZ->SCENAD   .AND.;
  189.                                    x[ 8] == ZSPOZ->SPODATEK .AND.;
  190.                                    x[ 9] == ZSPOZ->SRABAT   .AND.;
  191.                                    x[12] == ZSPOZ->CENAD    .AND.;
  192.                                    x[14] == ZSPOZ->PODATEK  .AND.;
  193.                                    x[15] == ZSPOZ->RABAT   })
  194.  
  195.   IF PozN == 0
  196.     DO AADD( PozBuff, { NIL, 0, 0, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, 0, NIL, NIL, NIL })
  197.  
  198. ***    1 - SYMBOL
  199. ***    2 - CENA SPRZ.
  200. ***    3 - ILOSC
  201. ***    4 - TOWARY->NAZWA
  202. ***    5 - TOWARY->ILOSC_JEDN
  203. ***    6 - TOWARY->SZT
  204. ***    7 - TOWARY->OP
  205. ***    8 - PODATEK
  206. ***    9 - RABAT
  207. ***   10 - TOWARY->SWW
  208. ***   11 - nic
  209. ***   12 - ZSPOZ->CENA SPRZ.
  210. ***   13 - ZSPOZ->ILOSC
  211. ***   14 - ZSPOZ->PODATEK
  212.  
  213.     LET PozN = LEN( PozBuff )
  214.  
  215.  
  216.     LET PozBuff[PozN, 1] = ZSPOZ->SYMBOL
  217.     LET PozBuff[PozN, 2] = ZSPOZ->SCENAD
  218.  
  219.     LET PozBuff[PozN, 4] = TOWARY->NAZWA
  220.     LET PozBuff[PozN, 5] = TOWARY->ILOSC_JEDN
  221.     LET PozBuff[PozN, 6] = TOWARY->SZT
  222.     LET PozBuff[PozN, 7] = TOWARY->OP
  223.     LET PozBuff[PozN,10] = TOWARY->SWW
  224.  
  225.     IF __Symbol = AktoryS[1]
  226.       LET PozBuff[PozN,16] = WZPOZ->SYMBOL
  227.     ENDIF
  228.     IF __Symbol = AktoryS[2]
  229.       LET PozBuff[PozN,16] = TOWARY->S1
  230.     ENDIF
  231.     IF __Symbol = AktoryS[3]
  232.       LET PozBuff[PozN,16] = TOWARY->S2
  233.     ENDIF
  234.     IF __Symbol = AktoryS[4]
  235.       LET PozBuff[PozN,16] = TOWARY->S3
  236.     ENDIF
  237.     IF __Symbol = AktoryS[5]
  238.       LET PozBuff[PozN,16] = TOWARY->S4
  239.     ENDIF
  240.     IF __Symbol = AktoryS[6]
  241.       LET PozBuff[PozN,16] = TOWARY->S5
  242.     ENDIF
  243.  
  244.  
  245.     LET PozBuff[PozN, 8] = ZSPOZ->SPODATEK
  246.     LET PozBuff[PozN, 9] = ZSPOZ->SRABAT
  247.     LET PozBuff[PozN,12] = ZSPOZ->CENAD
  248.     LET PozBuff[PozN,11] = ZSPOZ->CENAD
  249.     LET PozBuff[PozN,14] = ZSPOZ->PODATEK
  250.     LET PozBuff[PozN,15] = ZSPOZ->RABAT
  251.  
  252.   ENDIF
  253.   LET PozBuff[PozN, 3] = PozBuff[PozN, 3] + ZSPOZ->SILOSC
  254.   LET PozBuff[PozN,13] = PozBuff[PozN,13] + ZSPOZ->ILOSC
  255.  
  256.   IF ZSPOZ->sILOSC != ZSPOZ->ILOSC
  257.     DO AAdd( BuffZS, { ZSPOZ->SYMBOL,               ;
  258.                        ZSPOZ->SCENAD,               ;
  259.                        ZSPOZ->SILOSC - ZSPOZ->ILOSC,;
  260.                        TOWARY->NAZWA,               ;
  261.                        TOWARY->ILOSC_JEDN,          ;
  262.                        TOWARY->SZT,                 ;
  263.                        TOWARY->OP,                  ;
  264.                        ZSPOZ->SPODATEK,             ;
  265.                        ZSPOZ->SRABAT,               ;
  266.                        TOWARY->SWW,                 ;
  267.                        ZSPOZ->CENAD                 })
  268.   ENDIF
  269.  
  270.   SELECT ZSPOZ
  271.   SKIP
  272. ENDDO
  273.  
  274. ***   Aby drukowaè pozycje dokumentu w kolejnoÅci symboli
  275. ***   usuì gwiazdki (komentarz) z poniæszej linii:
  276. *LET PozBuff = ASort( PozBuff,,, { |x,y| x[1] < y[1] })
  277.  
  278. DO ZS_DajWart( ZS->NUMER, @M_TmpWart )
  279. LET M_LenTmpWart = Len( M_TmpWart )
  280.  
  281. FOR M_Kopia, 1, 4
  282.   IF LDlaKogo[ M_Kopia ]
  283.     START
  284.     SELECT ZS
  285.  
  286.     IF CZY_DR_KOPIA
  287.       ?? _DStrikeON + PadL( SubStr( DlaKogo[M_Kopia], 1, 9 ), 77 ) + _DStrikeOFF
  288.     ENDIF
  289.  
  290.     ?   '╔═══════════════════════════════════════════════════════════════════════════╗'
  291.     ?   '║ '
  292.     ?? _DStrikeON + IF( RCO_DR, 'FAKTURA VAT  KOREKTA           ', 'RACHUNEK UPROSZCZONY  KOREKTA  ' ) + NUMER + _DStrikeOFF
  293.     ?? IF( RCO_DR, '  do  FAKTURY VAT     ',  '  do  RACHUNKU UPR.   ' ) + WZNUMER + ' ║'
  294.     ?   '║ DATA WYSTAWIENIA ' + _DStrikeON + DTOC( DATA_WYST ) + _DStrikeOFF + Space( 49 ) + '║'
  295.     ?   '╠═══════════════════════════════════════════════════════════════════════════╣'
  296.     ?   '║ ' + 'DATA WYSTAWIENIA ' + IF( RCO_DR, 'FAKTURY ', 'RACHUNKU ' ) + DToC( ZS->DATAF  ) + ', DATA SPRZEDAêY ' + DToC( ZS->DATAS )
  297.     ??  Space( IF( RCO_DR, 16, 15 )) + '║'
  298.     ?   '║───────────────────────────────────────────────────────────────────────────║'
  299.     ?   '║ PâATNOåü: '+_DStrikeON+ZS->SPOSOB_ZAP+_DStrikeOFF+' Data pîatnoÅci '+_DStrikeON +DTOC(ZS->DATA_P)+_DstrikeOFF+'     ║'
  300.     ?   '╚═══════════════════════════════════════════════════════════════════════════╝'
  301.  
  302.     SELECT KLIENT
  303.     SEEK ZS->PLAT_SKROT
  304.  
  305.     ?
  306.     ?   '  NABYWCA :  ' + _DStrikeON+ ZS->PLATNIK + _DStrikeOFF
  307.     ?   '  ' +_DStrikeON + Ulica + ' '+ kod + ' ' + miasto + ' ' +_DStrikeOFF+ IIF(RCO_DR,'NIP: ' + _DStrikeON + NIP,SPACE(20)) +_DStrikeOFF
  308.     ?
  309.  
  310.     IF ZS->PLAT_SKROT<>ZS->ODB_SKROT
  311.       SEEK ZS->ODB_SKROT
  312.  
  313.       ?   '  ODBIORCA:  ' + _DStrikeON+ ZS->ODBIORCA + _DStrikeOFF
  314.       ?   '  ' +_DStrikeON + Ulica + ' '+ kod + ' ' + miasto + ' ' +_DStrikeOFF+ IIF(RCO_DR,'NIP: ' + _DStrikeON + NIP,SPACE(20)) +_DStrikeOFF
  315.     ENDIF
  316.  
  317.     ?   '╔═══════════════════════════════════════════════════════════════════════════╗'
  318.     ?   '║ TYTUâ KOREKTY: ' + _DStrikeON+ ZS->UWAGI + _DStrikeOFF + '         ║'
  319.     ?   '╚═══════════════════════════════════════════════════════════════════════════╝'
  320.  
  321.     DO CONDENSED(.T.)
  322.     SELECT ZS
  323.  
  324.     ? + _DStrikeON + '  POZYCJE PRZED KOREKTÇ' + _DStrikeOFF
  325.  
  326.     LET TmpStr = _PageH[1]
  327.     ? &TmpStr
  328.     LET TmpStr = _PageH[2]
  329.     ? &TmpStr
  330.     LET TmpStr = _PageH[3]
  331.     ? &TmpStr
  332.     LET TmpStr = _PageH[4]
  333.     ? &TmpStr
  334.     LET TmpStr = _PageH[5]
  335.     ? &TmpStr
  336.  
  337. *******************************************************************************
  338. ***                F A K T U R A  VAT / RACHUNEK UPROSZCZONY                ***
  339. *******************************************************************************
  340.     FOR i, 1, LEN( PozBuff )
  341.  
  342.       LET M_TMP[1] = Round( PozBuff[i,2] * PozBuff[i,3], WMiejscPP )
  343.       LET M_TMP[2] = Round( PozBuff[i,2] * PozBuff[i,3] * Max( 0, PozBuff[i,8] )/100, WmiejscPP )
  344.       LET M_TMP[3] = M_TMP[1] + M_TMP[2]
  345.  
  346.       ?  '║' + Str( i, 3, 0 ) + '│'
  347.  
  348. ***   SYMBOL NAZWA SWW
  349.       ?? PozBuff[i,16] + '│'
  350.  
  351. *     ?? PozBuff[i, 1] + '│'
  352.       ?? PozBuff[i, 4] + '│'
  353.       ?? PozBuff[i,10] + '│'
  354.  
  355. ***   J.M.
  356.       ?? PozBuff[i,5] + '│'
  357.  
  358. ***   ILOåü
  359.       ?? TRANSFORM( PozBuff[i,3], Tran[2] ) + '│'
  360.  
  361. ***   CENA NETTO Z RABATEM
  362.       ?? TRANSFORM( PozBuff[i,2], Tran[1] ) + '│'
  363.  
  364. ***   WARTOåü NETTO Z RABATEM
  365.       ?? TRANSFORM( M_TMP[1], Tran[3] ) + '│'
  366.  
  367. ***   STAWKA VAT
  368.       ?? IF( PozBuff[i,8] < 0, 'zw│', TRANSFORM( PozBuff[i,8], '99' ) + '│' )
  369.  
  370. ***   KWOTA VAT
  371.       ?? TRANSFORM( M_TMP[2], Tran[1] ) + '│'
  372.  
  373. ***   WARTOåü BRUTTO
  374.       ?? TRANSFORM( M_TMP[3], Tran[3] ) + '║'
  375.  
  376.       ARRAYTEST 12, PozBuff, i
  377.     NEXT i
  378.  
  379.     LET M_Netto = ZS_NettoWZ( M_NUMER )
  380.     LET M_Vat   = ZS_VatWZ( M_NUMER )
  381.  
  382.     ? Podkr
  383.  
  384.     ? Space( 77 ) + _DStrikeON + 'RAZEM' + _DStrikeOFF + ' : ║'
  385.     ?? TRANSFORM( M_Netto, Tran[3] ) + '│  │'
  386.     ?? TRANSFORM( M_Vat,   Tran[1] ) + '│'
  387.     ?? _DStrikeON + TRANSFORM( M_Netto + M_Vat, Tran[3] ) + _DStrikeOFF + '║'
  388.  
  389.  
  390.     IF M_LenTmpWart > 0
  391.  
  392.       ? SPACE( 85 ) +         '╠══════════════════════════════════════╣'
  393.       ? SPACE( 77 ) + 'W TYM : ║'
  394.  
  395.       LET Poz_STAWKA = IF( M_TmpWart[1,1] == -1, 'zw', Str( M_TmpWart[1,1], 2 ))
  396.       LET Poz_NETTO  = M_TmpWart[1,6]
  397.       LET Poz_VAT    = M_TmpWart[1,7]
  398.  
  399.       ?? Transform( Poz_NETTO, Tran[3] ) + '│'
  400.       ?? Transform( Poz_STAWKA, 'XX' )   + '│'
  401.       ?? Transform( Poz_VAT, Tran[1] )   + '│'
  402.       ?? Transform( Poz_NETTO + Poz_VAT, Tran[3] ) + '║'
  403.       FOR i, 2, M_LenTmpWart
  404.         LET Poz_STAWKA = IF( M_TmpWart[i,1] == -1, 'zw', Str( M_TmpWart[i,1], 2 ))
  405.         LET Poz_NETTO  = M_TmpWart[i,6]
  406.         LET Poz_VAT    = M_TmpWart[i,7]
  407.         IF Poz_NETTO <> 0
  408.           ? SPACE( 85 ) + '║'
  409.           ?? Transform( Poz_NETTO, Tran[3] ) + '│'
  410.           ?? Transform( Poz_STAWKA, 'XX' )   + '│'
  411.           ?? Transform( Poz_VAT, Tran[1] )   + '│'
  412.           ?? Transform( Poz_NETTO + Poz_VAT, Tran[3] ) + '║'
  413.         ENDIF
  414.       NEXT i
  415.     ENDIF
  416.  
  417. *******************************************************************************
  418. ***                FAKTURA KORYGUJÇCA / RACHUNEK KORYGUJÇCY                 ***
  419. *******************************************************************************
  420.  
  421.     ?? Chr( 13 ) + _DStrikeON + '  POZYCJE PO KOREKCIE' + _DStrikeOFF
  422.     ? '╔════════════════════════════════════════════════════════════════════════════════════╩══════════════════════════════════════╣'
  423.  
  424.     FOR i, 1, LEN( PozBuff )
  425.  
  426.       LET M_TMP[1] = Round( PozBuff[i,12] * PozBuff[i,13], WMiejscPP )
  427.       LET M_TMP[2] = Round( PozBuff[i,12] * PozBuff[i,13] * Max( 0, PozBuff[i,14] )/100, WmiejscPP )
  428.       LET M_TMP[3] = M_TMP[1] + M_TMP[2]
  429.  
  430.       ?  '║'+STR( i,3,0)+'│'
  431.  
  432. ***   SYMBOL NAZWA SWW
  433.       ?? PozBuff[i,16] + '│'
  434.  
  435. *     ?? PozBuff[i, 1] + '│'
  436.       ?? PozBuff[i, 4] + '│'
  437.       ?? PozBuff[i,10] + '│'
  438.  
  439. ***   J.M.
  440.       ?? PozBuff[i,5] + '│'
  441.  
  442. ***   ILOåü
  443.       ?? TRANSFORM( PozBuff[i,13], Tran[2] ) + '│'
  444.  
  445. ***   CENA NETTO Z RABATEM
  446.       ?? TRANSFORM( PozBuff[i,12], Tran[1] ) + '│'
  447.  
  448. ***   WARTOåü NETTO Z RABATEM
  449.       ?? TRANSFORM( M_TMP[1], Tran[3] ) + '│'
  450.  
  451. ***   STAWKA VAT
  452.       ?? IF( PozBuff[i,14] < 0, 'zw│', TRANSFORM( PozBuff[i,14], '99' ) + '│' )
  453.  
  454. ***   KWOTA VAT
  455.       ?? TRANSFORM( M_TMP[2], Tran[1] ) + '│'
  456.  
  457. ***   WARTOåü Z VAT
  458.       ?? TRANSFORM( M_TMP[3], Tran[3] ) + '║'
  459.  
  460.       ARRAYTEST 31, PozBuff, i
  461.     NEXT i
  462.  
  463.     LET M_Netto = ZS_Netto( M_NUMER )
  464.     LET M_Vat   = ZS_Vat( M_NUMER )
  465.  
  466.     ? Podkr
  467.  
  468.     ? Space( 77 ) + _DStrikeON + 'RAZEM' + _DStrikeOFF + ' : ║'
  469.     ?? TRANSFORM( M_Netto, Tran[3] ) + '│  │'
  470.     ?? TRANSFORM( M_Vat,   Tran[1] ) + '│'
  471.     ?? _DStrikeON + TRANSFORM( M_Netto + M_Vat, Tran[3] ) + _DStrikeOFF + '║'
  472.  
  473.     IF M_LenTmpWart > 0
  474.  
  475.       ? SPACE( 85 ) +         '╠══════════════════════════════════════╣'
  476.       ? SPACE( 77 ) + 'W TYM : ║'
  477.  
  478.       LET Poz_STAWKA = IF( M_TmpWart[1,1] == -1, 'zw', Str( M_TmpWart[1,1], 2 ))
  479.       LET Poz_NETTO  = M_TmpWart[1,3]
  480.       LET Poz_VAT    = M_TmpWart[1,4]
  481.  
  482.       ?? Transform( Poz_NETTO, Tran[3] ) + '│'
  483.       ?? Transform( Poz_STAWKA, 'XX' )   + '│'
  484.       ?? Transform( Poz_VAT, Tran[1] )   + '│'
  485.       ?? Transform( Poz_NETTO + Poz_VAT, Tran[3] ) + '║'
  486.  
  487.       FOR i, 2, M_LenTmpWart
  488.         LET Poz_STAWKA = IF( M_TmpWart[i,1] == -1, 'zw', Str( M_TmpWart[i,1], 2 ))
  489.         LET Poz_NETTO  = M_TmpWart[i,3]
  490.         LET Poz_VAT    = M_TmpWart[i,4]
  491.         IF Poz_NETTO <> 0
  492.           ? SPACE( 85 ) + '║'
  493.           ?? Transform( Poz_NETTO, Tran[3] ) + '│'
  494.           ?? Transform( Poz_STAWKA, 'XX' )   + '│'
  495.           ?? Transform( Poz_VAT, Tran[1] )   + '│'
  496.           ?? Transform( Poz_NETTO + Poz_VAT, Tran[3] ) + '║'
  497.         ENDIF
  498.       NEXT i
  499.     ENDIF
  500.  
  501.     ? SPACE( 85 ) + '╚══════════════════════════════════════╝' + _CondOFF
  502.  
  503.     LET FK_Pod   = ZS_Vat( NUMER )
  504.     LET FV_Pod   = ZS_VatWZ( NUMER )
  505.     LET FK_Netto = ZS_Netto( NUMER )
  506.     LET FV_Netto = ZS_NettoWZ( NUMER )
  507.     LET FK_Wart  = FK_Netto + FK_Pod
  508.     LET FV_Wart  = FV_Netto + FV_Pod
  509.  
  510.     LET Roznica = ABS( FV_Wart - FK_Wart )
  511.  
  512.     ? _CondOFF
  513.  
  514.     ? Replicate( '═', 80 ) + _DStrikeON
  515.  
  516.     ? '  WartoÅè pozycji ' + IF( RCO_DR, 'faktury ', 'rachunku' ) + '       :'
  517.     ?? Transform( FV_Wart, Tran[3] ) + ' zî.'
  518.  
  519.     ? '  WartoÅè pozycji korekty        :' + Transform( FK_Wart, Tran[3] ) + ' zî.'
  520.  
  521.     IF FK_Netto > FV_Netto
  522.       ? '  Zwiïkszenie wartoÅci netto o   :' + Transform( FK_Netto - FV_Netto, Tran[3] ) + ' zî.'
  523.     ENDIF
  524.  
  525.     IF FK_Pod > FV_Pod
  526.       ? '  Zwiïkszenie wartoÅci podatku o :' + Transform( FK_Pod - FV_Pod, Tran[3] ) + ' zî.'
  527.     ENDIF
  528.  
  529.     IF FV_Netto > FK_Netto
  530.       ? '  Zmniejszenie wartoÅci netto o  :' + Transform( FV_Netto - FK_Netto, Tran[3] ) + ' zî.'
  531.     ENDIF
  532.  
  533.     IF FV_Pod > FK_Pod
  534.       ? '  Zmniejszenie wartoÅci podatku o:' + Transform( FV_Pod - FK_Pod, Tran[3] ) + ' zî.'
  535.     ENDIF
  536.  
  537.     ? _DStrikeOFF + REPLICATE( '═', 80 )
  538.     ?
  539.  
  540.     ? _DStrikeON + IF( FK_Wart > FV_Wart, '      Do zapîaty: ', '      Do zwrotu:  ' )
  541.     ?? _HiWiON + AllTrim( Transform( Roznica, Tran[4] )) + ' zî.' + _HiWiOFF + _DStrikeOFF
  542.     ? '      Sîownie:  '
  543.  
  544.     LET M_Slownie = ''
  545.     LET M_Slownie = Slownie( Int( Roznica )) + ' zîotych,'
  546.     LET M_Slownie = M_Slownie + Slownie(( Roznica % 1 ) * 100 ) + ' groszy'
  547.  
  548.     LET M_SlownieN = 1
  549.     LET TmpStr = ALLTRIM( MEMOLINE( M_Slownie, 60, M_SlownieN ))
  550.  
  551.     DOWHILE .NOT. EMPTY( TmpStr )
  552.       ?? TmpStr
  553.       LET M_SlownieN = M_SlownieN + 1
  554.       LET TmpStr = ALLTRIM( MEMOLINE( M_Slownie, 60, M_SlownieN ))
  555.       ? '                '
  556.     ENDDO
  557.  
  558.     ?
  559.     ?
  560.  
  561. ***   Linia poniæej powoduje napisanie na korekcie nazwiska osoby drukujëcej ten dokument
  562.  
  563.     ? '     '+PadC( AllTrim( M_podpis ), 30 )+'          ' + PadC( AllTrim( Dzialacz ), 30 )
  564.     ? '     -------------------------------          -------------------------------'
  565.     ? '       Imiï i Nazwisko oraz podpis              Imiï i nazwisko oraz podpis  '
  566.     ? '           osoby uprawnionej do                     osoby uprawnionej do     '
  567.  
  568.     IF RCO_DR
  569.       ? '             odbioru FAKTURY                        wystawienia FAKTURY'
  570.     ENDIF
  571.  
  572.     IF !RCO_DR
  573.       ? '            odbioru RACHUNKU                        wystawienia RACHUNKU'
  574.     ENDIF
  575.  
  576.     ?? _FF
  577.  
  578.   ENDIF
  579. NEXT M_Kopia
  580.  
  581. *****************************************************************************
  582. * ZS                                                                        *
  583. *****************************************************************************
  584.  
  585. LET Podkr = ;
  586.       ' ╚═══════════════════════════════════════════════════════════════════════════════════════════╝'
  587.  
  588. PAGEH
  589. PAGEF
  590.  
  591. PAGEH '  Dalszy ciëg do ZS  ' + ZS->NUMER
  592. PAGEH ' ╔═══════════════════════════════════════════════════════════════════════════════════════════╗'
  593. PAGEH ' ║Lp.│ Indeks        │ Nazwa                        │J.M│ IloÅè  │ Cena       │ WartoÅè      ║'
  594. PAGEH ' ║───┼───────────────┼──────────────────────────────┼───┼────────┼────────────┼──────────────║'
  595.  
  596. PAGEF ' ──────────────────────────────────────────────────────────────── CDN. ────────────────────── '
  597.  
  598.  
  599. FOR M_Kopia, 5, 6
  600.   IF LDlaKogo[M_Kopia]
  601.     START
  602.  
  603.     ? ' ╔═══════════════════════════╦════╦════════════╦══════════╦═════════════════╗'
  604.     ? ' ║    ZWROT ZE SPRZEDAêY     ║ '
  605.     ?? _DStrikeON + IF( EMPTY( MagNum ), '  ', Transform( Val( MagNum ), '99' )) + _DStrikeOFF
  606.     ?? ' ║ ' + _DStrikeON + ZS->NUMER + _DStrikeOFF + ' ║ ' + _DStrikeON + DTOC( ZS->DATA_WYST ) + _DStrikeOFF
  607.     ?? ' ║ ' + IIF(CZY_DR_KOPIA, PadC( SubStr( DlaKogo[M_Kopia], 1, 8 ), 16 ), Space( 16 )) + '║'
  608.     ? ' ╚═══════════════════════════╩════╩════════════╩══════════╩═════════════════╝'
  609.  
  610.     SELECT KLIENT
  611.     SEEK ZS->PLAT_SKROT
  612.  
  613.     LET LineBuf[1] = _DStrikeON + '   NABYWCA : ' + ZS->PLAT_SKROT + Space( 19 ) + ;
  614.                                      'ODBIORCA: ' + ZS->ODB_SKROT + _DStrikeOFF
  615.  
  616.     LET LineBuf[2] = '       ' + ZS->PLATNIK
  617.     LET LineBuf[3] = '       ' + PadR( AllTrim( AllTrim( AllTrim( KOD ) + ' ' + MIASTO ) + ' ' + ULICA ), 54 )
  618.     LET LineBuf[4] = '       NIP: ' + NIP
  619.  
  620.     SEEK ZS->ODB_SKROT
  621.     LET LineBuf[2] = LineBuf[2] + Space( 15 ) + ZS->ODBIORCA
  622.     LET LineBuf[3] = LineBuf[3] + Space( 11 ) + PadR( AllTrim( AllTrim( AllTrim( KOD ) + ' ' + MIASTO ) + ' ' + ULICA ), 54 )
  623.     LET LineBuf[4] = LineBuf[4] + Space( 45 ) + 'NIP: ' + NIP
  624.  
  625.     ? LineBuf[1]
  626.     ? '  ' + Replicate( '─', 76 )
  627.     ? _CondON+LineBuf[2]+_CondOFF
  628.     ? _CondON+LineBuf[3]+_CondOFF
  629. ***    ? _CondON+LineBuf[4]+_CondOFF
  630.  
  631.     ?? _CondON
  632.  
  633.     LET TmpStr = _PageH[2]
  634.     ? &TmpStr
  635.     LET TmpStr = _PageH[3]
  636.     ? &TmpStr
  637.     LET TmpStr = _PageH[4]
  638.     ? &TmpStr
  639.  
  640.     FOR i, 1, Len( BuffZS )
  641.  
  642.       ?  ' ║' + Str( i, 3, 0 ) + '│'
  643.  
  644. ***   SYMBOL NAZWA SWW
  645.       ?? PozBuff[i,16] + '│'
  646.  
  647. *     ?? BuffZS[i,1] + '│'
  648.       ?? BuffZS[i,4] + '│'
  649.  
  650. ***   J.M.
  651.       ?? BuffZS[i,5] + '│'
  652.  
  653. ***   ILOåü
  654.       ?? Transform( BuffZS[i, 3], Tran[2] ) + '│'
  655.  
  656. ***   CENA ZAKUPU
  657.       ?? Transform( BuffZS[i,11], Tran[3] ) + '│'
  658.  
  659. ***   WARTOåü ZAKUPU
  660.       ?? Transform( Round( BuffZS[i,3] * BuffZS[i,11], WMiejscPP ), Tran[4] ) + '║'
  661.  
  662.     NEXT i
  663.  
  664.     ? Podkr
  665.     ? Space( 71 ) + 'Razem : ' + Transform( ZS_ZakupWZ( M_Numer ) - ZS_Zakup( M_Numer ), Tran[4] )
  666.  
  667.     ? _CondOFF
  668.     ?
  669.     ? '   -------------------------------          -------------------------------'
  670.     ? '     Podpis osoby uprawnionej do              Podpis osoby uprawnionej do'
  671.     ? '           odbioru TOWARU                            wystawienia ZS'
  672.     ?? _FF
  673.   ENDIF
  674. NEXT M_Kopia
  675.  
  676. *****************************************************************************
  677. * ZWROT                                                                     *
  678. *****************************************************************************
  679.  
  680. LET Podkr = ;
  681.       ' ╚═══════════════════════════════════════════════════════════════╝'
  682.  
  683. PAGEH
  684. PAGEF
  685.  
  686. PAGEH '  Dalszy ciëg ZWROTU ' + M_Numer
  687. PAGEH ' ╔═══════════════════════════════════════════════════════════════╗'
  688. PAGEH ' ║Lp.│ Indeks        │ Nazwa                        │J.M│ IloÅè  ║'
  689. PAGEH ' ║───┼───────────────┼──────────────────────────────┼───┼────────║'
  690.  
  691. PAGEF ' ────────────────────────────────────────────────── CDN. ──────── '
  692.  
  693. FOR M_Kopia, 7, 8
  694.   IF LDlaKogo[M_Kopia]
  695.     START
  696.  
  697.     ? ' ╔═══════════════════════════╦════╦════════════╦══════════╦═════════════════╗'
  698.     ? ' ║     ZWROT DO MAGAZYNU     ║ '
  699.     ?? _DStrikeON + IF( EMPTY( MagNum ), '  ', Transform( Val( MagNum ), '99' )) + _DStrikeOFF
  700.     ?? ' ║ ' + _DStrikeON + ZS->NUMER + _DStrikeOFF + ' ║ ' + _DStrikeON + DTOC( ZS->DATA_WYST ) + _DStrikeOFF
  701.     ?? ' ║ ' + IIF(CZY_DR_KOPIA, PadC( SubStr( DlaKogo[M_Kopia], 1, 8 ), 16 ), Space( 16 )) +  '║'
  702.     ? ' ╚═══════════════════════════╩════╩════════════╩══════════╩═════════════════╝'
  703.  
  704.     SELECT KLIENT
  705.     SEEK ZS->PLAT_SKROT
  706.  
  707.     LET LineBuf[1] = _DStrikeON + '   NABYWCA : ' + ZS->PLAT_SKROT + Space( 19 ) + ;
  708.                                      'ODBIORCA: ' + ZS->ODB_SKROT + _DStrikeOFF
  709.  
  710.     LET LineBuf[2] = '       ' + ZS->PLATNIK
  711.     LET LineBuf[3] = '       ' + PadR( AllTrim( AllTrim( AllTrim( KOD ) + ' ' + MIASTO ) + ' ' + ULICA ), 54 )
  712.     LET LineBuf[4] = '       NIP: ' + NIP
  713.  
  714.     SEEK ZS->ODB_SKROT
  715.     LET LineBuf[2] = LineBuf[2] + Space( 15 ) + ZS->ODBIORCA
  716.     LET LineBuf[3] = LineBuf[3] + Space( 11 ) + PadR( AllTrim( AllTrim( AllTrim( KOD ) + ' ' + MIASTO ) + ' ' + ULICA ), 54 )
  717.     LET LineBuf[4] = LineBuf[4] + Space( 45 ) + 'NIP: ' + NIP
  718.  
  719.     ? LineBuf[1]
  720.     ? '  ' + Replicate( '─', 75 )
  721.     ? _CondON+LineBuf[2]+_CondOFF
  722.     ? _CondON+LineBuf[3]+_CondOFF
  723. ***    ? _CondON+LineBuf[4]+_CondOFF
  724.  
  725.     LET TmpStr = _PageH[2]
  726.     ? &TmpStr
  727.     LET TmpStr = _PageH[3]
  728.     ? &TmpStr
  729.     LET TmpStr = _PageH[4]
  730.     ? &TmpStr
  731.  
  732.     LET _Lp = 1
  733.     FOR i, 1, Len( PozBuff )
  734.  
  735.       IF ( PozBuff[i,3] - PozBuff[i,13] ) != 0
  736.         IF SubStr( PozBuff[i,1], 1, 2 ) != '()'
  737.           ?  ' ║' + Str( _Lp, 3, 0 ) + '│'
  738.  
  739. ***       SYMBOL NAZWA SWW
  740.           ?? PozBuff[i,16] + '│'
  741.  
  742. *         ?? PozBuff[i, 1] + '│'
  743.           ?? PozBuff[i, 4] + '│'
  744.  
  745. ***       J.M.
  746.           ?? PozBuff[i,5] + '│'
  747.  
  748. ***       ILOåü
  749.           ?? Transform( PozBuff[i,3] - PozBuff[i,13], Tran[2] ) + '║'
  750.           LET _Lp = _Lp + 1
  751.         ENDIF
  752.       ENDIF
  753.  
  754.     NEXT i
  755.  
  756.     ? Podkr
  757.  
  758.     ?
  759.     ?
  760.     ? '   -------------------------------          -------------------------------'
  761.     ? '     Podpis osoby uprawnionej do              Podpis osoby uprawnionej do'
  762.     ? '           odbioru TOWARU                          wystawienia ZWROTU'
  763.     ?? _FF
  764.   ENDIF
  765. NEXT M_Kopia
  766.  
  767. RETURN                         < *** KONIEC *** >
  768. 
  769.