You are on page 1of 3

*********************************************************************

* INFORMATION *
*********************************************************************
* Module : ISU-BI
* FUNCTIONAL : S Murali Ramnath
* Developer : HARSHA TIWARI
* Functional Spec# : FS IS-BI-014
* Date Of Creation : 26/05/2007
* Transport Request# :
* Program NAME :
* Transaction Code :
* DEVELOPMENT CLASS : ZISU01
* DESCRIPTION : TO Calculate no of months for which
* rent is to be calculated.
**********************************************************************
* Change History
*********************************************************************
* FUNCTIONAL :
* Developer :
* Functional Spec# :
* Date Of Change :
* Transport Request# :
* Change DESCRIPTION :
*********************************************************************
FUNCTION ISU_ZCOMPU20 .
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(X_OP) TYPE ISU2A_VARIANT_PARAMETERS
*" REFERENCE(X_SS) TYPE ISU2A_SS
*" REFERENCE(X_RED) TYPE ISU2A_REDUCED_BILLING_DATA
*" CHANGING
*" REFERENCE(XY_OBJ) TYPE ISU2A_BILLING_DATA
*" REFERENCE(XY_SOBJ) TYPE ISU2A_DATA_COLLECTOR
*" EXCEPTIONS
*" GENERAL_FAULT
*" REGULAR_ERROR
*"----------------------------------------------------------------------

INCLUDE IEVARBASIC.
DATA: " USERDEF_EXISTS LIKE REGEN-KENNZX,
UNIT_DAY LIKE T006-MSEHI VALUE 'TAG',
* FACTORY_CALENDAR LIKE SCAL-FCALID,
DURATION TYPE P0347-SCRMM,
AB LIKE ERCHZ-AB,
BIS LIKE ERCHZ-BIS,
W_MOVIN TYPE SY-DATUM,
W_MOVOUT TYPE SY-DATUM,
TEMPDATE TYPE SY-DATUM,
W_EMONTH TYPE I,
W_MMONTH TYPE I,
WA_IABRZEIT TYPE LINE OF ISU2A_IABRZEIT.

CONSTANTS : C_04(2) VALUE '04',


C_03(2) VALUE '03'.

MAC_CONTROL_CHECK 3.

* Initialize output operand


MAC_INIT_OUTPUT X_SS-VARCONT3 X_OP-O1.

* Preparing some data for the info invoice line


* MOVE-CORRESPONDING X_SS TO WERCHZ.

LOOP AT XY_OBJ-IABRZEIT INTO WA_IABRZEIT.


IF WA_IABRZEIT-AB IS NOT INITIAL.
AB = WA_IABRZEIT-AB. "Starting Date
BIS = WA_IABRZEIT-BIS. "End Date
ENDIF.
ENDLOOP.

** Start of Modification : To calculate the no of days for calculating


** rent excluding month in which move-in happened.
************changes done on 30.10.2007 due to change in business requriment
*** Move-in date in Legacy to be considered first instead of move-in date.
SELECT SINGLE EINZDAT_ALT INTO W_MOVIN " Move-in date in Legacy
FROM EVER
WHERE ANLAGE = XY_OBJ-ST-ANLAGE.
IF W_MOVIN IS INITIAL.
W_MOVIN = XY_SOBJ-EVER-EINZDAT.
ENDIF.
* W_MOVIN = XY_SOBJ-EVER-EINZDAT.
W_MOVOUT = XY_SOBJ-EVER-AUSZDAT.
IF W_MOVIN >= AB AND W_MOVIN <= BIS. " IF MOVE-IN DATE WITHIN BILLING PERIOD
IF W_MOVIN+0(4) <> BIS+0(4).
CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'
EXPORTING
DATE1 = BIS
DATE2 = W_MOVIN
OUTPUT_FORMAT = C_04
IMPORTING
MONTHS = DURATION.
ELSE.
AB = W_MOVIN. " Move-in date as a start date
W_MMONTH = AB+4(2).
W_EMONTH = BIS+4(2).
DURATION = W_EMONTH - W_MMONTH. " No of Days(MONTHS) to be returned
ENDIF.
ELSEIF W_MOVOUT >= AB AND W_MOVOUT <= BIS. " IF MOVE-OUT DATE WITHIN BILLING PERIOD
IF AB+0(4) <> W_MOVOUT+0(4).
CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'
EXPORTING
DATE1 = W_MOVOUT
DATE2 = AB
OUTPUT_FORMAT = C_04
IMPORTING
MONTHS = DURATION.
ELSE.
TEMPDATE = W_MOVOUT.
W_MMONTH = TEMPDATE+4(2).
W_EMONTH = AB+4(2).
DURATION = W_MMONTH - W_EMONTH + 1.
ENDIF.
ELSE.
DURATION = C_03.
ENDIF.
** END OF MODIFICATION : BY HARSHA.

* Prepare output processing.


OUT_OPER-QNT_NEW = DURATION.
OUT_OPER-AB = AB.
OUT_OPER-BIS = BIS.

MAC_OUTPUT_IOPER X_OP-O1.

* Preparing to write the info line


WERCHZ-I_ZAHL1 = OUT_OPER-QNT_NEW.
WERCHZ-MASS1 = UNIT_DAY.

* MAC_INVOICE_LINE_INFO X_SS-VARCONT2 CO_DLTYP01.

ENDFUNCTION.

You might also like