Hola que tal, antes que nada gracias por este excelente foro.
Bueno primero que nada, tengo un webservice que crea facturas electrónicas, el documento lo genera correctamente cuando me conecto al webservice.
Este es el archivo que crea la factura:
crearfactura.php
<?php
date_default_timezone_set('EST'); //GMT
$dirservice = "";
require_once('nusoap/lib/nusoap.php');
En esta parte es donde toma los datos para crear el pdf, entonces quiero saber si hay una forma de cambiar eso y poner datos de una BD en mysql, tengo un sistema que tiene un terminal de punto de venta que crea y valida facturas, lo que quiero es vincular este webservice para que cuando valide una factura me cree tambien la factura electronica, o si se puede generar con un boton aparte.
-----------------------------------------------------------------------------------------
$strdocumento='COM|||version|3.2||serie|FAC||folio |13||fecha|2013-11-29T11:15:11||formaDePago|PAGO EN UNA SOLA EXHIBICION||TipoCambio|1.000||condicionesDePago|EF ECTOS FISCALES AL PAGO||subTotal|425.00||Moneda|MX||total|493.00||ti poDeComprobante|ingreso||metodoDePago|PAGO NO IDENTIFICADO||LugarExpedicion|MEXICO DISTRITO FEDERAL||NumCtaPago|1234||descuento|0.00||motivoDe scuento|desc
REF|||Regimen|REGIMEN GENERAL DE LEY PERSONAS MORALES
REC|||rfc|DNM070221BS4||nombre|DISEÑOS NAOMI MEXICO, S.A. DE C.V.
DOR|||calle|JOSE MARIA IZAZAGA # 50 DESP 101 1ER PISO||colonia|CENTRO||municipio|CUAHUTEMOC||estado |MEXICO, D.F.||pais|MEXICO||codigopostal|06000
CON|||cantidad|850||unidad|M||descripcion|COLA DE RATA X METRO||valorUnitario|0.50||descuento|0||importe|42 5.00
RET|||impuesto|IVA||importe|0
TRA|||impuesto|IVA||tasa|16.0||importe|68.00
ADI|||numorden|111111';
---------------------------------------------------------------------------------------------
$usuario='xxxxxx';
$pass='xxxxxx';
//funcion para el proceso de timbrado en formato txt
function procesoTimbradofya($usuario,$pass,$strdocumento) {
$return = "";
$client = new nusoap_client("https://xxxxxxxxxxx/webservice/sRecibirXML.php?wsdl", "wsdl");
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = true;
$err = $client->getError();
if ($err) {
$return = 'Constructor error: ' . $err;
}
$client->setUseCurl(0);
$datos = array('usuario' => $usuario,//'xxxxx'xxxxxx
'contra' => $pass,//'xxxxxx'xxxxxxx
'documento' => $strdocumento,
'consecutivo' => '0'
);
$result = $client->call('RecibirTXT', $datos, 'https://xxxxxxxxxxxx','https://xxxxxxxxxxx/webservice/sRecibirXML.php/RecibirTXT');
//print_r($result); die;
if ($client->fault) {
$return = 'Fault: ' . $result;
} else {
$err = $client->getError();
if ($err) {
$return = "Error: " . $err;
} else {
$return = $result;
}
}
return $return;
}
function saveXml($xml, $ruta){
$fp = fopen($ruta, "a");
fwrite($fp, $xml);
fclose($fp);
}
function savePdf($pdf, $ruta){
if(file_put_contents($ruta, base64_decode($pdf))===false){
error_log("no se pudo escribir el archivo pdf");
}
}
$xml = procesoTimbradofya($usuario,$pass,$strdocumento);
if($xml["codigo"]==201){
$timbreFiscal = explode("|",$xml["timbrefiscal"]);
saveXml($xml["descripcion"], $timbreFiscal[1].".xml");
savePdf($xml["documentopdf"], $timbreFiscal[1].".pdf");
echo "Factura generada correctamente con el UUID ".$timbreFiscal[1]." con fecha ".$timbreFiscal[2];
} else {
echo "Error ".$xml["codigo"].": ".$xml["descripcion"];
}
?>
Otra opción que pense era crear otro archivo que modificara esas lineas al momento de presionar un boton tomando los datos de la BD o de algun campo, el problema que las verticales bar(|) son necesarias para crear el documento.
Si me pueden ayudar y quitarme algunas dudas o un ejemplo, porfavor.
Espero pronta respuesta.
Gracias!!!!