* 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>
* Fixes for converting a quote to invoice
* Fixes for deleting an invoice
* Payment Terms CRUD
* Payment Terms
* Push PaymentTerms back into the DB
* Payment Terms
* Payment Terms
* Create api docs for payment terms
* Fixes for null values in custom values
* Refactor mailing
* Working on send emails from GMail API
* Fixes for tests
* Test for GMail
* Adjustments for storing oauth token
* Fixes for invitations not being created in RandomDataSeeder
* Resend failed/quota exceeded emails
* Queue email tests
* Refund a client for a ninja account
* Adjust email quotas - hosted plan
* 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"
* Performance improvements moving from str_replace to strtr
* Remove legacy docs
* Clean up credit transformer
* Working on invoice emails
* Clean up for invoice designs
* Tests for light and dark theme emails
* Working on reminder scheduling
* Reminder Job Class
* Fixes for github actions
* PHP CS
* Test for reminders
* Test for reminders
* Version bump
* Refactors for refunds / credits
* Working on Company Ledger
* Company Ledger OpenAPI Documentation
* Version Bump
* Fixes for internal composer update
* Version bump 0.0.2
* code cleanup
* Working on reversing an invoice
* Working on reversing an invoice
* Working on refunding invoice
* Reversing invoices
* Test for invoice reversals
* Invoice Reversal
* Enable identifying a user who submits a report to sentry for tracking purposes
* Minor fix for setup page
* Fixes for Tests
* Fixes for tests
* Generic Entity Emailer
* Fixes for emailing a generic entity
* Remove StartupCheck from Kernel.php
* Real-time database check
* Catch the Exception with DB::getPDO
* Send test email - feature
* Forms
Co-authored-by: David Bomba <turbo124@gmail.com>
* Fixes for white label
* Include Laravel Horizon
* Add Account ID to user table AND ensure a user cannot create an invoice across companies
* restart horison after an update
* Fixes for app setup
* Minor fixes
* Fixes for client routes
* Fixes for tests
* minor fixes
* Refactor designs to remove whitespace
* enable dummy data for templating
* Insert faker data into templates
* Fixes for user deletion
* Documentation on User controller:
* Working on app setup
* Files for app setup
* Working on Setup
* Final fixes for setup controller
* Fixes for setup
* Fixes for first install
* Minor fixes
* 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
* 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
* 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>
* 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
* Fixes for company settings object creation
* Working on group settings
* Fixes for storing the correct currency_id on client creation
* Fix for invoicetransformer
* 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
* Client and System Notifications
* Fix for group settings currency not applying correctly.
* Split head out of design in order to reuse headers and footers
* export the designs
* Fixes for pdf_variables
* Fix for setting a currency!
* Additional logic to ensure invites are only created for the client_contact -> client
* Move credit number generation after the save to ensure we do not fail on the credit creation because of a number race condition
* fixes for migration
* 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
* Refactor for user
* payment notifications
* Fixes for contact request
* Fix validation for contacts
* Fixes for base repo
* Fixes for Invoice Repo
* hide password field on clientcontact
* 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
* 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
* Testing Company Ledger
* Fixes for company ledger
* Fixes for company ledger
* Company ledger testS
* Fixes for user / client / contacts transformers
* Fixes for tests
* Fixes for tokens
* 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
* 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
* 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
* refactor for emails
* Design Transformer
* Include designs in first_load response
* Code cleanup
* Working self-updater package
* Fixes for travis
* Working on invoice designs
* Working on invoice builder
* Tests for invoice design
* Working on invoice designs
* Minor fixes
* Working on Invoice Design Engine
* Working on invoice designs
* Fixes for refunds
* 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
* More tests for refunds
* Tests for refunds
* Improve test speeds
* Fixes for tests
* Adjust the way we update products
* Adjustments for payments
* Fixes for payments
* Add PHP 7.4 to Travis Tests
* Fixes for tests
* fixes for tests
* Fixes for tests
* More tests for Refunds
* Remove dusk tests
* Refactor refund variables
* Working on refunds
* Working on refunds
* working on refundS
* working on refunds
* add types to transformers
* minor fixes for test data creator
* Working on refunds
* Update migration files to include client contacts
* Working on refunds
* Working on refunds
* Working on refunds
* Refund Tests
* Working on refund tests
* Scaffold test case
* Import.php tests:
- Basic test scaffold
- Test if exception is thrown when unknown resource
- Company update test
* Migration importer & exception classes
* Company migration test
- Added 3rd parameter for accepting custom resources
- Wip tax_rates migration
* Tax rate migration
* Tax rate update
- Added company_id & user_id property modifiers
* Users migration
* Save IDs for users importing
* Add 'transformIds' method
* Importing clients
- An exception for resource not migration
- Dependency logic
- Removing id on insert
* Exception for unresolved dependency
* Import clients
* Method for inspecting user_id
* Importing invoices
* Importing quotes
* Fix tests & wrap with try-catch
* Fix tax_rates user_id transform
* Working on migration
* Tests for migration
* fixes for test
* Tests for Import.php
- Added ext-json to composer.json
* Tests for Import.php
- Added ext-json to composer.json
* Change migration exceptions to MigrationValidatorFailed
* Fixes for tests and counters
* Unzipping the migration archive
- Changed .gitignore to ignore all local migrations
* Comparing local data with inserted
* Ignore verification - wip
* Fix formatting for api.php
* Uploading file test (wip)
* Fix typo
Co-authored-by: David Bomba <turbo124@gmail.com>
* add expenses, vendors and vendor_contacts along with factories and test data
* padding out vendors, expenses
* Minor fixes
* Add Expense and Company TransformerS
* Ensure payments, invoice and credit amount balance in the validator prior to saving
* additional payment validation rules and tests for processing payments
* Factories for credits
* Tests for payments
* Working on updating a payment
* Working on updating a payment
* fixes for updating a payment
* Working on Payment Tests
* More tests for payments, formrequests
* remove product_key as required from products
* 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
* Set payment number on completed payment
* Fix for paymentables not returning
* Do not set invoice status to paid if only a partial amount of the invoice has been paid
* 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
* 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
* Fixes for OpenAPI Documentation + fix support for docs for PHP 7.4
* Minor fixes for GMail API
* Add fix for 2 contacts with no email addresses failing validation, emails are optional! but cannot be duplicated if a value is set
* Return template as a object with subject and body components
* Fixes for OpenAPI Schema
* Stubs for payment edge cases
* payment tests
* Allow payment amounts to be partial per invoice paid
* edge case tests for payments
* Allow per invoice payment amounts and allow direct payments which simply credit a clients credit_balance
* Fixes
* 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
* Fixes for company factor
* Add dates to create test data
* Fixes for transformers, use faker to generate random dates
* Bump to PHP 7.4git add app/Http/Requests/User/DetachCompanyUserRequest.php
* Fixes for route model binding
* fix for blank client settings
* Force all custom fields to strings
* Fixes for bulk actions
* Fixes for company POST route..
* Change text from Bitcoin to CRYPTO
* Implement default_gateway_type_id in transformer
* use scopes for company filtering
* Implement validation for portal_domain
* Add Google API client
* Add activities to company transformer
* fix for blank client settings
* Force all custom fields to strings
* Fixes for bulk actions
* Fix for client transformer
* Validation for portal domain -> url
* Portal Domain Validation
* Fix for CORs error where file download were being prevented by headers
* Fixes for CORs and File downloads
* give contextual error messages for invalid route actions
* Clean up LoginController for OAuth Testing
* Quote Actions
* Invoice and Quote Actions
* Fix for client currency
* Set default templates in Company Settings
* Working on Company User creation
* Working on company_user relationship
* Fixes for company_user relation
* Clean up
* 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
* Add amount to paymentable tables to enable reversing payments gracefully
* Create Test Data artisan comannd
* Delete Payments + Fixes for company settings persistence
* Fixes for Store Payment Validation
* Tests for Payments
* Use custom validator to ensure payments are made ONLY to payable invoices
* Working on custom payment validators
* Update Client balance
* fixes for client balance
* Fixes for activity API
* Provide failsafe creation of invoice invitations
* URL Links for invitations
* open up route for invitations
* Set DB by Invite
* Set DB By invitation Key
* Tests for setting DB based on user email address
* Middleware for setting db by email address
* fixes for tets
* fixes for tests
* Tests for bulk actions
* Payments API
* Fixes for tests
* fix regression in company name
* HasOneThrough for company user
* Validation rules for contact email addresses
* Force a blank contact if no contacts passed in client
* Add ability to remove group settings level company logo
* Company Gateway Fees and Limits
* Validation tests for FeesAndLimits
* Working on company gateways
* Working on transforming fees_and_limits in transformer
* Implement fees and limits map for company gateways
* 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
* 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
* 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
* Insert generic for client country if not set
* Invoice fixes
* fixes
* Schema changes
* Refactor Schema and implement fixes for testS
* Use Dispatcher for system logs
* Add TaxRateController
* Update OpenAPI definitions for Tax Rates
* update company settings and OpenAPI definitions
* Fixes for tests
* Add extra variables to company settings
* Track signup platform when new account signup processed