warrior / ticketer
使用 ESCPOS 打印票务和发票
1.0.0
2021-06-04 15:32 UTC
Requires
- php: ^7.2.5|^8.0
- illuminate/container: ^7.0|^8.0
- illuminate/contracts: ^7.0|^8.0
- illuminate/database: ^7.0|^8.0
- illuminate/support: ^7.0|^8.0
- mike42/escpos-php: ^3.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
一个简单的Laravel包,用于整合ESC/POS打印驱动程序,并根据Sunat法规提供凭证结构。
- 凭证:发票和账单
- 票务:厨房、预付款(即将推出)。
安装
您可以通过composer安装此包
composer require warrior/ticketer
使用
执行以下命令以发布此包使用的配置
php artisan vendor:publish --provider="Warrior\Ticketer\TicketerServiceProvider" --tag="config"
可选:服务提供程序将自动注册。或者,您可以将服务提供程序手动添加到config / app.php文件中
'providers' => [ // ... Warrior\Ticketer\TicketerServiceProvider::class, ];
预先配置
按照以下方式编辑位于config / ticketer.php
的配置文件
-
在
connector_type
:- 如果您的服务器是Windows,则使用
windows
。 - 如果您的服务器是Linux或Mac,则使用
cups
。 - 如果您的服务器是网络,则使用
network
。 - 如果用户需要从缓冲区中检索数据,则使用
dummy
。用于API。
- 如果您的服务器是Windows,则使用
connector_descriptor
:- 如果您的
connector_type
是windows
或cups
,则为您打印机的名称。 - 如果您的
connector_type
是network
,则IP地址或Samba URI,例如:smb://192.168.0.5/PrinterName
。 - 如果您的
connector_type
是dummy
,则不需要指定connector_descriptor
。
- 如果您的
connector_port
:- 如果您的
connector_type
是network
,则打开的打印机端口。
- 如果您的
- 更多信息请参阅mike42/escpos-php
-
为凭证的标题配置
store
ruc
:商店或企业的唯一纳税人登记号。nombre_comercial
:商店或企业的商业名称。razon_social
:商店或企业的名称。direccion
:商店或企业的地址。telefono
:商店或企业的电话。email
:商店或企业的电子邮件。website
:商店或企业的网站(客户可以在此处查询其凭证)。logo
:商店标志的路径。如果没有标志,请在false
中指定,并将商业名称用作标题的主要标志。建议使用300x120像素的尺寸,并且最好是黑白图像。
-
为凭证的结尾配置
leyendas
亚马逊地区森林中的建筑合同
.亚马逊地区森林提供的服务,用于在同一地区消费
.亚马逊地区森林转让的商品,用于在同一地区消费
.- 需要添加的任何其他标语。
打印凭证示例
use Warrior\Ticketer\Ticketer; ...
$now = Carbon::now(); $ticketer = new Ticketer(); $ticketer->init('windows', 'EPSON TM-T88V Receipt'); $ticketer->setFechaEmision($now); $ticketer->setComprobante('BOLETA'); $ticketer->setSerieComprobante('B001'); $ticketer->setNumeroComprobante('000000100'); $ticketer->seCodigoComprobante('01'); $ticketer->setCliente('Edwin Alexander Bautista Villegas'); $ticketer->setTipoDocumento(1); $ticketer->setNumeroDocumento('72462226'); $ticketer->setCodigoDocumento('01'); $ticketer->setDireccion('Jr. Enarte Torres 421 - Santa Lucia'); $ticketer->setTipoDetalle('DETALLADO'); // $nombre, $cantidad, $precio, $icbper, $gratuita $ticketer->addItem("POLLO A LA BRASA", 2, 21.5, false, false); // $ticketer->addItem("ENSALADA RUSA", 3, 12, false, false); // $ticketer->addItem("POLLO A LA BRASA", 4, 2 , false, false); // $ticketer->addItem("AGUA MINERAL", 1, 2 , false, true); // $ticketer->addItem("BOLSA PLASTICA", 1, 0.2 , true, false); // Retornara true al mandar la impresión $ticketer->printComprobante(); // Si quiere obtener los datos de impresion en base64 // util para trabajar con APIS web // return $ticketer->printComprobante(true);
打印预付款示例
use Warrior\Ticketer\Ticketer; ...
$now = Carbon::now(); $ticketer = new Ticketer(); $ticketer->init('windows', 'EPSON TM-T88V Receipt'); $ticketer->setFechaEmision($now); $ticketer->setCliente('Edwin Alexander Bautista Villegas'); $ticketer->setAmbiente('MESA 01 - SALON PRINCIPAL'); $ticketer->addItem("POLLO A LA BRASA", 2, 21.5, false, false); $ticketer->addItem("ENSALADA RUSA", 3, 12, false, false); $ticketer->setMozo('Junito Bardales'); // Retornara true al mandar la impresión $ticketer->printAvance(); // Si quiere obtener los datos de impresion en base64 // util para trabajar con APIS web // return $ticketer->printAvance(true);
打印厨房票务示例
use Warrior\Ticketer\Ticketer; ...
$now = Carbon::now(); $ticketer = new Ticketer(); $ticketer->init('windows', 'EPSON TM-T88V Receipt'); $ticketer->setFechaEmision($now); $ticketer->setCliente('Edwin Alexander Bautista Villegas'); $ticketer->setAmbiente('MESA 01 - SALON PRINCIPAL'); /** * Agregar un false adicional para no imprimir en formato comprobante * El precio, el icbper, transferencia gratuita seran obiados ya que no son necesarios en la cocina * Ejemplo: * [1] - Pollo a la brasa * [2] - Coca Cola */ $ticketer->addItem("POLLO A LA BRASA", 2, 21.5, false, false, false); $ticketer->addItem("ENSALADA RUSA", 3, 12, false, false, false); $ticketer->setMozo('Junito Bardales'); // Retornara true al mandar la impresión $ticketer->printCocina(); // Si quiere obtener los datos de impresion en base64 // util para trabajar con APIS web // return $ticketer->printCocina(true);
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件发送给 edwinbautista@upeu.edu.pe,而不是使用问题跟踪器。
致谢
许可证
MIT许可证(MIT)。更多信息请参阅许可证文件。
Laravel 包模板
本包使用Laravel 包模板生成。