forked from SimplesIP/pabx-app
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.
286 lines
13 KiB
286 lines
13 KiB
<?php |
|
|
|
require '/var/lib/asterisk/scripts/integracao/dbAbstract.php'; |
|
include '/var/lib/asterisk/scripts/integracao/custom/funcoesCustom.php'; |
|
require ("phpmailer/class.phpmailer.php"); |
|
|
|
$scrpt = $argv[0]; |
|
$config = array('itgc_host', 'itgc_port', 'itgc_database', 'itgc_user', 'itgc_password'); |
|
$config = GetConfigIntegracao($connPG, 'enviaLinhaDigitavelCpf', $config); |
|
|
|
$user = $config['itgc_user']; |
|
$passWord = $config['itgc_password']; |
|
$host = $config['itgc_host']; |
|
$port = $config['itgc_port']; |
|
$dataBase = $config['itgc_database']; |
|
$tipoDb = DB__PGSQL; |
|
|
|
$fileLog = '/var/log/asterisk/integraLog.log'; |
|
|
|
/* |
|
* DIRETORIO DOS ARQUIVOS DE SOM. |
|
*/ |
|
$pathSom = '/var/lib/asterisk/sounds/customizados/'; |
|
|
|
/* |
|
* Interage com o asterisk, por funcoes agi. |
|
*/ |
|
$agi = GetAgi(); |
|
/* |
|
* Variaveis para o status da integração. |
|
*/ |
|
$reg_retorno = $numero; |
|
$reg_msg = ''; |
|
$reg_status_exec = '1'; |
|
$retorno_cliente = ''; |
|
|
|
/* |
|
* Registra o inicio da integração. As variaveis passadas na funções são iniciali- |
|
* zadas em serverAgi.php. |
|
*/ |
|
@RegistraIntegracao($idMetodo, $uid, $uidOld, $numero); |
|
|
|
try { |
|
$data = date('Y-m-d H:i:s'); |
|
$boleto = verificaBoletos($numero); |
|
$cliente = ConnectMK($numero); |
|
ConnectPG(); |
|
|
|
//$boleto['qtde_reg'] = '0'; |
|
//$cliente = null; |
|
|
|
if ($boleto['qtde_reg'] >= '1') { |
|
$audio = $pathSom . 'geraboleto'; |
|
$agi->stream_file($audio); |
|
|
|
$agi->exec_goto(GetAnuncio("cliente_inadimplente")); |
|
} elseif ($boleto['qtde_reg'] == '1' || !empty($cliente)) { |
|
|
|
$audio = $pathSom . 'geraboleto'; |
|
$agi->stream_file($audio); |
|
|
|
$mail = new PHPMailer(true); // Passing `true` enables exceptions |
|
try { |
|
//Configurações do Servidor |
|
$mail->SMTPDebug = 0; // Enable verbose debug output |
|
$mail->isSMTP(); // Set mailer to use SMTP |
|
$mail->Host = 'smtplw.com.br'; // Specify main and backup SMTP servers |
|
$mail->SMTPAuth = true; // Enable SMTP authentication |
|
$mail->Username = 'wantel'; // SMTP username |
|
$mail->Password = 'DBkvTUWZ1072'; // SMTP password |
|
//$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted |
|
$mail->Port = 587; // TCP port to connect to |
|
//Remetente |
|
$mail->setFrom('relacionamento@wantel.com.br', 'Relacionamento Wantel'); |
|
//Recebedores |
|
$mail->addAddress($cliente['email']); //$cliente['email'] -- 'desenvolvimento01@simplesip.com.br' |
|
//Conteudo |
|
$mail->isHTML(true); // Set email format to HTML |
|
$mail->Subject = 'Linha Digitável Wantel'; |
|
$mail->CharSet = 'ISO-8859-1'; |
|
$mail->Body = "Prezado cliente: <b>" . $cliente['nome_razaosocial'] . "</b><br><br>" |
|
. "Segue a linha Digitável de seu Boleto: " . $cliente['ld_cobranca'] . "<br><br>" |
|
. "Agradecemos o contato." . "<br><b>Wantel A Fibra do Nosso Sertão</b><br><br>" |
|
. "Conheça nosso app:<br> |
|
<a href=\"https://play.google.com/store/apps/details?id=br.com.mksolutions.mksac.wantel&hl=pt_BR\">Play Store</a><br><br> |
|
<a href=\"https://itunes.apple.com/us/app/wantel/id1234577815?mt=8\">Apple Store</a>"; |
|
|
|
$mail->send(); |
|
|
|
$sql = sprintf("INSERT INTO pbx_reg_envio (uniqueid, nome_razaosocial, linha_digitavel, telefone, cpf_cnpj,tipo_envio,data_envio)" |
|
. "VALUES ('%s','%s','%s','%s','%s','%s','%s')", |
|
$uid, $cliente['nome_razaosocial'], $cliente['ld_cobranca'], $cliente['fone01'], $cpfCnpj, 'Email', $data); |
|
$result = pg_query($sql); |
|
|
|
/*----------------------------------------------------------------------------------------------- |
|
* ENVIO DE SMS |
|
* |
|
*/ |
|
$url = sprintf("http://www.iagentesms.com.br/webservices/smslote.php?usuario=teclan&senha=want2131&mensagem=%s&celulares=%s", |
|
urlencode($cliente['ld_cobranca']), $cliente['fone01']); //$cliente['fone01'] -- '65999797353' |
|
|
|
$ch = curl_init(); |
|
curl_setopt($ch, CURLOPT_URL, $url); |
|
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); |
|
curl_setopt($ch, CURLOPT_TIMEOUT, 10); |
|
$content = trim(curl_exec($ch)); |
|
curl_close($ch); |
|
|
|
/* |
|
* verificacao para gravacao no banco caso sms nao seja enviado |
|
*/ |
|
if (substr($content, 0, 4) == "ERRO") { |
|
|
|
$sql = sprintf("INSERT INTO pbx_reg_envio (uniqueid, nome_razaosocial, linha_digitavel, telefone, cpf_cnpj,tipo_envio," |
|
. "error_info,data_envio)" |
|
. "VALUES ('%s','%s','%s','%s','%s','%s','%s','%s')", |
|
$uid, $cliente['nome_razaosocial'], $cliente['ld_cobranca'], $cliente['fone01'], $cpfCnpj, 'SMS', $content,$data); |
|
$result = pg_query($sql); |
|
|
|
file_put_contents($fileLog, $data." - ERRO Envia SMS: ".$content."\n",FILE_APPEND); |
|
} else { |
|
$sql = sprintf("INSERT INTO pbx_reg_envio (uniqueid, nome_razaosocial, linha_digitavel, telefone, cpf_cnpj,tipo_envio,data_envio)" |
|
. "VALUES ('%s','%s','%s','%s','%s','%s','%s')", |
|
$uid, $cliente['nome_razaosocial'], $cliente['ld_cobranca'], $cliente['fone01'], $cpfCnpj, 'SMS',$data); |
|
$result = pg_query($sql); |
|
} |
|
|
|
if (!$result) { |
|
$agi->exec_goto(GetAnuncio("boleto_enviado1")); |
|
file_put_contents($fileLog, $data . " - ERRO: " . $sql . "\n", FILE_APPEND); |
|
} else { |
|
$agi->exec_goto(GetAnuncio("boleto_enviado1")); |
|
} |
|
} catch (Exception $e) { |
|
$msg = $mail->ErrorInfo; |
|
file_put_contents($fileLog, $data . " - ERRO Envia Email: " . $msg . "\n", FILE_APPEND); |
|
|
|
$sql = sprintf("INSERT INTO pbx_reg_envio (uniqueid, nome_razaosocial, linha_digitavel, telefone, cpf_cnpj,tipo_envio,error_info,data_envio)" |
|
. "VALUES ('%s','%s','%s','%s','%s','%s','%s','%s')", |
|
$uid, $cliente['nome_razaosocial'], $cliente['ld_cobranca'], $cliente['fone01'], $cpfCnpj, 'Email/SMS', $msg, $data); |
|
$result = pg_query($sql); |
|
|
|
//$agi->exec_goto(GetFila("FINANCEIRO")); |
|
$agi->exec_goto(GetAnuncio('redir_horario_financeiro')); |
|
} |
|
} elseif (empty($cliente) || $boleto['qtde_reg'] == '0') { |
|
$agi->exec_goto(GetAnuncio("sem_boleto_atual")); |
|
} |
|
} catch (Exception $ex) { |
|
$reg_msg = $ex->getMessage(); |
|
$reg_status_exec = 'Er'; |
|
__logStr("Envia Linha Digitavel CPF", $reg_msg, $script, true); |
|
} |
|
|
|
@AtualizaIntegracao($uid, $reg_retorno, $reg_msg, $reg_status_exec, $retorno_cliente); |
|
if (!$dadosIntegra) |
|
@grava_dadosIntegra($reg_retorno); |
|
|
|
|
|
function ConnectPG() { |
|
$dbPort = "5432"; |
|
$dbHost = "127.0.0.1"; |
|
$dbName = "pbx"; |
|
$dbUser = "contacte"; |
|
$dbPassword = "ctepgSQL"; |
|
$str = "host='$dbHost' port='$dbPort' dbname='$dbName' user='$dbUser' password='$dbPassword'"; |
|
return pg_connect($str); |
|
} |
|
|
|
function ConnectMK($tel) { |
|
|
|
$dbPort = "5432"; |
|
$dbHost = "138.204.68.3"; |
|
$dbName = "mkData3.0"; |
|
$dbUser = "cliente_r"; |
|
$dbPassword = "Cl13nt_R"; |
|
$str = "host='$dbHost' port='$dbPort' dbname='$dbName' user='$dbUser' password='$dbPassword'"; |
|
|
|
$connectMK = pg_connect($str,PGSQL_CONNECT_FORCE_NEW); |
|
|
|
if(!$connectMK){ |
|
throw new Exception(pg_last_error($connectMK)); |
|
} |
|
try{ |
|
$sql = "Select ld_cobranca,nome_razaosocial,email,count(email) over (partition by email) as qtde, fone01, fone02 from ( |
|
SELECT /*((((((((( |
|
CASE |
|
WHEN p.entidade = 204 THEN '2379'::text |
|
ELSE NULL::text |
|
END || p.agencia::text) || '03'::text) || \"left\"('9'::text || \"right\"(lpad(b.nosso_numero::text, 20, '0'::text), 11), 10)) |
|
|| modulo10(\"left\"('9'::text |
|
|| \"right\"(lpad(b.nosso_numero::text, 20, '0'::text), 11), 10)::character varying)) |
|
|| \"left\"(\"right\"(b.nosso_numero::text, 2) || \"right\"(lpad(p.conta_corrente::text, 20, '0'::text), 7), 9)) |
|
|| '0'::text) || modulo10((\"left\"(\"right\"(b.nosso_numero::text, 2) |
|
|| \"right\"(lpad(p.conta_corrente::text, 20, '0'::text), 7), 9) || '0'::text)::character varying)) |
|
|| modulo11(((((((( |
|
CASE |
|
WHEN p.entidade = 204 THEN '2379'::text |
|
ELSE NULL::text |
|
END || (f.data_vencimento - to_date('07/10/1997'::text, 'DD/MM/YYYY'::text))) |
|
|| \"right\"(lpad(replace(round(f.valor_total::numeric, 2)::character varying::text, '.'::text, ''::text), 10, '0'::text), 10)) |
|
|| p.agencia::text) || '09'::text) || \"right\"(lpad(b.nosso_numero::text, 20, '0'::text), 11)) |
|
|| \"right\"(lpad(p.conta_corrente::text, 20, '0'::text), 7)) || 0)::character varying)::text) |
|
|| (f.data_vencimento - to_date('07/10/1997'::text, 'DD/MM/YYYY'::text))) |
|
|| \"right\"(lpad(replace(round(f.valor_total::numeric, 2)::character varying::text, '.'::text, ''::text), 10, '0'::text), 10) |
|
|| ' R$ '|| ltrim(to_char(f.valor_total, '999999D99'::text)) ||' V: ' || to_char(f.data_vencimento,'DD/MM/YYYY') AS l_digit,*/ |
|
cli.nome_razaosocial, |
|
cli.email, |
|
case when length(cli.fone01)>9 and (cli.fone01 like '__98%' or cli.fone01 like '__99%') |
|
then cli.fone01 else cli.fone02 end as fone01 ,cli.fone02, |
|
f.ld_cobranca |
|
|
|
FROM |
|
mk_pessoas cli |
|
inner join mk_faturas f on cli.codpessoa = f.cd_pessoa |
|
inner join mk_contas_faturadas on f.codfatura = mk_contas_faturadas.cd_fatura |
|
inner join mk_plano_contas pc on mk_contas_faturadas.cd_conta = pc.codconta |
|
inner join mk_bairros on cli.codbairro = mk_bairros.codbairro |
|
inner JOIN mk_boletos_gerados b ON b.cd_fatura = f.codfatura and b.substituido='N' |
|
inner join mk_profile_pgto p ON b.profile = p.codprofile |
|
left outer join vw_contratos on pc.codvinculado = vw_contratos.codcontrato |
|
|
|
WHERE |
|
excluida='N' |
|
and f.liquidado='N' |
|
and f.suspenso='N' |
|
and pc.nomenclatura_integracao not in ('ACR','DES','PAR','TAR') |
|
and to_char(f.data_vencimento,'YYYY-MM')<=to_char(now(),'YYYY-MM') |
|
and to_char(f.data_vencimento,'YYYY-MM-DD')>=to_char(now()-INTERVAL '20 DAY' ,'YYYY-MM-DD') |
|
AND coalesce(cli.fone01,cli.fone02) = '$tel' as ld |
|
group by nome_razaosocial,email,fone01,fone02,ld_cobranca"; |
|
|
|
$result = pg_query($connectMK,$sql); |
|
$cliente = pg_fetch_array($result,NULL,PGSQL_ASSOC); |
|
|
|
pg_close($connectMK); |
|
|
|
} catch (Exception $ex) { |
|
throw new Exception($ex); |
|
} |
|
|
|
return $cliente; |
|
} |
|
|
|
function verificaBoletos($tel){ |
|
//f.liquidado='N' <- MODIFICAR A FLAG PARA 'S' PARA TESTAR |
|
|
|
$dbPort = "5432"; |
|
$dbHost = "138.204.68.3"; |
|
$dbName = "mkData3.0"; |
|
$dbUser = "cliente_r"; |
|
$dbPassword = "Cl13nt_R"; |
|
$str = "host='$dbHost' port='$dbPort' dbname='$dbName' user='$dbUser' password='$dbPassword'"; |
|
|
|
$connectMK = pg_connect($str,PGSQL_CONNECT_FORCE_NEW); |
|
|
|
$sql = "SELECT count(*) qtde_reg |
|
FROM |
|
mk_pessoas cli |
|
inner join mk_faturas f on cli.codpessoa = f.cd_pessoa |
|
inner join mk_contas_faturadas on f.codfatura = mk_contas_faturadas.cd_fatura |
|
inner join mk_plano_contas pc on mk_contas_faturadas.cd_conta = pc.codconta |
|
inner join mk_bairros on cli.codbairro = mk_bairros.codbairro |
|
inner JOIN mk_boletos_gerados b ON b.cd_fatura = f.codfatura and b.substituido='N' |
|
inner join mk_profile_pgto p ON b.profile = p.codprofile |
|
left outer join vw_contratos on pc.codvinculado = vw_contratos.codcontrato |
|
|
|
WHERE |
|
excluida='N' |
|
and f.liquidado='N' |
|
and f.suspenso='N' |
|
and pc.nomenclatura_integracao not in ('ACR','DES','PAR','TAR') |
|
and to_char(f.data_vencimento,'YYYY-MM')<=to_char(now(),'YYYY-MM') |
|
and to_char(f.data_vencimento,'YYYY-MM-DD')<to_char(now()-INTERVAL '20 DAY' ,'YYYY-MM-DD') |
|
AND coalesce(cli.fone01,cli.fone02) = '$tel'"; |
|
|
|
$result = pg_query($connectMK,$sql); |
|
$ret = pg_fetch_array($result,NULL,PGSQL_ASSOC); |
|
|
|
pg_close($connectMK); |
|
|
|
return $ret; |
|
} |
|
|
|
?>
|
|
|