rossaddison / invoice
Builds the invoice folder for rossaddison/yii3-i
Fund package maintenance!
Open Collective
yiisoft
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 1
Type:project
Requires
- php: 8.3.*
- ext-curl: *
- ext-dom: *
- ext-fileinfo: *
- ext-gd: *
- ext-intl: *
- ext-json: *
- ext-mbstring: *
- ext-openssl: *
- ext-pdo_sqlite: *
- ext-uopz: *
- amzn/amazon-pay-api-sdk-php: ^2.6
- braintree/braintree_php: ^6.20
- brick/math: ^0.12
- brick/money: ^0.10
- cebe/markdown: ^1.2@dev
- chillerlan/php-qrcode: ^5.0
- cycle/annotated: ^3.5
- cycle/database: ^2.0
- cycle/entity-behavior: ^1.0
- cycle/orm: ^2.0
- digitalbazaar/json-ld: ^0.4
- doctrine/collections: ^2.2
- fakerphp/faker: ^1.24
- google/cloud-translate: ^1.20
- httpsoft/http-message: ^1.1
- league/iso3166: ^4.3
- league/omnipay: ^3.0
- maglnet/composer-require-checker: ^4.14
- mollie/mollie-api-php: ^2.75
- mpdf/mpdf: ^8.0||^8.1||^8.2
- nyholm/psr7: ^1.8
- omnipay/common: ^3.3
- omnipay/stripe: ^3.2
- php-http/curl-client: ^2.3
- php-http/guzzle7-adapter: ^1.1
- phpbench/phpbench: ^1.2
- psalm/plugin-symfony: ^5.2
- psr/container: ^2.0
- psr/http-factory: ^1.1
- psr/http-message: ^1.1||^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- psr/log: ^3.0
- rossaddison/yii-auth-client: dev-master
- sabre/xml: ^4.0
- setasign/fpdf: ^1.8
- stripe/stripe-php: ^16.3
- symfony/console: ^6.4||^7.1
- vjik/cycle-typecast: ^2.2
- vjik/telegram-bot-api: ^0.4
- vlucas/phpdotenv: ^5.6
- yiisoft/access: ^2.0
- yiisoft/aliases: ^3.0
- yiisoft/arrays: ^3.1
- yiisoft/assets: ^5.0
- yiisoft/auth: ^3.1
- yiisoft/cache: ^3.0
- yiisoft/cache-file: ^3.0
- yiisoft/config: ^1.5.0
- yiisoft/cookies: ^1.2
- yiisoft/csrf: ^2.2
- yiisoft/data: dev-master
- yiisoft/data-cycle: dev-master
- yiisoft/data-response: ^2.1
- yiisoft/db: dev-master
- yiisoft/db-mysql: dev-master
- yiisoft/definitions: ^3.3
- yiisoft/di: ^1.3
- yiisoft/error-handler: ^3.3
- yiisoft/factory: ^1.0
- yiisoft/files: ^2.0
- yiisoft/form: ^1.3
- yiisoft/form-model: dev-master
- yiisoft/friendly-exception: ^1.1
- yiisoft/html: ^3.9
- yiisoft/http: ^1.2
- yiisoft/injector: ^1.0
- yiisoft/input-http: ^1.0
- yiisoft/json: ^1.0
- yiisoft/log: ^2.1
- yiisoft/log-target-file: ^3.0
- yiisoft/mailer: ^6.0
- yiisoft/mailer-symfony: ^4.0
- yiisoft/middleware-dispatcher: ^5.2
- yiisoft/rate-limiter: dev-master
- yiisoft/rbac: ^2.0
- yiisoft/rbac-php: ^2.0
- yiisoft/rbac-rules-container: ^2.1
- yiisoft/request-provider: ^1.1
- yiisoft/requirements: dev-master
- yiisoft/router: ^3.1
- yiisoft/router-fastroute: ^3.1
- yiisoft/security: ^1.0
- yiisoft/session: ^2.1
- yiisoft/translator: ^3.0
- yiisoft/translator-message-php: ^1.1.1
- yiisoft/user: ^2.2
- yiisoft/validator: ^2.1
- yiisoft/var-dumper: ^1.0
- yiisoft/view: ^11.0
- yiisoft/widget: ^2.1
- yiisoft/yii-bootstrap5: dev-master
- yiisoft/yii-console: ^2.2
- yiisoft/yii-cycle: ^1.0
- yiisoft/yii-dataview: ^3.0@dev
- yiisoft/yii-debug-api: ^3.0@dev
- yiisoft/yii-event: ^2.0
- yiisoft/yii-http: ^1.0
- yiisoft/yii-middleware: ^1.0.4
- yiisoft/yii-runner-console: ^2.2
- yiisoft/yii-runner-http: ^3.0
- yiisoft/yii-sentry: ^2.0.1
- yiisoft/yii-view-renderer: ^7.2
- zircote/swagger-php: ^4.0
Requires (Dev)
- codeception/c3: ^2.8
- codeception/codeception: ^5.0.8
- codeception/module-asserts: ^3.0
- codeception/module-cli: ^2.0
- codeception/module-phpbrowser: ^3.0
- friendsofphp/php-cs-fixer: ^3.64
- phpunit/phpunit: ^9.6
- roave/better-reflection: ^6.26
- roave/infection-static-analysis-plugin: ^1.25
- roave/security-advisories: dev-latest
- spatie/phpunit-watcher: ^1.23
- styleci/cli: 1.5.1
- vimeo/psalm: ^5.26
- yiisoft/translator-extractor: ^2.0
- yiisoft/yii-gii: dev-master
- yiisoft/yii-testing: dev-master
This package is auto-updated.
Last update: 2024-12-23 18:33:50 UTC
README
(place the contents of this download into yii3-i's invoice folder or run as a separate repository)
yii3-i's invoice folder
Yii3 Invoice
Features
- Cycle ORM Interface using Invoiceplane type database schema.
- Generate VAT invoices using Mpdf.
- Code Generator - Controller to views.
- PCI Compliant Payment Gateway Interfaces - Braintree Sandbox, Stripe Sandbox, and Amazon Pay Integration Tested.
- Generate openPeppol Ubl 2.1 Invoice 3.0.15 XML Invoices - Validate with Ecosio.
- StoreCove API Connector with Json Invoice.
- Invoice Cycle - Quote to Sales Order (with Client's Purchase Order details) to Invoice.
- Multiple Language Compliant - Steps to Generate new language files included.
- Separate Client Console and Company Console.
- Install with Composer.
Installing with Composer in Windows
composer update
Installing npm_modules folder containing bootstrap as mentioned in package.json
- Step 1: Download node.js at https://nodejs.org/en/download
- Step 2: Ensure C:\ProgramFiles\nodejs is in environment variable path. Search ... edit the system environment variables
- Step 3: Run
npm i
inc:\wamp64\invoice
folder. This will install @popperjs, bootstrap5, and typescript into a new node_modules folder. - Step 4: Keep your npm up to date by running e.g.
npm install -g npm@10.8.1 or just npm install -g
Recommended php.ini settings
- Step 1: Wampserver ... Php {version} ... Php Settings ... xdebug.mode = off
- Step 2: ... Maximum Execution = 360
Installing the database in mySql
- Create a database in mySql called yii3-i.
- The BUILD_DATABASE=true setting in the config/common/params.php file will ensure a firtrun setup of tables.
- After the setup of tables, ensure that this setting is changed back to false otherwise you will get performmance issues.
The c:\wamp64\yii3-i\config\common\params.php file line approx. 193 will automatically build up the tables under database yii3-i.
'mode' => $_ENV['BUILD_DATABASE'] ? PhpFileSchemaProvider::MODE_WRITE_ONLY : PhpFileSchemaProvider::MODE_READ_AND_WRITE,
** If you adjust any Entity file you will have to always make two adjustments to** ** ensure the database is updated with the new changes and relevent fields: **
-
- Change the BUILD_DATABASE=false in the .env file at the root to BUILD_DATABASE=true
-
- Once the changes have been reflected and you have checked them via e.g. phpMyAdmin revert back to the original settings
Signup your first user using + Peson icon. This user will automatically be assigned the admin role. If you do not have an internet connection you will receive an email failed message but you will still be able to login.
You or your customer, signup the second user as your Client/Customer. They will automatically be assigned the observer role. If you do not have an internet connection you will get a failed message but if your admin makes the 'Invoice User Account' status active the user will be able to login.
If a user signs up by email, they will automatically be assigned a client, and automatically be made active.
If your user has not signed up by an email verification, to enable your signed-up Client to make payments:
- Step 1: Make sure you have created a client ie. Client ... View ... New
- Step 2: Create a Settings...Invoice User Account
- Step 3: Use the Assigned Client ... Burger Button ... and assign the New User Account to an existing Client.
- Step 4: Make sure they are active.
- Step 5: Make sure the relevant invoice has the status 'sent' either by manualy editing the status of the invoice under Invoice ... View ... Options or by actually sending the invoice to the client by email under Invoice ... View ... Options.
To install at least a service and a product, and a foreign and a non-foreign client automatically follow these steps please:
- Step 1: Settings ... View ... General ... Install Test Data ... Yes AND Use Test Date ... Yes
- Step 2: In the settings menu, you will now see 'Test data can now be installed'. Click on it.
The package by default will not use VAT and will use the traditional Invoiceplane type installation providing both line item tax and invoice tax
If you require VAT based invoices, ensure VAT is setup by going to Settings ... Views ... Value Added Tax and use a separate database for this purpose. Only line item tax will be available.
Steps to translate into another language:
GeneratorController includes a function google_translate_lang ...
This function takes the English ip_lang array or gateway_lang located in
src/Invoice/Language/English
and translates it into the chosen locale (Settings...View...Google Translate)
outputting it to resources/views/generator/output_overwrite.
- Step 1: Download https://curl.haxx.se/ca/cacert.pem into active c:\wamp64\bin\php\php8.1.12 folder.
- Step 2: Select your project that you created under https://console.cloud.google.com/projectselector2/iam-admin/serviceaccounts?pportedpurview=project
- Step 3: Click on Actions icon and select Manage Keys.
- Step 4: Add Key.
- Step 5: Choose the Json File option and Download the file to src/Invoice/Google_translate_unique_folder.
- Step 6: You will have to enable the Cloud Translation API and provide your billing details. You will be charged 0 currency.
- Step 7: Move the file from views/generator/output_overwrite to eg. src/Invoice/Language/{your language}
Xml electronic invoices - Can be output if the following sequence is followed:
-
a: A logged in Client sets up their Peppol details on their side via Client...View...Options...Edit Peppol Details for e-invoicing.
-
b: A quote is created and sent by the Administrator to the Client.
-
c: A logged in Client creates a sales order from the quote with their purchase order number, purchase order line number, and their contact person in the modal.
-
d: A logged in Client, on each of the sales order line items, inputs their line item purchase order reference number, and their purchase order line number. (Mandatory or else exception will be raised).
-
e: A logged in Administrator, requests that terms and conditions be accepted.
-
f: A logged in Client accepts the terms and conditions.
-
g: A logged in Administrator, updates the status of the sales order from assembled, approved, confirmed, to generate.
-
h: A logged in Administrator can generate an invoice if the sales order status is on 'generate'
-
i: A logged in Administrator can now generate a Peppol Xml Invoice using today's exchange rates setup on Settings...View...Peppol Electronic Invoicing...One of From Currency and One of To Currency
-
j: Peppol exceptions will be raised.