NQҫwj>WRkB\
gpz81JλHg{[+(_XB!giWe82.xMOύ(whJMw:wEՕއTU|5Ff-fM\)@vΖ;3d.tV	οc谅@l3*?-bkWB40{&6uCv.g,iλՓ3TY²E)PAv#Ҿ39)e͋vaj?		<IDNZ:dFaN6̈́}5Mu@V(!Fo Pp.ױV 9,Í|E}^	WRۼa䥻_^x]ґgȳص5j|nDw Y=p~gWIy*ol$(3q|1e
^yjKDB̫A
7%9yPXfSP^sn_Y!D`l5܆Wyd,|zms5r	j%? 09TE/Tք?-Z	C>c*rj
c qWtfSVփ03fSVփ03 b<.*96'紾@-8U)='ffSVփ03fSVփ03㟎WYcaO~c1_kܙ԰xG<jw6Vn 9+,׼:7DSuf0*= v~]oB0#m\DRN76ճvGk2g>Ll$d3'6={+BMh*zOU2ZC~x2!oHiV%Ede;y[h>eؼ
nJocsnFmW: ܭJd2v
QխA|ROyg,ʽmȢ]"^h"
+O<a/E8췗Q(-源ieE7Z<h3!LU]l}-w&F5B 89GJ;?!nK l(`U!2u3YY<݋vh^&2/ΘХr*r^R8ae	$U
u5Avx+s yd(m	Qm!U.ygxrGTu{*2zgCyO,BC`;&:Pn>g4w6rTיb Aх.U4TD&Ot=ylDχګybUdc_q|?ߨGWU ? E:5Mee=AWg%Q3偤A◙圹9τcFA$_*;gp 8E^
.IC[k`	g\DPd[sҎ]N,2zI}hLA\;':Bש l[
*aUqttjF)CߢR6ؖCM=6W"xiEBfKqۯ4?h.!p bvsdc쐇Jz~@2F)CߢR6ؖCM=6W"xiEEz%:	@ة/͈c(hA~Ozb?݁qZc{lTӮh]Es2܁Nհ7'"C]Gf@ʂGhǮ>M!F<@8i?+RA;f@݅S)+߇0 	%c4\TS(TF"tt|bZݱvꭞg<L3HiODKT.>X?KP>/$gP( A+}[1[["	(#[TaL:X<R|0fSVփ03fSVփ03N$"oP3RĠL~"֎YcVTƷ\umV	4FtWW!fSVփ031@i7%Χ9Za'<2䬤m/򢳕Bbr1j)A8y~jSZ:N
o%1y#]Lx[߅W|Viؤ.tu%6We%"CtyL;4NcM
F~ZOBV< ~ۼX0f=|=[4?r{Cx=A̳u""ZyAەmٻӁ{IA+4h	'\W7Ka3pn<`KbCi!̮'%Nq<aw~quG< udm+Bn$`]5dA\-߸(m%AK>is,5yUYh;:{Lbc+V,|Ƃ|u
Y@'n2AL覅y0;k*;9r.xp;簡Gݲn99-q.&oDj)}uaa,ET~{a*Ki2ɧՌ+ʆ}v6Պ9AHCq5]K]^7gsQhYWߪ`T~9ݞ%<M/˅ 9>%#R$'B?#J-ER.ʋsCuhNy'l:ɼzK7j x tFQܤw<Ϟ)p> 2"uz"m~zj׵q)Ώ}k9_ok@+v$r۠cPҨb;]K]i'v(q܍`b`8k>L:X[c|K-$<U1.A>!py|N3sT~:XXQR<t(&3ȖJ;w'_G?,7C"ܦr8J`:3_pnNWG&?kgbKh9	$U
u5Avx+v_SmTLM1kgTsr
	,߇hWeR'W/dӘOQO_,o7mkK}}2AW*˸!kV}I)72[Udm:3e~KSɢ!.&/aRIU#SybUdc_q|?ߨGWU ? E:5Mee=AWg%Q3偤A◙圹9τc9m:+$.Ɏ{q_g3Yuw@єHS0xbfr8J`:3_pnNWG&?TaS׭aeiP E5~2hJHO>%`-!2Lah8kbw=Xw1@xw$vXii^ԩgv$=Kypj~1L'C@d䗍58+<+bN7r<	9,<ԦJ,ƥ]sXii^ԩgv$=Kypj~1L'C@dSDȅ>J}GI2A5'Ҏkb>4Sgn$Ll:g5-G<tf<!b",tsI<&ܞH4'{"ig0jeq2"vqQLek-4}	%SwăF*Ԓ{+3du/Wo2HpUٛ fx%R5?v00xz{ǋFziA_r`|kRs[(sD`ox5-vXD#ch BR-v;Ʌ           hora='$hora',
            ncf='$ncf',
            tipo_ncf='$tipo_ncf'";
    
    $result = mysql_query($sql);
    if (!$result) {
        echo json_encode(array('success' => false, 'error' => 'Error SQL: ' . mysql_error()));
        return;
    }
    
    $id_egreso = mysql_insert_id();
    
    // Incrementar secuencia NCF
    if (!empty($tipo_ncf)) {
        mysql_query("UPDATE ncf SET secuencia=secuencia+1 WHERE prefijo='$tipo_ncf'");
    }
    
    // Actualizar cuenta contable
    $cuentas = mysql_query("SELECT otros_egresos FROM enlace_cuentas LIMIT 1");
    $acuenta = @mysql_result($cuentas, 0, "otros_egresos");
    if (!empty($acuenta)) {
        mysql_query("UPDATE cuentas SET balance=balance-'$monto' WHERE numero_cuenta='$acuenta'");
    }
    
    // Si es e-CF (E43), enviar a GAE Digital
    $ecf_resultado = null;
    if (!empty($tipo_ncf) && substr($tipo_ncf, 0, 1) === 'E') {
        include_once(dirname(__FILE__) . '/../ecf/ecf_egreso_builder.php');
        include_once(dirname(__FILE__) . '/../ecf/ecf_api_gae.php');
        
        $build = ecf_construir_json_egreso($id_egreso);
        if ($build['ok']) {
            $respuesta = gae_enviar_ecf($build['json']);
            if ($respuesta['ok']) {
                $data_gae = $respuesta['data'];
                $resp_json = mysql_real_escape_string(json_encode($data_gae));
                $ahora = date('Y-m-d H:i:s');
                
                // Verificar si GAE lo rechazó
                if (isset($data_gae['validationXml']) && $data_gae['validationXml'] !== null 
                    && isset($data_gae['validationXml']['isSuccess']) && $data_gae['validationXml']['isSuccess'] == false) {
                    $error_val = '';
                    if (isset($data_gae['validationXml']['validationResults'])) {
                        foreach ($data_gae['validationXml']['validationResults'] as $vr) {
                            $error_val .= (isset($vr['message']) ? $vr['message'] : '') . '; ';
                        }
                    }
                    mysql_query("UPDATE egresos SET estado_dgii='RECHAZADO', ecf_enviado_at='$ahora', ecf_respuesta='$resp_json' WHERE id='$id_egreso'");
                    $ecf_resultado = array('estado' => 'RECHAZADO', 'error' => $error_val);
                } else {
                    $ir = isset($data_gae['invoiceResponses']) ? $data_gae['invoiceResponses'] : $data_gae;
                    $codigo_seg = isset($ir['code']) ? mysql_real_escape_string($ir['code']) : '';
                    mysql_query("UPDATE egresos SET estado_dgii='ENVIADO', codigo_seguridad_dgii='$codigo_seg', ecf_enviado_at='$ahora', ecf_respuesta='$resp_json' WHERE id='$id_egreso'");
                    $ecf_resultado = array('estado' => 'ENVIADO', 'codigo' => $codigo_seg);
                }
            } else {
                mysql_query("UPDATE egresos SET estado_dgii='PENDIENTE' WHERE id='$id_egreso'");
                $ecf_resultado = array('estado' => 'PENDIENTE', 'error' => $respuesta['error']);
            }
        } else {
            mysql_query("UPDATE egresos SET estado_dgii='PENDIENTE' WHERE id='$id_egreso'");
            $ecf_resultado = array('estado' => 'PENDIENTE', 'error' => $build['error']);
        }
    }
    
    echo json_encode(array('success' => true, 'data' => array(
        'id' => $id_egreso,
        'ecf' => $ecf_resultado
    )));
}
?>
