- GenerateDeliveryNote action for InvoiceService
- New delivery-note-table element in the \Services\PdfMaker\Design.php
- $item & $description variables in the HtmlEngine
- Logic for excluding elements in table footer
- PdfMaker will now return plain HTML + str_replace filter
- HTMLEngine updated variables and aliases
- Added 'payment_due' translation
- Hipster: Updated variables
* 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>
* 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
* 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
* Refactor mailers
* Fixes for mailer
* Fixes for approving a quote
* Refactor emailer
* Refactor emailer
* Attach files with GMail transport
* Attach files to GMail transport
* Skip preview tests
* Fixes for product test
* Fixes for tests
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Fixes for incorrect payment types
* Refactor class nameS
* Entity Notification refactor
* Entity Notifications
* Add oauth_provider to User transformer
* Invoices can only be deleted in the balance in zero
* 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 tests
* Fixes for testS
* Include credits in first_load=true
* Fixes for tests
* fixes for tests
* Fixes for tests:
* Fixes for tests
* Fixes for tests
* Fix whereClientId when starting payment
* Refunding using Paypal
* Refunding engine
* Cleanup and making refund method work
* Remove "refund" method from BasePaymentController
* Add "refund" to PaypalExpressPaymentDriver
* Extract refunding into own classes
* Apply php-cs-fixer to PaypalExpress
* Refunding with stripe
* 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
* Quote actions
* Send Quotes
* Fixes for seg faults!
* Minor fixes
* Fixes for client contact scopes
* 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
* 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"
* Fixes for createinvoicepdf
* Filter properties which can be saved on free accounts
* Update laravel self updater version
* Upgrade self updater version
* Rework Composer upate
* Self Update
* 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
* Subclass Notification class
* Subclass Notification class
* Working on invoice design
* Working on page headers and footers
* Fixes for headers and footers
* Fixes for invoices
* Version bump
* Refactors for refunds / credits
* Working on Company Ledger
* Company Ledger OpenAPI Documentation
* Version Bump
* Fixes for internal composer update
* Remove Html\Builder dependency from controllers
* Remove: yajra/laravel-datatables-html
- yajra/laravel-datatables-oracle as main non-dev dependency
* Added sorting to tables
* 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
* Display prerequisites for the setup
- Block the doSetup() if SystemHealth is not true
- Convert extensions when checking into array notation
- Added new translations for the screen
- New 'issues' page
- Hide submit button when health is not good
* Fix more translations
* 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>
* Setup page real-time checks:
- New setup.js inside of webpack.mix.js
- SetupController methods rename from snake case to camel case
- Added Axios module inside of app.js
* Disable Laravel Mix notifications
* Fix naming for request
* 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 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
* refactor white labelling
* refactors for white label
* Fixes for payment type id nulls
* Dependency clearing
* Tailwind & templates cleanup
* Password reset pages & more features:
- New $this->render() method
- Password reset pages
- Tailwind CSS scaffold
- New styles for buttons, inputs, alerts
- Changed to shorthand syntax for language file (en)
- Added app.css and app.js which will be main endpoint
- Added new 'theme' field inside of ninja.php
- Scaffold for 'ninja2020' theme: both client and global theme
- Ignoring local builds of assets, until purgeCSS is there
- Overall cleanup
* Switch back default template to 'default'
* Remove app.css build
* Fix Codacy
* Fix Codacy 'doublequote' issues
* 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
* Fix for typo
* wind back self updater repo
* fixes for client settings
* Add current version to the account transformer
* fixes for deleting a company
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* Fix formatting and variable insertion for email templates
* Refactoring for invoice emails
* Fixes for midddleware
* Improve refresh includes
* change setting name
* 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
* 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
* Minor fixes for OpenAPI docs for clients
* Add fields to company transformer
* Padding email templates, system level and custom
* Set Unique value on client_contact_id & invoice_id on invitations table
* Fix for client display_name
* 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
* 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
* 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 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
* 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
* 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
* Update API docs
* cleaning up migrations
* Fixes for tests
* fixes for tests
* Delete client contacts when soft deleting a client
* Fixes for actions
* 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
* 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
* 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