Ejemplo n.º 1
0
 private function NewUser()
 {
     $DB = new DataBase();
     $nombre = filter_input(INPUT_POST, "nombre");
     $apellido_p = filter_input(INPUT_POST, "apellido_p");
     $apellido_m = filter_input(INPUT_POST, "apellido_m");
     $fecha_nac = filter_input(INPUT_POST, "fecha_nac");
     $curp = filter_input(INPUT_POST, "curp");
     $usuario = filter_input(INPUT_POST, "usuario");
     $password = filter_input(INPUT_POST, "password");
     $Repeated = "SELECT * FROM Usuarios WHERE nombre_usuario COLLATE utf8_bin = '{$usuario}'";
     $ResultRepetaed = $DB->ConsultaSelect("CFDI", $Repeated);
     if ($ResultRepetaed['Estado'] != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al comprobar que el usuario no estuviera registrado previamente</p><br>Detalles:<br><br>" . $ResultRepetaed['Estado']);
         return;
     }
     if (count($ResultRepetaed['ArrayDatos']) > 0) {
         XML::XmlResponse("RepeatedUser", 1, "El usuario '{$nombre}' ya existe");
         return 0;
     }
     $Insert = "INSERT INTO Usuarios (nombre_usuario,password,nombre,apellido_materno,apellido_paterno,curp,fecha_nac,tipo_usuario,fecha_alta)\r\n        VALUES ('{$usuario}' ,'{$password}', '{$nombre}','{$apellido_m}','{$apellido_p}','{$curp}','{$fecha_nac}','usuario',now())";
     if (($ResultInsert = $DB->ConsultaQuery("CFDI", $Insert)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al registrar el nuevo usuario</p><br>Detalles:<br><br>{$ResultInsert}");
         return 0;
     }
     XML::XmlResponse("NewUser", 1, "El usuario '{$usuario}' se dio de alta con éxito");
 }
Ejemplo n.º 2
0
 public function InsertHistorical($content, $IdUser, $id_detalle, $id_validacion, $ruta_xml, $ruta_pdf, $tipo_archivo)
 {
     $DB = new DataBase();
     $q = "INSERT INTO historial_{$content} SET id_detalle={$id_detalle},id_validacion={$id_validacion},id_usuario={$IdUser}" . ",fecha_hora=now(),ruta_xml='{$ruta_xml}', ruta_pdf='{$ruta_pdf}', tipo_archivo='{$tipo_archivo}'";
     $NewIdHistorical = $DB->ConsultaInsertReturnId("CFDI", $q);
     if (!($NewIdHistorical > 0)) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al insertar el registro en el histórico</p><br>Detalles:<br><br>{$NewIdHistorical}");
         return 0;
     }
     return $NewIdHistorical;
 }
Ejemplo n.º 3
0
 private function procesar_ruta_pdf()
 {
     $id_detalle = $_POST['id_detalle'];
     $server = $_SERVER['SERVER_NAME'];
     $ruta_pdf = $this->search_route_pdf($_POST['content'], $id_detalle);
     if (file_exists($ruta_pdf['ruta_pdf'])) {
         //La ruta del pdf es absoluta y solo se necesita la ruta a nivel de server por eso se reconstruye
         $directorio = explode("/", $ruta_pdf['ruta_pdf']);
         $ruta_nueva_pdf = '/';
         for ($cont = 3; $cont < count($directorio); $cont++) {
             if ($cont + 1 == count($directorio)) {
                 $ruta_nueva_pdf .= $directorio[$cont];
             } else {
                 $ruta_nueva_pdf .= $directorio[$cont] . '/';
             }
         }
         $ruta = 'http://' . $server . $ruta_nueva_pdf;
         if ($_POST['content'] == 'nomina') {
             $clave_log = 1;
         }
         if ($_POST['content'] == 'cliente') {
             $clave_log = 2;
         }
         if ($_POST['content'] == 'proveedor') {
             $clave_log = 3;
         }
         //            $log=new Log();
         //            $log->write_line(23, $_POST['id_login'],$_POST['id_detalle'],$clave_log);/* Registro Log */
         //esta es la ruta que se envia al dialog que muestra el pdf
         //            echo $ruta;
         $doc = new DOMDocument('1.0', 'utf-8');
         $doc->formatOutput = true;
         $root = $doc->createElement('PdfPath');
         $doc->appendChild($root);
         $Package = $doc->createElement("Path", $ruta);
         $root->appendChild($Package);
         header("Content-Type:text/xml");
         echo $doc->saveXML();
     } else {
         XML::XmlResponse("Error", 0, "<p>No existe el pdf solicitado</p>");
     }
 }
Ejemplo n.º 4
0
 private function NewUser()
 {
     $DB = new DataBase();
     $EnterpriseAlias = filter_input(INPUT_POST, "EnterpriseAlias");
     $NewUserName = filter_input(INPUT_POST, "NewUsername");
     $LastName = filter_input(INPUT_POST, "LastName");
     $MLastName = filter_input(INPUT_POST, "MLastName");
     $SystemUsername = filter_input(INPUT_POST, "SystemUsername");
     $Password = filter_input(INPUT_POST, "Password");
     $Repeated = "SELECT * FROM Users WHERE UserName COLLATE utf8_bin = '{$SystemUsername}'";
     $ResultRepetaed = $DB->ConsultaSelect($EnterpriseAlias, $Repeated);
     if ($ResultRepetaed['Estado'] != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al comprobar que el usuario no estuviera registrado previamente</p><br>Detalles:<br><br>" . $ResultRepetaed['Estado']);
         return;
     }
     if (count($ResultRepetaed['ArrayDatos']) > 0) {
         XML::XmlResponse("RepeatedUser", 1, "El usuario '{$NewUserName}' ya existe");
         return 0;
     }
     $now = date('Y-m-d');
     $Insert = "INSERT INTO Users (UserName, Password, Name, LastName, MLastName, DischargeDate)\n        VALUES ('{$SystemUsername}', '{$Password}', '{$NewUserName}', '{$LastName}', '{$MLastName}', '{$now}')";
     $IdUser = $DB->ConsultaInsertReturnId($EnterpriseAlias, $Insert);
     if (!$IdUser > 0) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al registrar el nuevo usuario</p><br>Detalles:<br><br>{$ResultInsert}");
         return 0;
     }
     $doc = new DOMDocument('1.0', 'utf-8');
     $doc->formatOutput = true;
     $root = $doc->createElement("NewUser");
     $doc->appendChild($root);
     $mensaje_ = $doc->createElement('Mensaje', "Usuario '{$NewUserName}' registrado con éxito");
     $root->appendChild($mensaje_);
     $IdUserXml = $doc->createElement("IdUser", $IdUser);
     $root->appendChild($IdUserXml);
     $NewUsernameSystemXml = $doc->createElement("SystemUsername", $SystemUsername);
     $root->appendChild($NewUsernameSystemXml);
     $UserName = $doc->createElement("UserName", $NewUserName);
     $root->appendChild($UserName);
     $LastNameXml = $doc->createElement("LastName", $LastName);
     $root->appendChild($LastNameXml);
     $MLastNameXml = $doc->createElement("MLastName", $MLastName);
     $root->appendChild($MLastNameXml);
     $DischargeDate = $doc->createElement("DischargeDate", $now);
     $root->appendChild($DischargeDate);
     header("Content-Type:text/xml");
     echo $doc->saveXML();
 }
Ejemplo n.º 5
0
 public static function GetEnterprisePath($EnterpriseAlias)
 {
     $DB = new DataBase();
     $Query = "SELECT ent.IdVolume, vol.VolumeName FROM Enterprises ent INNER JOIN Volumes vol ON " . "ent.IdVolume = vol.IdVolume WHERE ent.Alias COLLATE utf8_bin = '{$EnterpriseAlias}'";
     $Result = $DB->ConsultaSelect("CSDOCS_CFDI", $Query, 1);
     if ($Result['Estado'] != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b< al consultar el Path del Volúmen</p><br>Detalles:<br><br>" . $Result['Estado']);
         return 0;
     }
     $Path = $Result['ArrayDatos'][0]['VolumeName'];
     if (!file_exists($Path)) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> el path de la empresa con Alias <b>{$EnterpriseAlias}</b> no existe.</p>");
         return 0;
     }
     return $Path;
 }
Ejemplo n.º 6
0
 private function conexion_imap($ruta_imap, $usuario, $password)
 {
     //        echo "<p>$ruta_imap</p>";
     //        echo "<p>$usuario</p>";
     //        echo "<p>$password</p>";
     /* Datos devueltos por default */
     $estado = 1;
     if ($mbox = imap_open($ruta_imap, $usuario, $password)) {
         imap_close($mbox);
     } else {
         XML::XmlResponse("Error", 0, "<p>Ocurrió el siguiente error. " . imap_last_error() . ". <p>Revise que sus datos sean correctos</p>");
         //            $estado="Ocurrió el siguiente error. ".imap_last_error().". <p>Revise que sus datos sean correctos</p>";
         $estado = 0;
     }
     return $estado;
 }
Ejemplo n.º 7
0
 private function LogIn()
 {
     $DB = new DataBase();
     //        echo "<p>Ususario= ".$_POST['usuario']."   Contraseña=  ".$_POST['password']."</p>";
     $EnterpriseAlias = filter_input(INPUT_POST, "EnterpriseAlias");
     /* Alias de la empresa */
     $IdEnterprise = filter_input(INPUT_POST, "IdEnterprise");
     $UserName = filter_input(INPUT_POST, "UserName");
     $idUser = 0;
     $Password = filter_input(INPUT_POST, "Password");
     $q = '';
     /* Modo administración solo puede entrar root */
     if (strcasecmp($UserName, 'root') != 0 and strcasecmp($IdEnterprise, 0) == 0) {
         XML::XmlResponse("AccessDenied", 0, "<p>Acceso solo para root</p>");
         return 0;
     }
     if (strcasecmp($EnterpriseAlias, "Manager") == 0) {
         $q = "SELECT * FROM Users WHERE UserName COLLATE utf8_bin = '{$UserName}' AND Password COLLATE utf8_bin = '{$Password}'";
     } else {
         $q = "SELECT * FROM Users WHERE UserName COLLATE utf8_bin = '{$UserName}' AND Password COLLATE utf8_bin = '{$Password}'";
     }
     $ResultLogin = $DB->ConsultaSelect($EnterpriseAlias, $q);
     if ($ResultLogin['Estado'] != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al iniciar sesión</p><br>Detalles:<br><br>" . $ResultLogin['Estado']);
         return 0;
     }
     $UserInfo = $ResultLogin['ArrayDatos'];
     if (count($UserInfo) > 0) {
         if (strcasecmp($UserName, "root") == 0) {
             $IdEnterprise = 1;
         }
         $nombre_usuario = $UserInfo[0]['UserName'];
         $idUser = $UserInfo[0]['IdUser'];
     } else {
         XML::XmlResponse("AccessDenied", 0, "<p>Usuario no registrado</p>");
         return 0;
     }
     /* Se busca que la empresa este registrada */
     if ($IdEnterprise > 0) {
         $EnterpriseLogin = "******";
         $ResultEnterprisesLogin = $DB->ConsultaSelect($EnterpriseAlias, $EnterpriseLogin);
         if ($ResultEnterprisesLogin['Estado'] != 1) {
             XML::XmlResponse("Error", 0, "<p><b>Error</b> al solicitar la empresa {$EnterpriseAlias}</p><br>Detalles:<br><br>" . $ResultEnterprisesLogin['Estado']);
             return 0;
         }
         if (!($ResultEnterprisesLogin['ArrayDatos'] > 0)) {
             XML::XmlResponse("AccessDenied", 0, "<p>Empresa desconocida</p>");
             return 0;
         }
     }
     $doc = new DOMDocument('1.0', 'utf-8');
     $doc->formatOutput = true;
     $root = $doc->createElement('Login');
     $doc->appendChild($root);
     $id_usuario_ = $doc->createElement('IdUser', $idUser);
     $root->appendChild($id_usuario_);
     $nombre_usuario = $doc->createElement('UserName', $UserName);
     $root->appendChild($nombre_usuario);
     $EnterpriseNameXml = $doc->createElement("EnterpriseName", $EnterpriseAlias);
     $root->appendChild($EnterpriseNameXml);
     $IdEnterpriseXml = $doc->createElement("IdEnterprise", $IdEnterprise);
     $root->appendChild($IdEnterpriseXml);
     header("Content-Type:text/xml");
     echo $doc->saveXML();
 }
Ejemplo n.º 8
0
 private function GetActiveEmails()
 {
     $DB = new DataBase();
     $EnterpriseAlias = filter_input(INPUT_POST, "EnterpriseAlias");
     $IdUser = filter_input(INPUT_POST, "IdUser");
     $UserName = filter_input(INPUT_POST, "UserName");
     $ActiveEmailsQuery = "SELECT IdEmail, User FROM EmailEngine";
     $ActiveEmailResult = $DB->ConsultaSelect($EnterpriseAlias, $ActiveEmailsQuery);
     if ($ActiveEmailResult['Estado'] != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al consultar los correos activos</p><br>Detalles:<br><br>" . $ActiveEmailResult['Estado']);
         return 0;
     }
     XML::XmlArrayResponse("ActiveEmails", "Email", $ActiveEmailResult['ArrayDatos']);
 }
Ejemplo n.º 9
0
 private function GetXmlStructure()
 {
     $XmlPath = filter_input(INPUT_POST, "XmlPath");
     $content = filter_input(INPUT_POST, "content");
     $IdLogin = filter_input(INPUT_POST, "IdLogin");
     if (file_exists($XmlPath)) {
         $xml_contents = file_get_contents($XmlPath);
         $xml_ = preg_replace("/(<\\/?)(\\w+):([^>]*>)/", "\$1\$2\$3", $xml_contents);
         $xml = simplexml_load_string($xml_);
         header('Content-Type: text/xml');
         echo $xml->saveXML();
         $log = new Log();
         if ($content == 'nomina') {
             $clave_log = 1;
         }
         if ($content == 'cliente') {
             $clave_log = 2;
         }
         if ($content == 'proveedor') {
             $clave_log = 3;
         }
         //            $log->write_line(18, $IdLogin, 0 , $clave_log);/* Registro Log */
     } else {
         XML::XmlResponse("Error", 0, "<p><b>Error</b>, no existe el documento solicitado.</p>");
     }
 }
Ejemplo n.º 10
0
 function InsertValidationCfdi($EnterpriseAlias, $content, $validacion, $ReceiptPath)
 {
     $DB = new DataBase();
     $webService = $validacion->getElementsByTagName("WebService")->item(0)->nodeValue;
     $EmisorRfc = $validacion->getElementsByTagName("EmisorRfc")->item(0)->nodeValue;
     $ReceptorRfc = $validacion->getElementsByTagName("ReceptorRFC")->item(0)->nodeValue;
     $FechaHoraEnvio = $validacion->getElementsByTagName("FechaHoraEnvio")->item(0)->nodeValue;
     $FechaHoraRespuesta = $validacion->getElementsByTagName("FechaHoraRespuesta")->item(0)->nodeValue;
     $TotalFactura = $validacion->getElementsByTagName("TotalFactura")->item(0)->nodeValue;
     $uuid = $validacion->getElementsByTagName("UUID")->item(0)->nodeValue;
     $CodigoEstatus = $validacion->getElementsByTagName("CodigoEstatus")->item(0)->nodeValue;
     $Estado = $validacion->getElementsByTagName("Estado")->item(0)->nodeValue;
     $md5 = $validacion->getElementsByTagName("AcuseRecibo")->item(0)->nodeValue;
     $q = "INSERT INTO validacion_{$content} (FechaHora_envio, FechaHora_respuesta, emisor_rfc," . "receptor_rfc, total_factura, uuid, codigo_estatus, estado, md5, web_service, ruta_acuse)" . " VALUES ('{$FechaHoraEnvio}', '{$FechaHoraRespuesta}', '{$EmisorRfc}', '{$ReceptorRfc}'" . ", {$TotalFactura}, '{$uuid}', '{$CodigoEstatus}', '{$Estado}', '{$md5}', '{$webService}', '{$ReceiptPath}')";
     $NewIdReceipt = $DB->ConsultaInsertReturnId($EnterpriseAlias, $q);
     if (!$NewIdReceipt > 0) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al registrar la validación del nuevo Cfdi</p><br>Detalles:<br><br>{$NewIdReceipt}");
         return 0;
     }
     return $NewIdReceipt;
 }
Ejemplo n.º 11
0
 private function GetListEnterprisesXml()
 {
     $DB = new DataBase();
     $content = filter_input(INPUT_POST, "content");
     $QuerySelect = '';
     if (strcasecmp($content, "provider") == 0) {
         $QuerySelect = "SELECT *FROM emisor_factura_proveedor";
     }
     if (strcasecmp($content, "client") == 0) {
         $QuerySelect = "SELECT *FROM emisor_factura_cliente";
     }
     if (strcasecmp($content, "payroll") == 0) {
         $QuerySelect = "SELECT *FROM emisor_recibo_nomina";
     }
     $Result = $DB->ConsultaSelect("CFDI", $QuerySelect);
     if ($Result['Estado'] != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al obtener el listado de empresas</p><br>Detalles:<br><br>" . $Result['Estado']);
         return 0;
     }
     $Enterprises = $Result['ArrayDatos'];
     $doc = new DOMDocument('1.0', 'utf-8');
     $doc->formatOutput = true;
     $root = $doc->createElement('Enterprises');
     for ($cont = 0; $cont < count($Enterprises); $cont++) {
         $Enterprise = $doc->createElement("Enterprise");
         $IdEnterprise = $doc->createElement("IdEnterprise", $Enterprises[$cont]["idemisor"]);
         $Enterprise->appendChild($IdEnterprise);
         $EnterpriseName = $doc->createElement("Name", $Enterprises[$cont]['nombre']);
         $Enterprise->appendChild($EnterpriseName);
         $EnterpriseRFC = $doc->createElement("RFC", $Enterprises[$cont]['rfc']);
         $Enterprise->appendChild($EnterpriseRFC);
         $root->appendChild($Enterprise);
     }
     $doc->appendChild($root);
     header("Content-Type:text/xml");
     echo $doc->saveXML();
 }
Ejemplo n.º 12
0
 private function CreateDataBaseFile($DataBaseName)
 {
     $RoutFile = filter_input(INPUT_SERVER, "DOCUMENT_ROOT");
     /* /var/services/web */
     if (!file_exists("{$RoutFile}/Config/{$DataBaseName}/")) {
         if (!($mkdir = mkdir("{$RoutFile}/Config/{$DataBaseName}", 0777, true))) {
             XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear el directorio base de la nueva empresa </p><br>Detalles:<br><br>{$mkdir}");
             return 0;
         }
     }
     if (!($File = fopen("{$RoutFile}/Config/{$DataBaseName}/BD.ini", "w"))) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al abrir el archivo config de BD</p>");
         return 0;
     }
     if (strcasecmp($DataBaseName, "Manager") == 0) {
         $Password_ = "Admcs1234567";
         $DataBaseName = "CSDOCS_CFDI";
         $User_ = "Manager";
     } else {
         $Password_ = "12345";
         $User_ = $DataBaseName;
     }
     $localhost = Encrypter::encrypt("localhost");
     $Port = Encrypter::encrypt("3306");
     $User = Encrypter::encrypt($User_);
     $Password = Encrypter::encrypt($Password_);
     $DataBaseName_ = Encrypter::encrypt($DataBaseName);
     fwrite($File, 'Host="' . $localhost . '"' . PHP_EOL);
     fwrite($File, 'Port="' . $Port . '"' . PHP_EOL);
     fwrite($File, 'User="******"' . PHP_EOL);
     fwrite($File, 'Password="******"' . PHP_EOL);
     fwrite($File, 'Schema="' . $DataBaseName_ . '"' . PHP_EOL);
     fclose($File);
     return 1;
 }
Ejemplo n.º 13
0
 private function Begin()
 {
     $DB = new DataBase();
     $XML = new XML();
     $content = filter_input(INPUT_POST, "content");
     $log = new Log();
     $IdUser = filter_input(INPUT_POST, "IdUser");
     $IdEnterprise = filter_input(INPUT_POST, "IdEnterprise");
     $StartDate = filter_input(INPUT_POST, "StartDate");
     $EndDate = filter_input(INPUT_POST, "EndDate");
     $SearchWord = filter_input(INPUT_POST, "SearchWord");
     $Match = '';
     $Key = 0;
     $TableName = '';
     $SpecificEnterprise = '';
     if (strcasecmp($content, "provider") == 0) {
         $Key = 3;
         $TableName = "proveedor";
     }
     if (strcasecmp($content, "client") == 0) {
         $Key = 2;
         $TableName = "cliente";
     }
     if (strcasecmp($content, "payroll") == 0) {
         $Key = 1;
         $TableName = "nomina";
     }
     if ($IdEnterprise > 0 and !strlen($SearchWord) > 0) {
         $SpecificEnterprise = "WHERE det.id_emisor={$IdEnterprise} ";
     } else {
         if ($IdEnterprise > 0) {
             $SpecificEnterprise = " AND det.id_emisor={$IdEnterprise} ";
         }
     }
     if (strlen($SearchWord) > 0) {
         $Match = "WHERE MATCH (det.Full) AGAINST ('{$SearchWord}' IN BOOLEAN MODE)";
     }
     if (strcasecmp($TableName, "proveedor") == 0 or strcasecmp($TableName, "cliente") == 0) {
         $SearchQuery = "SELECT em.Idemisor, em.nombre, em.rfc, rec.id_receptor, rec.nombre, rec.rfc " . "FROM detalle_factura_{$TableName} det " . "LEFT JOIN emisor_factura_{$TableName} em on det.id_emisor = em.idemisor " . "INNER JOIN receptor_factura_{$TableName} rec ON rec.id_receptor = det.id_receptor " . "{$Match} {$SpecificEnterprise} GROUP BY em.rfc";
     }
     if (strcasecmp($TableName, "nomina") == 0) {
         $SearchQuery = "SELECT em.Idemisor, em.nombre, em.rfc, rec.id_receptor, rec.nombre, rec.rfc " . "FROM detalle_recibo_{$TableName} det " . "LEFT JOIN emisor_recibo_{$TableName} em on det.id_emisor = em.idemisor  " . "INNER JOIN receptor_recibo_{$TableName} rec ON rec.id_receptor = det.id_receptor " . "{$Match} {$SpecificEnterprise} GROUP BY em.rfc";
     }
     $SearchResult = $DB->QuerySelectArray("CFDI", $SearchQuery);
     if ($SearchResult['Estado'] != 1) {
         $XML->XmlResponse("Error", 0, "<p><b>Error</b> al realizar la búsqueda</p><br>Detalles:<br><br>" . $SearchResult['Estado']);
         return 0;
     }
     $SearchArray = $SearchResult['ArrayDatos'];
     $doc = new DOMDocument('1.0', 'utf-8');
     $doc->formatOutput = true;
     $root = $doc->createElement('Search');
     for ($cont = 0; $cont < count($SearchArray) - 1; $cont++) {
         $Result = $doc->createElement("Result");
         $IdTransmiter = $doc->createElement("IdTransmiter", $SearchArray[$cont][0]);
         $Result->appendChild($IdTransmiter);
         $TransmiterName = $doc->createElement("TransmiterName", $SearchArray[$cont][1]);
         $Result->appendChild($TransmiterName);
         $TRansmiterRFC = $doc->createElement("TransmiterRfc", $SearchArray[$cont][2]);
         $Result->appendChild($TRansmiterRFC);
         $IdReceiver = $doc->createElement("IdReceiver", $SearchArray[$cont][3]);
         $Result->appendChild($IdReceiver);
         $ReceiverName = $doc->createElement("ReceiverName", $SearchArray[$cont][4]);
         $Result->appendChild($ReceiverName);
         $ReceiverRfc = $doc->createElement("ReceiverRfc", $SearchArray[$cont][5]);
         $Result->appendChild($ReceiverRfc);
         $root->appendChild($Result);
     }
     $doc->appendChild($root);
     header("Content-Type:text/xml");
     echo $doc->saveXML();
     //         $log->log_registro_busqueda($IdUser,$IdEnterprise,$SearchWord,$StartDate,$EndDate,$Key);/* Registro Log */
 }
Ejemplo n.º 14
0
 private function GetFiles()
 {
     $DB = new DataBase();
     $IdUser = filter_input(INPUT_POST, "IdUser");
     $IdUserName = filter_input(INPUT_POST, "UserName");
     $content = filter_input(INPUT_POST, "content");
     $IdReceiver = filter_input(INPUT_POST, "IdReceiver");
     $StartDate = filter_input(INPUT_POST, "StartDate");
     $EndDate = filter_input(INPUT_POST, "EndDate");
     $IdTransmiter = filter_input(INPUT_POST, "IdTransmiter");
     $SearchWord = trim(filter_input(INPUT_POST, "SearchWord"), ' ');
     $WhereTransmiter = '';
     $Match = '';
     $Key = 0;
     $TableName = '';
     $q = '';
     if ($IdTransmiter > 0) {
         $WhereTransmiter = "AND det.id_emisor = {$IdTransmiter}";
     }
     if (strcasecmp($content, "provider") == 0) {
         $Key = 3;
         $TableName = "proveedor";
     }
     if (strcasecmp($content, "client") == 0) {
         $Key = 2;
         $TableName = "cliente";
     }
     if (strcasecmp($content, "payroll") == 0) {
         $Key = 1;
         $TableName = "nomina";
     }
     if (strlen($SearchWord) > 0) {
         $Match = " AND MATCH (det.Full) AGAINST ('{$SearchWord}' IN BOOLEAN MODE) ";
     }
     if (strcasecmp($content, 'Provider') == 0 or strcasecmp($content, 'Client') == 0) {
         if ($StartDate == "" and $EndDate == "") {
             $q = "SELECT det.id_detalle, det.fecha, det.folio, det.subTotal, det.descuento, det.total,ruta_xml, det.ruta_pdf, det.id_validacion, det.tipo_archivo, val.ruta_acuse FROM detalle_{$TableName} det inner join validacion_{$TableName} val on det.id_validacion=val.id_validacion WHERE det.id_receptor={$IdReceiver} {$WhereTransmiter} {$Match}";
         }
         if ($StartDate != "" and $EndDate != "") {
             $q = "SELECT det.id_detalle, det.fecha, det.folio, det.subTotal, det.descuento, det.total,ruta_xml, det.ruta_pdf, det.id_validacion, det.tipo_archivo, val.ruta_acuse FROM detalle_{$TableName} det inner join validacion_{$TableName} val on det.id_validacion=val.id_validacion WHERE id_receptor={$IdReceiver} {$WhereTransmiter} AND (det.fecha BETWEEN '{$StartDate}' AND '{$EndDate}') {$Match}";
         }
         if ($StartDate != "" and $EndDate == "") {
             $q = "SELECT det.id_detalle, det.fecha, det.folio, det.subTotal, det.descuento, det.total,ruta_xml, det.ruta_pdf, det.id_validacion, det.tipo_archivo, val.ruta_acuse FROM detalle_{$TableName} det inner join validacion_{$TableName} val on det.id_validacion=val.id_validacion WHERE det.fecha>='{$StartDate}' AND id_receptor={$IdReceiver} {$WhereTransmiter} {$Match}";
         }
         if ($StartDate == "" and $EndDate != "") {
             $q = "SELECT det.id_detalle, det.fecha, det.folio, det.subTotal, det.descuento, det.total,ruta_xml, det.ruta_pdf, det.id_validacion, det.tipo_archivo, val.ruta_acuse FROM detalle_{$TableName} det inner join validacion_{$TableName} val on det.id_validacion=val.id_validacion WHERE det.fecha<='{$EndDate}' AND id_receptor={$IdReceiver} {$WhereTransmiter} {$Match}";
         }
     }
     if (strcasecmp($content, 'PayRoll') == 0) {
         if ($StartDate == "" and $EndDate == "") {
             $q = "SELECT det.id_detalle, det.fecha, det.folio, det.subTotal, det.descuento, det.total,ruta_xml, det.ruta_pdf, det.id_validacion, det.tipo_archivo, val.ruta_acuse FROM detalle_cliente det inner join validacion_cliente val on det.id_validacion=val.id_validacion WHERE det.id_receptor={$IdReceiver} and det.id_emisor={$IdTransmiter}";
         }
         if ($StartDate != "" and $EndDate != "") {
             $q = "SELECT id_detalle,FechaPago,SalarioBaseCotApor,SalarioDiarioIntegrado,xml_ruta,pdf_ruta FROM detalle_nomina WHERE id_receptor={$IdReceiver} AND id_emisor={$IdTransmiter} AND (FechaPago BETWEEN '{$StartDate}' AND '{$EndDate}')";
         }
         if ($StartDate != "" and $EndDate == "") {
             $q = "SELECT id_detalle,FechaPago,SalarioBaseCotApor,SalarioDiarioIntegrado,xml_ruta,pdf_ruta FROM detalle_nomina WHERE FechaPago>='{$StartDate}' AND id_receptor={$IdReceiver} AND id_emisor={$IdTransmiter}";
         }
         if ($StartDate == "" and $EndDate != "") {
             $q = "SELECT id_detalle,FechaPago,SalarioBaseCotApor,SalarioDiarioIntegrado,xml_ruta,pdf_ruta FROM detalle_nomina WHERE FechaPago<='{$EndDate}' AND id_receptor={$IdReceiver} AND id_emisor={$IdTransmiter}";
         }
     }
     $ResultGetFiles = $DB->ConsultaSelect("CFDI", $q);
     if ($ResultGetFiles['Estado'] != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al intentar recuperar los CFDI's</p><br>Detalles:<br><br>" . $ResultGetFiles['Estado']);
         return 0;
     }
     $FilesArray = $ResultGetFiles['ArrayDatos'];
     $doc = new DOMDocument('1.0', 'utf-8');
     $doc->formatOutput = true;
     $root = $doc->createElement('Files');
     for ($cont = 0; $cont < count($FilesArray); $cont++) {
         $Cfdi = $doc->createElement("File");
         $IdCfdi = $doc->createElement("IdCfdi", $FilesArray[$cont]['id_detalle']);
         $Cfdi->appendChild($IdCfdi);
         $Fecha = $doc->createElement("Date", $FilesArray[$cont]['fecha']);
         $Cfdi->appendChild($Fecha);
         $folio = $doc->createElement("Folio", $FilesArray[$cont]['folio']);
         $Cfdi->appendChild($folio);
         $CfdiSubtotal = $doc->createElement("subTotal", $FilesArray[$cont]['subTotal']);
         $Cfdi->appendChild($CfdiSubtotal);
         $CfdiTotal = $doc->createElement("Total", $FilesArray[$cont]['total']);
         $Cfdi->appendChild($CfdiTotal);
         $CfdiRutaXml = $doc->createElement("XmlPath", $FilesArray[$cont]['ruta_xml']);
         $Cfdi->appendChild($CfdiRutaXml);
         $CfdiPdf = $doc->createElement("PdfPath", $FilesArray[$cont]['ruta_pdf']);
         $Cfdi->appendChild($CfdiPdf);
         $CfdiState = $doc->createElement("StateCfdi", $FilesArray[$cont]['tipo_archivo']);
         $Cfdi->appendChild($CfdiState);
         $CfdiIdValidation = $doc->createElement("IdValidationReceipt", $FilesArray[$cont]['id_validacion']);
         $Cfdi->appendChild($CfdiIdValidation);
         $CfdiReceiptPath = $doc->createElement("ReceiptValidationPath", $FilesArray[$cont]['ruta_acuse']);
         $Cfdi->appendChild($CfdiReceiptPath);
         $root->appendChild($Cfdi);
     }
     $doc->appendChild($root);
     header("Content-Type:text/xml");
     echo $doc->saveXML();
 }
Ejemplo n.º 15
0
 private function RegisterVolumes()
 {
     $DB = new DataBase();
     $RefularExpression = "/volume_.*/";
     /* Ayuda a identificar un volumen (Inicio de línea de salida) */
     $DiskDetail = shell_exec("df -m | grep volume");
     $MemoryArray = preg_split('/\\s+/', trim($DiskDetail));
     $Volumes = array();
     for ($cont = 0; $cont < count($MemoryArray); $cont++) {
         $Volume = preg_match($RefularExpression, $MemoryArray[$cont]);
         if ($Volume) {
             $Volumes[] = array("FileSystem" => $MemoryArray[$cont], "Blocks" => $MemoryArray[$cont + 1], "Used" => $MemoryArray[$cont + 2], "Available" => $MemoryArray[$cont + 3], "Use" => $MemoryArray[$cont + 4], "Mounted" => $MemoryArray[$cont + 5]);
         }
     }
     /* Una vez obtenidos los volúmenes se registran en la BD */
     for ($cont = 0; $cont < count($Volumes); $cont++) {
         $VolumeName = $Volumes[$cont]['Mounted'];
         //            $FileSystem = $Volumes[$cont]['FileSystem'];
         //            $Blocks = $Volumes[$cont]['Blocks'];
         $Used = $Volumes[$cont]['Used'];
         $Available = $Volumes[$cont]['Available'];
         $Total = (int) $Used + (int) $Available;
         $CheckIfExistVolume = "SELECT *FROM Volumes WHERE VolumeName COLLATE utf8_bin = '{$VolumeName}'";
         $ResultCheck = $DB->ConsultaSelect("Manager", $CheckIfExistVolume);
         if ($ResultCheck['Estado'] != 1) {
             XML::XmlResponse("Error", 0, "<p><b>Error</b> al relizar registro de volúmenes</p><br>Detalles:<br><br>" . $ResultCheck['Estado']);
             return 0;
         }
         if (count($ResultCheck['ArrayDatos']) > 0) {
             continue;
         }
         /* Registro del volúmen */
         $InsertVolume = "INSERT INTO Volumes (VolumeName, Used, Available, TotalMemory) VALUES ('{$VolumeName}', {$Used}, {$Available}, {$Total})";
         if (($ResultInsert = $DB->ConsultaQuery("Manager", $InsertVolume)) != 1) {
             XML::XmlResponse("Error", 0, "<p><b>Error</b> al registrar el volumen <b>{$VolumeName}</b></p><br>Detalles:<br><br>{$ResultInsert}");
             return 0;
         }
     }
 }
Ejemplo n.º 16
0
 public function CreateEnterpriseInstance($DataBaseName)
 {
     $CreateDataBase = "CREATE DATABASE IF NOT EXISTS `{$DataBaseName}` /*!40100 DEFAULT CHARACTER SET utf8 */;";
     if (($ResultCreateDataBase = $this->ConsultaQuery('', $CreateDataBase)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear la Base de Datos</p><br>Detalles:<br><br>{$ResultCreateDataBase}");
         return 0;
     }
     //SE CREA LA TABLA EMISOR DE RECIBO DE NOMINA
     $CreateEmisorNomina = "CREATE TABLE IF NOT EXISTS `emisor_recibo_nomina` (\r\n          `idemisor` int(11) NOT NULL AUTO_INCREMENT,\r\n          `rfc` varchar(100) NOT NULL,\r\n          `nombre` varchar(45) NOT NULL,\r\n          `pais` varchar(45) NOT NULL,\r\n          `calle` varchar(200) NOT NULL,\r\n          `estado` varchar(45) NOT NULL,\r\n          `colonia` varchar(200) NOT NULL,\r\n          `municipio` varchar(100) NOT NULL,\r\n          `noExterior` int(11) DEFAULT NULL,\r\n          `cp` int(11) NOT NULL,\r\n          `pais_expedido` varchar(60) DEFAULT NULL,\r\n          `calle_expedido` varchar(200) DEFAULT NULL,\r\n          `estado_expedido` varchar(45) DEFAULT NULL,\r\n          `colonia_expedido` varchar(200) DEFAULT NULL,\r\n          `noExterior_expedido` int(11) DEFAULT NULL,\r\n          `cp_expedido` int(11) DEFAULT NULL,\r\n          PRIMARY KEY (`idemisor`,`rfc`)\r\n        ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8";
     if (($resulCreateEmisorNomina = $this->ConsultaQuery("{$DataBaseName}", $CreateEmisorNomina)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear la Emisor Recibo de Nómina </p><br>Detalles:<br><br>{$resulCreateEmisorNomina}");
         return 0;
     }
     // SE CREA LA TABLA RECEPTOR DE RECIBO DE NOMINA
     $ReceptorNomina = "CREATE TABLE IF NOT EXISTS `receptor_recibo_nomina` (\r\n        `id_receptor` int(11) NOT NULL AUTO_INCREMENT,\r\n        `curp` varchar(200) NOT NULL,\r\n        `rfc` varchar(100) DEFAULT NULL,\r\n        `nombre` varchar(200) DEFAULT NULL,\r\n        `pais` varchar(45) DEFAULT NULL,\r\n        `calle` varchar(200) DEFAULT NULL,\r\n        `estado` varchar(200) DEFAULT NULL,\r\n        `colonia` varchar(200) DEFAULT NULL,\r\n        `municipio` varchar(200) DEFAULT NULL,\r\n        `noExterior` varchar(10) DEFAULT NULL,\r\n        `noInterior` varchar(10) DEFAULT NULL,\r\n        `cp` varchar(10) DEFAULT NULL,\r\n        PRIMARY KEY (`id_receptor`,`curp`)\r\n      ) ENGINE=InnoDB DEFAULT CHARSET=utf8";
     if (($resulReceptorNomina = $this->ConsultaQuery("{$DataBaseName}", $ReceptorNomina)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear la Receptor Recibo de Nómina </p><br>Detalles:<br><br>{$resulReceptorNomina}");
         return 0;
     }
     // SE CREA LA TABLA DETALLE DE RECIBO DE NOMINA
     $DetalleNomina = "CREATE TABLE IF NOT EXISTS `detalle_recibo_nomina` (\r\n        `id_detalle_recibo_nomina` int(11) NOT NULL AUTO_INCREMENT,\r\n        `id_emisor` int(11) NOT NULL,\r\n        `id_receptor` int(11) NOT NULL,\r\n        `id_validacion` int(11) NOT NULL,\r\n        `curp` varchar(60) NOT NULL,\r\n        `registro_patronal` varchar(250) DEFAULT NULL,\r\n        `NumEmpleado` int(11) DEFAULT NULL,\r\n        `tipoRegimen` int(11) DEFAULT NULL,\r\n        `NumSegSocial` varchar(250) DEFAULT NULL,\r\n        `FechaPago` date DEFAULT NULL,\r\n        `FechaInicialPago` date DEFAULT NULL,\r\n        `FechaFinalPago` date DEFAULT NULL,\r\n        `NumDiasPagados` decimal(10,0) DEFAULT NULL,\r\n        `departamento` varchar(200) DEFAULT NULL,\r\n        `clabe` varchar(200) DEFAULT NULL,\r\n        `banco` varchar(100) DEFAULT NULL,\r\n        `FechaInicioLaboral` date DEFAULT NULL,\r\n        `antiguedad` int(11) DEFAULT NULL,\r\n        `puesto` varchar(200) DEFAULT NULL,\r\n        `TipoContrato` varchar(200) DEFAULT NULL,\r\n        `TipoJornada` varchar(70) DEFAULT NULL,\r\n        `PeriodicidadPago` varchar(45) DEFAULT NULL,\r\n        `SalarioBaseCotApor` float DEFAULT NULL,\r\n        `RiesgoPuesto` int(11) DEFAULT NULL,\r\n        `SalarioDiarioIntegrado` float DEFAULT NULL,\r\n        `id_CentroCosto` int(11) DEFAULT '0',\r\n        `xml_ruta` varchar(220) DEFAULT NULL,\r\n        `pdf_ruta` varchar(220) DEFAULT NULL,\r\n        `tipo_archivo` varchar(45) DEFAULT 'original',\r\n        `tipo_archivo_pdf` varchar(45) DEFAULT 'original',\r\n         Full TEXT, \r\n         PRIMARY KEY (`id_detalle_recibo_nomina`,`curp`,`id_validacion`),\r\n         FULLTEXT (Full),\r\n         KEY `FK1` (`id_emisor`),\r\n         KEY `FK2_idx` (`id_receptor`),\r\n         CONSTRAINT `FK1` FOREIGN KEY (`id_emisor`) REFERENCES `emisor_recibo_nomina` (`idemisor`) ON DELETE NO ACTION ON UPDATE NO ACTION,\r\n         CONSTRAINT `FK2` FOREIGN KEY (`id_receptor`) REFERENCES `receptor_recibo_nomina` (`id_receptor`) ON DELETE NO ACTION ON UPDATE NO ACTION\r\n         ) ENGINE = MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=1\r\n        ";
     if (($ResultDetalleNomina = $this->ConsultaQuery("{$DataBaseName}", $DetalleNomina)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear la Detalle Recibo de Nómina </p><br>Detalles:<br><br>{$ResultDetalleNomina}");
         return 0;
     }
     /******************** Histórico Nomina*********************/
     $HistorialNomina = "CREATE TABLE IF NOT EXISTS `historial_nomina` (\r\n        `id_historial` int(11) NOT NULL AUTO_INCREMENT,\r\n        `id_validacion` int(11) NOT NULL,\r\n        `id_detalle` int(11) NOT NULL,\r\n        `id_usuario` int(11) DEFAULT NULL,\r\n        `fecha_hora` datetime NOT NULL,\r\n        `ruta_xml` varchar(250) NOT NULL,\r\n        `ruta_pdf` varchar(250) DEFAULT NULL,\r\n        `tipo_archivo` varchar(45) NOT NULL,\r\n        PRIMARY KEY (`id_historial`,`id_validacion`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='tipo_archivo (original o copia)'";
     if (($ResultHistorialNomina = $this->ConsultaQuery("{$DataBaseName}", $HistorialNomina)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear la Historial Recibo de Nómina </p><br>Detalles:<br><br>{$ResultHistorialNomina}");
         return 0;
     }
     $ValidacionNomina = "CREATE TABLE IF NOT EXISTS `validacion_nomina` (\r\n        `id_validacion` int(11) NOT NULL AUTO_INCREMENT,\r\n        `FechaHora_envio` datetime NOT NULL,\r\n        `FechaHora_respuesta` datetime NOT NULL,\r\n        `emisor_rfc` varchar(100) NOT NULL,\r\n        `receptor_rfc` varchar(100) NOT NULL,                \r\n        `total_factura` double NOT NULL,\r\n        `uuid` varchar(100) NOT NULL,\r\n        `codigo_estatus` varchar(100) NOT NULL,\r\n        `estado` varchar(100) NOT NULL,\r\n        `md5` varchar(100) NOT NULL,\r\n        `web_service` varchar(250) NOT NULL,\r\n        `ruta_acuse` varchar(250) NOT NULL,\r\n        PRIMARY KEY (`id_validacion`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8";
     if (($ResultValidacionNomina = $this->ConsultaQuery("{$DataBaseName}", $ValidacionNomina)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear la Validación Recibo de Nómina </p><br>Detalles:<br><br>{$ResultValidacionNomina}");
         return 0;
     }
     /*      Validación  CFDI    */
     $ValidacionProveedor = "CREATE TABLE IF NOT EXISTS `validacion_proveedor` (\r\n        `id_validacion` int(11) NOT NULL AUTO_INCREMENT,\r\n        `FechaHora_envio` datetime NOT NULL,\r\n        `FechaHora_respuesta` datetime NOT NULL,\r\n        `emisor_rfc` varchar(100) NOT NULL,\r\n        `receptor_rfc` varchar(100) NOT NULL,                \r\n        `total_factura` double NOT NULL,\r\n        `uuid` varchar(100) NOT NULL,\r\n        `codigo_estatus` varchar(100) NOT NULL,\r\n        `estado` varchar(100) NOT NULL,\r\n        `md5` varchar(100) NOT NULL,\r\n        `web_service` varchar(250) NOT NULL,\r\n        `ruta_acuse` varchar(250) NOT NULL,\r\n        PRIMARY KEY (`id_validacion`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8";
     if (($ResultValidacionProveedor = $this->ConsultaQuery("{$DataBaseName}", $ValidacionProveedor)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear la Validación Proveedor </p><br>Detalles:<br><br>{$ResultValidacionProveedor}");
         return 0;
     }
     $Existe = "CREATE TABLE IF NOT EXISTS `existe` (\r\n        `idexiste` int(11) NOT NULL AUTO_INCREMENT,\r\n        `id_emisor` int(11) NOT NULL,\r\n        `nombre` varchar(200) DEFAULT NULL,\r\n        `NoIntentos` int(11) DEFAULT '0',\r\n        PRIMARY KEY (`idexiste`,`id_emisor`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Tabla que registra el numero de intentos que se trata de procesar un recibo de nomina o algun otro comprobante'";
     if (($ResultExiste = $this->ConsultaQuery("{$DataBaseName}", $Existe)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Existe </p><br>Detalles:<br><br>{$ResultExiste}");
         return 0;
     }
     $ResgistroPdf = "CREATE TABLE IF NOT EXISTS `registro_pdf` (\r\n        `id_pdf` int(11) NOT NULL AUTO_INCREMENT,\r\n        `nombre` varchar(200) DEFAULT NULL,\r\n        PRIMARY KEY (`id_pdf`)\r\n        ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 COMMENT='Tabla que contiene los nombres de los PDF pendientes por insertar en la BD'";
     if (($ResultRegistroPdf = $this->ConsultaQuery("{$DataBaseName}", $ResgistroPdf)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Registro Pdf </p><br>Detalles:<br><br>{$ResultRegistroPdf}");
         return 0;
     }
     $sql = "CREATE TABLE IF NOT EXISTS `registro_xml` (\r\n        `id_registro_xml` int(11) NOT NULL AUTO_INCREMENT,\r\n        `id_detalle` int(11) NOT NULL,\r\n        `nombre_xml` varchar(200) DEFAULT NULL,\r\n        PRIMARY KEY (`id_registro_xml`,`id_detalle`)\r\n        ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1";
     /*UTILIZADO EN CARGA RECIBO DE NOMINA */
     //        $ViewInsertPdf = "CREATE OR REPLACE VIEW `insert_pdf` AS select `registro_xml`.`id_detalle` AS `id_detalle`,`registro_pdf`.`nombre` AS `nombre` from (`registro_xml` join `registro_pdf` on((`registro_xml`.`nombre_xml` = `registro_pdf`.`nombre`)))";
     //
     //        if(($ResultViewInsertPdf = $this->ConsultaQuery("CSDOCS_CFDI", $ViewInsertPdf))!=1)
     //        {
     //            XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear la vista pdf insert </p><br>Detalles:<br><br>$ResultViewInsertPdf");
     //            return 0;
     //        }
     /* Tabla emisor Factura Cliente */
     $EmisorCliente = "CREATE TABLE IF NOT EXISTS `emisor_factura_cliente` (\r\n        `idemisor` int(11) NOT NULL AUTO_INCREMENT,\r\n        `rfc` varchar(100) NOT NULL,\r\n        `nombre` varchar(100) NOT NULL,\r\n        `pais` varchar(45) NOT NULL,\r\n        `calle` varchar(200) NOT NULL,\r\n        `estado` varchar(45) NOT NULL,\r\n        `colonia` varchar(200) NOT NULL,\r\n        `municipio` varchar(100) NOT NULL,\r\n        `noExterior` varchar(10) DEFAULT NULL,\r\n        `cp` varchar(10) NOT NULL,\r\n        `localidad` varchar(250) DEFAULT NULL,\r\n        `expedidoCalle` varchar(150) DEFAULT NULL,\r\n        `expedidoNoExterior` varchar(10) DEFAULT NULL,\r\n        `expedidoColonia` varchar(150) DEFAULT NULL,\r\n        `expedidoLocalidad` varchar(150) DEFAULT NULL,\r\n        `expedidoMunicipio` varchar(150) DEFAULT NULL,\r\n        `expedidoEstado` varchar(150) DEFAULT NULL,\r\n        `expedidoPais` varchar(150) DEFAULT NULL,\r\n        `expedidoCP` varchar(10) DEFAULT NULL,\r\n        PRIMARY KEY (`idemisor`,`rfc`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8";
     if (($RecultEmisorCliente = $this->ConsultaQuery("{$DataBaseName}", $EmisorCliente)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Emisor Cliente </p><br>Detalles:<br><br>{$RecultEmisorCliente}");
         return 0;
     }
     $ReceptorCliente = "CREATE TABLE IF NOT EXISTS `receptor_factura_cliente` (\r\n        `id_receptor` int(11) NOT NULL AUTO_INCREMENT,\r\n        `rfc` varchar(200) NOT NULL,\r\n        `nombre` varchar(200) DEFAULT NULL,\r\n        `pais` varchar(45) DEFAULT NULL,\r\n        `calle` varchar(200) DEFAULT NULL,\r\n        `estado` varchar(200) DEFAULT NULL,\r\n        `colonia` varchar(200) DEFAULT NULL,\r\n        `municipio` varchar(200) DEFAULT NULL,\r\n        `noExterior` varchar(10) DEFAULT NULL,\r\n        `noInterior` varchar(10) DEFAULT NULL,\r\n        `cp` varchar(10) DEFAULT NULL,\r\n        `localidad` varchar(150) DEFAULT NULL,\r\n        PRIMARY KEY (`id_receptor`,`rfc`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8";
     if (($ResultReceptorCliente = $this->ConsultaQuery("{$DataBaseName}", $ReceptorCliente)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Receptor Cliente </p><br>Detalles:<br><br>{$ResultReceptorCliente}");
         return 0;
     }
     /* Tabla detalle factura cliente */
     $DetalleCliente = "CREATE TABLE IF NOT EXISTS `detalle_factura_cliente` (\r\n        `id_detalle` int(11) NOT NULL AUTO_INCREMENT,\r\n        `id_emisor` int(11) NOT NULL DEFAULT '0',\r\n        `id_receptor` int(11) NOT NULL DEFAULT '0',\r\n        `id_validacion` int(11) NOT NULL,\r\n        `rfc_cliente` varchar(70) DEFAULT NULL,\r\n        `serie` varchar(45) DEFAULT NULL,\r\n        `folio` varchar(45) DEFAULT NULL,\r\n        `fecha` date DEFAULT NULL,\r\n        `formaDePago` varchar(200) DEFAULT NULL,\r\n        `subTotal` double DEFAULT NULL,\r\n        `descuento` double DEFAULT NULL,\r\n        `total` double DEFAULT NULL,\r\n        `metodoDePago` varchar(45) DEFAULT NULL,\r\n        `tipoDeComprobante` varchar(100) DEFAULT NULL,\r\n        `TipoCambio` decimal(10,0) DEFAULT NULL,\r\n        `Moneda` varchar(45) DEFAULT NULL,\r\n        `ruta_xml` varchar(250) DEFAULT NULL,\r\n        `ruta_pdf` varchar(250) DEFAULT NULL,\r\n        `tipo_archivo` varchar(45) DEFAULT 'original',\r\n        `tipo_archivo_pdf` varchar(45) DEFAULT 'original',\r\n         Full TEXT,\r\n         PRIMARY KEY (`id_detalle`,`id_validacion`),  \r\n         FULLTEXT (Full),\r\n         KEY `fk1_idx` (`id_emisor`),\r\n         KEY `fk2_idx` (`id_receptor`),\r\n         CONSTRAINT `f2` FOREIGN KEY (`id_receptor`) REFERENCES `receptor_factura_cliente` (`id_receptor`) ON DELETE NO ACTION ON UPDATE NO ACTION,\r\n         CONSTRAINT `f1` FOREIGN KEY (`id_emisor`) REFERENCES `emisor_factura_cliente` (`idemisor`) ON DELETE NO ACTION ON UPDATE NO ACTION\r\n        ) ENGINE = MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=1";
     if (($ResultDetalleCliente = $this->ConsultaQuery("{$DataBaseName}", $DetalleCliente)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Detalle Cliente </p><br>Detalles:<br><br>{$ResultDetalleCliente}");
         return 0;
     }
     $HistorialCliente = "CREATE TABLE IF NOT EXISTS `historial_cliente` (\r\n        `id_historial` int(11) NOT NULL AUTO_INCREMENT,\r\n        `id_validacion` int(11) NOT NULL,\r\n        `id_detalle` int(11) NOT NULL,\r\n        `id_usuario` int(11) DEFAULT NULL,\r\n        `fecha_hora` datetime NOT NULL,\r\n        `ruta_xml` varchar(250) NOT NULL,\r\n        `ruta_pdf` varchar(250) DEFAULT NULL,\r\n        `tipo_archivo` varchar(45) NOT NULL,\r\n        PRIMARY KEY (`id_historial`,`id_validacion`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='tipo_archivo (original o copia)'";
     if (($ResultHistorialCliente = $this->ConsultaQuery("{$DataBaseName}", $HistorialCliente)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Historial Cliente </p><br>Detalles:<br><br>{$ResultHistorialCliente}");
         return 0;
     }
     $ValidacionCliente = "CREATE TABLE IF NOT EXISTS `validacion_cliente` (\r\n        `id_validacion` int(11) NOT NULL AUTO_INCREMENT,\r\n        `FechaHora_envio` datetime NOT NULL,\r\n        `FechaHora_respuesta` datetime NOT NULL,\r\n        `emisor_rfc` varchar(100) NOT NULL,\r\n        `receptor_rfc` varchar(100) NOT NULL,                \r\n        `total_factura` double NOT NULL,\r\n        `uuid` varchar(100) NOT NULL,\r\n        `codigo_estatus` varchar(100) NOT NULL,\r\n        `estado` varchar(100) NOT NULL,\r\n        `md5` varchar(100) NOT NULL,\r\n        `web_service` varchar(250) NOT NULL,\r\n        `ruta_acuse` varchar(250) NOT NULL,\r\n        PRIMARY KEY (`id_validacion`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8";
     if (($ResultValidacionCliente = $this->ConsultaQuery("{$DataBaseName}", $ValidacionCliente)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Validación Cliente </p><br>Detalles:<br><br>{$ResultValidacionCliente}");
         return 0;
     }
     /*  Facturas Proveedor */
     $EmisorProveedor = "CREATE TABLE IF NOT EXISTS `emisor_factura_proveedor` (\r\n        `idemisor` int(11) NOT NULL AUTO_INCREMENT,\r\n        `rfc` varchar(100) NOT NULL,\r\n        `nombre` varchar(100) NOT NULL,\r\n        PRIMARY KEY (`idemisor`,`rfc`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8";
     if (($ResultEmisorProveedor = $this->ConsultaQuery("{$DataBaseName}", $EmisorProveedor)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Emisor Proveedor </p><br>Detalles:<br><br>{$ResultEmisorProveedor}");
         return 0;
     }
     $ReceptorProveedor = "CREATE TABLE IF NOT EXISTS `receptor_factura_proveedor` (\r\n        `id_receptor` int(11) NOT NULL AUTO_INCREMENT,\r\n        `rfc` varchar(200) NOT NULL,\r\n        `nombre` varchar(200) DEFAULT NULL,\r\n        `pais` varchar(45) DEFAULT NULL,\r\n        `calle` varchar(200) DEFAULT NULL,\r\n        `estado` varchar(200) DEFAULT NULL,\r\n        `colonia` varchar(200) DEFAULT NULL,\r\n        `municipio` varchar(200) DEFAULT NULL,\r\n        `noExterior` varchar(10) DEFAULT NULL,\r\n        `noInterior` varchar(10) DEFAULT NULL,\r\n        `cp` varchar(10) DEFAULT NULL,\r\n        `localidad` varchar(150) DEFAULT NULL,\r\n        PRIMARY KEY (`id_receptor`,`rfc`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8";
     if (($ResultReceptorProveedor = $this->ConsultaQuery("{$DataBaseName}", $ReceptorProveedor)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Receptor Proveedor </p><br>Detalles:<br><br>{$ResultReceptorProveedor}");
         return 0;
     }
     $DetalleProveedor = "CREATE TABLE IF NOT EXISTS `detalle_factura_proveedor` (\r\n        `id_detalle` int(11) NOT NULL AUTO_INCREMENT,\r\n        `id_emisor` int(11) NOT NULL DEFAULT '0',\r\n        `id_receptor` int(11) NOT NULL DEFAULT '0',\r\n        `id_validacion` int(11) NOT NULL,\r\n        `rfc_cliente` varchar(70) DEFAULT NULL,\r\n        `serie` varchar(45) DEFAULT NULL,\r\n        `folio` varchar(45) DEFAULT NULL,\r\n        `fecha` date DEFAULT NULL,\r\n        `formaDePago` varchar(200) DEFAULT NULL,\r\n        `subTotal` double DEFAULT NULL,\r\n        `descuento` double DEFAULT NULL,\r\n        `total` double DEFAULT NULL,\r\n        `metodoDePago` varchar(45) DEFAULT NULL,\r\n        `tipoDeComprobante` varchar(100) DEFAULT NULL,\r\n        `TipoCambio` decimal(10,0) DEFAULT NULL,\r\n        `Moneda` varchar(45) DEFAULT NULL,\r\n        `ruta_pdf` varchar(250) DEFAULT NULL,\r\n        `ruta_xml` varchar(250) DEFAULT NULL,\r\n        `tipo_archivo` varchar(45) DEFAULT 'original',\r\n        `tipo_archivo_pdf` varchar(45) DEFAULT 'original',\r\n         Full TEXT,\r\n         PRIMARY KEY (`id_detalle`,`id_validacion`),\r\n         FULLTEXT (Full),\r\n         KEY `fk1_idx` (`id_emisor`),\r\n         KEY `fk2_idx` (`id_receptor`),\r\n         CONSTRAINT `f3` FOREIGN KEY (`id_emisor`) REFERENCES `emisor_factura_proveedor` (`idemisor`) ON DELETE NO ACTION ON UPDATE NO ACTION,\r\n         CONSTRAINT `f4` FOREIGN KEY (`id_receptor`) REFERENCES `receptor_factura_proveedor` (`id_receptor`) ON DELETE NO ACTION ON UPDATE NO ACTION\r\n        )  ENGINE = MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=1";
     if (($ResultDetalleProveedor = $this->ConsultaQuery("{$DataBaseName}", $DetalleProveedor)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Detalle Proveedor </p><br>Detalles:<br><br>{$ResultDetalleProveedor}");
         return 0;
     }
     $HistorialProveedor = "CREATE TABLE IF NOT EXISTS `historial_proveedor` (\r\n        `id_historial` int(11) NOT NULL AUTO_INCREMENT,\r\n        `id_validacion` int(11) NOT NULL,\r\n        `id_detalle` int(11) NOT NULL,\r\n        `id_usuario` int(11) DEFAULT NULL,\r\n        `fecha_hora` datetime NOT NULL,\r\n        `ruta_xml` varchar(250) NOT NULL,\r\n        `ruta_pdf` varchar(250) DEFAULT NULL,\r\n        `tipo_archivo` varchar(45) NOT NULL,\r\n        PRIMARY KEY (`id_historial`,`id_validacion`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='tipo_archivo (original o copia)'";
     if (($ResultHistorialProveedor = $this->ConsultaQuery("{$DataBaseName}", $HistorialProveedor)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Historial Proveedor </p><br>Detalles:<br><br>{$ResultHistorialProveedor}");
         return 0;
     }
     /*Registro de Usuarios */
     $Users = "CREATE TABLE IF NOT EXISTS `Usuarios` (\r\n        `IdUsuario` int(11) NOT NULL AUTO_INCREMENT,\r\n        `IdCorreo` int(11) NOT NULL,\r\n        `nombre_usuario` varchar(50) NOT NULL,\r\n        `password` varchar(45) NOT NULL,\r\n        `nombre` varchar(45) NOT NULL,\r\n        `apellido_materno` varchar(45) NOT NULL,\r\n        `apellido_paterno` varchar(45) DEFAULT NULL,\r\n        `curp` varchar(45) DEFAULT NULL,\r\n        `fecha_nac` date DEFAULT NULL,\r\n        `tipo_usuario` varchar(45) NOT NULL,\r\n        `estatus` int(11) DEFAULT '1',\r\n        `fecha_alta` DATETIME  DEFAULT NULL,\r\n        `fecha_baja` DATETIME  DEFAULT NULL,\r\n        PRIMARY KEY (`IdUsuario`,`nombre_usuario`)\r\n        ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8";
     if (($ResultUsers = $this->ConsultaQuery("{$DataBaseName}", $Users)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Usuarios </p><br>Detalles:<br><br>{$ResultUsers}");
         return 0;
     }
     $Correo = "CREATE TABLE IF NOT EXISTS `correo` (\r\n        `id_correo` int(11) NOT NULL AUTO_INCREMENT,\r\n        `id_empleado` int(11) NOT NULL,\r\n        `servidor` varchar(45) NULL,\r\n        `smtp` varchar(45) DEFAULT NULL,\r\n        PuertoSmtp varchar(4) NOT NULL,\r\n        `puerto` varchar(45) DEFAULT NULL,\r\n        `seguridad` varchar(45) DEFAULT NULL,\r\n        `auth` varchar(10) DEFAULT NULL,\r\n        `password` varchar(45) DEFAULT NULL,\r\n        `correo` varchar(45) DEFAULT NULL,\r\n        `titulo_mostrar` varchar(45) DEFAULT NULL,\r\n        `host_imap` varchar(150) DEFAULT NULL,\r\n        `estatus` int(11) DEFAULT '1',\r\n        PRIMARY KEY (`id_correo`,`id_empleado`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8";
     if (($ResultCorreo = $this->ConsultaQuery("{$DataBaseName}", $Correo)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Correo </p><br>Detalles:<br><br>{$ResultCorreo}");
         return 0;
     }
     /* Vista utilizada en Carga_Nomina_XML */
     $VistaExistDetalle = "CREATE OR REPLACE VIEW exist_detalle AS select id_detalle_recibo_nomina, id_emisor, id_receptor, FechaPago, curp from detalle_recibo_nomina";
     if (($ResultVistaExistDetalle = $this->ConsultaQuery("{$DataBaseName}", $VistaExistDetalle)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Vista Existe Detalle </p><br>Detalles:<br><br>{$ResultVistaExistDetalle}");
         return 0;
     }
     // SE CREA LA TABLA RECEPTOR DE RECIBO DE NOMINA
     $MotorCorreo = "CREATE TABLE IF NOT EXISTS `motor_correo` (\r\n        `id_motor` int(11) NOT NULL AUTO_INCREMENT,\r\n        `id_correo` varchar(60) DEFAULT NULL,\r\n        `id_emisor` int(11) DEFAULT NULL,\r\n        `id_receptor` int(11) DEFAULT NULL,\r\n        `id_detalle` int(11) DEFAULT NULL,\r\n        `emisor_correo` varchar(100) DEFAULT NULL,\r\n        `monto_factura` decimal(10,0) DEFAULT NULL,\r\n        `folio` varchar(45) DEFAULT NULL,\r\n        `fecha_factura` datetime DEFAULT NULL,\r\n        `hora_recibido` datetime DEFAULT NULL,\r\n        `fecha_ingreso` datetime DEFAULT NULL,\r\n        `ruta_xml` text,\r\n        `ruta_pdf` text,\r\n        `estatus_insert` varchar(100) DEFAULT NULL,\r\n        PRIMARY KEY (`id_motor`)\r\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Motor de Correo almacena los inserts realizados cuando se descarga, CFDI de cuentas de correo'";
     if (($ResultMotorCorreo = $this->ConsultaQuery("{$DataBaseName}", $MotorCorreo)) != 1) {
         XML::XmlResponse("Error", 0, "<p><b>Error</b> al crear Motor Correo </p><br>Detalles:<br><br>{$ResultMotorCorreo}");
         return 0;
     }
     return 1;
 }