Merge pull request #6255 from turbo124/v5-develop

FIxes for Hosted Channel
This commit is contained in:
David Bomba 2021-07-13 18:53:00 +10:00 committed by GitHub
commit 313dbd4da3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 13432 additions and 38 deletions

View File

@ -45,14 +45,15 @@ class ClientMap
26 => 'client.vat_number', 26 => 'client.vat_number',
27 => 'client.id_number', 27 => 'client.id_number',
28 => 'client.public_notes', 28 => 'client.public_notes',
29 => 'contact.first_name', 29 => 'client.phone',
30 => 'contact.last_name', 30 => 'contact.first_name',
31 => 'contact.email', 31 => 'contact.last_name',
32 => 'contact.phone', 32 => 'contact.email',
33 => 'contact.custom_value1', 33 => 'contact.phone',
34 => 'contact.custom_value2', 34 => 'contact.custom_value1',
35 => 'contact.custom_value3', 35 => 'contact.custom_value2',
36 => 'contact.custom_value4', 36 => 'contact.custom_value3',
37 => 'contact.custom_value4',
]; ];
} }
@ -88,14 +89,15 @@ class ClientMap
26 => 'texts.vat_number', 26 => 'texts.vat_number',
27 => 'texts.id_number', 27 => 'texts.id_number',
28 => 'texts.public_notes', 28 => 'texts.public_notes',
29 => 'texts.first_name', 29 => 'texts.client_phone',
30 => 'texts.last_name', 30 => 'texts.first_name',
31 => 'texts.email', 31 => 'texts.last_name',
32 => 'texts.phone', 32 => 'texts.email',
33 => 'texts.custom_value', 33 => 'texts.phone',
34 => 'texts.custom_value', 34 => 'texts.custom_value',
35 => 'texts.custom_value', 35 => 'texts.custom_value',
36 => 'texts.custom_value', 36 => 'texts.custom_value',
37 => 'texts.custom_value',
]; ];
} }
} }

View File

@ -22,7 +22,7 @@ class ExpenseTransformer extends BaseTransformer {
'currency_id' => $this->getCurrencyByCode( $data, 'expense.currency_id' ), 'currency_id' => $this->getCurrencyByCode( $data, 'expense.currency_id' ),
'vendor_id' => isset( $data['expense.vendor'] ) ? $this->getVendorId( $data['expense.vendor'] ) : null, 'vendor_id' => isset( $data['expense.vendor'] ) ? $this->getVendorId( $data['expense.vendor'] ) : null,
'client_id' => isset( $data['expense.client'] ) ? $this->getClientId( $data['expense.client'] ) : null, 'client_id' => isset( $data['expense.client'] ) ? $this->getClientId( $data['expense.client'] ) : null,
'expense_date' => isset( $data['expense.date'] ) ? date( 'Y-m-d', strtotime( $data['expense.date'] ) ) : null, 'date' => isset( $data['expense.date'] ) ? date( 'Y-m-d', strtotime( $data['expense.date'] ) ) : null,
'public_notes' => $this->getString( $data, 'expense.public_notes' ), 'public_notes' => $this->getString( $data, 'expense.public_notes' ),
'private_notes' => $this->getString( $data, 'expense.private_notes' ), 'private_notes' => $this->getString( $data, 'expense.private_notes' ),
'expense_category_id' => isset( $data['expense.category'] ) ? $this->getExpenseCategoryId( $data['expense.category'] ) : null, 'expense_category_id' => isset( $data['expense.category'] ) ? $this->getExpenseCategoryId( $data['expense.category'] ) : null,

View File

@ -192,6 +192,8 @@ class Import implements ShouldQueue
nlog("Starting Migration"); nlog("Starting Migration");
nlog($this->user->email); nlog($this->user->email);
info("Starting Migration");
info($this->user->email);
auth()->login($this->user, false); auth()->login($this->user, false);
auth()->user()->setCompany($this->company); auth()->user()->setCompany($this->company);
@ -1239,6 +1241,7 @@ class Import implements ShouldQueue
$try_quote = false; $try_quote = false;
$exception = false; $exception = false;
$entity = false;
try{ try{
$invoice_id = $this->transformId('invoices', $resource['invoice_id']); $invoice_id = $this->transformId('invoices', $resource['invoice_id']);

View File

@ -59,7 +59,7 @@ class MultiDB
$current_db = config('database.default'); $current_db = config('database.default');
foreach (self::$dbs as $db) { foreach (self::$dbs as $db) {
if (Company::on($db)->whereSubdomain($subdomain)->get()->count() >= 1) { if (Company::on($db)->whereSubdomain($subdomain)->exists()) {
self::setDb($current_db); self::setDb($current_db);
return false; return false;
} }
@ -73,12 +73,12 @@ class MultiDB
public static function checkUserEmailExists($email) : bool public static function checkUserEmailExists($email) : bool
{ {
if (! config('ninja.db.multi_db_enabled')) if (! config('ninja.db.multi_db_enabled'))
return User::where(['email' => $email])->get()->count() >= 1 ?? false; // true >= 1 emails found / false -> == emails found return User::where(['email' => $email])->exists(); // true >= 1 emails found / false -> == emails found
$current_db = config('database.default'); $current_db = config('database.default');
foreach (self::$dbs as $db) { foreach (self::$dbs as $db) {
if (User::on($db)->where(['email' => $email])->get()->count() >= 1) { // if user already exists, validation will fail if (User::on($db)->where(['email' => $email])->exists()) { // if user already exists, validation will fail
self::setDb($current_db); self::setDb($current_db);
return true; return true;
} }
@ -196,7 +196,7 @@ class MultiDB
//multi-db active //multi-db active
foreach (self::$dbs as $db) { foreach (self::$dbs as $db) {
if (User::on($db)->where('email', $email)->count() >= 1){ if (User::on($db)->where('email', $email)->exists()){
self::setDb($db); self::setDb($db);
return true; return true;
} }
@ -214,7 +214,7 @@ class MultiDB
//multi-db active //multi-db active
foreach (self::$dbs as $db) { foreach (self::$dbs as $db) {
if (Document::on($db)->where('hash', $hash)->count() >= 1){ if (Document::on($db)->where('hash', $hash)->exists()){
self::setDb($db); self::setDb($db);
return true; return true;
} }

View File

@ -62,7 +62,7 @@ class SupportMessageSent extends Mailable
else else
$subject = "Self Host {$user->present()->name} - [{$plan} - {$company->db}]"; $subject = "Self Host {$user->present()->name} - [{$plan} - {$company->db}]";
return $this->from(config('mail.from.address'), config('mail.from.name')) return $this->from(config('mail.from.address'), $user->present()->name())
->replyTo($user->email, $user->present()->name()) ->replyTo($user->email, $user->present()->name())
->subject($subject) ->subject($subject)
->view('email.support.message', [ ->view('email.support.message', [

View File

@ -14,6 +14,7 @@ namespace App\PaymentDrivers\WePay;
use App\Exceptions\PaymentFailed; use App\Exceptions\PaymentFailed;
use App\Jobs\Mail\PaymentFailureMailer; use App\Jobs\Mail\PaymentFailureMailer;
use App\Jobs\Util\SystemLogger; use App\Jobs\Util\SystemLogger;
use App\Models\GatewayType;
use App\Models\PaymentType; use App\Models\PaymentType;
use App\Models\SystemLog; use App\Models\SystemLog;

View File

@ -173,9 +173,15 @@ class HtmlEngine
$data['$balance_due'] = ['value' => Number::formatMoney($this->entity->partial, $this->client) ?: ' ', 'label' => ctrans('texts.balance_due')]; $data['$balance_due'] = ['value' => Number::formatMoney($this->entity->partial, $this->client) ?: ' ', 'label' => ctrans('texts.balance_due')];
$data['$balance_due_raw'] = ['value' => $this->entity->partial, 'label' => ctrans('texts.balance_due')]; $data['$balance_due_raw'] = ['value' => $this->entity->partial, 'label' => ctrans('texts.balance_due')];
} else { } else {
if($this->entity->status_id == 1){
$data['$balance_due'] = ['value' => Number::formatMoney($this->entity->amount, $this->client) ?: ' ', 'label' => ctrans('texts.balance_due')];
$data['$balance_due_raw'] = ['value' => $this->entity->amount, 'label' => ctrans('texts.balance_due')];
}
else{
$data['$balance_due'] = ['value' => Number::formatMoney($this->entity->balance, $this->client) ?: ' ', 'label' => ctrans('texts.balance_due')]; $data['$balance_due'] = ['value' => Number::formatMoney($this->entity->balance, $this->client) ?: ' ', 'label' => ctrans('texts.balance_due')];
$data['$balance_due_raw'] = ['value' => $this->entity->balance, 'label' => ctrans('texts.balance_due')]; $data['$balance_due_raw'] = ['value' => $this->entity->balance, 'label' => ctrans('texts.balance_due')];
}
} }
$data['$quote.balance_due'] = &$data['$balance_due']; $data['$quote.balance_due'] = &$data['$balance_due'];

View File

@ -1957,3 +1957,5 @@ INSERT INTO `migrations` VALUES (78,'2021_05_30_100933_make_documents_assigned_u
INSERT INTO `migrations` VALUES (79,'2021_06_10_221012_add_ninja_portal_column_to_accounts_table',2); INSERT INTO `migrations` VALUES (79,'2021_06_10_221012_add_ninja_portal_column_to_accounts_table',2);
INSERT INTO `migrations` VALUES (80,'2021_06_24_095942_payments_table_currency_nullable',2); INSERT INTO `migrations` VALUES (80,'2021_06_24_095942_payments_table_currency_nullable',2);
INSERT INTO `migrations` VALUES (81,'2021_06_24_115919_update_designs',2); INSERT INTO `migrations` VALUES (81,'2021_06_24_115919_update_designs',2);
INSERT INTO `migrations` VALUES (82,'2021_07_08_115919_update_designs',3);
INSERT INTO `migrations` VALUES (83,'2021_07_10_085821_activate_payfast_payment_driver',3);

13404
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,2 @@
/*! For license information please see authorize-authorize-card.js.LICENSE.txt */ /*! For license information please see authorize-authorize-card.js.LICENSE.txt */
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=1)}({1:function(e,t,n){e.exports=n("6vDv")},"6vDv":function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}new(function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.publicKey=t,this.loginId=n,this.cardHolderName=document.getElementById("cardholder_name"),this.cardButton=document.getElementById("card_button")}var t,r,a;return t=e,(r=[{key:"handleAuthorization",value:function(){var e=$("#my-card"),t={};t.clientKey=this.publicKey,t.apiLoginID=this.loginId;var n={};n.cardNumber=e.CardJs("cardNumber"),n.month=e.CardJs("expiryMonth"),n.year=e.CardJs("expiryYear"),n.cardCode=document.getElementById("cvv").value;var r={};return r.authData=t,r.cardData=n,document.getElementById("card_button").disabled=!0,document.querySelector("#card_button > svg").classList.remove("hidden"),document.querySelector("#card_button > span").classList.add("hidden"),Accept.dispatchData(r,this.responseHandler),!1}},{key:"responseHandler",value:function(e){return"Error"===e.messages.resultCode?($("#errors").show().html("<p>"+e.messages.message[0].code+": "+e.messages.message[0].text+"</p>"),document.getElementById("card_button").disabled=!1,document.querySelector("#card_button > svg").classList.add("hidden"),document.querySelector("#card_button > span").classList.remove("hidden")):"Ok"===e.messages.resultCode&&(document.getElementById("dataDescriptor").value=e.opaqueData.dataDescriptor,document.getElementById("dataValue").value=e.opaqueData.dataValue,document.getElementById("server_response").submit()),!1}},{key:"handle",value:function(){var e=this;return this.cardButton.addEventListener("click",(function(){e.cardButton.disabled=!e.cardButton.disabled,e.handleAuthorization()})),this}}])&&n(t.prototype,r),a&&n(t,a),e}())(document.querySelector('meta[name="authorize-public-key"]').content,document.querySelector('meta[name="authorize-login-id"]').content).handle()}}); !function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=1)}({1:function(e,t,n){e.exports=n("6vDv")},"6vDv":function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}new(function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.publicKey=t,this.loginId=n,this.cardHolderName=document.getElementById("cardholder_name"),this.cardButton=document.getElementById("card_button")}var t,r,a;return t=e,(r=[{key:"handleAuthorization",value:function(){var e=$("#my-card"),t={};t.clientKey=this.publicKey,t.apiLoginID=this.loginId;var n={};n.cardNumber=e.CardJs("cardNumber").replace(/[^\d]/g,""),n.month=e.CardJs("expiryMonth"),n.year=e.CardJs("expiryYear"),n.cardCode=document.getElementById("cvv").value;var r={};return r.authData=t,r.cardData=n,document.getElementById("card_button").disabled=!0,document.querySelector("#card_button > svg").classList.remove("hidden"),document.querySelector("#card_button > span").classList.add("hidden"),Accept.dispatchData(r,this.responseHandler),!1}},{key:"responseHandler",value:function(e){return"Error"===e.messages.resultCode?($("#errors").show().html("<p>"+e.messages.message[0].code+": "+e.messages.message[0].text+"</p>"),document.getElementById("card_button").disabled=!1,document.querySelector("#card_button > svg").classList.add("hidden"),document.querySelector("#card_button > span").classList.remove("hidden")):"Ok"===e.messages.resultCode&&(document.getElementById("dataDescriptor").value=e.opaqueData.dataDescriptor,document.getElementById("dataValue").value=e.opaqueData.dataValue,document.getElementById("server_response").submit()),!1}},{key:"handle",value:function(){var e=this;return this.cardButton.addEventListener("click",(function(){e.cardButton.disabled=!e.cardButton.disabled,e.handleAuthorization()})),this}}])&&n(t.prototype,r),a&&n(t,a),e}())(document.querySelector('meta[name="authorize-public-key"]').content,document.querySelector('meta[name="authorize-login-id"]').content).handle()}});

View File

@ -4,7 +4,7 @@
"/js/clients/invoices/action-selectors.js": "/js/clients/invoices/action-selectors.js?id=a09bb529b8e1826f13b4", "/js/clients/invoices/action-selectors.js": "/js/clients/invoices/action-selectors.js?id=a09bb529b8e1826f13b4",
"/js/clients/invoices/payment.js": "/js/clients/invoices/payment.js?id=8ce8955ba775ea5f47d1", "/js/clients/invoices/payment.js": "/js/clients/invoices/payment.js?id=8ce8955ba775ea5f47d1",
"/js/clients/linkify-urls.js": "/js/clients/linkify-urls.js?id=0dc8c34010d09195d2f7", "/js/clients/linkify-urls.js": "/js/clients/linkify-urls.js?id=0dc8c34010d09195d2f7",
"/js/clients/payment_methods/authorize-authorize-card.js": "/js/clients/payment_methods/authorize-authorize-card.js?id=206d7de4ac97612980ff", "/js/clients/payment_methods/authorize-authorize-card.js": "/js/clients/payment_methods/authorize-authorize-card.js?id=c4cae3b736c9b186deec",
"/js/clients/payment_methods/wepay-bank-account.js": "/js/clients/payment_methods/wepay-bank-account.js?id=8fea0be371d430064a89", "/js/clients/payment_methods/wepay-bank-account.js": "/js/clients/payment_methods/wepay-bank-account.js?id=8fea0be371d430064a89",
"/js/clients/payments/authorize-credit-card-payment.js": "/js/clients/payments/authorize-credit-card-payment.js?id=a376eff2227da398b0ba", "/js/clients/payments/authorize-credit-card-payment.js": "/js/clients/payments/authorize-credit-card-payment.js?id=a376eff2227da398b0ba",
"/js/clients/payments/braintree-credit-card.js": "/js/clients/payments/braintree-credit-card.js?id=81957e7cb1cb49f23b90", "/js/clients/payments/braintree-credit-card.js": "/js/clients/payments/braintree-credit-card.js?id=81957e7cb1cb49f23b90",

View File

@ -26,7 +26,7 @@ class AuthorizeAuthorizeCard {
authData.apiLoginID = this.loginId; authData.apiLoginID = this.loginId;
var cardData = {}; var cardData = {};
cardData.cardNumber = myCard.CardJs('cardNumber'); cardData.cardNumber = myCard.CardJs('cardNumber').replace(/[^\d]/g, '');
cardData.month = myCard.CardJs('expiryMonth'); cardData.month = myCard.CardJs('expiryMonth');
cardData.year = myCard.CardJs('expiryYear');; cardData.year = myCard.CardJs('expiryYear');;
cardData.cardCode = document.getElementById("cvv").value; cardData.cardCode = document.getElementById("cvv").value;