Advertisement
hxxxrz

MAINBACKUP

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