User Function M486PESXML()
Local cFilial := PARAMIXB[1]
Local cSerie := PARAMIXB[2]
Local cCliente := PARAMIXB[3]
Local cLoja := PARAMIXB[4]
Local cDoc := PARAMIXB[5]
Local cEspecie := PARAMIXB[6]
Local cXml := ""
Local cSalto := chr(13) + chr(10)
Local cPicture := "999999999999999.9999"
Local cID := ""
Local cSecCod := ""
Local cdDVId := ""
Local cFeEmiDE := ""
Local cNumCasa := ""
Local cDepEmi := ""
Local cDisEmi := ""
Local cCiuEmi := ""
Local cIniTras := ""
Local cFinTras := ""
Local aTotales := {0,0,0,0,0,0,0,0,0,0,0,0,0}
Local aDesc := {0,0}
Local lProd := SuperGetMV("MV_CFDI_AM",,"") == "P"
Local cEmail := SuperGetMV("MV_RELACNT",,"")
Local cAliasTmp := ""
Local aArea := GetArea()
Local aSF := {}
DbSelectArea("SF2")
aSF := GetArea()
DbSetOrder(1)//F2_FILIAL+F2_DOC+F2_SERIE+F2_CLIENTE+F2_LOJA+F2_FORMUL+F2_TIPO
lOK := DbSeek(xFilial("SF2")+cDoc+cSerie+cCliente+cLoja)
cSecCod := M486SecCod(Time(),SF2->F2_EMISSAO)
cID := IIF(AllTrim(SF2->F2_ESPECIE)=="NF",M486GENCDC("01",SUBSTR(SM0->M0_CGC,1,RAT("-",SM0->M0_CGC)-1),Substr(SM0->M0_CGC,RAT("-",SM0->M0_CGC)+ 1,1),SUBSTR(SF2->F2_DOC,1,3),SUBSTR(SF2->F2_DOC,4,3),RIGHT(SF2->F2_DOC,7),"1",SF2->F2_EMISSAO,"1",cSecCod,SF2->F2_ESPECIE),"")
cID := IIF(AllTrim(SF2->F2_ESPECIE)=="NDC",M486GENCDC("06",SUBSTR(SM0->M0_CGC,1,RAT("-",SM0->M0_CGC)-1),Substr(SM0->M0_CGC,RAT("-",SM0->M0_CGC)+ 1,1),SUBSTR(SF2->F2_DOC,1,3),SUBSTR(SF2->F2_DOC,4,3),RIGHT(SF2->F2_DOC,7),"1",SF2->F2_EMISSAO,"1",cSecCod,SF2->F2_ESPECIE),cID)
cID := IIF(AllTrim(SF2->F2_ESPECIE)=="RFN",M486GENCDC("07",SUBSTR(SM0->M0_CGC,1,RAT("-",SM0->M0_CGC)-1),Substr(SM0->M0_CGC,RAT("-",SM0->M0_CGC)+ 1,1),SUBSTR(SF2->F2_DOC,1,3),SUBSTR(SF2->F2_DOC,4,3),RIGHT(SF2->F2_DOC,7),"1",SF2->F2_EMISSAO,"1",cSecCod,SF2->F2_ESPECIE),cID)
cdDVId := AllTrim(STR(CalcMod11(SUBSTR(cID,1,43))))
cFeEmiDE := SUBSTR(DTOS(SF2->F2_EMISSAO),0,4) + "-" + SUBSTR(DTOS(SF2->F2_EMISSAO),5,2) + "-" + SUBSTR(DTOS(SF2->F2_EMISSAO),7,2) + "T" + SF2->F2_HORA
cNumCasa := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 11,6)
cNumCasa := Iif(Empty(cNumCasa), "0", cNumCasa )
cDepEmi := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 18,2)
cDisEmi := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 20,3)
cCiuEmi := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 23,4)
cXml := '<rDE' + cSalto
cXml += ' xmlns="http://ekuatia.set.gov.py/sifen/xsd" ' + cSalto
cXml += ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' + cSalto
cXml += ' xsi:schemaLocation="http://ekuatia.set.gov.py/sifen/xsd/ siRecepDE_v150.xsd">' + cSalto
cXml += ' <dVerFor>150</dVerFor>' + cSalto
cXml += ' <DE Id="' + cID + '">' + cSalto
cXml += ' <dDVId>' + cdDVId + '</dDVId>' + cSalto
cXml += ' <dFecFirma></dFecFirma> ' + cSalto
cXml += ' <dSisFact>1</dSisFact>' + cSalto
cXml += ' <gOpeDE>' + cSalto
cXml += ' <iTipEmi>1</iTipEmi>' + cSalto
cXml += ' <dDesTipEmi>Normal</dDesTipEmi>' +cSalto
cXml += ' <dCodSeg>' + SUBSTR(cID,35,9) + '</dCodSeg>' + cSalto
cXml += ' </gOpeDE>' + cSalto
cXml += ' <gTimb>' + cSalto
If AllTrim(SF2->F2_ESPECIE) == "NF"
cXml += ' <iTiDE>1</iTiDE>' + cSalto
cXml += ' <dDesTiDE>Factura electrónica</dDesTiDE>' + cSalto
ElseIf AllTrim(SF2->F2_ESPECIE) == "NDC"
cXml += ' <iTiDE>6</iTiDE>' + cSalto
cXml += ' <dDesTiDE>Nota de débito electrónica</dDesTiDE>' + cSalto
Else
cXml += ' <iTiDE>7</iTiDE>' + cSalto
cXml += ' <dDesTiDE>Nota de remisión electrónica</dDesTiDE>' + cSalto
EndIf
cXml += ' <dNumTim>'+ AllTrim(SF2->F2_NUMTIM) +'</dNumTim>' + cSalto
cXml += ' <dEst>' + SUBSTR(SF2->F2_DOC,1,3) + '</dEst>' + cSalto
cXml += ' <dPunExp>' + SUBSTR(SF2->F2_DOC,4,3) + '</dPunExp>' + cSalto
cXml += ' <dNumDoc>' + RIGHT(SF2->F2_DOC,7) + '</dNumDoc>' + cSalto
cXml += ' <dSerieNum>' + AllTrim(SF2->F2_SERIE2) + '</dSerieNum>' + cSalto
cXml += ' <dFeIniT>' +FecIniTimb(SF2->F2_SERIE, SF2->F2_ESPECIE) + '</dFeIniT>' + cSalto
cXml += ' </gTimb>' + cSalto
cXml += ' <gDatGralOpe>' + cSalto
cXml += ' <dFeEmiDE>' + cFeEmiDE + '</dFeEmiDE>' + cSalto
// Campos inherentes a la operación comercial (D010-D099)
If AllTrim(SF2->F2_ESPECIE) <> "RFN"
CTO->(DbSetOrder(1)) //CTO_FILIAL+CTO_MOEDA
CTO->(MsSeek(xFilial("CTO")+Strzero(SF2->F2_MOEDA,2)))
cXml += M486IMPPAR(AllTrim(SF2->F2_ESPECIE),SF2->F2_DOC,SF2->F2_SERIE, SF2->F2_CLIENTE,SF2->F2_LOJA, CTO->CTO_MOESAT, AllTrim(SF2->F2_TPTRANS),SF2->F2_TXMOEDA) + cSalto
EndIf
//EMISOR
cXml += ' <gEmis>' + cSalto
cXml += ' <dRucEm>' + SUBSTR(SM0->M0_CGC,1,RAT("-",SM0->M0_CGC)-1)+'</dRucEm>' + cSalto
cXml += ' <dDVEmi>' + Substr(SM0->M0_CGC,RAT("-",SM0->M0_CGC)+ 1,1) + '</dDVEmi>' + cSalto
cXml += ' <iTipCont>1</iTipCont>' + cSalto
cXml += ' <cTipReg>'+ ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 17,1) +'</cTipReg>' + cSalto
If lProd
cXml += ' <dNomEmi>'+ AllTrim(SM0->M0_NOME) + '</dNomEmi>' + cSalto
Else
cXml += ' <dNomEmi>'+ "DE generado en ambiente de prueba - sin valor comercial ni fiscal" + '</dNomEmi>' + cSalto
EndIf
cXml += ' <dNomFanEmi>'+ AllTrim(SM0->M0_NOMECOM) + '</dNomFanEmi>' + cSalto
cXml += ' <dDirEmi>'+ AllTrim(SM0->M0_ENDENT) + '</dDirEmi>' + cSalto
cXml += ' <dNumCas>' + cNumCasa + '</dNumCas>' + cSalto
cXml += ' <cDepEmi>' + cDepEmi+ '</cDepEmi>' + cSalto
cXml += ' <dDesDepEmi>' + AllTrim(ObtColSAT("S003",cDepEmi, 1, 2, 3,28)) + '</dDesDepEmi>' + cSalto
cXml += ' <cDisEmi>' + AllTrim(cDisEmi) + '</cDisEmi>' + cSalto
cXml += ' <dDesDisEmi>' + AllTrim(ObtColSAT("S031",cDisEmi, 1, 3, 4,30))+ '</dDesDisEmi>' + cSalto
cXml += ' <cCiuEmi>' + AllTrim(cCiuEmi) + '</cCiuEmi>' + cSalto
cXml += ' <dDesCiuEmi>' + AllTrim(ObtColSAT("S012",cCiuEmi, 48, 4, 52,30))+ '</dDesCiuEmi>' + cSalto
If !Empty(SM0->M0_TEL)
cXml += ' <dTelEmi>' + AllTrim(SM0->M0_TEL) + '</dTelEmi>' + cSalto
EndIf
cXml += ' <dEmailE>' + cEmail + '</dEmailE>' + cSalto //Quitar
cXml += ' <gActEco>' + cSalto
cXml += ' <cActEco>' + AllTrim(SM0->M0_DSCCNA) + '</cActEco>' + cSalto
cXml += ' <dDesActEco>'+ ObtColSAT("S006",SUBSTR(SM0->M0_DSCCNA,1,6) , 2, 5, 7,166)+'</dDesActEco>' + cSalto
cXml += ' </gActEco>' + cSalto
cXml += ' </gEmis>' + cSalto
//RECEPTOR
SA1->(DbSetOrder(1))
SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA))
SYA->(DbSetOrder(1))
SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS))
cXml += ' <gDatRec>' + cSalto
cXml += ' <iNatRec>1</iNatRec>' + cSalto
cXml += ' <iTiOpe>1</iTiOpe>' + cSalto
cXml += ' <cPaisRec>' + SYA->YA_CODERP + '</cPaisRec>' + cSalto
cXml += ' <dDesPaisRe>'+ ObtColSAT("S005",SYA->YA_CODERP, 1, 3, 4,52)+'</dDesPaisRe>' +cSalto
If !Empty(SA1->A1_CGC)
cXml += ' <iTiContRec>' + IIF(SA1->A1_PESSOA $ "F","1","2") + '</iTiContRec>' + cSalto
cXml += ' <dRucRec>' + SUBSTR(SA1->A1_CGC,1,RAT("-",SA1->A1_CGC)-1) + '</dRucRec>' + cSalto
cXml += ' <dDVRec>' + Substr(SA1->A1_CGC,RAT("-",SA1->A1_CGC)+ 1,1) + '</dDVRec>' + cSalto
Else
cXml += ' <iTipIDRec>' + AllTrim(SA1->A1_TIPDOC) + '</iTipIDRec>' + cSalto
cXml += ' <dDTipIDRec>' + ObtColSAT("S018", SA1->A1_TIPDOC, 1, 1, 2,41) + '</dDTipIDRec>' + cSalto
cXml += ' <dNumIDRec>' + IIF(AllTrim(SA1->A1_TIPDOC)=="5","0",ALLTRIM(SA1->A1_NIF)) + '</dNumIDRec>' +cSalto
EndIf
cXml += ' <dNomRec>' + AllTrim(SA1->A1_NOME)+ '</dNomRec>' + cSalto
cXml += ' <dNomFanRec>' + AllTrim(SA1->A1_NREDUZ)+ '</dNomFanRec>' + cSalto
cXml += ' <dDirRec>' + AllTrim(SA1->A1_END) + '</dDirRec>' + cSalto
cXml += ' <dNumCasRec>' + AllTrim(SA1->A1_NUM) + '</dNumCasRec>' + cSalto
cXml += ' <cDepRec>' + SA1->A1_DEPTO + '</cDepRec>' + cSalto
cXml += ' <dDesDepRec>' + AllTrim(ObtColSAT("S003",SA1->A1_DEPTO, 1, 2, 3,28)) +'</dDesDepRec>' + cSalto
cXml += ' <cDisRec>' + SA1->A1_DISTR+ '</cDisRec>' + cSalto
cXml += ' <dDesDisRec>'+ AllTrim(ObtColSAT("S031",SA1->A1_DISTR, 1, 3, 4,30)) + '</dDesDisRec>' + cSalto
cXml += ' <cCiuRec>' + AllTrim(SA1->A1_CIUDAD) + '</cCiuRec>' + cSalto
cXml += ' <dDesCiuRec>' + AllTrim(ObtColSAT("S012",SA1->A1_CIUDAD, 48, 4, 52,30)) + '</dDesCiuRec>' + cSalto
If !Empty(SA1->A1_TEL)
cXml += ' <dTelRec>' + AllTrim(SA1->A1_TEL) + '</dTelRec>' + cSalto
EndIf
If !Empty(SA1->A1_EMAIL)
cXml += ' <dEmailRec>' + SA1->A1_EMAIL + '</dEmailRec>' + cSalto
EndIf
cXml += ' <dCodCliente>' + AllTrim(SA1->A1_COD) + '</dCodCliente>' + cSalto
cXml += ' </gDatRec>' + cSalto
cXml += ' </gDatGralOpe>' + cSalto
//TIPO DE PRESENCIA
cXml += ' <gDtipDE>' + cSalto
If AllTrim(SF2->F2_ESPECIE)=="NF"
cXml += ' <gCamFE>' + cSalto
cXml += ' <iIndPres>' + AllTrim(SF2->F2_TIPONF) + '</iIndPres>' + cSalto
cXml += ' <dDesIndPres>'+ ObtColSAT("S019",SF2->F2_TIPONF, 1, 1, 2,30)+'</dDesIndPres>' + cSalto
cXml += ' </gCamFE>' + cSalto
// CONDICIONES DE PAGO
cXml += M486CONDPAG(SF2->F2_FILIAL, SF2->F2_DOC,SF2->F2_SERIE, SF2->F2_CLIENTE,SF2->F2_LOJA,SF2->F2_ESPECIE,SF2->F2_COND,SF2->F2_MOEDA,SF2->F2_TXMOEDA) + cSalto
ElseIf AllTrim(SF2->F2_ESPECIE)=="NDC"
cXml += ' <gCamNCDE>' + cSalto
cXml += ' <iMotEmi>' + AllTrim(SF2->F2_TIPREF) + '</iMotEmi>' + cSalto
cXml += ' <dDesMotEmi>'+ ObtColSAT("S021",SF2->F2_TIPREF, 1, 1, 2,30)+'</dDesMotEmi>' + cSalto
cXml += ' </gCamNCDE>' + cSalto
ElseIf AllTrim(SF2->F2_ESPECIE)=="RFN"
cXml += ' <gCamNRE>' + cSalto
cXml += ' <iMotEmiNR>' + AllTrim(SF2->F2_MOTEMIR) + '</iMotEmiNR>' + cSalto
cXml += ' <dDesMotEmiNR>'+ ObtColSAT("S022",SF2->F2_MOTEMIR, 1, 2, 3,60)+'</dDesMotEmiNR>' + cSalto
cXml += ' <iRespEmiNR>1</iRespEmiNR>'+ cSalto
cXml += ' <dDesRespEmiNR>Emisor de la factura</dDesRespEmiNR>' + cSalto
If AllTrim(SF2->F2_MOTEMIR) == "1"
cXml += ' <dFecEm>' + SUBSTR(DTOS(SF2->F2_FECHSE),0,4) + "-" + SUBSTR(DTOS(SF2->F2_FECHSE),5,2) + "-" + SUBSTR(DTOS(SF2->F2_FECHSE),7,2) + '</dFecEm>' + cSalto
EndIf
cXml += ' </gCamNRE>' + cSalto
EndIf
cAliasTmp := QueryItems("SD2", "D2_COD, D2_QUANT, D2_TES, D2_ITEM, SD2.R_E_C_N_O_", "D2_DOC='" + SF2->F2_DOC + "' AND D2_SERIE='" + SF2->F2_SERIE + "' AND D2_CLIENTE='" + SF2->F2_CLIENTE + "' AND D2_LOJA='" + SF2->F2_LOJA + "'", "D2_ITEM")
While (cAliasTmp)->(!EOF())
cXml += ' <gCamItem>' + cSalto
cXml += ' <dCodInt>' + Alltrim((cAliasTmp)->B1_COD) + '</dCodInt>' + cSalto
cXml += ' <dDesProSer>' + AllTrim((cAliasTmp)->B1_DESC) + '</dDesProSer>' + cSalto
cXml += ' <cUniMed>' + AllTrim((cAliasTmp)->AH_COD_CO) + '</cUniMed>' + cSalto
cXml += ' <dDesUniMed>' + ObtColSAT("S002",(cAliasTmp)->AH_COD_CO, 1, 3, 29,6) + '</dDesUniMed>' + cSalto
cXml += ' <dCantProSer>' + AllTrim(TRANSFORM((cAliasTmp)->D2_QUANT,"9999999999.9999") )+ '</dCantProSer>' + cSalto
If AllTrim(SF2->F2_ESPECIE) <> "RFN"
If (cAliasTmp)->R_E_C_N_O_ > 0
SD2->(dbgoto((cAliasTmp)->R_E_C_N_O_))
EndIf
cXml += M486IMPDPAR(AllTrim(SF2->F2_ESPECIE),SF2->F2_DOC,SF2->F2_SERIE, SF2->F2_CLIENTE,SF2->F2_LOJA, (cAliasTmp)->D2_TES,(cAliasTmp)->D2_ITEM,(cAliasTmp)->D2_COD,@aDesc,@aTotales) + cSalto
EndIf
cXml += ' </gCamItem>' + cSalto
(cAliasTmp)->(dbSkip())
End
(cAliasTmp)->(dbcloseArea())
//Nodos de Guia de Remisión
If AllTrim(SF2->F2_ESPECIE) == "RFN"
DbSelectArea("DA3")
DA3->(DbSetOrder(1)) //DA3_FILIAL+DA3_COD
If DA3->(DbSeek(xFilial("DA3") + SF2->F2_VEICULO))
cXml += ' <gTransp>' + cSalto
cXml += ' <iTipTrans>' + AllTrim(DA3->DA3_TIPTR2) + '</iTipTrans>' + cSalto
If AllTrim(AllTrim(DA3->DA3_FROVEI)) == "1"
cXml += ' <dDesTipTrans>Propio</dDesTipTrans>' + cSalto
Else
cXml += ' <dDesTipTrans>Tercero</dDesTipTrans>' + cSalto
EndIf
cXml += ' <iModTrans>' + AllTrim(DA3->DA3_TIPTR2) + '</iModTrans>' + cSalto
cXml += ' <dDesModTrans>' + AllTrim(ObtColSAT("S026", AllTrim(DA3->DA3_TIPTR2), 1, 1, 2,10)) + '</dDesModTrans>' + cSalto
cXml += ' <iRespFlete>' + AllTrim(SF2->F2_TPRESFL) + '</iRespFlete>' + cSalto
cXml += ' <cCondNeg>' + AllTrim(SF2->F2_INCOTER) + '</cCondNeg>' + cSalto
cIniTras := SUBSTR(DTOS(SF2->F2_FECDSE),0,4) + "-" + SUBSTR(DTOS(SF2->F2_FECDSE),5,2) + "-" + SUBSTR(DTOS(SF2->F2_FECDSE),7,2)
cXml += ' <dIniTras>' + cIniTras + '</dIniTras>' + cSalto
cFinTras := SUBSTR(DTOS(SF2->F2_FECHSE),0,4) + "-" + SUBSTR(DTOS(SF2->F2_FECHSE),5,2) + "-" + SUBSTR(DTOS(SF2->F2_FECHSE),7,2)
cXml += ' <dFinTras>' + cFinTras + '</dFinTras>' + cSalto
cXml += ' <gCamSal>' + cSalto
cXml += ' <dDirLocSal>' + AllTrim(SM0->M0_ENDENT) + '</dDirLocSal>' + cSalto
cXml += ' <dNumCasSal>' + cNumCasa + '</dNumCasSal>' + cSalto
If !Empty(SM0->M0_COMPENT)
cXml += ' <dComp1Sal>' + AllTrim(SM0->M0_COMPENT) + '</dComp1Sal>' + cSalto
EndIf
cXml += ' <cDepSal>' + cDepEmi + '</cDepSal>' + cSalto
cXml += ' <dDesDepSal>' + AllTrim(ObtColSAT("S003",cDepEmi, 1, 2, 3,28)) + '</dDesDepSal>' + cSalto
cXml += ' <cDisSal>' + AllTrim(cDisEmi) + '</cDisSal>' + cSalto
cXml += ' <dDesDisSal>' + AllTrim(ObtColSAT("S031",cDisEmi, 1, 3, 4,30)) + '</dDesDisSal>' +cSalto
cXml += ' <cCiuSal>' + AllTrim(cCiuEmi) + '</cCiuSal>' + cSalto
cXml += ' <dDesCiuSal>' + AllTrim(ObtColSAT("S012",cCiuEmi, 48, 4, 52,30)) + '</dDesCiuSal>' + cSalto
cXml += ' </gCamSal>' + cSalto
cXml += ' <gCamEnt>' + cSalto
cXml += ' <dDirLocEnt>' + AllTrim(SA1->A1_END) + '</dDirLocEnt>' + cSalto
cXml += ' <dNumCasEnt>' + AllTrim(SA1->A1_NUM) + '</dNumCasEnt>' + cSalto
cXml += ' <cDepEnt>' + AllTrim(SA1->A1_DEPTO) + '</cDepEnt>' + cSalto
cXml += ' <dDesDepEnt>' + Alltrim(ObtColSAT("S003",SA1->A1_DEPTO, 1, 2, 3,28)) + '</dDesDepEnt>' + cSalto
cXml += ' <cDisEnt>' + AllTrim(SA1->A1_DISTR) + '</cDisEnt>' +cSalto
cXml += ' <dDesDisEnt>' + AllTrim(ObtColSAT("S031",SA1->A1_DISTR, 1, 3, 4,30)) + '</dDesDisEnt>' + cSalto
cXml += ' <cCiuEnt>' + AllTrim(SA1->A1_CIUDAD) + '</cCiuEnt>' + cSalto
cXml += ' <dDesCiuEnt>' + AllTrim(ObtColSAT("S012",SA1->A1_CIUDAD, 48, 4, 52,30)) + '</dDesCiuEnt>' + cSalto
If !Empty(SA1->A1_TEL)
cXml += ' <dTelEnt>' + AllTrim(SA1->A1_TEL) + '</dTelEnt>' + cSalto
EndIf
cXml += ' </gCamEnt>' + cSalto
cXml += ' <gVehTras>' + cSalto
cXml += ' <dTiVehTras>' + Alltrim(ObtColSAT("S026", AllTrim(DA3->DA3_TIPTR2), 1, 1, 2,10)) + '</dTiVehTras>' + cSalto
cXml += ' <dMarVeh>' + AllTrim(DA3->DA3_DESC) + '</dMarVeh>' +cSalto
cXml += ' <dTipIdenVeh>' + AllTrim(DA3->DA3_TIPID) + '</dTipIdenVeh>' + cSalto
If AllTrim(DA3->DA3_TIPID) == "1"
cXml += ' <dNroIDVeh>' + AllTrim(DA3->DA3_CHASSI) + '</dNroIDVeh>' + cSalto
Else
cXml += ' <dNroMatVeh>' + AllTrim(DA3->DA3_PLACA) + '</dNroMatVeh>' + cSalto
EndIf
If AllTrim(DA3->DA3_TIPTR2) == "3"
cXml += ' <dNroVuelo>' + AllTrim(SF2->F2_RASTR) + '</dNroVuelo>' + cSalto
EndIf
cXml += ' </gVehTras>' + cSalto
DbSelectArea("SA4")
SA4->(DbSetOrder(1)) //A4_FILIAL+A4_COD
If SA4->(MsSeek(xFilial("SA4") + SF2->F2_TRANSP))
cXml += ' <gCamTrans>' + cSalto
cXml += ' <iNatTrans>' + AllTrim(SA4->A4_TIPCON) + '</iNatTrans>' + cSalto
cXml += ' <dNomTrans>' + AllTrim(SA4->A4_NOME) + '</dNomTrans>' + cSalto
If AllTrim(SA4->A4_TIPCON) == "1"
cXml += ' <dRucTrans>' + SUBSTR(SA4->A4_CGC,1,RAT("-",SA4->A4_CGC)-1) + '</dRucTrans>' + cSalto
cXml += ' <dDVTrans>' + SUBSTR(SA4->A4_CGC,RAT("-",SA4->A4_CGC)+ 1,1) + '</dDVTrans>' + cSalto
Else
cXml += ' <iTipIDTrans>' + Alltrim(SA4->A4_TIPID) + '</iTipIDTrans>' + cSalto
cXml += ' <dDTipIDTrans>' + Alltrim(ObtColSAT("S018", ALLTRIM(SA4->A4_TIPID), 1, 1, 2,41)) + '</dDTipIDTrans>' + cSalto
cXml += ' <dNumIDTrans>' + AllTrim(SA4->A4_CGC) + '</dNumIDTrans>' + cSalto
EndIf
cXml += ' <dNumIDChof>' + AllTrim(SA4->A4_CGC) + '</dNumIDChof>' + cSalto
cXml += ' <dNomChof>' + AllTrim(SA4->A4_NOME) + '</dNomChof>' + cSalto
cXml += ' </gCamTrans>' + cSalto
EndIf
cXml += ' </gTransp>' + cSalto
EndIf
EndIf
cXml += ' </gDtipDE>' + cSalto
If AllTrim(SF2->F2_ESPECIE) <> "RFN"
aTotales := M486SUBTOT(AllTrim(SF2->F2_ESPECIE),SF2->F2_DOC,SF2->F2_SERIE, SF2->F2_CLIENTE,SF2->F2_LOJA)
cXml += ' <gTotSub>' + cSalto
cXml += ' <dSubExe>'+ AllTrim(TRANSFORM(aTotales[1],cPicture))+'</dSubExe>' + cSalto
cXml += ' <dSubExo>'+ AllTrim(TRANSFORM(aTotales[2],cPicture))+'</dSubExo>' + cSalto
cXml += ' <dSub5>'+ AllTrim(TRANSFORM(aTotales[3],cPicture))+'</dSub5>' + cSalto
cXml += ' <dSub10>'+ AllTrim(TRANSFORM(aTotales[4],cPicture))+'</dSub10>' + cSalto
cXml += ' <dTotOpe>'+ AllTrim(TRANSFORM(aTotales[5],cPicture))+'</dTotOpe>' + cSalto
cXml += ' <dTotDesc>'+ AllTrim(TRANSFORM(aDesc[1],cPicture))+'</dTotDesc>' + cSalto
cXml += ' <dTotDescGlotem>'+ AllTrim(TRANSFORM(aTotales[6],cPicture))+'</dTotDescGlotem>' + cSalto
cXml += ' <dTotAntItem>0</dTotAntItem>' + cSalto
cXml += ' <dTotAnt>0</dTotAnt>' + cSalto
cXml += ' <dPorcDescTotal>0</dPorcDescTotal>' + cSalto
cXml += ' <dDescTotal>'+ AllTrim(TRANSFORM(aDesc[1],cPicture))+'</dDescTotal>' + cSalto
cXml += ' <dAnticipo>0</dAnticipo>' + cSalto
cXml += ' <dRedon>0.0</dRedon>' + cSalto
cXml += ' <dTotGralOpe>'+ AllTrim(TRANSFORM(SF2->F2_VALBRUT,cPicture))+'</dTotGralOpe>' + cSalto
cXml += ' <dIVA5>'+ AllTrim(TRANSFORM(aTotales[7],cPicture))+'</dIVA5>' + cSalto
cXml += ' <dIVA10>'+ AllTrim(TRANSFORM(aTotales[8],cPicture))+'</dIVA10>' + cSalto
cXml += ' <dTotIVA>'+ AllTrim(TRANSFORM(aTotales[9],cPicture))+'</dTotIVA>' + cSalto
cXml += ' <dBaseGrav5>'+ AllTrim(TRANSFORM(aTotales[10],cPicture))+'</dBaseGrav5>' + cSalto
cXml += ' <dBaseGrav10>'+ AllTrim(TRANSFORM(aTotales[11],cPicture))+'</dBaseGrav10>' + cSalto
cXml += ' <dTBasGraIVA>'+ AllTrim(TRANSFORM(aTotales[12],cPicture))+'</dTBasGraIVA>' + cSalto
If AllTrim(STR(SF2->F2_MOEDA)) <> "1"
cXml += ' <dTotalGs>'+ AllTrim(TRANSFORM(SF2->F2_VALBRUT*SF2->F2_TXMOEDA,cPicture))+'</dTotalGs>' + cSalto
EndIf
cXml += ' </gTotSub>' +cSalto
EndIf
//DOCUMENTO ASOCIADO
If AllTrim(SF2->F2_ESPECIE)=="NDC"
cXml += ' <gCamDEAsoc>' + cSalto
cXml += M486ASOC(SF2->F2_ESPECIE,SF2->F2_DOC,SF2->F2_SERIE,SF2->F2_CLIENTE,SF2->F2_LOJA,"1")
cXml += ' </gCamDEAsoc>' + cSalto
EndIf
cXml += ' </DE>' + cSalto
cXml += '</rDE>' + cSalto
RestArea(aSF)
RestArea(aArea)
Return cXml |