<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

        
function guardarDatosImagen($ruc, $documento, $fecha, $monto,$tipodoc='factura'){

    $mysqli = new mysqli("127.0.0.1", "indusigc_userdb", "15.kOOSl01", "indusigc_db");

    if ($mysqli->connect_errno) {
        printf("Falló la conexión: %s\n", $mysqli->connect_error);
        exit();

    } else {
        $mysqli->set_charset("utf8");
        $ya_hay = false;
        $sql = "select  id
                from    documento
                where   ruc = '".$ruc."' and documento = '".$documento."'";

        $result = $mysqli->query($sql);

        if(isset($result)) {

            if ($result->num_rows > 0) {
                $row = $result->fetch_array(MYSQLI_BOTH);

                if (isset($row['id']) && $row['id'] != '' && $row['id'] > 0) {
                    $ya_hay = true;
                }
            }
        }

        if(!$ya_hay) {
            $sql = "insert
                    into      documento 
                              (ruc, documento, monto, archivo, emision, tipo)
                              values 
                              ('" . $ruc . "', '" . $documento . "', '" . $monto . "', '" . $documento . "', 
                              '" . $fecha . "','" . $tipodoc . "' )";

            echo $sql;

            $result = $mysqli->query($sql);

            if (isset($result)) {

                if ($mysqli->insert_id != '' && isset($mysqli->insert_id)) {
                    return true;
                } else {
                    return false;
                }
            } else {
                return false;
            }
        }
    }

}

try {
    if (1) {

        $root = "/home/indusigc/public_html/felectronica/";
        $filename = '';

        $ficheros = scandir($root);

        if(is_array($ficheros)){
            foreach($ficheros as $key => $value){
                if (file_exists($value)) {
                    //solo los xml
                    if(substr($value, -3) == 'xml' || substr($value, -3) == 'XML'){
                        
                        echo "<br><br>La última modificación de $value fue: " . date ("Y-m-d", filemtime($value));
                        $fecha_archivo = '';
                        
                        $fecha_archivo = date ("Y-m-d", filemtime($value));
                        $fecha_topemin = date ("Y-m-d", strtotime("-2 day"));
                        $fecha_topemax = date ("Y-m-d");
                        
                        //solo los del día
                        if($fecha_archivo >= $fecha_topemin && $fecha_archivo <= $fecha_topemax){
                        //if(date("Y-m-d") == $fecha_archivo){ //
                        //if($fecha_archivo == '2020-07-10'){
                            if(substr($value, 0, 2) == 'R-'){
                                
                            }else{
                                $path = $root.$value;
                                
                                // Convert xml string into an object
                                $xml = simplexml_load_file($path);
                                $ns = $xml->getNamespaces(true);
                
                                $xml->registerXPathNamespace("cac", $ns['cac']);
                                $xml->registerXPathNamespace("cbc", $ns['cbc']);
                
                                $ID = $xml->xpath('//cbc:ID');
                                #echo "<br>ID:<br>" . $ID[0];
                                $IssueDate = $xml->xpath('//cbc:IssueDate');
                                #echo "<br>IssueDate:<br>" . $IssueDate[0];
                                $IssueTime = $xml->xpath('//cbc:IssueTime');
                                #echo "<br>IssueTime:<br>" . $IssueTime[0];
                                $InvoiceTypeCode = $xml->xpath('//cbc:InvoiceTypeCode');
                                #echo "<br>InvoiceTypeCode:<br>" . $InvoiceTypeCode[0];
                
                                $RUC = $xml->xpath('//cac:Signature//cac:SignatoryParty//cac:PartyIdentification//cbc:ID');
                
                                $Signature = $xml->xpath('//cac:AccountingCustomerParty//cac:Party//cac:PartyIdentification//cbc:ID');
                                #echo "<br>Signature:<br>" . $Signature[0];
                
                                $Monto = $xml->xpath('//cac:LegalMonetaryTotal//cbc:PayableAmount');
                                #echo "<br>Monto:<br>" . $Monto[0];
                                //guardar los datos en la base de datos---------------------------------------------------------------
								
								if(substr($value,12,2) == "07"){
									echo "nota de credito";
									echo $documento = $RUC[0].'-07-'.$ID[0];
									echo $fecha = $IssueDate[0].' '.$IssueTime[0];
									$tipodoc="notadecredito";
								}else{
									echo $documento = $RUC[0].'-'.$InvoiceTypeCode[0].'-'.$ID[0];
									echo $fecha = $IssueDate[0].' '.$IssueTime[0];
								}                
                                echo "<br>Documento: ".$documento;
                                echo "<br>Fecha: ".$fecha;
                                
                                guardarDatosImagen($Signature[0], $documento, $fecha, $Monto[0],$tipodoc);
                            }    
                        }
                        
                    }
                }else{
                    echo "no hay archivo";
                }
            }
        }
    }

} catch (\Exception $e) {
    echo "error";
}
?>