}
         } else {
             $arreglo['mensaje'] = obtenerMensaje('DATOS_NO_VALIDO');
             $arreglo['valido'] = false;
         }
     } else {
         $arreglo['mensaje'] = obtenerMensaje('ACCION_NO_VALIDA');
         $arreglo['valido'] = false;
     }
     $respuesta = array('raiz' => $arreglo);
     $respuesta = json_encode($respuesta);
     echo $respuesta;
     break;
 case 'actualizar':
     $objSistemaVentana->campo = 'cambiar';
     $objUsuario->fecnacusu = convertirFechaBd($objUsuario->fecnacusu);
     $accionvalida = $objSistemaVentana->verificarUsuario();
     $correcto = validaciones($objUsuario->cedusu, '8', 'numero') && validaciones($objUsuario->nomusu, '100', 'nombre') && validaciones($objUsuario->apeusu, '50', 'nombre') && validaciones($objUsuario->telusu, '20', 'telefono') && validaciones($objUsuario->email, '100', 'vacioemail') && validaciones($objUsuario->nota, '2000', 'vaciocaracteres');
     if ($accionvalida) {
         if ($correcto) {
             $objUsuario->buscarCodigo();
             if ($objUsuario->valido) {
                 if ($objUsuario->existe === true) {
                     $objUsuario->modificar();
                     if ($objUsuario->valido) {
                         $arreglo['mensaje'] = obtenerMensaje('OPERACION_EXITOSA');
                     } else {
                         $arreglo['mensaje'] = obtenerMensaje('OPERACION_FALLIDA');
                     }
                     $arreglo['valido'] = $objUsuario->valido;
                 } else {
     $objConsecutivo = new GenerarConsecutivo();
     $objConsecutivo->codemp = $_SESSION['la_empresa']['codemp'];
     $objConsecutivo->codsis = $objdata->sistema;
     $objConsecutivo->tabla = 'sigesp_dt_proc_cons';
     $objConsecutivo->campo = 'codres';
     $objConsecutivo->procede = '';
     $objConsecutivo->longcampo = '10';
     $objConsecutivo->campoini = '';
     $objConsecutivo->filtro = '';
     $objConsecutivo->valor = '';
     $codigo = $objConsecutivo->generarNumeroNuevo();
     $objResultado->codres = $codigo;
     $objResultado->codproc = 'SSSTUS';
     $objResultado->codsis = 'SSS';
     $objResultado->fecha = date('Y/m/d');
     $objResultado->fecha = convertirFechaBd($objResultado->fecha);
     $objResultado->bdorigen = $_SESSION['sigesp_basedatos'];
     $objResultado->bddestino = $_SESSION['sigesp_basedatos_destino'];
     $objResultado->descripcion = $descripcion;
     $objResultado->incluir();
     if ($objResultado->valido) {
         $arreglo['mensaje'] = obtenerMensaje('OPERACION_EXITOSA');
         $arreglo['valido'] = $objResultado->valido;
     } else {
         $arreglo['mensaje'] = obtenerMensaje('OPERACION_FALLIDA');
         $arreglo['valido'] = false;
     }
 }
 /*	else
 			{
 				$arreglo[0]['mensaje'] = obtenerMensaje('OPERACION_FALLIDA'); 
function validarFechaPeriodo($fecha, $codemp)
{
    $ano = 0;
    $mes = 0;
    $anoperiodo = 0;
    $mesperiodo = 0;
    $fecha = "";
    $periodofinal = "";
    $valido = true;
    $fecha = convertirFechaBd($fecha);
    $ano = intval(substr($fecha, 0, 4));
    $mes = intval(substr($fecha, 5, 2));
    $anoperiodo = intval(substr($fecha, 0, 4));
    $mesperiodo = intval(substr($fecha, 5, 2));
    $periodofinal = '31/12/' . $anoperiodo;
    if ($ano == $anoperiodo) {
        if ($mes >= $mesperiodo) {
            if (validarFechaMes($codemp, $fecha)) {
                $valido = true;
            } else {
                $valido = false;
                //$this->is_msg_error = 'Mes no esta Abierto';
                echo 'Mes no esta Abierto';
                return false;
            }
        } else {
            $valido = false;
        }
    } else {
        $valido = false;
    }
    if (!valido) {
        $fec = $fecha;
        $fec = substr($fec, 8, 2) . '/' . substr($fec, 5, 2) . '/' . substr($fec, 0, 4);
        echo 'La fecha es invalida, debe estar comprendido entre [' . $fec . '-' . $periodofinal . ']';
    }
    return $valido;
}
 if ($accionvalida) {
     $fecha = compararFecha($objdata->fecdesde, $objdata->fechasta);
     if ($fecha) {
         //$contador=0;
         $objPerfil->criterio[0]['operador'] = "WHERE";
         $objPerfil->criterio[0]['criterio'] = "bddestino";
         $objPerfil->criterio[0]['condicion'] = "=";
         $objPerfil->criterio[0]['valor'] = "'" . $objdata->bddestino . "'";
         //$contador++;
         $objdata->fecdesde = convertirFechaBd($objdata->fecdesde);
         $objPerfil->criterio[1]['operador'] = "AND";
         $objPerfil->criterio[1]['criterio'] = "fecha";
         $objPerfil->criterio[1]['condicion'] = ">" . "=";
         $objPerfil->criterio[1]['valor'] = "'" . $objdata->fecdesde . "'";
         //	$contador++;
         $objdata->fechasta = convertirFechaBd($objdata->fechasta);
         $objPerfil->criterio[2]['operador'] = "AND";
         $objPerfil->criterio[2]['criterio'] = "fecha";
         $objPerfil->criterio[2]['condicion'] = "<" . "=";
         $objPerfil->criterio[2]['valor'] = "'" . $objdata->fechasta . "'";
         //	$contador++;
         $datos = $objPerfil->leerTraspasos();
         if ($objPerfil->valido) {
             if (!$datos->EOF) {
                 $objReporte = new crearReporte();
                 $objReporte->codsis = strtolower($objdata->sistema);
                 $objReporte->crearXml('traspaso', $datos);
                 $objReporte->nomRep = 'traspasos';
                 echo $objReporte->mostrarReporte();
             }
         } else {
 public function copiarRecepcionesDocumento($conexionbdorigen)
 {
     global $conexionbd;
     $consulta = " SELECT * " . "   FROM cxp_rd " . "  INNER JOIN cxp_documento " . "     ON cxp_rd.codtipdoc = cxp_documento.codtipdoc " . "  WHERE cxp_rd.codemp = '{$this->codemp}'  " . "    AND cxp_rd.numrecdoc = '{$this->numrecdoc}' " . "    AND cxp_rd.cod_pro =  '{$this->cod_pro}'  " . "    AND cxp_rd.ced_bene = '{$this->ced_bene}' " . "    AND cxp_rd.codtipdoc ='{$this->tccodtipdoc}' ";
     $result = $conexionbdorigen->Execute($consulta);
     if ($result == false) {
         $this->mensaje = '';
         $this->valido = false;
     } else {
         if (!$result->EOF) {
             if ($result->fields['estlibcom'] == 1) {
                 $this->nuevolc = 2;
             } else {
                 $this->nuevolc = 0;
             }
             $this->numrecdoc = $result->fields['numrecdoc'];
             $this->codpro = $result->fields['cod_pro'];
             if (strlen(trim($this->codpro)) < 10) {
                 $this->codpro = str_pad($this->codpro, 8, '0', 0) . '00';
             }
             $this->cedbene = $result->fields['ced_bene'];
             $this->concepto = $result->fields['dencondoc'];
             $this->codcla = $result->fields['codcla'];
             $this->tipproben = $result->fields['tipproben'];
             $this->referencia = $result->fields['numref'];
             $this->estprodoc = $result->fields['estprodoc'];
             $this->procede = $result->fields['procede'];
             $this->estaprord = $result->fields['estaprord'];
             $this->fecaprord = $result->fields['fecaprord'];
             $this->usuaprord = $result->fields['usuaprord'];
             $this->numpolcon = $result->fields['numpolcon'];
             $this->estimpmun = $result->fields['estimpmun'];
             $this->montot = $result->fields['montotdoc'];
             $this->deducciones = $result->fields['mondeddoc'];
             $this->cargos = $result->fields['moncardoc'];
             $montocargo = $this->obtenerMontoCargos($conexionbdorigen);
             $this->nuevomonto = $this->factor * $this->montot;
             $this->nuededucciones = $this->factor * $this->deducciones;
             $this->nuecargos = $this->factor * $this->cargos;
             $this->fecaprord = convertirFechaBd($this->fecaprord);
             $this->fecemisol = convertirFechaBd($this->fecemisol);
             $consulta = " INSERT INTO cxp_rd (codemp, numrecdoc, codtipdoc, cod_pro, ced_bene, " . "\t\t\tcodcla, dencondoc,fecemidoc, fecregdoc, fecvendoc,montotdoc, " . "  \t\t\tmondeddoc, moncardoc,tipproben, numref, estprodoc, procede, " . " \t\t\testlibcom,estaprord, fecaprord,usuaprord, numpolcon,estimpmun, " . " \t\t\tmontot) " . " VALUES  ('{$this->codemp}','{$this->numrecdoc}','{$this->codtipodoc}', " . "\t\t'{$this->codpro}','{$this->cedbene}','{$this->codcla}','{$this->concepto}', " . " \t\t'{$this->fecemisol}','{$this->fecemisol}','{$this->fecemisol}'," . "\t\t'" . $this->nuevomonto . "',{$this->nuededucciones},{$this->nuecargos}, " . "\t\t '{$this->tipproben}','{$this->referencia}','E','{$this->procede}', " . "\t\t{$this->nuevolc},{$this->estaprord},'{$this->fecaprord}', " . "\t\t'{$this->usuaprord}',{$this->numpolcon},'{$this->estimpmun}', " . "\t\t'" . $this->nuevomonto . "')";
             escribirArchivo($this->archivo, $consulta);
             $result_cxp_rd = $conexionbd->Execute($consulta);
             if ($result_cxp_rd == false) {
                 $this->valido = false;
                 $this->mensaje = 'Error: No se incluyo la recepcion';
                 escribirArchivo($this->archivo, '* Error: No se incluyo la recepcion ' . $conexionbd->ErrorMsg());
                 escribirArchivo($this->archivo, '*******************************************************************************************************');
             }
             $this->ccontable = rtrim($this->obtenerCuentaContable($conexionbdorigen));
             if ($this->estconpre == 0) {
                 if ($this->ccontable != '') {
                     $this->debhab = 'D';
                     $this->CopiarDetalleContable();
                     if ($this->valido) {
                         $this->debhab = 'H';
                         $this->CopiarDetalleContable();
                     }
                 }
             } else {
                 $this->sccuenta = rtrim($this->obtenerContablePresupuesto($conexionbdorigen));
                 if ($this->sccuenta != '' && $this->ccontable != '') {
                     $this->copiarDetallePresupuestario();
                     if ($this->valido) {
                         $this->debhab = 'H';
                         $this->CopiarDetalleContable();
                         if ($this->valido) {
                             $this->debhab = 'D';
                             $this->CopiarDetalleContable();
                         }
                     }
                 } else {
                     $this->valido = false;
                     $this->mensaje = 'No se procesaron las solicitudes, Favor verifique las cuentas contables de la recepcion';
                     escribirArchivo($this->archivo, 'No se procesaron las solicitudes, Favor verifique las cuentas contables de la recepcion ');
                 }
             }
         }
     }
 }
         $respuesta = json_encode($respuesta);
         echo $respuesta;
     }
     break;
 case 'procesar':
     $objSistemaVentana->campo = 'ejecutar';
     $accionvalida = true;
     //$objSistemaVentana->verificarUsuario();
     if ($accionvalida) {
         $fecha = date('d-m-Y');
         $nombrearchivo = '../../vista/apr/resultados/';
         $nombrearchivo .= $_SESSION['sigesp_basedatos_apr'] . '_procesar_solicitudes_' . $fecha . '.txt';
         $archivo = @fopen($nombrearchivo, 'a+');
         $objTrasSolicitud->archivo = $archivo;
         //$objTrasSolicitud->iniciarTransaccion();
         $objTrasSolicitud->fecemisol = convertirFechaBd($objdata->fecope);
         $objTrasSolicitud->prefijo = $objdata->prefijo;
         $objTrasSolicitud->codtipodoc = $objdata->tipodoc;
         $objTrasSolicitud->cuenta = $objdata->cuenta;
         $objTrasSolicitud->estcla = $objdata->estcla;
         $objTrasSolicitud->estconpre = $objdata->estconpre;
         $objTrasSolicitud->consol = $objdata->consol;
         $objTrasSolicitud->procesarSolicitudes();
         //$objTrasSolicitud->completarTransaccion();
         if ($objTrasSolicitud->valido) {
             $arreglo['mensaje'] = obtenerMensaje('OPERACION_EXITOSA');
         } else {
             $arreglo['mensaje'] = obtenerMensaje('OPERACION_FALLIDA');
         }
         $arreglo['valido'] = $objTrasSolicitud->valido;
     } else {
 public function procesarAperturaEjercicio()
 {
     global $conexionbd;
     //$conexionbd->debug = 1;
     $conexionbdorigen = conectarBD($_SESSION['sigesp_servidor'], $_SESSION['sigesp_usuario'], $_SESSION['sigesp_clave'], $_SESSION['sigesp_basedatos'], $_SESSION['sigesp_gestor']);
     $this->mensaje = 'Proceso la apertura del ejercicio contable';
     $fecdesde = convertirFechaBd($this->periodo);
     $fecdesde = substr($fecdesde, 0, 10);
     $anno = substr($this->periodo, 0, 4);
     $fechasta = '31/12/' . $anno;
     $fechasta = convertirFechaBd($fechasta);
     $conexionbd->StartTrans();
     try {
         //$this->seleccionarConexion(&$conexionbd);
         $consulta = " SELECT curbb.*,scta.status " . " FROM (  SELECT DISTINCT B.sc_cuenta as sc_cuenta,B.denominacion as denominacion,B.saldo_Ant as saldo_ant, " . "                  B.debe as debe,B.haber as haber,B.saldo_act as saldo_act,C.T_DEBE_MES as t_debe_mes, " . "                  C.T_HABER_MES as t_haber_mes,COALESCE(C.T_DEBE_MES,0) as BalDebe, " . "                  COALESCE(C.T_HABER_MES,0) as BalHABER " . " FROM ( SELECT A.sc_cuenta,A.denominacion,saldo_ant,COALESCE(curSACT.T_DEBE_MES,0) as Debe, " . "               COALESCE(curSACT.T_HABER_MES,0) as Haber, " . "               (COALESCE(Saldo_Ant,0)+COALESCE(curSACT.T_DEBE_MES,0) - COALESCE(curSACT.T_HABER_MES,0)) as Saldo_Act " . "        FROM (SELECT CCT.sc_cuenta,CCT.denominacion,CCT.nivel,COALESCE(curSANT.SANT,0) as Saldo_Ant " . "              FROM scg_cuentas CCT " . " LEFT OUTER JOIN ( SELECT CSD.sc_cuenta,SUM(debe_mes-haber_mes) AS SANT " . "                   FROM scg_saldos CSD " . "                   WHERE CSD.codemp='" . $this->codemp . "' AND  CSD.fecsal < '" . $fecdesde . "' " . "                   GROUP BY CSD.sc_cuenta ) curSANT  " . " ON  CCT.sc_cuenta=curSANT.sc_cuenta ) A " . " LEFT OUTER JOIN ( SELECT CSD.sc_cuenta, COALESCE(SUM(debe_mes),0) As T_DEBE_MES, " . "                          COALESCE(SUM(haber_mes),0) As T_HABER_MES " . "                   FROM scg_saldos CSD " . "                   WHERE CSD.codemp='" . $this->codemp . "'  AND " . "                         CSD.fecsal between '" . $fecdesde . "' AND '" . $fechasta . "' " . "                   GROUP BY CSD.sc_cuenta ) curSACT ON A.sc_cuenta=curSACT.sc_cuenta " . " WHERE (A.nivel<=7)) B, " . " ( SELECT COALESCE(sum(DEBE_MES),0) as T_DEBE_MES, COALESCE(sum(HABER_MES),0) as T_HABER_MES " . "   FROM  scg_cuentas CCT, scg_saldos CSD " . "   WHERE CCT.codemp='" . $this->codemp . "' AND (CCT.sc_cuenta=CSD.sc_cuenta) AND " . "         CSD.fecsal between '" . $fecdesde . "' AND '" . $fechasta . "' AND (CCT.nivel=1) ) C " . "   ORDER BY B.sc_cuenta ) as curbb, scg_cuentas scta " . " WHERE curbb.sc_cuenta=scta.sc_cuenta  AND  scta.status='C' ";
         $resultSCG = $conexionbdorigen->Execute($consulta);
         if ($resultSCG === false) {
             escribirArchivo($this->archivo, '* Error al Seleccionar los saldos de la origen ' . '' . $conexionbd->ErrorMsg());
             $this->valido = false;
         } else {
             $this->arrSaldosContables = array('sccuenta' => array(), 'denominacion' => array(), 'saldoant' => array(), 'debe' => array(), 'haber' => array(), 'saldoact' => array());
             $i = 0;
             while (!$resultSCG->EOF) {
                 $this->arrSaldosContables['sccuenta'][$i] = $resultSCG->fields['sc_cuenta'];
                 $this->arrSaldosContables['denominacion'][$i] = $resultSCG->fields['denominacion'];
                 $this->arrSaldosContables['saldoant'][$i] = $resultSCG->fields['saldo_ant'];
                 $this->arrSaldosContables['debe'][$i] = $resultSCG->fields['debe'];
                 $this->arrSaldosContables['haber'][$i] = $resultSCG->fields['haber'];
                 $this->arrSaldosContables['saldoact'][$i] = $resultSCG->fields['saldo_act'];
                 $i++;
                 $resultSCG->MoveNext();
             }
             $this->valido = true;
         }
         if ($this->valido) {
             $periodo = '';
             $this->seleccionarPeriodo();
             $anno = substr($this->periodo, 0, 4);
             $periodo = '31/12/2008';
             $fecdesde = convertirFechaBd($periodo);
             $autoconta = true;
             if ($this->tipo == 'B') {
                 $fuente = $this->ced_ben;
             }
             if ($this->tipo == 'P') {
                 $fuente = $this->cod_prov;
             }
             if ($this->tipo == '-') {
                 $fuente = '----------';
             }
             $codban = '---';
             $ctaban = '-------------------------';
             $this->objInt = new class_sigesp_int_int();
             if ($this->valido) {
                 //Insertar los Saldos Contables Iniciales
                 $this->valido = $this->objInt->uf_int_init($this->codemp, $this->procede, $this->comprobante, $fecdesde, $this->descripcion, $this->tipo, $fuente, $autoconta, $codban, $ctaban, $this->tipo_cmp);
             }
             if ($this->valido) {
                 $total = count($this->arrSaldosContables['sccuenta']);
                 $j = 0;
                 while ($j < $total && $this->valido) {
                     $sccuenta = $this->arrSaldosContables['sccuenta'][$j];
                     $denominacion = $this->arrSaldosContables['denominacion'][$j];
                     $saldoant = $this->arrSaldosContables['saldoant'][$j];
                     $debe = $this->arrSaldosContables['debe'][$j];
                     $haber = $this->arrSaldosContables['haber'][$j];
                     $saldoact = $this->arrSaldosContables['saldoact'][$j];
                     if ($saldoact != 0) {
                         if ($saldoact > 0) {
                             $operacion = 'D';
                         }
                         if ($saldoact < 0) {
                             $operacion = 'H';
                         }
                         $monto = abs($saldoact);
                         $this->valido = $this->objInt->uf_scg_insert_datastore($this->codemp, $sccuenta, $operacion, $monto, $this->comprobante, $this->procede, $this->descripcion);
                     }
                     $j++;
                 }
             }
             if ($this->valido) {
                 $this->valido = $this->objInt->uf_init_end_transaccion_integracion('');
             }
             $this->objInt->uf_sql_transaction($this->valido);
         }
         if ($this->valido) {
             escribirArchivo($this->archivo, '*******************************************************************************************************');
             escribirArchivo($this->archivo, 'La Apertura de Contabilidad se Creo con Exito');
             escribirArchivo($this->archivo, '*******************************************************************************************************');
         } else {
             escribirArchivo($this->archivo, '*******************************************************************************************************');
             escribirArchivo($this->archivo, '' . $this->objInt->is_msg_error);
             escribirArchivo($this->archivo, '*******************************************************************************************************');
         }
     } catch (exception $e) {
         $this->valido = false;
         $this->mensaje = 'Ocurrio un error en la Transferencia. ' . $conexionbd->ErrorMsg();
         escribirArchivo($this->archivo, '* Ocurrio un error en la Transferencia. ');
         escribirArchivo($this->archivo, '* Error  ' . $conexionbd->ErrorMsg());
         escribirArchivo($this->archivo, '*******************************************************************************************************');
     }
     $conexionbd->CompleteTrans();
     $this->incluirSeguridad('PROCESAR', $this->valido);
 }
     }
     break;
 case 'irProcesar':
     $objSistemaVentana->campo = 'ejecutar';
     $accionvalida = true;
     //$objSistemaVentana->verificarUsuario();
     if ($accionvalida) {
         $fecha = date('d-m-Y');
         $nombrearchivo = '../../vista/apr/resultados/';
         $nombrearchivo .= $_SESSION['sigesp_basedatos_apr'] . '_' . $objTrasSaldos->codsis . '_' . $fecha . '.txt';
         $archivo = @fopen($nombrearchivo, 'a+');
         $objTrasSaldos->archivo = $archivo;
         //	$objTrasSaldos->iniciarTransaccion();
         $objTrasSaldos->movtransito = $objdata->movtransito;
         $objTrasSaldos->fecfin = convertirFechaBd($objdata->fecfin);
         $objTrasSaldos->fecini = convertirFechaBd($objdata->fecini);
         $objTrasSaldos->procesarSaldos();
         //	$objTrasSaldos->completarTransaccion();
         if ($objTrasSaldos->valido) {
             $arreglo['mensaje'] = obtenerMensaje('OPERACION_EXITOSA');
         } else {
             $arreglo['mensaje'] = obtenerMensaje('OPERACION_FALLIDA');
         }
         $arreglo['valido'] = $objTrasSaldos->valido;
     } else {
         $arreglo['mensaje'] = obtenerMensaje('ACCION_NO_VALIDA');
         $arreglo['valido'] = false;
     }
     $respuesta = array('raiz' => $arreglo);
     $respuesta = json_encode($respuesta);
     echo $respuesta;
             $varJson = generarJson($datos);
             echo $varJson;
         } else {
             echo '';
         }
         break;
     case 'auditoria':
         $objMenu->campo = 'imprimir';
         $accionvalida = $objMenu->verificarUsuario();
         if ($accionvalida) {
             $objReporte = new crearReporte();
             $objPerfilEvento->codusuario = $objdata->codusuario;
             $objPerfilEvento->codgrupo = $objdata->codgrupo;
             $objPerfilEvento->codsistema = $objdata->codsistema;
             $objPerfilEvento->evento = $objdata->evento;
             $objPerfilEvento->fecha = convertirFechaBd($objdata->fecha);
             $data = $objPerfilEvento->leerReporte();
             if (count($data) > 0) {
                 $objReporte->crearXml2('auditoria', $data);
                 $objReporte->nomRep = "auditoria";
                 echo $objReporte->mostrarReporte();
             } else {
                 echo '';
             }
             unset($objReporte);
         } else {
             echo '';
         }
 }
 unset($objMenu);
 unset($objSistema);