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!!!!
![Neurótico](http://static.forosdelweb.com/fdwtheme/images/smilies/scared.png)