Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- * REPORT ZWITI030 *
- *----------------------------------------------------------------------*
- * Descripción: *
- * Marcado de movimientos a traspasar *
- *----------------------------------------------------------------------*
- *----------------------------------------------------------------------*
- * MODIFICACIONES: upgrade 4.6B
- * FECHA: 08.05.2000
- * PROGRAMADOR: Roberto Galindo (ISI). Usuario: Fex00493
- * DESCRIPCION: se añaden los literales al pool de textos.
- *----------------------------------------------------------------------*
- *----------------------------------------------------------------------*
- * FORM TRATAMIENTO_DE_LO_SELECCIONADO *
- *----------------------------------------------------------------------*
- FORM tratamiento_de_lo_seleccionado.
- CONCATENATE 'XITI' p_bukrs INTO nombre_bi.
- CLEAR control_altas.
- REFRESH control_altas.
- IF p_online = 'X' OR p_fondo = 'X'.
- PERFORM abrir_batch USING nombre_bi.
- ENDIF.
- IF p_anular IS INITIAL.
- PERFORM tratar_movimientos.
- PERFORM marcado_peps.
- ELSE.
- PERFORM tratar_anulacion.
- PERFORM desmarcado_peps.
- ENDIF.
- IF p_online = 'X' or p_fondo = 'X'.
- PERFORM cerrar_batch.
- ENDIF.
- * Inicio de modificación. VCA
- *DAS 20709/2007 Inicio solicitud 7700000579 . Se debe crear BI tanto en
- *fondo como en online. y ejecutarse automáticamente...
- IF p_fondo = 'X'.
- PERFORM lanzar_bi using nombre_bi.
- ENDIF.
- *DAS 20709/2007 fin solicitud 7700000579
- * Fin de modificación. VCA
- * Si se ha listado alguna información como:
- * -Peps erroneos que no se pueden traspasar
- * -Peps que el usuario ha decidido traspasar manualmente
- * -Peps marcados/desmarcados por el traspaso
- MESSAGE i500 WITH nombre_bi.
- IF hay_informacion = 'X'.
- sy-lsind = 0.
- ELSE.
- LEAVE PROGRAM.
- ENDIF.
- ENDFORM. " TRATAMIENTO_DE_LO_SELECCIONADO
- *&---------------------------------------------------------------------*
- *& Form lanzar_bi
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- FORM lanzar_bi using p_nombre_batch like apqi-groupid.
- SUBMIT rsbdcsub WITH mappe = p_nombre_batch
- WITH fehler = space
- EXPORTING LIST TO MEMORY
- AND RETURN.
- ENDFORM. "lanzar_bi
- *----------------------------------------------------------------------*
- * FORM TRATAR_ANULACION *
- *----------------------------------------------------------------------*
- FORM tratar_anulacion.
- SORT movimientos BY anln1 anln2 lnran.
- LOOP AT movimientos WHERE traspasar EQ 'X'.
- ON CHANGE OF movimientos-anln1 OR
- movimientos-anln2 OR
- movimientos-lnran.
- IF NOT movimientos-bwasl = '999'.
- PERFORM generar_anulacion_traspaso.
- ENDIF.
- ENDON.
- ON CHANGE OF movimientos-anln1 OR movimientos-anln2.
- PERFORM desmarcar_mov_traspasados.
- ENDON.
- AT LAST.
- PERFORM desmarcar_mov_traspasados.
- ENDAT.
- ENDLOOP.
- ENDFORM. "TRATAR_ANULACION
- *----------------------------------------------------------------------*
- * FORM TRATAR_MOVIMIENTOS *
- *----------------------------------------------------------------------*
- FORM tratar_movimientos.
- * Lista movimientos erroneos
- * Ej. No hay inmovilizado material para repartir orden comun
- * perform listar_errores.
- * Marca movimientos a traspasar y genera el batch input de traspaso
- PERFORM generar_traspaso.
- * Lista los movimientos que se han seleccionado para traspasar
- * manualmente y los marca
- PERFORM lista_peps_despreciados.
- ENDFORM. "TRATAR_MOVIMIENTOS
- *---------------------------------------------------------------------*
- * FORM LISTAR_ERRORES *
- *---------------------------------------------------------------------*
- * Lista los movimientos que no se pueden traspasar porque: *
- * - No hay movimientos inmovilizado material para repartir orden comun*
- * - No hay saldo inmovilizado material para repartir orden comun *
- *---------------------------------------------------------------------*
- FORM validar_errores USING sw_error_reparto.
- DATA: tiene_saldo,
- suma_saldo LIKE anep-anbtr,
- tiene_movim,
- sw_ordenes_comunes,
- sw_movimientos.
- CLEAR sw_error_reparto.
- SET PF-STATUS 'ZAMA' EXCLUDING menu.
- CLEAR: flag,
- traspaso.
- REFRESH traspaso.
- * Completamos tabla interna de repartos.
- SORT repartos BY posid.
- LOOP AT repartos WHERE posid = movimientos-posid.
- MOVE-CORRESPONDING repartos TO repartos1.
- CLEAR repartos1-anln1.
- COLLECT repartos1.
- ENDLOOP.
- * Verifica que hay importes para ordenes comunes
- PERFORM verifica_ordenes_comunes USING sw_ordenes_comunes.
- IF sw_ordenes_comunes = 'X'.
- * Tiene importes ordenes comunes a repartir
- PERFORM verifica_inversion_material
- USING tiene_movim tiene_saldo.
- CLEAR: tiene_saldo, tiene_movim, suma_saldo.
- LOOP AT repartos_por_elem_area WHERE posid = pep-posid.
- tiene_movim = 'X'.
- suma_saldo = suma_saldo + repartos_por_elem_area-anbtr.
- ENDLOOP.
- IF suma_saldo <> 0.
- tiene_saldo = 'X'.
- ENDIF.
- IF tiene_movim IS INITIAL
- * No tiene movimientos inmovilizado material para repartir
- * orden comun
- OR tiene_saldo IS INITIAL.
- * IF TIENE_MOVIM IS INITIAL. "Modificación fex00140 19.01.2000
- sw_error_reparto = 'X'.
- * ENDIF. "Modificación fex00140 19.01.2000
- ENDIF.
- ELSE.
- PERFORM verifica_movimientos USING sw_movimientos.
- IF sw_movimientos = ' '.
- * No tiene saldo inmovilizado material para repartiro orden comun
- sw_error_reparto = 'X'.
- ENDIF.
- ENDIF.
- ENDFORM. "VALIDAR_ERRORES
- *---------------------------------------------------------------------*
- * FORM GENERAR_TRASPASO *
- *---------------------------------------------------------------------*
- * ........ *
- *---------------------------------------------------------------------*
- FORM generar_traspaso.
- SORT movimientos BY anln1 anln2.
- CLEAR: traspaso,
- emisor.
- LOOP AT movimientos WHERE traspasar = 'X'.
- * Inicio Modificación Mariona Donnay 24.02.2005
- * Lo asteriscamos porquè puede darse el error de que uno de los
- * elementos de explotaicón NO tenga la fecha de capitalización
- * IF ( NOT MOVIMIENTOS-BWASL IN C_CLASE_BAJA AND
- * NOT MOVIMIENTOS-BWASL IN C_CLASE_TRASLADO ).
- * PERFORM MARCAR_MOVIMIENTO.
- * ENDIF.
- * Fin Modificació Mariona Donnay 24.02.2005
- ON CHANGE OF movimientos-anln1 OR movimientos-anln2.
- IF NOT emisor IS INITIAL.
- PERFORM traspaso.
- CLEAR traspaso.
- REFRESH traspaso.
- ENDIF.
- MOVE-CORRESPONDING movimientos TO emisor.
- ENDON.
- MOVE-CORRESPONDING movimientos TO traspaso.
- IF movimientos-orden_comun IS INITIAL.
- CLEAR traspaso-posid.
- ENDIF.
- COLLECT traspaso.
- IF traspaso-afabe EQ c_areamed.
- traspaso-afabe = c_areacon.
- traspaso-cantidad = - traspaso-cantidad.
- COLLECT traspaso.
- ENDIF.
- ENDLOOP.
- IF NOT emisor IS INITIAL.
- PERFORM traspaso.
- ENDIF.
- * Inicio Modificació Mariona Donnay 24.02.2005
- * Si todo ha ido correctamente entonces marcaremos el elemento en curso
- * como traspasado.
- LOOP AT movimientos WHERE traspasar = 'X'.
- IF ( NOT movimientos-bwasl IN c_clase_baja AND
- NOT movimientos-bwasl IN c_clase_traslado ).
- PERFORM marcar_movimiento.
- ENDIF.
- ENDLOOP.
- * Fin Modificación Mariona Donnay 24.02.2005
- ENDFORM. "GENERAR_TRASPASO
- *---------------------------------------------------------------------*
- * FORM LISTA_PEPS_DESPRECIADOS *
- *---------------------------------------------------------------------*
- * Lista los movimientos seleccionados para traspasar manualmente *
- *---------------------------------------------------------------------*
- FORM lista_peps_despreciados.
- DATA: atrib TYPE p.
- tipo_listado = 'D'. "Listado de peps despreciados
- NEW-PAGE.
- SORT movimientos BY anlue posid.
- LOOP AT movimientos WHERE despreciar = 'X'.
- ON CHANGE OF movimientos-anlue.
- * at new anlue.
- READ TABLE instalaciones WITH KEY anlue = movimientos-anlue.
- * endat.
- ENDON.
- ON CHANGE OF movimientos-posid.
- * at new posid.
- SKIP.
- FORMAT COLOR OFF.
- WRITE: /10 ' ', text-019, ' ',
- instalaciones-anlue COLOR OFF INTENSIFIED OFF,
- ' ', text-028, ' ',
- movimientos-posid COLOR OFF INTENSIFIED OFF.
- * endat.
- ENDON.
- IF ( NOT movimientos-bwasl IN c_clase_baja AND
- NOT movimientos-bwasl IN c_clase_traslado ).
- PERFORM marcar_movimiento.
- ENDIF.
- ADD 1 TO atrib1.
- atrib = ( atrib1 MOD 2 ) + 1.
- FORMAT COLOR = atrib.
- WRITE: movimientos-cantidad TO cant_escribir CURRENCY c_moneda,
- movimientos-anbtr TO cant_escribir1 CURRENCY c_moneda.
- READ TABLE ordenes WITH KEY aufnr = movimientos-aufnr.
- SELECT SINGLE anlkl FROM anla INTO anla-anlkl
- WHERE bukrs = p_bukrs
- AND anln1 = movimientos-anln1
- AND anln2 = movimientos-anln2.
- SELECT SINGLE * FROM ziccl WHERE anlkl = anla-anlkl.
- WRITE: /1 movimientos-aufnr,
- 16 ordenes-orden_comun NO-GAP,
- 17 sy-vline NO-GAP,
- 18 ziccl-comun,
- 20 movimientos-anln1,
- 33 movimientos-anln2,
- 39 movimientos-afabe,
- 44 movimientos-bwasl,
- 50 movimientos-bzdat,
- 61 cant_escribir1,
- cant_escribir.
- ENDLOOP.
- ENDFORM. " TRATAR_MOVIMIENTOS
- *---------------------------------------------------------------------*
- * FORM VERIFICA_ORDENES_COMUNES *
- *---------------------------------------------------------------------*
- * Verifica que hay importes para ordenes comunes a repartir *
- *---------------------------------------------------------------------*
- * --> SW_ORDENES_COMUNES *
- *---------------------------------------------------------------------*
- FORM verifica_ordenes_comunes USING sw_ordenes_comunes.
- * loop at movs_peps where posid = PEP-posid
- LOOP AT movs_peps WHERE posid = movimientos-posid
- AND comun = 'X'
- AND anbtr <> 0.
- ENDLOOP.
- IF sy-subrc EQ 0.
- sw_ordenes_comunes = 'X'.
- ELSE.
- sw_ordenes_comunes = ' '.
- ENDIF.
- ENDFORM. "VERIFICA_ORDENES_COMUNES
- *---------------------------------------------------------------------*
- * FORM VERIFICA_MOVIMIENTOS *
- *---------------------------------------------------------------------*
- * ........ *
- *---------------------------------------------------------------------*
- * --> SW_MOVIMIENTOS *
- *---------------------------------------------------------------------*
- FORM verifica_movimientos USING sw_movimientos.
- * loop at movs_peps where posid = pep-posid
- LOOP AT movs_peps WHERE posid = movimientos-posid
- AND comun = ' '
- AND anbtr <> 0.
- ENDLOOP.
- * if sy-subrc eq 0. "COMENTADO JUAN 23-09-1999
- sw_movimientos = 'X'.
- * else. "COMENTADO JUAN 23-09-1999
- * sw_movimientos = ' '. "COMENTADO JUAN 23-09-1999
- * endif. "COMENTADO JUAN 23-09-1999
- ENDFORM. "VERIFICA_MOVIMIENTOS
- *---------------------------------------------------------------------*
- * FORM VERIFICA_INVERSION_MATERIAL *
- *---------------------------------------------------------------------*
- * ........ *
- *---------------------------------------------------------------------*
- * --> TIENE_MOVIM *
- * --> TIENE_SALDO *
- *---------------------------------------------------------------------*
- FORM verifica_inversion_material USING tiene_movim tiene_saldo.
- DATA: suma_saldo LIKE anep-anbtr.
- CLEAR: tiene_saldo, tiene_movim, suma_saldo.
- * loop at repartos_por_elem_area where posid = pep-posid.
- LOOP AT repartos_por_elem_area WHERE posid = movimientos-posid.
- tiene_movim = 'X'.
- suma_saldo = suma_saldo + repartos_por_elem_area-anbtr.
- ENDLOOP.
- IF suma_saldo <> 0.
- tiene_saldo = 'X'.
- ENDIF.
- ENDFORM. "VERIFICA_INVERSION_MATERIAL
- ************************************************************************
- * Marcado de los Pep con estado "CERR".
- *-----------------------------------------------------------------------
- * 1º Parte
- * Coge los peps seleccionados que no hayan tenido movimientos:
- * y si su status es CERR ==> los marca
- * sino ==> los desmarca
- * 2º Parte
- * Coge los peps a traspasar o a traspasar manualmente:
- * y si su status es CERR ==> los marca
- * sino ==> los desmarca
- * 3º Parte
- * Lista los peps marcados o desmarcados
- *----------------------------------------------------------------------*
- FORM marcado_peps.
- **********
- * 1º Parte
- * Coge los peps seleccionados que no hayan tenido movimientos:
- * y si su status es CERR ==> los marca
- * sino ==> los desmarca
- **********
- LOOP AT peps_seleccionados.
- CLEAR peps_listado.
- MOVE peps_seleccionados-posid TO peps_listado-posid.
- READ TABLE pep WITH KEY posid = peps_seleccionados-posid.
- * Si no ha tenido movimientos
- IF sy-subrc NE 0.
- MOVE 'NO' TO peps_listado-procesado.
- MOVE peps_seleccionados-estado TO peps_listado-estado.
- IF peps_seleccionados-estado = ce_cerr.
- WRITE p_fecha TO peps_listado-nue_fecha.
- ELSE.
- CLEAR peps_listado-nue_fecha.
- ENDIF.
- SELECT * FROM prps WHERE posid = peps_seleccionados-posid.
- peps_listado-ant_fecha = prps-usr03.
- IF peps_listado-ant_fecha NE peps_listado-nue_fecha.
- prps-usr03 = peps_listado-nue_fecha.
- MODIFY prps.
- APPEND peps_listado.
- ENDIF.
- ENDSELECT.
- ENDIF.
- ENDLOOP.
- **********
- * 2º Parte
- * Coge los peps a traspasar o a traspasar manualmente:
- * y si su status es CERR ==> los marca
- * sino ==> los desmarca
- **********
- LOOP AT pep WHERE ( traspasar = 'X' OR despreciar = 'X' ).
- CLEAR peps_listado.
- MOVE pep-posid TO peps_listado-posid.
- MOVE 'SI' TO peps_listado-procesado.
- MOVE pep-estado TO peps_listado-estado.
- *** DMA 22/06/05 ******** INI ******************************
- DATA: wa_aufk LIKE aufk,
- wa_anepk LIKE v_anepk.
- IF pep-estado = ce_cerr.
- SELECT * FROM aufk INTO wa_aufk WHERE pspel = pep-posid.
- SELECT SINGLE * FROM v_anepk INTO wa_anepk
- WHERE objid = wa_aufk-aufnr
- AND auglz = ' '
- AND anbtr <> 0." importe distinto de 0
- IF sy-subrc = 0.
- CONTINUE.
- ELSE.
- WRITE p_fecha TO peps_listado-nue_fecha.
- EXIT.
- ENDIF.
- CLEAR wa_aufk.
- ENDSELECT.
- *** DMA 22/06/05 ******** FIN ******************************
- ELSE.
- CLEAR peps_listado-nue_fecha.
- ENDIF.
- SELECT * FROM prps WHERE posid = pep-posid.
- MOVE prps-usr03 TO peps_listado-ant_fecha.
- IF peps_listado-ant_fecha NE peps_listado-nue_fecha.
- prps-usr03 = peps_listado-nue_fecha.
- MODIFY prps.
- APPEND peps_listado.
- ENDIF.
- ENDSELECT.
- ENDLOOP.
- **********
- * 3º Parte. Listado de peps marcados o desmarcados
- **********
- tipo_listado = 'P'.
- NEW-PAGE.
- LOOP AT peps_listado.
- WRITE: / peps_listado-posid.
- WRITE: 23 peps_listado-procesado.
- WRITE: 36 peps_listado-estado.
- WRITE 50 peps_listado-ant_fecha.
- WRITE 71 peps_listado-nue_fecha.
- ENDLOOP.
- ENDFORM. " marcar_pep
- *----------------------------------------------------------------------*
- * Desmacado de los Pep con fecha ultimo traspaso = fecha de traspaso
- *----------------------------------------------------------------------*
- FORM desmarcado_peps.
- RANGES r_anlue FOR anla-anlue.
- r_anlue-option = 'EQ'.
- r_anlue-sign = 'I'.
- LOOP AT instalaciones WHERE traspasar = 'X'.
- r_anlue-low = instalaciones-anlue.
- APPEND r_anlue.
- ENDLOOP.
- REFRESH peps_listado.
- * DESMARCA LOS PEPS DE LAS INSTALACIONES ANULADAS
- CLEAR c_usr03.
- WRITE p_fecha TO fecha_tra.
- SELECT posid usr00 usr03 usr00
- FROM prps
- INTO (pep_posid, pep_usr00, pep_usr03, pep_anlue)
- WHERE pkokr = p_kokrs AND
- pbukr = p_bukrs AND
- zzinvgas = c_inversion.
- MOVE pep_anlue TO inst_a_convertir.
- PERFORM convertir_sin_ceros.
- CHECK inst_a_convertir IN r_anlue.
- IF pep_usr03+3(7) = fecha_tra+3(7).
- peps_listado-posid = prps-posid.
- peps_listado-ant_fecha = pep_usr03.
- CLEAR prps-usr03.
- peps_listado-nue_fecha = pep_usr03.
- APPEND peps_listado.
- MODIFY prps.
- ENDIF.
- ENDSELECT.
- SET PF-STATUS 'ZAMB'.
- tipo_listado = 'P'.
- NEW-PAGE.
- LOOP AT peps_listado.
- WRITE: / peps_listado-posid.
- WRITE 23 peps_listado-ant_fecha.
- WRITE 44 peps_listado-nue_fecha.
- ENDLOOP.
- ENDFORM. " Desmarcar_pep
- *----------------------------------------------------------------------*
- * FORM TRASPASO *
- *----------------------------------------------------------------------*
- * Realizacion del traspaso. *
- *----------------------------------------------------------------------*
- FORM traspaso.
- DATA cantidad LIKE traspaso-cantidad.
- receptor-anln2(1) = p_fecha(1).
- receptor-anln2+1(2) = p_fecha+2(2).
- receptor-anln2+3(1) = emisor-anln2+3(1).
- LOOP AT traspaso WHERE cantidad NE 0.
- IF traspaso-posid IS INITIAL.
- receptor-anln1 = emisor-anln1.
- receptor-anln1(1) = emisor-anln1(1) - 1.
- PERFORM tratar_receptor USING emisor-anln1.
- ELSE.
- LOOP AT repartos WHERE posid EQ traspaso-posid.
- receptor-anln1 = repartos-anln1.
- receptor-anln1(1) = repartos-anln1(1) - 1.
- PERFORM tratar_receptor USING repartos-anln1.
- ENDLOOP.
- ENDIF.
- ENDLOOP.
- * Generacion de los movimientos de traspaso.
- PERFORM generar_movimiento_de_traspaso.
- ENDFORM. "TRASPASO
- *----------------------------------------------------------------------*
- * FORM DESMARCAR_MOV_TRASPASADOS *
- *----------------------------------------------------------------------*
- * Desmarcar los inmovilizados marcados con el período y el año de la *
- * fecha de traspaso *
- *----------------------------------------------------------------------*
- FORM desmarcar_mov_traspasados.
- UPDATE anek SET: auglz = space
- augln = space
- WHERE bukrs = p_bukrs AND
- anln1 = movimientos-anln1 AND
- anln2 = movimientos-anln2 AND
- * bzdat = p_fecha and 'NO son originales
- auglz = p_fecha+4(2) AND
- augln = p_fecha(4).
- ENDFORM. " DESMARCAR_MOVIMIENTOS_TRASPASADOS
- *----------------------------------------------------------------------*
- * FORM MARCAR_MOVIMIENTO *
- *----------------------------------------------------------------------*
- * Marcar el movimiento como traspasado *
- *----------------------------------------------------------------------*
- FORM marcar_movimiento.
- UPDATE anek SET: auglz = p_fecha+4(2)
- augln = p_fecha(4)
- WHERE bukrs = p_bukrs AND
- anln1 = movimientos-anln1 AND
- anln2 = movimientos-anln2 AND
- gjahr = movimientos-gjahr AND
- lnran = movimientos-lnran.
- ENDFORM. " FORM MARCAR_MOVIMIENTO
- *----------------------------------------------------------------------*
- * FORM TRATAR_RECEPTOR *
- *----------------------------------------------------------------------*
- * Comprobar si el elemento y el subnúmero están dados de alta. Si no *
- * lo están ni se darán de alta al procesar el juego de datos, hay que *
- * crearlos *
- *----------------------------------------------------------------------*
- FORM tratar_receptor USING elemento_curso.
- * Verificar existencia elemento receptor
- SELECT SINGLE bukrs INTO anlh-bukrs FROM anlh
- WHERE bukrs EQ p_bukrs AND
- anln1 EQ receptor-anln1.
- IF sy-subrc NE 0.
- READ TABLE control_altas WITH KEY anln1 = receptor-anln1
- anln2 = space.
- IF sy-subrc NE 0.
- PERFORM alta_elemento_receptor USING elemento_curso.
- ELSE.
- PERFORM alta_subnumero_receptor.
- ENDIF.
- ELSE.
- * Verificamos existencia de subnumero receptor
- SELECT SINGLE bukrs anln1 anln2 anlkl aktiv anlue txt50 txa50
- INTO CORRESPONDING FIELDS OF anla
- FROM anla
- WHERE bukrs EQ p_bukrs AND
- anln1 EQ receptor-anln1 AND
- anln2 EQ receptor-anln2.
- IF sy-subrc NE 0.
- PERFORM alta_subnumero_receptor.
- ELSE.
- * Verificamos existencia de area
- IF traspaso-afabe EQ c_areasuc OR
- traspaso-afabe EQ c_areasua OR
- traspaso-afabe EQ c_areasuo OR
- traspaso-afabe EQ c_areadea OR
- traspaso-afabe EQ c_areadan.
- SELECT SINGLE bukrs INTO anlb-bukrs FROM anlb
- WHERE bukrs EQ p_bukrs AND
- anln1 EQ receptor-anln1 AND
- anln2 EQ receptor-anln2 AND
- afabe EQ traspaso-afabe AND
- bdatu EQ '99991231'.
- IF sy-subrc NE 0.
- PERFORM ver_subvenciones.
- ENDIF.
- ENDIF.
- ENDIF.
- ENDIF.
- ENDFORM. " fin tratar_receptor
- *---------------------------------------------------------------------*
- * FORM ALTA_ELEMENTO_RECEPTOR *
- *---------------------------------------------------------------------*
- FORM alta_elemento_receptor USING elemento_curso.
- DATA: numsol TYPE n VALUE 0,
- numele TYPE n VALUE 0.
- * Damos de alta registro
- MOVE-CORRESPONDING receptor TO control_altas.
- APPEND control_altas.
- CLEAR control_altas-anln2.
- APPEND control_altas.
- * Obtener del elemento emisor el supranúmero y la clase de inmovilizado
- * modificación 15.10.1998 (Se añadió el else)
- IF traspaso-posid IS INITIAL.
- SELECT SINGLE anlue anlkl INTO CORRESPONDING FIELDS OF anla
- FROM anla
- WHERE bukrs EQ p_bukrs AND
- anln1 EQ emisor-anln1 AND
- anln2 EQ emisor-anln2.
- ELSE.
- SELECT anlue anlkl INTO CORRESPONDING FIELDS OF anla
- FROM anla
- WHERE bukrs EQ p_bukrs AND
- anln1 EQ repartos-anln1.
- EXIT.
- ENDSELECT.
- ENDIF.
- SPLIT anla-anlue AT '-' INTO anla-anln1 anla-anln2.
- anla-anlkl(1) = anla-anlkl(1) - 1.
- * Generacion del Batch Input para elemento.
- PERFORM insertar_elemento_bi USING p_bukrs
- anla-anln1
- anla-anln2
- anla-anlkl
- receptor-anln1
- receptor-anln2
- numsol
- numele
- elemento_curso.
- PERFORM bdc_insert USING 'AS01'.
- * endif.
- * Para el caso de subvenciones....
- IF traspaso-afabe EQ c_areasuc OR
- traspaso-afabe EQ c_areasua OR
- traspaso-afabe EQ c_areasuo OR
- traspaso-afabe EQ c_areadea OR
- traspaso-afabe EQ c_areadan.
- PERFORM ver_subvenciones.
- ENDIF.
- ENDFORM. " fin alta_elemento_receptor
- *---------------------------------------------------------------------*
- * FORM ALTA_SUBNUMERO_RECEPTOR *
- *---------------------------------------------------------------------*
- FORM alta_subnumero_receptor.
- CLEAR x_aktiv.
- * Verificacion de existencia en tabla control_altas.
- READ TABLE control_altas WITH KEY anln1 = receptor-anln1
- anln2 = receptor-anln2.
- * Si no existe en la tabla
- IF sy-subrc NE 0.
- * Comprobar si se ha dado de alta el elemento para pasarle a la rutina
- * de alta de subnumero la fecha de capitalización.
- CLEAR x_aktiv.
- READ TABLE control_altas WITH KEY anln1 = receptor-anln1
- anln2 = space.
- IF sy-subrc = 0.
- PERFORM buscar_fecha_capitalizacion. " x_aktiv
- ENDIF.
- * Añadir a tabla
- MOVE-CORRESPONDING receptor TO control_altas.
- APPEND control_altas.
- * Generacion del Batch Input para subnumero.
- PERFORM insertar_subnumero_bi USING receptor-anln1
- receptor-anln2
- p_bukrs
- x_aktiv.
- ENDIF.
- * Para el caso de subvenciones....
- IF traspaso-afabe EQ c_areasuc OR
- traspaso-afabe EQ c_areasua OR
- traspaso-afabe EQ c_areasuo OR
- traspaso-afabe EQ c_areadea OR
- traspaso-afabe EQ c_areadan.
- PERFORM ver_subvenciones.
- ENDIF.
- ENDFORM. " fin alta_subnumero-receptor
- *---------------------------------------------------------------------*
- * FORM VER_SUBVENCIONES *
- *---------------------------------------------------------------------*
- FORM ver_subvenciones.
- DATA area LIKE zinat-invsl.
- MOVE traspaso-afabe TO area.
- READ TABLE subnumeros_a_modificar WITH KEY anln1 = receptor-anln1
- anln2 = receptor-anln2
- invsl = area.
- IF sy-subrc NE 0.
- PERFORM modificar_subnumero_bi USING receptor-anln1
- receptor-anln2
- p_bukrs
- area.
- MOVE: receptor-anln1 TO subnumeros_a_modificar-anln1,
- receptor-anln2 TO subnumeros_a_modificar-anln2,
- area TO subnumeros_a_modificar-invsl.
- APPEND subnumeros_a_modificar.
- ENDIF.
- ENDFORM. "VER_SUBVENCIONES
- *---------------------------------------------------------------------*
- * FORM BUSCAR_FECHA _CAPITALIZACION *
- *---------------------------------------------------------------------*
- FORM buscar_fecha_capitalizacion.
- DATA: l_anlue LIKE anla-anlue,
- l_anlkl LIKE anla-anlkl,
- l_anlue1 LIKE anla-anln1,
- l_anlue2 LIKE anla-anln2.
- * Obtener del elemento emisor el supranúmero y la clase de inmovilizado
- * modificación 15.10.1998 (Se añadió el else)
- IF traspaso-posid IS INITIAL.
- SELECT SINGLE bukrs anln1 anln2 anlkl aktiv anlue txt50 txa50
- INTO CORRESPONDING FIELDS OF anla
- FROM anla
- WHERE bukrs EQ p_bukrs AND
- anln1 EQ emisor-anln1 AND
- anln2 EQ emisor-anln2.
- ELSE.
- SELECT bukrs anln1 anln2 anlkl aktiv anlue txt50 txa50
- INTO CORRESPONDING FIELDS OF anla
- FROM anla
- WHERE bukrs EQ p_bukrs AND
- anln1 EQ repartos-anln1.
- EXIT.
- ENDSELECT.
- ENDIF.
- SPLIT anla-anlue AT '-' INTO l_anlue1 l_anlue2.
- CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
- EXPORTING
- input = l_anlue2
- IMPORTING
- output = l_anlue2.
- l_anlkl = anla-anlkl.
- l_anlkl(1) = l_anlkl(1) - 1.
- * Ver si es una Instalación Técnica.
- SELECT SINGLE instc INTO ziccl-instc FROM ziccl
- WHERE anlkl = l_anlkl.
- IF sy-subrc <> 0.
- MESSAGE e931 WITH l_anlkl 'ZICCL'.
- ELSE.
- IF ziccl-instc <> 'X'. " No es instalación Técnica
- x_aktiv+0(2) = p_fecha+6(2).
- x_aktiv+2(2) = p_fecha+4(2).
- x_aktiv+4(4) = p_fecha+0(4).
- ELSE.
- SELECT SINGLE bukrs anln1 anln2 anlkl aktiv anlue txt50 txa50
- INTO CORRESPONDING FIELDS OF anla
- FROM anla
- WHERE bukrs EQ p_bukrs AND
- anln1 EQ l_anlue1 AND
- anln2 EQ l_anlue2.
- IF anla-aktiv IS INITIAL.
- MESSAGE e901 WITH receptor-anln1 receptor-anln1.
- ELSE.
- x_aktiv+0(2) = anla-aktiv+6(2).
- x_aktiv+2(2) = anla-aktiv+4(2).
- x_aktiv+4(4) = anla-aktiv+0(4).
- ENDIF.
- ENDIF.
- ENDIF.
- ENDFORM. "BUSCAR_FECHA_CAPITALIZACION
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement