Professional Documents
Culture Documents
* *
* Include RFFORI01, used in the payment print programs RFFOxxxz *
* with subroutines for printing checks *
* and subroutines for prenumbered checks (see below) *
* *
************************************************************************
*----------------------------------------------------------------------*
* FORM SCHECK *
*----------------------------------------------------------------------*
* Druck des Avises mit Allongeteil *
* (Beispiel Scheck) *
* Gerufen von END-OF-SELECTION (RFFOxxxz) *
*----------------------------------------------------------------------*
* prints a remittance advice with a check *
* called by END-OF-SELECTION (RFFOxxxz) *
*----------------------------------------------------------------------*
* keine USING-Parameter *
* no USING-parameters *
*----------------------------------------------------------------------*
FORM scheck.
*----------------------------------------------------------------------*
* Abarbeiten der extrahierten Daten *
* loop at extracted data *
*----------------------------------------------------------------------*
IF flg_sort NE 2.
SORT BY avis.
flg_sort = 2.
ENDIF.
hlp_ep_element = '525'.
LOOP.
PERFORM buchungskreis_daten_lesen.
ENDAT.
IF flg_schecknum NE 0.
itcpo-tddelete = 'X'. "delete after print
ENDIF.
EXPORT itcpo TO MEMORY ID 'RFFORI01_ITCPO'.
ENDAT.
PERFORM hausbank_daten_lesen.
flg_druckmodus = 0.
* Vornumerierte Schecks: erste Schecknummer ermitteln
* prenumbered checks: find out first check number
IF flg_schecknum NE 0.
PERFORM schecknummer_ermitteln USING 1.
ENDIF.
ENDAT.
ENDAT.
ENDAT.
IF flg_kein_druck EQ 0.
PERFORM zahlungs_daten_lesen.
IF itcpp-tdspoolid NE 0.
CLEAR tab_ausgabe.
tab_ausgabe-name = t042z-text1.
tab_ausgabe-dataset = itcpp-tddataset.
tab_ausgabe-spoolnr = itcpp-tdspoolid.
tab_ausgabe-immed = par_sofz.
COLLECT tab_ausgabe.
ENDIF.
ENDIF.
flg_druckmodus = itcpo-tdarmod.
par_priz = itcpp-tddest.
PERFORM fill_itcpo_from_itcpp.
EXPORT itcpo TO MEMORY ID 'RFFORI01_ITCPO'.
ENDIF. "flg_druckmodus NE 1 OR itcpo-tdarmod NE '1'
* Probedruck
* test print
IF flg_probedruck EQ 0. "Probedruck noch nicht erledigt
PERFORM daten_sichern. "test print not yet done
IF flg_schecknum EQ 2.
regud-chect = xxx_regud-chect.
regud-checf = xxx_regud-checf.
ENDIF.
cnt_seiten = 0.
DO par_anzp TIMES.
* Vornumerierte Schecks: Schecknummer hochz�hlen ab 2.Seite
* prenumbered checks: add 1 to check number
IF flg_schecknum EQ 1 AND sy-index GT 1.
hlp_page = sy-index.
PERFORM schecknummer_addieren.
ENDIF.
* Probedruck-Formular starten
* start test print form
CALL FUNCTION 'START_FORM'
EXPORTING
language = hlp_sprache.
* Fenster mit Probedruck schreiben
* write windows with test print
CALL FUNCTION 'WRITE_FORM'
EXPORTING
window = 'INFO'
element = '505'
function = 'APPEND'
EXCEPTIONS
window = 1
element = 2.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
window = 'CHECK'
element = '540'
EXCEPTIONS
window = 1
element = 2.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = hlp_element
EXCEPTIONS
window = 1
element = 2.
IF sy-subrc NE 0.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = '510'
EXCEPTIONS
window = 1
element = 2.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = '514'
EXCEPTIONS
window = 1
element = 2.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = '515'
EXCEPTIONS
window = 1
element = 2.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = hlp_ep_element
function = 'APPEND'
EXCEPTIONS
window = 1
element = 2.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = '530'
function = 'APPEND'
EXCEPTIONS
window = 1
element = 2.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
window = 'TOTAL'
element = '530'
EXCEPTIONS
window = 1
element = 2.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
window = 'INFO'
element = '505'
function = 'DELETE'
EXCEPTIONS
window = 1
element = 2.
* Probedruck-Formular beenden
* End test print
CALL FUNCTION 'END_FORM'
IMPORTING
RESULT = itcpp.
IF itcpp-tdpages EQ 0. "Print via RDI
itcpp-tdpages = 1.
ENDIF.
ADD itcpp-tdpages TO cnt_seiten.
ENDDO.
IF flg_schecknum EQ 1 AND cnt_seiten GT 0.
PERFORM scheckinfo_speichern USING 1.
ENDIF.
PERFORM daten_zurueck.
flg_probedruck = 1. "Probedruck erledigt
ENDIF. "Test print done
PERFORM summenfelder_initialisieren.
* Formular starten
* start check form
CALL FUNCTION 'START_FORM'
EXPORTING
archive_index = toa_dara
language = hlp_sprache.
IF hlp_xhrfo EQ space.
ELSE.
PERFORM hr_formular_lesen.
ENDIF.
* HR-Formular ausgeben
* write HR form
IF hlp_xhrfo NE space.
LOOP AT pform.
IF cnt_zeilen GT t042e-anzpo AND sy-tabix GT t042e-anzpo.
EXIT.
ENDIF.
regud-txthr = pform-linda.
PERFORM scheckavis_zeile.
ENDLOOP.
ENDIF.
flg_diff_bukrs = 0.
ENDIF.
ENDAT.
ENDAT.
IF flg_kein_druck EQ 0.
PERFORM einzelpostenfelder_fuellen.
PERFORM summenfelder_fuellen.
ENDIF.
ENDAT.
IF flg_kein_druck EQ 0.
PERFORM ziffern_in_worten.
IF hlp_xhrfo EQ space.
ENDIF.
* Formular beenden
* End check form
CALL FUNCTION 'END_FORM'
IMPORTING
RESULT = itcpp.
IF itcpp-tdpages EQ 0. "Print via RDI
itcpp-tdpages = 1.
ENDIF.
IF flg_schecknum EQ 1.
cnt_seiten = itcpp-tdpages. "F�r vornumerierte Schecks
ELSE. "For prenumbered checks
cnt_seiten = 1.
ENDIF.
IF flg_schecknum NE 0 AND cnt_seiten GT 0.
PERFORM scheckinfo_speichern USING 2.
ENDIF.
ENDIF.
ENDAT.
IF itcpp-tdspoolid NE 0.
CLEAR tab_ausgabe.
tab_ausgabe-name = t042z-text1.
tab_ausgabe-dataset = itcpp-tddataset.
tab_ausgabe-spoolnr = itcpp-tdspoolid.
tab_ausgabe-immed = par_sofz.
COLLECT tab_ausgabe.
ENDIF.
CLEAR flg_druckmodus.
IF itcpp-tdspoolid NE 0.
CLEAR tab_ausgabe.
tab_ausgabe-name = t042z-text1.
tab_ausgabe-dataset = itcpp-tddataset.
tab_ausgabe-spoolnr = itcpp-tdspoolid.
tab_ausgabe-immed = par_sofz.
COLLECT tab_ausgabe.
ENDIF.
ENDIF.
ENDIF.
ENDAT.
ENDLOOP.
hlp_ep_element = '525'.
ENDFORM. "Scheck
************************************************************************
* *
* subroutines for prenumbered checks *
* *
* subroutine called by / in subroutine *
* ------------------------------------------------------------------- *
* SCHECKDATEN_EINGABE (check data input on screen) SELECTION-SCREEN *
* SCHECKDATEN_PRUEFEN (check data before start) START-OF-SELECTION *
* SCHECKINFO_PRUEFEN (test of check information) GET REGUH *
* SCHECKNUMMERN_SPERREN (enqueue check numbers) END-OF-SELECTION *
* SCHECKNUMMER_ERMITTELN (find out check number) SCHECK *
* SCHECKAVIS_ZEILE (one line on the check advice) SCHECK *
* SCHECKS_ADDIEREN (add 1 to check number) SCHECKAVIS_ZEILE,SCHECK *
* SCHECKS_UMNUMERIEREN (renumber checks) SCHECKNUMMER_ERMITTELN *
* SCHECKINFO_SPEICHERN (store check information) SCHECK *
* SCHECK_ENTWERTEN (void check in restart mode) SCHECKINFO_SPEICHERN *
* SCHECKNUMMERN_ENTSPERREN (dequeue check numbers) END-OF-SELECTION *
* SCHECKDRUCK_MAIL (send mail) SCHECKNUMMERN_SPERREN,SELECTION-SCREEN *
* *
************************************************************************
*----------------------------------------------------------------------*
* FORM SCHECKDATEN_EINGABE *
*----------------------------------------------------------------------*
* Pr�fen der Eingabedaten auf dem Selektionsbild *
* Check the input data on the selection screen *
*----------------------------------------------------------------------*
* P_RCHK Restart-Schecknummer *
* P_STAP Stapel *
* P_INFO Info zum Stapel *
*----------------------------------------------------------------------*
FORM scheckdaten_eingabe USING p_rchk LIKE pcec-checl
p_stap LIKE pcec-stapl
p_info TYPE c.
ELSE. "Vorschlagslauf
"proposal run
IF p_rchk NE space.
SET CURSOR FIELD 'ZW_XVORL'.
MESSAGE e561(fs). "kein Restart bei Vorschlagslauf
ENDIF. "no restart mode if proposal run
p_stap = 0.
p_info = space.
ENDIF.
*----------------------------------------------------------------------*
* FORM SCHECKDATEN_PRUEFEN *
*----------------------------------------------------------------------*
* Pr�fen der Eingabedaten vor der Datenselektion *
* Check the input data before the selection of data *
*----------------------------------------------------------------------*
* P_RCHK Restart-Schecknummer *
* P_STAP Stapel *
*----------------------------------------------------------------------*
FORM scheckdaten_pruefen USING p_rchk LIKE pcec-checl
p_stap LIKE pcec-stapl.
REFRESH tab_check.
flg_schecknum = 1.
flg_pruefung = 1. "Scheckinfo i.a. pr�fen
"check check info (in general)
IF zw_xvorl EQ space AND par_zdru NE space. "Scheckdruck f�r Echtlauf
"check print for a productive run
IF p_rchk NE space. "Restartfall
flg_restart = 1. "restart mode
SELECT * FROM payr
WHERE zbukr EQ zw_zbukr-low
AND hbkid EQ sel_hbki-low
AND hktid EQ sel_hkti-low
AND rzawe IN sel_zawe
AND chect GE p_rchk
AND checf EQ p_rchk. "#EC PORTABLE
ENDSELECT.
CASE payr-voidr.
WHEN 0.
hlp_checf_restart = p_rchk.
WHEN 1. "vollst�ndiger Restart
flg_restart = 2. "complete restart
CALL FUNCTION 'COMPARE_CHECK_NUMBERS'
EXPORTING
i_check1 = payr-checf
i_check2 = payr-chect
IMPORTING
e_distance = par_anzp.
ADD 1 TO par_anzp.
WHEN 2.
hlp_checf_restart = payr-checv.
ENDCASE.
tab_check-sign = 'I'.
tab_check-option = 'BT'.
CALL FUNCTION 'GET_CHECK_INTERVAL'
EXPORTING
i_zbukr = zw_zbukr-low
i_hbkid = sel_hbki-low
i_hktid = sel_hkti-low
i_check = p_rchk
IMPORTING
e_pcec = pcec
EXCEPTIONS
OTHERS = 4.
pcec-checf = p_rchk.
IF sy-subrc NE 0.
CLEAR pcec-fstap.
IF '9' GT 'Z'. "#EC PORTABLE
pcec-chect = '9999999999999'.
ELSE.
pcec-chect = 'ZZZZZZZZZZZZZ'.
ENDIF.
ENDIF.
DO.
tab_check-low = pcec-checf.
tab_check-high = pcec-chect.
APPEND tab_check.
IF pcec-fstap IS INITIAL.
EXIT.
ENDIF.
SELECT SINGLE * FROM pcec
WHERE zbukr EQ pcec-zbukr
AND hbkid EQ pcec-hbkid
AND hktid EQ pcec-hktid
AND stapl EQ pcec-fstap.
IF sy-subrc NE 0.
EXIT.
ENDIF.
ENDDO.
ELSE. "neue Schecks
IF sy-batch NE space. "new checks
CALL FUNCTION 'LOT_CHECK'
EXPORTING
i_zbukr = zw_zbukr-low
i_hbkid = sel_hbki-low
i_hktid = sel_hkti-low
i_stapl = p_stap
IMPORTING
e_stapl = p_stap
EXCEPTIONS
OTHERS = 4.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno WITH sy-msgv1.
STOP.
ENDIF.
ENDIF.
SELECT SINGLE * FROM pcec
WHERE zbukr EQ zw_zbukr-low
AND hbkid EQ sel_hbki-low
AND hktid EQ sel_hkti-low
AND stapl EQ p_stap.
ENDIF.
IMPORT flg_local FROM MEMORY ID 'MFCHKFN0'.
IF sy-subrc EQ 0. "bei Transaktion 'Scheck neu
flg_pruefung = 0. "drucken' Pruefung ausschalten
ENDIF. "no check when 'reprint check'
ENDIF.
*----------------------------------------------------------------------*
* FORM SCHECKINFO_PRUEFEN *
*----------------------------------------------------------------------*
* Pr�fen, ob die Belegnummer bereits in PAYR gespeichert ist *
* test that payment document number is already stored in PAYR *
*----------------------------------------------------------------------*
* keine USING-Parameter *
* no USING-parameters *
*----------------------------------------------------------------------*
FORM scheckinfo_pruefen.
CLEAR payr.
CHECK:
par_zdru NE space, "nur bei Scheckdruck
"only if checks are to be printed
zw_xvorl EQ space, "nur bei Echtlauf
"only after production run
flg_pruefung EQ 1. "nicht beim 'Schecks neu drucken'
"not in transaction reprint check
IF hlp_laufk NE 'P'. "FI-Beleg vorhanden?
SELECT * FROM payr
WHERE zbukr EQ reguh-zbukr
AND vblnr EQ reguh-vblnr
AND gjahr EQ regud-gjahr
AND voidr EQ 0.
ENDSELECT.
sy-msgv1 = reguh-zbukr.
sy-msgv2 = regud-gjahr.
sy-msgv3 = reguh-vblnr.
ELSE. "HR-Abrechnung vorhanden?
IF flg_neud NE 1.
IF reguh-rwbtr EQ 0. "Pr�fung des Grundes f�r ZeroNet
SELECT * FROM tvoid WHERE sytyp EQ 4.
EXIT. "Test that void reason code for
ENDSELECT. "zero net checks exists
IF sy-subrc NE 0.
IF sy-batch EQ space.
MESSAGE a669(fs).
ELSE.
MESSAGE s669(fs).
MESSAGE s549(fs).
flg_selektiert = 0.
STOP.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF NOT reguh-seqnr IS INITIAL.
SELECT * FROM payr
WHERE pernr EQ reguh-pernr
AND seqnr EQ reguh-seqnr
AND btznr EQ reguh-btznr
AND voidr EQ 0.
ENDSELECT.
ELSE. "HR-Sonderfall Stammdatenabschlag
hlp_rwbtr = - reguh-rwbtr.
SELECT * FROM payr
WHERE pernr EQ reguh-pernr
AND seqnr EQ reguh-seqnr
AND btznr EQ reguh-btznr
AND zaldt EQ reguh-zaldt
AND rwbtr EQ hlp_rwbtr
AND waers EQ reguh-waers
AND voidr EQ 0.
ENDSELECT.
ENDIF.
sy-msgv1 = reguh-pernr.
sy-msgv2 = reguh-seqnr.
sy-msgv3 = reguh-btznr.
ENDIF.
IF flg_restart NE 0.
IF NOT payr-chect IN tab_check.
REJECT.
ENDIF.
IF sy-subrc NE 0. "Scheck nicht vorhanden
IF sy-batch EQ space. "check does not exist
MESSAGE a564(fs) WITH sy-msgv1 sy-msgv2 sy-msgv3.
ELSE.
MESSAGE s564(fs) WITH sy-msgv1 sy-msgv2 sy-msgv3.
MESSAGE s549(fs).
flg_selektiert = 0.
STOP.
ENDIF.
ENDIF.
ELSEIF flg_neud EQ 1. "soll Scheck neu gedruckt werden?
IF NOT payr-chect IN tab_check. "is this check to be reprinted?
REJECT.
ELSE.
*payr = payr.
ENDIF.
ELSE.
IF sy-subrc EQ 0. "Scheck bereits vorhanden
"check does exist
CALL FUNCTION 'READ_CUSTOMIZED_MESSAGE'
EXPORTING
i_arbgb = 'FS'
i_dtype = 'A'
i_msgnr = '670'
IMPORTING
e_msgty = sy-msgty.
IF sy-msgty EQ 'A'.
IF sy-batch EQ space.
MESSAGE a670(fs) WITH sy-msgv1 sy-msgv2 sy-msgv3.
ELSE.
MESSAGE s670(fs) WITH sy-msgv1 sy-msgv2 sy-msgv3.
MESSAGE s549(fs).
flg_selektiert = 0.
STOP.
ENDIF.
ELSE.
fimsg-msgid = 'FS'.
fimsg-msgv1 = sy-msgv1.
fimsg-msgv2 = sy-msgv2.
fimsg-msgv3 = sy-msgv3.
PERFORM message USING 670.
REJECT.
ENDIF.
ENDIF.
ENDIF.
DATA:
up_stapl LIKE pcec-stapl,
up_answer(1) TYPE c,
up_subrc LIKE sy-subrc.
*----------------------------------------------------------------------*
* FORM SCHECKNUMMER_ERMITTELN *
*----------------------------------------------------------------------*
* Erste, n�chste bzw. letzte Schecknummer ermitteln *
* find out first, next or last check number *
*----------------------------------------------------------------------*
* TYP = 1 erster benutzter Scheck *
* first used check *
* 2 Scheck (bei Seiten�berlauf nur die erste Seite) *
* check (only first page when overflow) *
* 3 Formularabschlu� *
* summary *
*----------------------------------------------------------------------*
FORM schecknummer_ermitteln USING typ.
ELSE. "Restart
IF typ EQ 1.
CALL FUNCTION 'GET_CHECK_INTERVAL'
EXPORTING
i_zbukr = zw_zbukr-low
i_hbkid = sel_hbki-low
i_hktid = sel_hkti-low
i_check = hlp_checf_restart
IMPORTING
e_pcec = pcec.
pcec-checl = hlp_checf_restart.
regud-checf = pcec-checl. "erste Schecknummer
regud-stapf = pcec-stapl. "first check number
regud-chect = pcec-checl.
regud-stapt = pcec-stapl.
ELSE.
IF hlp_laufk NE 'P'. "FI-Beleg vorhanden
SELECT * FROM payr "Scheck zum Zahlungsbeleg
WHERE zbukr EQ reguh-zbukr "payment document's check
AND vblnr EQ reguh-vblnr
AND gjahr EQ regud-gjahr
AND voidr EQ 0.
ENDSELECT.
ELSE. "HR-Abrechnung vorhanden
IF NOT reguh-seqnr IS INITIAL.
SELECT * FROM payr
WHERE pernr EQ reguh-pernr
AND seqnr EQ reguh-seqnr
AND btznr EQ reguh-btznr
AND voidr EQ 0.
ENDSELECT.
ELSE. "HR-Sonderfall Stammdatenabschlag
hlp_rwbtr = - reguh-rwbtr.
SELECT * FROM payr
WHERE pernr EQ reguh-pernr
AND seqnr EQ reguh-seqnr
AND btznr EQ reguh-btznr
AND zaldt EQ reguh-zaldt
AND rwbtr EQ hlp_rwbtr
AND waers EQ reguh-waers
AND voidr EQ 0.
ENDSELECT.
ENDIF.
ENDIF.
IF typ EQ 2 AND payr-checv NE space.
IF payr-checv NE '*'.
SELECT * FROM payr
WHERE zbukr EQ payr-zbukr
AND hbkid EQ payr-hbkiv
AND hktid EQ payr-hktiv
AND rzawe EQ payr-rzawe
AND chect EQ payr-checv
AND voidr EQ 2.
EXIT.
ENDSELECT.
ELSE.
CALL FUNCTION 'GET_CHECK_INTERVAL'
EXPORTING
i_check = payr-chect
i_hbkid = payr-hbkid
i_hktid = payr-hktid
i_zbukr = payr-zbukr
IMPORTING
E_PCEC = pcec.
* The check might not be last one printed from the lot
pcec-checl = payr-chect.
ENDIF.
hlp_seite = '1'.
*----------------------------------------------------------------------*
* FORM SCHECKAVIS_ZEILE *
*----------------------------------------------------------------------*
* Schreiben einer Zeile des Avis zum Scheck *
* Write one line of the remittance advice of the check *
*----------------------------------------------------------------------*
* keine USING-Parameter *
* no USING-parameters *
*----------------------------------------------------------------------*
FORM scheckavis_zeile.
*----------------------------------------------------------------------*
* FORM SCHECKNUMMER_ADDIEREN *
*----------------------------------------------------------------------*
* Werden zu einem Scheck mehrere Seiten gedruckt (Probedruck oder *
* Seiten�berlauf), so wird ab Seite 2 mit dieser Routine hochgez�hlt *
* If one check has more than 1 page (test or overflow), this routine *
* computes the current check number *
*----------------------------------------------------------------------*
* keine USING-Parameter *
* no USING-parameters *
*----------------------------------------------------------------------*
FORM schecknummer_addieren.
*pcec = pcec.
IF pcec-checl EQ space. "neuer Stapel / new lot
*pcec-checl = *pcec-checf.
hlp_page = hlp_page - 1.
ELSEIF flg_restart NE 0. "Restart
hlp_page = hlp_page - 1.
ENDIF.
CALL FUNCTION 'ADD_N_TO_CHECK_NUMBER'
EXPORTING
i_pcec = *pcec
i_n = hlp_page
IMPORTING
e_pcec = *pcec.
regud-chect = *pcec-checl. "n�chste Schecknummer
regud-stapt = *pcec-stapl. "next check number
*----------------------------------------------------------------------*
* FORM SCHECKS_UMNUMERIEREN *
*----------------------------------------------------------------------*
* Umnumerieren, wenn beim Restart, der nicht alle Schecks neu druckt, *
* Probedrucke angegeben worden sind *
* renumber, if in restart mode test prints are wished and not all *
* checks are to be reprinted *
*----------------------------------------------------------------------*
* keine USING-Parameter *
* no USING-parameters *
*----------------------------------------------------------------------*
FORM schecks_umnumerieren.
DATA: up_mode type c.
CLEAR up_bdc.
up_bdc-program = 'SAPMFCHK'.
up_bdc-dynpro = '400'.
up_bdc-dynbegin = 'X'.
APPEND up_bdc.
CLEAR up_bdc.
up_bdc-fnam = 'PAYR-ZBUKR'.
up_bdc-fval = zw_zbukr-low.
APPEND up_bdc.
CLEAR up_bdc.
up_bdc-fnam = 'PAYR-HBKID'.
up_bdc-fval = sel_hbki-low.
APPEND up_bdc.
CLEAR up_bdc.
up_bdc-fnam = 'PAYR-HKTID'.
up_bdc-fval = sel_hkti-low.
APPEND up_bdc.
CLEAR up_bdc.
up_bdc-fnam = 'PAYR-CHECF'.
up_bdc-fval = hlp_checf_restart.
APPEND up_bdc.
CLEAR up_bdc.
up_bdc-fnam = 'PAYR-CHECT'.
up_bdc-fval = pcec-checl.
APPEND up_bdc.
CLEAR up_bdc.
up_bdc-fnam = 'PAYR-VOIDR'.
up_bdc-fval = '01'.
APPEND up_bdc.
CALL FUNCTION 'GET_CHECK_INTERVAL'
EXPORTING
i_zbukr = zw_zbukr-low
i_hbkid = sel_hbki-low
i_hktid = sel_hkti-low
i_check = hlp_checf_restart
IMPORTING
e_pcec = *pcec.
*pcec-checl = hlp_checf_restart.
CALL FUNCTION 'ADD_N_TO_CHECK_NUMBER'
EXPORTING
i_pcec = *pcec
i_n = par_anzp
IMPORTING
e_pcec = *pcec.
CLEAR up_bdc.
up_bdc-fnam = 'PCEC-CHECF'.
up_bdc-fval = *pcec-checl.
APPEND up_bdc.
CLEAR up_bdc.
up_bdc-fnam = 'BDC_OKCODE'.
up_bdc-fval = '/18'.
APPEND up_bdc.
*----------------------------------------------------------------------*
* FORM SCHECKINFO_SPEICHERN *
*----------------------------------------------------------------------*
* Speichern der Scheckinformationen in PAYR und *
* aktualisieren des Schecknummernstandes in PCEC *
* store check information in PAYR and update the *
* last used number in PCEC *
*----------------------------------------------------------------------*
* TYP = 1 Probedrucke *
* test print *
* 2 Schecks, evtl. mit �berlauf *
* checks, perhaps with overflow *
* 3 Formularabschlu� *
* summary *
*----------------------------------------------------------------------*
FORM scheckinfo_speichern USING typ.
* Probedrucke
* test prints
WHEN 1.
payr-checf = up_checf.
payr-chect = up_chect.
payr-voidr = 1.
payr-voidd = sy-datlo.
payr-voidu = sy-uname.
CALL FUNCTION 'VOID_CHECKS'
EXPORTING
i_payr = payr.
CASE flg_neud.
ENDIF.
UPDATE payr.
* Formularabschlu�
* summary
WHEN 3.
payr-checf = up_checf.
payr-chect = up_chect.
payr-voidr = 3.
payr-voidd = sy-datlo.
payr-voidu = sy-uname.
CALL FUNCTION 'VOID_CHECKS'
EXPORTING
i_payr = payr.
ENDCASE.
ENDIF.
*----------------------------------------------------------------------*
* FORM SCHECK_ENTWERTEN *
*----------------------------------------------------------------------*
* Entwerten der alten Schecks bei Neudruck und Verweis zum neuen Scheck*
* Void old checks in reprint mode and set pointer to new check +
*----------------------------------------------------------------------*
* keine USING-Parameter *
* no USING-parameters *
*----------------------------------------------------------------------*
FORM scheck_entwerten.
IF *payr-checv NE space.
IF *payr-checv NE '*'.
UPDATE payr SET hbkiv = payr-hbkid
hktiv = payr-hktid
checv = payr-chect
WHERE zbukr EQ *payr-zbukr
AND hbkid EQ *payr-hbkiv
AND hktid EQ *payr-hktiv
AND rzawe EQ *payr-rzawe
AND chect EQ *payr-checv.
ELSE.
UPDATE payr SET hbkiv = payr-hbkid
hktiv = payr-hktid
checv = payr-chect
WHERE zbukr EQ *payr-zbukr
AND hbkid EQ *payr-hbkid
AND hktid EQ *payr-hktid
AND rzawe EQ *payr-rzawe
AND checv EQ *payr-chect.
ENDIF.
payr-checv = '*'.
ENDIF.
*payr-hbkiv = payr-hbkid.
*payr-hktiv = payr-hktid.
*payr-checv = payr-chect.
IF *payr-voidr EQ 0.
*payr-voidr = tvoid-voidr.
ENDIF.
*payr-voidd = sy-datlo.
*payr-voidu = sy-uname.
*payr-extrd = 0.
*payr-extrt = 0.
UPDATE *payr.
*----------------------------------------------------------------------*
* FORM SCHECKNUMMERN_ENTSPERREN *
*----------------------------------------------------------------------*
* Entsperren des gedruckten Schecknummernbereichs *
* dequeue check numbers +
*----------------------------------------------------------------------*
* keine USING-Parameter *
* no USING-parameters *
*----------------------------------------------------------------------*
FORM schecknummern_entsperren.
*----------------------------------------------------------------------*
* FORM SCHECKDRUCK_MAIL *
*----------------------------------------------------------------------*
* Im Online-Scheckdruck wird ein Mail versendet, wenn der Druck *
* nicht erfolgreich war *
* Using post + print the user will get a mail if the print was not *
* successfull *
*----------------------------------------------------------------------*
* keine USING-Parameter *
* no USING-parameters *
*----------------------------------------------------------------------*
FORM scheckdruck_mail.
CLEAR:
up_object_hd_change,
up_user,
up_objcont,
up_objhead,
up_objpara,
up_objparb,
up_receivers.
REFRESH:
up_objcont,
up_objhead,
up_objpara,
up_objparb,
up_receivers.