icemont / sling
Sling - 简单的 Laravel 发票生成器。
Requires
- php: ^8.1
- ext-json: *
- barryvdh/laravel-dompdf: ^2.0.1
- guzzlehttp/guzzle: ^7.5.1
- laravel/framework: ^9.52.7
- laravel/sanctum: ^3.2.5
- laravel/tinker: ^2.8.1
Requires (Dev)
- barryvdh/laravel-debugbar: ^3.8.1
- barryvdh/laravel-ide-helper: ^2.13
- fakerphp/faker: ^1.21
- laravel/breeze: ^1.19.2
- laravel/pint: ^1.10
- laravel/sail: ^1.21.5
- mockery/mockery: ^1.5.1
- nunomaduro/collision: ^6.4
- phpunit/phpunit: ^9.6.7
- spatie/laravel-ignition: ^1.6.4
- vimeo/psalm: ^4.30
README
Sling - 简单的 Laravel 发票生成器
Sling — 一个开源的 Web 应用程序,帮助您创建发票和跟踪收入。
目录
关于
Sling最初是为个人使用而创建的,用于方便地记录格鲁吉亚“小型企业”个体工商户的收入和发票生成(每月按总收入缴税)。
该应用程序对于具有类似税收体系的企业和个人或仅用于生成发票和收入核算都很有用。Sling 基于 Laravel PHP 框架。
已部署应用程序的截图可在此处找到。
开发者网站上的 Sling 页面:https://icemont.dev/my-scripts/sling
功能
- 客户会计。
- 为每位客户设置单独的发票号码前缀,并能够设置初始编号索引。
- 生成发票并下载 PDF 格式的发票。
- 发票模式:“一份发票 = 一项服务”
- 使用一种主要货币进行会计,并具有使用其他货币开票的能力。如果发票以非主要货币计费,则可以从汇率提供商为发票支付日期获取汇率。目前仅提供 GEL(格鲁吉亚拉里)的汇率提供商,但可以轻松添加其他货币的提供商。
- 可以创建无限数量的支付方式。可以为每个发票选择不同的支付方式。所选支付方式的信息将添加到生成的发票中。
- 为选定时间段生成报告,并按客户分组。
安装
克隆项目仓库
$ git clone https://github.com/Icemont/sling.git
接下来,转到项目数据目录,并使用 composer 安装依赖项
$ cd ./sling
$ composer install --no-dev
然后在项目根目录中创建一个设置文件 .env
,方法是从 .env.example
复制它,并编辑其中必要的选项,例如数据库连接设置。
使用以下命令生成应用程序密钥
$ php artisan key:generate --ansi
执行数据库迁移以创建初始数据库表结构
$ php artisan migrate
通过使用您选择的命令之一将货币添加到数据库中,完成安装
$ php artisan sling:install
# Or:
$ php artisan db:seed --class=CurrenciesSeeder
最小化的 JS 和 CSS 资产已在当前仓库中可用,但您可以通过安装依赖项并执行命令来安装资产的开发版本
$ npm install
$ npm run dev
然后您可以使用以下命令生成生产就绪的资产
$ npm run build
初始配置与典型的 Laravel 项目配置没有区别,因此如果遇到困难,您可以参考官方的Laravel 框架文档。
使用 Docker 安装
使用此指南在主机上安装 Docker:https://docs.dockerd.com.cn/install/
使用此指南安装 Docker Compose:https://docs.dockerd.com.cn/compose/install/
克隆项目仓库
$ git clone https://github.com/Icemont/sling.git
接下来,转到项目数据目录,并在项目根目录中创建一个设置文件 .env
,方法是从 .env.example
复制它,并编辑其中必要的选项
$ cd sling
$ cp .env.example .env
接下来,运行以下命令
$ docker-compose up -d
$ ./docker-compose/setup.sh
自定义
基本设置
您可以在文件 config/app.php
中更改一些基本应用程序设置,例如分页或默认货币
/* |-------------------------------------------------------------------------- | Sling config options |-------------------------------------------------------------------------- */ 'per_page' => [ 'clients' => 25, 'invoices' => 25, 'payment_methods' => 25, ], 'default_currency' => 'GEL', 'invoice_index_length' => 5,
新货币
如果您需要向数据库添加新的货币,您可以将它添加到 $currencies
数组中,在 database/seeders/CurrenciesSeeder.php
文件中,然后运行以下命令
$ php artisan db:seed --class=CurrenciesSeeder
路线图
📌 There are no specific deadlines and guarantees for the implementation.
- 向客户的电子邮件发送发票
- 为其他货币添加汇率提供商
- 放弃jQuery库,改用原生JS
许可证
本存储库的内容在 MIT许可证 下发布。