<?php
require_once ('../class_folder/dao/sigesp_spe_rep_plan_financiamiento_dao.php');
require_once ('../librerias/php/general/funciones.php');
require_once ('../librerias/php/general/CrearReporte.php');
//require_once('../librerias/php/general/Json.php');

if (filter_has_var(INPUT_POST, 'ObjSon'))
{
    $submit = str_replace("\\", "", $_POST['ObjSon']);
    $ArJson = json_decode($submit, true);
    $ofuente = new problemaDao();
    PasarDatos(&$ofuente, $ArJson);
    $Evento = $GLOBALS["oper"];
    switch ($Evento)
    {
        case 'incluir':
            //echo "{$ofuente->denfuefin}";
            if ($ofuente->incluir())
            {
                echo "|1";
            }
            else
            {
                echo "|0";
            }
            break;
        case 'buscarcodigo':
            $cad = AgregarUnoZ($ofuente->BuscarCodigo(), 15);
            echo "|{$cad}";
            break;

        case 'catalogo':
            $Datos = $ofuente->LeerTodos();
            //var_dump($Datos);
            //$Registros = "|";


            //aqui se pasan los datos de un arreglo de objetos a un arreglo denfuefin arreglos de php
            $obj = $Datos[0];
            foreach ($obj as $Propiedad => $valor)
            {
                $i = 0;
                foreach ($Datos as $obj)
                {

                    if (array_key_exists($Propiedad, $ArJson))
                    {

                        $arRegistros[$i][$Propiedad] = $Datos[$i]->$Propiedad;
                        $i++;
                    }

                }


            }
            //aqui se pasa el arreglo de arreglos a un objeto json
            $TextJso = array("raiz" => $arRegistros);
            $TextJson = json_encode($TextJso);
            echo $TextJson;
            break;

        case 'actualizar':
            //var_dump($ofuente->cod_fuenfin);
            //echo "{$ofuente->denfuefin}";
            //die();
            if ($ofuente->Modificar())
            {
                echo "|1";
            }
            else
            {
                echo "|0";
            }
            break;
        case 'eliminar':
            if ($ofuente->Eliminar())
            {
                echo "|1";
            }
            else
            {
                echo "|0";
            }
            break;
        case 'buscarcadena':

            $Datos = $ofuente->LeerPorCadena($GLOBALS["criterio"], $GLOBALS["cadena"]);
            $ObjSon = GenerarJson($Datos);
            echo $ObjSon;
            break;
        case 'Reporte':
            $oReporte = new Reporte();
            $Data = $ofuente->LeerTodos();
            $oReporte->CrearXml('listaproblemas', $Data);
            $oReporte->NomRep = "problemas";
            echo $oReporte->MostrarReporte();

    }
}


function PasarDatos($ObjDao, $ObJson)
{
    $ArDao = $ObjDao->getAttributeNames();
    foreach ($ObjDao as $IndiceD => $valorD)
    {
        foreach ($ObJson as $Indice => $valor)
        {
            if ($Indice == $IndiceD)
            {
                $ObjDao->$Indice = $valor;
            }
            else
            {

                $GLOBALS[$Indice] = $valor;

            }

        }
    }
}

function GenerarJson($Datos)
{
    global $ArJson;
    $obj = $Datos[0];
    if (is_object($obj))
    {
        foreach ($obj as $Propiedad => $valor)
        {
            $i = 0;
            foreach ($Datos as $obj)
            {

                if (array_key_exists($Propiedad, $ArJson))
                {

                    $arRegistros[$i][$Propiedad] = $Datos[$i]->$Propiedad;
                    $i++;
                }

            }


        }
        //aqui se pasa el arreglo de arreglos a un objeto json
        $TextJso = array("raiz" => $arRegistros);
        $TextJson = json_encode($TextJso);
        return $TextJson;

    }
}

?>