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

  1. * WYDRUK: Faktura VAT, Rachunek Uproszczony (WZ) ATI HURT v 6.2
  2. ********************************************************************************
  3. PRIVATE i
  4. PRIVATE M_Numer
  5. PRIVATE M_Kopia
  6. PRIVATE M_Slownie
  7. PRIVATE M_SlownieN
  8. PRIVATE M_TmpWart
  9. PRIVATE M_LenTmpWart
  10. PRIVATE NazwaPliku
  11. PRIVATE Podkr
  12. PRIVATE PozBuff
  13. PRIVATE BuffWZ
  14. PRIVATE PozN
  15. PRIVATE TmpDNazwa
  16. PRIVATE TmpPozN
  17. PRIVATE TmpStr
  18. DECLARE DlaKogo[8]
  19. DECLARE LDlaKogo[8]
  20. DECLARE Tran[4]
  21. DECLARE LineBuf[10]
  22. DECLARE M_TMP[4]
  23. DECLARE M_TMPV[4]
  24. PRIVATE RCO_DR
  25. PRIVATE CZY_DR_KOPIA
  26. PRIVATE M_Podpis
  27. PRIVATE JesliLOCK
  28. PRIVATE _DlNazwa
  29. PRIVATE AKtoryS[6]
  30. PRIVATE __Symbol
  31. PRIVATE _SortPOZ
  32. PRIVATE _Druk0Rab
  33. PRIVATE _0Rab
  34.  
  35. LET _Druk0Rab = .F.
  36. LET _SortPOZ = .T.
  37.  
  38. LET AKtoryS[1]= "symbol towaru        "
  39. LET AKtoryS[2]= "oznaczenie S1        "
  40. LET AKtoryS[3]= "oznaczenie S2        "
  41. LET AKtoryS[4]= "oznaczenie S3        "
  42. LET AKtoryS[5]= "oznaczenie S4        "
  43. LET AKtoryS[6]= "oznaczenie S5        "
  44. LET __Symbol = AKtoryS[1]
  45.  
  46. LET CZY_DR_KOPIA = .T.
  47. LET _DlNazwa = .F.
  48. LET _Lines  = _LinesDefault
  49.  
  50. LET DlaKogo[1] = 'ORYGINAâ   '
  51. LET DlaKogo[2] = 'KOPIA 1    '
  52. LET DlaKogo[3] = 'KOPIA 2    '
  53. LET DlaKogo[4] = 'KOPIA 3    '
  54. LET DlaKogo[5] = 'ORYGINAâ WZ'
  55. LET DlaKogo[6] = 'KOPIA 1    '
  56. LET DlaKogo[7] = 'ORYGINAâ PO'
  57. LET DlaKogo[8] = 'KOPIA 1    '
  58.  
  59. DO AFill( LDlaKogo, .F. )
  60. LET LDlaKogo[1] = .T.
  61.  
  62. LET M_Numer = NUMER
  63.  
  64. FILE KLIENT
  65. FILE TOWARY
  66.  
  67. SELECT KLIENT
  68. SEEK WZ->PLAT_SKROT
  69. LET RCO_DR = KLIENT->CZYVAT .AND. .NOT. EMPTY(KLIENT->NIP)
  70. LET M_Podpis = KLIENT->PODPIS
  71. ****************************************************************
  72. PRIVATE Form
  73. PRIVATE OldForm
  74. PRIVATE LOutDev
  75. PRIVATE LOutFile
  76. PRIVATE FormChanged
  77.  
  78. LET LOutDev = _aOutDev[1]
  79. LET LOutFile = PADR('Beznazwy.prn',100)
  80. IF .NOT. empty(OutDev)
  81.   PRIVATE TmpN
  82.   LET TmpN = ASCAN(_aOutDev, {|x| SUBSTR(x,1,4)==UPPER(OutDev) })
  83.   LET LOutDev = IF(TmpN==0, _aOutDev[5], _aOutDev[TmpN])
  84. ENDIF
  85. LET Form = FormNew()
  86.  
  87. DO FormAddElem(Form, 1, 2,'Podpis odb.:','M_Podpis',Replicate('X',30))
  88. DO FormAddElem(Form, 2, 1,' ───────────────────────────────────────────','')
  89. DO FormAddList(Form, 3, 6,'Drukarka  :','LOutDev', _aOutDev, {|| empty(OutDev)})
  90. DO FormAddElem(Form, 4, 6,'Plik      :','LOutFile','@S24', {|| LOutDev==_aOutDev[5]})
  91. DO FormAddElem(Form, 5,1,' ───────────────────────────────────────────','')
  92. DO FormAddElem(Form, 6, 1,'     FAKTURA                 DOK.MAGAZYNOWE','')
  93. DO FormAddElem(Form, 7, 6,DlaKogo[1], 'LDlaKogo[1]')
  94. DO FormAddElem(Form, 8, 6,DlaKogo[2], 'LDlaKogo[2]')
  95. DO FormAddElem(Form, 9 ,6,DlaKogo[3], 'LDlaKogo[3]')
  96. DO FormAddElem(Form, 10,6,DlaKogo[4], 'LDlaKogo[4]')
  97. DO FormAddElem(Form, 7, 30,DlaKogo[5], 'LDlaKogo[5]')
  98. DO FormAddElem(Form, 8, 30,DlaKogo[6], 'LDlaKogo[6]')
  99. DO FormAddElem(Form, 9 ,30,DlaKogo[7], 'LDlaKogo[7]')
  100. DO FormAddElem(Form, 10,30,DlaKogo[8], 'LDlaKogo[8]')
  101. DO FormAddElem(Form, 11, 1,' ───────────────────────────────────────────','')
  102. DO FormAddElem(Form,   , 2,"Jako identyfikator towaru wstawiè:")
  103. DO FormAddList(Form,   , 20,'', '__Symbol', AKtoryS )
  104. DO FormAddElem(Form,   ,2,'Drukowaè dîugi opis towaru             ','_DlNazwa')
  105. DO FormAddElem(Form,   ,2,'Drukowaè napis ORYGINAâ/KOPIA          ','CZY_DR_KOPIA')
  106. DO FormAddElem(Form,   ,2,'Drukowaè towary w kolejnoÅci SYMBOLI ? ','_SortPOZ')
  107. DO FormAddElem(Form,   ,2,'Drukowaè zerowe rabaty   ?             ','_Druk0Rab')
  108. DO FormAddElem(Form,   ,2,'DîugoÅè strony wydruku             ','_Lines','999999')
  109.  
  110. LET OldForm = FormREAD('WZVAT')
  111.  
  112. DO FormChoice(@Form, @OldForm)
  113. LET M_Podpis = KLIENT->PODPIS
  114. DO FormRefrValue(Form)
  115.  
  116. LET FormChanged = FormRun(Form,,,,,' Parametry wydruku ',' WARTOåü FAKTURY: '+ASTR(WZ->WARTOSC,13,2)+' zî. ')
  117.  
  118. IF LASTKEY()==27
  119.   RETURN
  120. ENDIF
  121.  
  122. IF FormChanged
  123.   DO FormWrite(Form, 'WZVAT')
  124. ENDIF
  125.  
  126. IF empty(OutDev)
  127.   LET OutDev = SUBSTR(LOutDev,1,4)
  128.   IF OutDev == 'FILE'
  129.     LET OutDev = LOutFile
  130.   ENDIF
  131. ENDIF
  132.  
  133. LET AskLine = .F.
  134. LET Form = NIL
  135. *************************************************************************
  136. SELECT klient
  137.  
  138. SEEK WZ->PLAT_SKROT
  139. * seek na wszelki wypadek gdyby forms cos zmienily
  140. LET JesliLOCK = REC_LOCK()
  141. IF !JesliLOCK
  142.    DO Message('Nie udaîo siï zapisaè podpisu klienta !')
  143. ENDIF
  144. IF JesliLOCK
  145.    LET KLIENT->PODPIS = M_Podpis
  146.    DO DBSKIP(0)
  147.    DO DBUNLOCK()
  148. ENDIF
  149.  
  150. SELECT WZPOZ
  151. RELATION SYMBOL, TOWARY
  152.  
  153. SEEK M_Numer
  154.  
  155. LET Tran[1] = Tran9( 13 - 4, CMiejscPP )
  156. LET Tran[2] = Tran9( 10    , ImiejscPP )
  157. LET Tran[3] = Tran9( 13 - 3, CMiejscPP )
  158.  
  159.  
  160. LET PozBuff = {}
  161. LET BuffWZ  = {}
  162. LET _0Rab   = .T.
  163.  
  164. DOWHILE NUMER == M_NUMER
  165.  
  166.   IF WZPOZ->ILOSC <= 0
  167.     SKIP
  168.     LOOP
  169.   ENDIF
  170.  
  171.   LET _0Rab = _0Rab .AND. WZPOZ->RABAT == 0
  172.  
  173.   LET PozN = AScan( PozBuff, { |x| x[1] == WZPOZ->SYMBOL .AND.  ;
  174.                                    x[2] == WZPOZ->CENAD  .AND.  ;
  175.                                    x[8] == WZPOZ->PODATEK .AND. ;
  176.                                    x[9] == WZPOZ->RABAT })
  177.   IF PozN == 0
  178.  
  179.     DO AAdd( PozBuff, { NIL, 0, 0, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL })
  180.  
  181. ***   1 - SYMBOL,  2 - CENA,  3 - ILOSC,  4 - TOWARY->NAZWA,  5 - TOWARY->ILOSC_JEDN
  182. ***   6 - TOWARY->SZT, 7 - TOWARY->OP,  8 - PODATEK,  9 - RABAT,  10 - TOWARY->SWW
  183.  
  184.     LET PozN = Len( PozBuff )
  185.  
  186.  
  187.     LET PozBuff[PozN, 1] = WZPOZ->SYMBOL
  188.     LET PozBuff[PozN, 2] = WZPOZ->CENAD
  189.  
  190.     LET PozBuff[PozN, 4] = TOWARY->NAZWA
  191.     LET PozBuff[PozN, 5] = TOWARY->ILOSC_JEDN
  192.     LET PozBuff[PozN, 6] = TOWARY->SZT
  193.     LET PozBuff[PozN, 7] = TOWARY->OP
  194.     LET PozBuff[PozN,10] = TOWARY->SWW
  195.     IF __Symbol = AktoryS[1]
  196.       LET PozBuff[PozN,13] = WZPOZ->SYMBOL
  197.     ENDIF
  198.     IF __Symbol = AktoryS[2]
  199.       LET PozBuff[PozN,13] = TOWARY->S1
  200.     ENDIF
  201.     IF __Symbol = AktoryS[3]
  202.       LET PozBuff[PozN,13] = TOWARY->S2
  203.     ENDIF
  204.     IF __Symbol = AktoryS[4]
  205.       LET PozBuff[PozN,13] = TOWARY->S3
  206.     ENDIF
  207.     IF __Symbol = AktoryS[5]
  208.       LET PozBuff[PozN,13] = TOWARY->S4
  209.     ENDIF
  210.     IF __Symbol = AktoryS[6]
  211.       LET PozBuff[PozN,13] = TOWARY->S5
  212.     ENDIF
  213.  
  214.  
  215.     LET PozBuff[PozN, 8] = WZPOZ->PODATEK
  216.     LET PozBuff[PozN, 9] = WZPOZ->RABAT
  217.     LET PozBuff[PozN,11] = WZPOZ->CENAD
  218.     LET PozBuff[PozN,12] = STR(PozN,10,0)
  219.  
  220.     LET TmpPozN = PozN
  221.     LET TmpDNazwa = IIF( _DlNazwa, IF( SubStr( WZPOZ->SYMBOL, 1, 2 ) == '()',;
  222.                         USLUGI->DNAZWA, TOWARY->DNAZWA ), '')
  223.     IF .NOT. EMPTY( TmpDNazwa )
  224.  
  225.       LET M_NDNazwa = MLCOUNT( TmpDNazwa, 60, 4, .F. )
  226.       LET LenTmpStr = 50
  227.  
  228.       FOR ii, 1, M_NDNazwa
  229.         LET TmpStr = PadC( Memoline( TmpDNazwa, 60, ii ), 71 )
  230.         IF .NOT. Empty( TmpStr )
  231.           LET TmpPozN = TmpPozN + 1
  232.           LET LenTmpStr = Len( RTrim( TmpStr ))
  233.          DO AAdd( PozBuff, { WZPOZ->SYMBOL, NIL, NIL,;
  234.                               TmpStr, NIL, NIL, NIL, NIL, NIL, NIL,NIL,;
  235.                               STR(TmpPozN,10,0) })
  236.         ENDIF
  237.       NEXT ii
  238.  
  239. * Dopisywanie pustej lini jak ostatnia miala co najmniej 30 znakÄw
  240.       IF LenTmpStr > 30
  241.         LET TmpPozN = TmpPozN + 1
  242.         DO AAdd( PozBuff, { WZPOZ->SYMBOL, NIL, NIL,;
  243.                             Space( 71 ), NIL, NIL, NIL, NIL, NIL, NIL,NIL,;
  244.                             STR(TmpPozN,10,0) })
  245.       ENDIF
  246.     ENDIF
  247.   ENDIF
  248.  
  249.   LET PozBuff[PozN,3] = PozBuff[PozN,3] + WZPOZ->ILOSC
  250.  
  251.   DO AAdd( BuffWZ, { WZPOZ->SYMBOL,             ;
  252.                      WZPOZ->CENAD,              ;
  253.                      WZPOZ->ILOSC,              ;
  254.                      TOWARY->NAZWA,             ;
  255.                      TOWARY->ILOSC_JEDN,        ;
  256.                      TOWARY->SZT,               ;
  257.                      TOWARY->OP,                ;
  258.                      WZPOZ->PODATEK,            ;
  259.                      WZPOZ->RABAT,              ;
  260.                      TOWARY->SWW,               ;
  261.                      WZPOZ->CENAD,              ;
  262.                      Pozbuff[PozN,13]          })
  263.  
  264.  
  265.  
  266.   SKIP
  267. ENDDO
  268.  
  269. * Sortowanie pozycji
  270. IF _SortPOZ
  271.   LET PozBuff = ASort( PozBuff,,, { |x,y| x[1]+x[12] < y[1]+y[12] })
  272.   LET BuffWZ  = ASort( BuffWZ,,, { |x,y| x[1] < y[1] })
  273. ENDIF
  274.  
  275. * Jak bufor jest nie pusty
  276. LET TmpPozN=LEN(PozBuff)
  277. IF TmpPozN>0
  278.  
  279.  
  280. * Odcinanie ostatniej lini jak pusta
  281.   IF PozBuff[TmpPozN,2] == NIL .AND. ;
  282.      EMPTY(PozBuff[TmpPozN,4])
  283.      LET TmpPozN = TmpPozN - 1
  284.      DO ASIZE( PozBuff, TmpPozN)
  285.    ENDIF
  286. ENDIF
  287.  
  288. IF _Druk0Rab
  289.   LET _0Rab   = .F.
  290. ENDIF
  291.  
  292. LET Podkr = ;
  293.         '╚════════════════════════════════════════════════════════════════════════════════════════════╦══════════════════════════════════╣'
  294.  
  295.   PAGEH '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗'
  296.   PAGEH '║Lp.│ Indeks        │ Nazwa                        │ SWW / KU │ IloÅè    │J.M│'+IF(_0Rab,'      ',' Ra- │')+;
  297.                                                                                             ' Cena    │ WartoÅè  │PODATEK VAT │ WartoÅè  ║'
  298.   PAGEH '║   │               │                              │          │ towaru   │   │'+IF(_0Rab,'      ',' bat │')+;
  299.                                                                                       ' jednost.│ towaru   ├──┬─────────┤ towaru   ║'
  300.  
  301.   PAGEH '║   │               │                              │          │          │   │'+IF(_0Rab,'      ',' [%] │')+;
  302.                                                                                             ' netto   │ netto    │ %│  kwota  │ brutto   ║'
  303.  
  304.   PAGEH '║───┼───────────────┼──────────────────────────────┼──────────┼──────────┴───┼'+IF(_0Rab,'──────','─────┼')+;
  305.                                                                                             '─────────┼──────────┼──┼─────────┼──────────║'
  306.  
  307.   PAGEF '─────────────────────────────────────────────────────────────────────────────────────────────────────────────  CDN. ──────────── '
  308.  
  309.  
  310. ********************************************************
  311. *         FAKTURA VAT / RACHUNEK UPRZOSZCZONY          *
  312. ********************************************************
  313. DO WZ_DajWart( WZ->NUMER, @M_TmpWart )
  314. LET M_LenTmpWart = Len( M_TmpWart )
  315.  
  316. FOR M_Kopia, 1, Len( LDlaKogo )
  317.   IF LDlaKogo[ M_Kopia ] .AND. ;
  318.      M_Kopia < 5
  319. * Dla paragonow nie drukujemy faktur
  320.     IF EMPTY(WZ->PLAT_SKROT)
  321.        DO Message('Wydruk faktury/rachunku jest niemoæliwy.'+CRLF+;
  322.        'Brak danych pîatnika.')
  323.     ENDIF
  324.  
  325.   IF .NOT. EMPTY(WZ->PLAT_SKROT)
  326.     START
  327.     SELECT WZ
  328.  
  329.     LET LineBuf[2] = Space( 18 )
  330.     IF CZY_DR_KOPIA
  331.       LET LineBuf[2] = PadC( ALLTRIM( DlaKogo[M_Kopia]), 18 )
  332.     ENDIF
  333.  
  334.     ?  '╔═══════════════════════════╦═══════════════╦════════════╦══════════════════╗'
  335.     ?  '║ ' + _DStrikeON + IF( RCO_DR, 'FAKTURA VAT              ', 'RACHUNEK UPROSZCZONY     ' ) + _DStrikeOFF + ' ║'
  336.     ?? ' Nr ' + _DStrikeON + NUMER + _DStrikeOFF+ ' ║' + '           ' + _DStrikeON
  337. ***    ?? IF( Empty( MagNum ), ' 0', Transform( VAL( MagNum ), '99' )) +
  338.     ?? _DStrikeOFF + ' ║'
  339.     ?? _DStrikeON + LineBuf[2] + _DStrikeOFF + '║'
  340.     ?  '╠═══════════════════════════╩═══════════════╩════════════╩══════════════════╣'
  341.     ?  '║ DATA SPRZEDAêY: ' + _DStrikeON + DToC( DATAS) + _DStrikeOFF + '  │ DATA WYSTAWIENIA: '
  342.     ?? _DStrikeON + DToC( DATA_WYST ) + _DStrikeOFF + ' │ DATA PâATNOåCI:  ║'
  343.     ?  '║───────────────────────────┴────────────────────────────┤                  ║'
  344.     ?  '║ PâATNOåü: ' + _DStrikeON + WZ->SPOSOB_ZAP + _DStrikeOFF + '          │     '
  345.     ?? _DStrikeON + DToC( WZ->DATA_P ) + _DstrikeOFF + '     ║'
  346.    ?   '╚═══════════════════════════════════════════════════════════════════════════╝'
  347.                                                
  348.     SELECT KLIENT
  349.     SEEK WZ->PLAT_SKROT
  350.     ?
  351.     ? _DStrikeON +'  NABYWCA :  ' + WZ->PLATNIK + _DStrikeOFF
  352.     ? '  ' + _DStrikeON + PadR( AllTrim( AllTrim( AllTrim( ULICA ) + ' ' + KOD ) + ' ' + MIASTO ), 54 )
  353.     ?? _DStrikeOFF + IF( RCO_DR, 'NIP: ', '     ' ) + _DStrikeON + NIP +_DStrikeOFF
  354.     ?? ' '
  355.     ?
  356.  
  357.     IF WZ->ODB_SKROT<>WZ->PLAT_SKROT
  358.       SEEK WZ->ODB_SKROT
  359.  
  360.       ? _DStrikeON +'  ODBIORCA:  ' + _DStrikeON + WZ->ODBIORCA + _DStrikeOFF
  361.       ? '  ' + _DStrikeON + PadR( AllTrim( AllTrim( AllTrim( ULICA ) + ' ' + KOD ) + ' ' + MIASTO ), 54 )
  362.       ?? _DStrikeOFF + IF( RCO_DR, 'NIP: ', '     ' ) + _DStrikeON + NIP +_DStrikeOFF
  363.       ? 
  364.     ENDIF
  365.  
  366.  
  367.     LET LineBuf[1] = WZ->UWAGI
  368.     DO CONDENSED( .T. )
  369.     LET LineBuf[1] = WZ->UWAGI
  370.     DO CONDENSED( .T. )
  371.  
  372.     LET TmpStr = _PageH[1]
  373.     ? &TmpStr
  374.     LET TmpStr = _PageH[2]
  375.     ? &TmpStr
  376.     LET TmpStr = _PageH[3]
  377.     ? &TmpStr
  378.     LET TmpStr = _PageH[4]
  379.     ? &TmpStr
  380.     LET TmpStr = _PageH[5]
  381.     ? &TmpStr
  382.  
  383.     LET _Lp = 1
  384.  
  385.     FOR i, 1, Len( PozBuff )
  386.  
  387. IF PozBuff[i,2] != NIL
  388.  
  389.  
  390.    LET M_TMP[1] = Round( PozBuff[i,2] * PozBuff[i,3], WMiejscPP )
  391.    LET M_TMP[2] = Round( PozBuff[i,2] * PozBuff[i,3] * Max( 0, PozBuff[i,8] )/100, WmiejscPP )
  392.    LET M_TMP[3] = M_TMP[1] + M_TMP[2]
  393.  
  394.  
  395.         ? '║' + Str( _Lp, 3, 0 ) + '│'
  396.  
  397. ***     SYMBOL NAZWA SWW
  398.         ?? PozBuff[i,13] + '│'
  399.         ?? PadL( PozBuff[i,4], 30 ) + '│'
  400.         ?? PozBuff[i,10] + '│'
  401. ***     ILOåü
  402.         ?? ZTRIM(Transform( PozBuff[i,3], Tran[2] )) + ' '
  403. ***     J.M.
  404.         ?? PozBuff[i,5] + '│'
  405. ***     RABAT
  406.         ?? IF( _0Rab,'      ',;
  407.                      Transform( PozBuff[i, 9], '99.99' ) + '│')
  408. *IF .NOT. WZ->OD_BRUTTO
  409. ***     CENA NETTO Z RABATEM
  410.         ?? Transform( PozBuff[i,2], Tran[1] ) + '│'
  411. ***     WARTOåü NETTO Z RABATEM
  412.         ?? Transform( M_TMP[1], Tran[3] ) + '│'
  413. ***     STAWKA VAT
  414.         ?? IF( PozBuff[i,8] < 0, 'zw│', Transform( PozBuff[i,8], '99' ) + '│' )
  415. ***     KWOTA VAT
  416.         ?? Transform( M_TMP[2], Tran[1] ) + '│'
  417. ***     WARTOåü BRUTTO
  418.         ?? Transform( M_TMP[3], Tran[3] ) + '║'
  419. *ENDIF
  420.    LET _Lp = _Lp + 1
  421. ENDIF
  422.  
  423.       IF PozBuff[i,2] == NIL
  424.         ? '║   │               │ ' + PozBuff[i,4] + '│          │  │         │          ║'
  425.       ENDIF
  426.  
  427.       ARRAYTEST 15 + M_LenTmpWart, PozBuff, i
  428.     NEXT i
  429.  
  430.     SELECT WZ
  431.  
  432.     LET M_Netto = WZ_Netto( M_NUMER )
  433.     LET M_Vat   = WZ_Vat( M_NUMER )
  434.  
  435.     ? Podkr
  436.  
  437.     ? Space( 85 ) + _DStrikeON + 'RAZEM' + _DStrikeOFF + ' : ║'
  438.     ?? Transform( M_Netto, Tran[3] ) + '│  │'
  439.     ?? Transform( M_Vat,   Tran[1] ) + '│'
  440.     ?? _DStrikeON + Transform( M_Netto + M_Vat, Tran[3] ) + _DStrikeOFF + '║'
  441.  
  442.     IF M_LenTmpWart > 0
  443.  
  444.       LET Poz_STAWKA = IF( M_TmpWart[1,1] == -1, 'zw', Str( M_TmpWart[1,1], 2 ))
  445.       LET Poz_NETTO  = M_TmpWart[1,3]
  446.       LET Poz_VAT    = M_TmpWart[1,4]
  447.  
  448.       ? Space( 93 ) +         '╠══════════════════════════════════╣'
  449.       ? Space( 85 ) + 'W TYM : ║'
  450.  
  451.       ?? Transform( Poz_NETTO, Tran[3] ) + '│'
  452.       ?? Transform( Poz_STAWKA, 'XX' )   + '│'
  453.       ?? Transform( Poz_VAT, Tran[1] )   + '│'
  454.       ?? Transform( Poz_NETTO + Poz_VAT, Tran[3] ) + '║'
  455.  
  456.       FOR i, 2, M_LenTmpWart
  457.         LET Poz_STAWKA = IF( M_TmpWart[i,1] == -1, 'zw', Str( M_TmpWart[i,1], 2 ))
  458.         LET Poz_NETTO  = M_TmpWart[i,3]
  459.         LET Poz_VAT    = M_TmpWart[i,4]
  460.         ? Space( 93 ) + '║'
  461.         ?? Transform( Poz_NETTO, Tran[3] ) + '│'
  462.         ?? Transform( Poz_STAWKA, 'XX' )   + '│'
  463.         ?? Transform( Poz_VAT, Tran[1] )   + '│'
  464.         ?? Transform( Poz_NETTO + Poz_VAT, Tran[3] ) + '║'
  465.       NEXT i
  466.  
  467.     ENDIF
  468.  
  469.     ? Space( 93 ) + '╚══════════════════════════════════╝' + _CondOFF
  470.  
  471.     LET M_TMP[1]  = Round( M_Netto + M_Vat, 2 )
  472.     LET M_Slownie = ''
  473.     ? _DStrikeON
  474.     ? '      Do zapîaty: '
  475.     ??  _HIWION + AllTrim( Transform( M_TMP[1], Tran[3] )) + ' zî.' + _HIWIOFF + _DStrikeOFF
  476.  
  477.     ? '      Sîownie:    '
  478.  
  479.     LET M_Slownie = Slownie( Int( M_TMP[1] ) ) + ' zîotych,'
  480.  
  481.     LET M_Slownie = M_Slownie + Slownie( Round(( M_TMP[1] % 1 ) * 100, 0 )) + ' groszy'
  482.  
  483.     LET M_SlownieN = 1
  484.     LET TmpStr = AllTrim( MemoLine( M_Slownie, 60, M_SlownieN ))
  485.  
  486.     DOWHILE .NOT. Empty( TmpStr )
  487.       ?? TmpStr
  488.       LET M_SlownieN = M_SlownieN + 1
  489.       LET TmpStr = AllTrim( MemoLine( M_Slownie, 60, M_SlownieN ))
  490.       ? '                  '
  491.     ENDDO
  492.  
  493.     ? SPACE(6) + Linebuf[1]
  494.     ?
  495. ***   Linia poniæej powoduje wypisanie na fakturze nazwiska osoby drukujëcej ten dokument
  496.     ? '     '+PadC( AllTrim( M_podpis ), 30 )+'          ' + PadC( AllTrim( Dzialacz ), 30 )
  497.  
  498.     ? '     -------------------------------          -------------------------------'
  499.     ? '      Imiï i nazwisko oraz podpis               Imiï i nazwisko oraz podpis'
  500.     ? '          osoby uprawnionej do                     osoby uprawnionej do'
  501.  
  502.     IF RCO_DR
  503.       ? '        odbioru TOWARU i FAKTURY                    wystawienia FAKTURY'
  504.     ENDIF
  505.     IF !RCO_DR
  506.       ? '        odbioru TOWARU i RACHUNKU                  wystawienia RACHUNKU'
  507.     ENDIF
  508.     ?
  509.  
  510.     DO FF()
  511.     ENDIF // EMPTY(WZ->PLAT_SKROT)
  512.   ENDIF
  513.  
  514. ********************************************************
  515. *                          WZ                          *
  516. ********************************************************
  517.   IF LDlaKogo[ M_Kopia ] .AND. M_Kopia >= 5 .AND. M_Kopia <=6
  518.  
  519.     SELECT WZ
  520.  
  521.     PAGEH
  522.     PAGEH 'cd. WZ nr ' + WZ->NUMER
  523.     PAGEH '╔══════╦═════════════════╦════════════════════════════════╦══════════╦═════╦═══════════╦════════════╗'
  524.     PAGEH '║ Lp.  ║ Indeks          ║ Nazwa                          ║   IloÅè  ║ J.m.║ Cena netto║  WartoÅè   ║'
  525.     PAGEH '╠══════╩═════════════════╩════════════════════════════════╩══════════╩═════╩═══════════╩════════════╣'
  526.  
  527.     PAGEF
  528.     PAGEF ''
  529.     PAGEF ' ────────────────────────────────────────────────────────────────────── cdn. ───────────────────────'
  530.  
  531.     START
  532.  
  533.     LET LineBuf[2] = Space( 18 )
  534.     IF CZY_DR_KOPIA
  535.       LET LineBuf[2] = PadC( ALLTRIM( DlaKogo[M_Kopia]), 18 )
  536.     ENDIF
  537.  
  538.     ?  '╔═══════════════════════════════════════════╦════════════╦══════════════════╗'
  539.     ?  '║ ' + _DStrikeON + '  WZ - wydanie zewnïtrzne' + _DStrikeOFF + '  '
  540.     ?? ' Nr ' + _DStrikeON + NUMER + _DStrikeOFF+ ' ║' + '         ' + _DStrikeON
  541.     ?? _DStrikeOFF + '   ║'
  542.     ??  _DStrikeON + LineBuf[2] + _DStrikeOFF+ '║'
  543.     ?  '║       do faktury/rachunku  '
  544.     ?? '    ' +  NUMER + ' ║            ║                  ║'
  545.  
  546.     ?  '╠═══════════════════════════════════════════╩════════════╩══════════════════╣'
  547.     ?  '║ DATA SPRZEDAêY: ' + _DStrikeON + DToC( DATAS) + _DStrikeOFF + '  │'
  548.     ?? IF( RCO_DR, '   DATA FAKTURY : ','   DATA RACHUNKU :')
  549.     ?? _DStrikeON + DToC( DATAS ) + _DStrikeOFF + '  │ DATA PâATNOåCI:  ║'
  550.  
  551.     ?  '║───────────────────────────┴────────────────────────────┤                  ║'
  552.     ?  '║ PâATNOåü: ' + _DStrikeON + WZ->SPOSOB_ZAP + _DStrikeOFF + '          │     '
  553.     ?? _DStrikeON + DToC( WZ->DATA_P ) + _DstrikeOFF + '     ║'
  554.     ?  '╚═══════════════════════════════════════════════════════════════════════════╝'
  555.  
  556.     SELECT KLIENT
  557.     SEEK WZ->PLAT_SKROT
  558.     ?
  559.     ? '  NABYWCA :  ' + _DStrikeON + WZ->PLATNIK + _DStrikeOFF 
  560.     ? '  ' + _DStrikeON + PadR( AllTrim( AllTrim( AllTrim( ULICA ) + ' ' + KOD ) + ' ' + MIASTO ), 54 )
  561.     ?? _DStrikeOFF + IF( .NOT. Empty( NIP ), 'NIP: ' + _DStrikeON + NIP +_DStrikeOFF, Space( 20 ))
  562.     ?
  563.     SEEK WZ->ODB_SKROT
  564.     IF WZ->PLAT_SKROT<>WZ->ODB_SKROT .OR.;
  565.        WZ->PLATNIK<>WZ->ODBIORCA
  566.       ? '  ODBIORCA:  ' + _DStrikeON + WZ->ODBIORCA + _DStrikeOFF 
  567.       ? '  ' + _DStrikeON + PadR( AllTrim( AllTrim( AllTrim( ULICA ) + ' ' + KOD ) + ' ' + MIASTO ), 54 )
  568.       ?? _DStrikeOFF + IF( .NOT. Empty( NIP ), 'NIP: ' + _DStrikeON + NIP +_DStrikeOFF, Space( 20 ))
  569.     ENDIF
  570.  
  571.  
  572.     DO CONDENSED( .T. )
  573.  
  574.     LET TmpStr = _PageH[2]
  575.     ? &TmpStr
  576.     LET TmpStr = _PageH[3]
  577.     ? &TmpStr
  578.     LET TmpStr = _PageH[4]
  579.     ? &TmpStr
  580.  
  581.     FOR i, 1, Len( BuffWZ )
  582.  
  583.       IF BuffWZ[i,2] != NIL
  584.         LET M_TMP[1] = Round( BuffWZ[i,3] * BuffWZ[i,11], WMiejscPP )
  585.  
  586.         ?  '║ ' + Str( i, 3, 0 ) + '. │ '
  587. ***     SYMBOL NAZWA
  588.         ?? BuffWZ[i,12] + ' │ '
  589. *       ?? BuffWZ[i,1] + ' │ '
  590.         ?? BuffWZ[i,4] + ' │ '
  591. ***     ILOåü
  592.         ?? ZTRIM(Transform( BuffWZ[i,3], Tran[2] )) + ' '
  593. ***     J.M.
  594.         ?? BuffWZ[i,5] + ' │ '
  595. ***     CENA
  596.         ?? Transform( BuffWZ[i,11], Tran[1] ) + ' │ '
  597. ***     WARTOåü
  598.         ?? Transform( M_TMP[1], Tran[3] ) + ' ║'
  599.       ENDIF
  600.  
  601.       ARRAYTEST 12, BuffWZ, i
  602.     NEXT i
  603.  
  604.     ? '╚═══════════════════════════════════════════════════════════════════════════════════════════════════╝'
  605.     ? Space( 83 ) + 'Suma: ' + Transform( WZ_Netto( M_Numer ), Tran[3] )
  606.  
  607.     DO CONDENSED( .F. )
  608.     ?
  609.     ?
  610.     ? '  TOWAR OTRZYMAâEM'
  611.     ?
  612.     ?
  613.     ?
  614.     ? '    -------------------------------          -------------------------------'
  615.     ? '                   ODEBRAâ                               WYDAâ'
  616.  
  617.     DO FF()
  618.   ENDIF
  619.  
  620. ********************************************************
  621. *                PROTOKàâ ODBIORU                      *
  622. ********************************************************
  623.   IF LDlaKogo[ M_Kopia ] .AND. M_Kopia >= 7
  624.  
  625.     SELECT WZ
  626.     PAGEH
  627.     PAGEH 'cd. PO nr '+WZ->NUMER
  628.     PAGEH '╔══════╦═════════════════╦════════════════════════════════╦══════════╦═════╗'
  629.     PAGEH '║ Lp.  ║ Indeks          ║ Nazwa                          ║   IloÅè  ║ J.m.║'
  630.     PAGEH '╠══════╩═════════════════╩════════════════════════════════╩══════════╩═════╣'
  631.  
  632.     PAGEF
  633.     PAGEF ''
  634.     PAGEF '─────────────────────────────────────────────────────────── cdn. ────────────'
  635.  
  636.  
  637.     START
  638.  
  639.     LET LineBuf[2] = Space( 18 )
  640.     IF CZY_DR_KOPIA
  641.       LET LineBuf[2] = PadC( ALLTRIM( DlaKogo[M_Kopia]), 18 )
  642.     ENDIF
  643.  
  644.     ?  '╔═══════════════════════════╦═══════════════╦════════════╦══════════════════╗'
  645.     ?  '║ ' + _DStrikeON + '    PO - protokÄî odbioru' + _DStrikeOFF + ' ║'
  646.     ?? ' Nr ' + _DStrikeON + WZ->NUMER + _DStrikeOFF+ ' ║' + '            ║'
  647.     ??  _DStrikeON + LineBuf[2] + _DStrikeOFF+ '║'
  648.     ?  '║       do faktury/rachunku ║'
  649.     ?? '    ' +  WZ->NUMER + ' ║            ║                  ║'
  650.  
  651.     ?  '╠═══════════════════════════╩═══════════════╩════════════╩══════════════════╣'
  652.     ?  '║ DATA SPRZEDAêY: ' + _DStrikeON + DToC( DATAS) + _DStrikeOFF + '  │'
  653.     ?? IF( RCO_DR, '   DATA FAKTURY : ','   DATA RACHUNKU :')
  654.     ?? _DStrikeON + DToC( DATAS ) + _DStrikeOFF + '                     ║'
  655.  
  656.      ? '╚═══════════════════════════════════════════════════════════════════════════╝'
  657.      ?
  658.     SELECT KLIENT
  659.     SEEK WZ->PLAT_SKROT
  660.  
  661.     ? '  NABYWCA :  ' + _DStrikeON + WZ->PLATNIK + _DStrikeOFF 
  662.     ? '  ' + _DStrikeON + PadR( AllTrim( AllTrim( AllTrim( ULICA ) + ' ' + KOD ) + ' ' + MIASTO ), 54 )
  663.     ?? _DStrikeOFF + IF( .NOT. Empty( NIP ), 'NIP: ' + _DStrikeON + NIP +_DStrikeOFF, Space( 20 )) 
  664.  
  665.     SEEK WZ->ODB_SKROT
  666.     IF WZ->PLAT_SKROT<>WZ->ODB_SKROT .OR.;
  667.        WZ->PLATNIK<>WZ->ODBIORCA
  668.       ?
  669.       ? '  ODBIORCA:  ' + _DStrikeON + WZ->ODBIORCA + _DStrikeOFF 
  670.       ? '  ' + _DStrikeON + PadR( AllTrim( AllTrim( AllTrim( ULICA ) + ' ' + KOD ) + ' ' + MIASTO ), 54 )
  671.       ?? _DStrikeOFF + IF( .NOT. Empty( NIP ), 'NIP: ' + _DStrikeON + NIP +_DStrikeOFF, Space( 20 )) 
  672.     ENDIF
  673.       ?
  674.     LET TmpStr = _PageH[2]
  675.     ? &TmpStr
  676.     LET TmpStr = _PageH[3]
  677.     ? &TmpStr
  678.     LET TmpStr = _PageH[4]
  679.     ? &TmpStr
  680.  
  681.     LET _Lp = 1
  682.  
  683.     FOR i, 1, Len( PozBuff )
  684.  
  685.       IF PozBuff[i,2] != NIL .AND.;
  686.          SubStr( PozBuff[i,1], 1, 2 ) != '()'
  687.         ?  '║ ' + Str( _Lp, 3, 0 ) + '. │ '
  688.  
  689. ***     SYMBOL NAZWA SWW
  690.         ?? PozBuff[i,13] + ' │ '
  691. *       ?? PozBuff[i,1] + ' │ '
  692.         ?? PozBuff[i,4] + ' │ '
  693. ***     ILOåü
  694.         ?? ZTRIM(Transform( PozBuff[i,3], Tran[2] )) + ' '
  695. ***     J.M.
  696.         ?? PozBuff[i,5] + ' ║'
  697.         LET _Lp = _Lp + 1
  698.       ENDIF
  699.       ARRAYTEST 12, PozBuff, i
  700.     NEXT i
  701.     ? '╚══════════════════════════════════════════════════════════════════════════╝'
  702.     ?
  703.     ?
  704.     ?
  705.     ? '   TOWAR ODEBRAâEM'
  706.     ?
  707.     ?
  708.     ?
  709.     ? '    -------------------------------          -------------------------------'
  710.     ? '               ODEBRAâ                                   WYDAâ'
  711.  
  712.     DO FF()
  713.   ENDIF
  714. NEXT M_Kopia
  715.  
  716. RETURN                         < *** KONIEC *** >
  717.