PABX da Simples IP
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

133 lines
5.8 KiB

#!/usr/bin/php -q
<?php
include("util/util.php");
try {
$conn = ___GetConnectAlgar("192.168.115.240");
SetAtualizaEmpresa($conn, ___GetVendaMais(), GetDadosAlgar($conn));
} catch (Exception $ex) {
GravarLog($ex->getMessage(), 'ERRO');
}
function ___GetVendaMais() {
$dbhost = "192.168.115.28";
$dbname = "VendaMaisDB_simplesip";
$user = "sa";
$passwd = "SimpleS_root";
$conn = mssql_connect($dbhost, $user, $passwd) or die(mssql_get_last_message());
TestaConnexao($conn, $dbhost);
mssql_select_db($dbname) or die(mssql_get_last_message());
$data = array();
// $query = "select 0 as ord, ClienteId, RazaoSocial, CGC_CPF, dbo.sonumero(substring(FichaTecnica,
// charindex('VPN', FichaTecnica) + 5, 14), '.') as vpn,
// case when (charindex('FTP', FichaTecnica) <> 0)then
// substring(dbo.RemoveTagsXML(substring(FichaTecnica, charindex('FTP', FichaTecnica) + 29, 40)),0 ,
// charindex(']', dbo.RemoveTagsXML(substring(FichaTecnica, charindex('FTP', FichaTecnica) + 29, 40))))
// else null end as dir
// from Clientes
// where RamoDeAtividadeId = 64
// and AtivoCliente = 1
// and IsCliente = 1
// and dbo.sonumero(substring(FichaTecnica, charindex('VPN', FichaTecnica) + 5, 14), '.') <> ''";
$query = "select a.ClienteId as emp_id, CGC_CPF as emp_cnpj, RazaoSocial as emp_razao_social, Fantasia as emp_nome_fantasia,
isnull(b.Cidade, 'NI') as emp_municipio, isnull(b.Uf, 'NI') as emp_uf, isnull(c.PrimeiroNome, 'NI') as emp_contato, a.Telefone as emp_fone,
dbo.sonumero(substring(FichaTecnica,
charindex('VPN', FichaTecnica) + 5, 14), '.') as emp_vpn,
case when (charindex('FTP', FichaTecnica) <> 0)then
substring(dbo.RemoveTagsXML(substring(FichaTecnica, charindex('FTP', FichaTecnica) + 29, 40)),0 ,
charindex(']', dbo.RemoveTagsXML(substring(FichaTecnica, charindex('FTP', FichaTecnica) + 29, 40))))
else null end as emp_diretorio_ftp,
case when(exists(select '' from Contratos where ClienteId = a.ClienteId and Status = 1))then 0 else 1 end as user_reg
from Clientes a
left outer join ClientesEnderecos b on b.ClienteId = a.ClienteId and b.ClienteEnderecoId = (select MIN(ClienteEnderecoId) from ClientesEnderecos where ClienteId = a.ClienteId)
left outer join Contatos c on c.ClienteId = a.ClienteId and c.ContatoPrincipal = 1
where RamoDeAtividadeId = 64
and IsCliente = 1 ";
if (!$result = mssql_query($query, $conn)) {
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel consultar os dados no Venda+.");
}
while ($dados = mssql_fetch_array($result, null . MSSQL_ASSOC)) {
$data[$dados["emp_id"]] = $dados;
}
mssql_close();
return $data;
}
function ___GetConnectAlgar($host = "algar.simplesip.com.br") {
$dbhost = $host;
$dbport = "5432";
$dbname = "pbx";
$user = "contacte";
$passwd = "ctepgSQL";
$conn = pg_connect("host=$dbhost port=$dbport dbname=$dbname user=$user password=$passwd");
TestaConnexao($conn, $dbhost);
return $conn;
}
function GetDadosAlgar($conn) {
$data = array();
$query = "select emp_id, emp_cnpj, emp_id, emp_razao_social, emp_nome_fantasia, emp_municipio, emp_uf, emp_contato, emp_fone, emp_vpn, emp_diretorio_ftp, user_reg from vds_empresas";
if (!$result = pg_query($conn, $query)) {
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel consultar os dados no Cloud Algar.");
}
while ($dados = pg_fetch_array($result, null, PGSQL_ASSOC)) {
$data[$dados["emp_id"]] = $dados;
}
return $data;
}
function SetAtualizaEmpresa($conn, $dataVdmais, $dataAlgar) {
//select emp_id, emp_cnpj, emp_id, emp_razao_social, emp_nome_fantasia, emp_municipio, emp_uf, emp_contato, emp_fone, emp_vpn, emp_diretorio_ftp from vds_empresas
foreach ($dataVdmais as $key => $rowVendaMais) {
try {
if (array_key_exists($key, $dataAlgar)) {
$rowAlgar = $dataAlgar[$key];
$upd = '';
foreach ($rowVendaMais as $vdmKey => $vdmValue) {
if ((trim($vdmValue) !== '' ) && ($vdmValue != $rowAlgar[$vdmKey])) {
$upd .= (($upd ? ',' : '') . sprintf("%s = %s", $vdmKey, QuotedStr($vdmValue)));
}
}
$query = $upd ? "UPDATE vds_empresas SET {$upd} where emp_id = '{$key}'" : '';
} else {
$ins = '';
foreach ($rowVendaMais as $vdmValue){
$ins .= ($ins ? ',' : '') . QuotedStr($vdmValue);
}
$keys = implode(",", array_keys($rowVendaMais));
$query = sprintf("insert into vds_empresas(%s)values(%s) ", $keys, $ins);
}
if($query && !$result = pg_query($conn, $query)){
throw new Exception("Erro ao atualizar base de dados Algar: [{$query}] Erro: " . pg_last_error());
}
} catch (Exception $ex) {
GravarLog($ex->getMessage(), 'ERRO');
}
}
}
function TestaConnexao($conn, $msg) {
if (!$conn) {
throw new Exception("Nao foi possivel estabelecer conexao com a base de dados do Venda+!" . $msg);
}
}
function GravarLog($log, $type = 'DEBUG') {
$patLog = "/var/log/importaAlgar.log";
$log = date('d/m/Y H:i:s') . " [ $type ] " . $log . "\n";
file_put_contents($patLog, $log, FILE_APPEND);
}