warrior/ticketer

使用 ESCPOS 打印票务和发票

1.0.0 2021-06-04 15:32 UTC

This package is auto-updated.

Last update: 2024-09-04 22:55:00 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

一个简单的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。
    • connector_descriptor:
      • 如果您的connector_typewindowscups,则为您打印机的名称。
      • 如果您的connector_typenetwork,则IP地址或Samba URI,例如:smb://192.168.0.5/PrinterName
      • 如果您的connector_typedummy,则不需要指定connector_descriptor
    • connector_port:
      • 如果您的connector_typenetwork,则打开的打印机端口。
    • 更多信息请参阅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 包模板生成。