* 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