sCta1 is string
xSaldoinicial is numeric(10,2)
xSaldofinal is numeric(10,2)
xDebe is numeric(10,2)
xHaber is numeric(10,2)
sArchivoXML is string
cInformacion is character = "N"
nRenglones is int
nContador is int
nContador2 is int = 0
sDocName is xmlDocument <description = "BalanzaComprobacion_1_2">
nNameSpace1 is xmlNamespace
nNameSpace2 is xmlNamespace
nNode is dynamic xmlNode
nNode = sDocName.Balanza
IF COMBO_Informacion..DisplayedValue = "Normal" THEN
cInformacion = "N"
ELSE
cInformacion = "C"
END
sDocName.Balanza:Version = "1.1"
sDocName.Balanza:RFC = COMBO_RFC..DisplayedValue
sDocName.Balanza:Mes = NumToString(COMBO_Mes..Value,"02d")
sDocName.Balanza:Anio = COMBO_Anio..DisplayedValue
sDocName.Balanza:TipoEnvio = cInformacion
nNameSpace1.Name = "xsi"
nNameSpace1.URI = "http://www.w3.org/2001/XMLSchema-instance"
nNameSpace2..Name= "schemaLocation"
nNameSpace2..URI = "www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd"
sDocName.Balanza..Namespace.Name = "BCE"
Add(nNode..NamespaceDeclared, nNameSpace1)
Add(nNode..NamespaceDeclared, nNameSpace2)
//sDocName..schemaLocation = "http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd"
//nNode:schemaLocation..Name = "xsi"
//nNode:schemaLocation..Value = "http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd"
MyExcelDoc is xlsDocument
MyExcelFile is string = EDT_ExcelFile
IF MyExcelFile = "" THEN RETURN
MyExcelDoc = xlsOpen(MyExcelFile,xlsWrite )
IF MyExcelDoc <> -1 THEN
nRenglones = xlsNbRow(MyExcelDoc)
FOR nContador = 2 TO nRenglones
// Retrieve the value of a cell
sCta1 = xlsData(MyExcelDoc, nContador, 1)
xSaldoinicial = xlsData(MyExcelDoc, nContador,2)
xDebe = xlsData(MyExcelDoc, nContador,3)
xHaber = xlsData(MyExcelDoc, nContador,4)
xSaldofinal = xlsData(MyExcelDoc, nContador,5)
/////////// crea xml
IF sCta1 <> "" THEN
nContador2 += 1
sDocName.Balanza.Ctas[nContador2]:Debe = xDebe
sDocName.Balanza.Ctas[nContador2]:Haber = xHaber
sDocName.Balanza.Ctas[nContador2]:NumCta= sCta1
sDocName.Balanza.Ctas[nContador2]:SaldoFin = xSaldofinal
sDocName.Balanza.Ctas[nContador2]:SaldoIni = xSaldoinicial
END
END
IF XMLValidDocument(sDocName) = True THEN
sArchivoXML = COMBO_RFC..DisplayedValue + NumToString(COMBO_Anio..DisplayedValue) + NumToString(COMBO_Mes..Value,"02d") + "B" + cInformacion + ".XML"
XMLSave(sDocName, EDT_Destino+ "\" + sArchivoXML)
IF ErrorOccurred = True THEN
Error("Unable to save the XML document", ErrorInfo())
ELSE
Info("OK")
END
ELSE
Error("The XML document is invalid", ErrorInfo())
END
END
xlsClose(MyExcelDoc)
viernes, 11 de agosto de 2017
Envío de correo
MySession is EmailSMTPSession
MyMessage is Email
myAttach is EmailAttach
sFile is string
MySession..ServerAddress = "smtp.miempresa.com.mx"
// The TLS port depends on the provider, don't forget to check it!
MySession..Port = 2525
MySession..Name = "gmero@miempresa.com.mx"
MySession..Password = "secrEto*"
EmailSetTimeOut(10)
IF EmailStartSession(MySession) = False THEN
Error("no se pudo iniciar la sesión SMTP", ErrorInfo())
RETURN
END
EmailReset(MyMessage)
MyMessage..Sender = "gmero@miempresa.com.mx"
MyMessage..SenderAddress = "gmero@miempresa.com.mx"
Add(MyMessage..Recipient, "yootro@otraempresa.com.mx")
MyMessage..Subject = "Prueba desde windev"
MyMessage..Message = "Hola Mundo 1"
//adjunto el archivo anexo
// Select the file to attach
sFile = EDT_File
// Build the EmailAttach variable if exist
IF fFileExist(sFile) = True
myAttach..Name = fExtractPath(sFile, fFileName)
myAttach..Content = fLoadText(sFile)
myAttach..ContentType = "application/pdf"
myAttach..ContentDescription = "A PDF document"
// Add the attachment
Add(MyMessage..Attach, myAttach)
END
EmailSendMessage(MySession,MyMessage)
EmailCloseSession(MySession)
MyMessage is Email
myAttach is EmailAttach
sFile is string
MySession..ServerAddress = "smtp.miempresa.com.mx"
// The TLS port depends on the provider, don't forget to check it!
MySession..Port = 2525
MySession..Name = "gmero@miempresa.com.mx"
MySession..Password = "secrEto*"
EmailSetTimeOut(10)
IF EmailStartSession(MySession) = False THEN
Error("no se pudo iniciar la sesión SMTP", ErrorInfo())
RETURN
END
EmailReset(MyMessage)
MyMessage..Sender = "gmero@miempresa.com.mx"
MyMessage..SenderAddress = "gmero@miempresa.com.mx"
Add(MyMessage..Recipient, "yootro@otraempresa.com.mx")
MyMessage..Subject = "Prueba desde windev"
MyMessage..Message = "Hola Mundo 1"
//adjunto el archivo anexo
// Select the file to attach
sFile = EDT_File
// Build the EmailAttach variable if exist
IF fFileExist(sFile) = True
myAttach..Name = fExtractPath(sFile, fFileName)
myAttach..Content = fLoadText(sFile)
myAttach..ContentType = "application/pdf"
myAttach..ContentDescription = "A PDF document"
// Add the attachment
Add(MyMessage..Attach, myAttach)
END
EmailSendMessage(MySession,MyMessage)
EmailCloseSession(MySession)
Genera XML
miCFDI is xmlDocument <description = "cfdv33">
nNameSpace1 is xmlNamespace
nNameSpace2 is xmlNamespace
nNameSpace3 is xmlNamespace
nNode is dynamic xmlNode
nNode = miCFDI.Comprobante
nNameSpace1.Name = "xsi"
nNameSpace1.URI = "http://www.w3.org/2001/XMLSchema-instance"
Add(nNode..NamespaceDeclared, nNameSpace1)
XMLAddAttribute(miCFDI,"xsi:schemaLocation","www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd")
miCFDI.Comprobante:Version = XML_TextoConEscape("3.3")
miCFDI.Comprobante:Serie = XML_TextoConEscape("A")
miCFDI.Comprobante:Folio = XML_TextoConEscape("12345")
miCFDI.Comprobante:Fecha = XML_TextoConEscape("2017-05-11T16:07:07")
miCFDI.Comprobante:Sello = ""
miCFDI.Comprobante:FormaPago = XML_TextoConEscape("01")
miCFDI.Comprobante:NoCertificado = "12345678901234567890"
miCFDI.Comprobante:Certificado = ""
miCFDI.Comprobante:CondicionesDePago = XML_TextoConEscape("UNA SOLA EXHIBICION")
miCFDI.Comprobante:SubTotal = "110.00"
miCFDI.Comprobante:Descuento = "10.00"
miCFDI.Comprobante:Moneda = "MXN"
///miCFDI.Comprobante:TipoCambio = "1"
miCFDI.Comprobante:Total = "116.00"
miCFDI.Comprobante:TipoDeComprobante = "I"
miCFDI.Comprobante:MetodoPago = XML_TextoConEscape("PUE")
miCFDI.Comprobante:LugarExpedicion = "03920"
//miCFDI.Comprobante:Confirmacion = "ECVH1"
miCFDI.Comprobante.CfdiRelacionados:TipoRelacion = "05"
miCFDI.Comprobante.CfdiRelacionados.CfdiRelacionado[1]:UUID = "9C1605E0-D05B-456F-9734-10788CC2E07D" //"5FB2822E-396D-4725-8521-CDC4BDD20CCF"
miCFDI.Comprobante.Emisor:Rfc = "ALI890323KX5"
miCFDI.Comprobante.Emisor:Nombre = "ABARROTES LA IMPERIAL SA DE CV"
miCFDI.Comprobante.Emisor:RegimenFiscal = "601"
miCFDI.Comprobante.Receptor:Rfc = "MAFR570325MH5"
miCFDI.Comprobante.Receptor:Nombre = "MARTINEZ FUENTES RODRIGO"
miCFDI.Comprobante.Receptor:ResidenciaFiscal = "MEX"
//miCFDI.Comprobante.Receptor:NumRegIdTrib = ""
miCFDI.Comprobante.Receptor:UsoCFDI = "P01"
miCFDI.Comprobante.Conceptos.Concepto[1]:ClaveProdServ = "01010101"
miCFDI.Comprobante.Conceptos.Concepto[1]:NoIdentificacion = "CLAVE INTERNA"
miCFDI.Comprobante.Conceptos.Concepto[1]:Cantidad = "1"
miCFDI.Comprobante.Conceptos.Concepto[1]:ClaveUnidad = "SR"
miCFDI.Comprobante.Conceptos.Concepto[1]:Unidad = "STRIP"
miCFDI.Comprobante.Conceptos.Concepto[1]:Descripcion = "REPARACION DE EQUIPO"
miCFDI.Comprobante.Conceptos.Concepto[1]:ValorUnitario = "110.00"
miCFDI.Comprobante.Conceptos.Concepto[1]:Importe = "110.00"
miCFDI.Comprobante.Conceptos.Concepto[1]:Descuento = "10.00"
miCFDI.Comprobante.Conceptos.Concepto[1].Impuestos.Traslados.Traslado[1]:Base = "100.00"
miCFDI.Comprobante.Conceptos.Concepto[1].Impuestos.Traslados.Traslado[1]:Impuesto = "002"
miCFDI.Comprobante.Conceptos.Concepto[1].Impuestos.Traslados.Traslado[1]:TipoFactor = "Tasa"
miCFDI.Comprobante.Conceptos.Concepto[1].Impuestos.Traslados.Traslado[1]:TasaOCuota = "0.160000"
miCFDI.Comprobante.Conceptos.Concepto[1].Impuestos.Traslados.Traslado[1]:Importe = "16.00"
miCFDI.Comprobante.Impuestos:TotalImpuestosTrasladados = "16.00"
miCFDI.Comprobante.Impuestos.Traslados.Traslado[1]:Impuesto = "002"
miCFDI.Comprobante.Impuestos.Traslados.Traslado[1]:TipoFactor = "Tasa"
miCFDI.Comprobante.Impuestos.Traslados.Traslado[1]:TasaOCuota = "0.160000"
miCFDI.Comprobante.Impuestos.Traslados.Traslado[1]:Importe = "16.00"
//nNameSpace1.Name = "cfdi"
//nNameSpace1.URI = "http://www.w3.sat.gob.mx/cfd/3"
//Add(nNode..NamespaceDeclared, nNameSpace3)
IF XMLValidDocument(miCFDI) = True THEN
sArchivoXML is string = "Cfdi33" + ".XML"
XMLSave(miCFDI, EDT_Directorio+ "\" + sArchivoXML)
IF ErrorOccurred = True THEN
Error("No se pudo grabar el documento", ErrorInfo())
ELSE
Info("OK")
END
ELSE
Error("El documento XML es inválido", ErrorInfo())
END
nNameSpace1 is xmlNamespace
nNameSpace2 is xmlNamespace
nNameSpace3 is xmlNamespace
nNode is dynamic xmlNode
nNode = miCFDI.Comprobante
nNameSpace1.Name = "xsi"
nNameSpace1.URI = "http://www.w3.org/2001/XMLSchema-instance"
Add(nNode..NamespaceDeclared, nNameSpace1)
XMLAddAttribute(miCFDI,"xsi:schemaLocation","www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd")
miCFDI.Comprobante:Version = XML_TextoConEscape("3.3")
miCFDI.Comprobante:Serie = XML_TextoConEscape("A")
miCFDI.Comprobante:Folio = XML_TextoConEscape("12345")
miCFDI.Comprobante:Fecha = XML_TextoConEscape("2017-05-11T16:07:07")
miCFDI.Comprobante:Sello = ""
miCFDI.Comprobante:FormaPago = XML_TextoConEscape("01")
miCFDI.Comprobante:NoCertificado = "12345678901234567890"
miCFDI.Comprobante:Certificado = ""
miCFDI.Comprobante:CondicionesDePago = XML_TextoConEscape("UNA SOLA EXHIBICION")
miCFDI.Comprobante:SubTotal = "110.00"
miCFDI.Comprobante:Descuento = "10.00"
miCFDI.Comprobante:Moneda = "MXN"
///miCFDI.Comprobante:TipoCambio = "1"
miCFDI.Comprobante:Total = "116.00"
miCFDI.Comprobante:TipoDeComprobante = "I"
miCFDI.Comprobante:MetodoPago = XML_TextoConEscape("PUE")
miCFDI.Comprobante:LugarExpedicion = "03920"
//miCFDI.Comprobante:Confirmacion = "ECVH1"
miCFDI.Comprobante.CfdiRelacionados:TipoRelacion = "05"
miCFDI.Comprobante.CfdiRelacionados.CfdiRelacionado[1]:UUID = "9C1605E0-D05B-456F-9734-10788CC2E07D" //"5FB2822E-396D-4725-8521-CDC4BDD20CCF"
miCFDI.Comprobante.Emisor:Rfc = "ALI890323KX5"
miCFDI.Comprobante.Emisor:Nombre = "ABARROTES LA IMPERIAL SA DE CV"
miCFDI.Comprobante.Emisor:RegimenFiscal = "601"
miCFDI.Comprobante.Receptor:Rfc = "MAFR570325MH5"
miCFDI.Comprobante.Receptor:Nombre = "MARTINEZ FUENTES RODRIGO"
miCFDI.Comprobante.Receptor:ResidenciaFiscal = "MEX"
//miCFDI.Comprobante.Receptor:NumRegIdTrib = ""
miCFDI.Comprobante.Receptor:UsoCFDI = "P01"
miCFDI.Comprobante.Conceptos.Concepto[1]:ClaveProdServ = "01010101"
miCFDI.Comprobante.Conceptos.Concepto[1]:NoIdentificacion = "CLAVE INTERNA"
miCFDI.Comprobante.Conceptos.Concepto[1]:Cantidad = "1"
miCFDI.Comprobante.Conceptos.Concepto[1]:ClaveUnidad = "SR"
miCFDI.Comprobante.Conceptos.Concepto[1]:Unidad = "STRIP"
miCFDI.Comprobante.Conceptos.Concepto[1]:Descripcion = "REPARACION DE EQUIPO"
miCFDI.Comprobante.Conceptos.Concepto[1]:ValorUnitario = "110.00"
miCFDI.Comprobante.Conceptos.Concepto[1]:Importe = "110.00"
miCFDI.Comprobante.Conceptos.Concepto[1]:Descuento = "10.00"
miCFDI.Comprobante.Conceptos.Concepto[1].Impuestos.Traslados.Traslado[1]:Base = "100.00"
miCFDI.Comprobante.Conceptos.Concepto[1].Impuestos.Traslados.Traslado[1]:Impuesto = "002"
miCFDI.Comprobante.Conceptos.Concepto[1].Impuestos.Traslados.Traslado[1]:TipoFactor = "Tasa"
miCFDI.Comprobante.Conceptos.Concepto[1].Impuestos.Traslados.Traslado[1]:TasaOCuota = "0.160000"
miCFDI.Comprobante.Conceptos.Concepto[1].Impuestos.Traslados.Traslado[1]:Importe = "16.00"
miCFDI.Comprobante.Impuestos:TotalImpuestosTrasladados = "16.00"
miCFDI.Comprobante.Impuestos.Traslados.Traslado[1]:Impuesto = "002"
miCFDI.Comprobante.Impuestos.Traslados.Traslado[1]:TipoFactor = "Tasa"
miCFDI.Comprobante.Impuestos.Traslados.Traslado[1]:TasaOCuota = "0.160000"
miCFDI.Comprobante.Impuestos.Traslados.Traslado[1]:Importe = "16.00"
//nNameSpace1.Name = "cfdi"
//nNameSpace1.URI = "http://www.w3.sat.gob.mx/cfd/3"
//Add(nNode..NamespaceDeclared, nNameSpace3)
IF XMLValidDocument(miCFDI) = True THEN
sArchivoXML is string = "Cfdi33" + ".XML"
XMLSave(miCFDI, EDT_Directorio+ "\" + sArchivoXML)
IF ErrorOccurred = True THEN
Error("No se pudo grabar el documento", ErrorInfo())
ELSE
Info("OK")
END
ELSE
Error("El documento XML es inválido", ErrorInfo())
END
Timbrando con Facturador Electrónico
bufMessageXML is Buffer
sFacturaXML is string
ResExecute is boolean
sRespuesta is string
sResultado1 is string
sMiarchivo4 is string = "c:\temp\MiCfdi4.xml" //archivo completo de respuesta del pac
sMiarchivo5 is string = "c:\temp\MiCfdi5.xml" //timbre obtenido del pac
// Create
sFacturaXML = fLoadText(EDT_File,foAnsi)
bufMessageXML = ...
"<?xml version=""1.0"" encoding=""utf-8"" ?>" + ...
"<soap:Envelope xmlns:soap=""http://www.w3.org/2003//05/soap-envelope/""" + ...
" xmlns:tim=""http://facturadorelectronico.com/timbrado"">" + ...
" <soap:Header/>" + ...
" <soap:Body>" + ...
"<tim:obtenerTimbrado>" + ...
"<tim:CFDIcliente>" + "<![CDATA["+sFacturaXML + "]]> " + "</tim:CFDIcliente>" + ...
"<tim:Usuario>test</tim:Usuario>" + ...
"<tim:password>TEST</tim:password>" + ...
"</tim:obtenerTimbrado></soap:Body></soap:Envelope>"
//
Info(bufMessageXML)
//https://stagetimbrado.facturador.com/timbrado.asmx
//http://facturadorelectronico.com/timbrado/obtenerTimbrado
sURL is string = URLEncode("https://stagetimbrado.facturador.com/timbrado.asmx")
sAccion is a string = URLEncode("http://facturadorelectronico.com/timbrado/obtenerTimbrado")
//HTTPCertificate(
// Run the procedure
//ResExecute = SOAPRunXML(sURL ,bufMessageXML,sAccion)
ResExecute = SOAPRunXML("https://stagetimbrado.facturador.com/timbrado.asmx",bufMessageXML,sAccion)
IF ResExecute = True THEN // Is the communication with the server successful?
// Is the procedure successfully run?
sRespuesta = SOAPGetResult(SOAPXMLResult)
fSaveText(sMiarchivo4,sRespuesta)
IF sRespuesta <> "" THEN
//Info(sRespuesta) // Display the result returned by the procedure
ELSE
Error("El error es: " + SOAPError(SOAPErrMessage))
// Display the error returned by the SOAP server
END
ELSE
Error("No hay respuesta del servidor", ErrorInfo(errMessage),ResExecute)
END
sResultado1 = XMLExtractString(sRespuesta,"obtenerTimbradoResult",1,XMLExact)
Message(sResultado1)
sFacturaXML is string
ResExecute is boolean
sRespuesta is string
sResultado1 is string
sMiarchivo4 is string = "c:\temp\MiCfdi4.xml" //archivo completo de respuesta del pac
sMiarchivo5 is string = "c:\temp\MiCfdi5.xml" //timbre obtenido del pac
// Create
sFacturaXML = fLoadText(EDT_File,foAnsi)
bufMessageXML = ...
"<?xml version=""1.0"" encoding=""utf-8"" ?>" + ...
"<soap:Envelope xmlns:soap=""http://www.w3.org/2003//05/soap-envelope/""" + ...
" xmlns:tim=""http://facturadorelectronico.com/timbrado"">" + ...
" <soap:Header/>" + ...
" <soap:Body>" + ...
"<tim:obtenerTimbrado>" + ...
"<tim:CFDIcliente>" + "<![CDATA["+sFacturaXML + "]]> " + "</tim:CFDIcliente>" + ...
"<tim:Usuario>test</tim:Usuario>" + ...
"<tim:password>TEST</tim:password>" + ...
"</tim:obtenerTimbrado></soap:Body></soap:Envelope>"
//
Info(bufMessageXML)
//https://stagetimbrado.facturador.com/timbrado.asmx
//http://facturadorelectronico.com/timbrado/obtenerTimbrado
sURL is string = URLEncode("https://stagetimbrado.facturador.com/timbrado.asmx")
sAccion is a string = URLEncode("http://facturadorelectronico.com/timbrado/obtenerTimbrado")
//HTTPCertificate(
// Run the procedure
//ResExecute = SOAPRunXML(sURL ,bufMessageXML,sAccion)
ResExecute = SOAPRunXML("https://stagetimbrado.facturador.com/timbrado.asmx",bufMessageXML,sAccion)
IF ResExecute = True THEN // Is the communication with the server successful?
// Is the procedure successfully run?
sRespuesta = SOAPGetResult(SOAPXMLResult)
fSaveText(sMiarchivo4,sRespuesta)
IF sRespuesta <> "" THEN
//Info(sRespuesta) // Display the result returned by the procedure
ELSE
Error("El error es: " + SOAPError(SOAPErrMessage))
// Display the error returned by the SOAP server
END
ELSE
Error("No hay respuesta del servidor", ErrorInfo(errMessage),ResExecute)
END
sResultado1 = XMLExtractString(sRespuesta,"obtenerTimbradoResult",1,XMLExact)
Message(sResultado1)
Timbrado con Solución Factible
TimbradoParametros is timbrar
TimbradoParametros.usuario= "testing@solucionfactible.com"
TimbradoParametros.password = "timbrado.SF.16672"
TimbradoParametros.cfdi = fLoadBuffer(EDT_File)
TimbradoParametros.zip = False
TimbradoResultado is timbrarResponse = Timbrado.timbrar(TimbradoParametros)
sErrorCode is UNICODE string = TimbradoResultado.'return'.status
Info(sErrorCode, TimbradoResultado.'return'.mensaje)
IF sErrorCode = 200 THEN // timbrado exitoso
Info(TimbradoResultado.'return'.resultados.status, TimbradoResultado.'return'.resultados.mensaje)
Info(TimbradoResultado.'return'.resultados.uuid)
Info(TimbradoResultado.'return'.resultados.cfdiTimbrado)
END
Sellar xml con FirmaSat
sMiArchivo1 is string = EDT_XMLFile
sMiArchivo2 is string = EDT_XMLFile + "1"
////
//hInst = LoadDLL("diFirmaSAT2.DLL")
//IF hInst = 0 THEN
// Error("Error al cargar dll")
//ELSE
// nResultado = CallDLL32("diFirmaSAT2", "SAT_GetCertNumber", sPbuf, nLongitud,EDT_CertFile,
// nOpcion)
// EDT_noCertificado = sPbuf
// nResultado = CallDLL32("diFirmaSAT2", "SAT_GetCertAsString", sP2buf, nL2ongitud,EDT_CertFile,
// nOpcion)
// EDT_Certificado = sP2buf
// FreeDLL(hInst)
//END
///*******************************************************************************************
nOpcion is int = 0
nResultado is int
sP2buf is string = Charact(0)
sPbuf is string = Charact(0)
hInst is int
nLongitud is int = 4096
nL2ongitud is int = 20
hInst = LoadDLL("diFirmaSAT2.DLL")
IF hInst = 0 THEN
Error("Error al cargar dll para colocar sello en el XML")
ELSE
//extraigo el numero de certificado
//nResultado = CallDLL32("diFirmaSAT2","SAT_GetCertAsString",sPbuf,nLongitud,EDT_Certificado,nOpcion)
//nResultado = CallDLL32("diFirmaSAT2","SAT_GetCertNumber",sPbuf,nL2ongitud,EDT_Certificado,nOpcion)
nResultado = CallDLL32("diFirmaSAT2","SAT_QueryCert",sPbuf,nL2ongitud,EDT_Certificado,"serialNumber", nOpcion)
EDT_respuesta = sPbuf
//Info(Left(sPbuf,20))
nResultado = CallDLL32("diFirmaSAT2", "SAT_ValidateXml", sMiArchivo1, nOpcion)
IF nResultado <> 0 THEN
Info("ERROR", "SAT_ValidateXML regresa el valor: " + nResultado + " fallidamente")
ELSE
nResultado = CallDLL32("diFirmaSAT2", "SAT_SignXml", sMiArchivo2, sMiArchivo1, EDT_Llave,EDT_password,EDT_Certificado,nOpcion)
IF nResultado <> 0 THEN
Info("ERROR AL SELLAR EL XML","RESULTADO :" + nResultado)
ELSE
nResultado = CallDLL32("diFirmaSAT2", "SAT_VerifySignature", sMiArchivo2, sP2buf,nOpcion)
IF nResultado <> 0 THEN
Info("Verificación Fallida de Firma" + sMiArchivo2, "returns: " + nResultado)
END
END
END
FreeDLL(hInst)
END
Consultar saldo de timbres disponibles con el pac Solución Factible
//
DameTimbres is getTimbres
DameTimbres.usuario = "miUsuario"
DameTimbres.password = "miContraseña"
DameTimbres.rfcEmisor = "RFC670322HM1"
DameTimbresResultado is getTimbresResponse
DameTimbresResultado = getTimbres(DameTimbres)
nCantidadTimbres is int = DameTimbresResultado.'return'.usados
nDisponibles is int = DameTimbresResultado.'return'.disponibles
STC_Usados..Caption = "Timbres Usados . . . .: " + nCantidadTimbres
STC_Disponibles..Caption = "Timbres Disponibles: " + nDisponibles
STC_Fecha..Caption = "Fecha de Consulta . .: " + DateToString(Today(),maskSystemDate)
STC_Hora..Caption = "Hora de Consulta: " + TimeToString(TimeSys(),maskSystemTime)
DameTimbres is getTimbres
DameTimbres.usuario = "miUsuario"
DameTimbres.password = "miContraseña"
DameTimbres.rfcEmisor = "RFC670322HM1"
DameTimbresResultado is getTimbresResponse
DameTimbresResultado = getTimbres(DameTimbres)
nCantidadTimbres is int = DameTimbresResultado.'return'.usados
nDisponibles is int = DameTimbresResultado.'return'.disponibles
STC_Usados..Caption = "Timbres Usados . . . .: " + nCantidadTimbres
STC_Disponibles..Caption = "Timbres Disponibles: " + nDisponibles
STC_Fecha..Caption = "Fecha de Consulta . .: " + DateToString(Today(),maskSystemDate)
STC_Hora..Caption = "Hora de Consulta: " + TimeToString(TimeSys(),maskSystemTime)
Consultar cfdis timbrados en Solución Factible
//Este código lo uso para consultar los cfdis timbrados con el pac Solución Factible
BuscarTimbres is buscar
BuscarTimbres.usuario= "miUsuario"
BuscarTimbres.password = "miPassword"
//
sMiFecha1 is string = DateToString(EDT_Fecha_Timbrado,"YYYYMMDD")
dFinal is Date = EDT_Fecha_Timbrado
dFinal..Day +=1
sMiFecha2 is string = DateToString(dFinal,"YYYYMMDD")
//
BuscarTimbres.parametros.emisorRFC = "RFC670322HM1"
BuscarTimbres.parametros.fechaTimbradoInicio = sMiFecha1
BuscarTimbres.parametros.fechaTimbradoFin = sMiFecha2
//BuscarTimbres.parametros.limit = 150
//
nContador is int
dtFechaEmision is DateTime
dtFechaTimbrado is DateTime
//
DameTimbresResultado is buscarResponse
DameTimbresResultado = buscar(BuscarTimbres)
IF DameTimbresResultado.'return'.status = "200" THEN
nCantidad is int = DameTimbresResultado.'return'.cfdis..Occurrence
Info(nCantidad)
FOR nContador = 1 TO nCantidad
dtFechaEmision = DameTimbresResultado.'return'.cfdis[nContador].fechaEmision
dtFechaTimbrado = DameTimbresResultado.'return'.cfdis[nContador].fechaTimbrado
dtFechaEmision..Hour -= 5
dtFechaTimbrado..Hour -=5
//
TableAdd(TABLE_Facturas, ...
DameTimbresResultado.'return'.cfdis[nContador].emisorRFC + TAB + ...
dtFechaEmision + TAB + ...
dtFechaTimbrado + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].folio + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].serie + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].uuid + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].receptorNombre + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].receptorRFC + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].total + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].cancelado + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].fechaCancelacion)
//DameTimbresResultado.'return'.cfdis[nContador].emisorNombre + TAB + ...
//DameTimbresResultado.'return'.cfdis[nContador].selloDigital + TAB + ...
//DameTimbresResultado.'return'.cfdis[nContador].selloSAT + TAB + ...
END
END
BuscarTimbres is buscar
BuscarTimbres.usuario= "miUsuario"
BuscarTimbres.password = "miPassword"
//
sMiFecha1 is string = DateToString(EDT_Fecha_Timbrado,"YYYYMMDD")
dFinal is Date = EDT_Fecha_Timbrado
dFinal..Day +=1
sMiFecha2 is string = DateToString(dFinal,"YYYYMMDD")
//
BuscarTimbres.parametros.emisorRFC = "RFC670322HM1"
BuscarTimbres.parametros.fechaTimbradoInicio = sMiFecha1
BuscarTimbres.parametros.fechaTimbradoFin = sMiFecha2
//BuscarTimbres.parametros.limit = 150
//
nContador is int
dtFechaEmision is DateTime
dtFechaTimbrado is DateTime
//
DameTimbresResultado is buscarResponse
DameTimbresResultado = buscar(BuscarTimbres)
IF DameTimbresResultado.'return'.status = "200" THEN
nCantidad is int = DameTimbresResultado.'return'.cfdis..Occurrence
Info(nCantidad)
FOR nContador = 1 TO nCantidad
dtFechaEmision = DameTimbresResultado.'return'.cfdis[nContador].fechaEmision
dtFechaTimbrado = DameTimbresResultado.'return'.cfdis[nContador].fechaTimbrado
dtFechaEmision..Hour -= 5
dtFechaTimbrado..Hour -=5
//
TableAdd(TABLE_Facturas, ...
DameTimbresResultado.'return'.cfdis[nContador].emisorRFC + TAB + ...
dtFechaEmision + TAB + ...
dtFechaTimbrado + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].folio + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].serie + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].uuid + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].receptorNombre + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].receptorRFC + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].total + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].cancelado + TAB + ...
DameTimbresResultado.'return'.cfdis[nContador].fechaCancelacion)
//DameTimbresResultado.'return'.cfdis[nContador].emisorNombre + TAB + ...
//DameTimbresResultado.'return'.cfdis[nContador].selloDigital + TAB + ...
//DameTimbresResultado.'return'.cfdis[nContador].selloSAT + TAB + ...
END
END
Suscribirse a:
Entradas (Atom)
Try catch end
// -------------------------------------------------- // Procedure principal que executa uma query com tratamento de exceção // -----------...
-
Una guía paso a paso para los perplejos: Presione la tecla de Windows Escribe " intl.cpl " y presiona Enter....
-
MyWorksheet is xlsDocument xlsAddWorksheet(MyWorksheet, "R04_C-0451") //MyWorksheet = xlsOpen(sNombreArchivoXLS, xlsWrite) ...
-
Copiado del blog de mi amigo Francisco Carabez En caso de que no se cuenta con la contraseña del HFSQL Control Center: Respalda o copia e...