/**
  * Agrega una nueva persona  a la base de datos
  * @param string $nombre
  * @param string $apellidopaterno
  * @param string $apellidomaterno
  * @param string $rfc
  * @param string $curp
  * @param number $cajalocal
  * @param string $fecha_de_nacimiento
  * @param string $lugar_de_nacimiento
  * @param string $tipo_de_ingreso
  * @param string $estado_civil
  * @param string $genero
  * @param string $dependencia
  * @param string $regimen_conyugal
  * @param number $personalidad_juridica
  * @param string $grupo_solidario
  * @param string $observaciones
  * @param number $identificado_con
  * @param string $documento_de_identificacion
  * @param string $codigo
  * @param string $sucursal
  * @param string $movil
  * @param string $correo
  * @param number $dependientes
  * @param string $fecha
  * @param string $riesgo
  * @param string $clave_fiel
  * @param string $pais
  * @return boolean
  */
 function add($nombre, $apellidopaterno = "", $apellidomaterno = "", $rfc = "", $curp = "", $cajalocal = DEFAULT_CAJA_LOCAL, $fecha_de_nacimiento = false, $lugar_de_nacimiento = "", $tipo_de_ingreso = FALLBACK_PERSONAS_TIPO_ING, $estado_civil = DEFAULT_ESTADO_CIVIL, $genero = DEFAULT_GENERO, $dependencia = FALLBACK_CLAVE_EMPRESA, $regimen_conyugal = DEFAULT_REGIMEN_CONYUGAL, $personalidad_juridica = PERSONAS_FIGURA_FISICA, $grupo_solidario = DEFAULT_GRUPO, $observaciones = "", $identificado_con = 1, $documento_de_identificacion = "0", $codigo = false, $sucursal = false, $movil = "", $correo = "", $dependientes = 0, $fecha = false, $riesgo = AML_PERSONA_BAJO_RIESGO, $clave_fiel = "", $pais = EACP_CLAVE_DE_PAIS, $regimen_fiscal = DEFAULT_REGIMEN_FISCAL)
 {
     $sucess = false;
     $xF = new cFecha();
     $xLoc = new cLocal();
     //$ql						= new MQL();
     //Reparando
     $fecha_de_entrevista = $xF->getFechaISO($fecha);
     $fecha_de_alta = $xF->getFechaISO($fecha);
     $fecha_de_revision = $xF->getFechaISO($fecha);
     $estatus = FALLBACK_PERSONAS_ESTADO;
     $region = FALLBACK_PERSONAS_REGION;
     $nombre = addslashes($nombre);
     $apellidomaterno = addslashes($apellidomaterno);
     $apellidopaterno = addslashes($apellidopaterno);
     $nombre = utf8_decode(strtoupper($nombre));
     $apellidopaterno = utf8_decode(strtoupper($apellidopaterno));
     $apellidomaterno = utf8_decode(strtoupper($apellidomaterno));
     $dependientes = setNoMenorQueCero($dependientes);
     $eacp = EACP_CLAVE;
     $sucursal = $sucursal == false ? getSucursal() : $sucursal;
     $usuario = getUsuarioActual();
     $codigo = $codigo == false ? $this->mCodigo : $codigo;
     $fecha_de_nacimiento = $xF->getFechaISO($fecha_de_nacimiento);
     $cajalocal = setNoMenorQueCero($cajalocal);
     $cajalocal = $cajalocal == 0 ? $xLoc->getCajaLocal() : $cajalocal;
     if ($codigo == false) {
         $xCL = new cCajaLocal($cajalocal);
         $xCL->init();
         $codigo = $xCL->getUltimoSocioRegistrado(true) + 1;
         $this->mCodigo = $codigo;
     }
     //purgar RFC
     if ($pais == "MX") {
         $xMex = new cReglasDePais();
         $rfc = $xMex->getValidIDFiscal($rfc);
     }
     $rfc = $rfc == "" ? DEFAULT_PERSONAS_RFC_GENERICO : $rfc;
     $sql = "INSERT INTO socios_general(codigo, nombrecompleto, apellidopaterno, apellidomaterno, rfc, curp, \n\t\t\t\t\tfechaentrevista, fechaalta, estatusactual, region, cajalocal,\n\t\t\t\t\tfechanacimiento, lugarnacimiento, tipoingreso,\n\t\t\t\t\testadocivil, genero, eacp, observaciones, idusuario,\n\t\t\t\t\tgrupo_solidario, personalidad_juridica, dependencia,\n\t\t\t\t\tregimen_conyugal, sucursal, fecha_de_revision, tipo_de_identificacion, documento_de_identificacion,\n\t\t\t\t\tcorreo_electronico, telefono_principal, dependientes_economicos, pais_de_origen, nivel_de_riesgo_aml, clave_de_firma_electronica,\n\t\t\tregimen_fiscal)\n    \t\t\tVALUES\n\t\t\t\t\t({$codigo}, '{$nombre}', '{$apellidopaterno}', '{$apellidomaterno}', '{$rfc}', '{$curp}',\n\t\t\t\t\t'{$fecha_de_entrevista}', '{$fecha_de_alta}', {$estatus}, {$region}, {$cajalocal},\n\t\t\t\t\t'{$fecha_de_nacimiento}', '{$lugar_de_nacimiento}', {$tipo_de_ingreso},\n\t\t\t\t\t{$estado_civil}, {$genero}, '{$eacp}', '{$observaciones}', {$usuario},\n\t\t\t\t\t{$grupo_solidario}, {$personalidad_juridica}, {$dependencia},\n\t\t\t\t\t'{$regimen_conyugal}', '{$sucursal}', '{$fecha_de_revision}', {$identificado_con}, '{$documento_de_identificacion}',\n\t\t\t\t\t'{$correo}', '{$movil}', {$dependientes}, '{$pais}', {$riesgo}, '{$clave_fiel}', {$regimen_fiscal})";
     $x = my_query($sql);
     $this->mCodigo = $codigo;
     if ($x["stat"] == false) {
         $this->mMessages .= "ERROR\tSe fallo al agregar la persona {$codigo}\r\n";
         $sucess = false;
     } else {
         $this->mMessages .= "OK\tSe agrego el Socio {$codigo} con Nombre {$nombre} {$apellidopaterno} {$apellidomaterno} \r\n";
         $this->init();
         //Iniciar
         //Agregar en la Tabla de Grupos Solidarios si aplica
         //2012-06-20 si es grupo y es persojna moral
         if ($tipo_de_ingreso == TIPO_INGRESO_GRUPO and $personalidad_juridica == PERSONAS_FIGURA_MORAL) {
             $xGrup = new cGrupo($codigo);
             $this->addToGrupos(DEFAULT_SOCIO, DEFAULT_SOCIO, $sucursal, $fecha);
             //$xGrup->add($nombre, "", DEFAULT_SOCIO, DEFAULT_SOCIO, 10, 1, $codigo, $sucursal, $fecha_de_alta, $codigo);
             //$this->mMessages .= "OK\tSe Agrega Nuevo Grupo con clave $codigo\r\n";
         }
         if (MODULO_AML_ACTIVADO == true) {
             if ($this->mNoAML == false) {
                 //checar lista negra
                 $xAml = new cAMLPersonas($codigo);
                 $xAml->init($codigo);
                 $ln = $xAml->getBuscarEnListaNegra($nombre, $apellidopaterno, $apellidomaterno);
                 if ($ln == true) {
                     $xCM = new cAML();
                     $xCM->sendAlerts($codigo, AML_OFICIAL_DE_CUMPLIMIENTO, 901001, $xAml->getMessages());
                 }
                 if ($pais != EACP_CLAVE_DE_PAIS) {
                     //verificar persona extranjera
                     $xCM = new cAML();
                     $xCM->sendAlerts($codigo, AML_OFICIAL_DE_CUMPLIMIENTO, 801009, "PERSONA EXTRANJERA REGISTRADA");
                 }
                 if ($riesgo == AML_PERSONA_ALTO_RIESGO) {
                     //verificar persona extranjera
                     $xCM = new cAML();
                     $xCM->sendAlerts($codigo, AML_OFICIAL_DE_CUMPLIMIENTO, 901001, "PERSONA ALTAMENTE RIESGOSA REGISTRADA");
                 }
                 //buscar persona SDN
             }
         }
         $sucess = true;
     }
     return $sucess;
 }
    $idnombrecompleto = $razonSocial;
    //rfc completo
    $idapellidopaterno = "";
    $idapellidomaterno = "";
}
$agregardom = trim($calle) == "" ? false : true;
if (SISTEMA_CAJASLOCALES_ACTIVA == false) {
    $idcajalocal = $xSuc->getCajaLocalResidente();
}
if (trim($idnombrecompleto . $idapellidopaterno) == "") {
    $msg .= "ERROR\tNo existe la persona en alta\r\n";
    $ready = false;
}
if ($ready == true) {
    $xCL = new cCajaLocal($idcajalocal);
    $xCL->init();
    $xSoc = new cSocio(false);
    //verificar si existe el socio
    $success = $xSoc->add($idnombrecompleto, $idapellidopaterno, $idapellidomaterno, $idrfc, $idcurp, $idcajalocal, $idfechanacimiento, $idlugardenacimiento, $idtipodeingreso, $idestadocivil, $idgenero, $empresa, $idregimenmatrimonial, $idfigurajuridica, $gruposolidario, $idobservaciones, $idtipoidentificacion, $idnumerodocumento, false, $sucursal, $idtelefono, $idemail, $iddependientes, $idfecharegistro, AML_PERSONA_BAJO_RIESGO, $idclavefiel, $idpais, $idregimenfiscal);
    //razones de no fiel ... como nota
    if ($success == true) {
        if ($descuento > 0) {
            $xSoc->setMontoAhorroPreferente($descuento);
        }
        if ($empresa != FALLBACK_CLAVE_EMPRESA) {
            $xSoc->setResetEmpresa($empresa);
        }
        if (trim($idrazonnofiel) == "") {
        } else {
            $xSoc->setRazonesDeNoFIEL($idrazonnofiel);
        }
    $filename = $_SERVER['SCRIPT_NAME'];
    $filename = str_replace(".php", "", $filename);
    $filename = str_replace("rpt", "", $filename);
    $filename = str_replace("-", "", $filename);
    $filename = "{$filename}-" . date("YmdHi") . "-from-" . $iduser . ".xls";
    header("Content-type: application/x-msdownload");
    header("Content-Disposition: attachment; filename={$filename}");
    header("Pragma: no-cache");
    header("Expires: 0");
}
//tabla de Cajas Locales. . " WHERE socios_cajalocal.idsocios_cajalocal=$rw[0]"
$sqlSoc = "SELECT\n\t\t\t\t\t\t`socios_cajalocal`.*,\n\t\t\t\t\t\t`socios_region`.*,\n\t\t\t\t\t\t`socios_cajalocal`.`idsocios_cajalocal`\n\t\t\t\t\tFROM\n\t\t\t\t\t\t`socios_cajalocal` `socios_cajalocal`\n\t\t\t\t\t\t\tINNER JOIN `socios_region` `socios_region`\n\t\t\t\t\t\t\tON `socios_cajalocal`.`region` = `socios_region`.`idsocios_region`\n\t\t\t\t\t{$ByCL}\n\t\t\t\t\t";
$rs = mysql_query($sqlSoc, cnnGeneral());
while ($rw = mysql_fetch_array($rs)) {
    $cl = new cCajaLocal($rw["idsocios_cajalocal"]);
    $cl->init($rw);
    echo $cl->getFicha($fieldset);
    $cajalocal = $rw["idsocios_cajalocal"];
    $sqlComplete = "SELECT SQL_CACHE\n\t\t\t\t\t\t\t\t\t`socios_general`.`codigo`,\n\n\t\t\t\t\t\t\t\t\t`socios_general`.`apellidopaterno`                         AS\n\t\t\t\t\t\t\t\t\t`apellido_paterno`,\n\t\t\t\t\t\t\t\t\t`socios_general`.`apellidomaterno`                         AS\n\t\t\t\t\t\t\t\t\t`apellido_materno`,\n\n\t\t\t\t\t\t\t\t\t`socios_general`.`nombrecompleto`                          AS `nombre`,\n\n\t\t\t\t\t\t\t\t\t`socios_general`.`curp`,\n\t\t\t\t\t\t\t\t\t`socios_genero`.`descripcion_genero`                       AS `genero`,\n\t\t\t\t\t\t\t\t\t`socios_aeconomica_dependencias`.`descripcion_dependencia` AS `dependencia`,\n\t\t\t\t\t\t\t\t\t`socios_estatus`.`nombre_estatus`                          AS `estatus`,\n\t\t\t\t\t\t\t\t\t`socios_estadocivil`.`descripcion_estadocivil`             AS `estado_civil`\n\t\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t\t`socios_grupossolidarios`.`nombre_gruposolidario`          AS\n\t\t\t\t\t\t\t\t\t`grupo_solidario`\n\n\t\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t`socios_general` `socios_general`\n\t\t\t\t\t\t\t\t\t\tLEFT OUTER JOIN `socios_grupossolidarios` `socios_grupossolidarios`\n\t\t\t\t\t\t\t\t\t\tON `socios_general`.`grupo_solidario` = `socios_grupossolidarios`.\n\t\t\t\t\t\t\t\t\t\t`idsocios_grupossolidarios`\n\t\t\t\t\t\t\t\t\t\t\tLEFT OUTER JOIN `socios_genero` `socios_genero`\n\t\t\t\t\t\t\t\t\t\t\tON `socios_general`.`genero` = `socios_genero`.`idsocios_genero`\n\t\t\t\t\t\t\t\t\t\t\t\tLEFT OUTER JOIN `socios_estadocivil` `socios_estadocivil`\n\t\t\t\t\t\t\t\t\t\t\t\tON `socios_general`.`estadocivil` = `socios_estadocivil`.\n\t\t\t\t\t\t\t\t\t\t\t\t`idsocios_estadocivil`\n\t\t\t\t\t\t\t\t\t\t\t\t\tLEFT OUTER JOIN `socios_aeconomica_dependencias`\n\t\t\t\t\t\t\t\t\t\t\t\t\t`socios_aeconomica_dependencias`\n\t\t\t\t\t\t\t\t\t\t\t\t\tON `socios_general`.`dependencia` =\n\t\t\t\t\t\t\t\t\t\t\t\t\t`socios_aeconomica_dependencias`.\n\t\t\t\t\t\t\t\t\t\t\t\t\t`idsocios_aeconomica_dependencias`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tLEFT OUTER JOIN `socios_estatus` `socios_estatus`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tON `socios_general`.`estatusactual` = `socios_estatus`.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t`tipo_estatus`\n\t\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t(`socios_general`.`cajalocal` = {$cajalocal} )\n\t\t\t\t\t\t\t\t\t\t{$ByEstatus}\n\t\t\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t\t\t`socios_general`.`cajalocal`,\n\t\t\t\t\t\t\t\t\t\t`socios_general`.`codigo`\n\t\t\t\t\t\t\t\t\t\t";
    $ctbl = new cTabla($sqlComplete, 0);
    $ctbl->setTdClassByType();
    $ctbl->Show("", false);
    //$sumSoc	= $ctbl->getFieldsSum();
    $regs = $ctbl->getRowCount();
    echo "<table width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>CLAVE DE PERSONAS</th>\n\t\t\t\t\t\t<th>{$regs}</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t";
}
if ($out != OUT_EXCEL) {
    echo getRawFooter();
    ?>
</body>
</html>