master
liuxinxin 5 years ago
parent 36facdf46c
commit 6c6fed89a6

@ -0,0 +1,31 @@
function mSign_signMark_app(){
debugger;
var wrapper = document.getElementById("mSign_signMark_signature_pad"),
clearButton = document.getElementById("mSign_signMark_clear_out"),
canvas = wrapper.querySelector("canvas"),
sure = document.getElementsByClassName("mSign_signMark_footer_sure"),
signaturePad;
function resizeCanvas() {
var ratio = Math.max(window.devicePixelRatio || 1, 1);
canvas.width = canvas.offsetWidth * ratio;
canvas.height = canvas.offsetHeight * ratio;
canvas.getContext("2d").scale(ratio, ratio);
}
window.onresize = resizeCanvas;
resizeCanvas();
signaturePad = new SignaturePad(canvas,{
minWidth: 1,
maxWidth: 2,
penColor: "rgb(0,0,0)"
});
clearButton.addEventListener("click", function (event) {
signaturePad.clear();
});
}

@ -0,0 +1,368 @@
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
define([], function () {
return (root['SignaturePad'] = factory());
});
} else if (typeof exports === 'object') {
module.exports = factory();
} else {
root['SignaturePad'] = factory();
}
}(this, function () {
var SignaturePad = (function (document) {
"use strict";
var SignaturePad = function (canvas, options) {
var self = this,
opts = options || {};
this.velocityFilterWeight = opts.velocityFilterWeight || 0.7;
this.minWidth = opts.minWidth || 0.5;
this.maxWidth = opts.maxWidth || 2.5;
this.dotSize = opts.dotSize || function () {
return (this.minWidth + this.maxWidth) / 2;
};
this.penColor = opts.penColor || "black";
this.backgroundColor = opts.backgroundColor || "rgba(0,0,0,0)";
this.onEnd = opts.onEnd;
this.onBegin = opts.onBegin;
this._canvas = canvas;
this._ctx = canvas.getContext("2d");
this.clear();
this._handleMouseDown = function (event) {
if (event.which === 1) {
self._mouseButtonDown = true;
self._strokeBegin(event);
}
};
this._handleMouseMove = function (event) {
if (self._mouseButtonDown) {
self._strokeUpdate(event);
}
};
this._handleMouseUp = function (event) {
if (event.which === 1 && self._mouseButtonDown) {
self._mouseButtonDown = false;
self._strokeEnd(event);
}
};
this._handleTouchStart = function (event) {
if (event.targetTouches.length == 1) {
var touch = event.changedTouches[0];
self._strokeBegin(touch);
}
};
this._handleTouchMove = function (event) {
// Prevent scrolling.
event.preventDefault();
var touch = event.targetTouches[0];
self._strokeUpdate(touch);
};
this._handleTouchEnd = function (event) {
var wasCanvasTouched = event.target === self._canvas;
if (wasCanvasTouched) {
event.preventDefault();
self._strokeEnd(event);
}
};
this._handleMouseEvents();
this._handleTouchEvents();
};
SignaturePad.prototype.clear = function () {
var ctx = this._ctx,
canvas = this._canvas;
ctx.fillStyle = this.backgroundColor;
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillRect(0, 0, canvas.width, canvas.height);
this._reset();
};
SignaturePad.prototype.toDataURL = function (imageType, quality) {
var canvas = this._canvas;
return canvas.toDataURL.apply(canvas, arguments);
};
SignaturePad.prototype.fromDataURL = function (dataUrl) {
var self = this,
image = new Image(),
ratio = window.devicePixelRatio || 1,
width = this._canvas.width / ratio,
height = this._canvas.height / ratio;
this._reset();
image.src = dataUrl;
image.onload = function () {
self._ctx.drawImage(image, 0, 0, width, height);
};
this._isEmpty = false;
};
SignaturePad.prototype._strokeUpdate = function (event) {
var point = this._createPoint(event);
this._addPoint(point);
};
SignaturePad.prototype._strokeBegin = function (event) {
this._reset();
this._strokeUpdate(event);
if (typeof this.onBegin === 'function') {
this.onBegin(event);
}
};
SignaturePad.prototype._strokeDraw = function (point) {
var ctx = this._ctx,
dotSize = typeof(this.dotSize) === 'function' ? this.dotSize() : this.dotSize;
ctx.beginPath();
this._drawPoint(point.x, point.y, dotSize);
ctx.closePath();
ctx.fill();
};
SignaturePad.prototype._strokeEnd = function (event) {
var canDrawCurve = this.points.length > 2,
point = this.points[0];
if (!canDrawCurve && point) {
this._strokeDraw(point);
}
if (typeof this.onEnd === 'function') {
this.onEnd(event);
}
};
SignaturePad.prototype._handleMouseEvents = function () {
this._mouseButtonDown = false;
this._canvas.addEventListener("mousedown", this._handleMouseDown);
this._canvas.addEventListener("mousemove", this._handleMouseMove);
document.addEventListener("mouseup", this._handleMouseUp);
};
SignaturePad.prototype._handleTouchEvents = function () {
// Pass touch events to canvas element on mobile IE11 and Edge.
this._canvas.style.msTouchAction = 'none';
this._canvas.style.touchAction = 'none';
this._canvas.addEventListener("touchstart", this._handleTouchStart);
this._canvas.addEventListener("touchmove", this._handleTouchMove);
this._canvas.addEventListener("touchend", this._handleTouchEnd);
};
SignaturePad.prototype.on = function () {
this._handleMouseEvents();
this._handleTouchEvents();
};
SignaturePad.prototype.off = function () {
this._canvas.removeEventListener("mousedown", this._handleMouseDown);
this._canvas.removeEventListener("mousemove", this._handleMouseMove);
document.removeEventListener("mouseup", this._handleMouseUp);
this._canvas.removeEventListener("touchstart", this._handleTouchStart);
this._canvas.removeEventListener("touchmove", this._handleTouchMove);
this._canvas.removeEventListener("touchend", this._handleTouchEnd);
};
SignaturePad.prototype.isEmpty = function () {
return this._isEmpty;
};
SignaturePad.prototype._reset = function () {
this.points = [];
this._lastVelocity = 0;
this._lastWidth = (this.minWidth + this.maxWidth) / 2;
this._isEmpty = true;
this._ctx.fillStyle = this.penColor;
};
SignaturePad.prototype._createPoint = function (event) {
var rect = this._canvas.getBoundingClientRect();
return new Point(
event.clientX - rect.left,
event.clientY - rect.top
);
};
SignaturePad.prototype._addPoint = function (point) {
var points = this.points,
c2, c3,
curve, tmp;
points.push(point);
if (points.length > 2) {
// To reduce the initial lag make it work with 3 points
// by copying the first point to the beginning.
if (points.length === 3) points.unshift(points[0]);
tmp = this._calculateCurveControlPoints(points[0], points[1], points[2]);
c2 = tmp.c2;
tmp = this._calculateCurveControlPoints(points[1], points[2], points[3]);
c3 = tmp.c1;
curve = new Bezier(points[1], c2, c3, points[2]);
this._addCurve(curve);
// Remove the first element from the list,
// so that we always have no more than 4 points in points array.
points.shift();
}
};
SignaturePad.prototype._calculateCurveControlPoints = function (s1, s2, s3) {
var dx1 = s1.x - s2.x, dy1 = s1.y - s2.y,
dx2 = s2.x - s3.x, dy2 = s2.y - s3.y,
m1 = {x: (s1.x + s2.x) / 2.0, y: (s1.y + s2.y) / 2.0},
m2 = {x: (s2.x + s3.x) / 2.0, y: (s2.y + s3.y) / 2.0},
l1 = Math.sqrt(dx1*dx1 + dy1*dy1),
l2 = Math.sqrt(dx2*dx2 + dy2*dy2),
dxm = (m1.x - m2.x),
dym = (m1.y - m2.y),
k = l2 / (l1 + l2),
cm = {x: m2.x + dxm*k, y: m2.y + dym*k},
tx = s2.x - cm.x,
ty = s2.y - cm.y;
return {
c1: new Point(m1.x + tx, m1.y + ty),
c2: new Point(m2.x + tx, m2.y + ty)
};
};
SignaturePad.prototype._addCurve = function (curve) {
var startPoint = curve.startPoint,
endPoint = curve.endPoint,
velocity, newWidth;
velocity = endPoint.velocityFrom(startPoint);
velocity = this.velocityFilterWeight * velocity
+ (1 - this.velocityFilterWeight) * this._lastVelocity;
newWidth = this._strokeWidth(velocity);
this._drawCurve(curve, this._lastWidth, newWidth);
this._lastVelocity = velocity;
this._lastWidth = newWidth;
};
SignaturePad.prototype._drawPoint = function (x, y, size) {
var ctx = this._ctx;
ctx.moveTo(x, y);
ctx.arc(x, y, size, 0, 2 * Math.PI, false);
this._isEmpty = false;
};
SignaturePad.prototype._drawCurve = function (curve, startWidth, endWidth) {
var ctx = this._ctx,
widthDelta = endWidth - startWidth,
drawSteps, width, i, t, tt, ttt, u, uu, uuu, x, y;
drawSteps = Math.floor(curve.length());
ctx.beginPath();
for (i = 0; i < drawSteps; i++) {
// Calculate the Bezier (x, y) coordinate for this step.
t = i / drawSteps;
tt = t * t;
ttt = tt * t;
u = 1 - t;
uu = u * u;
uuu = uu * u;
x = uuu * curve.startPoint.x;
x += 3 * uu * t * curve.control1.x;
x += 3 * u * tt * curve.control2.x;
x += ttt * curve.endPoint.x;
y = uuu * curve.startPoint.y;
y += 3 * uu * t * curve.control1.y;
y += 3 * u * tt * curve.control2.y;
y += ttt * curve.endPoint.y;
width = startWidth + ttt * widthDelta;
this._drawPoint(x, y, width);
}
ctx.closePath();
ctx.fill();
};
SignaturePad.prototype._strokeWidth = function (velocity) {
return Math.max(this.maxWidth / (velocity + 1), this.minWidth);
};
var Point = function (x, y, time) {
this.x = x;
this.y = y;
this.time = time || new Date().getTime();
};
Point.prototype.velocityFrom = function (start) {
return (this.time !== start.time) ? this.distanceTo(start) / (this.time - start.time) : 1;
};
Point.prototype.distanceTo = function (start) {
return Math.sqrt(Math.pow(this.x - start.x, 2) + Math.pow(this.y - start.y, 2));
};
var Bezier = function (startPoint, control1, control2, endPoint) {
this.startPoint = startPoint;
this.control1 = control1;
this.control2 = control2;
this.endPoint = endPoint;
};
// Returns approximated length.
Bezier.prototype.length = function () {
var steps = 10,
length = 0,
i, t, cx, cy, px, py, xdiff, ydiff;
for (i = 0; i <= steps; i++) {
t = i / steps;
cx = this._point(t, this.startPoint.x, this.control1.x, this.control2.x, this.endPoint.x);
cy = this._point(t, this.startPoint.y, this.control1.y, this.control2.y, this.endPoint.y);
if (i > 0) {
xdiff = cx - px;
ydiff = cy - py;
length += Math.sqrt(xdiff * xdiff + ydiff * ydiff);
}
px = cx;
py = cy;
}
return length;
};
Bezier.prototype._point = function (t, start, c1, c2, end) {
return start * (1.0 - t) * (1.0 - t) * (1.0 - t)
+ 3.0 * c1 * (1.0 - t) * (1.0 - t) * t
+ 3.0 * c2 * (1.0 - t) * t * t
+ end * t * t * t;
};
return SignaturePad;
})(document);
return SignaturePad;
}));

@ -49,12 +49,7 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload','uiBoot
}).state('compliance_contract', {
url: '/compliance/contract',
templateUrl: '/static/payment/partner/templates/contract_for_compliance.html',
controller: 'clientCommitToComplianceFilesCtrl',
resolve: {
file: ['$http', function ($http) {
return $http.get('/client/partner_info/compliance/clientViewFiles');
}]
}
controller: 'aggregateFileCtrl',
}).state('basic.clearing_config', {
url: '/clearing_config',
templateUrl: '/static/payment/partner/templates/client_bankaccounts.html',
@ -1033,10 +1028,30 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload','uiBoot
}
};
}]);
app.controller('aggregateFileCtrl', ['$scope', '$http', '$rootScope', 'commonDialog', '$state', 'Upload', function ($scope, $http, $rootScope, commonDialog, $state, Upload) {
$scope.aggregateFile = function () {
$http.get('/client/partner_info/aggregateFile/client_info').then(function (resp) {
debugger;
$scope.aggregateFileInfo = resp.data;
}, function (resp) {
commonDialog.alert({title: '生成合同失败', content:"错误原因:"+resp.data.message+",请联系bd或客服", type: 'error'});
var url = $state.href('basic.compliance_to_perfect');
window.open(url);
})
};
$scope.aggregateFile();
$scope.goBottom =function() {
window.scrollTo(0, document.documentElement.scrollHeight-document.documentElement.clientHeight);
};
$scope. goBackToCompliance =function() {
alert(1111);
}
$scope.submitContract =function(){
$scope.goBottom();
$scope.confirmforsubmit();
@ -1046,11 +1061,14 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload','uiBoot
var Confirm = confirm("确认提交合同吗?")
if(Confirm)
{
alert(111111111);
}
};
}]);
app.controller('clientPaymentInfoCtrl', ['$scope', '$http', '$state', 'commonDialog','$uibModal', function ($scope, $http, $state, commonDialog, $uibModal) {
$scope.paymentInfo = $scope.partner;
$scope.old_customer_surcharge_rate = angular.copy($scope.partner.customer_surcharge_rate);

@ -13,37 +13,80 @@
margin: 0px 15%;
}
@media (min-width:100px) and (max-width:799px){*{font-size:5px;}}
@media (min-width:100px) and (max-width:399px){*{font-size:1px;}}
@media (min-width:400px) and (max-width:799px){*{font-size:5px;}}
@media (min-width:800px) and (max-width:1024px) {*{font-size:10px;}}
@media (min-width:1025px) and (max-width:1440px) {*{font-size:15px;}}
@media (min-width:1441px) and (max-width:1600px){*{font-size:20px;}}
.mSign_signMark_box{padding: 15px 15px 26px 15px;}
.mSign_signMark_footer{max-width:640px;margin:0 auto;height: 44px;background: #4ba7eb;position: fixed;bottom: 0;left: 0;right: 0;color:#fff;font-size: 16px;text-align: center;line-height: 44px;}
.mSign_signMark_footer span{display: block;width: 50%;text-align: center;float: left;}
.mSign_signMark_footer_cancle{background: #f4f4f5;color: #333333;}
/*手写签名*/
.mSign_signMark_write_box{position: relative;height: 240px;}
.mSign_signMark_body_box {position: absolute;background-color: #fff;border: 1px solid #ccc;top:0;left: 0;right: 0;bottom: 0;width: 99%;height: auto;min-width: 250px;min-height: 140px;}
.mSign_signMark_body {position: absolute;left: 0;right: 0;top: 0;bottom: 0;}
.mSign_signMark_body canvas {position: absolute;left: 0;top: 0;width: 100%;height: 100%;}
.mSign_signMark_body p{position: absolute;font-size: 14px;color: #ccc;text-align: center;width: 100%;top: 50%;margin-top: -22px;}
.mSign_signMark_clear_out{position: absolute;top:-10px;right: -5px;z-index: 10;display: none;}
.mSign_signMark_clear_out img{width: 18px;height: 18px;}
</style>
<script type="text/javascript" src="static/lib/mSign_signMark_app.js"></script>
<script type="text/javascript" src="static/lib/mSign_signMark_signature_pad.js"></script>
<script>
$(function() {
var ctouch=$('.mSign_signMark_body canvas');
ctouch.bind("touchstart",function(event){
$('.mSign_signMark_body p').hide();
});
ctouch.mouseover(function(event) {
$('.mSign_signMark_body p').hide();
});
});
</script>
<div ui-view>
<section class="content" style="background:#4F4F4F;">
<div class="row">
<div class="container-fluid">
<div class="card-boxs widget-box-two widget-two-custom" style="overflow-x: auto;">
<div id="dg" style="z-index: 9999; position: fixed ! important; right: 12%; top: 50%;">
<div id="dg" style="z-index: 9999; position: fixed ! important; left: 85%; top: 50%;">
<table width=""100% style="position: absolute; width:260px; right: 0px; top: 0px;">
<button class="btn btn-success" type="button"
ng-click="goBottom()">
签订合同
</button>
前去签订
</button><i class="fa fa-back"></i>
<br/>
<p>
<button class="btn btn-success" type="button" ng-click="submitContract()">提交合同</button>
<button class="btn btn-success" type="button" ng-click="submitContract()">确认签署</button>
</p>
</table>
</div>
<div id="back" style="z-index: 9999; position: fixed ! important; right: 85%; top: 20%;">
<table width=""100% style="position: absolute; width:260px; right: 0px; top: 0px;">
<input name="" type="button" ui-sref="basic.compliance_to_perfect" style=" width:81px; height:39px; border:0; background:url(https://file.royalpay.com.au/open/2019/08/23/1566552615778_7vCo6vyDQ8Nf0uVLW9kI9jQSoIZKPK.png) no-repeat left top" />
</table>
</div>
<!--Title Start-->
<div>
<p><img class="col-sm-12" ng-src="https://file.royalpay.com.au/open/2019/08/23/1566528847626_ZRvrievyWEayhByRpkCDwV1P0k7FXt.png"></p>
<h1 style="opacity:0">1</h1>
<h1 style="opacity:0">1</h1>
<h1 style="opacity:0">1</h1>
<h1 style="opacity:0">1</h1>
<p><strong><strong>CORNWALL STODART</strong></strong></p>
<p>Level 10</p>
<p>114 William Street</p>
@ -57,6 +100,7 @@
<p><strong><strong>SERVICES AGREEMENT</strong></strong></p>
<p></p>
<p><strong><em><strong><em>Date</em></strong></em></strong></p>
<p ng-bind="aggregateFileInfo.start_date"></p>
<p><strong><em><strong><em></em></strong></em></strong></p>
<p></p>
<p>This Services Agreement is made on the day it is signed by all parties.</p>
@ -73,7 +117,7 @@
<td width="10%">
<p><strong><strong></strong></strong></p>
</td>
<td width="70%">
<td width="40%">
<p><strong><strong>The Supplier</strong></strong></p>
</td>
<td>
@ -89,7 +133,8 @@
<p>trading as RoyalPay</p>
</td>
<td>
<p></p>
<p ng-bind="aggregateFileInfo.company_name"></p>
<p ng-bind="aggregateFileInfo.acn_type"></p>
</td>
</tr>
<tr>
@ -100,7 +145,7 @@
<p>Level 11<br />15 William Street <br />Melbourne VIC3000</p>
</td>
<td>
<p></p>
<p>{{aggregateFileInfo.address}}<br />{{aggregateFileInfo.address_sub}}<br />{{aggregateFileInfo.suburb}} {{aggregateFileInfo.state}} {{aggregateFileInfo.postcode}}</p>
</td>
</tr>
</tbody>
@ -588,7 +633,7 @@
<p>Tunnel Show Pty Ltd trading as RoyalPay</p>
</td>
<td>
<p></p>
<p ng-bind="aggregateFileInfo.company_name"></p>
</td>
</tr>
<tr>
@ -599,7 +644,7 @@
<p>601 619 685</p>
</td>
<td>
<p></p>
<p ng-bind="aggregateFileInfo.acn"></p>
</td>
</tr>
<tr>
@ -611,7 +656,8 @@
<p>15 William Street<br />Melbourne Vic 3000</p>
</td>
<td>
<p></p>
<p>{{aggregateFileInfo.address}}</p>
<p>{{aggregateFileInfo.address_sub}}<br />{{aggregateFileInfo.suburb}} {{aggregateFileInfo.state}} {{aggregateFileInfo.postcode}}</p>
</td>
</tr>
<tr>
@ -619,10 +665,10 @@
<p><strong><strong>Contact Person:</strong></strong></p>
</td>
<td width="217">
<p>BD name</p>
<p ng-bind="aggregateFileInfo.bd_user_name"></p>
</td>
<td width="256">
<p></p>
<p ng-bind="aggregateFileInfo.contact_person"></p>
</td>
</tr>
<tr>
@ -644,7 +690,7 @@
<p></p>
</td>
<td width="256">
<p></p>
<p ng-bind="aggregateFileInfo.company_phone"></p>
</td>
</tr>
<tr>
@ -666,7 +712,7 @@
<p></p>
</td>
<td>
<p></p>
<p ng-bind="aggregateFileInfo.contact_email"></p>
</td>
</tr>
</tbody>
@ -700,7 +746,7 @@
<td>
<p><strong><strong>Description of the RoyalPay Cross-Border Services</strong></strong></p>
</td>
<td>
<td style="text-align:left">
<p>A software application and platform developed by the Supplier which provides Clients (who have web-based gateway APIs (being application programming interfaces) and point-of-sale payment processing and settlement capabilities in the Chinese currency) with a payment integration system, which:</p>
<p>(a)utilises the WeChat Pay payment technology that is owned by Tencent Holdings Limited (China) and that is licensed to the Supplier to facilitate third party payments in Australia;</p>
<p>(b)utilises the Alipay payment technology that is owned by Alipay.com Co., Ltd (China) and is licensed to the Supplier to facilitate third party payments in Australia;</p>
@ -724,15 +770,15 @@
<td>
<p><strong><strong>Fees</strong></strong></p>
</td>
<td>
<td style="text-align:left">
<p>An integration fee and ongoing maintenance fee for the RoyalPay Cross-Border Payment Services shall be AUD $0, plus GST.</p>
<p>In addition, the Supplier shall charge a Merchant Service Fee (<strong><strong>MSF</strong></strong>) to the Client, per transaction, which shall be calculated in a percentage amount. The calculation schedule is as follows:</p>
<p>&middot;the MSF is <strong><strong>1</strong>.00</strong>%</strong></strong>(GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (WeChat Pay)</p>
<p>&middot;the MSF is<strong><strong>1.</strong>0</strong>0</strong>%</strong></strong>(GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (AlipayOffline)</p>
<p>&middot;the MSF is<strong><strong>1.</strong>0</strong>0</strong>%</strong></strong>(GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (AlipayOnline)</p>
<p>&middot;the MSF is<strong><strong></strong>2.20</strong>%</strong></strong></strong>( GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (Bestpay)</p>
<p>&middot;the MSF is<strong><strong></strong>2.20</strong>%</strong></strong></strong>(GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (JDpay)</p>
<p>&middot;the MSF is<strong><strong></strong>1.50</strong>%</strong></strong></strong>(GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (CBBankPay)</p>
<p>&middot;the MSF is <strong><strong><strong>{{aggregateFileInfo.wechat_rate}}</strong>%</strong></strong>(GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (WeChat Pay)</p>
<p>&middot;the MSF is <strong><strong><strong>{{aggregateFileInfo.alipay_rate}}</strong>%</strong></strong>(GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (AlipayOffline)</p>
<p>&middot;the MSF is <strong><strong><strong>{{aggregateFileInfo.alipay_online_rate}}</strong>%</strong></strong>(GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (AlipayOnline)</p>
<p>&middot;the MSF is <strong><strong><strong>{{aggregateFileInfo.bestpay_rate}}</strong>%</strong></strong>( GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (Bestpay)</p>
<p>&middot;the MSF is <strong><strong><strong>{{aggregateFileInfo.jd_rate}}</strong>%</strong></strong>(GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (JDpay)</p>
<p>&middot;the MSF is <strong><strong><strong>{{aggregateFileInfo.cbbank_rate}}</strong>%</strong></strong>(GST exclusive) of payments made using the RoyalPay Cross-Border Payment Services; (CBBankPay)</p>
<p>&middot;the Supplier reserves the right to adjust the MSF rate mentioned above without prior consent from the Client. The Supplier will notify the Client of such change through the Suppliers website, portal and/or by email thirty (30) calendar days in advance before the MSF rate is adjusted;</p>
<p>&middot;the parties agree that, when calculating the MSF, the figure shall be rounded to two decimal places; and</p>
<p>&middot;the Client may elect to pass on the MSF to its customers or to bear the MSF itself, as per system configuration.</p>
@ -747,22 +793,24 @@
<td width="30%">
<p><strong><strong>Settlement Method</strong></strong></p>
</td>
<td width="70%">
<td width="70%" style="text-align:left">
<p>The Supplier shall, after deducting all agreed service charges payable to the Supplier from the corresponding transaction, remit the balance to the Client by ways of Electronic Fund Transfer to the Client's nominated bank account in the currency of Australian Dollars (AUD). If the Client changes the bank account for any reason, it shall promptly give a valid notification to the Supplier of such change seven (7) calendar days in advance, and shall provide any other information required by the Supplier. Any Loss arising from an un-notified change of bank account details shall be solely borne by the Client.</p>
<p>Particulars of the bank account nominated by the Client:</p>
<p>&middot;Name of the bank:</p>
<p>&middot;Country where the bank is located:</p>
<p>&middot;BSB:</p>
<p>&middot;Account number:</p>
<p>&middot;Account name:</p>
<ul>
<li>&middot;Name of the bank:{{aggregateFileInfo.bank}}</li>
<li>&middot;Country where the bank is located:Australia</li>
<li>&middot;BSB:{{aggregateFileInfo.bsb_no}}</li>
<li>&middot;Account number:{{aggregateFileInfo.account_no}}</li>
<li>&middot;Account name:{{aggregateFileInfo.account_name}}</li>
</ul>
</td>
</tr>
<tr>
<td>
<p><strong><strong>Settlement Terms</strong></strong></p>
</td>
<td>
<p>Settlement Cycle: <strong><strong>T</strong>+</strong>1</strong></strong>. Funds will be settled on or before<strong><strong>1</strong></strong>Business Day after the transaction has occurred.</p>
<td style="text-align:left">
<p>Settlement Cycle: <strong><strong>{{aggregateFileInfo.clean}}</strong></strong>. Funds will be settled on or before<strong><strong>{{aggregateFileInfo.clean_days}}</strong></strong>Business Day after the transaction has occurred.</p>
<p>For Settlement Cycle T+1: the provision of the above Settlement Cycle notwithstanding, the transaction occurred on Friday will be settled on the following Monday, and the transaction occurred on Saturday and Sunday will be settled on the following Tuesday.</p>
<p></p>
<p><u>Settlement Amount Calculation</u>:</p>
@ -782,7 +830,7 @@
<td width="30%">
<p><strong><strong>Refund Process</strong></strong></p>
</td>
<td width="70%">
<td width="70%" style="text-align:left">
<p>Any authorisation-only or non-delivery or disputes or defects or warranty issues etc., arising from the Client's services rendered to its customers may incur refunds in the normal course of business after a transaction has been completed, which shall be dealt with in accordance with the following procedures:</p>
<p>&middot;the Client shall be solely responsible for investigating and initiating refunds to its customers;</p>
<p>&middot;if the related refund amount has been settled to the Client by the Supplier, the Client shall be solely responsible for processing the refund amount as per the Client's refund policy with its customers;</p>
@ -1019,7 +1067,9 @@
<p><strong><strong>Signature of Director/Secretary:</strong></strong></p>
</td>
<td width="38%">
<p></p>
<p><img class="col-sm-12" ng-src="https://file.royalpay.com.au/open/2019/08/23/1566540856776_hjRNzXzTMDmQb3y6GT2pEJtVsh08Tc.png" oncontextmenu="return false;" onselectstart="return false;"></p>
</td>
<td width="39%">
<p></p>
@ -1052,7 +1102,7 @@
<p><strong><strong>Date:</strong></strong></p>
</td>
<td>
<p></p>
<p ng-bind="aggregateFileInfo.start_date"></p>
</td>
<td>
<p></p>
@ -1069,7 +1119,7 @@
<tbody>
<tr>
<td colspan="3" width="100%">
<p><span>Client Name/ACN:</span><p></p></p>
<p><span>Client Name/ACN:</span><p ng-bind="aggregateFileInfo.company_name_acn"></p></p>
</td>
</tr>
<tr>
@ -1077,7 +1127,7 @@
<p><strong><strong>Signature of Director/Secretary:</strong></strong></p>
</td>
<td width="38%">
<p></p>
<canvas id="myCanvas" width="200" height="100"></canvas>
</td>
<td width="38%">
<p></p>
@ -1088,7 +1138,7 @@
<p><strong><strong>Print Full Name:</strong></strong></p>
</td>
<td>
<p></p>
<input ng-bind="aggregateFileInfo.full_name" style="width:100%"/>
</td>
<td>
<p></p>
@ -1109,7 +1159,7 @@
<p><strong><strong>Date:</strong></strong></p>
</td>
<td>
<p></p>
<p ng-bind="aggregateFileInfo.start_date"></p>
</td>
<td>
<p></p>
@ -1126,3 +1176,25 @@
</section>
</div>
<div class="mSign_signMark_box">
<div class="mSign_signMark_write_box">
<div id="mSign_signMark_signature_pad" class="mSign_signMark_body_box">
<div class="mSign_signMark_body">
<span class="mSign_signMark_clear_out">
<img src="../images/mCommon_basicIcon_deleteRed.png">
</span>
<p>手写区</p>
<canvas id="mSign_signMark_canvas"></canvas>
</div>
</div>
</div>
</div>
<!--手写区 end-->
<!--底部按钮-->
<div class="mSign_signMark_footer">
<span id="mSign_signMark_clear_out" class="mSign_signMark_footer_cancle">清除</span>
<span id="mSign_signMark_submit" class="mSign_signMark_footer_sure">确定</span>
</div>
<!--底部按钮 end-->

Loading…
Cancel
Save