//FATSCOL.INI -- NFE Colombia v2 - Resolucion 0019 / FEB. 2016 [XXX POSICIONAMENTOS] (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SA2->(MSSeek(xFilial("SA2")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.) (PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.) (PRE) (SE4->(MSSeek(xFilial("SE4")+SF2->F2_COND)) , .T.) (PRE) (AI0->(MSSeek(xFilial("AI0")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.) [XXX INICIALIZACION] (PRE) SD2->(DbSetOrder(1)) (PRE) SB1->(DbSetOrder(1)) (PRE) SYA->(DbSetOrder(1)) (PRE) SC6->(DbSetOrder(1)) (PRE) SE4->(DbSetOrder(1)) (PRE) CTO->(DbSetOrder(1)) (PRE) SAH->(DbSetOrder(1)) (PRE) SE1->(DbSetOrder(2)) (PRE) _aTotal[033] := ALLTRIM (SF2->F2_ESPECIE) (PRE) _aTotal[075] := Alltrim(SM0->M0_NOMECOM) (PRE) _aTotal[093] := "" (PRE) _aTotal[094] := "" (PRE) _aTotal[095] := DtoS(SF2->F2_EMISSAO) (PRE) _aTotal[095] := Left(_aTotal[095],4) + "-" + Substr(_aTotal[095],5,2)+ "-" + Right(_aTotal[095],2) (PRE) _aTotal[096] := SF2->F2_HORA (PRE) _aTotal[097] := fGetTaxas(SF2->F2_DOC, SF2->F2_SERIE, SF2->F2_CLIENTE, SF2->F2_LOJA,SF2->F2_ESPECIE ) (PRE) _aTotal[098] := ALLTRIM( GETNEWPAR( "MV_ID_PROV" , "" ) ) (PRE) _aTotal[099] := ALLTRIM( GETNEWPAR( "MV_ID_SOFT" , "" ) ) (PRE) _aTotal[100] := ALLTRIM( GETNEWPAR( "MV_CODESEC" , "" ) ) (PRE) _aTotal[101] := {"SD2",""} (PRE) _aTotal[102] := IIF( _aTotal[033] == "NF" , "1" , IIF( _aTotal[033] == "NCC" , "2" , IIF( _aTotal[033] == "NDC" , "3" , IIF( _aTotal[033] == "NDI" , "4" , IIF( _aTotal[033] == "NCI" , "5" , "" ) ) ) ) ) (PRE) _aTotal[103] := "" (PRE) _aTotal[104] := PADR( Alltrim(SM0->M0_CGC) , 10 , "0" ) (PRE) _aTotal[105] := IIF( _aTotal[033] == "NF" , "f" , IIF( _aTotal[033] == "NCC" .or. _aTotal[033] == "NCI" , "c" , IIF( _aTotal[033] == "NDC" .or. _aTotal[033] == "NDI" , "d" , "f" ) ) ) (PRE) _aTotal[106] := M486XHEX(PADR( ALLTRIM( substr( SF2->F2_DOC , 4 , Len(SF2->F2_DOC) - 3 ) ) , 10 , "0" ),10) (PRE) _aTotal[107] := IIF(AllTrim(SF2->F2_ESPECIE)=="NDC",fGetRef(SF2->F2_DOC, SF2->F2_SERIE, SF2->F2_CLIENTE, SF2->F2_LOJA,SF2->F2_ESPECIE),"") (PRE) _aTotal[108] := "" (PRE) _aTotal[109] := {"SFP",""} (PRE) _aTotal[110] := "" (PRE) _aTotal[111] := "" (PRE) _aTotal[112] := "" (PRE) _aTotal[113] := "FP_FILUSO='" + cFilAnt + "' AND FP_SERIE='" + SF2->F2_SERIE + "' AND FP_ESPECIE= '" + IIf(_aTotal[033] == "NF","1","3") + "' AND FP_NUMINI <='" + SF2->F2_DOC + "' AND FP_NUMFIM >='" + SF2->F2_DOC + "' AND FP_ATIVO ='1'" (PRE) _aTotal[114] := "SFP->FP_FILUSO=cFilAnt .AND. SFP->FP_SERIE=SF2->F2_SERIE .AND. SFP->FP_ESPECIE='" + IIf(_aTotal[033] == "NF","1","3") + "' .AND. SFP->FP_NUMINI<=SF2->F2_DOC .AND. FP_NUMFIM >=SF2->F2_DOC .AND. SFP->FP_ATIVO = '1'","FP_ATIVO" (PREREG) FsQuery(_aTotal[101],1,"D2_DOC='" + SF2->F2_DOC + "' AND D2_SERIE='" + SF2->F2_SERIE + "' AND D2_CLIENTE='" + SF2->F2_CLIENTE + "' AND D2_LOJA='" + SF2->F2_LOJA + "'","SD2->D2_DOC=SF2->F2_DOC .AND. SD2->D2_SERIE=SF2->F2_SERIE .AND. SD2->D2_CLIENTE=SF2->F2_CLIENTE .AND. SD2->D2_LOJA=SF2->F2_LOJA","D2_ITEM") .And. .T. (PREREG) FsQuery(_aTotal[109],1,_aTotal[113],_aTotal[114]) .And. .T. [SFP CONTROL FOMULARIOS] (PRE) _aTotal[103] := Dtos( SFP->FP_DTRESOL ) (PRE) _aTotal[103] := Left(_aTotal[103],4) + "-" + Substr(_aTotal[103],5,2)+ "-" + Right(_aTotal[103],2) (PRE) _aTotal[110] := Alltrim( SFP->FP_NUMINI ) (PRE) _aTotal[111] := Alltrim( SFP->FP_NUMFIM ) (PRE) _aTotal[112] := Alltrim( SFP->FP_CAI ) [SD2 GENERANDO_XML] (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SA2->(MSSeek(xFilial("SA2")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.) (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SYA->(MsSeek(xFilial("SYA")+SA2->A2_PAIS)) , .T.) (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",CTO->(MsSeek(xFilial("CTO")+Strzero(SF2->F2_MOEDA,2))) , .T.) (PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.) (PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.) (PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",CTO->(MsSeek(xFilial("CTO")+Strzero(SF2->F2_MOEDA,2))) , .T.) [XXX CABECERA] Linha1 C 060 0 Chr(239) + Chr(187) + Chr(191) + '<?xml version="1.0" encoding="UTF-8" standalone="no"?>' [XXX FACTURA] (PRE) Iif(AllTrim(SF2->F2_ESPECIE)=="NDI",SYA->(MsSeek(xFilial("SYA")+SA2->A2_PAIS)) , .T.) (PRE) (SE4->(MSSeek(xFilial("SE4")+SF2->F2_COND)) , .T.) (PRE) _aTotal[001] := IIF(AllTrim(SF2->F2_ESPECIE)=="NF",'<fe:Invoice ','<fe:DebitNote ') (PRE) _aTotal[001] += 'xmlns:fe="http://www.dian.gov.co/contratos/facturaelectronica/v1" ' (PRE) _aTotal[001] += 'xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" ' (PRE) _aTotal[001] += 'xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" ' (PRE) _aTotal[001] += 'xmlns:clm54217="urn:un:unece:uncefact:codelist:specification:54217:2001" ' (PRE) _aTotal[001] += 'xmlns:clm66411="urn:un:unece:uncefact:codelist:specification:66411:2001" ' (PRE) _aTotal[001] += 'xmlns:clmIANAMIMEMediaType="urn:un:unece:uncefact:codelist:specification:IANAMIMEMediaType:2003" ' (PRE) _aTotal[001] += 'xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" ' (PRE) _aTotal[001] += 'xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" ' (PRE) _aTotal[001] += 'xmlns:sts="http://www.dian.gov.co/contratos/facturaelectronica/v1/Structures" ' (PRE) _aTotal[001] += 'xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" ' (PRE) _aTotal[001] += 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' (PRE) _aTotal[001] += 'xsi:schemaLocation="http://www.dian.gov.co/contratos/facturaelectronica/v1 ../xsd/DIAN_UBL.xsd ' (PRE) _aTotal[001] += 'urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 ../../ubl2/common/UnqualifiedDataTypeSchemaModule-2.0.xsd ' (PRE) _aTotal[001] += 'urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2 ../../ubl2/common/UBL-QualifiedDatatypes-2.0.xsd" ' (PRE) _aTotal[001] += '>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <ext:UBLExtensions>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <ext:UBLExtension>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <ext:ExtensionContent>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:DianExtensions>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:InvoiceControl>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:InvoiceAuthorization>'+ _aTotal[112] +'</sts:InvoiceAuthorization>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:AuthorizationPeriod>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <cbc:StartDate>'+ _aTotal[103] +'</cbc:StartDate>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <cbc:EndDate>'+ _aTotal[103] +'</cbc:EndDate>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' </sts:AuthorizationPeriod>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:AuthorizedInvoices>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:Prefix>'+ SF2->F2_SERIE2 +'</sts:Prefix>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:From>'+ _aTotal[110] +'</sts:From>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:To>'+ _aTotal[111] +'</sts:To>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' </sts:AuthorizedInvoices>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' </sts:InvoiceControl>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:InvoiceSource>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <cbc:IdentificationCode listAgencyID="6" listAgencyName="United Nations Economic Commission for Europe" listSchemeURI="urn:oasis:names:specification:ubl:codelist:gc:CountryIdentificationCode-2.0">CO</cbc:IdentificationCode>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' </sts:InvoiceSource>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:SoftwareProvider>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:ProviderID schemeAgencyID="195" schemeAgencyName="CO, DIAN (Direccion de Impuestos y Aduanas Nacionales)">'+ _aTotal[098] +'</sts:ProviderID>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:SoftwareID schemeAgencyID="195" schemeAgencyName="CO, DIAN (Direccion de Impuestos y Aduanas Nacionales)">'+ _aTotal[099] +'</sts:SoftwareID>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' </sts:SoftwareProvider>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <sts:SoftwareSecurityCode schemeAgencyID="195" schemeAgencyName="CO, DIAN (Direccion de Impuestos y Aduanas Nacionales)">'+ _aTotal[100] +'</sts:SoftwareSecurityCode>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' </sts:DianExtensions>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' </ext:ExtensionContent>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' </ext:UBLExtension>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <ext:UBLExtension>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <ext:ExtensionContent>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' </ext:ExtensionContent>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' </ext:UBLExtension>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' </ext:UBLExtensions>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <cbc:UBLVersionID>UBL 2.0</cbc:UBLVersionID>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <cbc:ProfileID>DIAN 1.0</cbc:ProfileID>' + ( chr(13)+chr(10) ) // Manual con serie //(PRE) _aTotal[001] += ' <cbc:ID>'+ SF2->F2_SERIE2 + Alltrim( Str( Val( Substr( SF2->F2_DOC , 4 , 10) ) ) ) +'</cbc:ID>' + ( chr(13)+chr(10) ) // Manual sin serie (PRE) _aTotal[001] += ' <cbc:ID>'+ Alltrim( Str( Val( Substr( SF2->F2_DOC , 4 , 10) ) ) ) +'</cbc:ID>' + ( chr(13)+chr(10) ) (PRE) FsQuery(_aTotal[109],2) // CUFE Aplica solo para NF (PRE) _aTotal[093] := "" (PRE) _aTotal[001] += IIF(AllTrim(SF2->F2_ESPECIE)=="NF",' <cbc:UUID schemeAgencyID="195" schemeAgencyName="CO, DIAN (Direccion de Impuestos y Aduanas Nacionales)">'+ _aTotal[093] +'</cbc:UUID>' + ( chr(13)+chr(10) ),"") (PRE) _aTotal[001] += ' <cbc:IssueDate>'+ _aTotal[095] +'</cbc:IssueDate>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <cbc:IssueTime>'+ _aTotal[096] +'</cbc:IssueTime>' + ( chr(13)+chr(10) ) (PRE) _aTotal[001] += ' <cbc:InvoiceTypeCode listAgencyID="195" listAgencyName="CO, DIAN (Direccion de Impuestos y Aduanas Nacionales)" listSchemeURI="http://www.dian.gov.co/contratos/facturaelectronica/v1/InvoiceType">'+IIF(AllTrim(SF2->F2_ESPECIE)=="NF","02","92") +'</cbc:InvoiceTypeCode>' + ( chr(13)+chr(10) ) |