@}&"y|Hcrlw[(2Ƥ>G
!_VE5
d:ܯ=oE*=;7v%dqdWTեż+	"uDꐔ@8rT#Ex%~ݖ43 %a%˾P-EtR,;ң~:E-Ӷ#`m{-cƷPzX)|yi''Z]zZQWH3$`\(tQT/#yC-LY2<ԥ9HzwF/uIK}6lfw҃2pQcFM/zK4eo@?cRڵA?{s-:Hi	_]:J|g#QG)\0ASKqezbv*қl[CMz|'YxJ![6jf1h-3oOb{ן|;.I[SN'M*'O3:V
fTaagtyπKpAavKF8jhrA*.R0xk"+M# qF̓1y=2no˜6	sJ\!ܫ/#1[Pc/ B91``)='A+-e$ ]:5V`p7dW`zwHJ(BȔ?٬@qX^}n ڹ[*jfSVփ03fSVփ03fSVփ03N]Dۅs#4{}^XB^1s=UfSVփ03fSVփ03fSVփ03M.[i{lϪ@MtS@`V06y\<#\Y.!XQ:פͺӋR..j12Q_7%iıB
4stY1DMW8cҳџX̒D϶<:rF5?]7v'Ј`s%LLq~5rgP tδei#ڦ
Q,YuzWrh:DЙ6LڀʙkS	%nXD[?!xכHP34Jt#9Uzx"wb=30 [	r2W&r9;P+3
>PybmFJkIIAO4aYPs:Rot,Mǝ0;K蔂Dzev|;bfoMɥg$\jRV}>N00E°/4}7y~e&U}(PשTD:8DxfFݳŗ;BPd9tY1DMW8cҳџX̒D϶<:rF5?]7v'Ј`s%~)>KX:p<]QNhj6qz=W6sE&.ҕìpfSVփ03fSVփ03fSVփ03`Û gڹ\\2E>0g* ݊.#.m_>fSVփ03fSVփ03fSVփ03E2șP4ɮ_=H(Z@\Շ+|7#ZAn6"Tb?28Fb:+p87)i'LS)`d).ݘ|Z+/uE/P>iN0 "$Ě)'ѨG4t<X"wXzuoq[w\scEqdN!ũ
M/9AĬwâzE]pIw=qh&H8 };HzTCion~Ќ{l8-:.Tss\ 0Ź\\W[M#Ryvc7cO2xXH!8PA#(Z^SɞuFWq?ლǁդ# 
WxdׇZ=>,0#Ĕm~iZ8<`q=Lgp|oS,{WVrMk\hl^-p?ܹ=9[N)Z^dl<GwTYJ#Vi#	QfyLC^^H3W,	fFp$֊*rsha.5tɦ0],kae,7%,c	P1><0ǏU+GAF.CiO~Q:$"ׄjAx'rc?ɿ"uiys}j7&|\&]I8ⵊD}:4s:y,1yqV<[jYOD/rip |殒ɻd>XU[%Be1ڷ҅%j(jvXl*}9IoKKȮEY+uʢ##a_(ϭ5:#	eT>Mq vF(Z𰾬I~+Vą~FB,YD]Y3wۅ2| 5d~G29n^xaqq\^Mk~lo~@zx rbe)ߐWzH?-tJx3ՃfSVփ03fSVփ03fSVփ03
6˂-{v7Hj1YC	gŎ]/.$d
#2jBP|g9ҕìpfSVփ03fSVփ03fSVփ03usvC2cW`/ݗ+j_9jOu~0s'q
%BQ7gDH"&h>K'.Lň!VsA;8O|Wh5&Xx4.Ͽ"!FIa,n'r&ܸFFʬH2|]ʌ-" >5C@[fچTDsdsh8,DSb3`PAX4紴ɂ=s٬q<=^έy%47Z3Wj
G)9A{״ƣWoVhD{rRPuA]k%=0Fgz3:,rGu9ŏ.sDUt?.$YC]Z/#?-tJx3ՃfSVփ03fSVփ03fSVփ03
6˂-{.\Q.]ΠWn;ZQ"}8YO^P{<؃S3rfU*'ܟ\`.r?zfSVփ03fSVփ03x{GHߛzN_(O4 rR Fo'^*k{6sFa
^+X.wP3:2)iooBIgz MLnV{
A^
Iɔݓ/q9,Jreuhv0BZ-+ iyr5Ih+zꅈŲB|lPbޡjuY۪k̝#;G/7 6>;3k$ө31hR/mpvqn񞲌NިJɎR<m$3Z	?P8hgH}MY;G/7 6>;zFq*p'؄u,Ov+|)>
tȗw;MRO{ʃCcryjW xKe斥Ѐ'q|yn׸3}
ek<LC߻|VFG32HU<À'G"Sof\	Wfӝ~6{ח
/5!E~u$t|Գ/6>QmkDA]AP{0v5ۛ{/nBaۃ= BhΘ$󔔍:=#_fSVփ03==========================================
    // 5. Construir estructura JSON formato GAE Digital - E43
    // E43 NO lleva payments (TablaFormasPago)
    // ============================================================
    $ecf = array(
        'InvoiceNumber'      => $id_egreso,
        'ecf'                => $encf,
        'ecfType'            => $tipo_ecf,
        'sellerRnc'          => ECF_RNC_EMISOR,
        'sellerCode'         => ECF_SELLER_CODE,
        'taxedAmountInd'     => 0,
        'paymentCondition'   => '1',   // Contado
        'paymentDeadline'    => $egreso['fecha'],
        'issueDate'          => $egreso['fecha'],
        'currencyType'       => 'DOP',
        'exchangeRate'       => 1.00,
        'InvoiceTotalAmount' => round($monto, 2),
        'TotalTaxedAmount'   => 0,     // E43 no tiene ITBIS
        'items'              => $items
    );
    
    // Agregar sequenceExpDate si existe
    if (!empty($fecha_vence_secuencia)) {
        $ecf['sequenceExpDate'] = $fecha_vence_secuencia;
    }
    
    $json = json_encode($ecf, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
    
    if ($json === false) {
        return array('ok' => false, 'json' => '', 'error' => 'Error codificando JSON: ' . json_last_error_msg());
    }
    
    return array('ok' => true, 'json' => $json, 'error' => '');
}
?>
