Advertisement
hxxxrz

Untitled

Mar 2nd, 2021
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 50.44 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_form TYPE TABLE OF zstm_vehicle_waybill,
  12. lt_tor_root TYPE /scmtms/t_tor_root_k,
  13. lt_tor_stop TYPE /scmtms/t_tor_stop_k,
  14. lt_tor_stop_first TYPE /scmtms/t_tor_stop_k,
  15. lt_mtrl_description TYPE /scmtms/t_mat_description_k,
  16. lt_tor_item_tr TYPE /scmtms/t_tor_item_tr_k,
  17. lt_toritemtrunique_itemcatprd TYPE /scmtms/t_tor_item_tr_k,
  18. lt_toritemtrunique_itemcattur TYPE /scmtms/t_tor_item_tr_k,
  19. lt_sel_opt_f TYPE /bobf/t_frw_query_selparam,
  20. lt_sel_opt_l TYPE /bobf/t_frw_query_selparam,
  21. ls_sel_opt_f LIKE LINE OF lt_sel_opt_f,
  22. ls_sel_opt_l LIKE LINE OF lt_sel_opt_l,
  23. lt_loc_data_f TYPE /scmtms/t_loc_q_elem_result,
  24. lt_loc_data_l TYPE /scmtms/t_loc_q_elem_result,
  25. lv_node_key TYPE /bobf/obm_node_key,
  26. lv_assoc_key TYPE /bobf/obm_assoc_key,
  27. lv_node_key_tel TYPE /bobf/obm_node_key,
  28. lv_assoc_key_telephone TYPE /bobf/obm_assoc_key,
  29. lv_assoc_key_postal_address TYPE /bobf/obm_assoc_key,
  30. lt_bofu_address_postal_address TYPE /bofu/t_addr_postal_addressk,
  31. lt_loc_root_f TYPE /scmtms/t_bo_loc_root_k,
  32. lt_loc_root_l TYPE /scmtms/t_bo_loc_root_k,
  33. lt_drv_root TYPE /scmtms/t_res_lab_root_k,
  34. lt_tras_capa_offer TYPE /scmtms/t_res_quantity_k,
  35. lt_bupa_consignee TYPE /bofu/t_bupa_root_k,
  36. lt_tor_bupa_root TYPE /bofu/t_bupa_root_k,
  37. lt_role TYPE /bofu/t_bupa_role_k,
  38. lt_tor_bupa_ship_root TYPE /bofu/t_bupa_root_k,
  39. lt_bupa_data TYPE /bofu/t_bupa_root_k,
  40. ls_bupa_data LIKE LINE OF lt_bupa_data,
  41. lt_but000 TYPE TABLE OF but000,
  42. lt_but000_bupa_ship TYPE TABLE OF but000,
  43. lt_but000_bupa_consignee TYPE TABLE OF but000,
  44. lt_but000_tor_root TYPE TABLE OF but000,
  45. lt_relationship TYPE /bofu/t_bupa_relship_k,
  46. lt_transp_capa_offer TYPE /scmtms/t_res_quantity_k,
  47. lt_res_root TYPE /scmtms/t_res_root_k,
  48. lt_bofu_address_telephone TYPE /bofu/t_addr_telephonek,
  49. lt_stop_first TYPE /scmtms/t_tor_stop_k,
  50. lt_key_bupa TYPE /bobf/t_frw_key,
  51. ls_key_bupa LIKE LINE OF lt_key_bupa,
  52. lt_role_ship TYPE /bofu/t_bupa_role_k,
  53. lt_bp_root TYPE /bofu/t_bupa_root_k,
  54. ls_selpar TYPE /bobf/s_frw_query_selparam,
  55. lt_selpar TYPE /bobf/t_frw_query_selparam,
  56. go_message TYPE REF TO /bobf/if_frw_message,
  57. ls_bofu_address_telephone_4_1 LIKE LINE OF lt_bofu_address_telephone,
  58. ls_bofu_address_telephone_4_2 LIKE LINE OF lt_bofu_address_telephone,
  59. ls_bofu_address_telephone_6_1 LIKE LINE OF lt_bofu_address_telephone,
  60. ls_bofu_address_telephone_6_2 LIKE LINE OF lt_bofu_address_telephone,
  61. ls_bofu_address_telephone_5_1 LIKE LINE OF lt_bofu_address_telephone,
  62. ls_bofu_address_telephone_5_2 LIKE LINE OF lt_bofu_address_telephone,
  63. ls_bofu_address_telephone_7_1 LIKE LINE OF lt_bofu_address_telephone,
  64. ls_bofu_address_telephone_7_2 LIKE LINE OF lt_bofu_address_telephone,
  65. ls_bofu_address_telephone_42_1 LIKE LINE OF lt_bofu_address_telephone,
  66. ls_bofu_address_telephone_42_2 LIKE LINE OF lt_bofu_address_telephone,
  67. ls_bofu_address_telephone_43_1 LIKE LINE OF lt_bofu_address_telephone,
  68. ls_bofu_address_telephone_43_2 LIKE LINE OF lt_bofu_address_telephone,
  69. ls_bofu_address_telephone_44_1 LIKE LINE OF lt_bofu_address_telephone,
  70. ls_bofu_address_telephone_44_2 LIKE LINE OF lt_bofu_address_telephone,
  71. ls_bofu_addr_telephone_23_1 LIKE LINE OF lt_bofu_address_telephone,
  72. ls_bofu_addr_telephone_23_2 LIKE LINE OF lt_bofu_address_telephone,
  73. lt_bofu_addr_tel_sorted LIKE lt_bofu_address_telephone,
  74. lv_date TYPE d,
  75. lv_time TYPE t,
  76. lv_date_result TYPE c LENGTH 11,
  77. lv_zzcargo_condition_i TYPE i,
  78. lv_qua_pcs_val_9 TYPE i,
  79. lv_gro_wei_val_10 TYPE p LENGTH 10 DECIMALS 2,
  80. lt_tor_z_pdf TYPE ztttm_tor_pdf_k,
  81. lt_bupa_common TYPE /bofu/t_bupa_common_k,
  82. lt_bupa_tax_number TYPE /bofu/t_bupa_taxno_k,
  83. lt_t005u TYPE TABLE OF t005u,
  84. lt_but0bk TYPE TABLE OF but0bk,
  85. lt_bnka TYPE TABLE OF bnka,
  86. zzfn_shipper1 TYPE c LENGTH 1000,
  87. zzfn_shipper2 TYPE c LENGTH 1000,
  88. zzname_shipper1 TYPE c LENGTH 1000,
  89. zzname_shipper2 TYPE c LENGTH 1000,
  90. zzname_consignee1 TYPE c LENGTH 1000,
  91. zzname_consignee2 TYPE c LENGTH 1000,
  92. lv_zz14x_priem_gruza_plomba TYPE c LENGTH 1000,
  93. lv_zz14x_priem_gruza_konteiner TYPE c LENGTH 1000,
  94. lv_zz26x_reg_nomer_ts TYPE c LENGTH 1000,
  95. lv_zz26x_reg_nomer_pricep TYPE c LENGTH 1000,
  96. lt_tor_bo_material TYPE /scmtms/t_mat_root_k,
  97. lt_sapapo_matkey TYPE TABLE OF /sapapo/matkey,
  98. lt_zttm_group_mat_t TYPE TABLE OF zttm_group_mat_t,
  99. lt_loc_postal_address TYPE /bofu/t_addr_postal_addressk,
  100. lt_tor_item_tr_unique TYPE TABLE OF /scmtms/s_tor_item_tr_k,
  101. lt_tor_bo_bupa_consignee TYPE /bofu/t_bupa_root_k,
  102. lt_toritemtr_linkkeysunique TYPE /bobf/t_frw_key_link,
  103. lt_torbomat_linkkeysunique TYPE /bobf/t_frw_key_link,
  104. lt_tor_bo_material_unique LIKE lt_tor_bo_material,
  105. lt_sapapo_matkey_unique LIKE lt_sapapo_matkey,
  106. lt_bofu_address_telephone_5 LIKE lt_bofu_address_telephone,
  107. lt_bofu_addr_postal_addr_5 LIKE lt_bofu_address_postal_address,
  108. lt_bp_common_5 TYPE /bofu/t_bupa_common_k,
  109. lt_bp_tax_number_5 TYPE /bofu/t_bupa_taxno_k,
  110. lt_zz7x_naimenovanie_gruza TYPE STANDARD TABLE OF string,
  111. lv_testing TYPE string,
  112. lv_string_length TYPE i,
  113. lv_zz9x_gruz_massa_brutto TYPE decfloat16,
  114. lv_zz15x_priemgruza_vesbrutto TYPE decfloat16,
  115. lt_bp_postal_address TYPE /bofu/t_addr_postal_addressk,
  116. lt_t005u_11x TYPE TABLE OF t005u,
  117. lt_tor_seal TYPE /scmtms/t_tor_seal_k,
  118. lt_tor_bo_driver TYPE /scmtms/t_res_lab_root_k,
  119. lt_tor_bo_resource TYPE /scmtms/t_res_root_k,
  120. lt_splr_common TYPE /bofu/t_bupa_common_k,
  121. lt_tor_bo_tsp_root TYPE /bofu/t_bupa_root_k,
  122. lt_splr_tax_number TYPE /bofu/t_bupa_taxno_k,
  123. lt_bofu_addr_post_addr_18 LIKE lt_bofu_address_postal_address,
  124. lt_bofu_addr_postal_addr_23 LIKE lt_bofu_address_postal_address,
  125. lt_t005u_23x TYPE TABLE OF t005u,
  126. lt_bofu_addr_telephone_23 LIKE lt_bofu_address_telephone,
  127. lt_tor_item_tr_unique_dri LIKE lt_tor_item_tr_unique,
  128. lt_tor_bo_loc_log_18 TYPE /scmtms/t_bo_loc_root_k,
  129. lt_tor_stop_18_keys TYPE /bobf/t_frw_key,
  130. lt_tor_item_tr_item_cat_dri LIKE lt_tor_item_tr,
  131. lt_tor_boloclog18keys_unique TYPE /bobf/t_frw_key,
  132. lt_loc_address_18 TYPE /bofu/t_addr_addressi_k,
  133. lt_loc_address_18_unique LIKE lt_loc_address_18,
  134. lt_pos_address TYPE /bofu/t_addr_postal_addressk,
  135. lt_bupa_taxnum TYPE /bofu/t_bupa_taxno_k,
  136. lt_bp_taxnum TYPE /bofu/t_bupa_taxno_k,
  137. lt_bupa_pos_address TYPE /bofu/t_addr_postal_addressk,
  138. lt_bupa_addrinfo TYPE /bofu/t_bupa_adrinfo_k,
  139. lt_bupa_address TYPE /bofu/t_addr_addressi_k,
  140. lt_telephone TYPE /bofu/t_addr_telephonek,
  141. zzvehicle_param TYPE c LENGTH 100,
  142. lv_qua_pcs_val_all type i.
  143.  
  144. *1x поле
  145. mo_tor_srv->retrieve_by_association(
  146. EXPORTING
  147. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  148. it_key = it_tor_key
  149. iv_association = /scmtms/if_tor_c=>sc_association-root-stop_first
  150. iv_fill_data = abap_true
  151. IMPORTING
  152. et_target_key = DATA(lt_tor_stop_first_keys)
  153. et_data = lt_tor_stop_first ).
  154.  
  155. READ TABLE lt_tor_stop_first INTO DATA(ls_tor_stop_first) INDEX 1.
  156.  
  157. CONVERT TIME STAMP ls_tor_stop_first-appointment_start TIME ZONE sy-zonlo
  158. INTO DATE lv_date TIME lv_time.
  159.  
  160. CONCATENATE lv_date+6(2) '.' lv_date+4(2) '.' lv_date(4) INTO lv_date_result.
  161.  
  162. ls_form-zz1x_actual_shipment_date = lv_date_result.
  163.  
  164. *2x поле
  165. mo_tor_srv->retrieve(
  166. EXPORTING
  167. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  168. it_key = it_tor_key
  169. iv_fill_data = abap_true
  170. IMPORTING
  171. et_data = lt_tor_root ).
  172.  
  173. READ TABLE lt_tor_root INTO DATA(ls_tor_root) INDEX 1.
  174.  
  175. ls_form-zz2x_bill_of_lading_num = ls_tor_root-tor_id.
  176. SHIFT ls_form-zz2x_bill_of_lading_num LEFT DELETING LEADING '0'.
  177.  
  178. *3x поле, 4x поле; 5x поле - получение, 6x поле - получение
  179. *3x поле, 4x поле
  180. mo_tor_srv->retrieve_by_association(
  181. EXPORTING
  182. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  183. it_key = it_tor_key
  184. iv_association = /scmtms/if_tor_c=>sc_association-root-bupa_ship_root
  185. iv_fill_data = abap_true
  186. IMPORTING
  187. et_target_key = DATA(lt_tor_bupa_ship_keys)
  188. et_data = lt_tor_bupa_ship_root ).
  189.  
  190. mo_bupa_srv->retrieve_by_association(
  191. EXPORTING
  192. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  193. it_key = lt_tor_bupa_ship_keys
  194. iv_association = /bofu/if_bupa_constants=>sc_association-root-common
  195. iv_fill_data = abap_true
  196. IMPORTING
  197. et_data = lt_bupa_common ).
  198.  
  199. mo_bupa_srv->retrieve_by_association(
  200. EXPORTING
  201. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  202. it_key = lt_tor_bupa_ship_keys
  203. iv_association = /bofu/if_bupa_constants=>sc_association-root-tax_number
  204. iv_fill_data = abap_true
  205. IMPORTING
  206. et_data = lt_bupa_tax_number ).
  207.  
  208. mo_tor_srv->retrieve_by_association(
  209. EXPORTING
  210. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  211. it_key = it_tor_key
  212. iv_association = /scmtms/if_tor_c=>sc_association-root-item_tr
  213. iv_fill_data = abap_true
  214. IMPORTING
  215. et_data = lt_tor_item_tr
  216. et_target_key = DATA(lt_tor_item_tr_keys)
  217. et_key_link = DATA(lt_tor_item_tr_link_keys) ).
  218.  
  219. mo_tor_srv->retrieve_by_association(
  220. EXPORTING
  221. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  222. it_key = lt_tor_item_tr_keys
  223. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-itemparty
  224. IMPORTING
  225. et_target_key = DATA(lt_tor_itemparty_keys) ).
  226.  
  227. mo_tor_srv->retrieve_by_association(
  228. EXPORTING
  229. iv_node_key = /scmtms/if_tor_c=>sc_node-itemparty
  230. it_key = lt_tor_itemparty_keys
  231. iv_association = /scmtms/if_tor_c=>sc_association-itemparty-bupa_root
  232. IMPORTING
  233. et_data = lt_tor_bupa_root
  234. et_target_key = DATA(lt_tor_bupa_root_keys) ).
  235.  
  236. mo_bp_srv->retrieve_by_association(
  237. EXPORTING
  238. it_key = lt_tor_bupa_ship_keys
  239. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  240. iv_association = /bofu/if_bupa_constants=>sc_association-root-addressinformation
  241. IMPORTING
  242. et_target_key = DATA(lt_bp_addressinformation_keys) ).
  243.  
  244. mo_bp_srv->retrieve_by_association(
  245. EXPORTING
  246. it_key = lt_bp_addressinformation_keys
  247. iv_node_key = /bofu/if_bupa_constants=>sc_node-addressinformation
  248. iv_association = /bofu/if_bupa_constants=>sc_association-addressinformation-address
  249. IMPORTING
  250. et_target_key = DATA(lt_bp_address_keys) ).
  251.  
  252. /scmtms/cl_common_helper=>get_do_keys_4_rba(
  253. EXPORTING
  254. iv_host_bo_key = /bofu/if_bupa_constants=>sc_bo_key
  255. iv_host_do_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  256. iv_do_node_key = /bofu/if_addr_constants=>sc_node-telephone
  257. iv_do_assoc_key = /bofu/if_addr_constants=>sc_association-root-telephone
  258. IMPORTING
  259. ev_assoc_key = lv_assoc_key_telephone ).
  260.  
  261. mo_bp_srv->retrieve_by_association(
  262. EXPORTING
  263. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  264. iv_association = lv_assoc_key_telephone
  265. iv_fill_data = abap_true
  266. it_key = lt_bp_address_keys
  267. IMPORTING
  268. et_data = lt_bofu_address_telephone ).
  269.  
  270. /scmtms/cl_common_helper=>get_do_keys_4_rba(
  271. EXPORTING
  272. iv_host_bo_key = /bofu/if_bupa_constants=>sc_bo_key
  273. iv_host_do_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  274. iv_do_node_key = /bofu/if_addr_constants=>sc_node-postal_address
  275. iv_do_assoc_key = /bofu/if_addr_constants=>sc_association-root-postal_address
  276. IMPORTING
  277. ev_assoc_key = lv_assoc_key_postal_address ).
  278.  
  279. mo_bp_srv->retrieve_by_association(
  280. EXPORTING
  281. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  282. iv_association = lv_assoc_key_postal_address
  283. iv_fill_data = abap_true
  284. it_key = lt_bp_address_keys
  285. IMPORTING
  286. et_data = lt_bofu_address_postal_address ).
  287.  
  288. READ TABLE lt_bofu_address_postal_address INTO DATA(ls_bofu_addr_postal_addr_4) INDEX 1.
  289.  
  290. SELECT bezei
  291. FROM t005u
  292. INTO CORRESPONDING FIELDS OF TABLE lt_t005u
  293. 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'.
  294.  
  295. READ TABLE lt_t005u INTO DATA(ls_t005u) INDEX 1.
  296. READ TABLE lt_tor_bupa_ship_root INTO DATA(ls_tor_bupa_ship_root) INDEX 1.
  297. READ TABLE lt_bupa_common INTO DATA(ls_bupa_common) INDEX 1.
  298. READ TABLE lt_bupa_tax_number INTO DATA(ls_bupa_tax_number) WITH KEY taxtype = 'RU1'.
  299.  
  300. SELECT bankn, banks, bankl
  301. FROM but0bk
  302. INTO CORRESPONDING FIELDS OF TABLE @lt_but0bk
  303. WHERE partner EQ @ls_tor_bupa_ship_root-partner.
  304.  
  305. READ TABLE lt_but0bk INTO DATA(ls_but0bk) INDEX 1.
  306.  
  307. SELECT banka, ort01, bnklz, brnch
  308. FROM bnka
  309. INTO CORRESPONDING FIELDS OF TABLE @lt_bnka
  310. WHERE banks EQ @ls_but0bk-banks AND bankl EQ @ls_but0bk-bankl.
  311.  
  312. READ TABLE lt_bnka INTO DATA(ls_bnka) INDEX 1.
  313.  
  314. *3x поле
  315. IF ls_tor_bupa_ship_root-type = '1'.
  316. READ TABLE lt_bofu_address_telephone INTO ls_bofu_address_telephone_4_1 INDEX 1.
  317. READ TABLE lt_bofu_address_telephone INTO ls_bofu_address_telephone_4_2 INDEX 2.
  318.  
  319. 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 } { ',' } {
  320. ls_bofu_addr_postal_addr_4-city_name } { ',' } { ls_bofu_addr_postal_addr_4-street_name } { ls_bofu_addr_postal_addr_4-house_id } { ';' }|.
  321. 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 } {
  322. ', "БИК"' } { ls_bnka-bnklz } { ', К\С' } { ls_bnka-brnch }|.
  323.  
  324. CONCATENATE zzfn_shipper1 zzfn_shipper2
  325. INTO ls_form-zz3x_shipper_individual SEPARATED BY space.
  326.  
  327. *4x поле
  328. ELSEIF ls_tor_bupa_ship_root-type = '2'.
  329. READ TABLE lt_bofu_address_telephone INTO ls_bofu_address_telephone_6_1 INDEX 1.
  330. READ TABLE lt_bofu_address_telephone INTO ls_bofu_address_telephone_6_2 INDEX 2.
  331.  
  332. 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 } { ',' } {
  333. ls_bofu_addr_postal_addr_4-city_name } { ',' } { ls_bofu_addr_postal_addr_4-street_name } { ls_bofu_addr_postal_addr_4-house_id } { ';' }|.
  334. 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 } {
  335. ', "БИК"' } { ls_bnka-bnklz } { ', К\С' } { ls_bnka-brnch }|.
  336.  
  337. CONCATENATE zzname_shipper1 zzname_shipper2
  338. INTO ls_form-zz4x_shipper_entity SEPARATED BY space.
  339. ENDIF.
  340.  
  341. *5x поле - получение, 6x поле - получение
  342. mo_tor_srv->retrieve_by_association(
  343. EXPORTING
  344. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  345. it_key = lt_tor_item_tr_keys
  346. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-bo_bupa_consignee
  347. iv_fill_data = abap_true
  348. IMPORTING
  349. et_data = lt_tor_bo_bupa_consignee
  350. et_target_key = DATA(lt_tor_bo_bupa_consignee_keys) ).
  351.  
  352. mo_bp_srv->retrieve_by_association(
  353. EXPORTING
  354. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  355. it_key = lt_tor_bo_bupa_consignee_keys
  356. iv_association = /bofu/if_bupa_constants=>sc_association-root-addressinformation
  357. iv_fill_data = abap_false
  358. IMPORTING
  359. et_target_key = DATA(lt_bp_addrinf_5_keys) ).
  360.  
  361. mo_bp_srv->retrieve_by_association(
  362. EXPORTING
  363. iv_node_key = /bofu/if_bupa_constants=>sc_node-addressinformation
  364. it_key = lt_bp_addrinf_5_keys
  365. iv_association = /bofu/if_bupa_constants=>sc_association-addressinformation-address
  366. iv_fill_data = abap_false
  367. IMPORTING
  368. et_target_key = DATA(lt_bp_address_5_keys) ).
  369.  
  370. mo_bp_srv->retrieve_by_association(
  371. EXPORTING
  372. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  373. iv_association = lv_assoc_key_telephone
  374. iv_fill_data = abap_true
  375. it_key = lt_bp_address_5_keys
  376. IMPORTING
  377. et_data = lt_bofu_address_telephone_5 ).
  378.  
  379. mo_bp_srv->retrieve_by_association(
  380. EXPORTING
  381. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  382. iv_association = lv_assoc_key_postal_address
  383. iv_fill_data = abap_true
  384. it_key = lt_bp_address_5_keys
  385. IMPORTING
  386. et_data = lt_bofu_addr_postal_addr_5 ).
  387.  
  388. mo_bp_srv->retrieve_by_association(
  389. EXPORTING
  390. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  391. it_key = lt_tor_bo_bupa_consignee_keys
  392. iv_association = /bofu/if_bupa_constants=>sc_association-root-common
  393. iv_fill_data = abap_true
  394. IMPORTING
  395. et_data = lt_bp_common_5 ).
  396.  
  397. mo_bp_srv->retrieve_by_association(
  398. EXPORTING
  399. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  400. it_key = lt_tor_bo_bupa_consignee_keys
  401. iv_association = /bofu/if_bupa_constants=>sc_association-root-tax_number
  402. iv_fill_data = abap_true
  403. IMPORTING
  404. et_data = lt_bp_tax_number_5 ).
  405.  
  406. SELECT bezei, land1, bland
  407. FROM t005u
  408. INTO CORRESPONDING FIELDS OF TABLE @lt_t005u
  409. WHERE spras EQ 'R'.
  410.  
  411. SELECT partner, bankn, banks, bankl
  412. FROM but0bk
  413. INTO CORRESPONDING FIELDS OF TABLE @lt_but0bk.
  414.  
  415. SELECT banka, ort01, bnklz, brnch, banks, bankl
  416. FROM bnka
  417. INTO CORRESPONDING FIELDS OF TABLE @lt_bnka.
  418.  
  419. *7x поле - получение
  420. mo_tor_srv->retrieve_by_association(
  421. EXPORTING
  422. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  423. it_key = lt_tor_item_tr_keys
  424. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-bo_material
  425. iv_fill_data = abap_true
  426. IMPORTING
  427. et_data = lt_tor_bo_material
  428. et_target_key = DATA(lt_tor_bo_material_keys)
  429. et_key_link = DATA(lt_tor_bo_material_link_keys) ).
  430.  
  431. mo_mtrl_srv->retrieve_by_association(
  432. EXPORTING
  433. iv_node_key = /scmtms/if_mat_c=>sc_node-root
  434. it_key = lt_tor_bo_material_keys
  435. iv_association = /scmtms/if_mat_c=>sc_association-root-description
  436. iv_fill_data = abap_true
  437. IMPORTING
  438. et_data = lt_mtrl_description ).
  439.  
  440. SELECT matnr matkl
  441. FROM /sapapo/matkey
  442. INTO CORRESPONDING FIELDS OF TABLE lt_sapapo_matkey
  443. FOR ALL ENTRIES IN lt_tor_bo_material
  444. WHERE /sapapo/matkey~matnr EQ lt_tor_bo_material-internal_id.
  445.  
  446. SELECT matkl wgbez
  447. FROM zttm_group_mat_t
  448. INTO CORRESPONDING FIELDS OF TABLE lt_zttm_group_mat_t
  449. FOR ALL ENTRIES IN lt_sapapo_matkey
  450. WHERE zttm_group_mat_t~matkl EQ lt_sapapo_matkey-matkl.
  451.  
  452. *10x поле - заполнение
  453. IF ls_tor_bupa_ship_root-type = '1'.
  454. ls_form-zz10x_cargo_accept = ls_form-zz3x_shipper_individual.
  455. ELSEIF ls_tor_bupa_ship_root-type = '2'.
  456. ls_form-zz10x_cargo_accept = ls_form-zz4x_shipper_entity.
  457. ENDIF.
  458.  
  459. *11x поле - получение
  460. mo_tor_srv->retrieve_by_association(
  461. EXPORTING
  462. iv_node_key = /scmtms/if_tor_c=>sc_node-stop
  463. it_key = lt_tor_stop_first_keys
  464. iv_association = /scmtms/if_tor_c=>sc_association-stop-bo_loc_log
  465. iv_fill_data = abap_false
  466. IMPORTING
  467. et_target_key = DATA(lt_tor_bo_loc_log_keys) ).
  468.  
  469. mo_loc_srv->retrieve_by_association(
  470. EXPORTING
  471. iv_node_key = /scmtms/if_location_c=>sc_node-root
  472. it_key = lt_tor_bo_loc_log_keys
  473. iv_association = /scmtms/if_location_c=>sc_association-root-geographical_information
  474. iv_fill_data = abap_false
  475. IMPORTING
  476. et_target_key = DATA(lt_loc_geo_info_keys) ).
  477.  
  478. mo_loc_srv->retrieve_by_association(
  479. EXPORTING
  480. iv_node_key = /scmtms/if_location_c=>sc_node-geographical_information
  481. it_key = lt_loc_geo_info_keys
  482. iv_association = /scmtms/if_location_c=>sc_association-geographical_information-address
  483. iv_fill_data = abap_false
  484. IMPORTING
  485. et_target_key = DATA(lt_loc_address_keys) ).
  486.  
  487. /scmtms/cl_common_helper=>get_do_keys_4_rba(
  488. EXPORTING
  489. iv_host_bo_key = /bofu/if_bupa_constants=>sc_bo_key
  490. iv_host_do_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  491. iv_do_node_key = /bofu/if_addr_constants=>sc_node-postal_address
  492. iv_do_assoc_key = /bofu/if_addr_constants=>sc_association-root-postal_address
  493. IMPORTING
  494. ev_assoc_key = DATA(lv_assoc_key_11x) ).
  495.  
  496. mo_bp_srv->retrieve_by_association(
  497. EXPORTING
  498. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  499. iv_association = lv_assoc_key_11x
  500. iv_fill_data = abap_true
  501. it_key = lt_loc_address_keys
  502. IMPORTING
  503. et_data = lt_bp_postal_address ).
  504.  
  505. READ TABLE lt_bp_postal_address INTO DATA(ls_bp_postal_address) INDEX 1.
  506.  
  507. SELECT bezei
  508. FROM t005u
  509. INTO CORRESPONDING FIELDS OF TABLE lt_t005u_11x
  510. WHERE bland EQ ls_bp_postal_address-region AND land1 EQ ls_bp_postal_address-country_code AND t005u~spras = 'R'.
  511.  
  512. READ TABLE lt_t005u_11x INTO DATA(ls_t005u_11x) INDEX 1.
  513.  
  514. *11x поле - заполнение
  515. ls_form-zz11x_cargo_accept_actual_addr = |{ ls_t005u_11x-bezei } { ',' } { ls_bp_postal_address-city_name } { ',' } { ls_bp_postal_address-street_name } { ls_bp_postal_address-house_id }|.
  516.  
  517. *12x поле - заполнение
  518. ls_form-zz12x_cargo_accept_fact_of_loa = ls_form-zz1x_actual_shipment_date.
  519.  
  520. *13x поле - заполнение
  521. ls_form-zz13x_cargo_accept_fact_of_loa = ls_form-zz1x_actual_shipment_date.
  522.  
  523. *14x поле - получение
  524. mo_tor_srv->retrieve_by_association(
  525. EXPORTING
  526. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  527. it_key = it_tor_key
  528. iv_association = /scmtms/if_tor_c=>sc_association-root-seal
  529. iv_fill_data = abap_true
  530. IMPORTING
  531. et_data = lt_tor_seal ).
  532.  
  533. *18x - получение
  534. mo_tor_srv->retrieve_by_association(
  535. EXPORTING
  536. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  537. it_key = it_tor_key
  538. iv_association = /scmtms/if_tor_c=>sc_association-root-stop
  539. iv_fill_data = abap_true
  540. IMPORTING
  541. et_data = lt_tor_stop ).
  542.  
  543. LOOP AT lt_tor_stop INTO DATA(ls_tor_stop).
  544. IF ls_tor_stop-wh_next_rel = 'U'.
  545. APPEND ls_tor_stop TO lt_tor_stop_18_keys.
  546. ENDIF.
  547. ENDLOOP.
  548.  
  549. mo_tor_srv->retrieve_by_association(
  550. EXPORTING
  551. iv_node_key = /scmtms/if_tor_c=>sc_node-stop
  552. it_key = lt_tor_stop_18_keys
  553. iv_association = /scmtms/if_tor_c=>sc_association-stop-bo_loc_log
  554. iv_fill_data = abap_true
  555. IMPORTING
  556. et_data = lt_tor_bo_loc_log_18
  557. et_target_key = DATA(lt_tor_bo_loc_log_18_keys) ).
  558.  
  559. mo_loc_srv->retrieve_by_association(
  560. EXPORTING
  561. iv_node_key = /scmtms/if_location_c=>sc_node-root
  562. it_key = lt_tor_bo_loc_log_18_keys
  563. iv_association = /scmtms/if_location_c=>sc_association-root-geographical_information
  564. iv_fill_data = abap_false
  565. IMPORTING
  566. et_target_key = DATA(lt_loc_geo_info_18_keys) ).
  567.  
  568. mo_loc_srv->retrieve_by_association(
  569. EXPORTING
  570. iv_node_key = /scmtms/if_location_c=>sc_node-geographical_information
  571. it_key = lt_loc_geo_info_18_keys
  572. iv_association = /scmtms/if_location_c=>sc_association-geographical_information-address
  573. iv_fill_data = abap_true
  574. IMPORTING
  575. et_data = lt_loc_address_18
  576. et_target_key = DATA(lt_loc_address_18_keys) ).
  577.  
  578. mo_bp_srv->retrieve_by_association(
  579. EXPORTING
  580. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  581. iv_association = lv_assoc_key_postal_address
  582. iv_fill_data = abap_true
  583. it_key = lt_loc_address_18_keys
  584. IMPORTING
  585. et_data = lt_bofu_addr_post_addr_18 ).
  586.  
  587. *23x поле - получение, 23x поле - заполнение
  588. mo_tor_srv->retrieve_by_association(
  589. EXPORTING
  590. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  591. it_key = it_tor_key
  592. iv_association = /scmtms/if_tor_c=>sc_association-root-bo_tsp_root
  593. iv_fill_data = abap_true
  594. IMPORTING
  595. et_data = lt_tor_bo_tsp_root ).
  596.  
  597. READ TABLE lt_tor_bo_tsp_root INTO DATA(ls_tor_bo_tsp_root_keys) WITH KEY type = '1'.
  598.  
  599. mo_splr_srv->retrieve_by_association(
  600. EXPORTING
  601. iv_node_key = /bofu/if_supplier_c=>sc_node-root
  602. it_key = VALUE #( ( key = ls_tor_bo_tsp_root_keys-key ) )
  603. iv_association = /bofu/if_supplier_c=>sc_association-root-common
  604. iv_fill_data = abap_true
  605. IMPORTING
  606. et_data = lt_splr_common ).
  607.  
  608. READ TABLE lt_splr_common INTO DATA(ls_splr_common) INDEX 1.
  609.  
  610. mo_splr_srv->retrieve_by_association(
  611. EXPORTING
  612. iv_node_key = /bofu/if_supplier_c=>sc_node-root
  613. it_key = VALUE #( ( key = ls_tor_bo_tsp_root_keys-key ) )
  614. iv_association = /bofu/if_supplier_c=>sc_association-root-tax_number
  615. iv_fill_data = abap_true
  616. IMPORTING
  617. et_data = lt_splr_tax_number ).
  618.  
  619. READ TABLE lt_splr_tax_number INTO DATA(ls_splr_tax_number) WITH KEY taxtype = 'RU1'.
  620.  
  621. mo_splr_srv->retrieve_by_association(
  622. EXPORTING
  623. iv_node_key = /bofu/if_supplier_c=>sc_node-root
  624. it_key = VALUE #( ( key = ls_tor_bo_tsp_root_keys-key ) )
  625. iv_association = /bofu/if_supplier_c=>sc_association-root-addressinformation
  626. iv_fill_data = abap_false
  627. IMPORTING
  628. et_target_key = DATA(lt_splr_adressinformation_keys) ).
  629.  
  630. mo_splr_srv->retrieve_by_association(
  631. EXPORTING
  632. iv_node_key = /bofu/if_supplier_c=>sc_node-addressinformation
  633. it_key = lt_splr_adressinformation_keys
  634. iv_association = /bofu/if_supplier_c=>sc_association-addressinformation-/bofu/address
  635. iv_fill_data = abap_false
  636. IMPORTING
  637. et_target_key = DATA(lt_splr_address_23_keys) ).
  638.  
  639. mo_bp_srv->retrieve_by_association(
  640. EXPORTING
  641. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  642. iv_association = lv_assoc_key_postal_address
  643. iv_fill_data = abap_true
  644. it_key = lt_splr_address_23_keys
  645. IMPORTING
  646. et_data = lt_bofu_addr_postal_addr_23 ).
  647.  
  648. READ TABLE lt_bofu_addr_postal_addr_23 INTO DATA(ls_bofu_addr_postal_addr_23) INDEX 1.
  649.  
  650. SELECT bezei
  651. FROM t005u
  652. INTO CORRESPONDING FIELDS OF TABLE lt_t005u_23x
  653. WHERE bland EQ ls_bofu_addr_postal_addr_23-region AND land1 EQ ls_bofu_addr_postal_addr_23-country_code AND t005u~spras = 'R'.
  654.  
  655. READ TABLE lt_t005u_23x INTO DATA(ls_t005u_23x) INDEX 1.
  656.  
  657. mo_bp_srv->retrieve_by_association(
  658. EXPORTING
  659. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  660. iv_association = lv_assoc_key_telephone
  661. iv_fill_data = abap_true
  662. it_key = lt_splr_address_23_keys
  663. IMPORTING
  664. et_data = lt_bofu_addr_telephone_23 ).
  665.  
  666. READ TABLE lt_bofu_addr_telephone_23 INTO ls_bofu_addr_telephone_23_1 INDEX 1.
  667. READ TABLE lt_bofu_addr_telephone_23 INTO ls_bofu_addr_telephone_23_2 INDEX 2.
  668.  
  669. READ TABLE lt_but0bk INTO DATA(ls_but0bk_23) WITH KEY partner = ls_tor_root-tspid.
  670.  
  671. READ TABLE lt_bnka INTO DATA(ls_bnka_23) WITH KEY banks = ls_but0bk_23-banks bankl = ls_but0bk_23-bankl.
  672.  
  673. ls_form-zz23x_carriers_legal_data = |{ ls_splr_common-firstname } { ls_splr_common-lastname } { '; ИНН:' } { ls_splr_tax_number-taxnumber } { ';' } { ls_bofu_addr_postal_addr_23-street_postal_code } { ',' } {
  674. ls_bofu_addr_postal_addr_23-district_name } { ',' } { ls_t005u_23x-bezei } { ',' } { ls_bofu_addr_postal_addr_23-city_name } { ',' } { ls_bofu_addr_postal_addr_23-street_name } { ls_bofu_addr_postal_addr_23-house_id } { ';' } {
  675. ls_bofu_addr_telephone_23_1-normalised_number_text } { ',' } { ls_bofu_addr_telephone_23_2-normalised_number_text } { '; "р\с:"' } { ls_but0bk_23-bankn } { 'в банке' } { ls_bnka_23-banka } { 'в городе' } { ls_bnka_23-ort01 } { ', "БИК" ' } {
  676. ls_bnka_23-bnklz }|.
  677.  
  678. *25x поле - получение, 25x поле - заполнение
  679. mo_tor_srv->retrieve_by_association(
  680. EXPORTING
  681. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  682. it_key = lt_tor_item_tr_keys
  683. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-bo_resource
  684. iv_fill_data = abap_true
  685. IMPORTING
  686. et_data = lt_tor_bo_resource ).
  687.  
  688. READ TABLE lt_tor_bo_resource INTO DATA(ls_tor_bo_resource) INDEX 1.
  689.  
  690. ls_form-zz25x_vehicle_brand = ls_tor_bo_resource-description.
  691.  
  692. *26x поле - получение
  693. READ TABLE lt_tor_item_tr INTO DATA(ls_tor_item_tr) WITH KEY item_cat = 'AVR'.
  694.  
  695. SPLIT ls_tor_item_tr-tracking_no AT '/' INTO lv_zz26x_reg_nomer_ts lv_zz26x_reg_nomer_pricep.
  696.  
  697. IF lv_zz26x_reg_nomer_pricep IS INITIAL.
  698. ls_form-zz26x_vehicle_reg_number = |{ 'Регистрационный номер: ' } { lv_zz26x_reg_nomer_ts }|.
  699. ELSE.
  700. ls_form-zz26x_vehicle_reg_number = |{ 'Регистрационный номер: ' } { lv_zz26x_reg_nomer_ts } { ', прицеп: ' } { lv_zz26x_reg_nomer_pricep }|.
  701. ENDIF.
  702.  
  703. *28x поле - получение, 28x поле - заполнение
  704. ls_form-zz28x_service_cost_legal_data = ls_form-zz23x_carriers_legal_data.
  705.  
  706. **********************************************************************
  707.  
  708. *17x поле - получение, 17x поле - заполнение, 24x поле - получение, 24x поле - заполнение
  709.  
  710. " 17x
  711. " 6. Прием груза - ФИО водителя
  712. " /SCMTMS/TOR -> ITEM_TR (где ITEM_CAT = DRI) - BO_DRIVER:
  713. " NAME_FIRST, NAME_LAST
  714.  
  715. " ITEM_TR -> BO_DRIVER
  716. DATA lt_17_itemtr_bodriver TYPE /scmtms/t_res_lab_root_k.
  717. mo_tor_srv->retrieve_by_association(
  718. EXPORTING
  719. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  720. it_key = lt_tor_item_tr_keys
  721. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-bo_driver
  722. iv_fill_data = abap_true
  723. IMPORTING
  724. et_data = lt_17_itemtr_bodriver
  725. et_target_key = DATA(lt_17_itemtr_bodriver_keys)
  726. et_key_link = DATA(lt_17_item_driver_link_keys)
  727. ).
  728.  
  729. " ITEM_TR (где ITEM_CAT = DRI)
  730. DATA lt_17_itemtr_bodriver_res TYPE /scmtms/t_res_lab_root_k.
  731. LOOP AT lt_17_itemtr_bodriver INTO DATA(ls_17_itemtr_bodriver).
  732. LOOP AT lt_17_item_driver_link_keys INTO DATA(ls_17_item_driver_link_keys)
  733. WHERE target_key = ls_17_itemtr_bodriver-key.
  734. LOOP AT lt_tor_item_tr INTO ls_tor_item_tr
  735. WHERE key = ls_17_item_driver_link_keys-source_key
  736. AND item_cat = 'DRI'.
  737. APPEND ls_17_itemtr_bodriver TO lt_17_itemtr_bodriver_res.
  738. ENDLOOP.
  739. ENDLOOP.
  740. ENDLOOP.
  741.  
  742. IF lt_17_itemtr_bodriver_res[ 1 ] IS NOT INITIAL.
  743. ls_17_itemtr_bodriver = lt_17_itemtr_bodriver_res[ 1 ].
  744. zzvehicle_param = | { ls_17_itemtr_bodriver-name_first } { ' ' } { ls_17_itemtr_bodriver-name_last } |.
  745. ls_form-zz17x_cargo_accept_drivers_ini = zzvehicle_param.
  746. ENDIF.
  747.  
  748. " 24x
  749. " 10. Перевозчик
  750. " ИНН
  751. " «ИНН» /BOFU/BUSINESSPARTNER (где PARTNER = BO_DRIVER - LABOURRES_ID) -
  752. " - TAX_NUMBER(где TAXTYPE = RU1):
  753. " TAXNUMBER
  754.  
  755. " /bofu/businesspartner
  756. " mo_bp_srv = /bobf/cl_tra_serv_mgr_factory=>get_service_manager( /bofu/if_bupa_constants=>sc_bo_key ).
  757.  
  758. LOOP AT lt_17_itemtr_bodriver_res INTO ls_17_itemtr_bodriver.
  759. ls_selpar-low = ls_17_itemtr_bodriver-labourres_id.
  760. ls_selpar-attribute_name = /bofu/if_bupa_constants=>sc_query_attribute-root-query_by_role-partner.
  761. ls_selpar-option = 'EQ'.
  762. ls_selpar-sign = 'I'.
  763. APPEND ls_selpar TO lt_selpar.
  764. ENDLOOP.
  765.  
  766. mo_bp_srv->query(
  767. EXPORTING
  768. iv_query_key = /bofu/if_bupa_constants=>sc_query-root-query_by_role
  769. it_selection_parameters = lt_selpar
  770. IMPORTING
  771. et_key = DATA(lt_fag_party_keys)
  772. ).
  773.  
  774. mo_bupa_srv->retrieve_by_association(
  775. EXPORTING
  776. it_key = lt_fag_party_keys
  777. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  778. iv_association = /bofu/if_bupa_constants=>sc_association-root-tax_number
  779. iv_fill_data = abap_true
  780. IMPORTING
  781. et_data = lt_bp_taxnum
  782. ).
  783.  
  784. DATA lt_bp_taxnum_res LIKE lt_bp_taxnum.
  785. LOOP AT lt_bp_taxnum INTO DATA(ls_bp_taxnum)
  786. WHERE taxtype = 'RU1'.
  787. APPEND ls_bp_taxnum TO lt_bp_taxnum_res.
  788. ENDLOOP.
  789.  
  790. IF lt_bp_taxnum_res[ 1 ] IS NOT INITIAL.
  791. ls_form-zzvehicle_param = lt_bp_taxnum_res[ 1 ]-taxnumber.
  792. ENDIF.
  793.  
  794. " 24x
  795. " 10. Перевозчик - данные о средствах связи (при их наличии) водителя (водителей)
  796. " /SCMTMS/TOR -> ITEM_TR (где ITEM_CAT = DRI) - BO_DRIVER -
  797. " – ADDRESS – TELEPHONE:
  798. " NORMALISED_NUMBER_TEXT
  799. " BO_DRIVER –> ADDRESS
  800. " mo_drv_srm = /bobf/cl_tra_serv_mgr_factory=>get_service_manager( /scmtms/if_driver_c=>sc_bo_key ).
  801. mo_drv_srm->retrieve_by_association(
  802. EXPORTING
  803. iv_node_key = /scmtms/if_driver_c=>sc_node-root
  804. it_key = lt_17_itemtr_bodriver_keys
  805. iv_association = /scmtms/if_driver_c=>sc_association-root-address
  806. iv_fill_data = abap_false
  807. IMPORTING
  808. et_target_key = DATA(lt_bodriver_addr_keys)
  809. ).
  810. " ADDRESS -> TELEPHONE
  811. DATA lt_drv_addr_tel TYPE /bofu/t_addr_telephonek.
  812. mo_bp_srv->retrieve_by_association(
  813. EXPORTING
  814. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  815. iv_association = lv_assoc_key_telephone
  816. iv_fill_data = abap_true
  817. it_key = lt_bodriver_addr_keys
  818. IMPORTING
  819. et_data = lt_drv_addr_tel
  820. ).
  821.  
  822. LOOP AT lt_drv_addr_tel INTO DATA(ls_drv_addr_tel).
  823. ls_form-zz24x_inn_phone_numbers = | { ls_form-zz17x_cargo_accept_drivers_ini } { ',' } { ls_form-zzvehicle_param } { ',' } { ls_drv_addr_tel-normalised_number_text } { ' ' }|.
  824. ENDLOOP.
  825.  
  826. * mo_tor_srv->retrieve_by_association(
  827. * EXPORTING
  828. * iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  829. * it_key = lt_tor_item_tr_keys
  830. * iv_association = /scmtms/if_tor_c=>sc_association-item_tr-bo_resource
  831. * iv_fill_data = abap_true
  832. * IMPORTING
  833. * et_data = lt_tor_bo_resource ).
  834. *
  835. * APPEND LINES OF lt_tor_item_tr TO lt_tor_item_tr_unique_dri.
  836. *
  837. * DELETE lt_tor_item_tr_unique_dri WHERE item_cat NE 'DRI'.
  838. *
  839. * LOOP AT lt_tor_item_tr_unique_dri INTO DATA(ls_tor_item_tr_unique_dri).
  840. *
  841. * READ TABLE lt_tor_bo_driver INTO DATA(ls_tor_bo_driver) WITH KEY parent_key = ls_tor_item_tr_unique_dri.
  842.  
  843. *22x поле - заполнение
  844. ls_form-zz22x_cargo_deliv_drivers_init = ls_form-zz17x_cargo_accept_drivers_ini.
  845.  
  846. **********************************************************************
  847.  
  848. APPEND LINES OF lt_tor_item_tr TO lt_tor_item_tr_unique.
  849.  
  850. DELETE lt_tor_item_tr_unique WHERE consignee_id IS INITIAL.
  851.  
  852. SORT lt_tor_item_tr_unique BY consignee_id key.
  853.  
  854. DELETE ADJACENT DUPLICATES FROM lt_tor_item_tr_unique COMPARING consignee_id.
  855.  
  856. LOOP AT lt_tor_item_tr_unique INTO DATA(ls_tor_item_tr_unique).
  857.  
  858. *5x поле - заполнение, 6x поле - заполнение
  859. READ TABLE lt_tor_bo_bupa_consignee INTO DATA(ls_tor_bo_bupa_consignee) WITH KEY partner = ls_tor_item_tr_unique-consignee_id.
  860.  
  861. READ TABLE lt_bofu_addr_postal_addr_5 INTO DATA(ls_bofu_addr_postal_addr_5) WITH KEY root_key = ls_tor_bo_bupa_consignee-key.
  862.  
  863. READ TABLE lt_t005u INTO DATA(ls_t005u_5) WITH KEY land1 = ls_bofu_addr_postal_addr_5-country_code bland = ls_bofu_addr_postal_addr_5-region.
  864.  
  865. READ TABLE lt_but0bk INTO DATA(ls_but0bk_5) WITH KEY partner = ls_tor_item_tr_unique-consignee_id.
  866.  
  867. READ TABLE lt_bnka INTO DATA(ls_bnka_5) WITH KEY banks = ls_but0bk_5-banks bankl = ls_but0bk_5-bankl.
  868.  
  869. READ TABLE lt_bp_common_5 INTO DATA(ls_bupa_common_5) WITH KEY parent_key = ls_tor_bo_bupa_consignee-key.
  870. READ TABLE lt_bp_tax_number_5 INTO DATA(ls_bupa_tax_number_5) WITH KEY parent_key = ls_tor_bo_bupa_consignee-key taxtype = 'RU1'.
  871.  
  872. IF lt_bofu_address_telephone_5 IS NOT INITIAL.
  873. LOOP AT lt_bofu_address_telephone_5 INTO DATA(ls_bofu_address_telephone).
  874. IF ls_bofu_address_telephone-root_key = ls_tor_bo_bupa_consignee-key.
  875. APPEND ls_bofu_address_telephone TO lt_bofu_addr_tel_sorted.
  876. ENDIF.
  877. ENDLOOP.
  878.  
  879. READ TABLE lt_bofu_addr_tel_sorted INTO ls_bofu_address_telephone_5_1 INDEX 1.
  880. READ TABLE lt_bofu_addr_tel_sorted INTO ls_bofu_address_telephone_5_2 INDEX 2.
  881. ENDIF.
  882.  
  883. *5x поле - заполнение
  884. IF ls_tor_bo_bupa_consignee-type = '1'.
  885. 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 } { ',' } {
  886. ls_bofu_addr_postal_addr_5-city_name } { ',' } { ls_bofu_addr_postal_addr_5-street_name } { ls_bofu_addr_postal_addr_5-house_id } { ';' }|.
  887. 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 } { 'в городе' } {
  888. ls_bnka_5-ort01 } { ', "БИК"' } { ls_bnka_5-bnklz } { ', К\С' } { ls_bnka_5-brnch }|.
  889.  
  890. CONCATENATE zzfn_shipper1 zzfn_shipper2
  891. INTO ls_form-zz5x_consignee_individual SEPARATED BY space.
  892.  
  893. *6x поле - заполнение
  894. ELSEIF ls_tor_bo_bupa_consignee-type = '2'.
  895. 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 } { ',' } {
  896. ls_bofu_addr_postal_addr_5-city_name } { ',' } { ls_bofu_addr_postal_addr_5-street_name } { ls_bofu_addr_postal_addr_5-house_id } { ';' }|.
  897. 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 } { 'в городе' } {
  898. ls_bnka_5-ort01 } { ', "БИК"' } { ls_bnka_5-bnklz } { ', К\С' } { ls_bnka_5-brnch }|.
  899.  
  900. CONCATENATE zzname_consignee1 zzname_consignee2
  901. INTO ls_form-zz6x_consignee_entity SEPARATED BY space.
  902. ENDIF.
  903.  
  904. *7x поле - заполнение
  905. LOOP AT lt_tor_item_tr INTO ls_tor_item_tr.
  906. IF ls_tor_item_tr-consignee_id = ls_tor_item_tr_unique-consignee_id AND ls_tor_item_tr-item_cat = 'PRD'.
  907. APPEND ls_tor_item_tr TO lt_toritemtrunique_itemcatprd.
  908. ENDIF.
  909. ENDLOOP.
  910.  
  911. DELETE ADJACENT DUPLICATES FROM lt_toritemtrunique_itemcatprd COMPARING ALL FIELDS.
  912.  
  913. LOOP AT lt_toritemtrunique_itemcatprd INTO DATA(ls_toritemtrunique_itemcatprd).
  914. LOOP AT lt_tor_item_tr_link_keys INTO DATA(ls_tor_item_tr_link_keys).
  915. IF ls_tor_item_tr_link_keys-target_key = ls_toritemtrunique_itemcatprd-key.
  916. APPEND ls_tor_item_tr_link_keys TO lt_toritemtr_linkkeysunique.
  917. ENDIF.
  918. ENDLOOP.
  919. ENDLOOP.
  920.  
  921. DELETE ADJACENT DUPLICATES FROM lt_toritemtr_linkkeysunique.
  922.  
  923. LOOP AT lt_toritemtr_linkkeysunique INTO DATA(ls_toritemtr_linkkeysunique).
  924. LOOP AT lt_tor_bo_material_link_keys INTO DATA(ls_tor_bo_material_link_keys).
  925. IF ls_tor_bo_material_link_keys-source_key = ls_toritemtr_linkkeysunique-target_key.
  926. APPEND ls_tor_bo_material_link_keys TO lt_torbomat_linkkeysunique.
  927. ENDIF.
  928. ENDLOOP.
  929. ENDLOOP.
  930.  
  931. DELETE ADJACENT DUPLICATES FROM lt_torbomat_linkkeysunique.
  932.  
  933. LOOP AT lt_torbomat_linkkeysunique INTO ls_toritemtr_linkkeysunique.
  934. LOOP AT lt_tor_bo_material INTO DATA(ls_tor_bo_material).
  935. IF ls_tor_bo_material-key = ls_toritemtr_linkkeysunique-target_key.
  936. APPEND ls_tor_bo_material TO lt_tor_bo_material_unique.
  937. ENDIF.
  938. ENDLOOP.
  939. ENDLOOP.
  940.  
  941. DELETE ADJACENT DUPLICATES FROM lt_tor_bo_material_unique.
  942.  
  943. LOOP AT lt_tor_bo_material_unique INTO DATA(ls_tor_bo_material_unique).
  944. LOOP AT lt_sapapo_matkey INTO DATA(ls_sapapo_matkey).
  945. IF ls_sapapo_matkey-matnr = ls_tor_bo_material_unique-internal_id.
  946. APPEND ls_sapapo_matkey TO lt_sapapo_matkey_unique.
  947. ENDIF.
  948. ENDLOOP.
  949. ENDLOOP.
  950.  
  951. DELETE ADJACENT DUPLICATES FROM lt_sapapo_matkey_unique.
  952.  
  953. LOOP AT lt_sapapo_matkey_unique INTO DATA(ls_sapapo_matkey_unique).
  954. LOOP AT lt_zttm_group_mat_t INTO DATA(ls_zttm_group_mat_t).
  955. IF ls_zttm_group_mat_t-matkl = ls_sapapo_matkey_unique-matkl.
  956. APPEND ls_zttm_group_mat_t-wgbez TO lt_zz7x_naimenovanie_gruza.
  957. ENDIF.
  958. ENDLOOP.
  959. ENDLOOP.
  960.  
  961. SORT lt_zz7x_naimenovanie_gruza.
  962.  
  963. DELETE ADJACENT DUPLICATES FROM lt_zz7x_naimenovanie_gruza.
  964.  
  965. LOOP AT lt_zz7x_naimenovanie_gruza INTO DATA(ls_zz7x_naimenovanie_gruza).
  966. IF ls_zz7x_naimenovanie_gruza IS NOT INITIAL.
  967. ls_form-zz7x_shipping_name = |{ ls_zz7x_naimenovanie_gruza } { ',' } { ls_form-zz7x_shipping_name }|.
  968. ENDIF.
  969. ENDLOOP.
  970.  
  971. IF ls_form-zz7x_shipping_name IS NOT INITIAL.
  972. lv_string_length = strlen( ls_form-zz7x_shipping_name ) - 1.
  973. ls_form-zz7x_shipping_name = ls_form-zz7x_shipping_name+0(lv_string_length).
  974. ENDIF.
  975.  
  976. *8x поле - заполнение
  977. READ TABLE lt_tor_seal INTO DATA(ls_tor_seal) WITH KEY party_id = ls_tor_item_tr_unique-consignee_id.
  978.  
  979. lv_qua_pcs_val_all = ls_tor_seal-qua_pcs_val_all.
  980.  
  981. ls_form-zz8x_cargo_number_of_packages = |{ lv_qua_pcs_val_all } { ls_tor_seal-qua_pcs_uni }|.
  982.  
  983. *9x поле - заполнение
  984. LOOP AT lt_toritemtrunique_itemcatprd INTO ls_toritemtrunique_itemcatprd.
  985. lv_zz9x_gruz_massa_brutto = ls_toritemtrunique_itemcatprd-gro_wei_val + lv_zz9x_gruz_massa_brutto.
  986. ENDLOOP.
  987.  
  988. ls_form-zz9x_cargo_gross_weight = |{ lv_zz9x_gruz_massa_brutto } { ls_toritemtrunique_itemcatprd-gro_wei_uni }|.
  989.  
  990. *14x поле - заполнение
  991. LOOP AT lt_tor_item_tr INTO ls_tor_item_tr.
  992. IF ls_tor_item_tr-consignee_id = ls_tor_item_tr_unique-consignee_id AND ls_tor_item_tr-item_cat = 'TUR'.
  993. APPEND ls_tor_item_tr TO lt_toritemtrunique_itemcattur.
  994. ENDIF.
  995. ENDLOOP.
  996.  
  997. LOOP AT lt_tor_seal INTO ls_tor_seal.
  998. IF ls_tor_seal-party_id = ls_tor_item_tr_unique-consignee_id.
  999. lv_zz14x_priem_gruza_plomba = |{ 'Пломба №' } { ls_tor_seal-seal_number }|.
  1000. ENDIF.
  1001. ENDLOOP.
  1002.  
  1003. LOOP AT lt_toritemtrunique_itemcattur INTO DATA(ls_toritemtrunique_itemcattur).
  1004. IF ls_toritemtrunique_itemcattur-res_id IS NOT INITIAL.
  1005. lv_zz14x_priem_gruza_konteiner = |{ lv_zz14x_priem_gruza_konteiner } { 'контейнер №' } { ls_toritemtrunique_itemcattur-res_id } { ',' }|.
  1006. ENDIF.
  1007. ENDLOOP.
  1008.  
  1009. IF lv_zz14x_priem_gruza_konteiner IS NOT INITIAL.
  1010. lv_zz14x_priem_gruza_konteiner = |{ '\' } { lv_zz14x_priem_gruza_konteiner }|.
  1011.  
  1012. lv_string_length = strlen( lv_zz14x_priem_gruza_konteiner ) - 1.
  1013. lv_zz14x_priem_gruza_konteiner = lv_zz14x_priem_gruza_konteiner+0(lv_string_length).
  1014.  
  1015. ENDIF.
  1016.  
  1017. ls_form-zz14x_cargo_accept_seal_contai = |{ lv_zz14x_priem_gruza_plomba } { ' ' } { lv_zz14x_priem_gruza_konteiner }|.
  1018.  
  1019. *15x поле - заполнение
  1020. ls_form-zz15x_cargo_accept_gross_weigh = ls_form-zz9x_cargo_gross_weight.
  1021.  
  1022. *16x поле - заполнение
  1023. ls_form-zz16x_cargo_accept_packages_nu = ls_form-zz8x_cargo_number_of_packages.
  1024.  
  1025. *18x поле - заполнение
  1026. LOOP AT lt_tor_bo_loc_log_18 INTO DATA(ls_tor_bo_loc_log_18).
  1027. IF ls_tor_bo_loc_log_18-business_partner_id = ls_tor_item_tr_unique-consignee_id.
  1028. LOOP AT lt_tor_bo_loc_log_18_keys INTO DATA(ls_tor_bo_loc_log_18_keys).
  1029. IF ls_tor_bo_loc_log_18_keys-key = ls_tor_bo_loc_log_18-key.
  1030. APPEND ls_tor_bo_loc_log_18_keys TO lt_tor_boloclog18keys_unique.
  1031. ENDIF.
  1032. ENDLOOP.
  1033. ENDIF.
  1034. ENDLOOP.
  1035.  
  1036. LOOP AT lt_loc_address_18 INTO DATA(ls_loc_address_18).
  1037. LOOP AT lt_tor_boloclog18keys_unique INTO DATA(ls_tor_boloclog18keys_unique).
  1038. IF ls_loc_address_18-parent_key = ls_tor_boloclog18keys_unique-key.
  1039. APPEND ls_loc_address_18 TO lt_loc_address_18_unique.
  1040. ENDIF.
  1041. ENDLOOP.
  1042. ENDLOOP.
  1043.  
  1044. LOOP AT lt_bofu_addr_post_addr_18 INTO DATA(ls_bofu_addr_post_addr_18).
  1045. LOOP AT lt_loc_address_18_unique INTO DATA(ls_loc_address_18_unique).
  1046. IF ls_bofu_addr_post_addr_18-root_key = ls_loc_address_18_unique-root_key.
  1047. SELECT bezei
  1048. FROM t005u
  1049. INTO CORRESPONDING FIELDS OF TABLE lt_t005u
  1050. WHERE bland EQ ls_bofu_addr_post_addr_18-region AND land1 EQ ls_bofu_addr_post_addr_18-country_code AND t005u~spras = 'R'.
  1051.  
  1052. READ TABLE lt_t005u INTO ls_t005u INDEX 1.
  1053.  
  1054. ls_form-zz18x_cargo_deliv_actual_addr = |{ ls_t005u-bezei } { ',' } { ls_bofu_addr_post_addr_18-city_name } { ',' } { ls_bofu_addr_post_addr_18-street_name } { ls_bofu_addr_post_addr_18-house_id }|.
  1055. ENDIF.
  1056. ENDLOOP.
  1057. ENDLOOP.
  1058.  
  1059. *19x поле - заполнение
  1060. ls_form-zz19x_cargo_deliv_seal_contain = ls_form-zz14x_cargo_accept_seal_contai.
  1061.  
  1062. *20x поле - заполнение
  1063. ls_form-zz20x_cargo_deliv_gross_weight = ls_form-zz9x_cargo_gross_weight.
  1064.  
  1065. *21x поле - заполнение
  1066. ls_form-zz21x_cargo_deliv_packages_num = ls_form-zz8x_cargo_number_of_packages.
  1067.  
  1068. APPEND VALUE #( body = ls_form ) TO et_form.
  1069.  
  1070. CLEAR lt_bofu_addr_tel_sorted.
  1071. CLEAR lt_toritemtrunique_itemcatprd.
  1072. CLEAR lt_toritemtr_linkkeysunique.
  1073. CLEAR lt_torbomat_linkkeysunique.
  1074. CLEAR lt_tor_bo_material_unique.
  1075. CLEAR lt_sapapo_matkey_unique.
  1076. CLEAR lt_toritemtrunique_itemcattur.
  1077. CLEAR lt_tor_boloclog18keys_unique.
  1078. CLEAR lt_loc_address_18_unique.
  1079.  
  1080. CLEAR lv_zz9x_gruz_massa_brutto.
  1081. CLEAR ls_form-zz7x_shipping_name.
  1082.  
  1083. CLEAR ls_form-zz5x_consignee_individual.
  1084. CLEAR ls_form-zz6x_consignee_entity.
  1085. CLEAR ls_form-zz7x_shipping_name.
  1086. CLEAR ls_form-zz9x_cargo_gross_weight.
  1087. CLEAR ls_form-zz14x_cargo_accept_seal_contai.
  1088. CLEAR ls_form-zz15x_cargo_accept_gross_weigh.
  1089. CLEAR ls_form-zz18x_cargo_deliv_actual_addr.
  1090. CLEAR ls_form-zz19x_cargo_deliv_seal_contain.
  1091. CLEAR ls_form-zz20x_cargo_deliv_gross_weight.
  1092. ENDLOOP.
  1093.  
  1094. ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement