logic3.js 12.9 KB


ResultList = Envelope.Body.getProductHistoryListResponse.return.productHistoryList

for(result in ResultList) {

  StatusCode = result.subscriberStatusHistoryInfoArray.status.statusCode
  Activity = result.subscriberStatusHistoryInfoArray.status.lastActivityPathId
  StatusReasonCode = result.subscriberStatusHistoryInfoArray.status.statusReasonCode
  StatusReasonDescription = result.subscriberStatusHistoryInfoArray.status.statusReasonDescription
  Since = result.subscriberStatusHistoryInfoArray.effectiveDate
  PreviousSubscriber = result.subscriberStatusHistoryInfoArray.linkPrevProductId
  NextSubscriber = result.subscriberStatusHistoryInfoArray.linkNextProductId
  CreditLimitStatus = result.subscriberStatusHistoryInfoArray.creditStatus.status
  CreditReasonCode = result.subscriberStatusHistoryInfoArray.creditStatus.reasonCode
  CreditReasonDescription = result.subscriberStatusHistoryInfoArray.creditStatus.reasonDescription
  CreditLimitActivityDate = result.subscriberStatusHistoryInfoArray.creditStatus.lastActivityDate
  CollectionStatus = result.subscriberStatusHistoryInfoArray.collectionStatus.status
  CollectionReasonCode = result.subscriberStatusHistoryInfoArray.collectionStatus.reasonCode
  CollectionReasonDescription = result.subscriberStatusHistoryInfoArray.collectionStatus.reasonDescription
  CollectionActivityDate = result.subscriberStatusHistoryInfoArray.collectionStatus.lastActivityDate
  BarringStatus = result.subscriberStatusHistoryInfoArray.barringByRequestIndicator
  BarringActivityDate = result.subscriberStatusHistoryInfoArray.barringByRequestActivityDate
  BarringByRequestReasonCode = result.subscriberStatusHistoryInfoArray.barringByRequestReasonCode
  BarringByRequestReasonDescription = result.subscriberStatusHistoryInfoArray.barringByRequestReasonDescription
  CreditLimitAtSubStatus = result.subscriberStatusHistoryInfoArray.creditLimitAtSubStatus.status
  CreditLimitAtSubActivityDate = result.subscriberStatusHistoryInfoArray.creditLimitAtSubStatus.lastActivityDate
  CreditLimitAtSubReason = result.subscriberStatusHistoryInfoArray.creditLimitAtSubStatus.reasonDescription


 if( null != statusReasonCode )
  Reason = StatusReasonCode+" : "+StatusReasonDescription


 if( null != CreditReasonCode )
  CreditLimitReason = CreditReasonCode+" : "+CreditReasonDescription

 if(null != CollectionReasonCode)
  CollectionReason = CollectionReasonCode+" : "+CollectionReasonDescription

 if(null != temp.getBarringByRequestReasonCode) // tid kah temp khue a rai???
  BarringReason = BarringByRequestReasonCode+" : "+BarringByRequestReasonDescription

 if (null != Since )
  Since = Since

 if (null!= CollectionActivityDate )
  CollectionActivityDate = CollectionActivityDate

 if (null != CreditLimitActivityDate )
  CreditLimitActivityDate = CreditLimitActivityDate

 if (null != CreditLimitAtSubActivityDate )
  CreditLimitAtSubActivityDate = CreditLimitAtSubActivityDate

 if ( null != BarringActivityDate )
  BarringActivityDate = BarringActivityDate


 if("A" == StatusCode){

  if("CAN" == CollectionStatus() || "CAN" == CreditLimitStatus || "CAN" == CreditLimitAtSubStatus){ // CollectionStatus() un nee khue fn a rai???
   Status = "Cancelled"

  }else if("SUS" == CollectionStatus || "SUS" == CreditLimitStatus || "SUS" == CreditLimitAtSubStatus ){
   Status = "Full Suspend"

  }else if("PSUS" == CollectionStatus || "PSUS" == CreditLimitStatus || "PSUS" == CreditLimitAtSubStatus || "Y" == BarringStatus){
   Status = "Soft Suspend"

  }else{
   Status = "Active"
  }

 }else{
  // mapping
  // NONE	null
  // CAN	Cancelled
  // RES	Restore
  // SUS	Full Suspend
  // PSUS	Soft Suspend
  // C	Cancelled
  // T	Terminate
  // S	Full Suspend
  // U	Suspend-Collection
  // D	Suspend-Collection
  // L	Collection
  // Y	Soft Suspend
  String mappedStatus = mapping(StatusCode)   // see Mapping 5 --> yang mai hen wa chai tong nai

  if("CAN" == CollectionStatus || "CAN" == CreditLimitStatus || "CAN" == CreditLimitAtSubStatus){
   Status = "Cancelled"

  }else if("SUS" == CollectionStatus || "SUS" == CreditLimitStatus || "SUS" == CreditLimitAtSubStatus){
   Status = "Full Suspend"

  }else if("PSUS" == CollectionStatus || "PSUS" == CreditLimitStatus || "PSUS" == CreditLimitAtSubStatus || "Y" == BarringStatus ){
   Status = "Soft Suspend"

  }else {
   Status = "Active"
  }

 }

 mappedCreditLimitStatus = mapping(CreditLimitStatus)  // see Mapping 5
 CreditLimitStatus = mappedCreditLimitStatus

 mappedCollectionStatus = mapping(CollectionStatus)  // see Mapping 5
 CollectionStatus = mappedCollectionStatus

 mappedBarringStatus = mapping(BarringStatus)  // see Mapping 5
 BarringStatus = mappedBarringStatus 

 mappedCreditLimitAtSubStatus = mapping(CreditLimitAtSubStatus)  // see Mapping 5
 CreditLimitAtSubStatus = mappedCreditLimitAtSubStatus 

 check = false;
 arrayTmp = []

 if ( "Soft Suspend" == BarringStatus ) {
  arrayTmp.add([BarringActivityDate, BarringStatus+" Since: "+BarringActivityDate+ "("+BarringReason+")"])
  check = true;
 }

 if ( null != CreditLimitStatus ) {
  arrayTmp.add([CreditLimitActivityDate, CreditLimitStatus+" Since: "+CreditLimitActivityDate+"("+CreditLimitReason+")"])
  check = true;
 }

 if ( null != CollectionStatus ) {
  arrayTmp.add([CollectionActivityDate, CollectionStatus+" Since: "+CollectionActivityDate+ "("+CollectionReason+")"])
  check = true;
 }

 if ( "NONE" != CreditLimitAtSubStatus && null != CreditLimitAtSubStatus ) {

  message = CreditLimitAtSubStatus+ " Since: "+CreditLimitAtSubActivityDate+"("+CreditLimitAtSubReason+")"

  // arrayTmp.add([CreditLimitAtSubActivityDate, CreditLimitAtSubStatus+ " Since: "+CreditLimitAtSubActivityDate+"("+CreditLimitAtSubReason+")"])
  // check = true;
 }

 if (check) {
  if ( "A" != StatusCode ) {
   arrayTmp.add([Since, Status + " Since: "+Since+"("+Reason+")"])
  }
 } else {
  if ( null != Status ) {
   arrayTmp.add([Since, Status+ " Since: "+Since+"("+Reason+")"])
  }
 }

//  arrayTmp = [
//   ["10/01/1995", "Soft Suspend Since :10/01/1995(reason)"], 
//   ["10/01/1995", "Soft Suspend Since :10/01/1995(reason)"]
//  ]

 if (arrayTmp.size() > 0) {

  StringBuilder subStatusBuilder = new StringBuilder();

  subStatusBuilder.append(temp.getStatus()) // value temp ??
  subStatusBuilder.append("\n")

  sort(arrayTmp) // reang jak mak pai noi or noi pai mak

  for (String[] sTmp : arrayTmp) {
   subStatusBuilder.append(sTmp[1])
   subStatusBuilder.append("\n")
  }

  SubStatus = subStatusBuilder.toString());

  SubStatus = `$getStatus
  Restore Since: 09/01/1995($CollectionReason)
  Cancelled Since: 10/01/1995($Reason)
  Soft Suspend Since: 11/01/1995(reason)`

 }
}


$getStatus
Restore Since: 09/01/1995($CollectionReason)
Cancelled Since: 10/01/1995($Reason)
Soft Suspend Since: 11/01/1995(reason)

 // * --------------------------------------------------------------------------------------------------------------- * //






ResultList = /getProductHistoryListResponse/return/productHistoryList/subscriberStatusHistoryInfoArray

for (r in ResultList) {

  StatusCode = r.status.statusCode
  Activity = r.status.lastActivityPathId
  StatusReasonCode = r.status.statusReasonCode
  StatusReasonDescription = r.status.statusReasonDescription
  Since = r.effectiveDate
  PreviousSubscriber = r.linkPrevProductId
  NextSubscriber = r.linkNextProductId
  CreditLimitStatus = r.creditStatus.status
  CreditReasonCode = r.creditStatus.reasonCode
  CreditReasonDescription = r.creditStatus.reasonDescription
  CreditLimitActivityDate = r.creditStatus.lastActivityDate
  CollectionStatus = r.collectionStatus.status
  CollectionReasonCode = r.collectionStatus.reasonCode
  CollectionReasonDescription = r.collectionStatus.reasonDescription
  CollectionActivityDate = r.collectionStatus.lastActivityDate
  BarringStatus = r.barringByRequestIndicator
  BarringActivityDate = r.barringByRequestActivityDate
  BarringByRequestReasonCode = r.barringByRequestReasonCode
  BarringByRequestReasonDescription = r.barringByRequestReasonDescription
  CreditLimitAtSubStatus = r.creditLimitAtSubStatus.status
  CreditLimitAtSubActivityDate = r.creditLimitAtSubStatus.lastActivityDate
  CreditLimitAtSubReason = r.creditLimitAtSubStatus.reasonDescription

 if( null != statusReasonCode )
  Reason = StatusReasonCode+" : "+StatusReasonDescription
  //eg. Reason = 'RSP5 : Restore Subs - Found'


 if( null != CreditReasonCode )
  CreditLimitReason = CreditReasonCode+" : "+CreditReasonDescription

 if(null != CollectionReasonCode)
  CollectionReason = CollectionReasonCode+" : "+CollectionReasonDescription

 if(null != BarringByRequestReasonCode)
  BarringReason = BarringByRequestReasonCode+" : "+BarringByRequestReasonDescription


 if (null != Since )
  Since = Since

 if (null!= CollectionActivityDate )
  CollectionActivityDate = CollectionActivityDate

 if (null != CreditLimitActivityDate )
  CreditLimitActivityDate = CreditLimitActivityDate

 if (null != CreditLimitAtSubActivityDate )
  CreditLimitAtSubActivityDate = CreditLimitAtSubActivityDate

 if ( null != BarringActivityDate )
  BarringActivityDate = BarringActivityDate

 if("A" == StatusCode){

  if("CAN" == CollectionStatus || "CAN" == CreditLimitStatus || "CAN" == CreditLimitAtSubStatus){
   Status = "Cancelled"
  }else if("SUS" == CollectionStatus || "SUS" == CreditLimitStatus || "SUS" == CreditLimitAtSubStatus ){
   Status = "Full Suspend"

  }else if("PSUS" == CollectionStatus || "PSUS" == CreditLimitStatus || "PSUS" == CreditLimitAtSubStatus || "Y" == BarringStatus){
   Status = "Soft Suspend"

  }else{
   Status = "Active"
  }

} else {
    String mappedStatus = mapping(StatusCode)   // see Mapping 5
    
  // # Mapping 5 
  // # NONE        null
  // # CAN        Cancelled
  // # RES        Restore
  // # SUS        Full Suspend
  // # PSUS        Soft Suspend
  // # C        Cancelled
  // # T        Terminate
  // # S        Full Suspend
  // # U        Suspend-Collection
  // # D        Suspend-Collection
  // # L        Collection
  // # Y        Soft Suspend

    if (mappedStatus != null) {
    
      Status = mappedStatus
    
    } else {
      if("CAN" == CollectionStatus || "CAN" == CreditLimitStatus || "CAN" == CreditLimitAtSubStatus){
        Status = "Cancelled"
      
      }else if("SUS" == CollectionStatus || "SUS" == CreditLimitStatus || "SUS" == CreditLimitAtSubStatus){
        Status = "Full Suspend"
      
      }else if("PSUS" == CollectionStatus || "PSUS" == CreditLimitStatus || "PSUS" == CreditLimitAtSubStatus || "Y" == BarringStatus ){
        Status = "Soft Suspend"
      
      }else {
        Status = null
      }
    }
 }

// # Mapping 5 
// # NONE        null
// # CAN        Cancelled
// # RES        Restore
// # SUS        Full Suspend
// # PSUS        Soft Suspend
// # C        Cancelled
// # T        Terminate
// # S        Full Suspend
// # U        Suspend-Collection
// # D        Suspend-Collection
// # L        Collection
// # Y        Soft Suspend

 mappedCreditLimitStatus = mapping(CreditLimitStatus)  // see Mapping 5
 CreditLimitStatus = mappedCreditLimitStatus

 mappedCollectionStatus = mapping(CollectionStatus)  // see Mapping 5
 CollectionStatus = mappedCollectionStatus

 mappedBarringStatus = mapping(BarringStatus)  // see Mapping 5
 BarringStatus = mappedBarringStatus 

 mappedCreditLimitAtSubStatus = mapping(CreditLimitAtSubStatus)  // see Mapping 5
 CreditLimitAtSubStatus = mappedCreditLimitAtSubStatus 

 check = false;
 arrayTmp = new Array();

 if ( "Soft Suspend" == BarringStatus ) {
  arrayTmp.add(BarringStatus+" Since: "+BarringActivityDate+ "("+BarringReason+")")
  // arrayTmp.add(new String[]{BarringActivityDate, BarringStatus+" Since: "+BarringActivityDate+ "("+BarringReason+")"})
  check = true;
 }

 if ( null != CreditLimitStatus ) {
  arrayTmp.add(CreditLimitStatus+" Since: "+CreditLimitActivityDate+"("+CreditLimitReason+")")
  // arrayTmp.add(new String[]{CreditLimitActivityDate, CreditLimitStatus+" Since: "+CreditLimitActivityDate+"("+CreditLimitReason+")"})
  check = true;
 }

 if ( null != CollectionStatus ) {
   arrayTmp.add(CollectionStatus+" Since: "+CollectionActivityDate+ "("+CollectionReason+")")
  // arrayTmp.add(new String[]{CollectionActivityDate, CollectionStatus+" Since: "+CollectionActivityDate+ "("+CollectionReason+")"})
  check = true;
 }

 if ( "NONE" != CreditLimitAtSubStatus && null != CreditLimitAtSubStatus ) {
   arrayTmp.add(CreditLimitAtSubStatus+ " Since: "+CreditLimitAtSubActivityDate+"("+CreditLimitAtSubReason+")")
  // arrayTmp.add(new String[]{CreditLimitAtSubActivityDate, CreditLimitAtSubStatus+ " Since: "+CreditLimitAtSubActivityDate+"("+CreditLimitAtSubReason+")"})
  check = true;
 }

 if (check) {
  if ( "A" != StatusCode ) {
   arrayTmp.add(Status + " Since: "+Since+"("+Reason+")")
  }
 }
 else {
  if ( null != Status ) {
   arrayTmp.add(Status+ " Since: "+Since+"("Reason+")")
  }
 }

 if (arrayTmp.size() > 0) {
  fn_sort(arrayTmp) // Sort ตามวันที่(parameter หลัง Since: xxx) มาก ไป น้อย  ให้เอาเฉพาะวันที่ที่มากที่สุด
  SubStatus = arrayTmp[0] // ตัวแรก(index)ของ arrayTmp
 }
}