lunes, 31 de agosto de 2009

Backup y respaldo de CISCO PIX 501

Para hacer un backup de la configuracion de el CISCO PIX FIREWALL 501
hacemos lo siguiente

-Instalar un servidor tftp de tu preferencia (yo use el pt360 tool suite)
-conecta directamente el pix a tu pc utilizando para ello el cable de consola
(azul con un lado rj45 = ethernet del otro lado serial)
conectamos en la terminal del pix que dice "CONSOLE"
-conecta un cable ethernet normal del puerto 1 de tu pix al de tu maquina.
-Utilizaremos hyperterminal de windows. (si tu maquina no lo tiene usa algun otro)
o desde telnet
-Conectamos el pix a la corriente electrica y esperamos.
-Muchas letritas hasta que te ponga algo como esto.
Escribe el comando seguido de enter y te debe poner lo mismo.

pixfirewall>enable
Password:tupassword
pixfirewall#write net 192.168.1.106:pixbackup
Building configuration...
TFTP write 'pixbackup' at 192.168.1.106 on interface 1
[OK]
pixfirewall#
(con esto tenemos ya guardada la configuracion en tu pc)
Para reestablecerla:
pixfirewall# configure terminal
pixfirewall(config)# config net 192.168.1.106:pixbackup

192.168.1.106 = ip de tu maquina
pixbackup = nombre dado al archivo de configuracion

Es todo..

martes, 18 de agosto de 2009

ALV Simple

ALV Simple
REPORT zalv_simple.
* Jorge Serra (AbapLife) http://abaplife.bitacoras.com
* Se trata de un pequeño ejemplo de listado ALV para aquellos que nunca
* han creado uno. Por supuesto, a los que ya sepáis algo de ALV, no
* creo que os sirva de mucho
* Propósito:
* ---------
* Voy mostrar un listado de posiciones de pedidos de compras
* Pasos esenciales (Buscar el simbolo '§')
* ----------------
* 1. Definición estructuras y tablas necesarias
* 2. Definimos la tabla con los datos de salida
* 3. Toma de datos
* 4. Definición estructura y formato de salida
* 5. Mostrar listado
*<-- § Paso 1. Definicion estructuras y tablas necesarias
* Type Pool donde vienen definidas todas las estructuras y tablas
TYPE-POOLS: slis.
* Catálogo de campos: contiene la descripción de los campos de salida
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
* Especificaciones de la disposición de la lista: descripción de la
* estructura de salida
gs_layout TYPE slis_layout_alv,
* Nombre del programa g_repid LIKE sy-repid.
*<-- § Paso 2. Definimos la tabla con los datos de salida
TYPES: BEGIN OF st_output.
INCLUDE STRUCTURE ekpo.
TYPES: END OF st_output.
DATA: gt_output TYPE STANDARD TABLE OF st_output WITH HEADER LINE.
INITIALIZATION. g_repid = sy-repid.
START-OF-SELECTION.
*<-- § Paso 3. Toma de datos
PERFORM toma_datos.
*<-- § Paso 4. Estructura y formato de salida
PERFORM init_fieldcat.
PERFORM init_layout.
*<-- § Paso 5. Mostrar listado
PERFORM listado.
*&&-----------------------------------------------------------------&&*
* SUBRUTINAS DEL PROGRAMA*
*&&-----------------------------------------------------------------&& *
*---------------------------------------------------------------------*
* FORM INIT_FIELDCAT *
*---------------------------------------------------------------------*
FORM init_fieldcat.
* Mediante esta tabla vamos a definir los campos que queremos mostrar
* en el listado de salida.
gt_fieldcat-fieldname = 'EBELN'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'EBELP'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'MATNR'. gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'WERKS'. gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'MENGE'. gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'MEINS'.
gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat.
ENDFORM.
*---------------------------------------------------------------------*
* FORM INIT_LAYOUT *
*---------------------------------------------------------------------*
FORM init_layout.
* Mediante esta estructura podemos definir el formato de salida
gs_layout-zebra = 'X'.
gs_layout-f2code = '&ETA'.
gs_layout-detail_popup = 'X'.
ENDFORM.
*---------------------------------------------------------------------*
* FORM TOMA_DATOS *
*---------------------------------------------------------------------*
FORM toma_datos.
* Los datos deben guardarse en la tabla interna de salida
SELECT * FROM ekpo UP TO 100 ROWS INTO TABLE gt_output.
ENDFORM. " TOMA_DATOS
*---------------------------------------------------------------------*
* FORM LISTADO *
*---------------------------------------------------------------------*
FORM listado.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
TABLES t_outtab = gt_output
EXCEPTIONS program_error = 1
OTHERS = 2 .
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " LISTADO

REPORTE REGULATORIO DE CARTERA DE CRÉDITO

Base de datos logica BTF

************************************************************************
* *
* Nombre del Programa: ZR04_CNBV *
* Programador : *
* Fecha : *
*----------------------------------------------------------------------*

REPORT ZR04_CNBV
LINE-SIZE 1023
LINE-COUNT 60
MESSAGE-ID 67
NO STANDARD PAGE HEADING.

include: ZR04_CNBV_top, " Declaracion de Variables
ZR04_CNBV_sub. " Declaracion de Subrutinas.

***********************************************************************
START-OF-SELECTION.
***********************************************************************
get vdarl.

perform f_proceso.

get vdbevi.

perform f_proceso_cred.

v_mes = vdbevi-dbudat+4(2).

IF V_fecha_liq < vdbevi-dbudat.

v_fecha_liq = vdbevi-dbudat.

endif.

GET vdarl LATE.

if i_deta-scwhr ne 'MXN'.
perform f_conversion_moneda_ext.
endif.

describe table i_mov110 lines sy-tabix.

****
if sy-tabix => 1.
* delete i_mov110 index 1.
delete i_mov110 where pkond is initial.
describe table i_mov110 lines sy-tabix.
endif.
*****

if sy-tabix > 0.

sort i_mov110 by dbudat descending.
read table i_mov110 index 1.
if sy-subrc = 0.

i_deta-tasa = i_mov110-pkond.

endif.

else.

describe table i_mov110a lines sy-tabix.
if sy-tabix > 0.

sort i_mov110a by dbudat ascending.
read table i_mov110a index 1.
if sy-subrc = 0.

i_deta-tasa = i_mov110a-pkond.

endif.

endif.

endif.

refresh: i_mov8301, i_mov8304, i_mov110a, i_mov110.

perform f_calcula_total.

I_DETA-ESTIMA = ABS( I_DETA-ESTIMA ).

if v_cant_venc = 0.
i_deta-situacion = '1'.
elseif v_cant_venc > 0.
if v_ssonder = '1' or v_ssonder = '2'.
i_deta-situacion = '3'.
else.
i_deta-situacion = '2'.
endif.
endif.



if v_ssonder = '1' or v_ssonder = '2'.
i_deta-intvig = 0.
i_deta-intven = i_deta-int_venc + I_DETA-INT_VIG -
I_DETA-saldo77.
i_deta-cta_ord = 'Especial'.
else.
i_deta-intvig = i_deta-int_vig + i_deta-int_venc.
i_deta-intven = 0.
i_deta-cta_ord = 'Normal'.
endif.

clear: v_dias_venc.

if l_total ne 0 and i_deta-Fecha_Ap <= pa_stich.

i_deta-saldo = l_total - I_DETA-saldo77.

append i_deta.

endif.

clear: i_deta.

***********************************************************************
END-OF-SELECTION.
***********************************************************************
perform f_reporte.



















*FIN DEL REPORTE CONTINUAN LOS 2 INCLUDES
*&---------------------------------------------------------------------*
*& Include ZR04_CNBV_TOP *
*&---------------------------------------------------------------------*
tables: VDARL,
vdbevi,
T056P,
vzzkoko.


DATA: v_subreporte(3) type c value '411',
v_addrnumber like but020-addrnumber,
v_city1 like adrc-city1,
v_CITY2 like adrc-city2,
v_POST_CODE1 like adrc-POST_CODE1,
v_street like adrc-street,
v_house_num1 like adrc-house_num1,
v_REGION like adrc-REGION,
v_regiogroup like adrc-regiogroup,
v_ammrhy like vzzkopo-ammrhy,
v_cantidad type p decimals 2,
v_num_cias type i,
l_total type p decimals 2,
V_FC_FIN LIKE SY-DATUM,
V1 LIKE VTBFORM-BVARWERT,
V2 LIKE VTBFORM-BVARWERT,
V3 LIKE VTBFORM-BVARWERT,
V4 LIKE VTBFORM-BVARWERT,
VX LIKE VTBFORM-BVARWERT,
v_cant_vig like vdbevi-bbwhr,
v_cant_venc like vdbevi-bbwhr,
v_name_org1 like but000-name_org1,
v_name_org2 like but000-name_org2,
v_name_first like but000-NAME_FIRST,
v_name_last like but000-NAME_LAST,
v_name_lst2 like but000-name_lst2,
v_jobgr like but000-jobgr,
v_bez30 like TB028T-bez30,
v_saldo like bseg-wrbtr,
v_ssonder like vdarl-ssonder,
v_Dias_Venc type i,
v_mes(2) type n,
v_fecha_liq like vdbevi-dbudat,
v_tiee like t056p-ZSOLL.

* Tablas Internas.
data: begin of i_deta occurs 0,
subreporte like v_subreporte,
Contrato_cr like RMF67-XRANL,
cia(80) type c,
paterno like but000-name_last,
materno like but000-name_lst2,
name1 like but000-name_first,
name2 like but000-name_first,
rfc like BPDTAX-STCEG,
direc_1(71) type c,
colonia like ADDR2_DATA-CITY2,
cod_postal like ADDR2_DATA-POST_CODE1,
localidad like ADDR2_DATA-regiogroup,
actividad(10) type c,
c_contable(12) type c,
saldo TYPE I, "like vdbevi-bbwhr,
fecha_Ap like RMF67-XDBLFZ,
fecha_fin like RMF67-XDBLFZ,
reestruct type c,
freestruct type c,
moneda type c,
tasa type p decimals 2 ,
intvig type i,
intven TYPE I, "like vdbevi-bbwhr,
frecuencia type c,
situacion type c,
estima TYPE I, "like bseg-wrbtr,
garantia(3) type c,
v_garantia TYPE I, "like vdlv-bvertrag,
especial(2) type c,
relacion(2) type c,
fondeo(2) type c,
porcen(3) type c,
ciudad like ADDR2_DATA-CITY1,
Plazo type i,
Num_Pagos_cr type i,
Frec_Pagos_cr type i,
cap_vig like vdbevi-bbwhr,
int_vig type p decimals 2,
int_vig2 type p decimals 2,
cap_venc like vdbevi-bbwhr,
int_venc like vdbevi-bbwhr,
scwhr like vdbevi-scwhr,
cta_ord(8) type c,
saldo77 like vdbevi-bbwhr.
data: end of i_deta.

data: begin of i_vdarlsic occurs 0,
iRSICHER like vdarlsic-rsicher.
data: end of I_vdarlsic.

data: begin of i_vdlv occurs 0,
BVERTRAG like vdlv-BVERTRAG.
data: end of I_vdlv.



data: begin of i_mov8301 occurs 0,
SBEWART like vdbevi-sbewart,
DBUDAT like VDBEVI-DBUDAT,
pKOND like VDBEVI-PKOND.
data: end of I_MOV8301.

data: begin of i_mov8304 occurs 0,
SBEWART like vdbevi-sbewart,
DBUDAT like VDBEVI-DBUDAT,
pKOND like VDBEVI-PKOND.
data: end of I_MOV8304.

data: begin of i_mov110 occurs 0,
SBEWART like vdbevi-sbewart,
DBUDAT like VDBEVI-DBUDAT,
pKOND like VDBEVI-PKOND.
data: end of I_MOV110.

data: begin of i_mov110a occurs 0,
SBEWART like vdbevi-sbewart,
DBUDAT like VDBEVI-DBUDAT,
pKOND like VDBEVI-PKOND.
data: end of I_MOV110a.


data: begin of i_bsis occurs 0,
bukrs like bsis-bukrs,
hkont like bsis-hkont,
augdt like bsis-augdt,
augbl like bsis-augbl,
zuonr like bsis-zuonr,
gjahr like bsis-gjahr,
BELNR like bsis-belnr.
data: end of i_bsis.

data: begin of i_bseg occurs 0,
BUKRS like bseg-bukrs,
BELNR like bseg-belnr,
GJAHR like bseg-gjahr,
BUZEI like bseg-buzei,
wrbtr like bseg-wrbtr,
ZUONR(18) type c,
SHKZG like bseg-shkzg.
data: end of i_bseg.

data: begin of i_vzzkopo occurs 0,
rkey like vzzkopo-rkey1,
dguel_kp like vzzkopo-dguel_kp,
skoart like vzzkopo-skoart,
PKOND like vzzkopo-pkond,
bkond like vzzkopo-bkond,
szsref like vzzkopo-szsref.
data: end of i_vzzkopo.

data: begin of i_vzzkopo_201 occurs 0,
rkey like vzzkopo-rkey1,
dguel_kp like vzzkopo-dguel_kp,
skoart like vzzkopo-skoart,
PKOND like vzzkopo-pkond,
bkond like vzzkopo-bkond,
szsref like vzzkopo-szsref.
data: end of i_vzzkopo_201.


data: begin of i_bsid occurs 0,
zuonr like bsid-zuonr,
zfbdt like bsid-zfbdt,
augdt like bsid-augdt,
budat like bsid-budat,
cpudt like bsid-cpudt,
belnr like bsid-belnr,
buzei like bsid-buzei,
SHKZG like bsid-shkzg,
WRBTR like bsid-WRBTR,
vertn like bsid-vertn,
vbewa like bsid-vbewa,
int_mora type p decimals 6.
data: end of i_bsid.


DATA: BEGIN OF I_ZKOPO OCCURS 5.
INCLUDE STRUCTURE VZZKOPO.
DATA: END OF I_ZKOPO.

DATA: BEGIN OF I_glt0 OCCURS 0.
INCLUDE STRUCTURE glt0.
DATA: END OF I_glt0.

DATA : I_VZZKOPA LIKE VZZKOPA OCCURS 0 WITH HEADER LINE.

data: begin of i_tcurr occurs 0,
GDATU like tcurr-gdatu,
UKURS like tcurr-ukurs.
data: end of I_TCURR.

data: begin of i_but0id occurs 0,
PARTNER like but0id-partner,
type like but0id-type,
IDNUMBER like but0id-idnumber.
data: end of i_but0id.

PARAMETERS:
PA_STICH LIKE SY-DATUM OBLIGATORY.





*&---------------------------------------------------------------------*
*& Include ZR04_CNBV_SUB *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form f_proceso
*&---------------------------------------------------------------------*
* Proceso principal
*----------------------------------------------------------------------*
FORM f_proceso .

perform f_obtiene_datos_cia.

perform f_obtiene_clas_contable.

perform f_obtiene_saldos_cuenta.

perform f_obtiene_estimaciones_prev.

* perform f_calcula_tasa.

perform f_obtiene_datos_cr.

ENDFORM. " f_proceso
*&---------------------------------------------------------------------*
*& Form f_proceso_cred
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_proceso_cred .

i_deta-scwhr = vdbevi-scwhr.

if vdbevi-sbewziti = 'A' and vdbevi-sstorno is initial.

if vdbevi-VVSSOLHAB = 'S'.

i_deta-cap_vig = i_deta-cap_vig + vdbevi-bbwhr.

else.

i_deta-cap_vig = i_deta-cap_vig - vdbevi-bbwhr.

endif.

endif.

if vdbevi-sbewziti = 'TZ' or "vdbevi-sbewart = '4530' or
vdbevi-sbewart = '3160' or vdbevi-sbewart = '3260'.

if vdbevi-dbudat <= PA_STICH.

if vdbevi-VVSSOLHAB = 'S'.
i_deta-int_venc = i_deta-int_venc +
vdbevi-bbwhr.
else.

i_deta-int_venc = i_deta-int_venc -
vdbevi-bbwhr.
endif.

endif.

endif.

if vdbevi-sbewziti = 'TTRA' or vdbevi-sbewziti = 'TTEN' or
vdbevi-sbewziti = 'TT' or vdbevi-sbewziti = 'S ' or
vdbevi-sbewziti = 'SERP'.


if vdbevi-dbudat <= PA_STICH.

if vdbevi-VVSSOLHAB = 'S'.
i_deta-cap_venc = i_deta-cap_venc +
vdbevi-bbwhr.
else.
i_deta-cap_venc = i_deta-cap_venc -
vdbevi-bbwhr.
endif.

endif.

endif.

if ( vdbevi-sbewart = '0120' or vdbevi-sbewart = '0115' or
vdbevi-sbewart = '0135' or vdbevi-sbewart = '0138' ).
* and vdbevi-sstorno is initial.


if vdbevi-dbudat <= PA_STICH.

if vdbevi-VVSSOLHAB = 'S'.
i_deta-cap_vig = i_deta-cap_vig - vdbevi-bbwhr.
else.
i_deta-cap_vig = i_deta-cap_vig + vdbevi-bbwhr.
endif.

endif.

endif.

if vdbevi-sbewziti = 'EAAR'.

if vdbevi-dbudat <= PA_STICH.

if vdbevi-VVSSOLHAB = 'S'.
i_deta-int_vig = i_deta-int_vig + vdbevi-bbwhr.
else.
i_deta-int_vig = i_deta-int_vig - vdbevi-bbwhr.
endif.

endif.

endif.


* IF vdbevi-sbewart = '8301'.
*
* if vdbevi-dbudat <= PA_STICH.
*
* I_MOV8301-SBEWART = vdbevi-sbewart.
* I_MOV8301-DBUDAT = VDBEVI-DBUDAT.
* I_MOV8301-PKOND = VDBEVI-PKOND.
* APPEND I_MOV8301.
*
* ENDIF.
*
* ENDIF.
*
* IF vdbevi-sbewart = '8304'.
*
* if vdbevi-dbudat <= PA_STICH.
*
* I_MOV8304-SBEWART = vdbevi-sbewart.
* I_MOV8304-DBUDAT = VDBEVI-DBUDAT.
* I_MOV8304-PKOND = VDBEVI-PKOND.
* APPEND I_MOV8304.
*
* ENDIF.
*
* ENDIF.

if vdbevi-sbewart = '0110'.

if vdbevi-dbudat <= PA_STICH.

i_mov110-sbewart = vdbevi-sbewart.
I_MOV110-DBUDAT = VDBEVI-DBUDAT.

****
IF NOT VDBEVI-PKOND IS INITIAL.

I_MOV110-PKOND = VDBEVI-PKOND.

ELSE.

SELECT PKOND
INTO I_MOV110-PKOND
FROM VDBEPP
WHERE RANL = vdbevi-RANL
AND PKOND = '0110'.
ENDSELECT.

ENDIF.

APPEND I_MOV110.

else.

i_mov110a-sbewart = vdbevi-sbewart.
I_MOV110a-DBUDAT = VDBEVI-DBUDAT.
I_MOV110a-PKOND = VDBEVI-PKOND.
APPEND I_MOV110a.

endif.

ELSE.

if vdbevi-sbewart = '0001'.

if vdbevi-dbudat <= PA_STICH.

i_mov110-sbewart = vdbevi-sbewart.
I_MOV110-DBUDAT = VDBEVI-DBUDAT.

****
IF NOT VDBEVI-PKOND IS INITIAL.

I_MOV110-PKOND = VDBEVI-PKOND.

ELSE.

SELECT SINGLE PKOND
INTO I_MOV110-PKOND
FROM VDBEPP
WHERE RANL = vdbevi-RANL.
* ENDSELECT.

ENDIF.

APPEND I_MOV110.

else.

i_mov110a-sbewart = vdbevi-sbewart.
I_MOV110a-DBUDAT = VDBEVI-DBUDAT.
I_MOV110a-PKOND = VDBEVI-PKOND.
APPEND I_MOV110a.

endif.

endif.


endif.

ENDFORM. " f_proceso_cred
*&---------------------------------------------------------------------*
*& Form f_reporte
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_reporte .

perform f_cabecera_del_detalle.

perform f_detalle.

ENDFORM. " f_reporte
*&---------------------------------------------------------------------*
*& Form f_lee_plazo_original
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_lee_plazo_original .
data: l_meses type p decimals 2,
l_dias type p decimals 2,
I TYPE I,
D TYPE P DECIMALS 2.

select single *
from vzzkoko
where RKEY1 = vdarl-ranl.

if sy-subrc = 0.

i_deta-fecha_ap = vzzkoko-DGUEL_KK.
i_deta-fecha_fin = vzzkoko-delfz.


l_dias = vzzkoko-delfz - vzzkoko-DGUEL_KK.

i_deta-plazo = l_dias.

endif.


ENDFORM. " f_lee_plazo_original
*&---------------------------------------------------------------------*
*& Form f_calcula_total
*&---------------------------------------------------------------------*
* Calcula total.
*----------------------------------------------------------------------*
FORM f_calcula_total .
* data:l_total type p decimals 2.

i_deta-int_vig = -1 * i_deta-int_vig.

v_cant_vig = i_deta-cap_vig.
v_cant_venc = i_deta-cap_venc + i_deta-int_venc.

i_deta-int_vig2 = i_deta-int_vig.

if i_deta-int_vig < 0.
i_deta-int_vig = 0.
endif.

l_total = i_deta-cap_vig + i_deta-int_venc +
i_deta-cap_venc + i_deta-int_vig.

ENDFORM. " f_calcula_total
*&---------------------------------------------------------------------*
*& Form f_encabezado
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_encabezado .

write:/01 'NAFIN',
11 'ACREDITADO',
64 'CONTRATO',
77 'CONT.NAFIN',
88 'OTORGA',
110 'MONTO',
131 'MONEDA',
142 'PLAZO',
153 'T.BASE',
174 'S.TASA',
185 'I.R',
196 'F.R',
208 'CAP. VIGENTE',
228 'INT. VIGENTE',
246 'CAP. VENCIDO',
266 'INT. VENCIDO',
286 'INT. MORATORIO',
306 'SALDO TOTAL',
327 'M.VENCIDOS',
338 'ID. CRED',
349 'PAGADO_IFNB',
370 'RIESGO',
381 'VINCULADO',
392 'CAP. CONTABLE',
413 'GARANTIA',
435 'RESERVAS',
456 'SITUACION',
10 '|',
63 '|',
76 '|',
87 '|',
109 '|',
130 '|',
141 '|',
152 '|',
173 '|',
184 '|',
195 '|',
207 '|',
227 '|',
245 '|',
265 '|',
285 '|',
305 '|',
326 '|',
337 '|',
348 '|',
369 '|',
380 '|',
391 '|',
412 '|',
434 '|',
455 '|',
466 '|'.



ENDFORM. " f_encabezado
*&---------------------------------------------------------------------*
*& Form f_obtiene_datos_cia
*&---------------------------------------------------------------------*
* Obtiene datos de la Compañia
*----------------------------------------------------------------------*
FORM f_obtiene_datos_cia .

v_ssonder = vdarl-ssonder.

select single stceg
into i_deta-rfc
from bp1020
where partnr = vdarl-rdarnehm.

select single name_org1 name_org2 NAME_FIRST NAME_LAST NAME_LST2
JOBGR
into (v_name_org1, v_name_org2, v_name_first, v_name_last,
v_name_lst2, v_jobgr)
from but000
where partner = vdarl-rdarnehm.

if sy-subrc = 0.

concatenate v_name_org1 v_name_org2
into i_deta-cia separated by space.

SPLIT v_name_first
AT SPACE
INTO i_deta-name1
i_deta-name2.

i_deta-paterno = v_name_last.
i_deta-materno = v_name_lst2.

endif.

perform f_obtiene_direccion.

perform f_obtiene_actividad.



ENDFORM. " f_obtiene_datos_cia
*&---------------------------------------------------------------------*
*& Form f_obtiene_direccion
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_obtiene_direccion .

select single ADDRNUMBER
into v_addrnumber
from but020
where partner = vdarl-rdarnehm.

if sy-subrc = 0.

select single CITY1 CITY2 REGIOGROUP POST_CODE1 street
house_num1 REGION
into (v_city1, v_CITY2, v_regiogroup, v_POST_CODE1, v_street,
v_house_num1, v_REGION)
from adrc
where addrnumber = v_addrnumber.

if sy-subrc = 0.

concatenate v_street
v_house_num1
into i_deta-direc_1 separated by space.

i_deta-colonia = v_city2.
i_deta-cod_postal = v_post_code1.
i_deta-localidad = v_regiogroup.


endif.

endif.


ENDFORM. " f_obtiene_direccion
*&---------------------------------------------------------------------*
*& Form f_obtiene_datos_cr
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_obtiene_datos_cr .


i_deta-Contrato_cr = vdarl-ranl.
i_deta-reestruct = 0.
i_deta-freestruct = space.
i_deta-moneda = '0'.
i_deta-especial = 'NO'.
i_deta-porcen = '100'.


if vdarl-stitart = '01' or vdarl-stitart = '05'.
i_deta-fondeo = '1'.
elseif vdarl-stitart = '02' or vdarl-stitart = '06'.
i_deta-fondeo = '8'.
elseif vdarl-stitart = '03'.
i_deta-fondeo = '3'.
endif.

*17.08.2009 FJCH->
case i_deta-fondeo.
when '01'.i_deta-fondeo = '01'.
when '02'.i_deta-fondeo = '06'.
when '03'.i_deta-fondeo = '12'.
when '04'.i_deta-fondeo = '06'.
when '05'.i_deta-fondeo = '01'.
when '06'.i_deta-fondeo = '17'.
when '07'.i_deta-fondeo = '06'.
when '08'.i_deta-fondeo = '06'.
when others. i_deta-fondeo = '*'.

endcase.
*17.08.2009 FJCH<-
perform f_garantia.

perform f_lee_plazo_original.

perform f_lee_datos_pagos.

perform f_creditos_relacionados.

ENDFORM. " f_obtiene_datos_cr
*&---------------------------------------------------------------------*
*& Form f_lee_datos_pagos
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_lee_datos_pagos .

select rkey1
dguel_kp
skoart
PKOND
BKOND
szsref
into table i_vzzkopo
from vzzkopo
where rkey1 = vdarl-ranl
and dguel_kp <= pa_stich
and skoart = '262'.

if sy-subrc = 0.

* cambio 1/09/2006
select single ammrhy
into v_ammrhy
from vzzkopo
where rkey1 = vdarl-ranl
and skoart = '201'.
if sy-subrc = 0 and v_ammrhy <> 0.

i_deta-Frec_Pagos_cr = v_ammrhy * 30.
if i_deta-frec_pagos_cr > 0.
if i_deta-frec_pagos_cr = 30. i_deta-frecuencia = '1'.
elseif i_deta-frec_pagos_cr = 90. i_deta-frecuencia = '2'.
elseif i_deta-frec_pagos_cr = 180. i_deta-frecuencia = '3'.
elseif i_deta-frec_pagos_cr = 360. i_deta-frecuencia = '4'.
endif.

i_deta-Num_Pagos_cr = i_deta-plazo / i_deta-frec_pagos_cr.
endif.

else.
* Fin cambio 1/09/2006

select single ammrhy
into v_ammrhy
from vzzkopo
where rkey1 = vdarl-ranl
and skoart = '209'.
if sy-subrc = 0 and v_ammrhy <> 0.

i_deta-Frec_Pagos_cr = v_ammrhy * 30.
if i_deta-frec_pagos_cr > 0.
if i_deta-frec_pagos_cr = 30. i_deta-frecuencia = '1'.
elseif i_deta-frec_pagos_cr = 90. i_deta-frecuencia = '2'.
elseif i_deta-frec_pagos_cr = 180. i_deta-frecuencia = '3'.
elseif i_deta-frec_pagos_cr = 360. i_deta-frecuencia = '4'.
endif.

i_deta-Num_Pagos_cr = i_deta-plazo / i_deta-frec_pagos_cr.
endif.

else.

select rkey1
dguel_kp
skoart
PKOND
BKOND
szsref
into table i_vzzkopo_201
from vzzkopo
where rkey1 = vdarl-ranl
* and dguel_kp <= pa_stich
and skoart = '201'.

IF SY-SUBRC = 0.

delete adjacent duplicates from I_VZZKOPO_201
comparing dguel_kp+0(6).

DESCRIBE TABLE I_VZZKOPO_201 LINES SY-TABIX.
i_deta-Num_Pagos_cr = SY-TABIX.

i_deta-frec_pagos_cr = i_deta-PLAZO / i_deta-Num_Pagos_cr.

if i_deta-frec_pagos_cr = 30. i_deta-frecuencia = '1'.
elseif i_deta-frec_pagos_cr = 90. i_deta-frecuencia = '2'.
elseif i_deta-frec_pagos_cr = 180. i_deta-frecuencia = '3'.
elseif i_deta-frec_pagos_cr = 360. i_deta-frecuencia = '4'.
endif.

ENDIF.


endif.
*
endif.
*
else.
select single ammrhy
into v_ammrhy
from vzzkopo
where rkey1 = vdarl-ranl
and skoart = '201'.
if sy-subrc = 0 and v_ammrhy <> 0.

i_deta-Frec_Pagos_cr = v_ammrhy * 30.
if i_deta-frec_pagos_cr > 0.
if i_deta-frec_pagos_cr = 30. i_deta-frecuencia = '1'.
elseif i_deta-frec_pagos_cr = 90. i_deta-frecuencia = '2'.
elseif i_deta-frec_pagos_cr = 180. i_deta-frecuencia = '3'.
elseif i_deta-frec_pagos_cr = 360. i_deta-frecuencia = '4'.
endif.

i_deta-Num_Pagos_cr = i_deta-plazo / i_deta-frec_pagos_cr.
endif.

else.


i_deta-Num_Pagos_cr = 1.
i_deta-Frec_Pagos_cr = i_deta-plazo + 1.

i_deta-frecuencia = '0'.
endif.

endif.

if i_deta-frecuencia = space.

i_deta-frecuencia = '0'.

endif.

ENDFORM. " f_lee_datos_pagos
*&---------------------------------------------------------------------*
*& Form f_cabecera_del_detalle
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_cabecera_del_detalle .

write:
/01 text-032, " Secuencia
11 '|',
12 text-001, " Numero
26 '|',
27 text-002, " Razon
108 '|',
109 text-003, " Paterno
149 '|',
150 text-004, " Materno
190 '|',
191 text-005, " Nombre
232 '|',
233 text-007, " RFC
254 '|',
255 text-008, " Dirección
327 '|',
328 text-009, " Colonia
369 '|',
370 text-010, " Cp
381 '|',
382 text-011, " Localidad
392 '|',
393 text-012, " Actividad
404 '|',
405 text-013, " Contable
418 '|',
419 text-014, " Respon
437 '|',
438 text-015, " Fecdis
449 '|',
450 text-016, " Vence
461 '|',
462 text-017, " Reestruc
471 '|',
472 text-018, " Fecrees
480 '|',
481 text-019, " Moneda
488 '|',
489 text-020, " Tasa
502 '|',
503 text-021, " Intvig
523 '|',
524 text-022, " intven
544 '|',
545 text-023, " Frecuen
553 '|',
554 text-024, " Situación
564 '|',
565 text-025, " Estima
585 '|',
586 text-026, " Garan
592 '|',
593 text-027, " Valgaran
613 '|',
614 text-028, " Especial
623 '|',
624 text-029, " Relación
633 '|',
634 text-030, " Fondeo
641 '|',
642 text-031, " Porcen
649 '|',
650 'Cta ord',
659 '|',
660 'Saldo cta 700..',
680 '|',
681 'Cap. vigente',
700 '|',
701 'Int. Vigente',
720 '|',
721 'Cap. Venc.',
740 '|',
741 'Int. Venc.',
760 '|'.

ENDFORM. " f_cabecera_del_detalle
*&---------------------------------------------------------------------*
*& Form f_detalle
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_detalle .
data: l_fecha(8) type n.

sort: i_deta by Contrato_cr.

loop at i_deta.

write:/01 sy-tabix, " Secuencia
11 '|',
12 i_deta-Contrato_cr, " Numero
26 '|',
27 i_deta-cia, " Razon
108 '|',
109 i_deta-paterno, " Paterno
149 '|',
150 i_deta-materno, " Materno
190 '|',
191 i_deta-name1, " Nombre
212 i_deta-name2,
232 '|',
233 i_deta-rfc, " RFC
254 '|',
255 i_deta-direc_1, " Dirección
327 '|',
328 i_deta-colonia, " Colonia
369 '|',
370 i_deta-cod_postal, " Cp
381 '|',
382 i_deta-localidad, " Localidad
392 '|',
393 i_deta-actividad, " Actividad
404 '|',
405 i_deta-c_contable, " Contable
418 '|',
419 i_deta-saldo, " Respon
437 '|',
438 i_deta-fecha_Ap, " Fecdis
449 '|',
450 i_deta-fecha_fin, " Vence
461 '|',
462 i_deta-reestruct, " Reestruc
471 '|',
472 i_deta-freestruct, " Fecrees
480 '|',
481 i_deta-moneda, " Moneda
488 '|',
489 i_deta-tasa LEFT-JUSTIFIED, " Tasa
502 '|',
503 i_deta-intvig, " Intvig
523 '|',
524 i_deta-intven, " intven
544 '|',
545 i_deta-frecuencia, " Frecuen
553 '|',
554 i_deta-situacion, " Situación
564 '|',
565 i_deta-estima, " Estima
585 '|',
586 i_deta-garantia, " Garan
592 '|',
593 i_deta-v_garantia, " Valgaran
613 '|',
614 i_deta-especial, " Especial
623 '|',
624 i_deta-relacion, " Relación
633 '|',
634 i_deta-fondeo, " Fondeo
641 '|',
642 i_deta-porcen, " Porcen
649 '|',
650 i_deta-cta_ord,
659 '|',
660 i_deta-saldo77,
680 '|',
681 i_deta-cap_vig,
700 '|',
701 i_deta-int_vig2,
720 '|',
721 i_deta-cap_venc,
740 '|',
741 i_deta-int_venc,
760 '|'.

endloop.

ENDFORM. " f_detalle
*&---------------------------------------------------------------------*
*& Form f_conversion_moneda_ext
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_conversion_moneda_ext .
data: l_gdatu like tcurr-GDATU,
l_fecha(8) type c.

concatenate pa_stich+6(2)
pa_stich+4(2)
pa_stich+0(4)
into l_fecha.

CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
EXPORTING
INPUT = l_fecha
IMPORTING
OUTPUT = l_gdatu.


SELECT GDATU
UKURS
INTO TABLE I_TCURR
FROM tcurr
where kurst = 'M'
and fcurr = 'MXN'
and tcurr = i_deta-scwhr
and gdatu >= l_gdatu.
if sy-subrc = 0.
sort i_tcurr by gdatu ascending.
read table i_tcurr index 1.
if sy-subrc = 0.

i_deta-cap_vig = abs( i_deta-cap_vig *
i_tcurr-ukurs ).
i_deta-int_venc = abs( i_deta-int_venc *
i_tcurr-ukurs ).
i_deta-cap_venc = abs( i_deta-cap_venc *
i_tcurr-ukurs ).
i_deta-int_vig = i_deta-int_vig *
abs( i_tcurr-ukurs ).


endif.

endif.



ENDFORM. " f_conversion_moneda_ext
*&---------------------------------------------------------------------*
*& Form f_obtiene_actividad
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_obtiene_actividad .

if i_deta-cia is not initial.

select single ind_sector
into i_deta-actividad
from BUT0IS
where partner = vdarl-rdarnehm.

else.

select single BEZ30
into v_bez30
from TB028T
where spras = 'S'
and jobgr = v_jobgr.
if sy-subrc = 0.

i_deta-actividad = v_bez30+0(7).

endif.

endif.

ENDFORM. " f_obtiene_actividad
*&---------------------------------------------------------------------*
*& Form f_obtiene_clas_contable
*&---------------------------------------------------------------------*
FORM f_obtiene_clas_contable .

case vdarl-RREFKONT.

when '13010101' or '13010141' or '13010144' or '13010147' or
'13510101' or '13510141' or '13510144' or '13510147' or
'99500101'.
i_deta-c_contable = '130101000000'.

when '13010201' or '13010241' or '13010244' or '13010247' or
'13510201' or '13510241' or '13510244' or '13510247' or
'99500102'.
i_deta-c_contable = '130102000000'.

when '13010301' or '13010341' or '13010344' or '13010347' or
'13510301' or '13510341' or '13510344' or '13510347' or
'99500103'.
i_deta-c_contable = '130103000000'.

when '13020101' or '13020141' or '13020144' or '13020147' or
'13520101' or '13520141' or '13520144' or '13520147' or
'99500201'
* Modif. 16.04.2008.
or '13020103'.
i_deta-c_contable = '130201000000'.

when '13020201' or '13020203' or '13020241' or '13020244' or
'13020247' or
'13520201' or '13520203' or '13520241' or '13520244' or
'13520247' or '99500202'.
i_deta-c_contable = '130202000000'.

when '13030101' or '13030201' or '13530101' or '13530201' or
'99500301' or '99500302'.
i_deta-c_contable = '130301000000'.

endcase.

ENDFORM. " f_obtiene_clas_contable
*&---------------------------------------------------------------------*
*& Form f_obtiene_saldos_cuenta
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_obtiene_saldos_cuenta .

clear: v_saldo.

if vdarl-ssonder = '1' or vdarl-ssonder = '2'.

select bukrs
hkont
augdt
augbl
zuonr
gjahr
BELNR
into table i_bsis
from bsis
* Modif. 16.04.2008 where hkont = '7700030100'
where hkont = '7800030100'
and BUDAT <= pa_stich.
if sy-subrc = 0.

select BUKRS
BELNR
GJAHR
BUZEI
wrbtr
ZUONR
SHKZG
into table i_bseg
from bseg
for all entries in i_bsis
where bukrs = i_bsis-bukrs
and belnr = i_bsis-belnr
and hkont = i_bsis-hkont
and zuonr = vdarl-ranl.

if sy-subrc = 0.

loop at i_bseg.

if i_bseg-SHKZG = 'S'.

v_saldo = v_saldo + i_bseg-wrbtr.

else.

v_saldo = v_saldo - i_bseg-wrbtr.

endif.

endloop.

endif.

endif.

endif.

I_deta-saldo77 = abs( v_saldo ).

ENDFORM. " f_obtiene_saldos_cuenta
*&---------------------------------------------------------------------*
*& Form f_calcula_tasa
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_calcula_tasa .

data: l_tasa_fija like vzzkopo-pkond,
l_fecha like sy-datum,
l_fecha_c like sy-datum.


SELECT *
INTO TABLE I_ZKOPo
FROM VZZKOPO
WHERE BUKRS EQ VDARL-BUKRS
AND RKEY1 EQ VDARL-RANL
and SKOART EQ '701'.
if sy-subrc = 0.

loop at i_zkopo.

if i_zkopo-szsref is initial.

l_tasa_fija = i_zkopo-pkond.

else.

SELECT * INTO TABLE I_VZZKOPA
FROM VZZKOPA
WHERE BUKRS EQ VDARL-BUKRS
AND RKEY1 EQ VDARL-RANL
AND SKOART EQ '701'.


endif.

endloop.

endif.

clear: v_tiee.

CONVERT DATE pa_stich INTO INVERTED-DATE V_FC_FIN.
SELECT * UP TO 1 ROWS FROM T056P
WHERE REFERENZ EQ I_ZKOPO-SZSREF
AND DATAB GE V_FC_FIN.
if sy-subrc = 0.
v_tiee = T056P-ZSOLL.
endif.

ENDSELECT.




if v_tiee is not initial.

case i_zkopo-svarname.
WHEN 'V1'.
MOVE v_tiee TO v1.
WHEN 'V2'.
MOVE v_tiee TO V2.
WHEN 'V3'.
MOVE v_tiee TO V3.
WHEN 'V4'.
MOVE v_tiee TO V4.
endcase.

LOOP AT I_VZZKOPA.
CASE I_VZZKOPA-SVARNAME.
WHEN 'V1'.
MOVE I_VZZKOPA-PKOND TO V1.
WHEN 'V2'.
MOVE I_VZZKOPA-PKOND TO V2.
WHEN 'V3'.
MOVE I_VZZKOPA-PKOND TO V3.
WHEN 'V4'.
MOVE I_VZZKOPA-PKOND TO V4.

ENDCASE.

endloop.


CASE I_ZKOPO-SFORMREF.
WHEN '0001'. " V1 * V2 + V3
i_deta-tasa = V1 * V2 + V3 .
WHEN '0002'. " V1 * V2 - V3 * V4
i_deta-tasa = V1 * V2 - V3 * V4 .
WHEN '0003'. " V1 + V3
i_deta-tasa = V1 + V3 .
ENDCASE.

else.

i_deta-tasa = l_tasa_fija.

endif.

ENDFORM. " f_calcula_tasa
*&---------------------------------------------------------------------*
*& Form f_garantia
*&---------------------------------------------------------------------*
* Garantia.
*----------------------------------------------------------------------*
FORM f_garantia .

* if vdarl-SVZWECK = '01' or vdarl-SVZWECK = '02' or
* vdarl-SVZWECK = '04' or vdarl-svzweck = '06'.
* i_deta-garantia = '1'.
* elseif vdarl-svzweck = '03'.
* i_deta-garantia = '0'.
* elseif vdarl-svzweck = '05' or vdarl-svzweck = '07'.
* i_deta-garantia = '5'.
* endif.
*
*
* select RSICHER
* into table i_VDARLSIC
* from VDARLSIC
* where bukrs = vdarl-bukrs
* and RANL = vdarl-ranl.
* if sy-subrc = 0.
*
* select bvertrag
* into table i_vdlv
* from vdlv
* for all entries in i_vdarlsic
* where RSICHER = i_vdarlsic-irsicher.
* if sy-subrc = 0.
*
* loop at i_vdlv.
*
* i_deta-v_garantia = i_deta-v_garantia +
* i_vdlv-bvertrag.
*
* endloop.
*
* endif.
*
* endif.

*17.08.2009 FJCH->
i_deta-garantia = vdarl-sdtyp.
case i_deta-garantia.
when '511'. i_deta-garantia = '25'.
when '512'. i_deta-garantia = '11'.
when '513'. i_deta-garantia = '26'.
when '521'. i_deta-garantia = '27'.
when '522'. i_deta-garantia = '4'.
when '531'. i_deta-garantia = '0'.
when '532'. i_deta-garantia = '25'.

when others. i_deta-garantia = '*'.
endcase.
*17.08.2009 FJCH<-


ENDFORM. " f_garantia
*&---------------------------------------------------------------------*
*& Form f_obtiene_estimaciones_prev
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_obtiene_estimaciones_prev .
data: l_zuonr(18) type n,
l_ranl(18) type n.


select bukrs
hkont
augdt
augbl
zuonr
gjahr
BELNR
into table i_bsis
from bsis
* Modif 16.04.08where ( hkont = '1390010100' or hkont = '1390020100' or
* hkont = '1390030100' or hkont = '1390040100' )
where ( hkont = '1391500101' or hkont = '1391500201' or
hkont = '1391500301' )

and BUDAT <= pa_stich.
if sy-subrc = 0.

select BUKRS
BELNR
GJAHR
BUZEI
wrbtr
ZUONR
SHKZG
into table i_bseg
from bseg
for all entries in i_bsis
where bukrs = i_bsis-bukrs
and belnr = i_bsis-belnr
* Modificación 31.07.2009 R.O.G.
and ( hkont = '1391500101' or hkont = '1391500201' or
hkont = '1391500301' ).
* and zuonr = vdarl-ranl.

if sy-subrc = 0.

l_ranl = vdarl-ranl.


loop at i_bseg.

l_zuonr = i_bseg-zuonr.

if l_zuonr <> l_ranl.
continue.
endif.

if i_bseg-SHKZG = 'S'.

i_deta-estima = i_deta-estima + i_bseg-wrbtr.

else.

i_deta-estima = i_deta-estima - i_bseg-wrbtr.

* Modif. 31.07.2009 R.O.G.
* perform f_detalle.

endif.

endloop.

endif.

endif.

ENDFORM. " f_obtiene_estimaciones_prev
*&---------------------------------------------------------------------*
*& Form f_creditos_relacionados
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_creditos_relacionados .

i_deta-relacion = 'NO'.

select PARTNER type IDNUMBER
into table i_but0id
from but0id
where partner = vdarl-rdarnehm.

if sy-subrc = 0.

loop at i_but0id.

if i_but0id-type = 'BUP001' or i_but0id-type = 'FS0001'.
i_deta-relacion = 'SI'.
exit.
endif.

endloop.

endif.

ENDFORM. " f_creditos_relacionados

lunes, 17 de agosto de 2009

Uso del Case ABAP

case i_deta-garantia.
when '25'. i_deta-garantia = '511'.
when '11'. i_deta-garantia = '512'.
when '26'. i_deta-garantia = '513'.
when '27'. i_deta-garantia = '521'.
when '4'. i_deta-garantia = '522'.
when '0'. i_deta-garantia = '531'.
when others. i_deta-garantia = '0'.
endcase.

lunes, 3 de agosto de 2009

WinAvi Video converter 8.0

COnvierte y quema diversos formatos de videos como
AVI, ASF, MOV, RM, WMV, SWF, MKV, OGG, OGM y MPG.
Para grabarlos en dvd o vcd tiene una velocidad
sorprendente compatible con vista y xp.

Descargar aqui.
deja un comentario.

Drivers Pc chips P23G para windows XP

Si a alguien le hacen falta descargar aqui.
incluye drivers:

Realtek AC'97 Audio for VIA (R) Audio Controller
VIA S3G UniChrome Pro IGP
VIA Standard Host Bridge
VIA Standard PCI to ISA Bridge

Deja un comentario.