parent
5ccff0ef78
commit
2367e27ed8
@ -0,0 +1,77 @@
|
|||||||
|
package au.com.royalpay.payment.manage.merchants.beans;
|
||||||
|
|
||||||
|
import au.com.royalpay.payment.core.exceptions.ParamInvalidException;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.commons.lang3.time.DateUtils;
|
||||||
|
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by yixian on 2016-07-01.
|
||||||
|
*/
|
||||||
|
public class ClientComplianceQuery {
|
||||||
|
|
||||||
|
private int limit = 10;
|
||||||
|
private int page = 1;
|
||||||
|
private String status;
|
||||||
|
private String client_order_id;
|
||||||
|
private String client_moniker;
|
||||||
|
|
||||||
|
public JSONObject toJson(){
|
||||||
|
JSONObject jason = new JSONObject();
|
||||||
|
if(StringUtils.isNotEmpty(status)){
|
||||||
|
jason.put("status",status);
|
||||||
|
}
|
||||||
|
if(StringUtils.isNotEmpty(client_order_id)){
|
||||||
|
jason.put("client_order_id",client_order_id);
|
||||||
|
}
|
||||||
|
if(StringUtils.isNotEmpty(client_moniker)){
|
||||||
|
jason.put("client_moniker",client_moniker);
|
||||||
|
}
|
||||||
|
return jason;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLimit() {
|
||||||
|
return limit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLimit(int limit) {
|
||||||
|
this.limit = limit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPage() {
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPage(int page) {
|
||||||
|
this.page = page;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(String status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getClient_order_id() {
|
||||||
|
return client_order_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClient_order_id(String client_order_id) {
|
||||||
|
this.client_order_id = client_order_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getClient_moniker() {
|
||||||
|
return client_moniker;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClient_moniker(String client_moniker) {
|
||||||
|
this.client_moniker = client_moniker;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package au.com.royalpay.payment.manage.merchants.core;
|
||||||
|
|
||||||
|
import au.com.royalpay.payment.manage.merchants.beans.ClientApplyInfo;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.beans.ClientComplianceQuery;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.beans.PartnerQuery;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by yishuqian on 18/10/2016.
|
||||||
|
*/
|
||||||
|
public interface ClientComplianceApply {
|
||||||
|
JSONObject listClientComplianceApply(JSONObject manager, ClientComplianceQuery apply);
|
||||||
|
void passComplianceFiles(JSONObject manager,JSONObject passInfo);
|
||||||
|
void refuseComplianceFiles(JSONObject manager,JSONObject refuseInfo);
|
||||||
|
JSONObject complianceAuthFile(JSONObject client);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,124 @@
|
|||||||
|
package au.com.royalpay.payment.manage.merchants.core.impls;
|
||||||
|
|
||||||
|
|
||||||
|
import au.com.royalpay.payment.core.exceptions.InvalidShortIdException;
|
||||||
|
import au.com.royalpay.payment.manage.mappers.system.*;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.beans.ClientApplyInfo;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.beans.ClientComplianceQuery;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.beans.PartnerQuery;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.core.ClientApply;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.core.ClientComplianceApply;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.core.ClientConfigService;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.core.ClientModifySupport;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.entity.impls.SourceModify;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.events.ClientApplyEvent;
|
||||||
|
import au.com.royalpay.payment.manage.merchants.events.ClientApplyNotifyBDEvent;
|
||||||
|
import au.com.royalpay.payment.tools.exceptions.BadRequestException;
|
||||||
|
import au.com.royalpay.payment.tools.exceptions.ForbiddenException;
|
||||||
|
import au.com.royalpay.payment.tools.exceptions.NotFoundException;
|
||||||
|
import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
|
||||||
|
import au.com.royalpay.payment.tools.utils.PageListUtils;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.github.miemiedev.mybatis.paginator.domain.Order;
|
||||||
|
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
|
||||||
|
import com.github.miemiedev.mybatis.paginator.domain.PageList;
|
||||||
|
import org.apache.commons.lang3.RandomStringUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
||||||
|
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
|
||||||
|
import org.apache.poi.hssf.usermodel.HSSFFont;
|
||||||
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||||
|
import org.apache.poi.hssf.util.HSSFColor;
|
||||||
|
import org.apache.poi.ss.usermodel.*;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.context.ApplicationEventPublisher;
|
||||||
|
import org.springframework.context.ApplicationEventPublisherAware;
|
||||||
|
import org.springframework.data.redis.core.BoundValueOperations;
|
||||||
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by yishuqian on 18/10/2016.
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class ClientComplianceApplyImpl implements ClientComplianceApply
|
||||||
|
{
|
||||||
|
@Resource
|
||||||
|
private ClientComplianceCompanyMapper clientComplianceCompanyMapper;
|
||||||
|
@Resource
|
||||||
|
private ClientFilesMapper clientFilesMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject listClientComplianceApply(JSONObject manager, ClientComplianceQuery applyQuery) {
|
||||||
|
JSONObject params = applyQuery.toJson();
|
||||||
|
if (ManagerRole.BD_USER.hasRole(manager.getIntValue("role"))) {
|
||||||
|
params.put("bd_user", manager.getString("manager_id"));
|
||||||
|
}
|
||||||
|
PageList<JSONObject> partners = clientComplianceCompanyMapper.listClientCompliances(params, new PageBounds(applyQuery.getPage(), applyQuery.getLimit(), Order.formString("create_time.desc")));
|
||||||
|
return PageListUtils.buildPageListResult(partners);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void passComplianceFiles(JSONObject manager, JSONObject passInfo) {
|
||||||
|
JSONObject pass = new JSONObject();
|
||||||
|
pass.put("operator_id", manager.getString("manager_id"));
|
||||||
|
pass.put("client_id",passInfo.getIntValue("client_id"));
|
||||||
|
clientComplianceCompanyMapper.passComplianceFiles(pass);
|
||||||
|
clientFilesMapper.passComplianceFiles(passInfo.getIntValue("client_id"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void refuseComplianceFiles(JSONObject manager, JSONObject refuseInfo) {
|
||||||
|
JSONObject refuse = new JSONObject();
|
||||||
|
refuse.put("operator_id", manager.getString("manager_id"));
|
||||||
|
refuse.put("client_id",refuseInfo.getIntValue("client_id"));
|
||||||
|
refuse.put("description",refuseInfo.getIntValue("description"));
|
||||||
|
clientComplianceCompanyMapper.refuseComplianceFiles(refuse);
|
||||||
|
clientFilesMapper.refuseComplianceFiles(refuseInfo.getIntValue("client_id"));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject complianceAuthFile(JSONObject client)
|
||||||
|
{
|
||||||
|
String[] fileKeys = {"client_bank_file", "client_company_file", "client_id_file", "client_agree_file", "client_apply_file"};
|
||||||
|
if (client == null) {
|
||||||
|
throw new InvalidShortIdException();
|
||||||
|
}
|
||||||
|
List<JSONObject> clientFiles = clientFilesMapper.findAllClientFile(client.getIntValue("client_id"));
|
||||||
|
JSONObject fileJson = new JSONObject();
|
||||||
|
if (clientFiles != null && clientFiles.size() > 0) {
|
||||||
|
for (String fileKey : fileKeys) {
|
||||||
|
List<JSONObject> clientFileUrl = clientFiles.stream()
|
||||||
|
.filter(json -> (fileKey.equals(json.getString("file_name"))))
|
||||||
|
.sorted((log1, log2) -> log2.getDate("last_update_date").compareTo(log1.getDate("last_update_date")))
|
||||||
|
.map(json -> {
|
||||||
|
JSONObject params = new JSONObject();
|
||||||
|
params.put("file_id", json.getString("file_id"));
|
||||||
|
params.put("status", json.getString("status"));
|
||||||
|
params.put("file_value", json.getString("file_value"));
|
||||||
|
return params;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
if (clientFileUrl != null && clientFileUrl.size() > 0) {
|
||||||
|
fileJson.put(fileKey, clientFileUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return fileJson;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
|
<mapper namespace="au.com.royalpay.payment.manage.mappers.system.ClientComplianceCompanyMapper">
|
||||||
|
|
||||||
|
<select id="listClientCompliances" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT c.* FROM client_authfile_compliance c
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
@ -0,0 +1,107 @@
|
|||||||
|
<style type="text/css">
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">Audit Files
|
||||||
|
<button class="btn-group btn btn-warning" type="button"
|
||||||
|
ng-click="passPartnerComplianceFiles()" >PASS
|
||||||
|
</button>
|
||||||
|
<button class="btn btn-danger" type="button"
|
||||||
|
ng-click="">REFUSE
|
||||||
|
</button>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="form-horizontal">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2">* bank statement</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr ng-repeat="file_src in file.client_bank_file track by $index">
|
||||||
|
<td ng-bind="$index+1+'.'" ALIGN="left" VALIGN="top" class="btn">1</td>
|
||||||
|
<td><a target="_blank" ng-href="{{file_src.file_value}}">
|
||||||
|
<img class="col-sm-6" style="border: 1px solid #ddd" ng-src="{{file_src.file_value}}" class="col-sm-8" onerror="this.src='https://static.easyicon.net/preview/118/1184255.gif'">
|
||||||
|
</a>
|
||||||
|
<button class="btn btn-success" type="button" ng-if="file_src.status == 1">已通过审核</button>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2">* Certificate of Registration</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr ng-repeat="file_src in file.client_company_file track by $index">
|
||||||
|
<td ng-bind="$index+1+'.'" class="btn">1</td>
|
||||||
|
<td><a target="_blank" ng-href="{{file_src.file_value}}">
|
||||||
|
<img class="col-sm-6" style="border: 1px solid #ddd" ng-src="{{file_src.file_value}}" class="col-sm-8" onerror="this.src='https://static.easyicon.net/preview/118/1184255.gif'">
|
||||||
|
</a>
|
||||||
|
<button class="btn btn-success" type="button" ng-if="file_src.status == 1">已通过审核</button>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2">* ID </label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr ng-repeat="file_src in file.client_id_file track by $index">
|
||||||
|
<td ng-bind="$index+1+'.'" class="btn">1</td>
|
||||||
|
<td><a target="_blank" ng-href="{{file_src.file_value}}">
|
||||||
|
<img class="col-sm-6" style="border: 1px solid #ddd" ng-src="{{file_src.file_value}}" class="col-sm-8" onerror="this.src='https://static.easyicon.net/preview/118/1184255.gif'">
|
||||||
|
</a>
|
||||||
|
<button class="btn btn-success" type="button" ng-if="file_src.status == 1">已通过审核</button>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-horizontal">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2">* Agreement</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr ng-repeat="file_src in file.client_agree_file track by $index">
|
||||||
|
<td ng-bind="$index+1+'.'" class="btn">1</td>
|
||||||
|
<td><a target="_blank" ng-href="{{file_src.file_value}}">
|
||||||
|
<img class="col-sm-6" style="border: 1px solid #ddd" ng-src="{{file_src.file_value}}" class="col-sm-8" onerror="this.src='https://static.easyicon.net/preview/118/1184255.gif'">
|
||||||
|
</a>
|
||||||
|
<button class="btn btn-success" type="button" ng-if="file_src.status == 1">已通过审核</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--<div class="margin-bottom margin-top">-->
|
||||||
|
<!--<button class="btn-group btn btn-success" type="button" ng-click="updateFile()">Save-->
|
||||||
|
<!--</button>-->
|
||||||
|
<!--</div>-->
|
@ -0,0 +1,256 @@
|
|||||||
|
<section class="content-header">
|
||||||
|
<h1>
|
||||||
|
<span ng-bind="partner.company_name"></span>
|
||||||
|
</h1>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="content">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="nav-tabs-custom">
|
||||||
|
<div class="tab-content" ui-view>
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
Partner Basic Information
|
||||||
|
<span ng-if="partner.apply_approve_result==3||partner.apply_approve_result==4"
|
||||||
|
style="color: red">(Refused)</span>
|
||||||
|
<span ng-if="partner.apply_approve_result==2 && partner.client_id" style="color: green">(Pass)</span>
|
||||||
|
<span class="form-inline" ng-if="('10'|withRole) && partner.apply_approve_result==1" style="color: blue">
|
||||||
|
({{partner.bd_user_name}} is following)
|
||||||
|
<div class="form-group"
|
||||||
|
style="padding-left: 10px">
|
||||||
|
<div class="form-group">
|
||||||
|
<ui-select ng-model="choosed.selected" theme="bootstrap" reset-search-input="false" title="Choose a BD"
|
||||||
|
append-to-body="true" style="min-width: 150px;max-width: 300px">
|
||||||
|
<ui-select-match placeholder="Select a BD To Follow Up">{{$select.selected.display_name}}</ui-select-match>
|
||||||
|
<ui-select-choices group-by="'org_name'"
|
||||||
|
repeat="bd in bds | filter:$select.search">
|
||||||
|
<div ng-bind-html="bd.display_name | highlight: $select.search"></div>
|
||||||
|
</ui-select-choices>
|
||||||
|
</ui-select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="button" class="btn btn-success" ng-class="{'disabled':!choosed.selected}"
|
||||||
|
ng-click="chooseBD(choosed.selected)">Change BD</button>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<span style="float: right;margin-top: -7px" class="form-inline"
|
||||||
|
ng-if="(partner.apply_approve_result==0 && ('10'|withRole))||(partner.apply_approve_result==1 && ('100'|withRole))">
|
||||||
|
<!--<div uib-dropdown ng-if="partner.apply_approve_result==0 && ('10'|withRole)" class="btn-group pull-right">-->
|
||||||
|
|
||||||
|
<!--<button id="single-button" type="button" class="btn btn-success" uib-dropdown-toggle ng-disabled="disabled">-->
|
||||||
|
<!--Choose BD To Follow Up <span class="caret"></span>-->
|
||||||
|
<!--</button>-->
|
||||||
|
<!--<ul class="dropdown-menu" uib-dropdown-menu aria-labelledby="single-button">-->
|
||||||
|
<!--<li ng-repeat="bd in bds"><a ng-click="chooseBD(bd)">{{bd.display_name}}</a></li>-->
|
||||||
|
<!--</ul>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<div class="form-group">
|
||||||
|
<a role="button" class="btn btn-danger" ng-click="refuse()">
|
||||||
|
Refuse
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="form-group" ng-if="partner.apply_approve_result==0 && ('10'|withRole)"
|
||||||
|
style="padding-left: 10px">
|
||||||
|
<div class="form-group">
|
||||||
|
<ui-select ng-model="choosed.selected" theme="bootstrap" reset-search-input="false" title="Choose a BD"
|
||||||
|
append-to-body="true" style="min-width: 150px;max-width: 300px">
|
||||||
|
<ui-select-match placeholder="Select a BD To Follow Up">{{$select.selected.display_name}}</ui-select-match>
|
||||||
|
<ui-select-choices group-by="'org_name'"
|
||||||
|
repeat="bd in bds | filter:$select.search">
|
||||||
|
<div ng-bind-html="bd.display_name | highlight: $select.search"></div>
|
||||||
|
</ui-select-choices>
|
||||||
|
</ui-select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="button" class="btn btn-success" ng-class="{'disabled':!choosed.selected}"
|
||||||
|
ng-click="chooseBD(choosed.selected)">Next</button>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<a ng-click="pass(partner)" ng-if="partner.apply_approve_result==1 && ('100'|withRole)"
|
||||||
|
role="button" class="btn btn-success">
|
||||||
|
PASS
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="form-horizontal">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2">Full Name</label>
|
||||||
|
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<p class="form-control-static" ng-bind="partner.company_name"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2">Short Name</label>
|
||||||
|
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<p class="form-control-static" ng-bind="partner.short_name"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2">Business License No. (ABN/ACN)</label>
|
||||||
|
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<p class="form-control-static" ng-bind="partner.abn"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--<div class="form-group">-->
|
||||||
|
<!--<label class="control-label col-sm-2">Industry</label>-->
|
||||||
|
|
||||||
|
<!--<div class="col-sm-10">-->
|
||||||
|
<!--<p class="form-control-static" ng-bind="partner.industry|partner_industry"></p>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="form-group" ng-if="partner.company_email">-->
|
||||||
|
<!--<label class="control-label col-sm-2">Email Address</label>-->
|
||||||
|
|
||||||
|
<!--<div class="col-sm-10">-->
|
||||||
|
<!--<p class="form-control-static" target="_blank" ng-bind="partner.company_email"></p>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<div class="form-group" ng-if="partner.company_website">
|
||||||
|
<label class="control-label col-sm-2">Website</label>
|
||||||
|
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<a class="form-control-static" target="_blank" ng-bind="partner.company_website"
|
||||||
|
ng-href="http://{{partner.company_website}}"></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2">Office Telephone Number</label>
|
||||||
|
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<p class="form-control-static" ng-bind="partner.company_phone||'-'"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--<div class="form-group col-sm-6">-->
|
||||||
|
<!--<label class="control-label col-sm-4">Mobile Number (China)</label>-->
|
||||||
|
|
||||||
|
<!--<div class="col-sm-8">-->
|
||||||
|
<!--<p class="form-control-static" ng-bind="partner.mobile_chn||'-'"></p>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="form-group col-sm-6">-->
|
||||||
|
<!--<label class="control-label col-sm-4">Mobile Number (Aus)</label>-->
|
||||||
|
|
||||||
|
<!--<div class="col-sm-8">-->
|
||||||
|
<!--<p class="form-control-static" ng-bind="partner.mobile_aus||'-'"></p>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<div class="form-group col-sm-12">
|
||||||
|
<label class="control-label col-sm-2">Address</label>
|
||||||
|
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<p class="form-control-static" ng-bind="partner.address"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-sm-6">
|
||||||
|
<label class="control-label col-sm-4">City</label>
|
||||||
|
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<p class="form-control-static" ng-bind="partner.suburb"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-sm-6">
|
||||||
|
<label class="control-label col-sm-4">Post Code</label>
|
||||||
|
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<p class="form-control-static" ng-bind="partner.postcode"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-sm-6">
|
||||||
|
<label class="control-label col-sm-4">State</label>
|
||||||
|
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<p class="form-control-static" ng-bind="partner.state||partner_state"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-sm-6">
|
||||||
|
<label class="control-label col-sm-4">Country</label>
|
||||||
|
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<p class="form-control-static" ng-bind="partner.country"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-sm-6">
|
||||||
|
<label class="control-label col-sm-4">Business category</label>
|
||||||
|
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<p class="form-control-static" ng-bind="(partner.aus_mch_category |aus_mch_category).categoryLabel"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-sm-6">
|
||||||
|
<label class="control-label col-sm-4">Business industry</label>
|
||||||
|
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<p class="form-control-static" ng-bind="(partner.aus_mch_category |aus_mch_category).industryLabel"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--end 商户基本资料-->
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">Contact Information</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="form-horizontal">
|
||||||
|
<div class="form-group col-sm-12">
|
||||||
|
<label class="control-label col-sm-2">Contact Person</label>
|
||||||
|
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<p class="form-control-static" ng-bind="partner.contact_person"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--<div class="form-group col-sm-6">-->
|
||||||
|
<!--<label class="control-label col-sm-4">Job Title</label>-->
|
||||||
|
|
||||||
|
<!--<div class="col-sm-8">-->
|
||||||
|
<!--<p class="form-control-static" ng-bind="partner.contact_person_job"></p>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<div class="form-group col-sm-6">
|
||||||
|
<label class="control-label col-sm-4">Telephone No.</label>
|
||||||
|
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<p class="form-control-static" ng-bind="partner.contact_phone"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-sm-6">
|
||||||
|
<label class="control-label col-sm-4">E-mail</label>
|
||||||
|
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<p class="form-control-static" ng-bind="partner.contact_email"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--end 商户联系资料-->
|
||||||
|
<div class="panel panel-default" ng-if="partner.apply_approve_result>0">
|
||||||
|
<div class="panel-heading">Approaching Progress </div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="form-horizontal">
|
||||||
|
<div class="form-group col-sm-12">
|
||||||
|
<div class="col-sm-12" ng-if="('100'|withRole)">
|
||||||
|
<textarea class="form-control" ng-model="partner.remark" name="remark"
|
||||||
|
id="remark-input" maxlength="500"></textarea>
|
||||||
|
<a ng-if="('100'|withRole)" class="btn btn-success" role="button" ng-click="updateRemark()">Save</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12" ng-if="partner.apply_approve_result>0 && ('10'|withRole)">
|
||||||
|
<p class="form-control-static" ng-bind="partner.remark"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -0,0 +1,85 @@
|
|||||||
|
<section class="content-header">
|
||||||
|
<h1>商户合规文件审核</h1>
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
<li>
|
||||||
|
<i class="fa fa-sitemap"></i> Compliance Management
|
||||||
|
</li>
|
||||||
|
<li class="active">商户合规文件审核</li>
|
||||||
|
</ol>
|
||||||
|
</section>
|
||||||
|
<!--<ul class="nav nav-tabs">
|
||||||
|
<li ui-sref-active-eq="active" class="active">
|
||||||
|
<a ui-sref="contract">Contract</a>
|
||||||
|
</li>
|
||||||
|
<li ui-sref-active-eq="active" class="active">
|
||||||
|
<a ui-sref="manual_settle">Manual Settle</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<br>-->
|
||||||
|
<div class="box box-danger">
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="form-inline">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label" for="title-search">Partner Code</label>
|
||||||
|
<input class="form-control" id="title-search" ng-model="params.client_moniker">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<button class="btn btn-primary" type="button" ng-click="loadClientCompliance(1)"><i
|
||||||
|
class="fa fa-search"></i></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="box box-danger">
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="box-body table-responsive">
|
||||||
|
<table class="table table-bordered table-striped table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Client Moniker</th>
|
||||||
|
<th>Compliance Id</th>
|
||||||
|
<th>Create Time</th>
|
||||||
|
<th>Compliance Status</th>
|
||||||
|
<th>Operator Id</th>
|
||||||
|
<th>Refuse Reason</th>
|
||||||
|
<th>Operation</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr ng-repeat="compliance_company in compliances">
|
||||||
|
<td ng-bind="compliance_company.client_id"></td>
|
||||||
|
<td ng-bind="compliance_company.compliance_id"></td>
|
||||||
|
<td ng-bind="compliance_company.create_time|date:'dd/MMM/yyyy'"></td>
|
||||||
|
<td ng-bind="compliance_company.status"></td>
|
||||||
|
<td ng-bind="compliance_company.operator_id"></td>
|
||||||
|
<td ng-bind="compliance_company.description"></td>
|
||||||
|
<td><a class="text-primary" role="button" title="Detail"
|
||||||
|
ui-sref="partner_apply.compliance_detail({client_id:compliance_company.client_id})"
|
||||||
|
<i class="fa fa-search"></i> Detail
|
||||||
|
</a></td>
|
||||||
|
<!--({client_id:compliance_company.client_id})-->
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-footer">
|
||||||
|
<uib-pagination ng-if="compliances.length"
|
||||||
|
class="pagination"
|
||||||
|
total-items="pagination.totalCount"
|
||||||
|
boundary-links="true"
|
||||||
|
ng-model="pagination.page"
|
||||||
|
items-per-page="pagination.limit"
|
||||||
|
max-size="10"
|
||||||
|
ng-change="getContractAnalysis()"
|
||||||
|
previous-text="‹"
|
||||||
|
next-text="›"
|
||||||
|
first-text="«"
|
||||||
|
last-text="»"></uib-pagination>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
Loading…
Reference in new issue