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 } }