TheLazyPig
Programmer
Hi!
I have a dropdown where I can choose the reference type. JV has a different column while others are all the same.
Example that I choose JV then input a reference no. and click search. Details from the reference no. will view.
After I click add button, details should be viewed only on JV Payout Information table instead it was added to both table/s.
Since the project was created first using Angular JS I'm not yet familiar with it.
Thank you in advance!!!
I have a dropdown where I can choose the reference type. JV has a different column while others are all the same.
Code:
//TPL
<table class="flform">
<tbody>
<tr>
<th>REFERENCE TYPE</th>
<th>REFERENCE NUMBER</th>
<th></th>
</tr>
<tr>
<td class="w-20">
<select ng-model="searchParams.refType" ng-change="selectJVRef(searchParams.refType)">
<option ng-repeat="refType in library.data.payoutReftype" value="{{refType.KEYSEQNO}}" ng-selected="searchParams.refType == refType.KEYSEQNO">{{refType.KEYDESC}}</option>
<option value="checkNo">Check Number</option>
</select>
</td>
<td class="w-65"><input type="text" ng-model="searchParams.refNo" ng-keyup="$event.keyCode === 13 && search()" /></td>
<td class="w-15"><button class="flbtn primary w-100" ng-click="search()">Search</button></td>
</tr>
</tbody>
</table>
Example that I choose JV then input a reference no. and click search. Details from the reference no. will view.
Code:
//TPL
<div class="flbox scroll-y-300">
<table class="fltbl stick-head">
<thead ng-show="showv">
<tr>
<th class="w-5"></th>
<th class="w-10">Reference Number</th>
<th class="w-10">Check Number</th>
<th class="w-10">Check Bank</th>
<th class="w-10">Check Date</th>
<th class="w-20">Payee</th>
<th class="w-10">Amount</th>
<th class="w-10">Status</th>
<th class="w-25">Remarks</th>
<th>User</th>
<th>Transaction Date</th>
</tr>
</thead ng-show="showv">
<tbody ng-show="showv">
<tr class="center" ng-show="searches.length > 0" ng-repeat="data in searches">
<td><button class="flbtn sm success" ng-click="addInfo(data)" ng-disabled="isAlreadyAdded(data)" ng-class="isAlreadyAdded(data) ? 'crsr-dsbld' : ''">Add</button></td>
<td>{{data.refNo}}</td>
<td>{{data.checkNo}}</td>
<td>{{data.checkBank}}</td>
<td>{{data.checkDate}}</td>
<td>{{data.payee}}</td>
<td>{{data.amount|number:2}}</td>
<td>{{data.status}}</td>
<td><input type="text" ng-model="data.remarks"/></td>
<td>{{data.tranUser}}</td>
<td>{{data.tranDate}}</td>
</tr>
<tr class="center" ng-show="searches.length < 1">
<td colspan="11">No Data Found</td>
</tr>
</tbody ng-show="showv">
<!-- FOR JV -->
<div>
<thead ng-show="!showv">
<tr>
<th class="w-5"></th>
<th class="w-10">Reference Number</th>
<th class="w-15">Payee</th>
<th class="w-10">Credit</th>
<th class="w-10">Debit</th>
<th class="w-10">Status</th>
<th class="w-20">Particulars</th>
<th class="w-20">Remarks</th
</tr>
</thead ng-show="!showv">
<tbody ng-show="!showv">
<tr class="center" ng-show="searches.length > 0" ng-repeat="data in searches">
<td><button class="flbtn sm success" ng-click="addInfo(data)" ng-disabled="isAlreadyAdded(data)" ng-class="isAlreadyAdded(data) ? 'crsr-dsbld' : ''">Add</button></td>
<td>{{data.refNo}}</td>
<td>{{data.payee}}</td>
<td>{{data.credit|number:2}}</td>
<td>{{data.debit|number:2}}</td>
<td>{{data.status}}</td>
<td>{{data.particulars}}</td>
<td><input type="text" ng-model="data.remarks"/></td>
</tr>
<tr class="center" ng-show="searches.length < 1">
<td colspan="11">No Data Found</td>
</tr>
</tbody ng-show="!showv">
</div>
</table>
</div>
Code:
//JS
ngApp.controller('SearchOPRFPController',function SearchOPRFPController($scope,$rootScope,ClaimService,LibraryService,fn){
$scope.library = LibraryService;
$scope.visible = false;
$scope.showjv = false;
$scope.info = {};
$scope.searchParams = {
refType : "",
refNo : ""
};
$scope.searches = [];
$scope.isAlreadyAdded = function(data,toReverseDeletion){
if($scope.info.payout.length == 0) return false;
toReverseDeletion = fn.isEmpty(toReverseDeletion) ? false : toReverseDeletion;
for (let x in $scope.info.payout){
if($scope.info.payout[x].refType == data.refType
&& $scope.info.payout[x].refSeqno == data.refSeqno
&& $scope.info.payout[x].payeeid == data.payeeid
&& (fn.isEmpty($scope.info.payout[x].benefitPolRef) || $scope.info.payout[x].benefitPolRef == data.benefitPolRef)
){
if (toReverseDeletion == true) {
$scope.info.payout[x].deleted = false;
return "reversed";
}
if (fn.isEmpty($scope.info.payout[x].deleted) || (!fn.isEmpty($scope.info.payout[x].deleted) && $scope.info.payout[x].deleted == false))
return true;
}
}
return false;
};
$scope.selectJVRef = function(showv){
console.log(showv);
if(showv==60006){
$scope.showv = false;
}
else{
$scope.showv = true;
}
}
$scope.search = function(){
if(isClaimProcessing) return;
isClaimProcessing = true;
$rootScope.$broadcast(cast.LOAD_ALERT,{load_msg : "LOADING . . ."});
if($scope.searchParams.refType == 60006){
ClaimService.searchJV($scope.searchParams,function(success,data){
$rootScope.$broadcast(cast.LOAD_ALERT,{load_msg : ""});
isClaimProcessing = false;
if(!success){
$rootScope.$broadcast(cast.SHOW_MESSAGE,4,{message : data});
return;
}
if(data.length == 0){
$rootScope.$broadcast(cast.SHOW_MESSAGE,3,{message : "No Data Found."});
}
$scope.resultsFound = data.length > 0 ? data.length + ' Found' : '';
$scope.searches = data;
});
} else {
ClaimService.searchOP_RFP($scope.searchParams,function(success,data){
$rootScope.$broadcast(cast.LOAD_ALERT,{load_msg : ""});
isClaimProcessing = false;
if(!success){
$rootScope.$broadcast(cast.SHOW_MESSAGE,4,{message : data});
return;
}
if(data.length == 0){
$rootScope.$broadcast(cast.SHOW_MESSAGE,3,{message : "No Data Found."});
}
$scope.resultsFound = data.length > 0 ? data.length + ' Found' : '';
$scope.searches = data;
});
}
};
let errMsg = "Unknown Error Occurred";
let isValidData = function(data){
if(fn.isEmpty(data.refType) || fn.isEmpty(data.refSeqno) || fn.isEmpty(data.payeeid)){
errMsg = "Invalid Reference. Cannot Save";
return false;
}
return true;
};
$scope.addInfo = function(data){
if(isClaimProcessing) return;
alert('FOR OP');
if(!isValidData(data)){
$rootScope.$broadcast(cast.SHOW_MESSAGE,3,{message : errMsg});
return;
}
let toReverse = $scope.isAlreadyAdded(data,true);
if(toReverse == "reversed") return;
$scope.info.payout.push(angular.copy(data));
};
$scope.$on(cast.SEARCH_OP_RFP,function(){
if(isClaimProcessing) return;
$scope.searchParams.refType = LibraryService.data.payoutReftype[0].KEYSEQNO;
$scope.info = ClaimService.info;
fn.setHtmlNoScroll(true);
$scope.visible = true;
});
$scope.exitMdl = function(){
fn.setHtmlNoScroll(false);
$scope.visible = false;
};
$scope.esc = function($event){
if($event.keyCode == 27) $scope.exitMdl();
};
});
After I click add button, details should be viewed only on JV Payout Information table instead it was added to both table/s.
Code:
//TPL
<div class="flframe" ng-controller="PayoutInformationController">
<div class="title">Payout Information</div>
<table class="fltbl">
<thead>
<tr>
<th class="w-5"></th>
<th class="w-5">Ref Type</th>
<th class="w-10">Reference Number</th>
<th class="w-5">Check Number</th>
<th class="w-10">Check Bank</th>
<th class="w-10">Check Date</th>
<th class="w-25">Payee</th>
<th class="w-10">Amount</th>
<th class="w-25">Remarks</th>
<th>Added By</th>
<th>Date Added</th>
</tr>
</thead>
<tbody>
<tr class="center" ng-show="hasInfo() && payout.deleted != true" ng-repeat="payout in info().payout">
<td><button class="flbtn error sm" ng-click="removePayoutInfo(payout)" ng-disabled="!can_edit()" ng-show="payout.refTypeDesc != 'OP'">Remove</button></td>
<td>{{payout.refTypeDesc}}</td>
<td>{{payout.refNo}}</td>
<td>{{payout.checkNo}}</td>
<td>{{payout.checkBank}}</td>
<td>{{payout.checkDate}}</td>
<td>{{payout.payee}}</td>
<td>{{payout.amount|number:2}}</td>
<td>{{payout.remarks}}</td>
<td>{{payout.tranUser}}</td>
<td>{{payout.tranDate}}</td>
</tr>
<tr class="center" ng-show="!hasInfo()">
<td colspan="11">No Data Found</td>
</tr>
</tbody>
</table>
</div>
<!-- FOR JV -->
<div class="flframe" ng-controller="PayoutInformationController">
<div class="title">JV Payout Information</div>
<table class="fltbl">
<thead>
<tr>
<th class="w-5"></th>
<th class="w-10">Ref Type</th>
<th class="w-10">Reference Number</th>
<th class="w-15">Payee</th>
<th class="w-10">Credit</th>
<th class="w-10">Debit</th>
<th class="w-25">Particulars</th>
<th class="w-25">Remarks</th>
</tr>
</thead>
<tbody>
<tr class="center" ng-show="hasInfo() && payout.deleted != true" ng-repeat="payout in info().payout">
<td><button class="flbtn error sm" ng-click="removePayoutInfo(payout)" ng-disabled="!can_edit()" ng-show="payout.refTypeDesc != 'OP'">Remove</button></td>
<td>{{payout.refTypeDesc}}</td>
<td>{{payout.refNo}}</td>
<td>{{payout.payee}}</td>
<td>{{payout.credit|number:2}}</td>
<td>{{payout.debit|number:2}}</td>
<td>{{payout.particulars}}</td>
<td>{{payout.remarks}}</td>
</tr>
<tr class="center" ng-show="!hasInfo()">
<td colspan="11">No Data Found</td>
</tr>
</tbody>
</table>
</div>
Code:
//JS
ngApp.controller('PayoutInformationController',function PayoutInformationController($scope,$rootScope,ClaimService,fn){
$scope.info = function(){
return ClaimService.getInfo();
};
$scope.isEmpty = function(value){
return fn.isEmpty(value);
};
$scope.removePayoutInfo = function(data){
if(fn.isEmpty(data)) return;
if(!confirm('Are you sure you want to remove this payout information from the registry?')) return;
for (let x in $scope.info().payout){
if($scope.info().payout[x].polRef == data.polRef
&& $scope.info().payout[x].refType == data.refType
&& $scope.info().payout[x].refSeqno == data.refSeqno
&& $scope.info().payout[x].payeeid == data.payeeid
&& $scope.info().payout[x].benefitPolRef == data.benefitPolRef
){
$scope.info().payout[x].deleted = true;
}
}
};
$scope.hasInfo = function(){
if(!fn.isEmpty($scope.info().payout) && $scope.info().payout.length == 0) return false;
for (let x in $scope.info().payout){
if(fn.isEmpty($scope.info().payout[x].deleted) || (!fn.isEmpty($scope.info().payout[x].deleted) && $scope.info().payout[x].deleted == false)) return true;
}
return false;
};
$scope.can_edit = function(){
return !fn.isEmpty(ClaimService.getInfo().regNo) && ClaimService.can_edit(2).can_edit;
};
$scope.addRemarks = function(polRef){
$rootScope.$broadcast(cast.ADD_REMARKS,polRef);
};
});
Since the project was created first using Angular JS I'm not yet familiar with it.
Thank you in advance!!!