master
AlanFenng 4 years ago
commit ac23588913

@ -0,0 +1,68 @@
package au.com.royalpay.payment.manage.merchants.core.impls;
import au.com.royalpay.payment.manage.mappers.system.ClientConfigMapper;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Optional;
/**
* @Description
* @title:
* @Date 2021/1/28 11:15
* @author: zhangTao
*/
@Component
public class AlipayChannelsConfig {
@Resource
private ClientConfigMapper clientConfigMapper;
public boolean isMandatoryAlipayOnline(int clientId) {
Optional<JSONObject> optionalClientConfigInfo = getClientConfig(clientId);
if (optionalClientConfigInfo.isPresent()){
JSONObject clientConfigInfo = optionalClientConfigInfo.get();
if (clientConfigInfo.getBooleanValue("mandatory_alipay_online")){
return true;
}
}
return false;
}
public void modifyMandatoryAlipayOnline(int clientId ,boolean mandatoryAlipayOnlineStatus){
JSONObject mandatoryAlipayOnlineConfig = new JSONObject();
mandatoryAlipayOnlineConfig.put("client_id",clientId);
mandatoryAlipayOnlineConfig.put("mandatory_alipay_online",mandatoryAlipayOnlineStatus);
clientConfigMapper.update(mandatoryAlipayOnlineConfig);
}
public boolean isAlipayPlus(int clientId) {
Optional<JSONObject> optionalClientConfigInfo = getClientConfig(clientId);
if (optionalClientConfigInfo.isPresent()){
JSONObject clientConfigInfo = optionalClientConfigInfo.get();
if (clientConfigInfo.getBooleanValue("alipay_payment_channels")){
return true;
}
}
return false;
}
public void modifyAlipayPaymentChannels(int clientId ,boolean alipayPaymentChannelsStatus){
JSONObject mandatoryAlipayOnlineConfig = new JSONObject();
mandatoryAlipayOnlineConfig.put("client_id",clientId);
mandatoryAlipayOnlineConfig.put("alipay_payment_channels",alipayPaymentChannelsStatus);
clientConfigMapper.update(mandatoryAlipayOnlineConfig);
}
private Optional<JSONObject> getClientConfig(int clientId) {
Optional<JSONObject> optionalClientConfigInfo = Optional.of(clientConfigMapper.find(clientId));
return optionalClientConfigInfo;
}
}

@ -2,7 +2,6 @@ package au.com.royalpay.payment.manage.merchants.core.impls;
import au.com.royalpay.payment.channels.alipay.config.AlipayConfig;
import au.com.royalpay.payment.channels.alipay.config.AlipayEnvironment;
import au.com.royalpay.payment.channels.alipay.runtime.AlipayCommonApi;
import au.com.royalpay.payment.channels.alipay.runtime.AlipayOnlineApi;
import au.com.royalpay.payment.channels.alipay.runtime.AlipayRetailApi;
import au.com.royalpay.payment.channels.alipay.runtime.entity.AlipayMerchantEntity;
@ -21,16 +20,15 @@ import au.com.royalpay.payment.channels.wechat.runtime.impls.WxPayMerchantRegist
import au.com.royalpay.payment.channels.wechat.runtime.impls.WxPayMerchantRegisterLegacy;
import au.com.royalpay.payment.channels.wechat.runtime.mappers.PaymentChannelMccGoodMapper;
import au.com.royalpay.payment.channels.wechat.runtime.mappers.WxMerchantApplyMapper;
import au.com.royalpay.payment.core.ChannelMerchantApplicationService;
import au.com.royalpay.payment.core.PaymentApi;
import au.com.royalpay.payment.core.PaymentChannelApi;
import au.com.royalpay.payment.core.beans.ChannelMerchantInfo;
import au.com.royalpay.payment.core.beans.EmptyMerchantApplication;
import au.com.royalpay.payment.core.beans.MchChannelContract;
import au.com.royalpay.payment.core.beans.MerchantApplicationResult;
import au.com.royalpay.payment.core.exceptions.EmailException;
import au.com.royalpay.payment.core.exceptions.InvalidShortIdException;
import au.com.royalpay.payment.core.impls.MerchantChannelApplicationManager;
import au.com.royalpay.payment.core.impls.MerchantChannelPermissionManager;
import au.com.royalpay.payment.core.mappers.SysClientMapper;
import au.com.royalpay.payment.core.utils.OrderExpiryRuleResolver;
import au.com.royalpay.payment.manage.analysis.mappers.TransactionAnalysisMapper;
@ -99,6 +97,7 @@ import au.com.royalpay.payment.tools.lock.Locker;
import au.com.royalpay.payment.tools.mail.SendMail;
import au.com.royalpay.payment.tools.merchants.beans.QRCodeConfig;
import au.com.royalpay.payment.tools.merchants.beans.UpdateSurchargeDTO;
import au.com.royalpay.payment.tools.merchants.core.MerchantChannelPermissionResolver;
import au.com.royalpay.payment.tools.merchants.core.MerchantInfoProvider;
import au.com.royalpay.payment.tools.merchants.qrboard.QRBoard;
import au.com.royalpay.payment.tools.merchants.qrboard.QRBoardProvider;
@ -127,8 +126,6 @@ import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
@ -330,7 +327,10 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
@Resource
private SysClientUpayProfileMapper sysClientUpayProfileMapper;
@Resource
private PaymentApi paymentApi;
private PaymentApi paymentApi;
@Resource
private MerchantChannelPermissionManager merchantChannelPermissionManager;
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd MMM yyyy");
@ -549,6 +549,13 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
if (wechatMcc != null) {
client.put("mc_code", wechatMcc.getIntValue("mc_code"));
}
client.put("enable_alipayplus", false);
MerchantChannelPermissionResolver resolver = this.paymentApi.channelApi(PayChannel.ALIPAY_PLUS.getChannelCode()).getChannelPermissionResolver();
if(!Objects.isNull(resolver)) {
if (resolver.newOrderEnabled(client)) {
client.put("enable_alipayplus", true);
}
}
return client;
}
@ -1565,13 +1572,17 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
@Override
public void switchChannelPermission(JSONObject manager, String clientMoniker, String channel, boolean allow) {
for (PaymentChannelApi channelApi : paymentApi.channels()) {
if (channelApi.channel().equalsIgnoreCase(channel) || "CB_BankPay".equalsIgnoreCase(channel)) {
if (channelApi.channel().equalsIgnoreCase(channel) ) {
JSONObject client = getClientInfoByMoniker(clientMoniker);
if (client == null) {
throw new NotFoundException("Client Not Exists");
}
clientModifySupport.processClientConfigModify(new SwitchPermissionModify(manager, clientMoniker, "enable_" + channel.toLowerCase(), allow));
merchantChannelPermissionManager.switchMerchantChannelPermission(channelApi.getMetadata().payChannel(), client.getIntValue("client_id"), allow);
try {
clientModifySupport.processModify(new SwitchPermissionModify(manager, clientMoniker, "enable_" + channel.toLowerCase(), allow));
} catch (Exception e) {
logger.error("Failed to change channel switch:{}" ,channel);
}
logger.info("{}({}) switched client {} channel {} to {}", manager.getString("display_name"), manager.getString("manager_id"), clientMoniker, channel, allow);
if (allow && (StringUtils.equalsAnyIgnoreCase("Wechat", channel) || StringUtils.equalsAnyIgnoreCase("Alipay", channel))) {
int clientId = client.getIntValue("client_id");
@ -5748,10 +5759,10 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
WechatMerchantInfo info = Optional.ofNullable(merchantChannelApplicationManager.getRegister(WxPayMerchantRegister.class))
.map(register -> register.findMerchant(client))
.orElseThrow(() -> new ServerErrorException("No Register found for wechat"));
Element xml = info.getRawResponseXml();
Element elem = info.getRawResponseXml();
JSONObject object = new JSONObject();
object.put("response_str", xml);
object.put("apply_status", info.getRawResponse());
object.put("response_str", info.getRawResponse());
object.put("apply_status", elem.elementText("result_code"));
return object;
}

@ -0,0 +1,31 @@
package au.com.royalpay.payment.manage.merchants.web;
import au.com.royalpay.payment.manage.merchants.core.impls.AlipayChannelsConfig;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @Description
* @title:
* @Date 2021/2/1 9:42
* @author: zhangTao
*/
@RestController
@RequestMapping("/sys/partners")
public class AlipayConfigController {
@Resource
AlipayChannelsConfig alipayChannelsConfig;
@RequestMapping(method = RequestMethod.PUT,value = "/modifyAlipayPaymentChannels/{clientId}/{alipayPaymentChannelsStatus}")
public void modifyAlipayPaymentChannels(@PathVariable Integer clientId, @PathVariable Boolean alipayPaymentChannelsStatus) {
alipayChannelsConfig.modifyAlipayPaymentChannels(clientId,alipayPaymentChannelsStatus);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

File diff suppressed because it is too large Load Diff

@ -7,36 +7,37 @@
padding: 20px;
border: 1px solid orange;
background-color: white;
z-index:1002;
z-index: 1002;
overflow: auto;
}
.white_content::-webkit-scrollbar:vertical {
width: 11px;
}
/*定义滚动条高宽及背景
高宽分别对应横竖滚动条的尺寸*/
.white_content::-webkit-scrollbar
{
.white_content::-webkit-scrollbar {
-webkit-appearance: none;
width:16px;
height:16px;
background-color:#F5F5F5;
width: 16px;
height: 16px;
background-color: #F5F5F5;
}
/*定义滚动条轨道
内阴影+圆角*/
.white_content::-webkit-scrollbar-track
{
-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.3);
border-radius:10px;
background-color:#F5F5F5;
.white_content::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 10px;
background-color: #F5F5F5;
}
/*定义滑块
内阴影+圆角*/
.white_content::-webkit-scrollbar-thumb
{
border-radius:10px;
-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);
background-color:#555;
.white_content::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
background-color: #555;
}
</style>
<div class="row margin-bottom" ng-click="clickDisplayChoseDiv($event)">
@ -56,7 +57,7 @@
</label>
<div class="col-sm-4 col-xs-8">
<input class="form-control" placeholder="Keyword" ng-enter="loadTradeLogs(1)"
ng-model="params.searchText">
ng-model="params.searchText">
</div>
</div>
<div class="form-group col-xs-12">
@ -64,15 +65,15 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.status=='ALL'}"
ng-click="params.status='ALL';loadTradeLogs(1)">All</a> |
ng-click="params.status='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.status=='PAID'}"
ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a> |
ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a> |
<a role="button" ng-class="{'bg-primary':params.status=='ALL_REFUNDED'}"
ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All Refund</a> |
ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All Refund</a> |
<a role="button" ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}"
ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial Refund</a> |
ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial Refund</a> |
<a role="button" ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}"
ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full Refund</a> |
ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full Refund</a> |
</p>
</div>
</div>
@ -81,53 +82,53 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gateway==null}"
ng-click="params.gateway=null;loadTradeLogs(1)">All</a> |
ng-click="params.gateway=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([0,1])}"
ng-click="params.gateway=[0,1];initGatewayChild()">Retail In-Store</a> |
ng-click="params.gateway=[0,1];initGatewayChild()">Retail In-Store</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([5,6])}"
ng-click="params.gateway=[5,6];initGatewayChild()">Retail API</a> |
ng-click="params.gateway=[5,6];initGatewayChild()">Retail API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([2,7])}"
ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> |
ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([3])}"
ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> |
ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([4])}"
ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> |
ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([8])}"
ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> |
ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([9])}"
ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party Gateway</a> |
ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party Gateway</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([10])}"
ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> |
ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([11])}"
ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> |
ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([12])}"
ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> |
ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([13])}"
ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> |
ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([14])}"
ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a>
ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a>
</p>
</div>
</div>
<div class="form-group col-xs-12"
ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]">
ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]">
<label class="control-label col-xs-4 col-sm-2">Type of payment</label>
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gatewayChild==null}"
ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> |
ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==1}"
ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a>
ng-class="{'bg-primary':params.gatewayChild==1}"
ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==0}"
ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a>
ng-class="{'bg-primary':params.gatewayChild==0}"
ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==6}"
ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a>
ng-class="{'bg-primary':params.gatewayChild==6}"
ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==5}"
ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a>
ng-class="{'bg-primary':params.gatewayChild==5}"
ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a>
</p>
</div>
</div>
@ -136,29 +137,31 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.channel=='ALL'}"
ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> |
ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='WECHAT'}"
ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> |
ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAY'}"
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a> |
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYPLUS'}"
ng-click="params.channel='ALIPAYPLUS';loadTradeLogs(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> |
ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='JD'}"
ng-click="params.channel='JD';loadTradeLogs(1)">JDpay</a> |
ng-click="params.channel='JD';loadTradeLogs(1)">JDpay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='HF'}"
ng-click="params.channel='HF';loadTradeLogs(1)">HFpay</a> |
ng-click="params.channel='HF';loadTradeLogs(1)">HFpay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a> |
ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card Payment</a> |
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card Payment</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}"
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct Debit</a>
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct Debit</a>
</p>
</div>
</div>
@ -168,29 +171,24 @@
<div class="form-control-static form-inline">
<div style="display: inline-block">
<input class="form-control" id="date-from-input" ng-model="params.datefrom"
uib-datepicker-popup size="10" placeholder="From"
is-open="dateBegin.open" ng-click="dateBegin.open=true"
datepicker-options="{maxDate:params.dateto||today}">
uib-datepicker-popup size="10" placeholder="From" is-open="dateBegin.open"
ng-click="dateBegin.open=true" datepicker-options="{maxDate:params.dateto||today}">
</div>
~
<div style="display: inline-block">
<input class="form-control" id="date-to-input" ng-model="params.dateto"
uib-datepicker-popup size="10" placeholder="To"
is-open="dateTo.open" ng-click="dateTo.open=true"
datepicker-options="{minDate:params.datefrom,maxDate:today}">
<input class="form-control" id="date-to-input" ng-model="params.dateto" uib-datepicker-popup
size="10" placeholder="To" is-open="dateTo.open" ng-click="dateTo.open=true"
datepicker-options="{minDate:params.datefrom,maxDate:today}">
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="chooseToday()">Today</a>
<a role="button" class="btn btn-default btn-sm" ng-click="chooseToday()">Today</a>
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="chooseYesterday()">Yesterday</a>
<a role="button" class="btn btn-default btn-sm" ng-click="chooseYesterday()">Yesterday</a>
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="chooseLast7Days()">Last 7
<a role="button" class="btn btn-default btn-sm" ng-click="chooseLast7Days()">Last 7
Days</a>
</div>
<div class="btn-group">
@ -213,25 +211,26 @@
<a role="button" ng-class="{'bg-primary':isAll}" ng-click="chooseClient('all')">All</a>
<label ng-repeat="sub in clients">
|&nbsp;<a role="button" ng-class="{'bg-primary':sub.client_id==chooseClientId}"
ng-click="chooseClient(sub)">{{sub.short_name}}</a>&nbsp;
ng-click="chooseClient(sub)">{{sub.short_name}}</a>&nbsp;
</label>
</p>
<p class="form-control-static" ng-if="clients.length>=20">
<a role="button" ng-class="{'bg-primary':isAll}"
ng-click="chooseClient('all')">All</a>
<label ng-click="checkSubClientChoseShow('');choseDivStopPropagation($event)" style="cursor: pointer;">
<a role="button" ng-class="{'bg-primary':isAll}" ng-click="chooseClient('all')">All</a>
<label ng-click="checkSubClientChoseShow('');choseDivStopPropagation($event)"
style="cursor: pointer;">
<input ng-model="choseSubClientNow" style="border:none;cursor: pointer;" readonly>
</label>
</p>
<div id="light" class="white_content" ng-if="more20ChoseSubClient" style="display: block;" ng-click="choseDivStopPropagation($event)">
<div id="light" class="white_content" ng-if="more20ChoseSubClient" style="display: block;"
ng-click="choseDivStopPropagation($event)">
<div class="row">
<div class="form-group col-xs-12">
<div class="col-sm-8 col-xs-8">
<input class="form-control" placeholder="Keyword"
ng-model="subSearchText">
<input class="form-control" placeholder="Keyword" ng-model="subSearchText">
</div>
<div class="col-sm-3">
<button class="btn btn-success" type="button" ng-click="searchSubClients(subSearchText,1)">
<button class="btn btn-success" type="button"
ng-click="searchSubClients(subSearchText,1)">
<i class="fa fa-search"></i> Search
</button>
</div>
@ -240,77 +239,75 @@
<div class="col-sm-6" style="padding: 0 2px">
<table class="table table-bordered table-striped table-hover" style="padding: 6px">
<thead>
<tr>
<th>Partner Code</th>
<th>Partner Name</th>
<th>Operation</th>
</tr>
<tr>
<th>Partner Code</th>
<th>Partner Name</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="subPartner in subClientTable1">
<td ng-click="showClient(subPartner); toShow = !toShow" style="cursor:pointer">
{{subPartner.client_moniker}}
</td>
<td ng-bind="subPartner.short_name"></td>
<td>
<button role="button" class="btn btn-info" title="Add Search"
<tr ng-repeat="subPartner in subClientTable1">
<td ng-click="showClient(subPartner); toShow = !toShow"
style="cursor:pointer">
{{subPartner.client_moniker}}
</td>
<td ng-bind="subPartner.short_name"></td>
<td>
<button role="button" class="btn btn-info" title="Add Search"
style="padding: 1px 6px;"
ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)">
<i class="fa fa-plus"></i>
</button>
</td>
</tr>
<i class="fa fa-plus"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-sm-6" style="padding: 0 2px">
<table class="table table-bordered table-striped table-hover" style="padding: 6px">
<thead>
<tr>
<th>Partner Code</th>
<th>Partner Name</th>
<th>Operation</th>
</tr>
<tr>
<th>Partner Code</th>
<th>Partner Name</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="subPartner in subClientTable2">
<td ng-click="showClient(subPartner); toShow = !toShow" style="cursor:pointer">
{{subPartner.client_moniker}}
</td>
<td ng-bind="subPartner.short_name"></td>
<td>
<button role="button" class="btn btn-info" title="Add Search"
<tr ng-repeat="subPartner in subClientTable2">
<td ng-click="showClient(subPartner); toShow = !toShow"
style="cursor:pointer">
{{subPartner.client_moniker}}
</td>
<td ng-bind="subPartner.short_name"></td>
<td>
<button role="button" class="btn btn-info" title="Add Search"
style="padding: 1px 6px;"
ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)">
<i class="fa fa-plus"></i>
</button>
</td>
</tr>
<i class="fa fa-plus"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="box-footer" ng-if="clients.length" style="float: right;">
<uib-pagination class="pagination"
total-items="subClientPagination.totalCount"
boundary-links="true"
ng-model="subClientPagination.page"
items-per-page="subClientPagination.limit"
max-size="10"
ng-change="searchSubClients('',subClientPagination.page)"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<uib-pagination class="pagination" total-items="subClientPagination.totalCount"
boundary-links="true" ng-model="subClientPagination.page"
items-per-page="subClientPagination.limit" max-size="10"
ng-change="searchSubClients('',subClientPagination.page)" previous-text="&lsaquo;"
next-text="&rsaquo;" first-text="&laquo;" last-text="&raquo;"></uib-pagination>
<div class="row">
<div class="col-xs-12">
Total Records:{{subClientPagination.totalCount}};Total Pages:{{subClientPagination.totalPages}}
Total Records:{{subClientPagination.totalCount}};Total
Pages:{{subClientPagination.totalPages}}
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" ng-click="checkSubClientChoseShow('')">Cancel</button>
<button type="button" class="btn btn-danger"
ng-click="checkSubClientChoseShow('')">Cancel</button>
</div>
</div>
</div>
@ -319,10 +316,12 @@
<label class="control-label col-xs-4 col-sm-2">Sub-Partner of sub-partners</label>
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':isLevel3All}" ng-click="chooseLevel3Client('all')">All</a>
<a role="button" ng-class="{'bg-primary':isLevel3All}"
ng-click="chooseLevel3Client('all')">All</a>
<label ng-repeat="sub in level3Clients">
|&nbsp;
<a role="button" ng-class="{'bg-primary':sub.client_id==chooseLevel3ClientId}" ng-click="chooseLevel3Client(sub)">{{sub.short_name}}</a>
<a role="button" ng-class="{'bg-primary':sub.client_id==chooseLevel3ClientId}"
ng-click="chooseLevel3Client(sub)">{{sub.short_name}}</a>
&nbsp;
</label>
</p>
@ -337,84 +336,140 @@
<div class="row">
<div class="col-sm-12">
<h3 class="box-title" style="display: inherit">Orders
<span class="small" ng-if="tradeLogs.length">(Found {{pagination.totalCount}} orders and {{analysis.order_count}} transactions worth of {{analysis.paid_fee|currency:'AUD'}})</span>
<span style="float: right;font-size: 14px;">Pre Authorization:<i class="fa fa-stop" aria-hidden="true" style="color: #fff2a5"></i></span>
<span class="small" ng-if="tradeLogs.length">(Found {{pagination.totalCount}} orders and
{{analysis.order_count}} transactions worth of {{analysis.paid_fee|currency:'AUD'}})</span>
<span style="float: right;font-size: 14px;">Pre Authorization:<i class="fa fa-stop" aria-hidden="true"
style="color: #fff2a5"></i></span>
</h3>
<div class="table-responsive col-sm-12">
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<tr>
<th>Client Order ID</th>
<th>Order ID</th>
<th>Amount</th>
<th>Input Amount</th>
<th>AUD Amount</th>
<th>Exchange Rate</th>
<th>Status</th>
<th>Create Time</th>
<th>Gateway</th>
<th>Operation</th>
</tr>
<th>Client Order ID</th>
<th>Order ID</th>
<th>Amount</th>
<th>Input Amount</th>
<th>AUD Amount</th>
<th>Exchange Rate</th>
<th>Status</th>
<th>Create Time</th>
<th>Gateway</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}">
<td ng-bind="trade.client_order_id||'NOT PROVIDED'"></td>
<td>
<img src="/static/images/card_payment_sign.png" uib-tooltip="Card Payment" ng-if="trade.channel=='rpaypmt_card'"/>
<img src="/static/images/direct_debit_sign.png" uib-tooltip="Direct Debit" ng-if="trade.channel=='rpaypmt_dd'"/>
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Znyoo" ng-if="trade.channel=='Znyoo'"/>
<img src="/static/images/wechatpay_sign.png" uib-tooltip="WechatPay" ng-if="trade.channel=='Wechat'"/>
<img src="/static/images/bestpay_sign.png" uib-tooltip="BestPay" ng-if="trade.channel=='Bestpay'"/>
<img src="/static/images/alipay_sign.png" uib-tooltip="Alipay" ng-if="trade.channel=='Alipay'"/>
<img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline" ng-if="trade.channel=='AlipayOnline'"/>
<img src="/static/images/jd_sign.png" uib-tooltip="JD Pay" ng-if="trade.channel=='jd'"/>
<img src="/static/images/hf_sign.png" uib-tooltip="HF Pay" ng-if="trade.channel=='hf'"/>
<img src="/static/images/rpayplus_sign.png" uib-tooltip="RPay+" ng-if="trade.channel=='Rpay'"/>
<img src="/static/images/yeepay_sign.png" uib-tooltip="Yeepay" ng-if="trade.channel=='Yeepay'"/>
<img src="/static/images/lakalapay_sign.png" uib-tooltip="LakalaPay" ng-if="trade.channel=='LakalaPay'"/>
{{trade.order_id}}
</td>
<td>
{{trade.total_amount|currency:trade.currency+' '}}
<a ng-if="trade.refund_fee" class="text-danger" role="button"
ng-click="showRefundLog(trade.order_id)">(-{{trade.refund_fee}})</a>
</td>
<td ng-bind="trade.display_amount|currency:trade.currency"></td>
<td ng-bind="trade.clearing_amount|currency:'AUD '"></td>
<td>
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')" ng-bind="trade.exchange_rate"></span>
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')" > - </span>
</td>
<td ng-bind="trade.status|tradeStatus"></td>
<td ng-bind="trade.create_time"></td>
<td ng-bind="trade.gateway|tradeGateway"></td>
<td>
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)" title="Detail">
<i class="fa fa-list-alt"></i>
</a>
<a role="button" ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && ('do_refund'|withFunc)"
class="text-bold text-danger"
ng-click="newRefund(trade.order_id)" title="Refund">
<i class="fa fa-undo"></i>
</a>
</td>
</tr>
<tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}">
<td ng-bind="trade.client_order_id||'NOT PROVIDED'"></td>
<td>
<img src="/static/images/card_payment_sign.png" uib-tooltip="Card Payment"
ng-if="trade.channel=='rpaypmt_card'" />
<img src="/static/images/direct_debit_sign.png" uib-tooltip="Direct Debit"
ng-if="trade.channel=='rpaypmt_dd'" />
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Znyoo"
ng-if="trade.channel=='Znyoo'" />
<img src="/static/images/wechatpay_sign.png" uib-tooltip="WechatPay"
ng-if="trade.channel=='Wechat'" />
<img src="/static/images/bestpay_sign.png" uib-tooltip="BestPay"
ng-if="trade.channel=='Bestpay'" />
<img src="/static/images/alipay_sign.png" uib-tooltip="Alipay"
ng-if="trade.channel=='Alipay'" />
<img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline"
ng-if="trade.channel=='AlipayOnline'" />
<img src="/static/images/jd_sign.png" uib-tooltip="JD Pay" ng-if="trade.channel=='jd'" />
<img src="/static/images/hf_sign.png" uib-tooltip="HF Pay" ng-if="trade.channel=='hf'" />
<img src="/static/images/rpayplus_sign.png" uib-tooltip="RPay+"
ng-if="trade.channel=='Rpay'" />
<img src="/static/images/yeepay_sign.png" uib-tooltip="Yeepay"
ng-if="trade.channel=='Yeepay'" />
<img src="/static/images/lakalapay_sign.png" uib-tooltip="LakalaPay"
ng-if="trade.channel=='LakalaPay'" />
<img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay CN"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_cn'" />
<img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay SG"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_sg'" />
<img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay MO"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_mo'" />
<img src="/static/images/alipay-hk.png" style="height: 20px" uib-tooltip="Alipay HK/支付宝香港"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_hk'" />
<img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay LU"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_lu'" />
<img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay GB"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_gb'" />
<img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay US"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_us'" />
<img src="/static/images/paytm-logo.png" style="height: 20px" uib-tooltip="Patytm Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='paytm'" />
<img src="/static/images/kakaopay.png" style="height: 20px" uib-tooltip="Kakao Pay"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='kakaopay'" />
<img src="/static/images/truemoney-logo.png" style="height: 20px" uib-tooltip="TrueMoney"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='truemoney'" />
<img src="/static/images/ezlink-logo.png" style="height: 20px" uib-tooltip="EZLINK"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='ezlink'" />
<img src="/static/images/gcash-logo.png" style="height: 20px" uib-tooltip="GCash"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='gcash'" />
<img src="/static/images/TNGeWalletLogo.png" style="height: 20px" uib-tooltip="TNG"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='tng'" />
<img src="/static/images/dana-wallet-logo.png" style="height: 20px"
uib-tooltip="Dana Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='dana'" />
<img src="/static/images/easypasia-logo.png" style="height: 20px" uib-tooltip="EasyPasia"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='easy_paisa'" />
<img src="/static/images/bkash-logo.png" style="height: 20px" uib-tooltip="bKash Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='bkash'" />
<img src="/static/images/lazada-logo.png" style="height: 20px" uib-tooltip="Lazada Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='lazada_wallet_my'" />
{{trade.order_id}}
</td>
<td>
{{trade.total_amount|currency:trade.currency+' '}}
<a ng-if="trade.refund_fee" class="text-danger" role="button"
ng-click="showRefundLog(trade.order_id)">(-{{trade.refund_fee}})</a>
</td>
<td ng-bind="trade.display_amount|currency:trade.currency"></td>
<td ng-bind="trade.clearing_amount|currency:'AUD '"></td>
<td>
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')"
ng-bind="trade.exchange_rate"></span>
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')"> - </span>
</td>
<td ng-bind="trade.status|tradeStatus"></td>
<td ng-bind="trade.create_time"></td>
<td ng-bind="trade.gateway|tradeGateway"></td>
<td>
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)" title="Detail">
<i class="fa fa-list-alt"></i>
</a>
<a role="button"
ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && ('do_refund'|withFunc)"
class="text-bold text-danger" ng-click="newRefund(trade.order_id)" title="Refund">
<i class="fa fa-undo"></i>
</a>
</td>
</tr>
</tbody>
</table>
</div>
<uib-pagination ng-if="tradeLogs.length"
class="pagination"
total-items="pagination.totalCount"
boundary-links="true"
ng-model="pagination.page"
items-per-page="pagination.limit"
max-size="10"
ng-change="loadTradeLogs()"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<uib-pagination ng-if="tradeLogs.length" class="pagination" total-items="pagination.totalCount"
boundary-links="true" ng-model="pagination.page" items-per-page="pagination.limit" max-size="10"
ng-change="loadTradeLogs()" previous-text="&lsaquo;" next-text="&rsaquo;" first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total Pages:{{pagination.totalPages}}</div>
</div>
</div>

@ -218,21 +218,21 @@
<label class="col-xs-6 control-label">Alipay|支付宝</label>
<div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_alipay" bs-switch
switch-change="toggleChannel('alipay')">
ng-change="toggleChannel('alipay')">
</div>
</div>
<div class="form-group col-sm-4">
<label class="col-xs-6 control-label">WeChat|微信</label>
<div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_wechat" bs-switch
switch-change="toggleChannel('wechat')">
ng-change="toggleChannel('wechat')">
</div>
</div>
<div class="form-group col-sm-4">
<label class="col-xs-6 control-label">CB BankPay|快捷支付</label>
<div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_cb_bankpay" bs-switch
switch-change="toggleChannel('cb_bankpay')">
ng-change="toggleChannel('cb_bankpay')">
</div>
</div>
@ -240,17 +240,23 @@
<label class="col-xs-6 control-label">Card Payment|银行卡支付</label>
<div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_rpaypmt_card" bs-switch
switch-change="toggleChannel('rpaypmt_card')">
ng-change="toggleChannel('rpaypmt_card')">
</div>
</div>
<div class="form-group col-sm-4">
<label class="col-xs-6 control-label">Direct Debit|银行账户支付</label>
<div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_rpaypmt_dd" bs-switch
switch-change="toggleChannel('rpaypmt_dd')">
ng-change="toggleChannel('rpaypmt_dd')">
</div>
</div>
<div class="form-group col-sm-4">
<label class="col-xs-6 control-label">Alipay+|支付宝</label>
<div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_alipayplus" bs-switch
ng-change="toggleChannel('alipayplus')">
</div>
</div>
</div>
</div>
</div>
@ -370,6 +376,14 @@
</p>
</div>
</div>
<div class="form-group" ng-if="paymentInfo.enable_alipayplus">
<label class="col-sm-2 control-label">Alipay Channel</label>
<div class="col-sm-10">
<input type="checkbox" ng-model="paymentInfo.alipay_payment_channels" bs-switch
data-on-text="Alipay+" data-off-text="Alipay" data-off-color="primary"
ng-change="setAlipayChannel()">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Gateway Credential</label>
<div class="col-sm-10">

@ -9,23 +9,28 @@
.i-rotate_90 {
animation: rotate_90 1s forwards;
-webkit-animation: rotate_90 1s forwards; /* Safari and Chrome */
-webkit-animation: rotate_90 1s forwards;
/* Safari and Chrome */
}
@keyframes rotate_90 {
from {
transform: rotate(0deg);
}
to {
transform: rotate(90deg);
}
}
@-webkit-keyframes rotate_90 /* Safari and Chrome */
{
@-webkit-keyframes rotate_90
/* Safari and Chrome */
{
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(90deg);
}
@ -78,6 +83,7 @@
.line_height_ {
line-height: 22px;
}
.white_content {
display: none;
position: absolute;
@ -86,36 +92,37 @@
padding: 20px;
border: 1px solid orange;
background-color: white;
z-index:1002;
z-index: 1002;
overflow: auto;
}
.white_content::-webkit-scrollbar:vertical {
width: 11px;
}
/*定义滚动条高宽及背景
高宽分别对应横竖滚动条的尺寸*/
.white_content::-webkit-scrollbar
{
.white_content::-webkit-scrollbar {
-webkit-appearance: none;
width:16px;
height:16px;
background-color:#F5F5F5;
width: 16px;
height: 16px;
background-color: #F5F5F5;
}
/*定义滚动条轨道
内阴影+圆角*/
.white_content::-webkit-scrollbar-track
{
-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.3);
border-radius:10px;
background-color:#F5F5F5;
.white_content::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 10px;
background-color: #F5F5F5;
}
/*定义滑块
内阴影+圆角*/
.white_content::-webkit-scrollbar-thumb
{
border-radius:10px;
-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);
background-color:#555;
.white_content::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
background-color: #555;
}
</style>
<section class="content-header">
@ -154,8 +161,7 @@
</label>
<div class="col-sm-4 col-xs-8">
<input class="form-control" placeholder="Keyword"
ng-enter="loadTradeLogs(1)"
ng-model="params.searchText">
ng-enter="loadTradeLogs(1)" ng-model="params.searchText">
</div>
</div>
<div class="form-group col-xs-12">
@ -163,11 +169,11 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.source=='ALL'}"
ng-click="params.source='ALL';loadTradeLogs(1)">All</a> |
ng-click="params.source='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.source=='system'}"
ng-click="params.source='system';loadTradeLogs(1)">System</a> |
ng-click="params.source='system';loadTradeLogs(1)">System</a> |
<a role="button" ng-class="{'bg-primary':params.source=='RP跨境商城'}"
ng-click="params.source='RP跨境商城';loadTradeLogs(1)">RP跨境商城</a>
ng-click="params.source='RP跨境商城';loadTradeLogs(1)">RP跨境商城</a>
</p>
</div>
</div>
@ -176,20 +182,20 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.status=='ALL'}"
ng-click="params.status='ALL';loadTradeLogs(1)">All</a> |
ng-click="params.status='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.status=='PAID'}"
ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a>
ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a>
|
<a role="button" ng-class="{'bg-primary':params.status=='ALL_REFUNDED'}"
ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All
ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All
Refund</a> |
<a role="button"
ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}"
ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial
ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}"
ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial
Refund</a> |
<a role="button"
ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}"
ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full
ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}"
ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full
Refund</a>
</p>
</div>
@ -199,21 +205,27 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.channel=='ALL'}"
ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> |
ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='WECHAT'}"
ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> |
ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAY'}"
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
<a role="button"
ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a>
ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYPLUS'}"
ng-click="params.channel='ALIPAYPLUS';loadTradeLogs(1)">Alipay+</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card Payment</a> |
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay+</a> |
<a role="button"
ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card
Payment</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}"
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct Debit</a>
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct
Debit</a>
</p>
</div>
</div>
@ -222,55 +234,55 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gateway==null}"
ng-click="params.gateway=null;loadTradeLogs(1)">All</a> |
ng-click="params.gateway=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([0,1])}"
ng-click="params.gateway=[0,1];initGatewayChild()">Retail
ng-click="params.gateway=[0,1];initGatewayChild()">Retail
In-Store</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([5,6])}"
ng-click="params.gateway=[5,6];initGatewayChild()">Retail API</a> |
ng-click="params.gateway=[5,6];initGatewayChild()">Retail API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([2,7])}"
ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> |
ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([3])}"
ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> |
ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([4])}"
ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> |
ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([8])}"
ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> |
ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([9])}"
ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party
ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party
Gateway</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([10])}"
ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> |
ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([11])}"
ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> |
ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([12])}"
ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> |
ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([13])}"
ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> |
ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([14])}"
ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a>
ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a>
</p>
</div>
</div>
<div class="form-group col-xs-12"
ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]">
ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]">
<label class="control-label col-xs-4 col-sm-2">Type of payment</label>
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gatewayChild==null}"
ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> |
ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==1}"
ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a>
ng-class="{'bg-primary':params.gatewayChild==1}"
ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==0}"
ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a>
ng-class="{'bg-primary':params.gatewayChild==0}"
ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==6}"
ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a>
ng-class="{'bg-primary':params.gatewayChild==6}"
ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==5}"
ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a>
ng-class="{'bg-primary':params.gatewayChild==5}"
ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a>
</p>
</div>
</div>
@ -280,39 +292,39 @@
<div class="form-control-static form-inline">
<div style="display: inline-block">
<input class="form-control" id="date-from-input"
ng-model="params.datefrom"
uib-datepicker-popup size="10" placeholder="From"
is-open="dateBegin.open" ng-click="dateBegin.open=true"
datepicker-options="{maxDate:params.dateto||today}">
ng-model="params.datefrom" uib-datepicker-popup size="10"
placeholder="From" is-open="dateBegin.open"
ng-click="dateBegin.open=true"
datepicker-options="{maxDate:params.dateto||today}">
</div>
~
<div style="display: inline-block">
<input class="form-control" id="date-to-input"
ng-model="params.dateto"
uib-datepicker-popup size="10" placeholder="To"
is-open="dateTo.open" ng-click="dateTo.open=true"
datepicker-options="{minDate:params.datefrom,maxDate:today}">
ng-model="params.dateto" uib-datepicker-popup size="10"
placeholder="To" is-open="dateTo.open"
ng-click="dateTo.open=true"
datepicker-options="{minDate:params.datefrom,maxDate:today}">
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="chooseToday()">Today</a>
ng-click="chooseToday()">Today</a>
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="chooseYesterday()">Yesterday</a>
ng-click="chooseYesterday()">Yesterday</a>
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="chooseLast7Days()">Last 7 Days</a>
ng-click="chooseLast7Days()">Last 7 Days</a>
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="thisMonth()">This Month</a>
ng-click="thisMonth()">This Month</a>
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="lastMonth()">Last Month</a>
ng-click="lastMonth()">Last Month</a>
</div>
</div>
@ -320,148 +332,160 @@
</div>
<div class="form-group col-xs-12"
ng-if="currentUser.client.has_children && !currentUser.client.hide_sub_mch">
ng-if="currentUser.client.has_children && !currentUser.client.hide_sub_mch">
<label class="control-label col-xs-4 col-sm-2">Sub Partner</label>
<div class="col-sm-10 col-xs-8">
<p class="form-control-static" ng-if="clients.length<20">
<a role="button" ng-class="{'bg-primary':isAll}"
ng-click="chooseClient('all')">All</a>
ng-click="chooseClient('all')">All</a>
<label ng-repeat="sub in clients">
|&nbsp;
<a role="button"
ng-class="{'bg-primary':sub.client_id==chooseClientId}"
ng-click="chooseClient(sub)">{{sub.short_name}}</a>
ng-class="{'bg-primary':sub.client_id==chooseClientId}"
ng-click="chooseClient(sub)">{{sub.short_name}}</a>
&nbsp;
</label>
</p>
<p class="form-control-static" ng-if="clients.length>=20">
<a role="button" ng-class="{'bg-primary':isAll}"
ng-click="chooseClient('all')">All</a>
<label ng-click="checkSubClientChoseShow('');choseDivStopPropagation($event)" style="cursor: pointer;">
<input ng-model="choseSubClientNow" style="border:none;cursor: pointer;" readonly>
ng-click="chooseClient('all')">All</a>
<label
ng-click="checkSubClientChoseShow('');choseDivStopPropagation($event)"
style="cursor: pointer;">
<input ng-model="choseSubClientNow"
style="border:none;cursor: pointer;" readonly>
</label>
</p>
<div id="light" class="white_content" ng-if="more20ChoseSubClient" style="display: block;" ng-click="choseDivStopPropagation($event)">
<div id="light" class="white_content" ng-if="more20ChoseSubClient"
style="display: block;" ng-click="choseDivStopPropagation($event)">
<div class="row">
<div class="form-group col-xs-12">
<div class="col-sm-8 col-xs-8">
<input class="form-control" placeholder="Keyword"
ng-model="subSearchText">
ng-model="subSearchText">
</div>
<div class="col-sm-3">
<button class="btn btn-success" type="button" ng-click="searchSubClients(subSearchText,1)">
<button class="btn btn-success" type="button"
ng-click="searchSubClients(subSearchText,1)">
<i class="fa fa-search"></i> Search
</button>
</div>
</div>
<div class="col-sm-12 table-responsive">
<div class="col-sm-6" style="padding: 0 2px">
<table class="table table-bordered table-striped table-hover" style="padding: 6px">
<table
class="table table-bordered table-striped table-hover"
style="padding: 6px">
<thead>
<tr>
<th>Partner Code</th>
<th>Partner Name</th>
<th>Operation</th>
</tr>
<tr>
<th>Partner Code</th>
<th>Partner Name</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="subPartner in subClientTable1">
<td ng-click="showClient(subPartner); toShow = !toShow" style="cursor:pointer">
{{subPartner.client_moniker}}
</td>
<td ng-bind="subPartner.short_name"></td>
<td>
<button role="button" class="btn btn-info" title="Add Search"
<tr ng-repeat="subPartner in subClientTable1">
<td ng-click="showClient(subPartner); toShow = !toShow"
style="cursor:pointer">
{{subPartner.client_moniker}}
</td>
<td ng-bind="subPartner.short_name"></td>
<td>
<button role="button" class="btn btn-info"
title="Add Search"
style="padding: 1px 6px;"
ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)">
<i class="fa fa-plus"></i>
</button>
</td>
</tr>
<i class="fa fa-plus"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-sm-6" style="padding: 0 2px">
<table class="table table-bordered table-striped table-hover" style="padding: 6px">
<table
class="table table-bordered table-striped table-hover"
style="padding: 6px">
<thead>
<tr>
<th>Partner Code</th>
<th>Partner Name</th>
<th>Operation</th>
</tr>
<tr>
<th>Partner Code</th>
<th>Partner Name</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="subPartner in subClientTable2">
<td ng-click="showClient(subPartner); toShow = !toShow" style="cursor:pointer">
{{subPartner.client_moniker}}
</td>
<td ng-bind="subPartner.short_name"></td>
<td>
<button role="button" class="btn btn-info" title="Add Search"
<tr ng-repeat="subPartner in subClientTable2">
<td ng-click="showClient(subPartner); toShow = !toShow"
style="cursor:pointer">
{{subPartner.client_moniker}}
</td>
<td ng-bind="subPartner.short_name"></td>
<td>
<button role="button" class="btn btn-info"
title="Add Search"
style="padding: 1px 6px;"
ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)">
<i class="fa fa-plus"></i>
</button>
</td>
</tr>
<i class="fa fa-plus"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="box-footer" ng-if="clients.length" style="float: right;">
<div class="box-footer" ng-if="clients.length"
style="float: right;">
<uib-pagination class="pagination"
total-items="subClientPagination.totalCount"
boundary-links="true"
ng-model="subClientPagination.page"
items-per-page="subClientPagination.limit"
max-size="10"
ng-change="searchSubClients('',subClientPagination.page)"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
total-items="subClientPagination.totalCount"
boundary-links="true" ng-model="subClientPagination.page"
items-per-page="subClientPagination.limit" max-size="10"
ng-change="searchSubClients('',subClientPagination.page)"
previous-text="&lsaquo;" next-text="&rsaquo;"
first-text="&laquo;" last-text="&raquo;"></uib-pagination>
<div class="row">
<div class="col-xs-12">
Total Records:{{subClientPagination.totalCount}};Total Pages:{{subClientPagination.totalPages}}
Total Records:{{subClientPagination.totalCount}};Total
Pages:{{subClientPagination.totalPages}}
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" ng-click="checkSubClientChoseShow('')">Cancel</button>
<button type="button" class="btn btn-danger"
ng-click="checkSubClientChoseShow('')">Cancel</button>
</div>
</div>
</div>
</div>
<div class="form-group col-xs-12"
ng-if="level3Clients && showLevel3Clients && !currentUser.client.hide_sub_mch">
ng-if="level3Clients && showLevel3Clients && !currentUser.client.hide_sub_mch">
<label class="control-label col-xs-4 col-sm-2">Sub-Partner of
sub-partners</label>
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':isLevel3All}"
ng-click="chooseLevel3Client('all')">All</a>
ng-click="chooseLevel3Client('all')">All</a>
<label ng-repeat="sub in level3Clients">
|&nbsp;
<a role="button"
ng-class="{'bg-primary':sub.client_id==chooseLevel3ClientId}"
ng-click="chooseLevel3Client(sub)">{{sub.short_name}}</a>
ng-class="{'bg-primary':sub.client_id==chooseLevel3ClientId}"
ng-click="chooseLevel3Client(sub)">{{sub.short_name}}</a>
&nbsp;
</label>
</p>
</div>
</div>
<div class="form-group col-xs-12"
ng-if="deviceIds.length && !currentUser.client.hide_sub_mch">
ng-if="deviceIds.length && !currentUser.client.hide_sub_mch">
<label class="control-label col-xs-4 col-sm-2">Third Device</label>
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':order_device_isAll}"
ng-click="chooseDeviceIds('all')">All</a>
ng-click="chooseDeviceIds('all')">All</a>
<label ng-repeat="dev in deviceIds">
|&nbsp;<a role="button"
ng-class="{'bg-primary':dev.dev_id==choose_order_device_id}"
ng-click="chooseDeviceIds(dev.dev_id)">{{dev.dev_id}}</a>&nbsp;
ng-class="{'bg-primary':dev.dev_id==choose_order_device_id}"
ng-click="chooseDeviceIds(dev.dev_id)">{{dev.dev_id}}</a>&nbsp;
</label>
</p>
</div>
@ -471,11 +495,11 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':device_isAll}"
ng-click="chooseDevices('all')">All</a>
ng-click="chooseDevices('all')">All</a>
<label ng-repeat="device in devices">
|&nbsp;<a role="button"
ng-class="{'bg-primary':device.dev_id==chooseDevice_id}"
ng-click="chooseDevices(device.dev_id)">{{device.remark}}</a>&nbsp;
ng-class="{'bg-primary':device.dev_id==chooseDevice_id}"
ng-click="chooseDevices(device.dev_id)">{{device.remark}}</a>&nbsp;
</label>
</p>
</div>
@ -498,7 +522,7 @@
<div class="info-box-content box-content_left">
<span class="info-box-text">Transaction Amount</span>
<span class="info-box-number box-number_font"
ng-bind="analysis.paid_fee|currency:'AUD '"></span>
ng-bind="analysis.paid_fee|currency:'AUD '"></span>
<span class="small">( {{analysis.order_count}} Orders )</span>
</div>
</div>
@ -511,30 +535,31 @@
<div class="info-box-content box-content_left">
<span class="info-box-text">Input Amount</span>
<span class="info-box-number box-number_font"
ng-bind="analysis.display_amount|currency:'AUD '"></span>
<span class="small"> ( {{analysis.pre_display_amount | currency:'pre authorization '}} )</span>
ng-bind="analysis.display_amount|currency:'AUD '"></span>
<span class="small"> ( {{analysis.pre_display_amount | currency:'pre
authorization '}} )</span>
</div>
</div>
</div>
<div class="col-md-3 col-sm-6 col-xs-12" ng-if="analysis.cny_display_amount">
<div class="info-box info_box_bottom"
ng-class="{'line_height':analysis.pre_display_amount||analysis.pre_cny_display_amount}">
ng-class="{'line_height':analysis.pre_display_amount||analysis.pre_cny_display_amount}">
<span class="info-box-icon bg-aqua box-icon_small"><i
class="ion ion-social-usd"></i></span>
<div class="info-box-content box-content_left">
<span class="info-box-text">Input Amount</span>
<span class="info-box-number box-number_font" style="margin-bottom: -3px;"
ng-class="{line_height_:!analysis.pre_display_amount}"
ng-bind="analysis.display_amount|currency:'AUD '"></span>
ng-class="{line_height_:!analysis.pre_display_amount}"
ng-bind="analysis.display_amount|currency:'AUD '"></span>
<span style="font-size: 10px;line-height: 10px"
ng-if="analysis.pre_display_amount">
ng-if="analysis.pre_display_amount">
( {{analysis.pre_display_amount | currency:'pre authorization '}} )
</span>
<span class="info-box-number box-number_font" style="margin-bottom: -3px;"
ng-if="analysis.cny_display_amount"
ng-bind="analysis.cny_display_amount|currency:'CNY '"></span>
ng-if="analysis.cny_display_amount"
ng-bind="analysis.cny_display_amount|currency:'CNY '"></span>
<span style="font-size: 10px;line-height: 10px"
ng-if="analysis.pre_cny_display_amount">
ng-if="analysis.pre_cny_display_amount">
( {{analysis.pre_cny_display_amount | currency:'pre authorization '}} )
</span>
</div>
@ -547,9 +572,9 @@
<div class="info-box-content box-content_left">
<span class="info-box-text">Refund Amount</span>
<span class="info-box-number box-number_font"
ng-bind="analysis.refund_fee|currency:'AUD '"></span>
ng-bind="analysis.refund_fee|currency:'AUD '"></span>
<span class=small" ng-if="analysis.pre_refund_fee">
({{analysis.pre_refund_fee|currency:'pre authorization '}})
({{analysis.pre_refund_fee|currency:'pre authorization '}})
</span>
</div>
</div>
@ -561,7 +586,7 @@
<div class="info-box-content box-content_left">
<span class="info-box-text">CUSTOMERS</span>
<span class="info-box-number box-number_font"
ng-bind="analysis.customers"></span>
ng-bind="analysis.customers"></span>
</div>
</div>
</div>
@ -572,132 +597,194 @@
<div class="box-header">
<h3 class="box-title" style="display: inherit">Orders
<span style="float: right;font-size: 14px;">
<span>Pre Authorization:<i class="fa fa-stop" aria-hidden="true"
style="color: #fff2a5"></i></span>
<span ng-if="currentUser.role == 2 || currentUser.role == 1">
<button class="btn btn-warning btn-sm" type="button"
ng-click="fullReleasePreAuth()">Release All Pre-Auth</button>
</span>
</span>
<span>Pre Authorization:<i class="fa fa-stop" aria-hidden="true"
style="color: #fff2a5"></i></span>
<span ng-if="currentUser.role == 2 || currentUser.role == 1">
<button class="btn btn-warning btn-sm" type="button"
ng-click="fullReleasePreAuth()">Release All Pre-Auth</button>
</span>
</span>
</h3>
</div>
<div class="box-body table-responsive">
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>Client Moniker</th>
<th>Short Name</th>
<th>Client Order ID</th>
<th>Order ID</th>
<th>Amount</th>
<th>Input Amount</th>
<th>AUD Amount</th>
<th style="min-width: 90px">Settle Amount</th>
<th>Exchange Rate</th>
<th>Status</th>
<th>Create Time</th>
<th>Gateway</th>
<th>Order Detail</th>
<th>Operation</th>
</tr>
<tr>
<th>Client Moniker</th>
<th>Short Name</th>
<th>Client Order ID</th>
<th>Order ID</th>
<th>Amount</th>
<th>Input Amount</th>
<th>AUD Amount</th>
<th style="min-width: 90px">Settle Amount</th>
<th>Exchange Rate</th>
<th>Status</th>
<th>Create Time</th>
<th>Gateway</th>
<th>Order Detail</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}">
<td ng-bind="trade.client_moniker"></td>
<td ng-bind="trade.short_name"></td>
<td ng-bind="trade.client_order_id||'NOT PROVIDED'"></td>
<td>
<img src="/static/images/clearing-icon.png" uib-tooltip="clearing"
ng-if="trade.clearing_status=='1'"/>
<i class="fa fa-check-circle-o text-danger" uib-tooltip="Refund Audition Required"
ng-if="trade.audition"></i>
<img src="/static/images/royalpay_sign_s.png" uib-tooltip="RoyalPay"
ng-if="trade.source=='system'"/>
<img src="/static/images/yangmaimai_sign.png" uib-tooltip="RP跨境商城"
ng-if="trade.source=='RP跨境商城'"/>
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Znyoo"
ng-if="trade.channel=='Znyoo'"/>
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Wechat Pay"
ng-if="trade.channel=='Wechat'"/>
<img src="/static/images/bestpay_sign.png" uib-tooltip="BestPay" alt="BestPay"
ng-if="trade.channel=='Bestpay'"/>
<img src="/static/images/alipay_sign.png" uib-tooltip="Alipay" alt="Alipay"
ng-if="trade.channel=='Alipay'"/>
<img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline"
alt="AlipayOnline" ng-if="trade.channel=='AlipayOnline'"/>
<img src="/static/images/jd_sign.png" uib-tooltip="JD Pay"
ng-if="trade.channel=='jd'"/>
<img src="/static/images/hf_sign.png" uib-tooltip="HF Pay"
ng-if="trade.channel=='hf'"/>
<img src="/static/images/rpayplus_sign.png" uib-tooltip="RPay+"
ng-if="trade.channel=='Rpay'"/>
<img src="/static/images/yeepay_sign.png" uib-tooltip="Yeepay"
ng-if="trade.channel=='Yeepay'"/>
<img src="/static/images/lakalapay_sign.png" uib-tooltip="LakalaPay"
ng-if="trade.channel=='LakalaPay'"/>
<img src="/static/images/card_payment_sign.png"
uib-tooltip="Card Payment" ng-if="trade.channel=='rpaypmt_card'"/>
<img src="/static/images/direct_debit_sign.png"
uib-tooltip="Direct Debit" ng-if="trade.channel=='rpaypmt_dd'"/>
{{trade.order_id}}<span
ng-if="trade.source!='system' && trade.source!=null && trade.incremental_surcharge != null"><i
class="fa fa-question-circle-o" uib-tooltip-html="trade.htmlTooltip"></i></span>
</td>
<td>
{{trade.total_amount|currency:trade.currency+' '}}
<a ng-if="trade.refund_fee" class="text-danger" role="button"
ng-click="showPRefundLog(trade.order_id)">(-{{trade.refund_fee}})</a>
</td>
<td ng-bind="trade.display_amount|currency:trade.currency"></td>
<td ng-bind="trade.clearing_amount|currency:'AUD '"></td>
<td ng-bind="trade.settle_amount|currency:'AUD '"></td>
<td>
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')"
ng-bind="trade.exchange_rate"></span>
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')"> - </span>
</td>
<td ng-bind="trade.status|tradeStatus"></td>
<td ng-bind="trade.create_time"></td>
<td ng-bind="trade.gateway|tradeGateway"></td>
<td>
<span ng-bind="(trade.order_detail||'-')|limitToWithEllipsis"
uib-tooltip="{{trade.order_detail}}"
uib-tooltip-enable="{{trade.order_detail}}"></span>
</td>
<td>
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)" title="Detail">
<i class="fa fa-list-alt"></i>
</a>
<a role="button"
ng-if="trade.clearing_status==2 && trade.client_id==currentUser.client_id"
class="text-bold text-primary"
ng-click="releasePreAuth(trade.order_id)" title="Release Pre-Authorization">
<i class="fa fa-unlock-alt"></i>
</a>
<a role="button"
ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && currentUser.client.enable_refund"
class="text-bold text-danger" ng-click="newPRefund(trade.order_id)"
title="Refund">
<i class="fa fa-undo"></i>
</a>
</td>
</tr>
<tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}">
<td ng-bind="trade.client_moniker"></td>
<td ng-bind="trade.short_name"></td>
<td ng-bind="trade.client_order_id||'NOT PROVIDED'"></td>
<td>
<img src="/static/images/clearing-icon.png" uib-tooltip="clearing"
ng-if="trade.clearing_status=='1'" />
<i class="fa fa-check-circle-o text-danger"
uib-tooltip="Refund Audition Required" ng-if="trade.audition"></i>
<img src="/static/images/royalpay_sign_s.png" uib-tooltip="RoyalPay"
ng-if="trade.source=='system'" />
<img src="/static/images/yangmaimai_sign.png" uib-tooltip="RP跨境商城"
ng-if="trade.source=='RP跨境商城'" />
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Znyoo"
ng-if="trade.channel=='Znyoo'" />
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Wechat Pay"
ng-if="trade.channel=='Wechat'" />
<img src="/static/images/bestpay_sign.png" uib-tooltip="BestPay" alt="BestPay"
ng-if="trade.channel=='Bestpay'" />
<img src="/static/images/alipay_sign.png" uib-tooltip="Alipay" alt="Alipay"
ng-if="trade.channel=='Alipay'" />
<img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline"
alt="AlipayOnline" ng-if="trade.channel=='AlipayOnline'" />
<img src="/static/images/jd_sign.png" uib-tooltip="JD Pay"
ng-if="trade.channel=='jd'" />
<img src="/static/images/hf_sign.png" uib-tooltip="HF Pay"
ng-if="trade.channel=='hf'" />
<img src="/static/images/rpayplus_sign.png" uib-tooltip="RPay+"
ng-if="trade.channel=='Rpay'" />
<img src="/static/images/yeepay_sign.png" uib-tooltip="Yeepay"
ng-if="trade.channel=='Yeepay'" />
<img src="/static/images/lakalapay_sign.png" uib-tooltip="LakalaPay"
ng-if="trade.channel=='LakalaPay'" />
<img src="/static/images/card_payment_sign.png" uib-tooltip="Card Payment"
ng-if="trade.channel=='rpaypmt_card'" />
<img src="/static/images/direct_debit_sign.png" uib-tooltip="Direct Debit"
ng-if="trade.channel=='rpaypmt_dd'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay CN"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_cn'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay SG"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_sg'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay MO"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_mo'" />
<img src="/static/images/alipay-hk.png" style="height: 20px"
uib-tooltip="Alipay HK/支付宝香港"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_hk'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay LU"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_lu'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay GB"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_gb'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay US"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_us'" />
<img src="/static/images/paytm-logo.png" style="height: 20px"
uib-tooltip="Patytm Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='paytm'" />
<img src="/static/images/kakaopay.png" style="height: 20px"
uib-tooltip="Kakao Pay"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='kakaopay'" />
<img src="/static/images/truemoney-logo.png" style="height: 20px"
uib-tooltip="TrueMoney"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='truemoney'" />
<img src="/static/images/ezlink-logo.png" style="height: 20px"
uib-tooltip="EZLINK"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='ezlink'" />
<img src="/static/images/gcash-logo.png" style="height: 20px"
uib-tooltip="GCash"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='gcash'" />
<img src="/static/images/TNGeWalletLogo.png" style="height: 20px"
uib-tooltip="TNG"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='tng'" />
<img src="/static/images/dana-wallet-logo.png" style="height: 20px"
uib-tooltip="Dana Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='dana'" />
<img src="/static/images/easypasia-logo.png" style="height: 20px"
uib-tooltip="EasyPasia"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='easy_paisa'" />
<img src="/static/images/bkash-logo.png" style="height: 20px"
uib-tooltip="bKash Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='bkash'" />
<img src="/static/images/lazada-logo.png" style="height: 20px"
uib-tooltip="Lazada Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='lazada_wallet_my'" />
{{trade.order_id}}<span
ng-if="trade.source!='system' && trade.source!=null && trade.incremental_surcharge != null"><i
class="fa fa-question-circle-o"
uib-tooltip-html="trade.htmlTooltip"></i></span>
</td>
<td>
{{trade.total_amount|currency:trade.currency+' '}}
<a ng-if="trade.refund_fee" class="text-danger" role="button"
ng-click="showPRefundLog(trade.order_id)">(-{{trade.refund_fee}})</a>
</td>
<td ng-bind="trade.display_amount|currency:trade.currency"></td>
<td ng-bind="trade.clearing_amount|currency:'AUD '"></td>
<td ng-bind="trade.settle_amount|currency:'AUD '"></td>
<td>
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')"
ng-bind="trade.exchange_rate"></span>
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')"> - </span>
</td>
<td ng-bind="trade.status|tradeStatus"></td>
<td ng-bind="trade.create_time"></td>
<td ng-bind="trade.gateway|tradeGateway"></td>
<td>
<span ng-bind="(trade.order_detail||'-')|limitToWithEllipsis"
uib-tooltip="{{trade.order_detail}}"
uib-tooltip-enable="{{trade.order_detail}}"></span>
</td>
<td>
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)"
title="Detail">
<i class="fa fa-list-alt"></i>
</a>
<a role="button"
ng-if="trade.clearing_status==2 && trade.client_id==currentUser.client_id"
class="text-bold text-primary" ng-click="releasePreAuth(trade.order_id)"
title="Release Pre-Authorization">
<i class="fa fa-unlock-alt"></i>
</a>
<a role="button"
ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && currentUser.client.enable_refund"
class="text-bold text-danger" ng-click="newPRefund(trade.order_id)"
title="Refund">
<i class="fa fa-undo"></i>
</a>
</td>
</tr>
</tbody>
</table>
</div>
<div class="box-footer" ng-if="tradeLogs.length">
<uib-pagination class="pagination"
total-items="pagination.totalCount"
boundary-links="true"
ng-model="pagination.page"
items-per-page="pagination.limit"
max-size="10"
ng-change="loadTradeLogs()"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<uib-pagination class="pagination" total-items="pagination.totalCount" boundary-links="true"
ng-model="pagination.page" items-per-page="pagination.limit" max-size="10"
ng-change="loadTradeLogs()" previous-text="&lsaquo;" next-text="&rsaquo;"
first-text="&laquo;" last-text="&raquo;"></uib-pagination>
<div class="row">
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total
Pages:{{pagination.totalPages}}

@ -95,24 +95,23 @@
</label>
<div class="col-sm-4 col-xs-8">
<input class="form-control" placeholder="Keyword"
ng-enter="loadTradeLogs(1)"
ng-model="params.searchText">
ng-enter="loadTradeLogs(1)" ng-model="params.searchText">
</div>
<div class="col-sm-6 col-xs-8">
<div ng-if="orgs" class="col-sm-6">
<select id="org-clild" class="form-control" ng-model="params.org_id"
ng-options="org.org_id as org.name group by org.type for org in orgs"
ng-change="params.org_id2 = '';loadOrgs();loadTradeLogs(1)">
ng-options="org.org_id as org.name group by org.type for org in orgs"
ng-change="params.org_id2 = '';loadOrgs();loadTradeLogs(1)">
<option value="">ALL Organizations</option>
</select>
</div>
<div ng-if="((orgs_child.length > 1) && ('1000011'|withRole))&&params.org_id || ((orgs_child.length > 0) && ('1000000000000'|withRole))"
class="col-sm-6">
class="col-sm-6">
<select id="org-select" class="form-control" ng-model="params.org_id2"
ng-options="org.org_id as org.name group by org.org_type for org in orgs_child"
ng-change="loadTradeLogs(1)">
ng-options="org.org_id as org.name group by org.org_type for org in orgs_child"
ng-change="loadTradeLogs(1)">
<option value="">{{org2}}</option>
</select>
</div>
@ -147,11 +146,11 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.source=='ALL'}"
ng-click="params.source='ALL';loadTradeLogs(1)">All</a> |
ng-click="params.source='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.source=='system'}"
ng-click="params.source='system';loadTradeLogs(1)">System</a> |
ng-click="params.source='system';loadTradeLogs(1)">System</a> |
<a role="button" ng-class="{'bg-primary':params.source=='RP跨境商城'}"
ng-click="params.source='RP跨境商城';loadTradeLogs(1)">RP跨境商城</a>
ng-click="params.source='RP跨境商城';loadTradeLogs(1)">RP跨境商城</a>
</p>
</div>
</div>
@ -160,20 +159,20 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.status=='ALL'}"
ng-click="params.status='ALL';loadTradeLogs(1)">All</a> |
ng-click="params.status='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.status=='PAID'}"
ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a>
ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a>
|
<a role="button" ng-class="{'bg-primary':params.status=='ALL_REFUNDED'}"
ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All
ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All
Refund</a> |
<a role="button"
ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}"
ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial
ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}"
ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial
Refund</a> |
<a role="button"
ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}"
ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full
ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}"
ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full
Refund</a>
</p>
</div>
@ -183,31 +182,38 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.channel=='ALL'}"
ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> |
ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='WECHAT'}"
ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> |
ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAY'}"
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
<a role="button"
ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a>
ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYPLUS'}"
ng-click="params.channel='ALIPAYPLUS';loadTradeLogs(1)">Alipay+</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> |
ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='JD'}"
ng-click="params.channel='JD';loadTradeLogs(1)">JD Pay</a> |
ng-click="params.channel='JD';loadTradeLogs(1)">JD Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='HF'}"
ng-click="params.channel='HF';loadTradeLogs(1)">HF Pay</a> |
ng-click="params.channel='HF';loadTradeLogs(1)">HF Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card Payment</a> |
ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a>
|
<a role="button"
ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card
Payment</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}"
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct Debit</a>
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct
Debit</a>
</p>
</div>
</div>
@ -216,55 +222,57 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gateway==null}"
ng-click="params.gateway=null;loadTradeLogs(1)">All</a> |
ng-click="params.gateway=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([0,1])}"
ng-click="params.gateway=[0,1];initGatewayChild()">Retail In-Store</a>
ng-click="params.gateway=[0,1];initGatewayChild()">Retail
In-Store</a>
|
<a role="button" ng-class="{'bg-primary':gatewaySelected([5,6])}"
ng-click="params.gateway=[5,6];loadTradeLogs(1);initGatewayChild()">Retail API</a> |
ng-click="params.gateway=[5,6];loadTradeLogs(1);initGatewayChild()">Retail
API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([2,7])}"
ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> |
ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([3])}"
ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> |
ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([4])}"
ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> |
ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([8])}"
ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> |
ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([9])}"
ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party
ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party
Gateway</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([10])}"
ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> |
ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([11])}"
ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> |
ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([12])}"
ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> |
ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([13])}"
ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> |
ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([14])}"
ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a>
ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a>
</p>
</div>
</div>
<div class="form-group col-xs-12"
ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]">
ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]">
<label class="control-label col-xs-4 col-sm-2">Type of payment</label>
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gatewayChild==null}"
ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> |
ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==1}"
ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a>
ng-class="{'bg-primary':params.gatewayChild==1}"
ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==0}"
ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a>
ng-class="{'bg-primary':params.gatewayChild==0}"
ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==6}"
ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a>
ng-class="{'bg-primary':params.gatewayChild==6}"
ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==5}"
ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a>
ng-class="{'bg-primary':params.gatewayChild==5}"
ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a>
</p>
</div>
</div>
@ -274,39 +282,39 @@
<div class="form-control-static form-inline">
<div style="display: inline-block">
<input class="form-control" id="date-from-input"
ng-model="params.datefrom"
uib-datepicker-popup size="10" placeholder="From"
is-open="dateBegin.open" ng-click="dateBegin.open=true"
datepicker-options="{maxDate:params.dateto||today}">
ng-model="params.datefrom" uib-datepicker-popup size="10"
placeholder="From" is-open="dateBegin.open"
ng-click="dateBegin.open=true"
datepicker-options="{maxDate:params.dateto||today}">
</div>
~
<div style="display: inline-block">
<input class="form-control" id="date-to-input"
ng-model="params.dateto"
uib-datepicker-popup size="10" placeholder="To"
is-open="dateTo.open" ng-click="dateTo.open=true"
datepicker-options="{minDate:params.datefrom,maxDate:today}">
ng-model="params.dateto" uib-datepicker-popup size="10"
placeholder="To" is-open="dateTo.open"
ng-click="dateTo.open=true"
datepicker-options="{minDate:params.datefrom,maxDate:today}">
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="chooseToday()">Today</a>
ng-click="chooseToday()">Today</a>
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="chooseYesterday()">Yesterday</a>
ng-click="chooseYesterday()">Yesterday</a>
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="chooseLast7Days()">Last 7 Days</a>
ng-click="chooseLast7Days()">Last 7 Days</a>
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="thisMonth()">This Month</a>
ng-click="thisMonth()">This Month</a>
</div>
<div class="btn-group">
<a role="button" class="btn btn-default btn-sm"
ng-click="lastMonth()">Last Month</a>
ng-click="lastMonth()">Last Month</a>
</div>
</div>
@ -316,11 +324,11 @@
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':isAll}"
ng-click="chooseBD('all')">All</a>
ng-click="chooseBD('all')">All</a>
<label ng-repeat="sub in bd_group_bds">
|&nbsp;<a role="button"
ng-class="{'bg-primary':sub.manager_id==chooseBDId}"
ng-click="chooseBD(sub.manager_id)">{{sub.bd_name}}</a>&nbsp;
ng-class="{'bg-primary':sub.manager_id==chooseBDId}"
ng-click="chooseBD(sub.manager_id)">{{sub.bd_name}}</a>&nbsp;
</label>
</p>
</div>
@ -351,7 +359,7 @@
<div class="info-box-content box-content_left">
<span class="info-box-text">Transaction Amount</span>
<span class="info-box-number box-number_font"
ng-bind="analysis.paid_fee|currency:'AUD'"></span>
ng-bind="analysis.paid_fee|currency:'AUD'"></span>
<span class="small">( {{analysis.order_count}} Orders )</span>
</div>
</div>
@ -363,30 +371,31 @@
<div class="info-box-content box-content_left">
<span class="info-box-text">Input Amount</span>
<span class="info-box-number box-number_font"
ng-bind="analysis.display_amount|currency:'AUD '"></span>
<span class="small"> ( {{analysis.pre_display_amount | currency:'pre authorization '}} )</span>
ng-bind="analysis.display_amount|currency:'AUD '"></span>
<span class="small"> ( {{analysis.pre_display_amount | currency:'pre
authorization '}} )</span>
</div>
</div>
</div>
<div class="col-md-1-5 col-sm-6 col-xs-12" ng-if="analysis.cny_display_amount">
<div class="info-box info_box_bottom"
ng-class="{'line_height':analysis.pre_display_amount||analysis.pre_cny_display_amount}">
ng-class="{'line_height':analysis.pre_display_amount||analysis.pre_cny_display_amount}">
<span class="info-box-icon bg-aqua box-icon_small"><i
class="ion ion-social-usd"></i></span>
<div class="info-box-content box-content_left">
<span class="info-box-text">Input Amount</span>
<span class="info-box-number box-number_font" style="margin-bottom: -3px;"
ng-class="{line_height_:!analysis.pre_display_amount}"
ng-bind="analysis.display_amount|currency:'AUD '"></span>
ng-class="{line_height_:!analysis.pre_display_amount}"
ng-bind="analysis.display_amount|currency:'AUD '"></span>
<span style="font-size: 8px;line-height: 8px"
ng-if="analysis.pre_display_amount">
ng-if="analysis.pre_display_amount">
( {{analysis.pre_display_amount | currency:'pre authorization '}} )
</span>
<span class="info-box-number box-number_font" style="margin-bottom: -3px;"
ng-if="analysis.cny_display_amount"
ng-bind="analysis.cny_display_amount|currency:'CNY '"></span>
ng-if="analysis.cny_display_amount"
ng-bind="analysis.cny_display_amount|currency:'CNY '"></span>
<span style="font-size: 8px;line-height: 8px"
ng-if="analysis.pre_cny_display_amount">
ng-if="analysis.pre_cny_display_amount">
( {{analysis.pre_cny_display_amount | currency:'pre authorization '}} )
</span>
</div>
@ -399,9 +408,9 @@
<div class="info-box-content box-content_left">
<span class="info-box-text">Refund Amount</span>
<span class="info-box-number box-number_font"
ng-bind="analysis.refund_fee|currency:'AUD '"></span>
ng-bind="analysis.refund_fee|currency:'AUD '"></span>
<span class=small" ng-if="analysis.pre_refund_fee">
({{analysis.pre_refund_fee|currency:'pre authorization '}})
({{analysis.pre_refund_fee|currency:'pre authorization '}})
</span>
</div>
</div>
@ -412,8 +421,7 @@
class="ion ion-ios-people"></i></span>
<div class="info-box-content box-content_left">
<span class="info-box-text">Merchants</span>
<span class="info-box-number box-number_font"
ng-bind="analysis.clients"></span>
<span class="info-box-number box-number_font" ng-bind="analysis.clients"></span>
</span>
</div>
</div>
@ -425,7 +433,7 @@
<div class="info-box-content box-content_left">
<span class="info-box-text">CUSTOMERS</span>
<span class="info-box-number box-number_font"
ng-bind="analysis.customers"></span>
ng-bind="analysis.customers"></span>
</div>
</div>
</div>
@ -436,109 +444,173 @@
<div class="box-header">
<h3 class="box-title" style="display: inherit">Trade Orders
<span style="float: right;font-size: 14px;">Pre Authorization:<i class="fa fa-stop"
aria-hidden="true"
style="color: #fff2a5"></i></span>
aria-hidden="true" style="color: #fff2a5"></i></span>
</h3>
<a hidden class="pull-right text-bold" ng-if="'manual_refund_check'|withFunc" role="button"
ng-click="confirmOrders()">Manual Confirm Orders</a>
ng-click="confirmOrders()">Manual Confirm Orders</a>
</div>
<div class="box-body table-responsive">
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>Partner</th>
<th>Order ID</th>
<th>Amount</th>
<th>Input Amount</th>
<th>AUD Amount</th>
<th>Exchange Rate</th>
<th>Status</th>
<th>Create Time</th>
<th>Gateway</th>
<th>Operation</th>
</tr>
<tr>
<th>Partner</th>
<th>Order ID</th>
<th>Amount</th>
<th>Input Amount</th>
<th>AUD Amount</th>
<th>Exchange Rate</th>
<th>Status</th>
<th>Create Time</th>
<th>Gateway</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}">
<td>
<a role="button" ui-sref="partners.detail({clientMoniker:trade.client_moniker})">
{{trade.short_name}}({{trade.client_moniker}})
</a>
</td>
<td>
<img src="/static/images/royalpay_sign_s.png"
uib-tooltip="RoyalPay" ng-if="trade.source=='system'"/>
<img src="/static/images/yangmaimai_sign.png"
uib-tooltip="RP跨境商城" ng-if="trade.source=='RP跨境商城'"/>
<img src="/static/images/wechatpay_sign.png"
uib-tooltip="WechatPay" ng-if="trade.channel=='Wechat'"/>
<img src="/static/images/wechatpay_sign.png"
uib-tooltip="Znyoo" ng-if="trade.channel=='Znyoo'"/>
<img src="/static/images/bestpay_sign.png"
uib-tooltip="BestPay" ng-if="trade.channel=='Bestpay'"/>
<img src="/static/images/alipay_sign.png"
uib-tooltip="Alipay" ng-if="trade.channel=='Alipay'"/>
<img src="/static/images/alipay_sign.png"
uib-tooltip="AlipayOnline" ng-if="trade.channel=='AlipayOnline'"/>
<img src="/static/images/jd_sign.png"
uib-tooltip="JD Pay" ng-if="trade.channel=='jd'"/>
<img src="/static/images/hf_sign.png"
uib-tooltip="HF Pay" ng-if="trade.channel=='hf'"/>
<img src="/static/images/rpayplus_sign.png"
uib-tooltip="Royal Pay" ng-if="trade.channel=='Rpay'"/>
<img src="/static/images/yeepay_sign.png"
uib-tooltip="Yeepay" ng-if="trade.channel=='Yeepay'"/>
<img src="/static/images/lakalapay_sign.png"
uib-tooltip="LakalaPay" ng-if="trade.channel=='LakalaPay'"/>
<img src="/static/images/card_payment_sign.png"
uib-tooltip="Card Payment" ng-if="trade.channel=='rpaypmt_card'"/>
<img src="/static/images/direct_debit_sign.png"
uib-tooltip="Direct Debit" ng-if="trade.channel=='rpaypmt_dd'"/>
{{trade.order_id}}<span ng-if="trade.source!='system'&& trade.source!=null && trade.incremental_surcharge != null"><i class="fa fa-question-circle-o" uib-tooltip-html="trade.htmlTooltip"></i></span>
</td>
<td>
{{trade.total_amount|currency:trade.currency}}
<a ng-if="trade.refund_fee" class="text-danger" role="button"
ng-click="showRefundLog(trade.order_id)">(-{{trade.refund_fee}})</a>
</td>
<td ng-bind="trade.display_amount|currency:trade.currency"></td>
<td ng-bind="trade.clearing_amount|currency:'AUD'"></td>
<td>
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')"
ng-bind="trade.exchange_rate"></span>
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')"> - </span>
</td>
<td ng-bind="trade.status|tradeStatus"></td>
<td ng-bind="trade.create_time"></td>
<td ng-bind="trade.gateway|tradeGateway"></td>
<td>
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)" title="Detail">
<i class="fa fa-list-alt"></i>
</a>
<a role="button"
ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && ('do_refund'|withFunc)"
title="Refund"
class="text-bold text-danger" ng-click="newRefund(trade.order_id)">
<i class="fa fa-undo"></i>
</a>
</td>
</tr>
<tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}">
<td>
<a role="button"
ui-sref="partners.detail({clientMoniker:trade.client_moniker})">
{{trade.short_name}}({{trade.client_moniker}})
</a>
</td>
<td>
<img src="/static/images/royalpay_sign_s.png" uib-tooltip="RoyalPay"
ng-if="trade.source=='system'" />
<img src="/static/images/yangmaimai_sign.png" uib-tooltip="RP跨境商城"
ng-if="trade.source=='RP跨境商城'" />
<img src="/static/images/wechatpay_sign.png" uib-tooltip="WechatPay"
ng-if="trade.channel=='Wechat'" />
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Znyoo"
ng-if="trade.channel=='Znyoo'" />
<img src="/static/images/bestpay_sign.png" uib-tooltip="BestPay"
ng-if="trade.channel=='Bestpay'" />
<img src="/static/images/alipay_sign.png" uib-tooltip="Alipay"
ng-if="trade.channel=='Alipay'" />
<img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline"
ng-if="trade.channel=='AlipayOnline'" />
<img src="/static/images/jd_sign.png" uib-tooltip="JD Pay"
ng-if="trade.channel=='jd'" />
<img src="/static/images/hf_sign.png" uib-tooltip="HF Pay"
ng-if="trade.channel=='hf'" />
<img src="/static/images/rpayplus_sign.png" uib-tooltip="Royal Pay"
ng-if="trade.channel=='Rpay'" />
<img src="/static/images/yeepay_sign.png" uib-tooltip="Yeepay"
ng-if="trade.channel=='Yeepay'" />
<img src="/static/images/lakalapay_sign.png" uib-tooltip="LakalaPay"
ng-if="trade.channel=='LakalaPay'" />
<img src="/static/images/card_payment_sign.png" uib-tooltip="Card Payment"
ng-if="trade.channel=='rpaypmt_card'" />
<img src="/static/images/direct_debit_sign.png" uib-tooltip="Direct Debit"
ng-if="trade.channel=='rpaypmt_dd'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay CN"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_cn'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay SG"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_sg'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay MO"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_mo'" />
<img src="/static/images/alipay-hk.png" style="height: 20px"
uib-tooltip="Alipay HK/支付宝香港"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_hk'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay LU"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_lu'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay GB"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_gb'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay US"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_us'" />
<img src="/static/images/paytm-logo.png" style="height: 20px"
uib-tooltip="Patytm Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='paytm'" />
<img src="/static/images/kakaopay.png" style="height: 20px"
uib-tooltip="Kakao Pay"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='kakaopay'" />
<img src="/static/images/truemoney-logo.png" style="height: 20px"
uib-tooltip="TrueMoney"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='truemoney'" />
<img src="/static/images/ezlink-logo.png" style="height: 20px"
uib-tooltip="EZLINK"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='ezlink'" />
<img src="/static/images/gcash-logo.png" style="height: 20px"
uib-tooltip="GCash"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='gcash'" />
<img src="/static/images/TNGeWalletLogo.png" style="height: 20px"
uib-tooltip="TNG"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='tng'" />
<img src="/static/images/dana-wallet-logo.png" style="height: 20px"
uib-tooltip="Dana Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='dana'" />
<img src="/static/images/easypasia-logo.png" style="height: 20px"
uib-tooltip="EasyPasia"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='easy_paisa'" />
<img src="/static/images/bkash-logo.png" style="height: 20px"
uib-tooltip="bKash Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='bkash'" />
<img src="/static/images/lazada-logo.png" style="height: 20px"
uib-tooltip="Lazada Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='lazada_wallet_my'" />
{{trade.order_id}}<span
ng-if="trade.source!='system'&& trade.source!=null && trade.incremental_surcharge != null"><i
class="fa fa-question-circle-o"
uib-tooltip-html="trade.htmlTooltip"></i></span>
</td>
<td>
{{trade.total_amount|currency:trade.currency}}
<a ng-if="trade.refund_fee" class="text-danger" role="button"
ng-click="showRefundLog(trade.order_id)">(-{{trade.refund_fee}})</a>
</td>
<td ng-bind="trade.display_amount|currency:trade.currency"></td>
<td ng-bind="trade.clearing_amount|currency:'AUD'"></td>
<td>
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')"
ng-bind="trade.exchange_rate"></span>
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')"> - </span>
</td>
<td ng-bind="trade.status|tradeStatus"></td>
<td ng-bind="trade.create_time"></td>
<td ng-bind="trade.gateway|tradeGateway"></td>
<td>
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)"
title="Detail">
<i class="fa fa-list-alt"></i>
</a>
<a role="button"
ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && ('do_refund'|withFunc)"
title="Refund" class="text-bold text-danger"
ng-click="newRefund(trade.order_id)">
<i class="fa fa-undo"></i>
</a>
</td>
</tr>
</tbody>
</table>
</div>
<div class="box-body" ng-if="tradeLogs.length">
<uib-pagination class="pagination"
total-items="pagination.totalCount"
boundary-links="true"
ng-model="pagination.page"
items-per-page="pagination.limit"
max-size="10"
ng-change="loadTradeLogs()"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<uib-pagination class="pagination" total-items="pagination.totalCount" boundary-links="true"
ng-model="pagination.page" items-per-page="pagination.limit" max-size="10"
ng-change="loadTradeLogs()" previous-text="&lsaquo;" next-text="&rsaquo;"
first-text="&laquo;" last-text="&raquo;"></uib-pagination>
<div class="row">
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total
Pages:{{pagination.totalPages}}

@ -68,7 +68,7 @@ server {
}
location ~ ^/api/v1.0/((alipay_connect)|(customs)|(alipay)|(rpay)|(yeepay)|(card_payment_view)|(lakala_pay)|(cb_bankpay)|(bestpay)|(hf)|(wechat_jsapi_gateway)|(h5_payment)|(gateway)|(hf_gateway)|(jd_gateway)|(micropay)|(retail_qrcode)|(jsapi_gateway)|(share_code)|(payment))/ {
location ~ ^/api/v1.0/((alipay\w*)|(customs)|(rpay)|(yeepay)|(card_payment_view)|(lakala_pay)|(cb_bankpay)|(bestpay)|(hf)|(\w*gateway)|(micropay)|(retail_qrcode)|(share_code)|(payment)|(h5_payment))/ {
proxy_pass http://rppaycenter;
proxy_http_version 1.1;

Loading…
Cancel
Save