Advertisement
hxxxrz

Untitled

Feb 18th, 2021
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.42 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Номер спецификации: BR_D_024
  3. *& Наименование спецификации: Печатные формы
  4. *& Дата создания: 22.12.2020
  5. *& Проект: Создание печатных форм
  6. *& Разработчик: Федоров К
  7.  
  8. METHOD get_vehwaybill_data.
  9.  
  10. DATA: ls_form TYPE zstm_vehicle_waybill,
  11. lt_tor_root TYPE /scmtms/t_tor_root_k,
  12. lt_tor_stop TYPE /scmtms/t_tor_stop_k,
  13. lt_tor_stop_first TYPE /scmtms/t_tor_stop_k,
  14. lt_mtrl_description TYPE /scmtms/t_mat_description_k,
  15. lt_tor_item_tr TYPE /scmtms/t_tor_item_tr_k,
  16. lt_toritemtrunique_itemcatprd TYPE /scmtms/t_tor_item_tr_k,
  17. lt_toritemtrunique_itemcattur TYPE /scmtms/t_tor_item_tr_k,
  18. lt_sel_opt_f TYPE /bobf/t_frw_query_selparam,
  19. lt_sel_opt_l TYPE /bobf/t_frw_query_selparam,
  20. ls_sel_opt_f LIKE LINE OF lt_sel_opt_f,
  21. ls_sel_opt_l LIKE LINE OF lt_sel_opt_l,
  22. lt_loc_data_f TYPE /scmtms/t_loc_q_elem_result,
  23. lt_loc_data_l TYPE /scmtms/t_loc_q_elem_result,
  24. lv_node_key TYPE /bobf/obm_node_key,
  25. lv_assoc_key TYPE /bobf/obm_assoc_key,
  26. lv_node_key_tel TYPE /bobf/obm_node_key,
  27. lv_assoc_key_telephone TYPE /bobf/obm_assoc_key,
  28. lv_assoc_key_postal_address TYPE /bobf/obm_assoc_key,
  29. lt_bofu_address_postal_address TYPE /bofu/t_addr_postal_addressk,
  30. lt_loc_root_f TYPE /scmtms/t_bo_loc_root_k,
  31. lt_loc_root_l TYPE /scmtms/t_bo_loc_root_k,
  32. lt_drv_root TYPE /scmtms/t_res_lab_root_k,
  33. lt_tras_capa_offer TYPE /scmtms/t_res_quantity_k,
  34. lt_bupa_consignee TYPE /bofu/t_bupa_root_k,
  35. lt_tor_bupa_root TYPE /bofu/t_bupa_root_k,
  36. lt_role TYPE /bofu/t_bupa_role_k,
  37. lt_tor_bupa_ship_root TYPE /bofu/t_bupa_root_k,
  38. lt_bupa_data TYPE /bofu/t_bupa_root_k,
  39. ls_bupa_data LIKE LINE OF lt_bupa_data,
  40. lt_but000 TYPE TABLE OF but000,
  41. lt_but000_bupa_ship TYPE TABLE OF but000,
  42. lt_but000_bupa_consignee TYPE TABLE OF but000,
  43. lt_but000_tor_root TYPE TABLE OF but000,
  44. lt_relationship TYPE /bofu/t_bupa_relship_k,
  45. lt_transp_capa_offer TYPE /scmtms/t_res_quantity_k,
  46. lt_res_root TYPE /scmtms/t_res_root_k,
  47. lt_bofu_address_telephone TYPE /bofu/t_addr_telephonek,
  48. lt_stop_first TYPE /scmtms/t_tor_stop_k,
  49. lt_key_bupa TYPE /bobf/t_frw_key,
  50. ls_key_bupa LIKE LINE OF lt_key_bupa,
  51. lt_role_ship TYPE /bofu/t_bupa_role_k,
  52. lt_bp_root TYPE /bofu/t_bupa_root_k,
  53. ls_selpar TYPE /bobf/s_frw_query_selparam,
  54. lt_selpar TYPE /bobf/t_frw_query_selparam,
  55. go_message TYPE REF TO /bobf/if_frw_message,
  56. ls_bofu_address_telephone_4_1 LIKE LINE OF lt_bofu_address_telephone,
  57. ls_bofu_address_telephone_4_2 LIKE LINE OF lt_bofu_address_telephone,
  58. ls_bofu_address_telephone_6_1 LIKE LINE OF lt_bofu_address_telephone,
  59. ls_bofu_address_telephone_6_2 LIKE LINE OF lt_bofu_address_telephone,
  60. ls_bofu_address_telephone_5_1 LIKE LINE OF lt_bofu_address_telephone,
  61. ls_bofu_address_telephone_5_2 LIKE LINE OF lt_bofu_address_telephone,
  62. ls_bofu_address_telephone_7_1 LIKE LINE OF lt_bofu_address_telephone,
  63. ls_bofu_address_telephone_7_2 LIKE LINE OF lt_bofu_address_telephone,
  64. ls_bofu_address_telephone_42_1 LIKE LINE OF lt_bofu_address_telephone,
  65. ls_bofu_address_telephone_42_2 LIKE LINE OF lt_bofu_address_telephone,
  66. ls_bofu_address_telephone_43_1 LIKE LINE OF lt_bofu_address_telephone,
  67. ls_bofu_address_telephone_43_2 LIKE LINE OF lt_bofu_address_telephone,
  68. ls_bofu_address_telephone_44_1 LIKE LINE OF lt_bofu_address_telephone,
  69. ls_bofu_address_telephone_44_2 LIKE LINE OF lt_bofu_address_telephone,
  70. lt_bofu_addr_tel_sorted LIKE lt_bofu_address_telephone,
  71. lv_date TYPE d,
  72. lv_time TYPE t,
  73. lv_date_result TYPE c LENGTH 11,
  74. lv_zzcargo_condition_i TYPE i,
  75. lv_qua_pcs_val_9 TYPE i,
  76. lv_gro_wei_val_10 TYPE p LENGTH 10 DECIMALS 2,
  77. lt_tor_z_pdf TYPE ztttm_tor_pdf_k,
  78. lt_bupa_common TYPE /bofu/t_bupa_common_k,
  79. lt_bupa_tax_number TYPE /bofu/t_bupa_taxno_k,
  80. lt_t005u TYPE TABLE OF t005u,
  81. lt_but0bk TYPE TABLE OF but0bk,
  82. lt_bnka TYPE TABLE OF bnka,
  83. zzfn_shipper1 TYPE c LENGTH 1000,
  84. zzfn_shipper2 TYPE c LENGTH 1000,
  85. zzname_shipper1 TYPE c LENGTH 1000,
  86. zzname_shipper2 TYPE c LENGTH 1000,
  87. zzname_consignee1 TYPE c LENGTH 1000,
  88. zzname_consignee2 TYPE c LENGTH 1000,
  89. lv_zz14x_priem_gruza_plomba TYPE c LENGTH 1000,
  90. lv_zz14x_priem_gruza_konteiner TYPE c LENGTH 1000,
  91. lt_tor_bo_material TYPE /scmtms/t_mat_root_k,
  92. lt_sapapo_matkey TYPE TABLE OF /sapapo/matkey,
  93. lt_zttm_group_mat_t TYPE TABLE OF zttm_group_mat_t,
  94. lt_loc_postal_address TYPE /bofu/t_addr_postal_addressk,
  95. lt_tor_item_tr_unique TYPE TABLE OF /scmtms/s_tor_item_tr_k,
  96. lt_tor_bo_bupa_consignee TYPE /bofu/t_bupa_root_k,
  97. lt_toritemtr_linkkeysunique TYPE /bobf/t_frw_key_link,
  98. lt_torbomat_linkkeysunique TYPE /bobf/t_frw_key_link,
  99. lt_tor_bo_material_unique LIKE lt_tor_bo_material,
  100. lt_sapapo_matkey_unique LIKE lt_sapapo_matkey,
  101. lt_bofu_address_telephone_5 LIKE lt_bofu_address_telephone,
  102. lt_bofu_addr_postal_addr_5 LIKE lt_bofu_address_postal_address,
  103. lt_bp_common_5 TYPE /bofu/t_bupa_common_k,
  104. lt_bp_tax_number_5 TYPE /bofu/t_bupa_taxno_k,
  105. lt_zz7x_naimenovanie_gruza TYPE STANDARD TABLE OF string,
  106. lv_testing TYPE string,
  107. lv_string_length TYPE i,
  108. lv_zz9x_gruz_massa_brutto TYPE decfloat16,
  109. lv_zz15x_priemgruza_vesbrutto TYPE decfloat16,
  110. lt_bp_postal_address TYPE /bofu/t_addr_postal_addressk,
  111. lt_t005u_11x TYPE TABLE OF t005u,
  112. lt_tor_seal TYPE /scmtms/t_tor_seal_k,
  113. lt_tor_bo_driver TYPE /scmtms/t_res_lab_root_k.
  114.  
  115. *1x поле
  116. mo_tor_srv->retrieve_by_association(
  117. EXPORTING
  118. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  119. it_key = it_tor_key
  120. iv_association = /scmtms/if_tor_c=>sc_association-root-stop_first
  121. iv_fill_data = abap_true
  122. IMPORTING
  123. et_target_key = DATA(lt_tor_stop_first_keys)
  124. et_data = lt_tor_stop_first ).
  125.  
  126. READ TABLE lt_tor_stop_first ASSIGNING FIELD-SYMBOL(<ls_tor_stop_first>) INDEX 1.
  127.  
  128. IF <ls_tor_stop_first> IS ASSIGNED.
  129. CONVERT TIME STAMP <ls_tor_stop_first>-appointment_start TIME ZONE sy-zonlo
  130. INTO DATE lv_date TIME lv_time.
  131.  
  132. CONCATENATE lv_date+6(2) '.' lv_date+4(2) '.' lv_date(4) INTO lv_date_result.
  133.  
  134. ls_form-zz1x_fact_date = lv_date_result.
  135. ENDIF.
  136.  
  137. *2x поле
  138. mo_tor_srv->retrieve(
  139. EXPORTING
  140. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  141. it_key = it_tor_key
  142. iv_fill_data = abap_true
  143. IMPORTING
  144. et_data = lt_tor_root ).
  145.  
  146. READ TABLE lt_tor_root ASSIGNING FIELD-SYMBOL(<ls_tor_root>) INDEX 1.
  147.  
  148. IF <ls_tor_root> IS ASSIGNED.
  149. ls_form-zz2x_nomer_tn = <ls_tor_root>-tor_id.
  150. SHIFT ls_form-zz2x_nomer_tn LEFT DELETING LEADING '0'.
  151. ENDIF.
  152.  
  153. *3x поле, 4x поле; 5x поле - получение, 6x поле - получение
  154. *3x поле, 4x поле
  155. mo_tor_srv->retrieve_by_association(
  156. EXPORTING
  157. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  158. it_key = it_tor_key
  159. iv_association = /scmtms/if_tor_c=>sc_association-root-bupa_ship_root
  160. iv_fill_data = abap_true
  161. IMPORTING
  162. et_target_key = DATA(lt_tor_bupa_ship_keys)
  163. et_data = lt_tor_bupa_ship_root ).
  164.  
  165. mo_bupa_srv->retrieve_by_association(
  166. EXPORTING
  167. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  168. it_key = lt_tor_bupa_ship_keys
  169. iv_association = /bofu/if_bupa_constants=>sc_association-root-common
  170. iv_fill_data = abap_true
  171. IMPORTING
  172. et_data = lt_bupa_common ).
  173.  
  174. mo_bupa_srv->retrieve_by_association(
  175. EXPORTING
  176. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  177. it_key = lt_tor_bupa_ship_keys
  178. iv_association = /bofu/if_bupa_constants=>sc_association-root-tax_number
  179. iv_fill_data = abap_true
  180. IMPORTING
  181. et_data = lt_bupa_tax_number ).
  182.  
  183. mo_tor_srv->retrieve_by_association(
  184. EXPORTING
  185. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  186. it_key = it_tor_key
  187. iv_association = /scmtms/if_tor_c=>sc_association-root-item_tr
  188. iv_fill_data = abap_true
  189. IMPORTING
  190. et_data = lt_tor_item_tr
  191. et_target_key = DATA(lt_tor_item_tr_keys)
  192. et_key_link = DATA(lt_tor_item_tr_link_keys) ).
  193.  
  194. mo_tor_srv->retrieve_by_association(
  195. EXPORTING
  196. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  197. it_key = lt_tor_item_tr_keys
  198. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-itemparty
  199. IMPORTING
  200. et_target_key = DATA(lt_tor_itemparty_keys) ).
  201.  
  202. mo_tor_srv->retrieve_by_association(
  203. EXPORTING
  204. iv_node_key = /scmtms/if_tor_c=>sc_node-itemparty
  205. it_key = lt_tor_itemparty_keys
  206. iv_association = /scmtms/if_tor_c=>sc_association-itemparty-bupa_root
  207. IMPORTING
  208. et_data = lt_tor_bupa_root
  209. et_target_key = DATA(lt_tor_bupa_root_keys) ).
  210.  
  211. mo_bp_srv->retrieve_by_association(
  212. EXPORTING
  213. it_key = lt_tor_bupa_ship_keys
  214. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  215. iv_association = /bofu/if_bupa_constants=>sc_association-root-addressinformation
  216. IMPORTING
  217. et_target_key = DATA(lt_bp_addressinformation_keys) ).
  218.  
  219. mo_bp_srv->retrieve_by_association(
  220. EXPORTING
  221. it_key = lt_bp_addressinformation_keys
  222. iv_node_key = /bofu/if_bupa_constants=>sc_node-addressinformation
  223. iv_association = /bofu/if_bupa_constants=>sc_association-addressinformation-address
  224. IMPORTING
  225. et_target_key = DATA(lt_bp_address_keys) ).
  226.  
  227. /scmtms/cl_common_helper=>get_do_keys_4_rba(
  228. EXPORTING
  229. iv_host_bo_key = /bofu/if_bupa_constants=>sc_bo_key
  230. iv_host_do_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  231. iv_do_node_key = /bofu/if_addr_constants=>sc_node-telephone
  232. iv_do_assoc_key = /bofu/if_addr_constants=>sc_association-root-telephone
  233. IMPORTING
  234. ev_assoc_key = lv_assoc_key_telephone ).
  235.  
  236. mo_bp_srv->retrieve_by_association(
  237. EXPORTING
  238. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  239. iv_association = lv_assoc_key_telephone
  240. iv_fill_data = abap_true
  241. it_key = lt_bp_address_keys
  242. IMPORTING
  243. et_data = lt_bofu_address_telephone ).
  244.  
  245. /scmtms/cl_common_helper=>get_do_keys_4_rba(
  246. EXPORTING
  247. iv_host_bo_key = /bofu/if_bupa_constants=>sc_bo_key
  248. iv_host_do_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  249. iv_do_node_key = /bofu/if_addr_constants=>sc_node-postal_address
  250. iv_do_assoc_key = /bofu/if_addr_constants=>sc_association-root-postal_address
  251. IMPORTING
  252. ev_assoc_key = lv_assoc_key_postal_address ).
  253.  
  254. mo_bp_srv->retrieve_by_association(
  255. EXPORTING
  256. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  257. iv_association = lv_assoc_key_postal_address
  258. iv_fill_data = abap_true
  259. it_key = lt_bp_address_keys
  260. IMPORTING
  261. et_data = lt_bofu_address_postal_address ).
  262.  
  263. READ TABLE lt_bofu_address_postal_address ASSIGNING FIELD-SYMBOL(<ls_bofu_addr_postal_addr_4>) INDEX 1.
  264.  
  265. IF <ls_bofu_addr_postal_addr_4> IS ASSIGNED.
  266. SELECT bezei
  267. FROM t005u
  268. INTO CORRESPONDING FIELDS OF TABLE lt_t005u
  269. WHERE bland EQ <ls_bofu_addr_postal_addr_4>-region AND land1 EQ <ls_bofu_addr_postal_addr_4>-country_code AND t005u~spras = 'R'.
  270. ENDIF.
  271.  
  272. READ TABLE lt_t005u ASSIGNING FIELD-SYMBOL(<ls_t005u>) INDEX 1.
  273. READ TABLE lt_tor_bupa_ship_root ASSIGNING FIELD-SYMBOL(<ls_tor_bupa_ship_root>) INDEX 1.
  274. READ TABLE lt_bupa_common ASSIGNING FIELD-SYMBOL(<ls_bupa_common>) INDEX 1.
  275. READ TABLE lt_bupa_tax_number ASSIGNING FIELD-SYMBOL(<ls_bupa_tax_number>) WITH KEY taxtype = 'RU1'.
  276.  
  277. IF <ls_tor_bupa_ship_root> IS ASSIGNED.
  278. SELECT bankn, banks, bankl
  279. FROM but0bk
  280. INTO CORRESPONDING FIELDS OF TABLE @lt_but0bk
  281. WHERE partner EQ @<ls_tor_bupa_ship_root>-partner.
  282. ENDIF.
  283.  
  284. READ TABLE lt_but0bk ASSIGNING FIELD-SYMBOL(<ls_but0bk>) INDEX 1.
  285.  
  286. IF <ls_but0bk> IS ASSIGNED.
  287. SELECT banka, ort01, bnklz, brnch
  288. FROM bnka
  289. INTO CORRESPONDING FIELDS OF TABLE @lt_bnka
  290. WHERE banks EQ @<ls_but0bk>-banks AND bankl EQ @<ls_but0bk>-bankl.
  291. ENDIF.
  292.  
  293. READ TABLE lt_bnka ASSIGNING FIELD-SYMBOL(<ls_bnka>) INDEX 1.
  294.  
  295. *3x поле
  296. IF <ls_tor_bupa_ship_root> IS ASSIGNED AND <ls_tor_bupa_ship_root>-type = '1'.
  297. READ TABLE lt_bofu_address_telephone INTO ls_bofu_address_telephone_4_1 INDEX 1.
  298. READ TABLE lt_bofu_address_telephone INTO ls_bofu_address_telephone_4_2 INDEX 2.
  299.  
  300. IF <ls_bupa_common> IS ASSIGNED
  301. AND <ls_bupa_tax_number> IS ASSIGNED
  302. AND <ls_t005u> IS ASSIGNED
  303. AND <ls_bofu_addr_postal_addr_4> IS ASSIGNED.
  304. zzfn_shipper1 = |{ <ls_bupa_common>-firstname } { <ls_bupa_common>-lastname } { '; ИНН:' } { <ls_bupa_tax_number>-taxnumber } { '; адрес:' } { <ls_t005u>-bezei } { ',' } { <ls_bofu_addr_postal_addr_4>-district_name } { ',' } {
  305. <ls_bofu_addr_postal_addr_4>-city_name } { ',' } { <ls_bofu_addr_postal_addr_4>-street_name } { <ls_bofu_addr_postal_addr_4>-house_id } { ';' }|.
  306. zzfn_shipper2 = |{ ls_bofu_address_telephone_4_1-normalised_number_text } { ',' } { ls_bofu_address_telephone_4_2-normalised_number_text } { '; Р\С:' } { <ls_but0bk>-bankn } { 'в банке' } { <ls_bnka>-banka } { 'в городе' } { <ls_bnka>-ort01 } {
  307. ', "БИК"' } { <ls_bnka>-bnklz } { ', К\С' } { <ls_bnka>-brnch }|.
  308.  
  309. CONCATENATE zzfn_shipper1 zzfn_shipper2
  310. INTO ls_form-zz3x_gruzootpravitel_fiz SEPARATED BY space.
  311. ENDIF.
  312.  
  313. *4x поле
  314. ELSEIF <ls_tor_bupa_ship_root> IS ASSIGNED AND <ls_tor_bupa_ship_root>-type = '2'.
  315. READ TABLE lt_bofu_address_telephone INTO ls_bofu_address_telephone_6_1 INDEX 1.
  316. READ TABLE lt_bofu_address_telephone INTO ls_bofu_address_telephone_6_2 INDEX 2.
  317.  
  318. IF <ls_bupa_common> IS ASSIGNED
  319. AND <ls_bupa_tax_number> IS ASSIGNED
  320. AND <ls_t005u> IS ASSIGNED
  321. AND <ls_bofu_addr_postal_addr_4> IS ASSIGNED
  322. AND <ls_but0bk> IS ASSIGNED
  323. AND <ls_bnka> IS ASSIGNED.
  324. zzname_shipper1 = |{ <ls_bupa_common>-firstname } { <ls_bupa_common>-lastname } { '; ИНН:' } { <ls_bupa_tax_number>-taxnumber } { '; адрес:' } { <ls_t005u>-bezei } { ',' } { <ls_bofu_addr_postal_addr_4>-district_name } { ',' } {
  325. <ls_bofu_addr_postal_addr_4>-city_name } { ',' } { <ls_bofu_addr_postal_addr_4>-street_name } { <ls_bofu_addr_postal_addr_4>-house_id } { ';' }|.
  326. zzname_shipper2 = |{ ls_bofu_address_telephone_6_1-normalised_number_text } { ',' } { ls_bofu_address_telephone_6_2-normalised_number_text } { '; Р\С:' } { <ls_but0bk>-bankn } { 'в банке' } { <ls_bnka>-banka } { 'в городе' } { <ls_bnka>-ort01 } {
  327. ', "БИК"' } { <ls_bnka>-bnklz } { ', К\С' } { <ls_bnka>-brnch }|.
  328.  
  329. CONCATENATE zzname_shipper1 zzname_shipper2
  330. INTO ls_form-zz4x_gruzootpravitel_yur SEPARATED BY space.
  331. ENDIF.
  332. ENDIF.
  333.  
  334. *5x поле - получение, 6x поле - получение
  335. mo_tor_srv->retrieve_by_association(
  336. EXPORTING
  337. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  338. it_key = lt_tor_item_tr_keys
  339. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-bo_bupa_consignee
  340. iv_fill_data = abap_true
  341. IMPORTING
  342. et_data = lt_tor_bo_bupa_consignee
  343. et_target_key = DATA(lt_tor_bo_bupa_consignee_keys) ).
  344.  
  345. mo_bp_srv->retrieve_by_association(
  346. EXPORTING
  347. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  348. it_key = lt_tor_bo_bupa_consignee_keys
  349. iv_association = /bofu/if_bupa_constants=>sc_association-root-addressinformation
  350. iv_fill_data = abap_false
  351. IMPORTING
  352. et_target_key = DATA(lt_bp_addrinf_5_keys) ).
  353.  
  354. mo_bp_srv->retrieve_by_association(
  355. EXPORTING
  356. iv_node_key = /bofu/if_bupa_constants=>sc_node-addressinformation
  357. it_key = lt_bp_addrinf_5_keys
  358. iv_association = /bofu/if_bupa_constants=>sc_association-addressinformation-address
  359. iv_fill_data = abap_false
  360. IMPORTING
  361. et_target_key = DATA(lt_bp_address_5_keys) ).
  362.  
  363. mo_bp_srv->retrieve_by_association(
  364. EXPORTING
  365. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  366. iv_association = lv_assoc_key_telephone
  367. iv_fill_data = abap_true
  368. it_key = lt_bp_address_5_keys
  369. IMPORTING
  370. et_data = lt_bofu_address_telephone_5 ).
  371.  
  372. mo_bp_srv->retrieve_by_association(
  373. EXPORTING
  374. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  375. iv_association = lv_assoc_key_postal_address
  376. iv_fill_data = abap_true
  377. it_key = lt_bp_address_5_keys
  378. IMPORTING
  379. et_data = lt_bofu_addr_postal_addr_5 ).
  380.  
  381. mo_bp_srv->retrieve_by_association(
  382. EXPORTING
  383. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  384. it_key = lt_tor_bo_bupa_consignee_keys
  385. iv_association = /bofu/if_bupa_constants=>sc_association-root-common
  386. iv_fill_data = abap_true
  387. IMPORTING
  388. et_data = lt_bp_common_5 ).
  389.  
  390. mo_bp_srv->retrieve_by_association(
  391. EXPORTING
  392. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  393. it_key = lt_tor_bo_bupa_consignee_keys
  394. iv_association = /bofu/if_bupa_constants=>sc_association-root-tax_number
  395. iv_fill_data = abap_true
  396. IMPORTING
  397. et_data = lt_bp_tax_number_5 ).
  398.  
  399. SELECT bezei, land1, bland
  400. FROM t005u
  401. INTO CORRESPONDING FIELDS OF TABLE @lt_t005u
  402. WHERE spras EQ 'R'.
  403.  
  404. SELECT partner, bankn, banks, bankl
  405. FROM but0bk
  406. INTO CORRESPONDING FIELDS OF TABLE @lt_but0bk.
  407.  
  408. SELECT banka, ort01, bnklz, brnch, banks, bankl
  409. FROM bnka
  410. INTO CORRESPONDING FIELDS OF TABLE @lt_bnka.
  411.  
  412. *7x поле - получение
  413. mo_tor_srv->retrieve_by_association(
  414. EXPORTING
  415. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  416. it_key = lt_tor_item_tr_keys
  417. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-bo_material
  418. iv_fill_data = abap_true
  419. IMPORTING
  420. et_data = lt_tor_bo_material
  421. et_target_key = DATA(lt_tor_bo_material_keys)
  422. et_key_link = DATA(lt_tor_bo_material_link_keys) ).
  423.  
  424. mo_mtrl_srv->retrieve_by_association(
  425. EXPORTING
  426. iv_node_key = /scmtms/if_mat_c=>sc_node-root
  427. it_key = lt_tor_bo_material_keys
  428. iv_association = /scmtms/if_mat_c=>sc_association-root-description
  429. iv_fill_data = abap_true
  430. IMPORTING
  431. et_data = lt_mtrl_description ).
  432.  
  433. SELECT matnr matkl
  434. FROM /sapapo/matkey
  435. INTO CORRESPONDING FIELDS OF TABLE lt_sapapo_matkey
  436. FOR ALL ENTRIES IN lt_tor_bo_material
  437. WHERE /sapapo/matkey~matnr EQ lt_tor_bo_material-internal_id.
  438.  
  439. SELECT matkl wgbez
  440. FROM zttm_group_mat_t
  441. INTO CORRESPONDING FIELDS OF TABLE lt_zttm_group_mat_t
  442. FOR ALL ENTRIES IN lt_sapapo_matkey
  443. WHERE zttm_group_mat_t~matkl EQ lt_sapapo_matkey-matkl.
  444.  
  445. *10x поле - заполнение
  446. IF <ls_tor_bupa_ship_root> IS ASSIGNED AND <ls_tor_bupa_ship_root>-type = '1'.
  447. ls_form-zz10x_priem_gruza = ls_form-zz3x_gruzootpravitel_fiz.
  448. ELSEIF <ls_tor_bupa_ship_root> IS ASSIGNED AND <ls_tor_bupa_ship_root>-type = '2'.
  449. ls_form-zz10x_priem_gruza = ls_form-zz4x_gruzootpravitel_yur.
  450. ENDIF.
  451.  
  452. *11x поле - получение
  453. mo_tor_srv->retrieve_by_association(
  454. EXPORTING
  455. iv_node_key = /scmtms/if_tor_c=>sc_node-stop
  456. it_key = lt_tor_stop_first_keys
  457. iv_association = /scmtms/if_tor_c=>sc_association-stop-bo_loc_log
  458. iv_fill_data = abap_false
  459. IMPORTING
  460. et_target_key = DATA(lt_tor_bo_loc_log_keys) ).
  461.  
  462. mo_loc_srv->retrieve_by_association(
  463. EXPORTING
  464. iv_node_key = /scmtms/if_location_c=>sc_node-root
  465. it_key = lt_tor_bo_loc_log_keys
  466. iv_association = /scmtms/if_location_c=>sc_association-root-geographical_information
  467. iv_fill_data = abap_false
  468. IMPORTING
  469. et_target_key = DATA(lt_loc_geo_info_keys) ).
  470.  
  471. mo_loc_srv->retrieve_by_association(
  472. EXPORTING
  473. iv_node_key = /scmtms/if_location_c=>sc_node-geographical_information
  474. it_key = lt_loc_geo_info_keys
  475. iv_association = /scmtms/if_location_c=>sc_association-geographical_information-address
  476. iv_fill_data = abap_false
  477. IMPORTING
  478. et_target_key = DATA(lt_loc_address_keys) ).
  479.  
  480. /scmtms/cl_common_helper=>get_do_keys_4_rba(
  481. EXPORTING
  482. iv_host_bo_key = /bofu/if_bupa_constants=>sc_bo_key
  483. iv_host_do_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  484. iv_do_node_key = /bofu/if_addr_constants=>sc_node-postal_address
  485. iv_do_assoc_key = /bofu/if_addr_constants=>sc_association-root-postal_address
  486. IMPORTING
  487. ev_assoc_key = DATA(lv_assoc_key_11x) ).
  488.  
  489. mo_bp_srv->retrieve_by_association(
  490. EXPORTING
  491. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  492. iv_association = lv_assoc_key_11x
  493. iv_fill_data = abap_true
  494. it_key = lt_loc_address_keys
  495. IMPORTING
  496. et_data = lt_bp_postal_address ).
  497.  
  498. READ TABLE lt_bp_postal_address ASSIGNING FIELD-SYMBOL(<ls_bp_postal_address>) INDEX 1.
  499.  
  500. IF <ls_bp_postal_address> IS ASSIGNED.
  501. SELECT bezei
  502. FROM t005u
  503. INTO CORRESPONDING FIELDS OF TABLE lt_t005u_11x
  504. WHERE bland EQ <ls_bp_postal_address>-region AND land1 EQ <ls_bp_postal_address>-country_code AND t005u~spras = 'R'.
  505. ENDIF.
  506.  
  507. READ TABLE lt_t005u_11x ASSIGNING FIELD-SYMBOL(<ls_t005u_11x>) INDEX 1.
  508.  
  509. *11x поле - заполнение
  510. ls_form-zz11x_priem_gruza_fakt_adres = |{ <ls_t005u_11x>-bezei } { ',' } { <ls_bp_postal_address>-city_name } { ',' } { <ls_bp_postal_address>-street_name } { <ls_bp_postal_address>-house_id }|.
  511.  
  512. *12x поле - заполнение
  513. ls_form-zz12x_priem_gruza_fakt_pogruzk = ls_form-zz1x_fact_date.
  514.  
  515. *13x поле - заполнение
  516. ls_form-zz13x_priem_gruza_fakt_pogruzk = ls_form-zz1x_fact_date.
  517.  
  518. *14x поле - получение
  519. mo_tor_srv->retrieve_by_association(
  520. EXPORTING
  521. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  522. it_key = it_tor_key
  523. iv_association = /scmtms/if_tor_c=>sc_association-root-seal
  524. iv_fill_data = abap_true
  525. IMPORTING
  526. et_data = lt_tor_seal ).
  527.  
  528. *17x поле - получение
  529. mo_tor_srv->retrieve_by_association(
  530. EXPORTING
  531. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  532. it_key = lt_tor_item_tr_keys
  533. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-bo_driver
  534. iv_fill_data = abap_true
  535. IMPORTING
  536. et_data = lt_tor_bo_driver ).
  537.  
  538. *17x поле - заполнение
  539. READ TABLE lt_tor_bo_driver ASSIGNING FIELD-SYMBOL(<ls_tor_bo_driver>) INDEX 1.
  540.  
  541. IF <ls_tor_bo_driver> IS ASSIGNED.
  542. ls_form-zz17x_priem_gruza_fio_voditely = |{ <ls_tor_bo_driver>-name_first } { <ls_tor_bo_driver>-name_last }|.
  543. ENDIF.
  544.  
  545. **********************************************************************
  546.  
  547. APPEND LINES OF lt_tor_item_tr TO lt_tor_item_tr_unique.
  548.  
  549. DELETE lt_tor_item_tr_unique WHERE consignee_id IS INITIAL.
  550.  
  551. SORT lt_tor_item_tr_unique BY consignee_id key.
  552.  
  553. DELETE ADJACENT DUPLICATES FROM lt_tor_item_tr_unique COMPARING consignee_id.
  554.  
  555. LOOP AT lt_tor_item_tr_unique INTO DATA(ls_tor_item_tr_unique).
  556.  
  557. *5x поле - заполнение, 6x поле - заполнение
  558. READ TABLE lt_tor_bo_bupa_consignee ASSIGNING FIELD-SYMBOL(<ls_tor_bo_bupa_consignee>) WITH KEY partner = ls_tor_item_tr_unique-consignee_id.
  559.  
  560. IF <ls_tor_bo_bupa_consignee> IS ASSIGNED.
  561. READ TABLE lt_bofu_addr_postal_addr_5 ASSIGNING FIELD-SYMBOL(<ls_bofu_addr_postal_addr_5>) WITH KEY root_key = <ls_tor_bo_bupa_consignee>-key.
  562. ENDIF.
  563.  
  564. IF <ls_bofu_addr_postal_addr_5> IS ASSIGNED.
  565. READ TABLE lt_t005u ASSIGNING FIELD-SYMBOL(<ls_t005u_5>) WITH KEY land1 = <ls_bofu_addr_postal_addr_5>-country_code bland = <ls_bofu_addr_postal_addr_5>-region.
  566. ENDIF.
  567.  
  568. READ TABLE lt_but0bk ASSIGNING FIELD-SYMBOL(<ls_but0bk_5>) WITH KEY partner = ls_tor_item_tr_unique-consignee_id.
  569.  
  570. IF <ls_but0bk_5> IS ASSIGNED.
  571. READ TABLE lt_bnka ASSIGNING FIELD-SYMBOL(<ls_bnka_5>) WITH KEY banks = <ls_but0bk_5>-banks bankl = <ls_but0bk_5>-bankl.
  572. ENDIF.
  573.  
  574. IF <ls_tor_bo_bupa_consignee> IS ASSIGNED.
  575. READ TABLE lt_bp_common_5 ASSIGNING FIELD-SYMBOL(<ls_bupa_common_5>) WITH KEY parent_key = <ls_tor_bo_bupa_consignee>-key.
  576. READ TABLE lt_bp_tax_number_5 ASSIGNING FIELD-SYMBOL(<ls_bupa_tax_number_5>) WITH KEY parent_key = <ls_tor_bo_bupa_consignee>-key taxtype = 'RU1'.
  577. ENDIF.
  578.  
  579. IF lt_bofu_address_telephone_5 IS NOT INITIAL AND <ls_tor_bo_bupa_consignee> IS ASSIGNED.
  580. LOOP AT lt_bofu_address_telephone_5 INTO DATA(ls_bofu_address_telephone).
  581. IF ls_bofu_address_telephone-root_key = <ls_tor_bo_bupa_consignee>-key.
  582. APPEND ls_bofu_address_telephone TO lt_bofu_addr_tel_sorted.
  583. ENDIF.
  584. ENDLOOP.
  585.  
  586. READ TABLE lt_bofu_addr_tel_sorted INTO ls_bofu_address_telephone_5_1 INDEX 1.
  587. READ TABLE lt_bofu_addr_tel_sorted INTO ls_bofu_address_telephone_5_2 INDEX 2.
  588. ENDIF.
  589.  
  590. *5x поле - заполнение
  591. IF <ls_tor_bo_bupa_consignee> IS ASSIGNED AND <ls_tor_bo_bupa_consignee>-type = '1'.
  592. IF <ls_bupa_common_5> IS ASSIGNED
  593. AND <ls_bupa_tax_number_5> IS ASSIGNED
  594. AND <ls_t005u> IS ASSIGNED
  595. AND <ls_bofu_addr_postal_addr_5> IS ASSIGNED
  596. AND <ls_but0bk_5> IS ASSIGNED
  597. AND <ls_bnka_5> IS ASSIGNED.
  598. zzfn_shipper1 = |{ <ls_bupa_common_5>-firstname } { <ls_bupa_common_5>-lastname } { '; ИНН:' } { <ls_bupa_tax_number_5>-taxnumber } { '; адрес:' } { <ls_t005u_5>-bezei } { ',' } { <ls_bofu_addr_postal_addr_5>-district_name } { ',' } {
  599. <ls_bofu_addr_postal_addr_5>-city_name } { ',' } { <ls_bofu_addr_postal_addr_5>-street_name } { <ls_bofu_addr_postal_addr_5>-house_id } { ';' }|.
  600. zzfn_shipper2 = |{ ls_bofu_address_telephone_5_1-normalised_number_text } { ',' } { ls_bofu_address_telephone_5_2-normalised_number_text } { '; Р\С:' } { <ls_but0bk_5>-bankn } { 'в банке' } { <ls_bnka_5>-banka } { 'в городе' } {
  601. <ls_bnka_5>-ort01 } { ', "БИК"' } { <ls_bnka_5>-bnklz } { ', К\С' } { <ls_bnka_5>-brnch }|.
  602.  
  603. CONCATENATE zzfn_shipper1 zzfn_shipper2
  604. INTO ls_form-zz5x_gruzopoluchatel_fiz SEPARATED BY space.
  605. ENDIF.
  606.  
  607. *6x поле - заполнение
  608. ELSEIF <ls_tor_bo_bupa_consignee> IS ASSIGNED AND <ls_tor_bo_bupa_consignee>-type = '2'.
  609. IF <ls_bupa_common_5> IS ASSIGNED
  610. AND <ls_bupa_tax_number_5> IS ASSIGNED
  611. AND <ls_t005u_5> IS ASSIGNED
  612. AND <ls_bofu_addr_postal_addr_5> IS ASSIGNED
  613. AND <ls_but0bk_5> IS ASSIGNED
  614. AND <ls_bnka_5> IS ASSIGNED.
  615. zzname_consignee1 = |{ <ls_bupa_common_5>-firstname } { <ls_bupa_common_5>-lastname } { '; ИНН:' } { <ls_bupa_tax_number_5>-taxnumber } { '; адрес:' } { <ls_t005u_5>-bezei } { ',' } { <ls_bofu_addr_postal_addr_5>-district_name } { ',' } {
  616. <ls_bofu_addr_postal_addr_5>-city_name } { ',' } { <ls_bofu_addr_postal_addr_5>-street_name } { <ls_bofu_addr_postal_addr_5>-house_id } { ';' }|.
  617. zzname_consignee2 = |{ ls_bofu_address_telephone_5_1-normalised_number_text } { ',' } { ls_bofu_address_telephone_5_2-normalised_number_text } { '; Р\С:' } { <ls_but0bk_5>-bankn } { 'в банке' } { <ls_bnka_5>-banka } { 'в городе' } {
  618. <ls_bnka_5>-ort01 } { ', "БИК"' } { <ls_bnka_5>-bnklz } { ', К\С' } { <ls_bnka_5>-brnch }|.
  619.  
  620. CONCATENATE zzname_consignee1 zzname_consignee2
  621. INTO ls_form-zz6x_gruzopoluchatel_yur SEPARATED BY space.
  622. ENDIF.
  623. ENDIF.
  624.  
  625. *7x поле - заполнение
  626. LOOP AT lt_tor_item_tr INTO DATA(ls_tor_item_tr).
  627. IF ls_tor_item_tr-consignee_id = ls_tor_item_tr_unique-consignee_id AND ls_tor_item_tr-item_cat = 'PRD'.
  628. APPEND ls_tor_item_tr TO lt_toritemtrunique_itemcatprd.
  629. ENDIF.
  630. ENDLOOP.
  631.  
  632. DELETE ADJACENT DUPLICATES FROM lt_toritemtrunique_itemcatprd COMPARING ALL FIELDS.
  633.  
  634. LOOP AT lt_toritemtrunique_itemcatprd INTO DATA(ls_toritemtrunique_itemcatprd).
  635. LOOP AT lt_tor_item_tr_link_keys INTO DATA(ls_tor_item_tr_link_keys).
  636. IF ls_tor_item_tr_link_keys-target_key = ls_toritemtrunique_itemcatprd-key.
  637. APPEND ls_tor_item_tr_link_keys TO lt_toritemtr_linkkeysunique.
  638. ENDIF.
  639. ENDLOOP.
  640. ENDLOOP.
  641.  
  642. DELETE ADJACENT DUPLICATES FROM lt_toritemtr_linkkeysunique.
  643.  
  644. LOOP AT lt_toritemtr_linkkeysunique INTO DATA(ls_toritemtr_linkkeysunique).
  645. LOOP AT lt_tor_bo_material_link_keys INTO DATA(ls_tor_bo_material_link_keys).
  646. IF ls_tor_bo_material_link_keys-source_key = ls_toritemtr_linkkeysunique-target_key.
  647. APPEND ls_tor_bo_material_link_keys TO lt_torbomat_linkkeysunique.
  648. ENDIF.
  649. ENDLOOP.
  650. ENDLOOP.
  651.  
  652. DELETE ADJACENT DUPLICATES FROM lt_torbomat_linkkeysunique.
  653.  
  654. LOOP AT lt_torbomat_linkkeysunique INTO ls_toritemtr_linkkeysunique.
  655. LOOP AT lt_tor_bo_material INTO DATA(ls_tor_bo_material).
  656. IF ls_tor_bo_material-key = ls_toritemtr_linkkeysunique-target_key.
  657. APPEND ls_tor_bo_material TO lt_tor_bo_material_unique.
  658. ENDIF.
  659. ENDLOOP.
  660. ENDLOOP.
  661.  
  662. DELETE ADJACENT DUPLICATES FROM lt_tor_bo_material_unique.
  663.  
  664. LOOP AT lt_tor_bo_material_unique INTO DATA(ls_tor_bo_material_unique).
  665. LOOP AT lt_sapapo_matkey INTO DATA(ls_sapapo_matkey).
  666. IF ls_sapapo_matkey-matnr = ls_tor_bo_material_unique-internal_id.
  667. APPEND ls_sapapo_matkey TO lt_sapapo_matkey_unique.
  668. ENDIF.
  669. ENDLOOP.
  670. ENDLOOP.
  671.  
  672. DELETE ADJACENT DUPLICATES FROM lt_sapapo_matkey_unique.
  673.  
  674. LOOP AT lt_sapapo_matkey_unique INTO DATA(ls_sapapo_matkey_unique).
  675. LOOP AT lt_zttm_group_mat_t INTO DATA(ls_zttm_group_mat_t).
  676. IF ls_zttm_group_mat_t-matkl = ls_sapapo_matkey_unique-matkl.
  677. APPEND ls_zttm_group_mat_t-wgbez TO lt_zz7x_naimenovanie_gruza.
  678. ENDIF.
  679. ENDLOOP.
  680. ENDLOOP.
  681.  
  682. SORT lt_zz7x_naimenovanie_gruza.
  683.  
  684. DELETE ADJACENT DUPLICATES FROM lt_zz7x_naimenovanie_gruza.
  685.  
  686. LOOP AT lt_zz7x_naimenovanie_gruza INTO DATA(ls_zz7x_naimenovanie_gruza).
  687. IF ls_zz7x_naimenovanie_gruza IS NOT INITIAL.
  688. ls_form-zz7x_naimenovanie_gruza = |{ ls_zz7x_naimenovanie_gruza } { ',' } { ls_form-zz7x_naimenovanie_gruza }|.
  689. ENDIF.
  690. ENDLOOP.
  691.  
  692. IF ls_form-zz7x_naimenovanie_gruza IS NOT INITIAL.
  693. lv_string_length = strlen( ls_form-zz7x_naimenovanie_gruza ) - 1.
  694. ls_form-zz7x_naimenovanie_gruza = ls_form-zz7x_naimenovanie_gruza+0(lv_string_length).
  695. ENDIF.
  696.  
  697. *9x поле - заполнение
  698. LOOP AT lt_toritemtrunique_itemcatprd INTO ls_toritemtrunique_itemcatprd.
  699. lv_zz9x_gruz_massa_brutto = ls_toritemtrunique_itemcatprd-gro_wei_val + lv_zz9x_gruz_massa_brutto.
  700. ENDLOOP.
  701.  
  702. ls_form-zz9x_gruz_massa_brutto = |{ lv_zz9x_gruz_massa_brutto } { ls_toritemtrunique_itemcatprd-gro_wei_uni }|.
  703.  
  704. *14x поле - заполнение
  705. LOOP AT lt_tor_item_tr INTO ls_tor_item_tr.
  706. IF ls_tor_item_tr-consignee_id = ls_tor_item_tr_unique-consignee_id AND ls_tor_item_tr-item_cat = 'TUR'.
  707. APPEND ls_tor_item_tr TO lt_toritemtrunique_itemcattur.
  708. ENDIF.
  709. ENDLOOP.
  710.  
  711. LOOP AT lt_tor_seal INTO DATA(ls_tor_seal).
  712. IF ls_tor_seal-party_id = ls_tor_item_tr_unique-consignee_id.
  713. lv_zz14x_priem_gruza_plomba = |{ 'Пломба №' } { ls_tor_seal-seal_number }|.
  714. ENDIF.
  715. ENDLOOP.
  716.  
  717. LOOP AT lt_toritemtrunique_itemcattur INTO DATA(ls_toritemtrunique_itemcattur).
  718. IF ls_toritemtrunique_itemcattur-res_id IS NOT INITIAL.
  719. lv_zz14x_priem_gruza_konteiner = |{ lv_zz14x_priem_gruza_konteiner } { 'контейнер №' } { ls_toritemtrunique_itemcattur-res_id } { ',' }|.
  720. ENDIF.
  721. ENDLOOP.
  722.  
  723. IF lv_zz14x_priem_gruza_konteiner IS NOT INITIAL.
  724. lv_zz14x_priem_gruza_konteiner = |{ '\' } { lv_zz14x_priem_gruza_konteiner }|.
  725.  
  726. lv_string_length = strlen( lv_zz14x_priem_gruza_konteiner ) - 1.
  727. lv_zz14x_priem_gruza_konteiner = lv_zz14x_priem_gruza_konteiner+0(lv_string_length).
  728.  
  729. ENDIF.
  730.  
  731. ls_form-zz14x_priem_gruza_plomba_konte = |{ lv_zz14x_priem_gruza_plomba } { ' ' } { lv_zz14x_priem_gruza_konteiner }|.
  732.  
  733. *15x поле - заполнение
  734. ls_form-zz15x_priemgruza_vesbrutto = ls_form-zz9x_gruz_massa_brutto.
  735.  
  736. *16x поле - заполнение
  737.  
  738.  
  739.  
  740. CLEAR lt_bofu_addr_tel_sorted.
  741. CLEAR lt_toritemtrunique_itemcatprd.
  742. CLEAR lt_toritemtr_linkkeysunique.
  743. CLEAR lt_torbomat_linkkeysunique.
  744. CLEAR lt_tor_bo_material_unique.
  745. CLEAR lt_sapapo_matkey_unique.
  746. CLEAR lt_zz7x_naimenovanie_gruza.
  747. CLEAR lt_toritemtrunique_itemcattur.
  748.  
  749. CLEAR lv_zz9x_gruz_massa_brutto.
  750. CLEAR ls_form-zz7x_naimenovanie_gruza.
  751. ENDLOOP.
  752.  
  753. MOVE-CORRESPONDING ls_form TO es_form.
  754. ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement