Você está na página 1de 3

method IDENTIFICAR_VENDA.

***VENDA
LOOP AT ti_vol_venda ASSIGNING FIELD-SYMBOL(<fs_vol_v>).

CLEAR: e_ysfatura_venda.
READ TABLE lt_ysfatura_venda INTO e_ysfatura_venda
WITH KEY contrato = <fs_vol_v>-contrato
mes = <fs_vol_v>-mes
ano = <fs_vol_v>-ano
grp_cnt_vnd = <fs_vol_v>-grp_cnt_vnd
dt_ini = <fs_vol_v>-dt_ini
dt_fin = <fs_vol_v>-dt_fin
id_alc = <fs_vol_v>-id_alc
id_uso = <fs_vol_v>-id_uso
id_orig = <fs_vol_v>-id_orig
id_pe = <fs_vol_v>-id_pe.

IF sy-subrc IS NOT INITIAL.

CALL FUNCTION 'NUMBER_GET_NEXT'


EXPORTING
nr_range_nr = '01'
object = 'YID_FATURA'
IMPORTING
number = lv_num_fatura
EXCEPTIONS
interval_not_found = 1
number_range_not_intern = 2
object_not_found = 3
quantity_is_0 = 4
quantity_is_not_1 = 5
interval_overflow = 6
buffer_overflow = 7
OTHERS = 8.

IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

e_ysfatura_venda-mandt = sy-mandt.
e_ysfatura_venda-id_faturamento = lv_num_fatura.
e_ysfatura_venda-grp_cnt_vnd = <fs_vol_v>-grp_cnt_vnd.
e_ysfatura_venda-mes = <fs_vol_v>-mes.
e_ysfatura_venda-ano = <fs_vol_v>-ano.
e_ysfatura_venda-contrato = <fs_vol_v>-contrato.
e_ysfatura_venda-dt_ini = <fs_vol_v>-dt_ini.
e_ysfatura_venda-dt_fin = <fs_vol_v>-dt_fin.
e_ysfatura_venda-id_alc = <fs_vol_v>-id_alc.
e_ysfatura_venda-id_uso = <fs_vol_v>-id_uso.
e_ysfatura_venda-id_orig = <fs_vol_v>-id_orig.
e_ysfatura_venda-id_pe = <fs_vol_v>-id_pe.

<fs_vol_v>-id_faturamento = lv_num_fatura.

APPEND e_ysfatura_venda TO lt_ysfatura_venda .


CLEAR lv_num_fatura.
ELSE.

<fs_vol_v>-id_faturamento = e_ysfatura_venda-id_faturamento.

ENDIF.

** F4QS - Ajuste

DATA: lv_data TYPE char8 .


DATA: lv_regiao TYPE char3.

* Verifica se região é a mesma da anterior e data


IF ( lv_regiao NE <fs_vol_v>-gp_client ) AND ( lv_data EQ <fs_vol_v>-
dt_fin ) .

CALL FUNCTION 'NUMBER_GET_NEXT'


EXPORTING
nr_range_nr = '01'
object = 'YID_FATURA'
IMPORTING
number = lv_num_fatura
EXCEPTIONS
interval_not_found = 1
number_range_not_intern = 2
object_not_found = 3
quantity_is_0 = 4
quantity_is_not_1 = 5
interval_overflow = 6
buffer_overflow = 7
OTHERS = 8.

IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

e_ysfatura_venda-mandt = sy-mandt.
e_ysfatura_venda-id_faturamento = lv_num_fatura.
e_ysfatura_venda-grp_cnt_vnd = <fs_vol_v>-grp_cnt_vnd.
e_ysfatura_venda-mes = <fs_vol_v>-mes.
e_ysfatura_venda-ano = <fs_vol_v>-ano.
e_ysfatura_venda-contrato = <fs_vol_v>-contrato.
e_ysfatura_venda-dt_ini = <fs_vol_v>-dt_ini.
e_ysfatura_venda-dt_fin = <fs_vol_v>-dt_fin.
e_ysfatura_venda-id_alc = <fs_vol_v>-id_alc.
e_ysfatura_venda-id_uso = <fs_vol_v>-id_uso.
e_ysfatura_venda-id_orig = <fs_vol_v>-id_orig.
e_ysfatura_venda-id_pe = <fs_vol_v>-id_pe.

<fs_vol_v>-id_faturamento = lv_num_fatura.

APPEND e_ysfatura_venda TO lt_ysfatura_venda .


CLEAR lv_num_fatura.

** F4QS - Ajuste
ENDIF.
* Guarda o valor
lv_data = <fs_vol_v>-dt_fin.
lv_regiao = <fs_vol_v>-gp_client .

ENDLOOP.

IF lt_ysfatura_venda IS NOT INITIAL.

MODIFY yssifat_id_vnd FROM TABLE lt_ysfatura_venda.

COMMIT WORK.

ENDIF.

endmethod.

Você também pode gostar