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.
 
 
 
 
 
 

288 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');
$cpfCnpj = $agi->get_variable('URA', true);
$boleto = verificaBoletos($cpfCnpj);
$cliente = ConnectMK($cpfCnpj);
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($cpfCnpj) {
$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 replace(replace(replace(coalesce(cli.cnpj,cli.cpf),'-',''),'/',''),'.','') = '$cpfCnpj') 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($cpfCnpj){
//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 replace(replace(replace(coalesce(cli.cnpj,cli.cpf),'-',''),'/',''),'.','') = '$cpfCnpj'";
$result = pg_query($connectMK,$sql);
$ret = pg_fetch_array($result,NULL,PGSQL_ASSOC);
pg_close($connectMK);
return $ret;
}
?>