Commit 665cc915 by Angel MAS

Funcionando

parent 59915aa2
...@@ -28,101 +28,133 @@ PASSWORD_FACTURA_DIGITAL=password ...@@ -28,101 +28,133 @@ PASSWORD_FACTURA_DIGITAL=password
# Como utilizar la libreria: # Como utilizar la libreria:
Registrar los datos generales de la factura Configurar regimen fiscal del emisor
> $factura = FacturaDigital::setSerie('F')
> ->setFolio('71278') > $emisor = FacturaDigital::emisor()
> ->setFecha('AUTO') > ->setRegimenFiscal('612')
> ->setFormaPago('01') > ->getData();
> ->setCondicionesDePago('CONDICIONES')
> ->setSubTotal('200'.00) Configurar la información del receptor
> ->setDescuento('50.00')
> ->setMoneda('MXN') > $receptor = FacturaDigital::receptor()
> ->setTipoCambio('1') > ->setRfc('NDI120326HF5')
> ->setTotal('174.00') > ->setNombre('Novatech Digital SA de CV')
> ->setTipoDeComprobante('I') > //->setNumRegIdTrib('')
> ->setMetodoPago('PUE') > ->setUsoCFDI('G03')
> ->setLugarExpedicion('67150') > ->setCalle('Palmas')
> ->setLeyendaFolio('Factura'); > ->setNoExt('129')
> ->setColonia('Centro')
Configurar regimen del emisor > ->setMunicipio('Guadalupe')
> $emisor = FacturaDigital::emisor() > ->setEstado('Nuevo León')
> ->setRegimenFiscal('612') > ->setPais('Mexico')
> ->getData(); > ->setCodigoPostal('98000')
> ->getData();
Configurar datos del receptor
> $receptor = FacturaDigital::receptor() Registrar los conceptos de la factura
> ->setRfc('NDI120326HF5')
> ->setNombre('Novatech Digital SA de CV') > $concepto = FacturaDigital::concepto()
> ->setNumRegIdTrib('') > ->setClaveProdServ('01010101')
> ->setUsoCFDI('G03') > ->setNoIdentificacion('01')
> ->setCalle('Palmas') > ->setCantidad('3.00')
> ->setNoExt('129') > ->setClaveUnidad('KGM')
> ->setColonia('Centro') > ->setUnidad('Kilo')
> ->setMunicipio('Guadalupe') > ->setDescripcion('Coca cola')
> ->setEstado('Nuevo León') > ->setValorUnitario('15')
> ->setPais('Mexico') > ->getData();
> ->setCodigoPostal('98000')
> ->getData();
> $concepto2 = FacturaDigital::concepto()
Registrar los conceptos a facturar > ->setClaveProdServ('01010101')
> $concepto = FacturaDigital::concepto() > ->setNoIdentificacion('02')
> ->setClaveProdServ('01010101') > ->setCantidad('2')
> ->setNoIdentificacion('01') > ->setClaveUnidad('KGM')
> ->setCantidad('1.00') > ->setUnidad('PZA')
> ->setClaveUnidad('KGM') > ->setDescripcion('Hamburgruesa')
> ->setUnidad('Kilo') > ->setValorUnitario('70')
> ->setDescripcion('Pantalla LSC Sharp') > ->getData();
> ->setValorUnitario('100.00')
> ->setImporte('100') > $concepto3 = FacturaDigital::concepto()
> ->setDescuento('25') > ->setClaveProdServ('01010101')
> ->setImpuestoBase('75.00') > ->setNoIdentificacion('03')
> ->setImpuesto('002') > ->setCantidad('3')
> ->setImpuestoTipoFactor('Tasa') > ->setClaveUnidad('KGM')
> ->setImpuestoTasaOCuota('0.160000') > ->setUnidad('PZA')
> ->setImpuestoImporte('12.00') > ->setDescripcion('Alitas Personal')
> ->getData(); > ->setValorUnitario('50')
> ->getData();
> $concepto2 = FacturaDigital::concepto()
> ->setClaveProdServ('01010101') Agregar a la lista de los conceptos
> ->setNoIdentificacion('02')
> ->setCantidad('1.00') > $lista = FacturaDigital::listaConceptos();
> ->setClaveUnidad('KGM') > $lista->setConceptos(array($concepto, $concepto2, $concepto3));
> ->setUnidad('PZA') Obtener los totales (Impuestos y conceptos libres de impuestos)
> ->setDescripcion('Memoria USB') > $totales = $lista->getTotalConceptos();
> ->setValorUnitario('100.00') > retorna ['totalConceptos', 'totalImpuestos']
> ->setImporte('100.00')
> ->setDescuento('25.00') Registrar datos generales de la factura
> ->setImpuestoBase('75.00')
> ->setImpuesto('002') > $factura = FacturaDigital::setSerie('F')
> ->setImpuestoTipoFactor('Tasa') > ->setFolio('71278')
> ->setImpuestoTasaOCuota('0.16000') > ->setFecha('AUTO')
> ->setImpuestoImporte('12.00') > ->setFormaPago('01')//01 Efectivo
> ->getData(); > ->setCondicionesDePago('Pago de contado')
> ->setMoneda('MXN')
Agregar los conceptos a la lista > ->setTipoCambio('1')
> $lista = FacturaDigital::listaConceptos() > ->setTipoDeComprobante('I')
> ->setConceptos(array($concepto, $concepto2)) > ->setMetodoPago('PUE')
> ->getData(); > ->setLugarExpedicion('67150') //C.P.
> ->setLeyendaFolio('Factura')
> ->setSubTotal($totales['totalConceptos'])
Agregar información del impuesto > //->setDescuento('30.00')
> $impuesto = FacturaDigital::impuesto() > ->setTotal($totales['totalConceptos'] + $totales['totalImpuestos'] );
> ->setTotalImpuestosTrasladados('24.00')
> ->setImpuesto('002') Registrar impuesto total
> ->setTipoFactor('Tasa')
> ->setTasaOCuota('0.16000') > $impuesto = FacturaDigital::impuesto()
> ->setImporte('24.00') > ->getData($totales['totalImpuestos']);
> ->getData();
Agregar todos los datos a la factura
Agregar los atributos anteriores a la factura final
> $factura->setEmisor($emisor); > $factura->setEmisor($emisor);
> $factura->setReceptor($receptor); > $factura->setReceptor($receptor);
> $factura->setConceptos($lista); > $factura->setConceptos($lista->getData());
> $factura->setImpuestos($impuesto); > $factura->setImpuestos($impuesto);
Leer datos de la factura Generar factura
> $factura->getData(); > $factura_final = $factura->enviar();
Enviar la factura retorna el siguiente arreglo
> $factura->enviar(); > {
> mensaje: "Timbrado exitoso",
\ No newline at end of file > codigo: 200,
> cfdi:
> {
> NoCertificado: "",
> UUID: "",
> FechaTimbrado: "2018-06-28T16:33:27",
> RfcProvCertif: "FEL100622S88",
> SelloCFD:"",
> NoCertificadoSAT: "20001000000300022323",
> SelloSAT: "",
> CadenaOrigTFD: "",
> CadenaQR: "",
> XmlBase64: "",
> PDF: "",
> XML: ""
> }
> }
Enviar factura por correo
> $enviar = $factura->enviarCorreo($uuid, '[email protected]');
Esto retorna un booleano
> if ($enviar) {
> return "Factura enviada por correo";
> } else {
> return "Errorsillo";
> }
Para cancelar un CFDI
> $cancela = $factura->cancelarCFDI('UUID');
\ No newline at end of file
...@@ -33,12 +33,14 @@ class FacturaConceptoLista ...@@ -33,12 +33,14 @@ class FacturaConceptoLista
public function getTotalConceptos() public function getTotalConceptos()
{ {
$total = 0; $total = 0;
$totalImpuestos = 0;
foreach ($this->conceptos as $concepto) { foreach ($this->conceptos as $concepto) {
$total = $total + $concepto['Importe']; $total = $total + $concepto['Importe'];
$totalImpuestos = $totalImpuestos + $concepto['Impuestos']['Traslados'][0]['Importe'];
} }
return $total; return ['totalConceptos' => $total, 'totalImpuestos' => $totalImpuestos];
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment