* 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>
- Pass 'pdf_variables' to CreateQuotePdf & CreateInvoicPdf
- Update Playful & Plain to support new variable engine
- Update DesignHelpers trait to support new variable engine
- Make tests pass for ExampleIntegrationTest
* remove first name last name required
* Working on check update script
* Add payment terms per company
* set enabled modules on company creation
* Add payment terms to migration
* Type Change for Payment Terms
* Fixes for payment terms casting
* Working on payment failure notifications
* Working on payment failure notifications
* Refactor mailers
* Fixes for mailer
* Fixes for approving a quote
* Refactor emailer
* Refactor emailer
* Attach files with GMail transport
* Attach files to GMail transport
* 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
* Update Exchange rate Data once a day
* Tests for currency conversions
* Fixes for tests
* Fix for adding blank product keys
* Class for logging emails sent
* fixes for oauth
* Working on subscriptions
* Implement return type in models
* Subscription implementation
* Improvements to handling importation of large accountS
* Loggin imports
* Activate collector
* Improve memory usage of import script
* Appen Tags into emails - fix companygatewaytransformer
* minor fixes for name spaces, collector facade and composer version bump
* Fixes for invoiceworkflowsettings
* Add more context to support emails
* Working on Firing Subscriptions
* Minor fixes
* Fixes for gateway filtering
* Checkout Driver
* 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
* Fix inputs
* Workflow settings: Auto archive
- New InvoiceWorkflowSettings job
- Updated PaymentCreatedActivity to dispatch the job
- New 'Archivable' trait
- New 'archived_at' field
* Workflow settings: Sending e-mail to client with auto_send
* Workflow settings: Quotes
* Fix HTML markup
* Fix archive & sending
* Remove Archivable trait & migration file
* Change order of sending the events
* 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
* Fixes for add / archiving / deleting users
* Working on templates
* Fixes for templating
* Fixes for templating
* Add referral code to account creation
* Fixes for development environment
* 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 user model
* Remove stale css
* Working on previewing designs
* Fixes for design previews
* fixes for preview controller
* Fixes for setting company on login
* fixes for preview
* 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
* 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
* Improve notification performance
* Cascade deletes
* Fixes for company deletes
* Fixes for formatting
* todos for company
* Set currency id on payment
* Minor fixes for payment controller
* 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
* 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
* 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
* Fixes for test data
* Fixes for tests
* Remove legacy vue components
* Add routing number to client gateway tokens
* working on important documents and company gateways
* Import fixes
* 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 on emailing invoices
* Working on emailing and displaying email
* Working on emailing and displaying email
* Email invoices
* Fixes for html emails
* Restart queue after self-update
* Email Invoices
* Push Flutter Web Clientgit statusgit status!
* style cs
* Style CS
* Throw Record not found exception if invalid primary key hash is provided
* Improve error handling
* Create abstract implementation for designs
* working on custom designs
* Add Design Model
* invoice services
* Download Invoice by Invitation
* 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
* 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
* 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
* Minor fixes for randomdataseeder
* Include fix as describe by @michael-hampton here #3280
* Refactor createinvitations away from jobs
* Clean up
* Fixes for service() refactoring
* Fixes for services refactor
* 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 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>
* 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
* Fixes for missing company object in events
* Cleanup client balancing code
* Fixes for client balance
* Fixes for missing company variable
* Fix activity transformer to prevent multiple DB calls
* Implement first_load query parameter which checks client size and returns an truncated response if client count is greater than 1000
* Fixes for listeners
* Fixes for OpenAPI Documentation + fix support for docs for PHP 7.4
* User update tests
* Add total_taxes to invoice table, implement addition create-test-data fields for item and invoice level taxes
* 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
* 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
* Fixes for Token Name
* Change test data seeder to create separate small,medium,large companies
* 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
* Update client paid to date job:
* Backup Invoice HTML when invoice is marked as sent and paid
* Store HTML of invoice when invoice was paid
* Fix foreign keys in db schema
* V2 Endpoints for Company Migrations
* 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
* 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
* Update OpenAPI for TemplateController
* Add bulk invoice download functionality
* Working on Client portal
* Move selective queries to cache instead of DB
* Fix formatting in Payments table, implement cache for languages, resolve route model for clientcontacts and users
* 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
* 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
* Fixes for travis
* Additional settings variables at the company and client level
* Implement accessor for client settings
* Currency symbol or code setter
* Implement custom JS number and currency formatter
* Implement VueX state management for client settings
* Move settings logic into its own class
* Working on client settings
* client settings
* Move Client Settings helper into PHP
* Move translation helper into its own class
* Working on Client Settings
* fixes for client settings
* Client setting defaults
* fixes for .env
* Fixes for Travis
* Refactor pivot table accessors
* Add select2 for client - country selector
* Fixes for client contact update
* implement ctrans() function across application
* Increase custom fields to 4 across the application
* Refactor: remove repos calling other repos, implement 4 custom values across application
* include querying the custom values in the client list
* Fix null custom value labels
* Scaffold for client - show view
* Working on Client Show
* Wired up Bulk Archive / Delete / Restore button with reactivity on checkbox actions
* Working on POSTing bulk actions
* Working on Filtering by status
* Add Action Entity
* Implement Vuex for state management
* Implement Vuex storage & list view bulk actions
* Clean up console logs
* Configure entity list views server side
* Wired up Bulk Archive / Delete / Restore button with reactivity on checkbox actions
* Working on POSTing bulk actions
* Working on Filtering by status
* Add Action Entity
* Implement Vuex for state management
* Implement Vuex storage & list view bulk actions
* Clean up console logs
* Working on Oauth
* splitting out JS files
* Working on oAuth
* working on oAuth
* minor fixes
* create client
* create client
* create client
* Working on adding a client
* Fixes for tests
* fixes for permissions
* Set default company on account creation
* Ensure default company ID is registered in session variables
* Implement a generic resolver to harvest an entity from encoded value
* Laravel Telescope
* Fixes for datatables
* Implement a BaseModel
* Working on reusable header data model
* Working on adding session variables
* Clean up header data
* Random Data Seeder
* working on searching datatables across relationships.
* Working on transforming primary keys between client and server facinglogic
* Updated assets
* Tests for authentication
* Add db field to company table (required if we are doing jobs without an auth()->user() )
* Add Laravel Dusk for browser testing, add ability to set DB by incoming URL Hash
* Default database connection - set defaults for engine and strict
* Working on tests for refactored model
* Fixes for tests, use polymorphic relationships for Invitations
* skin the password reset pages