Commit Graph

211 Commits

Author SHA1 Message Date
Benjamin Beganović f98627e47f Rename product.product_key to product.item 2020-12-23 14:25:12 +01:00
David Bomba 23f07a901b Version bump to 5.0.35 2020-12-11 23:20:46 +11:00
David Bomba 6a03bcc546
Merge branch 'v5-develop' into v5-develop 2020-12-09 07:25:16 +11:00
Benjamin Beganović 53525dc93f rename task.service to task.product key 2020-12-08 16:10:29 +01:00
David Bomba 8107a49677 remove trailing slash from app url 2020-12-08 07:21:08 +11:00
David Bomba a8958f4b09 Minor fixes for batch migrations 2020-11-30 18:43:33 +11:00
Benjamin Beganović ae88d5e08e php-cs-fixer format 2020-11-25 15:19:52 +01:00
Benjamin Beganović 8080dffa85 show custom messages in cp 2020-11-16 15:37:09 +01:00
David Bomba b1591632d8 Refactor defaults for invoice PDF 2020-11-13 22:52:11 +11:00
David Bomba d8bb01430f Fixes for renaming company gateway columns 2020-11-12 22:09:31 +11:00
David Bomba 7af791a4c4 Working on from, replyTo and bcc emails 2020-11-12 12:43:32 +11:00
Clément Gayot 9fd76f60e6
Remove useless "use" 2020-11-07 03:18:25 +01:00
David Bomba 100207f4cb
Merge pull request #4267 from turbo124/v5-develop
Company Settings Implmentation
2020-11-05 07:49:10 +11:00
Benjamin Beganović 14b11ecbbd Refactor total table columns:
- $task.cost => $task.rate
- $task.quantity => $task.hours
2020-11-04 11:22:43 +01:00
David Bomba 5c5102baeb Working on reminders 2020-11-04 20:32:49 +11:00
David Bomba d598aeeb03 Working on reminders 2020-11-04 19:43:20 +11:00
David Bomba 697fa568db Working on company settings implementation 2020-11-04 18:57:16 +11:00
David Bomba 5fe85ca3f0 Working on company settings implmentation 2020-11-04 17:02:15 +11:00
David Bomba 529ef5d686 Working on settings implementation 2020-11-04 16:22:51 +11:00
= 6479b2fd3e Fix for laravel 8 route file regression + psalm cleanup 2020-11-01 16:09:09 +11:00
David Bomba 9aeb2d7a5b Psalm cleanup 2020-10-28 21:10:49 +11:00
David Bomba f6435ab030 Working on emails 2020-10-27 22:57:12 +11:00
David Bomba 8f53424017 Fixes 2020-10-27 06:10:04 +11:00
David Bomba 9c324f187e Fixes for vendor presenter; 2020-10-20 08:18:09 +11:00
David Bomba 3d40df6264 Fixes for ledger id in transformer 2020-10-16 08:55:24 +11:00
David Bomba 02baff1119 Fixes for tests 2020-10-06 16:04:54 +11:00
David Bomba 4a4c61f1cf recurring 2020-10-06 15:11:48 +11:00
David Bomba 8756a89885 Allow login using contact_key or client_hash 2020-09-30 08:42:55 +10:00
David Bomba 9b546e66ac Fixes for pdf variables 2020-09-29 22:31:08 +10:00
David Bomba fd67a48c91 Bug fixes 2020-09-27 20:39:13 +10:00
David Bomba ab0ec5e2cb Vendor API endpoints 2020-09-23 10:16:19 +10:00
David Bomba 84ec6b35cd Add additional fields to company settings auto_bill_date + client_portal_under_payment_minimum 2020-09-08 20:53:16 +10:00
David Bomba 77119e69fe Add primary/secondary_color to companysettings 2020-09-08 14:02:00 +10:00
David Bomba ba75a44eb8
Laravel 7.x Shift (#40)
* Adopt Laravel coding style

The Laravel framework adopts the PSR-2 coding style with some additions.
Laravel apps *should* adopt this coding style as well.

However, Shift allows you to customize the adopted coding style by
adding your own [PHP CS Fixer][1] `.php_cs` config to your project.

You may use [Shift's .php_cs][2] file as a base.

[1]: https://github.com/FriendsOfPHP/PHP-CS-Fixer
[2]: https://gist.github.com/laravel-shift/cab527923ed2a109dda047b97d53c200

* Shift bindings

PHP 5.5.9+ adds the new static `class` property which provides the fully qualified class name. This is preferred over using class name strings as these references are checked by the parser.

* Shift core files

* Shift to Throwable

* Add laravel/ui dependency

* Unindent vendor mail templates

* Shift config files

* Default config files

In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them so you can review the commit diff for
changes. Moving forward, you should use ENV variables or create a
separate config file to allow the core config files to remain
automatically upgradeable.

* Shift Laravel dependencies

* Shift cleanup

* Upgrade to Laravel 7

Co-authored-by: Laravel Shift <shift@laravelshift.com>
2020-09-06 19:38:10 +10:00
David Bomba 36c54d8cc3 Working on fees 2020-08-28 11:06:46 +10:00
David Bomba c9d94804de
Merge pull request #4002 from turbo124/v2
Tests for gateway fees
2020-08-20 07:40:33 +10:00
Benjamin Beganović c386167762 Add company setting for enabling client portal uploads 2020-08-19 16:35:54 +02:00
David Bomba ca99a66390 Fixes for tests 2020-08-19 16:09:01 +10:00
David Bomba 14983479d3 Add auto-bill to company settings "
git push
2020-08-19 15:24:35 +10:00
David Bomba 5daeab3895 allow total columns to be customized in PDF 2020-08-14 13:59:14 +10:00
David Bomba 5bfcdc80b2
Merge pull request #3972 from beganovich/v2-0708-pdfmaker-integration
(wip) End-to-end PDF Maker integration
2020-08-14 06:53:00 +10:00
David Bomba 7bde9d6967 Fixes for tests 2020-08-13 19:59:29 +10:00
Benjamin Beganović 5eb2ad0e77 Fixes for invoice/quote settings on company level 2020-08-10 17:21:56 +02:00
David Bomba 9ed31be17e remove legacy setting option 2020-07-28 14:29:56 +10:00
David Bomba 41b85b3fb3 Ensure models are touched appropriately" 2020-07-16 21:01:39 +10:00
David Bomba 5af23a4072 changes for Demo 2020-07-13 20:12:29 +10:00
David Bomba 8eed07b8f5 Additional fields for entities 2020-06-28 08:24:08 +10:00
David Bomba fa02cc1abe Add variables 2020-06-22 20:28:08 +10:00
David Bomba d3e008bf92 Fixes for settings 2020-06-11 21:43:01 +10:00
David Bomba 7e26a81fb9 Move enabled_tax_rates onto company model 2020-06-11 07:56:08 +10:00
David Bomba 0a4464fc23
Payment Failure Notifications (#3755)
* Type Change for Payment Terms

* Fixes for payment terms casting

* Working on payment failure notifications

* Working on payment failure notifications
2020-05-26 20:22:50 +10:00
David Bomba e038c624bf
Fixes for payment terms types (#3754)
* Type Change for Payment Terms

* Fixes for payment terms casting
2020-05-26 18:41:14 +10:00
David Bomba 36abed4c7d
Type Change for Payment Terms (#3753) 2020-05-26 18:28:19 +10:00
David Bomba 280e42d366
Hosted platform rules (#3650)
* Filter properties which can be saved on free accounts

* Self Updater

* Fixes for tests

* Refactor for settings

* Working on feature permissions - Settings Saver

* Fixes for events on self-updater

* Working on Self Updater

* Working on free /pro settings saver

* Implement free/pro/enterprise saving for settings

* Update company request

* Implement settings saver for hosted platform for clients and group level settings

* Implement quotas for hosted version

* Validation rules for hosted platform"
2020-04-21 15:16:45 +10:00
Benjamin Beganović 272109f699
Custom js and css in client portal (#3638) 2020-04-17 20:15:26 +10:00
David Bomba 9349eb0414
Repeating headers and footers for PDF (#3622)
* Subclass Notification class

* Subclass Notification class

* Working on invoice design

* Working on page headers and footers

* Fixes for headers and footers

* Fixes for invoices
2020-04-12 21:51:27 +10:00
David Bomba 581654141b
Fixes for entity dates (#3563) 2020-03-30 08:29:00 +11:00
David Bomba 6df62faa82
Fixes for Invoice Designs (#3559)
* fixes for tests

* Working on Invoice Designs

* Update phpunit.yml

* Update phpunit.yml

* Working on sending an individual email

* Update phpunit.yml

* Fixes for designs

* Update phpunit.yml

* Working on sending entity email - individual

* Fixes for account creation

* Remove Laravel Horizon

* remove logging
2020-03-28 22:34:04 +11:00
David Bomba 9cb7996a2e
Performance improvements for PDF rendering (#3556)
* Performance improvements for PDF generation

* CS Fixer

* Performance improvements for PDF generate

* Fixes for tests
2020-03-28 14:45:11 +11:00
David Bomba 060b5ef432
Fixes for designs (#3554)
* Fixes for designs

* minor fixes

* Fixes for composer.json

* Convert PDF variables to object instead of array

* Fixes for testS"
2020-03-27 18:22:35 +11:00
David Bomba 43e57d0117
Fixes for self-update (#3514)
* minor fix for payment notifications

* styleci

* Limit Self updating to self hosters only
:

* Fixes for designs

* Minor fixes for self-update
2020-03-21 16:37:30 +11:00
David Bomba 0e12b63c95
Design Changes (#3504)
* Fixes for tests

* Working on PDF tables

* Fixes for null values in designs

* Refactoring entity variables for PDF

* Fixes for pdf variables

* Minor fixes for designs

* Working on variable replacement for tables

* Refactoring designs

* Refactoring designs

* Refactoring design implementation

* Working on refactoring designs

* Serve tailwind locally

* Design changes
2020-03-16 21:12:10 +11:00
David Bomba dc8ecbeeed
Fixes for company_user (#3477)
* Minor fixes for user delete

* Working on notifications

* Refactor for notifications

* Fix for checking settings withe negative integers

* Set payment id to 0

* Move pdf download to client side routes

* fixes for company_user

* Fixes for company_user
2020-03-11 22:05:05 +11:00
David Bomba efa6350008
Fixes for updating pdf_variables in CompanySettings (#3465)
* Fixes for setting pdf_variables in company settings

* Fixes for company settings saver
2020-03-10 22:32:45 +11:00
David Bomba 7d39969a3b
Preview Route (#3456)
* Remove backup column from schema

* Add slack webhooks to company user table

* Preview route

* remove json column from company gateway

* fixes for testS

* Fixes for typos
2020-03-09 20:38:15 +11:00
David Bomba 7c00c68bf3
Create route for invoice/credit/quote PDF download (#3441) 2020-03-07 00:41:15 +11:00
David Bomba f0176b6e37
Fixes for quote transformer (#3434)
* remove jobs table

* Working on notifications

* Working on notifications

* Fix for pdf_variables

* Fixes for notification

* Fixes for viewing invoice with NO company custom_fields

* Fixes for company settings object creation

* Working on group settings

* Fixes for storing the correct currency_id on client creation

* Fix for invoicetransformer

* fix for store client

* Update PaymentAppliedValidAmount.php (#38)

* update company schema descriptions

* Update PaymentAppliedValidAmount.php

Co-authored-by: David Bomba <turbo124@gmail.com>

* Cast invoice designs to the Hashes

* Fixes for setting invoice/credit/design_ids to hashed

* Fixes for quote transformer

Co-authored-by: michael-hampton <michaelhamptondesign@yahoo.com>
2020-03-06 22:10:59 +11:00
David Bomba 7acc6ee300
Repeating header and footers on Invoice PDFs (#3424)
* remove jobs table

* Working on notifications

* Working on notifications

* Fixes for setting group level currency id on new client

* Working on repeating headers

* Use CSS to force headers and footers

* recurring headers and footers

* Preview PDF

* Working on PDF Preview
2020-03-05 18:14:57 +11:00
David Bomba 1393179160
Multiple fixes and features (#3411)
* Performance improvements for seeding

* Differentiating between system notification and user notifications

* Remove hard coded webhook url

* Working on system and user notifications

* notifications

* Set the currency on client if blank

* Refactor for inserting invoice defaults

* Refactor Default Invoice/Quote/Credit objects

* working on credits

* Implement mark_sent for quotes and credits
2020-03-03 20:44:26 +11:00
David Bomba cf345b1932
Set Default PDF Variables (#3409) 2020-03-02 22:03:40 +11:00
David Bomba 0ff14c97fd
Minors Fixes (#3405)
* Tests for client contact passwords

* test for client API

* Client Tests for password quality

* Final tests for client contact password

* Implement feature permissions

* Minor fixes
2020-03-01 21:18:13 +11:00
David Bomba f8ea4c0d0f
Implement Design API (#3400)
* Working on CompanyUser route

* CompanyUser update route

* tests for updating a company user

* Fixes for exchange currency rate

* Move slack and google analytics fields into company table

* implement Design API
2020-02-29 08:57:47 +11:00
David Bomba 7abab22c43
Fixes for base repo (#3393) 2020-02-28 07:34:25 +11:00
David Bomba 464dd3f9eb
Fixes for base repo ->save() method (#3392)
* Fixes for tests

* payment

* remove field from company table

* Fixes for repo save()
2020-02-28 07:23:25 +11:00
David Bomba 0b2435af2a
Fixes for payment numbers (#3384) 2020-02-26 21:06:08 +11:00
David Bomba 3d31f810c0
Set Invitations as a default include for invoices (#3362)
* Working on importing company gateways

* Fix for companyuser settings object

* Migrate client_gateway_tokens

* Working on Notificaitons

* Working on notifications

* Failsafe for user-company

* unlink files

* Set DB for jobs

* Always have a fallback for company_id

* Fixes for user model

* Formatting for MultiDB

* Working on Company Ledger Tests

* Fixes for contact request

* Set Invitations as a default include for invoices
2020-02-24 21:15:30 +11:00
David Bomba 9e9cd37b87
Modifications to Designs (#3353)
* Working on Quotes

* Naming refactor for Quotes

* Quote Actions

* Quote Pdfs

* Quote PDFs

* Refunds in Stripe

* Fixes tests

* Company Ledger work
2020-02-20 07:44:12 +11:00
David Bomba f57339f185
Fixes and Refactors for Invoice Emails. (#3339)
* Working on emailing invoices

* Working on emailing and displaying email

* Working on emailing and displaying email

* Email invoices

* Fixes for html emails

* Ensure valid client prior to store

* Ensure client exists when storing an entity

* Update variable name send -> send_email for client_contacts

* Mailable download files

* Extend timeouts of password protected routes when a protected route is hit

* Add default portal design to company settings

* Minor fixes

* Fixes for Tests

* Fixes for invoicing emails

* Refactors for InvoiceEmail

* Implement abstractservice

* Refactors for services

* Refactors for emails

* Fixes for Invoice Emails
2020-02-17 20:37:44 +11:00
David Bomba af72d27a49 fixes for update invoice (#3303) 2020-02-10 21:13:46 +11:00
David Bomba 9a19f7fd4c Fixes for invoice update and invoice designs (#3302)
* BaseController cleanup

* Working on invoice designs

* Working on invoice designs

* working on invoice designs

* working on invoice designs

* invoice designs

* Working on Invoice Designs

* Fixes for user settings object

* Working on invoice designs

* Fixes for encoded user settings

* Working on contact localized invoice pdfs

* working on invoice designs

* Fix for invoice update 500 error
2020-02-10 20:53:02 +11:00
David Bomba c25de936ed
Refactor - moving away from jobs. (#3279)
* Implement Services

* implement service pattern

* Service patterns

* Refactoring invoice paid

* refactoring invoice

* Refactor jobs

* Refactor - remove jobs

* Refactor jobs

* Refactoring jobs

* Refactoring away from jobs

* Refactoring jobs

* Add Credits to test data
2020-02-03 21:33:07 +11:00
David Bomba 957ac9f5d8
Fix for password protected authorization (#3198)
* Remove unnecessary save() on invoice

* Update copyright

* Working on Credit Repository

* Implement credits as a paymentable entity

* Add credit_id to transformer

* fix rules for update payment

* Fix random deleted_at keys in transformers

* Fix for password_protect check
2020-01-07 11:13:47 +11:00
David Bomba f712b789ca
Fixes for tests (#3184)
* fix typo

* php-cs traits

* CS fixer pass

* Password protect User routes

* Implement checks to prevent editing a deleted record

* Clean up payment flows

* Fixes for tests
2019-12-31 08:59:12 +11:00
David Bomba e406020ee5
Bug Fixes (#3177)
* Implement first_load query parameter which checks client size and returns an truncated response if client count is greater than 1000

* Fixes for listeners
2019-12-28 06:30:22 +11:00
David Bomba d797799196
Fixes for V2 (#3172)
* Optimizations for large queries

* Fixes for client activities

* Implement UpdateOrCreate for products
2019-12-27 09:33:07 +11:00
David Bomba 6bf4cfe395
Add Credits to Schema (#3169)
* Fix formatting and variable insertion for email templates

* Refactoring for invoice emails

* Fixes for midddleware

* Improve refresh includes

* change setting name
2019-12-25 23:22:10 +11:00
David Bomba 5e7512071f
Implement EmailInvoice Job (#3166)
* Working on quote counter

* Add tests for quote number + shared counter tests

* Create invoice job

* Add last_sent_date to invoice/quote table, remove type_id

* Implement EmailInvoice Job
2019-12-22 21:28:41 +11:00
David Bomba e125052f96
Implement invoice reminder scheduler (#3160)
* Do not set email template defaults in settings

* Set invoice reminders, trait + tets

* Fixes for tets

* Only all an account owner to delete companies/users
2019-12-18 13:45:18 +11:00
David Bomba c6e1658ffe
Refactors (#3148)
* Refactor company properties to be presented from settings object instead of company properties

* Working on Email Tests

* Working on emails

* Working on email templats

* Include text version of email

* Refactor Email template builder into trait'

* Fix for custom_value4

* Refactor payment_date -> date && payment_type_id -> type_id

* expose paymentables to API

* expose paymentables to API

* Implement a next_send_date field in invoice/quote tables to allow control over reminder scheduling

* Add custom_values to users,documents and company_gateways tables
2019-12-16 22:34:38 +11:00
David Bomba f8551d6119
Multi-Master Support for MySQL (#3146)
* Minor fixes for OpenAPI docs for clients

* Add fields to company transformer

* Padding email templates, system level and custom

* Minor fixes for email template subject

* Working on Email Templates

* Clean up User model, remove redundant permissions methods

* Implement Locale for API

* Implement Locale middleware for client routes

* Remove global constants

* Fixes for removing the global constants file

* Working on TDD for emails

* TDD for emails

* implement additional template variables

* Add support for Multi-Master replication with MySQL
2019-12-14 16:49:48 +11:00
David Bomba 32aedf26dd
Attach and Detach a user to a company (#3107)
* fixes for template controller

* Default gateway as string

* Bulk actions

* Move currency_id back to settings

* Allow store and update currency ID

* Attach user to company_user

* Add / Detach company users
2019-11-30 13:42:44 +11:00
David Bomba 52c031e290
Email template defaults (#3090)
* Update User and Company User

* Email Template Defaults for Settings

* Separate methods for saving client and group settings
2019-11-24 17:37:53 +11:00
David Bomba 5c9ada0f77
V2 (#3089)
* Set default templates in Company Settings

* Working on Company User creation

* Working on company_user relationship

* Fixes for company_user relation

* Clean up
2019-11-23 08:10:53 +11:00
David Bomba 69efd4d574
Enhancements to API (#3088)
* working on email throttling

* Fixes for invitaiton links

* pass custom fields as object

* Add user agent to company token

* Update company token transformer

* Remove prefix setting from CompanySettings

* Implement user agent on company token & provide better error handling for undefined relationships includes

* Fix bulk actions

* Working on updating/creating a company user

* Fixes for tests
2019-11-21 19:38:57 +11:00
David Bomba 37a826374b
Remove settings from invoice table (#3051)
* Implement client/group/company level counters clientCounter, groupCounter and counter

* Implement functionalityfor customising the timing of invoice_number creation

* Add Jobs

* adjustments

* clean line items at the request layer

* Clean line items at the request layer

* minor formatting for notification

* Schema Fixes

* schema changes, cast country_id to stirng

* Fixes for tests

* force line item ids to string

* Map company gateway fees and limits

* Schema changes

* Remove id from invoice item stdClass

* Remove settings object from invoice table
2019-11-10 23:06:30 +11:00
David Bomba a78b6aaacd
Set casts on Invoice Line Items (#3049)
* Implement client/group/company level counters clientCounter, groupCounter and counter

* Implement functionalityfor customising the timing of invoice_number creation

* Add Jobs

* adjustments

* clean line items at the request layer

* Clean line items at the request layer
2019-11-08 11:38:22 +11:00
David Bomba a6f928b181
Fixes for settings, implement invitations from invoice request (#3047)
* Fixes for client portal localization

* Replace Invoice Ninja Logo with user defined logo and website URL in client portal

* Minor Fixes

* Refactor for invitations on invoices

* Fixes for settings
2019-11-07 09:57:09 +11:00
David Bomba 9050d4e564
Template Controller (#3042)
* Request Cancellation

* Add fields to settings

* Recurring invoice cancellation request

* Stub Template controller
2019-11-05 07:50:10 +11:00
David Bomba b7d3f4e7aa
Client Portal conditionals (#3039)
* Fixes for tests

* add additional fields for company settings

* fixes for travis

* update company settings schema

* Disable client portal

* Client Portal middleware

* Working on client portal

* hide portal

* Implement notification channgels for User and ClientContact models

* Push notifications onto queue

* Force authentication if client portal is password protected
2019-11-04 11:22:59 +11:00
David Bomba 14ea3fe256
Tax Rate fixes (#3031)
* Ensure tax rate queries are scoped appropriately

* Add Tax Rate Policy

* Fixes for settings

* doc blocks

* Add failed jobs tables to migrations

* Only 1 migration file for failed table
2019-10-30 13:41:18 +11:00