absabbath / factura-digital
用于消耗facturadigital.com.mx api的包
v1.2
2020-04-17 21:56 UTC
Requires
- php: >=5.6.4
- guzzlehttp/guzzle: >=6.0
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is not auto-updated.
Last update: 2024-09-29 05:29:44 UTC
README
absabbath/factura-digital 是一个用于在 Laravel 项目中消耗 https://www.facturadigital.com.mx/ api 的库
安装
- 在终端中运行以下命令
$ composer require absabbath/factura-digital
- 在 config/app.php 文件中将以下行添加到 provider 数组中
Absabbath\FacturaDigital\FacturaDigitalProvider::class,
- 在 config/app.php 文件中将以下行添加到 aliases 数组中
'FacturaDigital' => Absabbath\FacturaDigital\Facades\Factura::class,
如何使用此库
- 配置发件人凭证和制度
$emisor = \FacturaDigital::emisor() ->setRegimenFiscal('612') ->setUser('demo33') ->setPassword('demo') ->getData();
- 查询信贷
$creditos = \FacturaDigital::creditos()
- 返回
{ "mensaje": "11565 creditos disponibles.", "creditos": 11565, "codigo": 200 }
- 配置收件人信息
$receptor = FacturaDigital::receptor() ->setRfc('NDI120326HF5') ->setNombre('Novatech Digital SA de CV') //->setNumRegIdTrib('') ->setUsoCFDI('G03') ->setCalle('Palmas') ->setNoExt('129') ->setColonia('Centro') ->setMunicipio('Guadalupe') ->setEstado('Nuevo León') ->setPais('Mexico') ->setCodigoPostal('98000') ->getData();
- 登记发票的概念
$concepto = \FacturaDigital::concepto() ->setClaveProdServ('01010101') // Agregar clave sat en catalogo productos ->setNoIdentificacion('1') // Id interno ->setCantidad(5) // Cantidad a facturar ->setClaveUnidad('LTR') // Clave del SAT ->setUnidad('Litro') // Descripcion unidad ->setDescripcion('Descripcion/nombre del producto') ->setValorUnitario(30); // Costo por unidad
- 为每个概念创建和添加税费
$impuestos = []; // Recolecta la informacion de todos los impuestos $impuesto_iva = \FacturaDigital::conceptoImpuesto() ->setBase(30) // Base gravable ->setImpuesto('002') ->setTipoFactor('Tasa') ->setTasaOCuota(0.16000) ->setImporte(30 * 0.16000) // Base gravable X tasaocuota ->getData();
- 将税费添加到前一个概念和税费列表中
array_push($impuestos, $impuesto_iva); $concepto->addTraslado($impuesto_iva);
- 将概念列表添加到待开发列表中并获取总计
$lista = \FacturaDigital::listaConceptos(); $lista->addConcepto($concepto->getData());
- 获取总计(税费和免税概念)
$totales = $lista->getTotalConceptos(); // retorna ['totalConceptos', 'totalImpuestos']
- 登记发票的通用数据
$factura = FacturaDigital::setSerie('F') ->setFolio('71278') // Folio Interno ->setFecha('AUTO') ->setFormaPago('01')// Catalogo SAT ->setCondicionesDePago('Pago de contado') ->setMoneda('MXN') ->setTipoCambio('1') ->setTipoDeComprobante('I') ->setMetodoPago('PUE') ->setLugarExpedicion('67150') //C.P. ->setLeyendaFolio('Factura') ->setSubTotal($totales['totalConceptos']) //->setDescuento('30.00') // Descuento opcional ->setTotal($totales['totalConceptos'] + $totales['totalImpuestos'] );
- 添加税费列表
$impuestoFinal = \FacturaDigital::impuesto() ->setTraslados($impuestos);;
将所有数据添加到发票中
$factura->setEmisor($emisor); $factura->setReceptor($receptor); $factura->setConceptos($lista->getData()); $factura->setImpuestos($impuestoFinal->getData());
生成发票
$factura_final = $factura->enviar();
- 返回以下数组
{ "mensaje": "Timbrado exitoso", "codigo": 200, "cfdi": { "NoCertificado": "", "UUID": "", "FechaTimbrado": "2018-06-28T16:33:27", "RfcProvCertif": "FEL100622S88", "SelloCFD":"", "NoCertificadoSAT": "20001000000300022323", "SelloSAT": "", "CadenaOrigTFD": "", "CadenaQR": "", "XmlBase64": "", "PDF": "", "XML": "" } }
通过电子邮件发送发票
$enviar = $factura->enviarCorreo($uuid, 'tucorreo@dominio.com', 'tu mensaje adicional');
- 这返回一个布尔值
if ($enviar) { return "Factura enviada por correo"; } else { return "Errorsillo"; }
- 为了取消 CFDI
$cancela = $factura->cancelarCFDI('UUID');
在 Laravel >= 5.1 版本中进行了测试