hillelcoren / invoice-ninja
使用 Laravel 构建的发票、支出和时间跟踪
Requires
- php: ^8.2
- ext-curl: *
- ext-dom: *
- ext-json: *
- ext-libxml: *
- afosto/yaac: ^1.4
- asm/php-ansible: dev-main
- authorizenet/authorizenet: ^2.0
- awobaz/compoships: ^2.1
- aws/aws-sdk-php: ^3.319
- bacon/bacon-qr-code: ^2.0
- beganovich/snappdf: dev-master
- braintree/braintree_php: ^6.0
- btcpayserver/btcpayserver-greenfield-php: ^2.6
- checkout/checkout-sdk-php: ^3.0
- doctrine/dbal: ^4.0
- eway/eway-rapid-php: ^1.3
- fakerphp/faker: ^1.14
- getbrevo/brevo-php: ^1.0
- gocardless/gocardless-pro: ^4.12
- google/apiclient: ^2.7
- guzzlehttp/guzzle: ^7.2
- halaxa/json-machine: ^0.7.0
- hashids/hashids: ^4.0
- hedii/laravel-gelf-logger: ^9
- horstoeko/orderx: dev-master
- horstoeko/zugferd: ^1
- horstoeko/zugferdvisualizer: ^1
- hyvor/php-json-exporter: ^0.0.3
- imdhemy/laravel-purchases: ^1.7
- intervention/image: ^2.5
- invoiceninja/einvoice: dev-main
- invoiceninja/inspector: ^3.0
- invoiceninja/ubl_invoice: ^2
- josemmo/facturae-php: ^1.7
- laracasts/presenter: ^0.2.1
- laravel/framework: ^11.0
- laravel/slack-notification-channel: ^3
- laravel/socialite: ^5
- laravel/tinker: ^2.7
- laravel/ui: ^4.0
- league/csv: ^9.6
- league/flysystem-aws-s3-v3: ^3.0
- league/fractal: ^0.20.0
- livewire/livewire: ^3
- microsoft/microsoft-graph: ^1.69
- mollie/mollie-api-php: ^2.36
- nelexa/zip: ^4.0
- nordigen/nordigen-php: ^1.1
- nwidart/laravel-modules: ^11.0
- phpoffice/phpspreadsheet: ^2.2
- pragmarx/google2fa: ^8.0
- predis/predis: ^2
- psr/http-message: ^1.0
- pusher/pusher-php-server: ^7.2
- quickbooks/v3-php-sdk: 6.1.4-alpha
- razorpay/razorpay: 2.*
- sentry/sentry-laravel: ^4
- setasign/fpdf: ^1.8
- setasign/fpdi: ^2.3
- socialiteproviders/apple: dev-master
- socialiteproviders/microsoft: ^4.1
- sprain/swiss-qr-bill: ^4.3
- square/square: 30.0.0.*
- stripe/stripe-php: ^12
- symfony/brevo-mailer: 6.4
- symfony/http-client: ^6.0
- symfony/mailgun-mailer: ^6.1
- symfony/postmark-mailer: ^6.1
- turbo124/beacon: ^2
- twig/intl-extra: ^3.7
- twig/twig: ^3
- twilio/sdk: ^6.40
- wildbit/postmark-php: ^4.0
Requires (Dev)
- barryvdh/laravel-debugbar: ^3.6
- barryvdh/laravel-ide-helper: ^3.0
- brianium/paratest: ^7
- filp/whoops: ^2.7
- friendsofphp/php-cs-fixer: ^3.14
- laracasts/cypress: ^3.0
- larastan/larastan: ^2
- mockery/mockery: ^1.4.4
- nunomaduro/collision: ^8.1
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^10
- spatie/laravel-ignition: ^2.0
- spaze/phpstan-stripe: ^3.0
- dev-v5-stable
- v5.10.27
- v5.10.26
- v5.10.25
- v5.10.24
- v5.10.23
- v5.10.22
- v5.10.21
- v5.10.20
- v5.10.19
- v5.10.18
- v5.10.17
- v5.10.16
- v5.10.15
- v5.10.14
- v5.10.13
- v5.10.12
- v5.10.11
- v5.10.10
- v5.10.9
- v5.10.8
- v5.10.7
- v5.10.6
- v5.10.5
- v5.10.4
- v5.10.3
- v5.10.2
- v5.10.1
- v5.10.0
- v5.9.9
- v5.9.8
- v5.9.7
- v5.9.6
- v5.9.5
- v5.9.4
- v5.9.3
- v5.9.2
- v5.9.1
- v5.9.0
- v5.8.57
- v5.8.56
- v5.8.55
- v5.8.54
- v5.8.53
- v5.8.52
- v5.8.51
- v5.8.50
- v5.8.49
- v5.8.48
- v5.8.47
- v5.8.46
- v5.8.45
- v5.8.44
- v5.8.43
- v5.8.42
- v5.8.41
- v5.8.40
- v5.8.39
- v5.8.38
- v5.8.37
- v5.8.36
- v5.8.35
- v5.8.34
- v5.8.33
- v5.8.32
- v5.8.31
- v5.8.30
- v5.8.29
- v5.8.28
- v5.8.27
- v5.8.26
- v5.8.25
- v5.8.24
- v5.8.23
- v5.8.22
- v5.8.21
- v5.8.20
- v5.8.19
- v5.8.18
- v5.8.17
- v5.8.16
- v5.8.15
- v5.8.14
- v5.8.13
- v5.8.12
- v5.8.11
- v5.8.10
- v5.8.9
- v5.8.8
- v5.8.7
- v5.8.6
- v5.8.5
- v5.8.4
- v5.8.3
- v5.8.2
- v5.8.1
- v5.8.0
- v5.7.63
- v5.7.62
- v5.7.61
- v5.7.60
- v5.7.59
- v5.7.58
- v5.7.57
- v5.7.56
- v5.7.55
- v5.7.54
- v5.7.53
- v5.7.52
- v5.7.51
- v5.7.50
- v5.7.49
- v5.7.48
- v5.7.47
- v5.7.46
- v5.7.45
- v5.7.44
- v5.7.43
- v5.7.42
- v5.7.41
- v5.7.40
- v5.7.39
- v5.7.38
- v5.7.37
- v5.7.36
- v5.7.35
- v5.7.34
- v5.7.33
- v5.7.32
- v5.7.31
- v5.7.30
- v5.7.29
- v5.7.28
- v5.7.27
- v5.7.26
- v5.7.25
- v5.7.24
- v5.7.23
- v5.7.22
- v5.7.21
- v5.7.20
- v5.7.19
- v5.7.18
- v5.7.17
- v5.7.16
- v5.7.15
- v5.7.14
- v5.7.13
- v5.7.12
- v5.7.11
- v5.7.10
- v5.7.9
- v5.7.8
- v5.7.7
- v5.7.6
- v5.7.5
- v5.7.4
- v5.7.3
- v5.7.2
- v5.7.1
- v5.7.0
- v5.6.31
- v5.6.30
- v5.6.29
- v5.6.28
- v5.6.27
- v5.6.26
- v5.6.25
- v5.6.24
- v5.6.23
- v5.6.22
- v5.6.21
- v5.6.20
- v5.6.19
- v5.6.18
- v5.6.17
- v5.6.16
- v5.6.15
- v5.6.14
- v5.6.13
- v5.6.12
- v5.6.11
- v5.6.10
- v5.6.9
- v5.6.8
- v5.6.7
- v5.6.6
- v5.6.5
- v5.6.4
- v5.6.3
- v5.6.2
- v5.6.1
- v5.6.0
- v5.5.124
- v5.5.123
- v5.5.122
- v5.5.121
- v5.5.120
- v5.5.119
- v5.5.118
- v5.5.117
- v5.5.116
- v5.5.115
- v5.5.114
- v5.5.113
- v5.5.112
- v5.5.111
- v5.5.110
- v5.5.109
- v5.5.108
- v5.5.107
- v5.5.106
- v5.5.105
- v5.5.104
- v5.5.103
- v5.5.102
- v5.5.101
- v5.5.100
- v5.5.99
- v5.5.98
- v5.5.97
- v5.5.96
- v5.5.95
- v5.5.94
- v5.5.93
- v5.5.92
- v5.5.91
- v5.5.90
- v5.5.89
- v5.5.88
- v5.5.87
- v5.5.86
- v5.5.85
- v5.5.84
- v5.5.83
- v5.5.82
- v5.5.81
- v5.5.80
- v5.5.79
- v5.5.78
- v5.5.77
- v5.5.76
- v5.5.75
- v5.5.74
- v5.5.73
- v5.5.71
- v5.5.70
- v5.5.69
- v5.5.68
- v5.5.67
- v5.5.66
- v5.5.65
- v5.5.64
- v5.5.63
- v5.5.62
- v5.5.61
- v5.5.60
- v5.5.59
- v5.5.58
- v5.5.57
- v5.5.56
- v5.5.55
- v5.5.54
- v5.5.53
- v5.5.52
- v5.5.51
- v5.5.50
- v5.5.49
- v5.5.48
- v5.5.47
- v5.5.46
- v5.5.45
- v5.5.44
- v5.5.43
- v5.5.42
- v5.5.41
- v5.5.40
- v5.5.39
- v5.5.38
- v5.5.37
- v5.5.36
- v5.5.35
- v5.5.34
- v5.5.33
- v5.5.32
- v5.5.31
- v5.5.30
- v5.5.29
- v5.5.28
- v5.5.27
- v5.5.26
- v5.5.25
- v5.5.24
- v5.5.23
- v5.5.22
- v5.5.21
- v5.5.20
- v5.5.19
- v5.5.18
- v5.5.17
- v5.5.16
- v5.5.15
- v5.5.14
- v5.5.13
- v5.5.12
- v5.5.11
- v5.5.10
- v5.5.9
- v5.5.8
- v5.5.7
- v5.5.6
- v5.5.5
- v5.5.4
- v5.5.3
- v5.5.2
- v5.5.1
- v5.5.0
- v5.4.12
- v5.4.11
- v5.4.10
- v5.4.9
- v5.4.8
- v5.4.7
- v5.4.6
- v5.4.5
- v5.4.4
- v5.4.3
- v5.4.2
- v5.4.1
- v5.4.0
- v5.3.100
- v5.3.99
- v5.3.98
- v5.3.97
- v5.3.96
- v5.3.95
- v5.3.94
- v5.3.93
- v5.3.92
- v5.3.91
- v5.3.90
- v5.3.89
- v5.3.88
- v5.3.87
- v5.3.86
- v5.3.85
- v5.3.84
- v5.3.83
- v5.3.82
- v5.3.81
- v5.3.80
- v5.3.79
- v5.3.78
- v5.3.77
- v5.3.76
- v5.3.75
- v5.3.74
- v5.3.73
- v5.3.72
- v5.3.71
- v5.3.70
- v5.3.69
- v5.3.68
- v5.3.67
- v5.3.66
- v5.3.65
- v5.3.64
- v5.3.63
- v5.3.62
- v5.3.61
- v5.3.60
- v5.3.59
- v5.3.58
- v5.3.57
- v5.3.56
- v5.3.55
- v5.3.54
- v5.3.53
- v5.3.52
- v5.3.51
- v5.3.49
- v5.3.48
- v5.3.47
- v5.3.46
- v5.3.45
- v5.3.44
- v5.3.43
- v5.3.42
- v5.3.41
- v5.3.40
- v5.3.39
- v5.3.38
- v5.3.37
- v5.3.36
- v5.3.35
- v5.3.34
- v5.3.33
- v5.3.32
- v5.3.31
- v5.3.30
- v5.3.29
- v5.3.28
- v5.3.27
- v5.3.26
- v5.3.25
- v5.3.24
- v5.3.23
- v5.3.22
- v5.3.21
- v5.3.20
- v5.3.19
- v5.3.18
- v5.3.17
- v5.3.16
- v5.3.15
- v5.3.14
- v5.3.13
- v5.3.12
- v5.3.11
- v5.3.10
- v5.3.9
- v5.3.8
- v5.3.7
- v5.3.6
- v5.3.5
- v5.3.4
- v5.3.3
- v5.3.2
- v5.3.1
- v5.3.0
- v5.2.19
- v5.2.18
- v5.2.17
- v5.2.16
- v5.2.15
- v5.2.14
- v5.2.13
- v5.2.12
- v5.2.11
- v5.2.10
- v5.2.9
- v5.2.8
- v5.2.7
- v5.2.6
- v5.2.5
- v5.2.4
- v5.2.3
- v5.2.2
- v5.2.1
- v5.2.0
- v5.1.74
- v5.1.73
- v5.1.72
- v5.1.71
- v5.1.70
- v5.1.69
- v5.1.68
- v5.1.67
- v5.1.66
- v5.1.65
- v5.1.64
- v5.1.63
- v5.1.62
- v5.1.61
- v5.1.60
- v5.1.59
- v5.1.58
- v5.1.57
- v5.1.56
- v5.1.55
- v5.1.54
- v5.1.53
- v5.1.52
- v5.1.51
- v5.1.50
- v5.1.49
- v5.1.48
- v5.1.47
- v5.1.46
- v5.1.45
- v5.1.44
- v5.1.43
- v5.1.42
- v5.1.41
- v5.1.40
- v5.1.39
- v5.1.38
- v5.1.37
- v5.1.36
- v5.1.35
- v5.1.34
- v5.1.33
- v5.1.32
- v5.1.31
- v5.1.30
- v5.1.29
- v5.1.28
- v5.1.27
- v5.1.26
- v5.1.25
- v5.1.24
- v5.1.23
- v5.1.22
- v5.1.21
- v5.1.20
- v5.1.19
- v5.1.18
- v5.1.17
- v5.1.16
- v5.1.15
- v5.1.14
- v5.1.13
- v5.1.12
- v5.1.11
- v5.1.10
- v5.1.9
- v5.1.8
- v5.1.7
- v5.1.6
- v5.1.5
- v5.1.4
- v5.1.3
- v5.1.2
- v5.1.1
- v5.1.0
- v5.0.56
- v5.0.55
- v5.0.54
- v5.0.53
- v5.0.52
- v5.0.51
- v5.0.50
- v5.0.49
- v5.0.48
- v5.0.47
- v5.0.46
- v5.0.45
- v5.0.44
- v5.0.43
- v5.0.42
- v5.0.41
- v5.0.40
- v5.0.39
- v5.0.38
- v5.0.37
- v5.0.36
- v5.0.35
- v5.0.34
- v5.0.33
- v5.0.32
- v5.0.31
- v5.0.30
- v5.0.29
- v5.0.28
- v5.0.27
- v5.0.26
- v5.0.25
- v5.0.24
- v5.0.23
- v5.0.22
- v5.0.21
- v5.0.20
- v5.0.19
- v5.0.18
- v5.0.17
- v5.0.16
- v5.0.13
- v5.0.12
- v5.0.11
- v5.0.10
- v5.0.9
- v5.0.8
- v5.0.7
- v5.0.6
- v5.0.5
- v5.0.4
- v5.0.3
- v5.0.2
- v5.0.1
- v5.0
- v4.5.50
- v4.5.49
- v4.5.48
- v4.5.47
- v4.5.46
- v4.5.45
- v4.5.44
- v4.5.43
- v4.5.42
- v4.5.41
- v4.5.40
- v4.5.39
- v4.5.38
- v4.5.37
- v4.5.36
- v4.5.35
- v4.5.34
- v4.5.33
- v4.5.32
- v4.5.31
- v4.5.30
- v4.5.29
- v4.5.28
- v4.5.27
- v4.5.26
- v4.5.25
- v4.5.24
- v4.5.23
- v4.5.22
- v4.5.21
- v4.5.20
- v4.5.19
- v4.5.18
- v4.5.17
- v4.5.16
- v4.5.15
- v4.5.14
- v4.5.13
- v4.5.12
- v4.5.11
- v4.5.10
- v4.5.9
- v4.5.8
- v4.5.7
- v4.5.6
- v4.5.5
- v4.5.4
- v4.5.3
- v4.5.2
- v4.5.1
- v4.5.0
- v4.4.4
- v4.4.3
- v4.4.2
- v4.4.1
- v4.4.0
- v4.3.1
- v4.3.0
- v4.2.2
- v4.2.1
- v4.2.0
- v4.1.5
- v4.1.4
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.1
- v4.0.0
- v3.9.2
- v3.9.1
- v3.9.0
- v3.8.1
- v3.8.0
- v3.7.2
- v3.7.1
- v3.7.0
- v3.6.1
- v3.6.0
- v3.5.1
- v3.5.0
- v3.4.2
- v3.4.1
- v3.4.0
- v3.3.3
- v3.3.1
- v3.3.0
- v3.2.1
- v3.2.0
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.9.5
- v2.9.4
- v2.9.3
- v2.9.2
- v2.9.1
- v2.9.0
- v2.8.2
- v2.8.1
- v2.8
- v2.7.2
- v2.7.1
- v2.7
- v2.6.11
- v2.6.10
- v2.6.9
- v2.6.8
- v2.6.7
- v2.6.6
- v2.6.5
- v2.6.4
- v2.6.3
- v2.6.2
- v2.6.1
- v2.6
- v2.5.2.2
- v2.5.2.1
- v2.5.2
- v2.5.1.3
- v2.5.1.2
- v2.5.1.1
- v2.5.1
- v2.5.0.4
- v2.5.0.3
- v2.5.0.2
- v2.5.0.1
- v2.5.0
- v2.4.9.6
- v2.4.9.5
- v2.4.9.4
- v2.4.9.3
- v2.4.9.2
- v2.4.9.1
- v2.4.9
- v2.4.8.1
- v2.4.8
- v2.4.7
- v2.4.6
- v2.4.5
- v2.4.4
- v2.4.3
- v2.4.2
- v2.4.1
- v2.4.0
- v2.3.4
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.1
- v2.0.0
- v2.0.0_RC1
- v1.7.2
- v1.7.1
- v1.7.0
- v1.6.1
- v1.6.0
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.0
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.3
- v1.0.2
- dev-preview
- dev-master
- dev-laravel6
- dev-develop
This package is not auto-updated.
Last update: 2024-09-19 04:18:07 UTC
README
Invoice Ninja 5
Invoice Ninja 版本 5 已经发布!我们吸取了版本 4 的精华,并加入了最热门的功能,打造了一个前所未有的发票应用程序。查看Invoice Ninja YouTube 频道了解最新动态,或现在就尝试演示。
选择您的配置
托管应用程序中的所有专业和企业功能都包含在开源代码中。我们提供每年30美元的白色标签许可,以从应用程序面向客户的部分移除 Invoice Ninja 品牌。
与我们互动
文档
安装选项和客户端
移动应用
桌面应用
自托管服务器安装
注意:自托管选项支持桌面和移动应用。
推荐提供商
[高级] 快速托管设置
除了官方的Invoice Ninja - 自托管安装指南外,我们还有一些命令供您使用。
git clone --single-branch --branch v5-stable https://github.com/invoiceninja/invoiceninja.git cp .env.example .env composer i -o --no-dev
请注意:在 .env 文件中的 APP_KEY 用于加密数据,如果您丢失此信息,将无法运行应用程序。
如果您想加载数据,请运行,并记得配置 .env
php artisan migrate:fresh --seed && php artisan db:seed && php artisan ninja:create-test-data
要运行网络服务器
php artisan serve
导航到(将 localhost 替换为适当的域名)
http://localhost:8000/setup - To setup your configuration if you did not load sample data.
http://localhost:8000/ - For Administrator Logon
user: [email protected]
pass: password
http://localhost:8000/client/login - For Client Portal
user: [email protected]
pass: password
开发者指南
除了官方的Invoice Ninja - 开发者指南外,我们还有一些见解。
应用程序设计
API 和客户端门户已使用 Laravel 开发,如果您想为该项目做出贡献,熟悉 Laravel 是必不可少的。
检查 API 功能时,最佳起点是 routes/api.php 文件,该文件描述了所有可用的 API 端点。控制器方法然后描述了应用程序每个领域中的所有入口点,例如 InvoiceController / QuoteController
平均 API 请求按照以下路径进入应用程序。
- 中间件最初处理请求,检查请求的域并提供认证层。
- 请求随后传递到表单请求(在控制器方法中类型提示),用于提供授权和验证请求。如果成功,请求将被传递到控制器方法中,在这里进行处理,以下是一个示例
public function store(StoreInvoiceRequest $request) { $invoice = $this->invoice_repo->save($request->all(), InvoiceFactory::create(auth()->user()->company()->id, auth()->user()->id)); $invoice = $invoice->service() ->fillDefaults() ->triggeredActions($request) ->adjustInventory() ->save(); event(new InvoiceWasCreated($invoice, $invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); return $this->itemResponse($invoice); }
例如,我们正在存储一张新发票,我们将验证过的请求和一个工厂传递到发票仓库中,在那里进行处理和保存。
返回的发票随后通过其服务类(app/Services/Invoice)执行各种操作。
然后触发一个事件,通知应用程序(app/Providers/EventServiceProvider)中的监听器执行非阻塞子任务
最后,发票通过转换(app/Transformers/)并通过Fractal返回作为响应。
开发者环境
使用上述快速托管设置,您可以快速开始构建开发环境。而不是使用
composer i -o --no-dev
使用
composer i -o
这为开发者提供了工具,包括phpunit,允许运行测试套件。
如果您考虑向主仓库贡献,请添加任何新功能/修改的测试。这将大大增加您的PR被接受的机会
此外,如果您计划为主仓库添加任何内容,您可能希望先在Slack上与我们讨论,我们可以协助提供任何技术信息和提供建议。
致谢
安全
如果您在此应用程序中发现安全漏洞,请发送电子邮件至 [email protected]。如果检测到问题,请遵循负责任的披露程序。有关负责任的披露的更多信息,请参阅 此处。
许可证
Invoice Ninja 在Elastic License下发布。
有关详细信息,请参阅 LICENSE。