Addenda Chrysler
Publicado: Jue Dic 13, 2012 4:16 pm
Hola dado
estoy en la fase de certificacion de la addenda PPY de Chrysler, pero tengo un detalle que no puedo resolver, ojala y tu me puedas ayudar
el detalle es que la addenda tiene el nodo llamado factura el cual debera llevar el prefijo PPY, el problema es que no en todo me pone el prefijo en todos los elementos, la manera de como lo estoy haciendo es :
- Despues del proceso normal de la generacion del CFD normal, genero un archivo ya sellado.
- el archivo XML ya sellado lo mando como parametro a una DLL que se encargara de pegar la Addenda y lo regresara completo al modulo principal
- dentro del modulo DLL de la addenda lo hago da la siguiente forma:
los cambios que hice dentro de la interfaz Intf_PPY que hice fueron los siguientes, agregar el prefijo PPY en le nombre del nodo factura
y esto es lo que me resulta, con los nodos nota, otroscargos, part sin prefijo, pero si con el namespace incluido dentro de ellos
Ojala puedas ayudarme a encontrar el error que estoy cometiendo o otra manera de hacerlo, te adjunto el esquema PPY.
Gracias
estoy en la fase de certificacion de la addenda PPY de Chrysler, pero tengo un detalle que no puedo resolver, ojala y tu me puedas ayudar
el detalle es que la addenda tiene el nodo llamado factura el cual debera llevar el prefijo PPY, el problema es que no en todo me pone el prefijo en todos los elementos, la manera de como lo estoy haciendo es :
- Despues del proceso normal de la generacion del CFD normal, genero un archivo ya sellado.
- el archivo XML ya sellado lo mando como parametro a una DLL que se encargara de pegar la Addenda y lo regresara completo al modulo principal
- dentro del modulo DLL de la addenda lo hago da la siguiente forma:
Código: Seleccionar todo
function Generar_Addenda(PathCFD : String; ValidaOnly : Integer) : Integer;
const
xmlns = 'xmlns=""'; (* Cadena String a Borrar, (se genera al obtener la interaz Factura) *)
var
XMLFactura : IXMLDocument;
Factura : IXMLFactura;
CFD : TCFD;
begin
Try
CFD := TCFD.Create(cfdV22); // AQUI CREO UNA INSTANCIA DEL CFD, PARA TENER LA CLASE COMPLETA
CFD.LoadFromFile(PathCFD); // AQUI CARGO EL XML YA SELLADO, LISTO PARA PEGAR LA ADDENDA
XMLFactura := TXMLDocument.Create(Nil);
XMLFactura.Active := True;
Factura := GetFactura(XMLFactura);
// ************* PERSONALIZAR ADDENDA CHRYSLER PPY ********************** AQUI LLENO LA ADDENDA CON LOS DATOS DE LA BASE DE DATOS
With Factura do
begin
TipoDocumento := cds_cliente.FieldByName('TipoDocumento').AsString;
TipoDocumentoFiscal := cds_Cliente.FieldByName('TipoDocumentoFiscal').AsString;
Version := cds_Cliente.FieldByName('Version').AsString;
......
.....
end;
FACTURA.OwnerDocument.Options := [doAutoPrefix];
CFD.Datos.Addenda.ChildNodes.Add(Factura);
Factura.SetAttributeNS('xmlns:PPY','', 'http://www.dfdchryslerdemexico.com.mx/Addenda/PPY');
Factura.Attributes['xsi:schemaLocation'] := 'http://www.dfdchryslerdemexico.com.mx/Addenda/PPY http://www.dfdchryslerdemexico.com.mx/Addenda/PPY/PPY.XSD';
CFD.SaveToFile('C:\Paso\CFD_PRUEBA_ADDENDA_CHRYSLER.XML');
Finally
......
......
End;
Código: Seleccionar todo
function Getfactura(Doc: IXMLDocument): IXMLFactura;
function Loadfactura(const FileName: string): IXMLFactura;
function Newfactura: IXMLFactura;
const
TargetNamespace =
'http://www.dfdchryslerdemexico.com.mx/Addenda/PPY'; // xsi:schemaLocation="http://www.dfdchryslerdemexico.com.mx/Addenda/PPY http://www.dfdchryslerdemexico.com.mx/Addenda/PPY/PPY.XSD"';
implementation
{ Global Functions }
function Getfactura(Doc: IXMLDocument): IXMLFactura;
begin
Result := Doc.GetDocBinding('PPY:factura', TXMLFactura, TargetNamespace) as IXMLFactura;
end;
function Loadfactura(const FileName: string): IXMLFactura;
begin
Result := LoadXMLDocument(FileName).GetDocBinding('PPY:factura', TXMLFactura, TargetNamespace) as IXMLFactura;
end;
function Newfactura: IXMLFactura;
begin
Result := NewXMLDocument.GetDocBinding('PPY:factura', TXMLFactura, TargetNamespace) as IXMLFactura;
end;
Código: Seleccionar todo
<Addenda>
<PPY:factura tipoDocumento="PPY" TipoDocumentoFiscal="FA" version="1.0" serie="A" folioFiscal="451" fecha="2012-06-20" montoTotal="9960.98" referenciaProveedor="A 451" xmlns:PPY="http://www.dfdchryslerdemexico.com.mx/Addenda/PPY" xsi:schemaLocation="http://www.dfdchryslerdemexico.com.mx/Addenda/PPY http://www.dfdchryslerdemexico.com.mx/Addenda/PPY/PPY.XSD">
<PPY:moneda tipoMoneda="USD" tipoCambio="1.0000"/>
<PPY:proveedor codigo="20215" nombre="NOMBRE DE LA EMPRESA S.A. DE C.V."/>
<PPY:destino codigo="8476" nombre="PLANTA DE MOTORES 4 CILINDROS - SALTILLO"/>
<nota xmlns="http://www.dfdchryslerdemexico.com.mx/Addenda/PPY">Addenda de Prueba</nota>
<otrosCargos xmlns="http://www.dfdchryslerdemexico.com.mx/Addenda/PPY" codigo="V6" monto="1373.93"/>
<PPY:partes>
<part xmlns="http://www.dfdchryslerdemexico.com.mx/Addenda/PPY" numero="123456" cantidad="1.0000" unidadDeMedida="EA" precioUnitario="8587.0500" montoDeLinea="8587.05">
<references ordenCompra="XYZ6675" releaseRequisicion="XYZ4218000" ammendment="A"/>
<nota>Probando Addenda</nota>
</part>
</PPY:partes>
</PPY:factura>
</Addenda>
Gracias