Webdynpro 1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

METHOD APPROVE_REQUEST .

* declarations for context navigation


DATA lo_zhr_approve_travel TYPE REF TO if_wd_context_node.
DATA lo_importing TYPE REF TO if_wd_context_node.

DATA : lv_workitem_id TYPE swr_struct-workitemid,


lv_zopmode TYPE zopmode,
lv_n_advance TYPE ptrv_sum_advanc,
LV_COMMENTS TYPE CHAR255.

* get all involved child nodes


lo_zhr_approve_travel = wd_context->get_child_node( wd_this-
>wdctx_zhr_approve_travel ).

lo_importing = lo_zhr_approve_travel->get_child_node( wd_this-


>wdctx_importing ).

* get input from context


lo_importing->get_attribute(
EXPORTING
name = `WORKITEM_ID`
IMPORTING
value = lv_workitem_id ).

lo_importing->get_attribute(
EXPORTING
name = `ZOPMODE`
IMPORTING
value = lv_zopmode ).

lo_importing->get_attribute(
EXPORTING
name = `N_ADVANCE`
IMPORTING
value = lv_n_advance ).

lo_importing->get_attribute(
EXPORTING
name = `COMMENTS`
IMPORTING
value = lv_COMMENTS ).

* the invocation - errors are always fatal !!!


CALL FUNCTION 'ZHRESSF_TRAVEL_RQUEST_APPROVE'
EXPORTING
workitem_id = lv_workitem_id
zopmode = lv_zopmode
n_advance = lv_n_advance
COMMENTS = LV_COMMENTS.

ENDMETHOD.
FUNCTION zhressf_travel_rquest_approve.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(WORKITEM_ID) TYPE SWR_STRUCT-WORKITEMID
*" REFERENCE(ZOPMODE) TYPE ZOPMODE
*" REFERENCE(N_ADVANCE) TYPE PTRV_SUM_ADVANC OPTIONAL
*" REFERENCE(COMMENTS) TYPE CHAR255 OPTIONAL
*" EXPORTING
*" VALUE(PERNR) TYPE PERNR_D
*" VALUE(ENAME) TYPE EMNAM
*" VALUE(TRIPNO) TYPE REINR
*" VALUE(BEGDA) TYPE BEGDA
*" VALUE(ENDDA) TYPE ENDDA
*" VALUE(REASON) TYPE RKUNDE
*" VALUE(LOCATION) TYPE RZIELORT
*" VALUE(COUNTRY) LIKE T706O-TEXT25
*" VALUE(ADVANCE) TYPE PTRV_SUM_ADVANC
*" VALUE(CURRENCY) TYPE WAERS
*" VALUE(ADD_DEST) TYPE ZHRESS_ADD_DEST
*" VALUE(FLAG) TYPE CHAR1
*" VALUE(TRIP_HISTORY) TYPE ZTEMP_TRIP_HISTORY
*" VALUE(HIDE_FLAG) TYPE WDUI_VISIBILITY
*" VALUE(REQUEST_EXPENSE) TYPE CHAR1
*" VALUE(EXPENSE_DETAIL) TYPE ZTRAV_EXP_TAB
*"----------------------------------------------------------------------

TABLES : pcl1.

DATA: BEGIN OF te-key. "Schlüssel TE-Cluster


INCLUDE STRUCTURE ptp00.
DATA: END OF te-key.

DATA: BEGIN OF ote-version. "TE-Version auf PCL1


INCLUDE STRUCTURE ptk01.
DATA: END OF ote-version.

DATA: BEGIN OF te-version, "TE-Version Datenbeschreibung


saprl LIKE ote-version-saprl,
* numbr like ote-version-numbr value '01', "version till 2.2Z
* numbr like ote-version-numbr value '02', "version till 3.1Z
numbr LIKE ote-version-numbr VALUE '03', "version for 4.0
END OF te-version.
* advances
DATA: BEGIN OF vsch OCCURS 5. "Tabelle Vorschüsse
INCLUDE STRUCTURE ptk08.
DATA: END OF vsch.

* history of trip
DATA: BEGIN OF aend OCCURS 10. "Tabelle Status/Änderer
INCLUDE STRUCTURE ptk11.
DATA: END OF aend.
* status of trip
DATA: BEGIN OF statu . "Status der Reise
INCLUDE STRUCTURE ptk12.
DATA: END OF statu.

DATA : rp-imp-te-subrc LIKE sy-subrc.


*data for cluster updation

DATA :lv_perio TYPE ptrv_perio-perio,


lv_pdvrs TYPE ptrv_perio-pdvrs.

DATA : lwa_vsch TYPE ptk08,


lwa_statu TYPE ptk12,
lwa_aend TYPE ptk11.

DATA : gw_shdr TYPE ptrv_shdr.


DEFINE rp-exp-c1-te.
set extended check off. "MAWK070411
pcl1-aedtm = sy-datum.
pcl1-uname = sy-uname.
pcl1-pgmid = sy-repid.
unpack te-version-numbr to pcl1-versn.
export te-version
vsch
aend
statu
to database pcl1(te)
id te-key.
set extended check on. "MAWK070411
END-OF-DEFINITION.

DEFINE rp-imp-c1-te.
set extended check off. "MAWK070411
import te-version to ote-version
vsch
from database pcl1(te)
* Begin of note 980127
* id te-key.
id te-key
accepting padding
accepting truncation.
* End of note 980127
rp-imp-te-subrc = sy-subrc.
set extended check on. "MAWK070411
END-OF-DEFINITION.

DATA : lwa_ptrv_perio TYPE ptrv_perio.

DATA : lv_pernr TYPE pernr_d,


lv_ename TYPE emnam,
lv_tripno TYPE reinr,
lv_begda TYPE begda,
lv_endda TYPE endda,
lv_reason TYPE rkunde,
lv_location TYPE rzielort,
lv_country TYPE t706o-text25,
lv_advance TYPE ptrv_sum_advanc,
lv_currency TYPE waers,
lv_flag TYPE char1,
lv_hide_flag TYPE wdui_visibility,
lwa_trip_history TYPE zsemp_trip_history,
lv_request_expense TYPE char1.

DATA : wa_expense_detail TYPE ztrav_exp.


DATA : lt_expense_detail TYPE ztrav_exp_tab.

DATA : swt_cont TYPE TABLE OF swr_cont,


wa TYPE swr_cont,
lwa_container TYPE swr_cont,
ltab_container TYPE TABLE OF swr_cont.

DATA : lv_temp TYPE string,


lv_temp1 TYPE string.

CASE zopmode.
WHEN 'READ'.
CALL FUNCTION 'SAP_WAPI_READ_CONTAINER'
EXPORTING
workitem_id = workitem_id
language = sy-langu
user = sy-uname
TABLES
simple_container = swt_cont.

IF sy-subrc = 0.
READ TABLE swt_cont INTO wa WITH KEY element = 'PERNR'.
IF sy-subrc = 0.
lv_pernr = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'TRIPNO'.


IF sy-subrc = 0.
lv_tripno = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'BEGDA'.


IF sy-subrc = 0.
lv_begda = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'ENDDA'.


IF sy-subrc = 0.
lv_endda = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'REASON'.


IF sy-subrc = 0.
lv_reason = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'LOCATION'.


IF sy-subrc = 0.
lv_location = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'COUNTRY'.


IF sy-subrc = 0.
lv_country = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'ADVANCE'.


IF sy-subrc = 0.
lv_advance = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'CURRENCY'.


IF sy-subrc = 0.
lv_currency = wa-value.
ENDIF.

LOOP AT swt_cont INTO wa WHERE element = 'ADD_DEST'.

APPEND wa-value TO add_dest.

ENDLOOP.

READ TABLE swt_cont INTO wa WITH KEY element = 'REQUEST_EXPENSE'.

IF sy-subrc = 0.
lv_request_expense = wa-value.
ENDIF.

IF lv_request_expense <> 'E'.

LOOP AT swt_cont INTO wa WHERE element = 'TRIP_HISTORY'.

CLEAR lwa_trip_history.
*VORSC
*WAERS

MOVE wa-value(10) TO lwa_trip_history-reinr.


MOVE wa-value+10 TO lv_temp.
SPLIT lv_temp AT '.' INTO : lv_temp lv_temp1.
MOVE lv_temp1+2 TO lwa_trip_history-waers.
CONCATENATE lv_temp '.' lv_temp1(2) INTO lv_temp.
MOVE lv_temp TO lwa_trip_history-vorsc.

APPEND lwa_trip_history TO trip_history.

ENDLOOP.

READ TABLE swt_cont INTO wa WITH KEY element = 'FLAG'.


IF sy-subrc = 0.
lv_flag = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'HIDE_FLAG'.


IF sy-subrc = 0.
lv_hide_flag = wa-value.
ENDIF.

ENDIF.

IF lv_request_expense = 'E'.

SELECT * FROM ptrv_srec INTO CORRESPONDING FIELDS OF TABLE lt_exp


ense_detail
WHERE pernr = lv_pernr
AND reinr = lv_tripno.

LOOP AT lt_expense_detail INTO wa_expense_detail.

SELECT SINGLE sptxt FROM t706b5 INTO wa_expense_detail-sptxt


WHERE spras = 'EN'
AND spkzl = wa_expense_detail-exp_type.

APPEND wa_expense_detail TO expense_detail.


ENDLOOP.
ENDIF.

SELECT SINGLE ename


FROM pa0001
INTO lv_ename
WHERE pernr = lv_pernr
AND begda <= sy-datum
AND endda >= sy-datum.

pernr = lv_pernr.
ename = lv_ename.
tripno = lv_tripno.
begda = lv_begda.
endda = lv_endda.
reason = lv_reason.
location = lv_location.
country = lv_country.
advance = lv_advance.
currency = lv_currency.
flag = lv_flag.
hide_flag = lv_hide_flag.
request_expense = lv_request_expense.

ENDIF.

WHEN 'APPR'.

CALL FUNCTION 'SAP_WAPI_READ_CONTAINER'


EXPORTING
workitem_id = workitem_id
language = sy-langu
user = sy-uname
TABLES
simple_container = swt_cont.

IF sy-subrc = 0.

READ TABLE swt_cont INTO wa WITH KEY element = 'PERNR'.


IF sy-subrc = 0.
lv_pernr = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'TRIPNO'.


IF sy-subrc = 0.
lv_tripno = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'ADVANCE'.


IF sy-subrc = 0.
lv_advance = wa-value.
ENDIF.

READ TABLE swt_cont INTO wa WITH KEY element = 'REQUSET_EXPENSE'.

IF sy-subrc = 0.
lv_request_expense = wa-value.
ENDIF.

ENDIF.

IF lv_request_expense <> 'E'.


IF lv_advance <> n_advance.

SELECT SINGLE perio pdvrs


FROM ptrv_perio
INTO (lv_perio, lv_pdvrs)
WHERE pernr = lv_pernr
AND reinr = lv_tripno.

*Update Cluster
*key of cluster
te-key-pernr = lv_pernr.
te-key-reinr = lv_tripno.
te-key-perio = lv_perio.
te-key-pdvrs = lv_pdvrs.

*import cluster

rp-imp-c1-te.

SELECT SINGLE * FROM ptrv_perio


INTO lwa_ptrv_perio
WHERE pernr = lv_pernr
AND reinr = lv_tripno.
* modify advance
READ TABLE vsch INDEX '1' INTO lwa_vsch.

lwa_vsch-vorsc = lv_advance * '-1'.


lwa_vsch-vorhw = lwa_vsch-vorsc.
lwa_vsch-datvs = sy-datum.
APPEND lwa_vsch TO vsch.

lwa_vsch-vorsc = n_advance.
lwa_vsch-vorhw = lwa_vsch-vorsc.
lwa_vsch-datvs = sy-datum.
APPEND lwa_vsch TO vsch.

* vsch-VORSC = '500'.
* vsch-VORHW = vsch-vorsc.
* l_sum = l_sum + vsch-VORSC.
* MODIFY vsch TRANSPORTING vorsc vorhw.
* ENDLOOP.
CLEAR lwa_statu.
*update trip status in cluster
* lwa_statu-druck = lwa_ptrv_perio-druck.
* lwa_statu-antrg = lwa_ptrv_perio-antrg.
* lwa_statu-abrec = lwa_ptrv_perio-abrec.
* lwa_statu-ueblg = lwa_ptrv_perio-ueblg.
* lwa_statu-uebrf = lwa_ptrv_perio-uebrf.
* lwa_statu-uebdt = lwa_ptrv_perio-uebdt.

statu-druck = lwa_ptrv_perio-druck.
statu-antrg = lwa_ptrv_perio-antrg.
statu-abrec = lwa_ptrv_perio-abrec.
statu-ueblg = lwa_ptrv_perio-ueblg.
statu-uebrf = lwa_ptrv_perio-uebrf.
statu-uebdt = lwa_ptrv_perio-uebdt.
*APPEND lwa_statu TO statu.
CLEAR lwa_aend.
* update trip chnages

lwa_aend-datum = sy-datum.
lwa_aend-uzeit = sy-uzeit.
lwa_aend-uname = sy-uname.
lwa_aend-repid = sy-repid.
lwa_aend-druck = lwa_ptrv_perio-druck.
lwa_aend-antrg = lwa_ptrv_perio-antrg.
lwa_aend-abrec = lwa_ptrv_perio-abrec.
lwa_aend-ueblg = lwa_ptrv_perio-ueblg.
lwa_aend-uebrf = lwa_ptrv_perio-uebrf.
lwa_aend-uebdt = lwa_ptrv_perio-uebdt.
lwa_aend-runid = '0000000000'.
lwa_aend-statu = ''.

APPEND lwa_aend TO aend.


*export cluster
rp-exp-c1-te.

*update table
SELECT SINGLE * FROM ptrv_shdr INTO gw_shdr WHERE pernr = te-key-
pernr
AND reinr = te-key-reinr
AND perio = te-key-perio
AND seqno = '01'.

IF sy-subrc EQ 0.
gw_shdr-sum_advanc = n_advance.
gw_shdr-sum_payout = n_advance.
MODIFY ptrv_shdr FROM gw_shdr. "TRANSPORTING SUM_ADVANC.
ENDIF.
ENDIF.

ENDIF.

lwa_container-element = 'STATUS'.
lwa_container-value = '1'.

APPEND lwa_container TO ltab_container.

lwa_container-element = 'COMMENT'.
lwa_container-value = comments.

APPEND lwa_container TO ltab_container.

CALL FUNCTION 'SAP_WAPI_WORKITEM_COMPLETE'


EXPORTING
workitem_id = workitem_id
actual_agent = sy-uname
language = sy-langu
set_obsolet = ' '
do_commit = 'X'
do_callback_in_background = 'X'
* IFS_XML_CONTAINER =
* IMPORTING
* RETURN_CODE =
* NEW_STATUS =
TABLES
simple_container = ltab_container
* MESSAGE_LINES =
* MESSAGE_STRUCT =
.

WHEN 'REJ'.

lwa_container-element = 'STATUS'.
lwa_container-value = '2'.

APPEND lwa_container TO ltab_container.

lwa_container-element = 'COMMENT'.
lwa_container-value = comments.

APPEND lwa_container TO ltab_container.

CALL FUNCTION 'SAP_WAPI_WORKITEM_COMPLETE'


EXPORTING
workitem_id = workitem_id
actual_agent = sy-uname
language = sy-langu
set_obsolet = ' '
do_commit = 'X'
do_callback_in_background = 'X'
* IFS_XML_CONTAINER =
* IMPORTING
* RETURN_CODE =
* NEW_STATUS =
TABLES
simple_container = ltab_container
* MESSAGE_LINES =
* MESSAGE_STRUCT =
.

WHEN 'SBFC'.

lwa_container-element = 'STATUS'.
lwa_container-value = '3'.
APPEND lwa_container TO ltab_container.

lwa_container-element = 'COMMENT'.
lwa_container-value = comments.

APPEND lwa_container TO ltab_container.

CALL FUNCTION 'SAP_WAPI_WORKITEM_COMPLETE'


EXPORTING
workitem_id = workitem_id
actual_agent = sy-uname
language = sy-langu
set_obsolet = ' '
do_commit = 'X'
do_callback_in_background = 'X'
* IFS_XML_CONTAINER =
* IMPORTING
* RETURN_CODE =
* NEW_STATUS =
TABLES
simple_container = ltab_container
* MESSAGE_LINES =
* MESSAGE_STRUCT =
.
ENDCASE.

ENDFUNCTION.
METHOD display_request .
* declarations for context navigation
DATA lo_zhr_disp_request TYPE REF TO if_wd_context_node.
DATA lo_exporting TYPE REF TO if_wd_context_node.
DATA lo_importing_1 TYPE REF TO if_wd_context_node.

DATA lo_advance TYPE REF TO if_wd_context_node.


DATA lo_table_node TYPE REF TO if_wd_context_node.

DATA lo_table TYPE REF TO if_wd_context_node.


DATA lo_trip_history TYPE REF TO if_wd_context_node.
DATA lo_expense_detail TYPE REF TO if_wd_context_node.

DATA : lv_pernr TYPE pernr_d,


lv_ename TYPE emnam,
lv_tripno TYPE reinr,
lv_begda TYPE begda,
lv_endda TYPE endda,
lv_reason TYPE rkunde,
lv_location TYPE rzielort,
lv_country TYPE t706o-text25,
lv_advance TYPE ptrv_sum_advanc,
lv_currency TYPE waers,
lt_add_dest TYPE wd_this->elements_table,
lt_trip_history TYPE wd_this->elements_trip_history,
lv_flag TYPE char1,
lv_hide_flag TYPE wdui_visibility,
lv_request_expense TYPE char1,
lwa_add_dest like line of lt_add_dest,
lt_add_dest_f type zhress_add_dest,
wa_add_dest_f like line of lt_add_dest_f.

DATA : lwa_trip_history LIKE LINE OF lt_trip_history,


lt_trip_history_f TYPE ztemp_trip_history,
wa_trip_history_f LIKE LINE OF lt_trip_history_f.

DATA : lt_expense_detail TYPE wd_this->elements_expense_detail,


lwa_expense_detail LIKE LINE OF lt_expense_detail,
lt_expense_detail_f TYPE ztrav_exp_tab,
wa_expense_detail_f LIKE LINE OF lt_expense_detail_f.

DATA : lv_workitem_id TYPE swr_struct-workitemid,


lv_zopmode TYPE zopmode.

* get all involved child nodes


lo_zhr_disp_request = wd_context->get_child_node( wd_this-
>wdctx_zhr_disp_request ).
lo_exporting = lo_zhr_disp_request->get_child_node( wd_this-
>wdctx_exporting ).
lo_importing_1 = lo_zhr_disp_request->get_child_node( wd_this-
>wdctx_importing_1 ).
lo_advance = wd_context->get_child_node( wd_this->wdctx_advance_node ).
lo_table = lo_zhr_disp_request->get_child_node( wd_this->wdctx_table ).
lo_trip_history = lo_zhr_disp_request->get_child_node( wd_this-
>wdctx_trip_history ).
lo_table_node = wd_context->get_child_node( wd_this->wdctx_table_node ).
lo_expense_detail = lo_zhr_disp_request->get_child_node( wd_this-
>wdctx_expense_detail ).

* get input from context


lo_importing_1->get_attribute(
EXPORTING
name = `WORKITEM_ID`
IMPORTING
value = lv_workitem_id ).

CALL FUNCTION 'ZHRESSF_TRAVEL_RQUEST_APPROVE'


EXPORTING
workitem_id = lv_workitem_id
zopmode = 'READ'
IMPORTING
pernr = lv_pernr
ename = lv_ename
tripno = lv_tripno
begda = lv_begda
endda = lv_endda
reason = lv_reason
location = lv_location
country = lv_country
advance = lv_advance
currency = lv_currency
add_dest = lt_add_dest_f
flag = lv_flag
trip_history = lt_trip_history_f
hide_flag = lv_hide_flag
request_expense = lv_request_expense
expense_detail = lt_expense_detail_f.

* store output to context


lo_exporting->set_attribute(
EXPORTING
name = `PERNR`
value = lv_pernr ).
lo_exporting->set_attribute(
EXPORTING
name = `ENAME`
value = lv_ename ).
lo_exporting->set_attribute(
EXPORTING
name = `TRIPNO`
value = lv_tripno ).
lo_exporting->set_attribute(
EXPORTING
name = `ENDDA`
value = lv_endda ).
lo_exporting->set_attribute(
EXPORTING
name = `BEGDA`
value = lv_begda ).
lo_exporting->set_attribute(
EXPORTING
name = `REASON`
value = lv_reason ).
lo_exporting->set_attribute(
EXPORTING
name = `LOCATION`
value = lv_location ).
lo_exporting->set_attribute(
EXPORTING
name = `COUNTRY`
value = lv_country ).
lo_exporting->set_attribute(
EXPORTING
name = `ADVANCE`
value = lv_advance ).
lo_exporting->set_attribute(
EXPORTING
name = `CURRENCY`
value = lv_currency ).

LOOP AT lt_add_dest_f INTO wa_add_dest_f.


MOVE wa_add_dest_f TO lwa_add_dest-add_dest.
APPEND lwa_add_dest TO lt_add_dest.
ENDLOOP.

CALL METHOD lo_table->bind_table


EXPORTING
new_items = lt_add_dest
set_initial_elements = abap_true
.

IF lv_request_expense <> 'E'.


LOOP AT lt_trip_history_f INTO wa_trip_history_f.

MOVE wa_trip_history_f-reinr TO lwa_trip_history-reinr.


MOVE wa_trip_history_f-vorsc TO lwa_trip_history-vorsc.
MOVE wa_trip_history_f-waers TO lwa_trip_history-waers.

APPEND lwa_trip_history TO lt_trip_history.


ENDLOOP.

CALL METHOD lo_trip_history->bind_table


EXPORTING
new_items = lt_trip_history
set_initial_elements = abap_true
.

lo_table_node->set_attribute(
name = 'HIDE_TRIP_HISTORY'
value = '02' ).
lo_table_node->set_attribute(
name = 'HIDE_EXPENSE_DETAIL'
value = '01' ).

ENDIF.

IF lv_request_expense = 'E'.
LOOP AT lt_expense_detail_f INTO wa_expense_detail_f.

MOVE wa_expense_detail_f-seqno TO lwa_expense_detail-seqno.


MOVE wa_expense_detail_f-exp_type TO lwa_expense_detail-exp_type.
MOVE wa_expense_detail_f-sptxt TO lwa_expense_detail-sptxt.
MOVE wa_expense_detail_f-rec_amount TO lwa_expense_detail-rec_amount.
MOVE wa_expense_detail_f-rec_curr TO lwa_expense_detail-rec_curr.
MOVE wa_expense_detail_f-rec_rate TO lwa_expense_detail-rec_rate.
MOVE wa_expense_detail_f-loc_amount TO lwa_expense_detail-loc_amount.
MOVE wa_expense_detail_f-loc_curr TO lwa_expense_detail-loc_curr.

APPEND lwa_expense_detail TO lt_expense_detail.


ENDLOOP.

CALL METHOD lo_expense_detail->bind_table


EXPORTING
new_items = lt_expense_detail
set_initial_elements = abap_true
.

lo_table_node->set_attribute(
name = 'HIDE_TRIP_HISTORY'
value = '01' ).

lo_table_node->set_attribute(
name = 'HIDE_EXPENSE_DETAIL'
value = '02' ).

ENDIF.

IF lv_country <> 'Ind' AND lv_country <> 'India'.


lo_advance->set_attribute(
name = 'ENABLE_ADVANCE'
value = abap_false ).
ELSEIF lv_flag = 1.
lo_advance->set_attribute(
name = 'ENABLE_ADVANCE'
value = abap_true ).
ENDIF.
ENDMETHOD.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy