diff --git a/app/Console/Commands/ChargeRenewalInvoices.php b/app/Console/Commands/ChargeRenewalInvoices.php index 6f1de0a95d7a..3cd32a185881 100644 --- a/app/Console/Commands/ChargeRenewalInvoices.php +++ b/app/Console/Commands/ChargeRenewalInvoices.php @@ -67,8 +67,13 @@ class ChargeRenewalInvoices extends Command foreach ($invoices as $invoice) { - // check if account has switched to free since the invoice was created + // check if account has switched to free since the invoice was created $account = Account::find($invoice->client->public_id); + + if ( ! $account) { + continue; + } + $company = $account->company; if ( ! $company->plan || $company->plan == PLAN_FREE) { continue; diff --git a/app/Providers/ComposerServiceProvider.php b/app/Providers/ComposerServiceProvider.php index 0bd4f0b57c2e..40f1a12219ff 100644 --- a/app/Providers/ComposerServiceProvider.php +++ b/app/Providers/ComposerServiceProvider.php @@ -17,6 +17,11 @@ class ComposerServiceProvider extends ServiceProvider ['accounts.details', 'clients.edit', 'payments.edit', 'invoices.edit', 'accounts.localization'], 'App\Http\ViewComposers\TranslationComposer' ); + + view()->composer( + ['header', 'tasks.edit'], + 'App\Http\ViewComposers\AppLanguageComposer' + ); } /** @@ -28,4 +33,4 @@ class ComposerServiceProvider extends ServiceProvider { } -} \ No newline at end of file +} diff --git a/composer.json b/composer.json index d7870aee98ad..1f0b868f4d03 100644 --- a/composer.json +++ b/composer.json @@ -13,13 +13,17 @@ } ], "require": { + "php": ">=5.5.9", + "ext-mcrypt": "*", + "ext-gmp": "*", + "ext-gd": "*", "turbo124/laravel-push-notification": "dev-laravel5", "omnipay/mollie": "dev-master#22956c1a62a9662afa5f5d119723b413770ac525", "omnipay/2checkout": "dev-master#e9c079c2dde0d7ba461903b3b7bd5caf6dee1248", "omnipay/gocardless": "dev-master", "omnipay/stripe": "dev-master", "doctrine/dbal": "2.5.x", - "laravelcollective/bus": "5.2.*", + "laravelcollective/bus": "5.2.*", "laravel/framework": "5.2.*", "laravelcollective/html": "5.2.*", "symfony/css-selector": "~3.0", diff --git a/composer.lock b/composer.lock index d91a366996a2..629689af5418 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "96184bcd2d0fb39c87a98b223efc5c1c", - "content-hash": "361daf07da39682d74bdc2bfead14fb9", + "hash": "5221e980b2241bf56d9393aac82dfa1f", + "content-hash": "da4f765b1dd362a4f4690cff06e20afc", "packages": [ { "name": "agmscode/omnipay-agms", @@ -323,20 +323,20 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.18.27", + "version": "3.18.31", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "8cc3d3231d9fb9da528205f3b905097a37ac3df3" + "reference": "dad0b7db5fa8f3c7a3805efb2a1e86a50f11fe8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/8cc3d3231d9fb9da528205f3b905097a37ac3df3", - "reference": "8cc3d3231d9fb9da528205f3b905097a37ac3df3", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/dad0b7db5fa8f3c7a3805efb2a1e86a50f11fe8b", + "reference": "dad0b7db5fa8f3c7a3805efb2a1e86a50f11fe8b", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "~5.3|~6.0.1|~6.1", + "guzzlehttp/guzzle": "^5.3.1|^6.2.1", "guzzlehttp/promises": "~1.0", "guzzlehttp/psr7": "~1.3.1", "mtdowling/jmespath.php": "~2.2", @@ -399,7 +399,7 @@ "s3", "sdk" ], - "time": "2016-07-07 23:09:15" + "time": "2016-07-19 17:25:45" }, { "name": "barracudanetworks/archivestream-php", @@ -443,16 +443,16 @@ }, { "name": "braintree/braintree_php", - "version": "3.14.0", + "version": "3.15.0", "source": { "type": "git", "url": "https://github.com/braintree/braintree_php.git", - "reference": "0c13b6235bc99c287d18e8cfc02359e66abaa3fb" + "reference": "1026b6cca5f2dd5dfdd5447843b920cc74d2b8ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/braintree/braintree_php/zipball/0c13b6235bc99c287d18e8cfc02359e66abaa3fb", - "reference": "0c13b6235bc99c287d18e8cfc02359e66abaa3fb", + "url": "https://api.github.com/repos/braintree/braintree_php/zipball/1026b6cca5f2dd5dfdd5447843b920cc74d2b8ca", + "reference": "1026b6cca5f2dd5dfdd5447843b920cc74d2b8ca", "shasum": "" }, "require": { @@ -486,7 +486,7 @@ } ], "description": "Braintree PHP Client Library", - "time": "2016-06-23 15:36:49" + "time": "2016-07-18 21:55:50" }, { "name": "cardgate/omnipay-cardgate", @@ -1745,16 +1745,16 @@ }, { "name": "ezyang/htmlpurifier", - "version": "v4.7.0", + "version": "v4.8.0", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "ae1828d955112356f7677c465f94f7deb7d27a40" + "reference": "d0c392f77d2f2a3dcf7fcb79e2a1e2b8804e75b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/ae1828d955112356f7677c465f94f7deb7d27a40", - "reference": "ae1828d955112356f7677c465f94f7deb7d27a40", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/d0c392f77d2f2a3dcf7fcb79e2a1e2b8804e75b2", + "reference": "d0c392f77d2f2a3dcf7fcb79e2a1e2b8804e75b2", "shasum": "" }, "require": { @@ -1785,7 +1785,7 @@ "keywords": [ "html" ], - "time": "2015-08-05 01:03:42" + "time": "2016-07-16 12:58:58" }, { "name": "fotografde/omnipay-checkoutcom", @@ -2048,27 +2048,27 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.2.0", + "version": "6.2.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "d094e337976dff9d8e2424e8485872194e768662" + "reference": "3f808fba627f2c5b69e2501217bf31af349c1427" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d094e337976dff9d8e2424e8485872194e768662", - "reference": "d094e337976dff9d8e2424e8485872194e768662", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/3f808fba627f2c5b69e2501217bf31af349c1427", + "reference": "3f808fba627f2c5b69e2501217bf31af349c1427", "shasum": "" }, "require": { - "guzzlehttp/promises": "~1.0", - "guzzlehttp/psr7": "~1.1", - "php": ">=5.5.0" + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.3.1", + "php": ">=5.5" }, "require-dev": { "ext-curl": "*", - "phpunit/phpunit": "~4.0", - "psr/log": "~1.0" + "phpunit/phpunit": "^4.0", + "psr/log": "^1.0" }, "type": "library", "extra": { @@ -2106,7 +2106,7 @@ "rest", "web service" ], - "time": "2016-03-21 20:02:09" + "time": "2016-07-15 17:22:37" }, { "name": "guzzlehttp/promises", @@ -2765,16 +2765,16 @@ }, { "name": "laravel/framework", - "version": "v5.2.39", + "version": "5.2.41", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "c2a77050269b4e03bd9a735a9f24e573a7598b8a" + "reference": "29ba2e310cfeb42ab6545bcd81ff4c2ec1f6b5c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/c2a77050269b4e03bd9a735a9f24e573a7598b8a", - "reference": "c2a77050269b4e03bd9a735a9f24e573a7598b8a", + "url": "https://api.github.com/repos/laravel/framework/zipball/29ba2e310cfeb42ab6545bcd81ff4c2ec1f6b5c2", + "reference": "29ba2e310cfeb42ab6545bcd81ff4c2ec1f6b5c2", "shasum": "" }, "require": { @@ -2831,7 +2831,8 @@ "illuminate/support": "self.version", "illuminate/translation": "self.version", "illuminate/validation": "self.version", - "illuminate/view": "self.version" + "illuminate/view": "self.version", + "tightenco/collect": "self.version" }, "require-dev": { "aws/aws-sdk-php": "~3.0", @@ -2890,7 +2891,7 @@ "framework", "laravel" ], - "time": "2016-06-17 19:25:12" + "time": "2016-07-20 13:13:06" }, { "name": "laravel/socialite", @@ -3047,16 +3048,16 @@ }, { "name": "league/flysystem", - "version": "1.0.24", + "version": "1.0.25", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "9aca859a303fdca30370f42b8c611d9cf0dedf4b" + "reference": "a76afa4035931be0c78ca8efc6abf3902362f437" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9aca859a303fdca30370f42b8c611d9cf0dedf4b", - "reference": "9aca859a303fdca30370f42b8c611d9cf0dedf4b", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a76afa4035931be0c78ca8efc6abf3902362f437", + "reference": "a76afa4035931be0c78ca8efc6abf3902362f437", "shasum": "" }, "require": { @@ -3069,7 +3070,7 @@ "ext-fileinfo": "*", "mockery/mockery": "~0.9", "phpspec/phpspec": "^2.2", - "phpunit/phpunit": "~4.8 || ~5.0" + "phpunit/phpunit": "~4.8" }, "suggest": { "ext-fileinfo": "Required for MimeType", @@ -3126,7 +3127,7 @@ "sftp", "storage" ], - "time": "2016-06-03 19:11:39" + "time": "2016-07-18 12:22:57" }, { "name": "league/flysystem-aws-s3-v3", @@ -3454,16 +3455,16 @@ }, { "name": "maatwebsite/excel", - "version": "v2.1.2", + "version": "v2.1.3", "source": { "type": "git", "url": "https://github.com/Maatwebsite/Laravel-Excel.git", - "reference": "aae17dbd6f39606cf8f588359a7a79438ab5aa53" + "reference": "c6ab521e8a5f2a4acc83cb575c4a09733a5e17c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Maatwebsite/Laravel-Excel/zipball/aae17dbd6f39606cf8f588359a7a79438ab5aa53", - "reference": "aae17dbd6f39606cf8f588359a7a79438ab5aa53", + "url": "https://api.github.com/repos/Maatwebsite/Laravel-Excel/zipball/c6ab521e8a5f2a4acc83cb575c4a09733a5e17c9", + "reference": "c6ab521e8a5f2a4acc83cb575c4a09733a5e17c9", "shasum": "" }, "require": { @@ -3491,8 +3492,7 @@ "type": "library", "autoload": { "classmap": [ - "src/Maatwebsite/Excel", - "tests/TestCase.php" + "src/Maatwebsite/Excel" ], "psr-0": { "Maatwebsite\\Excel\\": "src/" @@ -3518,7 +3518,7 @@ "import", "laravel" ], - "time": "2016-03-01 17:45:44" + "time": "2016-07-09 09:40:10" }, { "name": "meebio/omnipay-creditcall", @@ -4054,16 +4054,16 @@ }, { "name": "omnipay/authorizenet", - "version": "2.4.1", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/thephpleague/omnipay-authorizenet.git", - "reference": "439bb6e649a4c57cddc24d6d704301a8ee5c3c3f" + "reference": "6e1990f5d22f0f8e4dfe363b89c9776d0d803c34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-authorizenet/zipball/439bb6e649a4c57cddc24d6d704301a8ee5c3c3f", - "reference": "439bb6e649a4c57cddc24d6d704301a8ee5c3c3f", + "url": "https://api.github.com/repos/thephpleague/omnipay-authorizenet/zipball/6e1990f5d22f0f8e4dfe363b89c9776d0d803c34", + "reference": "6e1990f5d22f0f8e4dfe363b89c9776d0d803c34", "shasum": "" }, "require": { @@ -4109,7 +4109,7 @@ "pay", "payment" ], - "time": "2016-06-16 10:06:24" + "time": "2016-07-16 21:00:00" }, { "name": "omnipay/bitpay", @@ -8734,16 +8734,16 @@ }, { "name": "codeception/c3", - "version": "2.0.6", + "version": "2.0.7", "source": { "type": "git", "url": "https://github.com/Codeception/c3.git", - "reference": "dc4d39b36d585c2eda58129407e78855ea67b1ca" + "reference": "51eec2c3a8e093deb621f58004f0393dc0871983" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/c3/zipball/dc4d39b36d585c2eda58129407e78855ea67b1ca", - "reference": "dc4d39b36d585c2eda58129407e78855ea67b1ca", + "url": "https://api.github.com/repos/Codeception/c3/zipball/51eec2c3a8e093deb621f58004f0393dc0871983", + "reference": "51eec2c3a8e093deb621f58004f0393dc0871983", "shasum": "" }, "require": { @@ -8780,7 +8780,7 @@ "code coverage", "codecoverage" ], - "time": "2016-02-09 23:31:08" + "time": "2016-06-27 16:49:12" }, { "name": "codeception/codeception", @@ -9262,16 +9262,16 @@ }, { "name": "phpspec/phpspec", - "version": "2.5.0", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/phpspec/phpspec.git", - "reference": "385ecb015e97c13818074f1517928b24d4a26067" + "reference": "531d00ee76e9ae98279ed4dbb2419e5e0f7fb82d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/phpspec/zipball/385ecb015e97c13818074f1517928b24d4a26067", - "reference": "385ecb015e97c13818074f1517928b24d4a26067", + "url": "https://api.github.com/repos/phpspec/phpspec/zipball/531d00ee76e9ae98279ed4dbb2419e5e0f7fb82d", + "reference": "531d00ee76e9ae98279ed4dbb2419e5e0f7fb82d", "shasum": "" }, "require": { @@ -9289,7 +9289,7 @@ }, "require-dev": { "behat/behat": "^3.0.11", - "bossa/phpspec2-expect": "~1.0", + "ciaranmcnulty/versionbasedtestskipper": "^0.2.1", "phpunit/phpunit": "~4.4", "symfony/filesystem": "~2.1|~3.0" }, @@ -9302,7 +9302,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "2.5.x-dev" } }, "autoload": { @@ -9336,7 +9336,7 @@ "testing", "tests" ], - "time": "2016-03-20 20:34:32" + "time": "2016-07-16 08:34:07" }, { "name": "phpspec/prophecy", @@ -9645,16 +9645,16 @@ }, { "name": "phpunit/phpunit", - "version": "4.8.26", + "version": "4.8.27", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "fc1d8cd5b5de11625979125c5639347896ac2c74" + "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fc1d8cd5b5de11625979125c5639347896ac2c74", - "reference": "fc1d8cd5b5de11625979125c5639347896ac2c74", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c062dddcb68e44b563f66ee319ddae2b5a322a90", + "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90", "shasum": "" }, "require": { @@ -9713,7 +9713,7 @@ "testing", "xunit" ], - "time": "2016-05-17 03:09:28" + "time": "2016-07-21 06:48:14" }, { "name": "phpunit/phpunit-mock-objects", @@ -10444,6 +10444,11 @@ }, "prefer-stable": false, "prefer-lowest": false, - "platform": [], + "platform": { + "php": ">=5.5.9", + "ext-mcrypt": "*", + "ext-gmp": "*", + "ext-gd": "*" + }, "platform-dev": [] } diff --git a/public/built.js b/public/built.js index 313d756a9f89..eae551d8d9ff 100644 --- a/public/built.js +++ b/public/built.js @@ -30545,12 +30545,12 @@ function calculateAmounts(invoice) { invoice.has_product_key = true; } - if (item.tax_rate1 && parseFloat(item.tax_rate1)) { + if (item.tax_name1) { taxRate1 = parseFloat(item.tax_rate1); taxName1 = item.tax_name1; } - if (item.tax_rate2 && parseFloat(item.tax_rate2)) { + if (item.tax_name2) { taxRate2 = parseFloat(item.tax_rate2); taxName2 = item.tax_name2; } @@ -30566,7 +30566,7 @@ function calculateAmounts(invoice) { } var taxAmount1 = roundToTwo(lineTotal * taxRate1 / 100); - if (taxAmount1) { + if (taxName1) { var key = taxName1 + taxRate1; if (taxes.hasOwnProperty(key)) { taxes[key].amount += taxAmount1; @@ -30576,7 +30576,7 @@ function calculateAmounts(invoice) { } var taxAmount2 = roundToTwo(lineTotal * taxRate2 / 100); - if (taxAmount2) { + if (taxName2) { var key = taxName2 + taxRate2; if (taxes.hasOwnProperty(key)) { taxes[key].amount += taxAmount2; @@ -31542,11 +31542,11 @@ NINJA.subtotals = function(invoice, hideBalance) } } - if (invoice.tax_amount1) { + if (invoice.tax_name1) { var taxStr = invoice.tax_name1 + ' ' + (invoice.tax_rate1*1).toString() + '%'; data.push([{text: taxStr, style: ['subtotalsLabel', 'tax1Label']}, {text: formatMoneyInvoice(invoice.tax_amount1, invoice), style: ['subtotals', 'tax1']}]); } - if (invoice.tax_amount2) { + if (invoice.tax_name2) { var taxStr = invoice.tax_name2 + ' ' + (invoice.tax_rate2*1).toString() + '%'; data.push([{text: taxStr, style: ['subtotalsLabel', 'tax2Label']}, {text: formatMoneyInvoice(invoice.tax_amount2, invoice), style: ['subtotals', 'tax2']}]); } diff --git a/public/js/pdf.pdfmake.js b/public/js/pdf.pdfmake.js index 4da7a5d56675..1af1cf482560 100644 --- a/public/js/pdf.pdfmake.js +++ b/public/js/pdf.pdfmake.js @@ -502,11 +502,11 @@ NINJA.subtotals = function(invoice, hideBalance) } } - if (invoice.tax_amount1) { + if (invoice.tax_name1) { var taxStr = invoice.tax_name1 + ' ' + (invoice.tax_rate1*1).toString() + '%'; data.push([{text: taxStr, style: ['subtotalsLabel', 'tax1Label']}, {text: formatMoneyInvoice(invoice.tax_amount1, invoice), style: ['subtotals', 'tax1']}]); } - if (invoice.tax_amount2) { + if (invoice.tax_name2) { var taxStr = invoice.tax_name2 + ' ' + (invoice.tax_rate2*1).toString() + '%'; data.push([{text: taxStr, style: ['subtotalsLabel', 'tax2Label']}, {text: formatMoneyInvoice(invoice.tax_amount2, invoice), style: ['subtotals', 'tax2']}]); } diff --git a/public/js/script.js b/public/js/script.js index 348df2c05fe5..aab4531977c0 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -651,12 +651,12 @@ function calculateAmounts(invoice) { invoice.has_product_key = true; } - if (item.tax_rate1 && parseFloat(item.tax_rate1)) { + if (item.tax_name1) { taxRate1 = parseFloat(item.tax_rate1); taxName1 = item.tax_name1; } - if (item.tax_rate2 && parseFloat(item.tax_rate2)) { + if (item.tax_name2) { taxRate2 = parseFloat(item.tax_rate2); taxName2 = item.tax_name2; } @@ -672,7 +672,7 @@ function calculateAmounts(invoice) { } var taxAmount1 = roundToTwo(lineTotal * taxRate1 / 100); - if (taxAmount1) { + if (taxName1) { var key = taxName1 + taxRate1; if (taxes.hasOwnProperty(key)) { taxes[key].amount += taxAmount1; @@ -682,7 +682,7 @@ function calculateAmounts(invoice) { } var taxAmount2 = roundToTwo(lineTotal * taxRate2 / 100); - if (taxAmount2) { + if (taxName2) { var key = taxName2 + taxRate2; if (taxes.hasOwnProperty(key)) { taxes[key].amount += taxAmount2; diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index d2a83f399d8d..1dbb223e8065 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -2043,6 +2043,8 @@ $LANG = array( 'payment_error_code' => 'There was an error processing your payment [:code]. Please try again later.', 'standard_fees_apply' => 'Standard fees apply: 2.9% + $0.30 per successful charge.', 'limit_import_rows' => 'Data needs to be imported in batches of :count rows or less', + 'error_title' => 'Something went wrong', + 'error_contact_text' => 'If you\'d like help please email us at :mailaddress', ); diff --git a/resources/views/error.blade.php b/resources/views/error.blade.php index ec409da311c4..1ae3d0cb0d66 100644 --- a/resources/views/error.blade.php +++ b/resources/views/error.blade.php @@ -7,9 +7,9 @@