Advertisement
hxxxrz

Untitled

Feb 10th, 2021
298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 45.52 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Номер спецификации: BR_D_024
  3. *& Наименование спецификации: Печатные формы
  4. *& Дата создания: 22.12.2020
  5. *& Проект: Создание печатных форм
  6. *& Разработчик: Федоров К
  7.  
  8. METHOD get_vehwaybill_data.
  9.  
  10. DATA: ls_form TYPE zstm_vehicle_waybill,
  11. lt_tor_root TYPE /scmtms/t_tor_root_k,
  12. lt_tor_stop TYPE /scmtms/t_tor_stop_k,
  13. lt_tor_stop_first TYPE /scmtms/t_tor_stop_k,
  14. lt_mtrl_description TYPE /scmtms/t_mat_description_k,
  15. lt_tor_item_tr TYPE /scmtms/t_tor_item_tr_k,
  16. lt_sel_opt_f TYPE /bobf/t_frw_query_selparam,
  17. lt_sel_opt_l TYPE /bobf/t_frw_query_selparam,
  18. ls_sel_opt_f LIKE LINE OF lt_sel_opt_f,
  19. ls_sel_opt_l LIKE LINE OF lt_sel_opt_l,
  20. lt_loc_data_f TYPE /scmtms/t_loc_q_elem_result,
  21. lt_loc_data_l TYPE /scmtms/t_loc_q_elem_result,
  22. lv_node_key TYPE /bobf/obm_node_key,
  23. lv_assoc_key TYPE /bobf/obm_assoc_key,
  24. lv_node_key_tel TYPE /bobf/obm_node_key,
  25. lv_assoc_key_tel TYPE /bobf/obm_assoc_key,
  26. lt_pos_address TYPE /bofu/t_addr_postal_addressk,
  27. lt_loc_root_f TYPE /scmtms/t_bo_loc_root_k,
  28. lt_loc_root_l TYPE /scmtms/t_bo_loc_root_k,
  29. lt_drv_root TYPE /scmtms/t_res_lab_root_k,
  30. lt_tras_capa_offer TYPE /scmtms/t_res_quantity_k,
  31. lt_bupa_consignee TYPE /bofu/t_bupa_root_k,
  32. lt_bupa_root TYPE /bofu/t_bupa_root_k,
  33. lt_role TYPE /bofu/t_bupa_role_k,
  34. lt_bupa_ship_root TYPE /bofu/t_bupa_root_k,
  35. lt_bupa_data TYPE /bofu/t_bupa_root_k,
  36. ls_bupa_data LIKE LINE OF lt_bupa_data,
  37. lt_but000 TYPE TABLE OF but000,
  38. lt_but000_bupa_ship TYPE TABLE OF but000,
  39. lt_but000_bupa_consignee TYPE TABLE OF but000,
  40. lt_but000_tor_root TYPE TABLE OF but000,
  41. lt_relationship TYPE /bofu/t_bupa_relship_k,
  42. lt_transp_capa_offer TYPE /scmtms/t_res_quantity_k,
  43. lt_res_root TYPE /scmtms/t_res_root_k,
  44. lt_telephone TYPE /bofu/t_addr_telephonek,
  45. lt_stop_first TYPE /scmtms/t_tor_stop_k,
  46. lt_key_bupa TYPE /bobf/t_frw_key,
  47. ls_key_bupa LIKE LINE OF lt_key_bupa,
  48. lt_role_ship TYPE /bofu/t_bupa_role_k,
  49. lt_bp_root TYPE /bofu/t_bupa_root_k,
  50. ls_selpar TYPE /bobf/s_frw_query_selparam,
  51. lt_selpar TYPE /bobf/t_frw_query_selparam,
  52. go_message TYPE REF TO /bobf/if_frw_message,
  53. ls_telephone_4_1 LIKE LINE OF lt_telephone,
  54. ls_telephone_4_2 LIKE LINE OF lt_telephone,
  55. ls_telephone_6_1 LIKE LINE OF lt_telephone,
  56. ls_telephone_6_2 LIKE LINE OF lt_telephone,
  57. ls_telephone_5_1 LIKE LINE OF lt_telephone,
  58. ls_telephone_5_2 LIKE LINE OF lt_telephone,
  59. ls_telephone_7_1 LIKE LINE OF lt_telephone,
  60. ls_telephone_7_2 LIKE LINE OF lt_telephone,
  61. ls_telephone_42_1 LIKE LINE OF lt_telephone,
  62. ls_telephone_42_2 LIKE LINE OF lt_telephone,
  63. ls_telephone_43_1 LIKE LINE OF lt_telephone,
  64. ls_telephone_43_2 LIKE LINE OF lt_telephone,
  65. ls_telephone_44_1 LIKE LINE OF lt_telephone,
  66. ls_telephone_44_2 LIKE LINE OF lt_telephone,
  67. lv_date TYPE d,
  68. lv_time TYPE t,
  69. lv_date_result TYPE c LENGTH 11,
  70. lv_zzcargo_condition_i TYPE i,
  71. lv_qua_pcs_val_9 TYPE i,
  72. lv_gro_wei_val_10 TYPE p LENGTH 10 DECIMALS 2,
  73. lt_itemtr TYPE /scmtms/t_tor_item_tr_k,
  74. lt_tor_pdf_data TYPE ztttm_tor_pdf_k,
  75. lt_bupa_common TYPE /bofu/t_bupa_common_k,
  76. lt_bupa_tax_number TYPE /bofu/t_bupa_taxno_k,
  77. lt_t005u TYPE TABLE OF t005u,
  78. lt_but0bk TYPE TABLE OF but0bk,
  79. lt_bnka TYPE TABLE OF bnka,
  80. zzfn_shipper1 TYPE c,
  81. zzfn_shipper2 TYPE c,
  82. zzname_shipper1 TYPE c,
  83. zzname_shipper2 TYPE c,
  84. zzname_consignee1 TYPE c,
  85. zzname_consignee2 TYPE c,
  86. lt_mtrl_root TYPE /scmtms/t_mat_root_k,
  87. lt_matkey TYPE TABLE OF /sapapo/matkey,
  88. lt_group_mat TYPE TABLE OF zttm_group_mat_t,
  89. lt_loc_postal_address TYPE /bofu/t_addr_postal_addressk,
  90. lt_itemtr_unique TYPE TABLE OF /scmtms/s_tor_item_tr_k.
  91.  
  92. *2 поле получение
  93. mo_tor_srv->retrieve_by_association(
  94. EXPORTING
  95. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  96. it_key = it_tor_key
  97. iv_association = /scmtms/if_tor_c=>sc_association-root-stop_first
  98. iv_fill_data = abap_true
  99. IMPORTING
  100. et_target_key = DATA(lt_tor_stop_first_keys)
  101. et_data = lt_tor_stop_first ).
  102.  
  103. * IF lt_tor_stop_first IS INITIAL.
  104. * RETURN.
  105. * ENDIF.
  106.  
  107. READ TABLE lt_tor_stop_first ASSIGNING FIELD-SYMBOL(<ls_tor_stop_first>) INDEX 1.
  108.  
  109. IF <ls_tor_stop_first> IS ASSIGNED.
  110. CLEAR lv_date.
  111. CLEAR lv_time.
  112. CLEAR lv_date_result.
  113.  
  114. CONVERT TIME STAMP <ls_tor_stop_first>-plan_trans_time TIME ZONE 'UTC'
  115. INTO DATE lv_date TIME lv_time.
  116.  
  117. CONCATENATE lv_date+6(2) '.' lv_date+4(2) '.' lv_date(4) INTO lv_date_result.
  118.  
  119. ls_form-zzdate = lv_date_result.
  120. ENDIF.
  121.  
  122. *3 поле получение
  123. mo_tor_srv->retrieve(
  124. EXPORTING
  125. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  126. it_key = it_tor_key
  127. iv_fill_data = abap_true
  128. IMPORTING
  129. et_data = lt_tor_root ).
  130.  
  131. * IF lt_tor_root IS INITIAL.
  132. * RETURN.
  133. * ENDIF.
  134.  
  135. READ TABLE lt_tor_root ASSIGNING FIELD-SYMBOL(<ls_tor_root>) INDEX 1.
  136.  
  137. IF <ls_tor_root> IS ASSIGNED.
  138. ls_form-zznumber = <ls_tor_root>-tor_id.
  139. ENDIF.
  140. SHIFT ls_form-zznumber LEFT DELETING LEADING '0'.
  141.  
  142. *4 поле, 6 поле, 63 поле; 5 поле, 7 поле, 62 поле; 42 поле, 43 поле, 65 поле; 44 поле
  143. *4 поле, 6 поле, 63 поле
  144. mo_tor_srv->retrieve_by_association(
  145. EXPORTING
  146. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  147. it_key = it_tor_key
  148. iv_association = /scmtms/if_tor_c=>sc_association-root-bupa_ship_root
  149. iv_fill_data = abap_true
  150. IMPORTING
  151. et_target_key = DATA(lt_bupa_ship_keys)
  152. et_data = lt_bupa_ship_root ).
  153.  
  154. mo_bupa_srv->retrieve_by_association(
  155. EXPORTING
  156. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  157. it_key = lt_bupa_ship_keys
  158. iv_association = /bofu/if_bupa_constants=>sc_association-root-common
  159. iv_fill_data = abap_true
  160. IMPORTING
  161. et_data = lt_bupa_common ).
  162.  
  163. mo_bupa_srv->retrieve_by_association(
  164. EXPORTING
  165. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  166. it_key = lt_bupa_ship_keys
  167. iv_association = /bofu/if_bupa_constants=>sc_association-root-tax_number
  168. iv_fill_data = abap_true
  169. IMPORTING
  170. et_data = lt_bupa_tax_number ).
  171.  
  172. * IF lt_bupa_ship_keys IS INITIAL.
  173. * RETURN.
  174. * ENDIF.
  175. *
  176. * IF lt_bupa_ship_root IS INITIAL.
  177. * RETURN.
  178. * ENDIF.
  179.  
  180. SELECT *
  181. FROM but000
  182. INTO TABLE lt_but000_bupa_ship
  183. FOR ALL ENTRIES IN lt_bupa_ship_root
  184. WHERE but000~partner EQ lt_bupa_ship_root-partner.
  185.  
  186. *******************************************************************************
  187.  
  188. mo_tor_srv->retrieve_by_association(
  189. EXPORTING
  190. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  191. it_key = it_tor_key
  192. iv_association = /scmtms/if_tor_c=>sc_association-root-item_tr
  193. iv_fill_data = abap_true
  194. IMPORTING
  195. et_data = lt_itemtr
  196. et_target_key = DATA(lt_itemtr_keys) ).
  197.  
  198. mo_tor_srv->retrieve_by_association(
  199. EXPORTING
  200. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  201. it_key = lt_itemtr_keys
  202. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-itemparty
  203. IMPORTING
  204. et_target_key = DATA(lt_itemparty_keys) ).
  205.  
  206. mo_tor_srv->retrieve_by_association(
  207. EXPORTING
  208. iv_node_key = /scmtms/if_tor_c=>sc_node-itemparty
  209. it_key = lt_itemparty_keys
  210. iv_association = /scmtms/if_tor_c=>sc_association-itemparty-bupa_root
  211. IMPORTING
  212. et_data = lt_bupa_root
  213. et_target_key = DATA(lt_bupa_root_keys) ).
  214.  
  215. *******************************************************************************
  216.  
  217. mo_bp_srv->retrieve_by_association(
  218. EXPORTING
  219. it_key = lt_bupa_ship_keys
  220. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  221. iv_association = /bofu/if_bupa_constants=>sc_association-root-addressinformation
  222. IMPORTING
  223. et_target_key = DATA(lt_bupa_addrinfo_keys) ).
  224.  
  225. * IF lt_bupa_addrinfo_keys IS INITIAL.
  226. * RETURN.
  227. * ENDIF.
  228.  
  229. mo_bp_srv->retrieve_by_association(
  230. EXPORTING
  231. it_key = lt_bupa_addrinfo_keys
  232. iv_node_key = /bofu/if_bupa_constants=>sc_node-addressinformation
  233. iv_association = /bofu/if_bupa_constants=>sc_association-addressinformation-address
  234. IMPORTING
  235. et_target_key = DATA(lt_address_root_keys) ).
  236.  
  237. * IF lt_address_root_keys IS INITIAL.
  238. * RETURN.
  239. * ENDIF.
  240.  
  241. /scmtms/cl_common_helper=>get_do_keys_4_rba(
  242. EXPORTING
  243. iv_host_bo_key = /bofu/if_bupa_constants=>sc_bo_key
  244. iv_host_do_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  245. iv_do_node_key = /bofu/if_addr_constants=>sc_node-telephone
  246. iv_do_assoc_key = /bofu/if_addr_constants=>sc_association-root-telephone
  247. IMPORTING
  248. ev_node_key = lv_node_key_tel
  249. ev_assoc_key = lv_assoc_key_tel ).
  250.  
  251. * IF lv_node_key_tel IS INITIAL.
  252. * RETURN.
  253. * ENDIF.
  254. *
  255. * IF lv_assoc_key_tel IS INITIAL.
  256. * RETURN.
  257. * ENDIF.
  258.  
  259. mo_bp_srv->retrieve_by_association(
  260. EXPORTING
  261. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  262. iv_association = lv_assoc_key_tel
  263. iv_fill_data = abap_true
  264. it_key = lt_address_root_keys
  265. IMPORTING
  266. et_data = lt_telephone ).
  267.  
  268. * IF lt_telephone IS INITIAL.
  269. * RETURN.
  270. * ENDIF.
  271.  
  272. /scmtms/cl_common_helper=>get_do_keys_4_rba(
  273. EXPORTING
  274. iv_host_bo_key = /bofu/if_bupa_constants=>sc_bo_key
  275. iv_host_do_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  276. iv_do_node_key = /bofu/if_addr_constants=>sc_node-postal_address
  277. iv_do_assoc_key = /bofu/if_addr_constants=>sc_association-root-postal_address
  278. IMPORTING
  279. ev_node_key = lv_node_key
  280. ev_assoc_key = lv_assoc_key ).
  281.  
  282. * IF lv_node_key IS INITIAL.
  283. * RETURN.
  284. * ENDIF.
  285. *
  286. * IF lv_assoc_key IS INITIAL.
  287. * RETURN.
  288. * ENDIF.
  289.  
  290. mo_bp_srv->retrieve_by_association(
  291. EXPORTING
  292. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  293. iv_association = lv_assoc_key
  294. iv_fill_data = abap_true
  295. it_key = lt_address_root_keys
  296. IMPORTING
  297. et_data = lt_pos_address ).
  298.  
  299. * IF lt_pos_address IS INITIAL.
  300. * RETURN.
  301. * ENDIF.
  302.  
  303. READ TABLE lt_pos_address ASSIGNING FIELD-SYMBOL(<ls_pos_address_4>) INDEX 1.
  304.  
  305. IF <ls_pos_address_4> IS ASSIGNED.
  306. SELECT bezei
  307. FROM t005u
  308. INTO CORRESPONDING FIELDS OF TABLE lt_t005u
  309. WHERE bland EQ <ls_pos_address_4>-region
  310. AND land1 EQ <ls_pos_address_4>-country_code.
  311. ENDIF.
  312.  
  313. READ TABLE lt_t005u ASSIGNING FIELD-SYMBOL(<ls_t005u>) INDEX 1.
  314.  
  315. READ TABLE lt_bupa_ship_root ASSIGNING FIELD-SYMBOL(<ls_bupa_ship_root>) INDEX 1.
  316. READ TABLE lt_bupa_common ASSIGNING FIELD-SYMBOL(<ls_bupa_common>) INDEX 1.
  317. READ TABLE lt_bupa_tax_number ASSIGNING FIELD-SYMBOL(<ls_bupa_tax_number>) WITH KEY taxtype = 'RU1'.
  318.  
  319. IF <ls_bupa_ship_root> IS ASSIGNED.
  320. SELECT bankn, banks, bankl
  321. FROM but0bk
  322. INTO CORRESPONDING FIELDS OF TABLE @lt_but0bk
  323. WHERE partner EQ @<ls_bupa_ship_root>-partner.
  324. ENDIF.
  325.  
  326. READ TABLE lt_but0bk ASSIGNING FIELD-SYMBOL(<ls_but0bk>) INDEX 1.
  327.  
  328. IF <ls_but0bk> IS ASSIGNED.
  329. SELECT banka, ort01, bnklz, brnch
  330. FROM bnka
  331. INTO CORRESPONDING FIELDS OF TABLE @lt_bnka
  332. WHERE banks EQ @<ls_but0bk>-banks AND bankl EQ @<ls_but0bk>-bankl.
  333. ENDIF.
  334.  
  335. READ TABLE lt_bnka ASSIGNING FIELD-SYMBOL(<ls_bnka>) INDEX 1.
  336.  
  337. *4 поле
  338. IF <ls_bupa_ship_root> IS ASSIGNED AND <ls_bupa_ship_root>-type = '1'.
  339. READ TABLE lt_but000_bupa_ship ASSIGNING FIELD-SYMBOL(<ls_but000_bupa_ship_4>) WITH KEY partner = <ls_bupa_ship_root>-partner BINARY SEARCH.
  340. READ TABLE lt_telephone INTO ls_telephone_4_1 INDEX 1.
  341. READ TABLE lt_telephone INTO ls_telephone_4_2 INDEX 2.
  342.  
  343. IF <ls_bupa_common> IS ASSIGNED
  344. AND <ls_bupa_tax_number> IS ASSIGNED
  345. AND <ls_t005u> IS ASSIGNED
  346. AND <ls_pos_address_4> IS ASSIGNED.
  347. zzfn_shipper1 = |{ <ls_bupa_common>-firstname } { <ls_bupa_common>-lastname } { '; ИНН:' } { <ls_bupa_tax_number>-taxnumber } { '; адрес:' } { <ls_t005u>-bezei } { ',' } { <ls_pos_address_4>-district_name } { ',' } {
  348. <ls_pos_address_4>-city_name } { ',' } { <ls_pos_address_4>-street_name } { <ls_pos_address_4>-house_id } { ';' }|.
  349. zzfn_shipper2 = |{ ls_telephone_4_1-normalised_number_text } { ',' } { ls_telephone_4_2-normalised_number_text } { '; Р\С:' } { <ls_but0bk>-bankn } { 'в банке' } { <ls_bnka>-banka } { 'в городе' } { <ls_bnka>-ort01 } { '"БИК"' } {
  350. <ls_bnka>-bnklz } { 'К\С' } { <ls_bnka>-brnch }|.
  351.  
  352. CONCATENATE zzfn_shipper1 zzfn_shipper2
  353. INTO ls_form-zzfn_shipper SEPARATED BY space.
  354. ENDIF.
  355.  
  356. *6 поле
  357. ELSEIF <ls_bupa_ship_root> IS ASSIGNED AND <ls_bupa_ship_root>-type = '2'.
  358. READ TABLE lt_but000_bupa_ship ASSIGNING FIELD-SYMBOL(<ls_but000_bupa_ship_6>) WITH KEY partner = <ls_bupa_ship_root>-partner BINARY SEARCH.
  359. READ TABLE lt_telephone INTO ls_telephone_6_1 INDEX 1.
  360. READ TABLE lt_telephone INTO ls_telephone_6_2 INDEX 2.
  361.  
  362. IF <ls_bupa_common> IS ASSIGNED
  363. AND <ls_bupa_tax_number> IS ASSIGNED
  364. AND <ls_t005u> IS ASSIGNED
  365. AND <ls_pos_address_4> IS ASSIGNED
  366. AND <ls_but0bk> IS ASSIGNED
  367. AND <ls_bnka> IS ASSIGNED.
  368. zzname_shipper1 = |{ <ls_bupa_common>-firstname } { <ls_bupa_common>-lastname } { '; ИНН:' } { <ls_bupa_tax_number>-taxnumber } { '; адрес:' } { <ls_t005u>-bezei } { ',' } { <ls_pos_address_4>-district_name } { ',' } {
  369. <ls_pos_address_4>-city_name } { ',' } { <ls_pos_address_4>-street_name } { <ls_pos_address_4>-house_id } { ';' }|.
  370. zzname_shipper2 = |{ ls_telephone_6_1-normalised_number_text } { ',' } { ls_telephone_6_2-normalised_number_text } { '; Р\С:' } { <ls_but0bk>-bankn } { 'в банке' } { <ls_bnka>-banka } { 'в городе' } { <ls_bnka>-ort01 } { '"БИК"' } {
  371. <ls_bnka>-bnklz } { 'К\С' } { <ls_bnka>-brnch }|.
  372.  
  373. CONCATENATE zzname_shipper1 zzname_shipper2
  374. INTO ls_form-zzname_shipper SEPARATED BY space.
  375. ENDIF.
  376. ENDIF.
  377.  
  378. *63 поле, 65 поле
  379. mo_tor_srv->retrieve_by_association(
  380. EXPORTING
  381. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  382. it_key = CORRESPONDING #( lt_tor_root MAPPING key = key )
  383. iv_association = zif_enh_tor1_c=>sc_association-root-z_pdf
  384. iv_fill_data = abap_true
  385. IMPORTING
  386. et_data = lt_tor_pdf_data ).
  387.  
  388. READ TABLE lt_tor_pdf_data ASSIGNING FIELD-SYMBOL(<ls_tor_pdf>) INDEX 1.
  389. IF <ls_tor_pdf> IS ASSIGNED.
  390. ls_form-zza31 = <ls_tor_pdf>-bupa_ship_con.
  391. ls_form-zza32 = <ls_tor_pdf>-carr_con.
  392. ENDIF.
  393.  
  394. *5 поле, 7 поле, 62 поле
  395. mo_tor_srv->retrieve_by_association(
  396. EXPORTING
  397. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  398. it_key = it_tor_key
  399. iv_association = /scmtms/if_tor_c=>sc_association-root-bupa_consignee_root
  400. iv_fill_data = abap_true
  401. IMPORTING
  402. et_data = lt_bupa_consignee
  403. et_target_key = DATA(lt_bupa_consignee_keys) ).
  404.  
  405. READ TABLE lt_bupa_consignee ASSIGNING FIELD-SYMBOL(<ls_bupa_consignee>) INDEX 1.
  406.  
  407. mo_tor_srv->retrieve_by_association(
  408. EXPORTING
  409. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  410. it_key = it_tor_key
  411. iv_association = /scmtms/if_tor_c=>sc_association-root-item_tr
  412. iv_fill_data = abap_true
  413. IMPORTING
  414. et_data = lt_tor_item_tr
  415. et_target_key = DATA(lt_tor_item_tr_key) ).
  416.  
  417. IF lt_bupa_consignee IS INITIAL.
  418. READ TABLE lt_tor_item_tr ASSIGNING FIELD-SYMBOL(<ls_tor_item_tr_5>) WITH KEY consignee_id = <ls_tor_root>-consigneeid.
  419.  
  420. mo_tor_srv->retrieve_by_association(
  421. EXPORTING
  422. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  423. it_key = VALUE #( ( key = <ls_tor_item_tr_5>-key ) )
  424. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-bo_bupa_consignee
  425. iv_fill_data = abap_true
  426. IMPORTING
  427. et_data = lt_bupa_consignee
  428. et_target_key = lt_bupa_consignee_keys ).
  429. ENDIF.
  430.  
  431. CLEAR lt_bupa_common.
  432.  
  433. mo_bupa_srv->retrieve_by_association(
  434. EXPORTING
  435. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  436. it_key = lt_bupa_consignee_keys
  437. iv_association = /bofu/if_bupa_constants=>sc_association-root-common
  438. iv_fill_data = abap_true
  439. IMPORTING
  440. et_data = lt_bupa_common ).
  441.  
  442. CLEAR lt_bupa_tax_number.
  443.  
  444. mo_bupa_srv->retrieve_by_association(
  445. EXPORTING
  446. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  447. it_key = lt_bupa_consignee_keys
  448. iv_association = /bofu/if_bupa_constants=>sc_association-root-tax_number
  449. iv_fill_data = abap_true
  450. IMPORTING
  451. et_data = lt_bupa_tax_number ).
  452.  
  453. mo_bp_srv->retrieve_by_association(
  454. EXPORTING
  455. it_key = lt_bupa_consignee_keys
  456. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  457. iv_association = /bofu/if_bupa_constants=>sc_association-root-addressinformation
  458. IMPORTING
  459. et_target_key = DATA(lt_bupa_cons_addrinfo_keys) ).
  460.  
  461. mo_bp_srv->retrieve_by_association(
  462. EXPORTING
  463. it_key = lt_bupa_cons_addrinfo_keys
  464. iv_node_key = /bofu/if_bupa_constants=>sc_node-addressinformation
  465. iv_association = /bofu/if_bupa_constants=>sc_association-addressinformation-address
  466. IMPORTING
  467. et_target_key = DATA(lt_bupa_cons_address_root_keys) ).
  468.  
  469. CLEAR lt_telephone.
  470.  
  471. mo_bp_srv->retrieve_by_association(
  472. EXPORTING
  473. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  474. iv_association = lv_assoc_key_tel
  475. iv_fill_data = abap_true
  476. it_key = lt_bupa_cons_address_root_keys
  477. IMPORTING
  478. et_data = lt_telephone ).
  479.  
  480. CLEAR lt_pos_address.
  481.  
  482. mo_bp_srv->retrieve_by_association(
  483. EXPORTING
  484. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  485. iv_association = lv_assoc_key
  486. iv_fill_data = abap_true
  487. it_key = lt_bupa_cons_address_root_keys
  488. IMPORTING
  489. et_data = lt_pos_address ).
  490.  
  491. READ TABLE lt_pos_address ASSIGNING FIELD-SYMBOL(<ls_pos_address_5>) INDEX 1.
  492.  
  493. CLEAR lt_t005u.
  494.  
  495. IF <ls_pos_address_5> IS ASSIGNED.
  496. SELECT bezei
  497. FROM t005u
  498. INTO CORRESPONDING FIELDS OF TABLE lt_t005u
  499. WHERE bland EQ <ls_pos_address_5>-region.
  500. ENDIF.
  501.  
  502. READ TABLE lt_t005u ASSIGNING FIELD-SYMBOL(<ls_t005u_5>) INDEX 1.
  503. READ TABLE lt_bupa_common ASSIGNING FIELD-SYMBOL(<ls_bupa_common_5>) INDEX 1.
  504. READ TABLE lt_bupa_tax_number ASSIGNING FIELD-SYMBOL(<ls_bupa_tax_number_5>) WITH KEY taxtype = 'RU1'.
  505.  
  506. CLEAR lt_but0bk.
  507.  
  508. IF <ls_tor_item_tr_5> IS ASSIGNED.
  509. SELECT bankn, banks, bankl
  510. FROM but0bk
  511. INTO CORRESPONDING FIELDS OF TABLE @lt_but0bk
  512. WHERE partner EQ @<ls_tor_item_tr_5>-consignee_id.
  513. ELSE.
  514. SELECT bankn, banks, bankl
  515. FROM but0bk
  516. INTO CORRESPONDING FIELDS OF TABLE @lt_but0bk
  517. WHERE partner EQ @<ls_bupa_consignee>-partner.
  518. ENDIF.
  519.  
  520. READ TABLE lt_but0bk ASSIGNING FIELD-SYMBOL(<ls_but0bk_5>) INDEX 1.
  521.  
  522. CLEAR lt_bnka.
  523.  
  524. IF <ls_but0bk_5> IS ASSIGNED.
  525. SELECT banka, ort01, bnklz, brnch
  526. FROM bnka
  527. INTO CORRESPONDING FIELDS OF TABLE @lt_bnka
  528. WHERE banks EQ @<ls_but0bk_5>-banks AND bankl EQ @<ls_but0bk_5>-bankl.
  529. ENDIF.
  530.  
  531. READ TABLE lt_bnka ASSIGNING FIELD-SYMBOL(<ls_bnka_5>) INDEX 1.
  532.  
  533. *5 поле
  534. IF <ls_bupa_consignee>-type = '1'.
  535. IF lt_telephone IS NOT INITIAL.
  536. READ TABLE lt_telephone INTO ls_telephone_5_1 INDEX 1.
  537. READ TABLE lt_telephone INTO ls_telephone_5_2 INDEX 2.
  538. ENDIF.
  539.  
  540. IF <ls_bupa_common_5> IS ASSIGNED
  541. AND <ls_bupa_tax_number_5> IS ASSIGNED
  542. AND <ls_t005u> IS ASSIGNED
  543. AND <ls_pos_address_5> IS ASSIGNED
  544. AND <ls_but0bk_5> IS ASSIGNED
  545. AND <ls_bnka_5> IS ASSIGNED.
  546. zzfn_shipper1 = |{ <ls_bupa_common_5>-firstname } { <ls_bupa_common_5>-lastname } { '; ИНН:' } { <ls_bupa_tax_number_5>-taxnumber } { '; адрес:' } { <ls_t005u_5>-bezei } { ',' } { <ls_pos_address_5>-district_name } { ',' } {
  547. <ls_pos_address_5>-city_name } { ',' } { <ls_pos_address_5>-street_name } { <ls_pos_address_5>-house_id } { ';' }|.
  548. zzfn_shipper2 = |{ ls_telephone_5_1-normalised_number_text } { ',' } { ls_telephone_5_2-normalised_number_text } { '; Р\С:' } { <ls_but0bk_5>-bankn } { 'в банке' } { <ls_bnka_5>-banka } { 'в городе' } { <ls_bnka_5>-ort01 } { '"БИК"' } {
  549. <ls_bnka_5>-bnklz } { 'К\С' } { <ls_bnka_5>-brnch }|.
  550.  
  551. CONCATENATE zzfn_shipper1 zzfn_shipper2
  552. INTO ls_form-zzfn_shipper SEPARATED BY space.
  553. ENDIF.
  554.  
  555. *7 поле
  556. ELSEIF <ls_bupa_consignee>-type = '2'.
  557. READ TABLE lt_but000_bupa_consignee ASSIGNING FIELD-SYMBOL(<ls_but000_bupa_consignee_7>) WITH KEY partner = <ls_bupa_consignee>-partner BINARY SEARCH.
  558. READ TABLE lt_pos_address ASSIGNING FIELD-SYMBOL(<ls_pos_address_7>) INDEX 1.
  559. READ TABLE lt_telephone INTO ls_telephone_7_1 INDEX 1.
  560. READ TABLE lt_telephone INTO ls_telephone_7_2 INDEX 2.
  561.  
  562. IF <ls_bupa_common> IS ASSIGNED
  563. AND <ls_bupa_tax_number_5> IS ASSIGNED
  564. AND <ls_t005u> IS ASSIGNED
  565. AND <ls_pos_address_5> IS ASSIGNED
  566. AND <ls_but0bk_5> IS ASSIGNED
  567. AND <ls_bnka_5> IS ASSIGNED.
  568. zzname_consignee1 = |{ <ls_bupa_common_5>-firstname } { <ls_bupa_common_5>-lastname } { '; ИНН:' } { <ls_bupa_tax_number_5>-taxnumber } { '; адрес:' } { <ls_t005u_5>-bezei } { ',' } { <ls_pos_address_5>-district_name } { ',' } {
  569. <ls_pos_address_5>-city_name } { ',' } { <ls_pos_address_5>-street_name } { <ls_pos_address_5>-house_id } { ';' }|.
  570. zzname_consignee2 = |{ ls_telephone_5_1-normalised_number_text } { ',' } { ls_telephone_5_2-normalised_number_text } { '; Р\С:' } { <ls_but0bk_5>-bankn } { 'в банке' } { <ls_bnka_5>-banka } { 'в городе' } { <ls_bnka_5>-ort01 } { '"БИК"' } {
  571. <ls_bnka_5>-bnklz } { 'К\С' } { <ls_bnka_5>-brnch }|.
  572.  
  573. CONCATENATE zzname_consignee1 zzname_consignee2
  574. INTO ls_form-zzname_consignee SEPARATED BY space.
  575. ENDIF.
  576. ENDIF.
  577.  
  578.  
  579. *62 поле
  580. CLEAR lt_pos_address.
  581.  
  582. mo_bp_srv->retrieve_by_association(
  583. EXPORTING
  584. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  585. iv_association = lv_assoc_key
  586. iv_fill_data = abap_true
  587. it_key = lt_bupa_cons_address_root_keys
  588. IMPORTING
  589. et_data = lt_pos_address ).
  590.  
  591. * IF lt_pos_address IS INITIAL.
  592. * RETURN.
  593. * ENDIF.
  594.  
  595. READ TABLE lt_pos_address ASSIGNING FIELD-SYMBOL(<ls_pos_address_62>) INDEX 1.
  596.  
  597. IF <ls_bupa_consignee> IS ASSIGNED.
  598. SELECT but0bk~bankn, but0bk~accname, bnka~swift
  599. FROM but0bk
  600. INNER JOIN bnka
  601. ON but0bk~banks = bnka~banks
  602. AND but0bk~bankl = bnka~bankl
  603. WHERE but0bk~partner = @<ls_bupa_consignee>-partner
  604. INTO TABLE @DATA(lt_table).
  605. ENDIF.
  606.  
  607. READ TABLE lt_table ASSIGNING FIELD-SYMBOL(<ls_table>) INDEX 1.
  608.  
  609. IF <ls_bupa_consignee> IS ASSIGNED
  610. AND <ls_pos_address_62> IS ASSIGNED
  611. AND <ls_table> IS ASSIGNED.
  612. ls_form-zza33 = |{ <ls_bupa_consignee>-description } { ';' } { <ls_pos_address_62>-city_name } { ',' } { <ls_pos_address_62>-street_name } { <ls_pos_address_62>-house_id } { <ls_table>-bankn } { ',' } { <ls_table>-accname } { ',' } {
  613. <ls_table>-swift }|.
  614. ENDIF.
  615.  
  616. *42 поле, 43 поле, 65 поле
  617. SELECT *
  618. FROM but000
  619. INTO TABLE lt_but000_tor_root
  620. FOR ALL ENTRIES IN lt_tor_root
  621. WHERE but000~partner EQ lt_tor_root-tspid.
  622.  
  623. READ TABLE lt_tor_root ASSIGNING FIELD-SYMBOL(<ls_tor_root_42>) INDEX 1.
  624.  
  625. CHECK sy-subrc = 0.
  626.  
  627. ls_selpar-attribute_name = /bofu/if_bupa_constants=>sc_query_attribute-root-query_by_role-partner.
  628. ls_selpar-option = 'EQ'.
  629. ls_selpar-sign = 'I'.
  630. ls_selpar-low = <ls_tor_root_42>-tspid.
  631. APPEND ls_selpar TO lt_selpar.
  632.  
  633. * mo_bp_srv = /bobf/cl_tra_serv_mgr_factory=>get_service_manager( /bofu/if_bupa_constants=>sc_bo_key ).
  634. mo_bp_srv->query(
  635. EXPORTING
  636. iv_query_key = /bofu/if_bupa_constants=>sc_query-root-query_by_role
  637. it_selection_parameters = lt_selpar
  638. iv_fill_data = abap_true
  639. IMPORTING
  640. eo_message = go_message
  641. et_data = lt_bp_root
  642. et_key = DATA(lt_bp_root_keys) ).
  643.  
  644. mo_bp_srv->retrieve_by_association(
  645. EXPORTING
  646. it_key = lt_bp_root_keys
  647. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  648. iv_association = /bofu/if_bupa_constants=>sc_association-root-addressinformation
  649. IMPORTING
  650. et_target_key = DATA(lt_tor_root_addrinfo_keys) ).
  651.  
  652. * IF lt_tor_root_addrinfo_keys IS INITIAL.
  653. * RETURN.
  654. * ENDIF.
  655.  
  656. mo_bp_srv->retrieve_by_association(
  657. EXPORTING
  658. it_key = lt_tor_root_addrinfo_keys
  659. iv_node_key = /bofu/if_bupa_constants=>sc_node-addressinformation
  660. iv_association = /bofu/if_bupa_constants=>sc_association-addressinformation-address
  661. IMPORTING
  662. et_target_key = DATA(lt_tor_root_address_keys) ).
  663.  
  664. /scmtms/cl_common_helper=>get_do_keys_4_rba(
  665. EXPORTING
  666. iv_host_bo_key = /bofu/if_bupa_constants=>sc_bo_key
  667. iv_host_do_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  668. iv_do_node_key = /bofu/if_addr_constants=>sc_node-telephone
  669. iv_do_assoc_key = /bofu/if_addr_constants=>sc_association-root-telephone
  670. IMPORTING
  671. ev_node_key = lv_node_key_tel
  672. ev_assoc_key = lv_assoc_key_tel ).
  673.  
  674. * IF lt_tor_root_address_keys IS INITIAL.
  675. * RETURN.
  676. * ENDIF.
  677.  
  678. * CLEAR lt_telephone.
  679.  
  680. mo_bp_srv->retrieve_by_association(
  681. EXPORTING
  682. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  683. iv_association = lv_assoc_key_tel
  684. iv_fill_data = abap_true
  685. it_key = lt_tor_root_address_keys
  686. IMPORTING
  687. et_data = lt_telephone ).
  688.  
  689. * IF lt_telephone IS INITIAL.
  690. * RETURN.
  691. * ENDIF.
  692.  
  693. CLEAR lt_pos_address.
  694.  
  695. mo_bp_srv->retrieve_by_association(
  696. EXPORTING
  697. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  698. iv_association = lv_assoc_key
  699. iv_fill_data = abap_true
  700. it_key = lt_tor_root_address_keys
  701. IMPORTING
  702. et_data = lt_pos_address ).
  703.  
  704. * IF lt_pos_address IS INITIAL.
  705. * RETURN.
  706. * ENDIF.
  707.  
  708. *42 поле
  709. READ TABLE lt_bp_root ASSIGNING FIELD-SYMBOL(<ls_bupa_root>) INDEX 1.
  710.  
  711. IF <ls_bupa_root> IS ASSIGNED.
  712. IF <ls_bupa_root>-type = '1'.
  713. READ TABLE lt_but000_tor_root ASSIGNING FIELD-SYMBOL(<lt_but000_tor_root_42>) WITH KEY partner = <ls_tor_root_42>-tspid BINARY SEARCH.
  714. READ TABLE lt_pos_address ASSIGNING FIELD-SYMBOL(<ls_pos_address_42>) INDEX 1.
  715. READ TABLE lt_telephone INTO ls_telephone_42_1 INDEX 1.
  716. READ TABLE lt_telephone INTO ls_telephone_42_2 INDEX 2.
  717. ENDIF.
  718.  
  719. IF <lt_but000_tor_root_42> IS ASSIGNED
  720. AND <ls_pos_address_42> IS ASSIGNED.
  721. ls_form-zza34 = |{ <lt_but000_tor_root_42>-name_first } { <lt_but000_tor_root_42>-name_last } { <lt_but000_tor_root_42>-namemiddle } { ';' } {
  722. <ls_pos_address_42>-region } { ',' } { <ls_pos_address_42>-city_name } { ',' } { <ls_pos_address_42>-street_name } { <ls_pos_address_42>-house_id } { ';' } { ls_telephone_42_1-formatted_number_text } { ',' } { ls_telephone_42_2-formatted_number_text }|.
  723. ENDIF.
  724. ENDIF.
  725.  
  726. *43 поле
  727. IF <ls_bupa_root> IS ASSIGNED.
  728. IF <ls_bupa_root>-type = '2'.
  729. READ TABLE lt_but000_tor_root ASSIGNING FIELD-SYMBOL(<lt_but000_tor_root_43>) WITH KEY partner = <ls_tor_root_42>-tspid BINARY SEARCH.
  730. READ TABLE lt_pos_address ASSIGNING FIELD-SYMBOL(<ls_pos_address_43>) INDEX 1.
  731. READ TABLE lt_telephone INTO ls_telephone_43_1 INDEX 1.
  732. READ TABLE lt_telephone INTO ls_telephone_43_2 INDEX 2.
  733.  
  734. IF <lt_but000_tor_root_43> IS ASSIGNED
  735. AND <ls_pos_address_43> IS ASSIGNED.
  736. ls_form-zza35 = |{ <lt_but000_tor_root_43>-name_first } { <lt_but000_tor_root_43>-name_last } { <lt_but000_tor_root_43>-namemiddle } { ';' } {
  737. <ls_pos_address_43>-region } { ',' } { <ls_pos_address_43>-city_name } { ',' } { <ls_pos_address_43>-street_name } { <ls_pos_address_43>-house_id } { ';' } { ls_telephone_43_1-formatted_number_text } { ls_telephone_43_2-formatted_number_text }|.
  738. ENDIF.
  739. ENDIF.
  740. ENDIF.
  741.  
  742. *44 поле
  743. READ TABLE lt_itemtr ASSIGNING FIELD-SYMBOL(<ls_itemtr>) WITH KEY item_cat = 'DRI'.
  744. READ TABLE lt_telephone INTO ls_telephone_44_1 INDEX 1.
  745. READ TABLE lt_telephone INTO ls_telephone_44_2 INDEX 2.
  746.  
  747. IF <ls_itemtr> IS ASSIGNED.
  748. ls_form-zza36 = |{ <ls_itemtr>-item_descr } { ';' } { ls_telephone_44_1-formatted_number_text } { ',' } { ls_telephone_44_2-formatted_number_text }|.
  749. ENDIF.
  750.  
  751. *9 поле, 10 поле
  752. mo_tor_srv->retrieve_by_association(
  753. EXPORTING
  754. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  755. it_key = lt_tor_item_tr_key
  756. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-bo_material
  757. IMPORTING
  758. et_target_key = DATA(lt_tor_bo_material_key) ).
  759.  
  760. * IF lt_tor_bo_material_key IS INITIAL.
  761. * RETURN.
  762. * ENDIF.
  763.  
  764. mo_mtrl_srv->retrieve_by_association(
  765. EXPORTING
  766. iv_node_key = /scmtms/if_mat_c=>sc_node-root
  767. it_key = lt_tor_bo_material_key
  768. iv_association = /scmtms/if_mat_c=>sc_association-root-description
  769. iv_fill_data = abap_true
  770. IMPORTING
  771. et_data = lt_mtrl_description ).
  772.  
  773. * IF lt_mtrl_description IS INITIAL.
  774. * RETURN.
  775. * ENDIF.
  776.  
  777. READ TABLE lt_mtrl_description ASSIGNING FIELD-SYMBOL(<ls_mtrl_description>) INDEX 1.
  778. READ TABLE lt_tor_item_tr ASSIGNING FIELD-SYMBOL(<ls_tor_item_tr>) WITH KEY item_cat = mc_item_cat.
  779.  
  780. IF <ls_mtrl_description> IS ASSIGNED
  781. AND <ls_tor_item_tr> IS ASSIGNED.
  782. lv_qua_pcs_val_9 = <ls_tor_item_tr>-qua_pcs_val.
  783. ls_form-zzdang_info = |{ <ls_mtrl_description>-maktx } { ',' } { lv_qua_pcs_val_9 }|.
  784. ENDIF.
  785.  
  786. IF <ls_tor_item_tr> IS ASSIGNED.
  787. ls_form-zznetto = |{ <ls_tor_item_tr>-gro_wei_val } { <ls_tor_item_tr>-gro_wei_uni }|.
  788. ENDIF.
  789.  
  790. *17 поле
  791. mo_tor_srv->retrieve_by_association(
  792. EXPORTING
  793. iv_node_key = /scmtms/if_tor_c=>sc_node-root
  794. it_key = it_tor_key
  795. iv_association = /scmtms/if_tor_c=>sc_association-root-stop
  796. iv_fill_data = abap_true
  797. IMPORTING
  798. et_data = lt_tor_stop ).
  799.  
  800. READ TABLE lt_tor_stop ASSIGNING FIELD-SYMBOL(<ls_tor_stop_pos_f>) WITH KEY stop_seq_pos = mc_stop_seq_pos_f.
  801.  
  802. ls_sel_opt_f-attribute_name = 'LOCATION_ID'.
  803. ls_sel_opt_f-option = 'EQ'.
  804. ls_sel_opt_f-sign = 'I'.
  805. IF <ls_tor_stop_pos_f> IS ASSIGNED.
  806. ls_sel_opt_f-low = <ls_tor_stop_pos_f>-log_locid.
  807. ENDIF.
  808.  
  809. APPEND ls_sel_opt_f TO lt_sel_opt_f.
  810.  
  811. mo_loc_srv->query(
  812. EXPORTING
  813. iv_query_key = /scmtms/if_location_c=>sc_query-root-qdb_by_elements
  814. it_selection_parameters = lt_sel_opt_f
  815. iv_fill_data = abap_true
  816. IMPORTING
  817. et_data = lt_loc_data_f ).
  818.  
  819. * IF lt_loc_data_f IS INITIAL.
  820. * RETURN.
  821. * ENDIF.
  822.  
  823. READ TABLE lt_loc_data_f INTO DATA(ls_query_data_f) INDEX 1.
  824.  
  825. mo_loc_srv->retrieve(
  826. EXPORTING
  827. iv_node_key = /scmtms/if_location_c=>sc_node-root
  828. it_key = VALUE #( ( key = ls_query_data_f-db_key ) )
  829. iv_fill_data = abap_true
  830. IMPORTING
  831. et_data = lt_loc_root_f ).
  832.  
  833. * IF lt_loc_root_f IS INITIAL.
  834. * RETURN.
  835. * ENDIF.
  836.  
  837. READ TABLE lt_loc_root_f ASSIGNING FIELD-SYMBOL(<ls_loc_root_f>) INDEX 1.
  838.  
  839. CLEAR lt_pos_address.
  840.  
  841. mo_bp_srv->retrieve_by_association(
  842. EXPORTING
  843. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  844. iv_association = lv_assoc_key
  845. iv_fill_data = abap_true
  846. it_key = lt_address_root_keys
  847. IMPORTING
  848. et_data = lt_pos_address ).
  849.  
  850. * IF lt_pos_address IS INITIAL.
  851. * RETURN.
  852. * ENDIF.
  853.  
  854. READ TABLE lt_pos_address ASSIGNING FIELD-SYMBOL(<ls_pos_address_17>) INDEX 1.
  855.  
  856. IF <ls_tor_stop_pos_f> IS ASSIGNED
  857. AND <ls_loc_root_f> IS ASSIGNED
  858. AND <ls_pos_address_17> IS ASSIGNED.
  859. ls_form-zzload_adress = |{ <ls_loc_root_f>-adrnummer } { ',' } { <ls_pos_address_17>-country_code } { ',' } { <ls_pos_address_17>-region } { ',' } { <ls_pos_address_17>-city_name }|.
  860. ENDIF.
  861.  
  862. *26 поле
  863. READ TABLE lt_tor_stop ASSIGNING FIELD-SYMBOL(<ls_tor_stop_pos_l>) WITH KEY stop_seq_pos = mc_stop_seq_pos_l.
  864.  
  865. ls_sel_opt_l-attribute_name = 'LOCATION_ID'.
  866. ls_sel_opt_l-option = 'EQ'.
  867. ls_sel_opt_l-sign = 'I'.
  868.  
  869. IF <ls_mtrl_description> IS ASSIGNED.
  870. ls_sel_opt_l-low = <ls_tor_stop_pos_l>-log_locid.
  871. ENDIF.
  872.  
  873. APPEND ls_sel_opt_l TO lt_sel_opt_l.
  874.  
  875. mo_loc_srv->query(
  876. EXPORTING
  877. iv_query_key = /scmtms/if_location_c=>sc_query-root-qdb_by_elements
  878. it_selection_parameters = lt_sel_opt_l
  879. iv_fill_data = abap_true
  880. IMPORTING
  881. et_data = lt_loc_data_l ).
  882.  
  883. * IF lt_loc_data_l IS INITIAL.
  884. * RETURN.
  885. * ENDIF.
  886.  
  887. READ TABLE lt_loc_data_l INTO DATA(ls_query_data_l) INDEX 1.
  888.  
  889. mo_loc_srv->retrieve(
  890. EXPORTING
  891. iv_node_key = /scmtms/if_location_c=>sc_node-root
  892. it_key = VALUE #( ( key = ls_query_data_l-db_key ) )
  893. iv_fill_data = abap_true
  894. IMPORTING
  895. et_data = lt_loc_root_l ).
  896.  
  897. * IF lt_loc_root_l IS INITIAL.
  898. * RETURN.
  899. * ENDIF.
  900.  
  901. READ TABLE lt_loc_root_l ASSIGNING FIELD-SYMBOL(<ls_loc_root_l>) INDEX 1.
  902. READ TABLE lt_pos_address ASSIGNING FIELD-SYMBOL(<ls_pos_address_26>) INDEX 1.
  903.  
  904. IF <ls_tor_stop_pos_l> IS ASSIGNED
  905. AND <ls_loc_root_l> IS ASSIGNED
  906. AND <ls_pos_address_26> IS ASSIGNED.
  907. ls_form-zzuploading_adress = |{ <ls_loc_root_l>-adrnummer } { ',' } { <ls_pos_address_26>-country_code } { ',' } { <ls_pos_address_26>-region } { ',' } { <ls_pos_address_26>-city_name }|.
  908. ENDIF.
  909.  
  910. *18 поле
  911. READ TABLE lt_tor_stop ASSIGNING FIELD-SYMBOL(<ls_tor_stop_f>) WITH KEY stop_seq_pos = mc_stop_seq_pos_f.
  912.  
  913. IF <ls_tor_stop_f> IS ASSIGNED.
  914. CLEAR lv_date.
  915. CLEAR lv_time.
  916. CLEAR lv_date_result.
  917.  
  918. CONVERT TIME STAMP <ls_tor_stop_f>-plan_trans_time TIME ZONE 'UTC'
  919. INTO DATE lv_date TIME lv_time.
  920.  
  921. CONCATENATE lv_date+6(2) '.' lv_date+4(2) '.' lv_date(4) INTO lv_date_result.
  922. ls_form-zzdate_load = lv_date_result.
  923. ENDIF.
  924.  
  925. *19 поле
  926. ls_form-zztimedate_admission = ls_form-zzdate.
  927.  
  928. *22 поле
  929. IF <ls_tor_item_tr> IS ASSIGNED.
  930. ls_form-zzweight_load = |{ <ls_tor_item_tr>-gro_wei_val } { <ls_tor_item_tr>-gro_wei_uni }|.
  931. ENDIF.
  932.  
  933. *******************************************************************************************SEAL ERROR
  934. ** 23 поле
  935. * DATA: lt_seal_ext TYPE ztttm_tor_seal_ext_k.
  936. * mo_tor_srv->retrieve_by_association(
  937. * EXPORTING
  938. * iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  939. * it_key = lt_itemtr_keys
  940. * iv_association = /scmtms/if_tor_c=>sc_association-item_tr-seal
  941. * IMPORTING
  942. * et_target_key = DATA(lt_seal_keys) ).
  943. *
  944. * mo_tor_srv->retrieve_by_association(
  945. * EXPORTING
  946. * iv_node_key = /scmtms/if_tor_c=>sc_node-seal
  947. * it_key = lt_seal_keys
  948. * iv_association = zif_enh_tor1_c=>sc_association-seal-z_seal_ext
  949. * iv_fill_data = abap_true
  950. * IMPORTING
  951. * et_data = lt_seal_ext ).
  952. *
  953. * READ TABLE lt_seal_ext ASSIGNING FIELD-SYMBOL(<ls_seal_ext>) INDEX 1.
  954. * IF <ls_seal_ext> IS ASSIGNED.
  955. * ls_form-zzcargo_space = <ls_seal_ext>-qua_pcs_val_all.
  956. * ENDIF.
  957.  
  958. *24 поле
  959. mo_bp_srv->retrieve_by_association(
  960. EXPORTING
  961. it_key = lt_bupa_root_keys
  962. iv_node_key = /bofu/if_bupa_constants=>sc_node-root
  963. iv_association = /bofu/if_bupa_constants=>sc_association-root-relationship
  964. iv_fill_data = abap_true
  965. IMPORTING
  966. et_data = lt_relationship ).
  967.  
  968. * IF lt_relationship IS INITIAL.
  969. * RETURN.
  970. * ENDIF.
  971.  
  972. CLEAR lt_but000.
  973.  
  974. SELECT *
  975. FROM but000
  976. INTO TABLE lt_but000
  977. FOR ALL ENTRIES IN lt_relationship
  978. WHERE but000~partner EQ lt_relationship-partner.
  979.  
  980. READ TABLE lt_but000 ASSIGNING FIELD-SYMBOL(<ls_but000>) INDEX 1.
  981.  
  982. IF <ls_but000> IS ASSIGNED.
  983. ls_form-zza37 = |{ <ls_but000>-partner } { <ls_but000>-name_first } { <ls_but000>-name_last }|.
  984. ENDIF.
  985.  
  986. *25 поле
  987. mo_tor_srv->retrieve_by_association(
  988. EXPORTING
  989. it_key = lt_tor_item_tr_key
  990. iv_node_key = /scmtms/if_tor_c=>sc_node-item_tr
  991. iv_association = /scmtms/if_tor_c=>sc_association-item_tr-bo_driver
  992. IMPORTING
  993. et_target_key = DATA(lt_driver_key) ).
  994.  
  995. mo_drv_srm->retrieve(
  996. EXPORTING
  997. it_key = lt_driver_key
  998. iv_node_key = /scmtms/if_driver_c=>sc_node-root
  999. iv_fill_data = abap_true
  1000. IMPORTING
  1001. et_data = lt_drv_root ).
  1002.  
  1003. READ TABLE lt_drv_root ASSIGNING FIELD-SYMBOL(<ls_drv_root>) INDEX 1.
  1004.  
  1005. IF <ls_drv_root> IS ASSIGNED.
  1006. ls_form-zza38 = |{ <ls_drv_root>-name_last } { <ls_drv_root>-name_first }|.
  1007. *34 поле
  1008. ls_form-zza39 = |{ <ls_drv_root>-name_last } { <ls_drv_root>-name_first }|.
  1009. ENDIF.
  1010.  
  1011. **46 поле
  1012. * READ TABLE lt_tor_item_tr ASSIGNING FIELD-SYMBOL(<ls_item_tr>) INDEX 1.
  1013. *
  1014. * IF <ls_item_tr> IS ASSIGNED.
  1015. * ls_form-zza40 = <ls_item_tr>-platenumber.
  1016. * ENDIF.
  1017.  
  1018. * 45 поле, 46 поле
  1019. mo_res_srm->retrieve(
  1020. EXPORTING
  1021. iv_node_key = /scmtms/if_resource_c=>sc_node-root
  1022. it_key = lt_itemtr_keys
  1023. iv_fill_data = abap_true
  1024. IMPORTING
  1025. et_data = lt_res_root ).
  1026.  
  1027. * IF lt_res_root IS INITIAL.
  1028. * RETURN.
  1029. * ENDIF.
  1030.  
  1031. mo_res_srm->retrieve_by_association(
  1032. EXPORTING
  1033. iv_node_key = /scmtms/if_resource_c=>sc_node-root
  1034. it_key = lt_itemtr_keys
  1035. iv_association = /scmtms/if_resource_c=>sc_association-root-transp_capa_offer
  1036. iv_fill_data = abap_true
  1037. IMPORTING
  1038. et_data = lt_transp_capa_offer ).
  1039.  
  1040. * IF lt_transp_capa_offer IS INITIAL.
  1041. * RETURN.
  1042. * ENDIF.
  1043. READ TABLE lt_tor_item_tr ASSIGNING FIELD-SYMBOL(<ls_item_tr_45>) WITH KEY item_cat = 'AVR'.
  1044. READ TABLE lt_transp_capa_offer ASSIGNING FIELD-SYMBOL(<ls_transp_capa_offer>) INDEX 1.
  1045. READ TABLE lt_res_root ASSIGNING FIELD-SYMBOL(<ls_res_root>) INDEX 1.
  1046. READ TABLE lt_tor_root ASSIGNING FIELD-SYMBOL(<ls_tor_root_45>) INDEX 1.
  1047.  
  1048. *45 поле
  1049. IF <ls_res_root> IS ASSIGNED
  1050. AND <ls_transp_capa_offer> IS ASSIGNED
  1051. AND <ls_item_tr_45> IS ASSIGNED.
  1052. ls_form-zza41 = |{ <ls_item_tr_45>-tracking_no } { ',' } { <ls_res_root>-description } { ',' } { <ls_transp_capa_offer>-qty_value } { ',' } { <ls_item_tr_45>-gro_wei_valcap } { ',' } { <ls_item_tr_45>-gro_vol_valcap }|.
  1053. ENDIF.
  1054.  
  1055. *46 поле
  1056. IF <ls_item_tr_45> IS ASSIGNED.
  1057. ls_form-zza40 = <ls_item_tr_45>-tracking_no.
  1058. ENDIF.
  1059.  
  1060. *7x поле
  1061. mo_mtrl_srv->retrieve(
  1062. EXPORTING
  1063. iv_node_key = /scmtms/if_mat_c=>sc_node-root
  1064. it_key = lt_tor_bo_material_key
  1065. iv_fill_data = abap_true
  1066. IMPORTING
  1067. et_data = lt_mtrl_root ).
  1068.  
  1069. READ TABLE lt_mtrl_root ASSIGNING FIELD-SYMBOL(<ls_mater_root>) INDEX 1.
  1070.  
  1071. IF <ls_mater_root> IS ASSIGNED.
  1072.  
  1073. SELECT matnr matkl
  1074. FROM /sapapo/matkey
  1075. INTO CORRESPONDING FIELDS OF TABLE lt_matkey
  1076. WHERE matnr EQ <ls_mater_root>-internal_id.
  1077.  
  1078. READ TABLE lt_matkey ASSIGNING FIELD-SYMBOL(<ls_matkey>) INDEX 1.
  1079.  
  1080. IF <ls_matkey> IS ASSIGNED.
  1081. SELECT wgbez
  1082. FROM zttm_group_mat_t
  1083. INTO CORRESPONDING FIELDS OF TABLE lt_group_mat
  1084. WHERE matkl EQ <ls_matkey>-matkl .
  1085. ENDIF.
  1086. ENDIF.
  1087.  
  1088. *8x поле
  1089.  
  1090. *9x поле
  1091.  
  1092. *10x поле
  1093. IF <ls_bupa_root>-type = '1'.
  1094. ls_form-zz10x_priem_gruza = ls_form-zza34.
  1095. ELSEIF <ls_bupa_root>-type = '2'.
  1096. ls_form-zz10x_priem_gruza = ls_form-zza35.
  1097. ENDIF.
  1098.  
  1099. *11x поле
  1100. mo_tor_srv->retrieve_by_association(
  1101. EXPORTING
  1102. iv_node_key = /scmtms/if_tor_c=>sc_node-stop
  1103. it_key = lt_tor_stop_first_keys
  1104. iv_association = /scmtms/if_tor_c=>sc_association-stop-bo_loc_log
  1105. iv_fill_data = abap_false
  1106. IMPORTING
  1107. et_target_key = DATA(lt_stop_first_bo_loc_log_keys) ).
  1108.  
  1109. mo_loc_srv->retrieve_by_association(
  1110. EXPORTING
  1111. iv_node_key = /scmtms/if_location_c=>sc_node-root
  1112. it_key = lt_stop_first_bo_loc_log_keys
  1113. iv_association = /scmtms/if_location_c=>sc_association-root-geographical_information
  1114. iv_fill_data = abap_false
  1115. IMPORTING
  1116. et_target_key = DATA(loc_geo_keys) ).
  1117.  
  1118. mo_loc_srv->retrieve_by_association(
  1119. EXPORTING
  1120. iv_node_key = /scmtms/if_location_c=>sc_node-geographical_information
  1121. it_key = loc_geo_keys
  1122. iv_association = /scmtms/if_location_c=>sc_association-geographical_information-address
  1123. iv_fill_data = abap_false
  1124. IMPORTING
  1125. et_target_key = DATA(loc_geo_address) ).
  1126.  
  1127. /scmtms/cl_common_helper=>get_do_keys_4_rba(
  1128. EXPORTING
  1129. iv_host_bo_key = /bofu/if_bupa_constants=>sc_bo_key
  1130. iv_host_do_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  1131. iv_do_node_key = /bofu/if_addr_constants=>sc_node-postal_address
  1132. iv_do_assoc_key = /bofu/if_addr_constants=>sc_association-root-postal_address
  1133. IMPORTING
  1134. ev_node_key = lv_node_key
  1135. ev_assoc_key = lv_assoc_key ).
  1136.  
  1137. mo_bp_srv->retrieve_by_association(
  1138. EXPORTING
  1139. iv_node_key = /bofu/if_bupa_constants=>sc_node-/bofu/address
  1140. iv_association = lv_assoc_key
  1141. iv_fill_data = abap_true
  1142. it_key = loc_geo_address
  1143. IMPORTING
  1144. et_data = lt_loc_postal_address ).
  1145.  
  1146. READ TABLE lt_loc_postal_address ASSIGNING FIELD-SYMBOL(<ls_loc_postal_address>) INDEX 1.
  1147.  
  1148. CLEAR lt_t005u.
  1149.  
  1150. IF <ls_loc_postal_address> IS ASSIGNED.
  1151. SELECT land1, bland, bezei
  1152. FROM t005u
  1153. INTO CORRESPONDING FIELDS OF TABLE @lt_t005u
  1154. WHERE land1 EQ @<ls_loc_postal_address>-country_code AND bland EQ @<ls_loc_postal_address>-region.
  1155. ENDIF.
  1156.  
  1157. READ TABLE lt_t005u ASSIGNING FIELD-SYMBOL(<ls_t005u_11x>) INDEX 1.
  1158.  
  1159. IF <ls_t005u_11x> IS ASSIGNED
  1160. AND <ls_loc_postal_address> IS ASSIGNED.
  1161. ls_form-zz11x_priem_gruza = |{ <ls_t005u_11x>-bezei } { ',' } { <ls_loc_postal_address>-city_name } { ',' } { <ls_loc_postal_address>-street_name } { <ls_loc_postal_address>-house_id }|.
  1162. ENDIF.
  1163.  
  1164. **********************************************************************
  1165. APPEND LINES OF lt_itemtr TO lt_itemtr_unique.
  1166.  
  1167. SORT lt_itemtr_unique BY consignee_id key.
  1168.  
  1169. DELETE ADJACENT DUPLICATES FROM lt_itemtr_unique COMPARING consignee_id.
  1170.  
  1171. LOOP AT lt_itemtr_unique INTO DATA(ls_itemtr_unique).
  1172.  
  1173. CLEAR ls_form.
  1174.  
  1175.  
  1176.  
  1177. ENDLOOP.
  1178.  
  1179. MOVE-CORRESPONDING ls_form TO es_form.
  1180. ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement