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.
 
 
 
 
 
 

407 lines
21 KiB

<?php
$tpLayout = 1;
$nomeTpl = 'cadastros/tarifacao/cadContratoPreco.htm';
$contr_id = $_REQUEST['contr_id'];
$contr_descricao = $_REQUEST['contr_descricao'];
$oper_id = $_REQUEST['oper_id'];
$oper_nome = $_REQUEST['oper_nome'];
$contr_tipo_franquia = $_REQUEST['contr_tipo_franquia'];
$contr_dia_fechamento = $_REQUEST['contr_dia_fechamento'];
$fields = array(
'contr_id', 'prc_vigencia', 'prc_tipo_opera', 'prc_tipo', 'prc_franquia', 'prc_franquia_movel',
'prc_franquia_preco', 'prc_preco_vc1', 'prc_preco_vc2', 'prc_preco_vc3', 'prc_preco_vc4', 'prc_preco_vc1_cad',
'prc_preco_vc2_cad', 'prc_preco_vc3_cad', 'prc_preco_vc4_cad', 'prc_preco_vc1_ext', 'prc_preco_vc2_ext',
'prc_preco_vc3_ext', 'prc_preco_vc4_ext', 'prc_preco_vc5', 'prc_preco_vc6', 'prc_preco_vc5_cad',
'prc_preco_vc6_cad', 'prc_preco_vc5_ext', 'prc_preco_vc6_ext'
);
$org_id = GetOrganizacao();
$fieldsKey = array('contr_id', 'prc_vigencia', 'prc_tipo_opera');
$dadosForm = array();
$tipoOpera = '';
if ($_GET['acao'] == 'alterar') {
$prc_id = $_REQUEST['prc_id'];
$query = "SELECT prc_id, contr_id, to_char(prc_vigencia, 'DD/MM/YYYY') as prc_vigencia, prc_tipo_opera, prc_tipo, prc_franquia,
prc_franquia_movel, prc_franquia_preco, prc_preco_vc1, prc_preco_vc2, prc_preco_vc3, prc_preco_vc4, prc_preco_vc1_cad,
prc_preco_vc2_cad, prc_preco_vc3_cad, prc_preco_vc4_cad, prc_preco_vc1_ext, prc_preco_vc2_ext, prc_preco_vc3_ext,
prc_preco_vc4_ext, prc_preco_vc5, prc_preco_vc6, prc_preco_vc5_cad, prc_preco_vc6_cad, prc_preco_vc5_ext, prc_preco_vc6_ext
FROM pbx_tarif_contrato_preco
WHERE prc_id = '$prc_id'";
$result = pg_query($dbcon, $query);
$dadosAltera = pg_fetch_array($result);
foreach ($fields as $key) {
$smarty->assign($key, str_replace('.', ',', $dadosAltera[$key]));
}
$acaoForm = 'Alterar';
$tipoOpera = $dadosAltera['prc_tipo_opera'];
$tipoOpera = "<input name=\"tipo_opera\" type=\"hidden\" id=\"oper_nome\" value=\"$tipoOpera\">";
} else if (isset($_POST['btGravar'])) {
foreach ($fields as $key) {
$dadosForm[$key] = $_POST[$key];
}
/*
* Excecoes e formatacoes
*/
$dadosForm['prc_vigencia'] = FormatDtMssql($_POST['prc_vigencia']);
$dadosForm['prc_franquia'] = soNumero($_POST['prc_franquia']);
$dadosForm['prc_franquia_preco'] = FormataValorBd($_POST['prc_franquia_preco']);
$dadosForm['prc_preco_vc1'] = FormataValorBd($_POST['prc_preco_vc1']);
$dadosForm['prc_preco_vc2'] = FormataValorBd($_POST['prc_preco_vc2']);
$dadosForm['prc_preco_vc3'] = FormataValorBd($_POST['prc_preco_vc3']);
$dadosForm['prc_preco_vc4'] = FormataValorBd($_POST['prc_preco_vc4']);
$dadosForm['prc_preco_vc5'] = FormataValorBd($_POST['prc_preco_vc5']);
$dadosForm['prc_preco_vc6'] = FormataValorBd($_POST['prc_preco_vc6']);
/*
* Variaveis recebidas por get
*/
$dadosForm['contr_dia_fechamento'] = $contr_dia_fechamento;
$prc_tipo_opera = isset($_POST['tipo_opera']) ? $_POST['tipo_opera'] : $_POST['prc_tipo_opera']; //->Operadora contrato 1 -> Outras operadoras
$prc_vigenci = $dadosForm['prc_vigenci'];
$query = sprintf("SELECT count(*) FROM pbx_tarif_contrato_preco WHERE contr_id = '%s' AND prc_vigencia = '%s' AND prc_tipo_opera = '%s'", $contr_id, $dadosForm['prc_vigencia'], $dadosForm['prc_tipo_opera']);
//echo $query . "\n\n";
if ($contr_id && RegistroInc($dbcon, $query)) {
$query = "UPDATE pbx_tarif_contrato_preco
SET prc_tipo = {prc_tipo}, prc_franquia = {prc_franquia},
prc_franquia_preco = {prc_franquia_preco}, prc_preco_vc1 = {prc_preco_vc1},
prc_preco_vc2 = {prc_preco_vc2}, prc_preco_vc3 = {prc_preco_vc3}, prc_preco_vc4 = {prc_preco_vc4},
prc_franquia_movel = {prc_franquia_movel}, prc_preco_vc1_cad = {prc_preco_vc1_cad}, prc_preco_vc2_cad = {prc_preco_vc2_cad},
prc_preco_vc3_cad = {prc_preco_vc3_cad}, prc_preco_vc4_cad = {prc_preco_vc4_cad}, prc_preco_vc1_ext = {prc_preco_vc1_ext},
prc_preco_vc2_ext = {prc_preco_vc2_ext}, prc_preco_vc3_ext = {prc_preco_vc3_ext}, prc_preco_vc4_ext = {prc_preco_vc4_ext},
contr_dia_fechamento = {contr_dia_fechamento}, prc_preco_vc5 = {prc_preco_vc5}, prc_preco_vc6 = {prc_preco_vc6},
prc_preco_vc5_cad = {prc_preco_vc5_cad}, prc_preco_vc6_cad = {prc_preco_vc6_cad}, prc_preco_vc5_ext = {prc_preco_vc5_ext},
prc_preco_vc6_ext = {prc_preco_vc6_ext}
WHERE contr_id = {contr_id}
AND prc_vigencia = {prc_vigencia}
AND prc_tipo_opera = {prc_tipo_opera}";
} else {
$query = "INSERT INTO pbx_tarif_contrato_preco
(contr_id, prc_vigencia, prc_tipo_opera, prc_tipo, prc_franquia, prc_franquia_movel, prc_franquia_preco, prc_preco_vc1, prc_preco_vc2, prc_preco_vc3, prc_preco_vc4, prc_preco_vc1_cad, prc_preco_vc2_cad, prc_preco_vc3_cad, prc_preco_vc4_cad, prc_preco_vc1_ext, prc_preco_vc2_ext, prc_preco_vc3_ext, prc_preco_vc4_ext, contr_dia_fechamento, prc_preco_vc5, prc_preco_vc6, prc_preco_vc5_cad, prc_preco_vc6_cad, prc_preco_vc5_ext, prc_preco_vc6_ext, org_id)
VALUES ({contr_id},{prc_vigencia},{prc_tipo_opera},{prc_tipo},{prc_franquia},{prc_franquia_movel},{prc_franquia_preco},{prc_preco_vc1},{prc_preco_vc2},{prc_preco_vc3},{prc_preco_vc4},{prc_preco_vc1_cad},{prc_preco_vc2_cad},{prc_preco_vc3_cad},{prc_preco_vc4_cad},{prc_preco_vc1_ext},{prc_preco_vc2_ext},{prc_preco_vc3_ext},{prc_preco_vc4_ext}, {contr_dia_fechamento}, {prc_preco_vc5}, {prc_preco_vc6}, {prc_preco_vc5_cad}, {prc_preco_vc6_cad}, {prc_preco_vc5_ext}, {prc_preco_vc6_ext}, $org_id)";
}
foreach ($dadosForm as $key => $value) {
$query = str_replace(sprintf('{%s}', $key), QuotedStr($value), $query);
}
$result = pg_query($dbcon, 'begin');
//echo $query; exit;
if ($result)
$result = pg_query($dbcon, $query);
$query = "UPDATE pbx_tarif_contrato_preco
SET prc_franquia = {prc_franquia},
prc_franquia_preco = {prc_franquia_preco},
prc_franquia_movel = {prc_franquia_movel},
prc_tipo = {prc_tipo}
WHERE contr_id = {contr_id} ";
foreach ($dadosForm as $key => $value) {
$query = str_replace(sprintf('{%s}', $key), QuotedStr($value), $query);
}
if ($result)
$result = pg_query($dbcon, $query);
$dadosForm['contr_tipo_franquia'] = $contr_tipo_franquia;
$dadosForm['contr_dia_fechamento'] = $contr_dia_fechamento;
if ($result) {
$result = AtualizaFranquia($dbcon, $dadosForm);
}
if ($result) {
pg_query($dbcon, 'commit');
foreach ($fields as $key) {
$smarty->assign($key, $_POST[$key]);
}
} else {
pg_query($dbcon, 'rollback');
foreach ($fields as $key) {
if (!array_key_exists($key, $fieldsKey))
$smarty->assign($key, '');
}
$jsStartup[] = "alert('N<EFBFBD>o foi poss<EFBFBD>vel realizar a opera<EFBFBD><EFBFBD>o!');";
}
}
$linha = "<tr><td>%s</td><td>%s</td><td align=\"right\">%s</td><td align=\"right\">%s</td><td align=\"right\">%s</td><td align=\"right\">%s</td><td align=\"right\">%s</td><td align=\"right\">%s</td><td align=\"right\">%s</td><td align=\"right\">%s</td><td align=\"right\">%s</td><td align=\"center\">%s</td></tr>";
$query = "SELECT prc_id, contr_id, prc_vigencia, prc_tipo_opera, prc_tipo, prc_franquia, prc_franquia_movel,
prc_franquia_preco, prc_preco_vc1, prc_preco_vc2, prc_preco_vc3, prc_preco_vc4, prc_preco_vc5,
prc_preco_vc6
FROM pbx_tarif_contrato_preco
WHERE contr_id = '$contr_id'";
$result = pg_query($dbcon, $query);
$linhas = '';
while ($dados = pg_fetch_array($result)) {
$prc_id = $dados['prc_id'];
//$contr_id = $dados['contr_id'];
$prc_vigenci = FormataDBDataHora($dados['prc_vigencia']);
$prc_tipo_opera = $dados['prc_tipo_opera'] == '0' ? 'Atual' : 'Outras';
$prc_tipo = $dados['prc_tipo'] == '1' ? 'Minuto' : 'Chamada';
$prc_franquia = $dados['prc_franquia'];
$prc_franquia_movel = $dados['prc_franquia_movel'];
$prc_franquia_preco = $dados['prc_franquia_preco'];
$prc_preco_vc1 = $dados['prc_preco_vc1'];
$prc_preco_vc2 = $dados['prc_preco_vc2'];
$prc_preco_vc3 = $dados['prc_preco_vc3'];
$prc_preco_vc4 = $dados['prc_preco_vc4'];
$prc_preco_vc5 = $dados['prc_preco_vc5'];
$prc_preco_vc6 = $dados['prc_preco_vc5'];
$link = sprintf("<a href=\"index.php?idProg=198&acao=alterar&prc_id=%s&contr_id=%s&contr_descricao=%s&oper_id=%s&oper_nome=%s&contr_tipo_franquia=%s&contr_dia_fechamento=%s\">%s</a>", $prc_id, $contr_id, $contr_descricao, $oper_id, $oper_nome, $contr_tipo_franquia, $contr_dia_fechamento, $prc_vigenci);
$linhas .= sprintf($linha, $link, $prc_tipo, $prc_franquia, $prc_franquia_movel, $prc_franquia_preco, $prc_preco_vc1, $prc_preco_vc2, $prc_preco_vc5, $prc_preco_vc3, $prc_preco_vc4, $prc_preco_vc6, $prc_tipo_opera);
}
if (empty($linhas))
$linhas = sprintf("<tr><td colspan=\"9\" align=\"center\">%s</td></tr>", "Nenhum registro encontrado!");
$tipoCobranca = GetTipoCobranca(isset($_POST['prec_tipo']) ? $_POST['prec_tipo'] : 1);
/*
* Scripts clientes.
*/
$jsJQuery[] = "\$('#dataIni').keypress(function(){formataDataHora(this);});";
$smarty->assign('tituloCadastro', 'Cadastro de Pre<EFBFBD>os');
$smarty->assign('linhas', $linhas);
$smarty->assign('contr_id', $contr_id);
$smarty->assign('contr_descricao', $contr_descricao);
$smarty->assign('oper_id', $oper_id);
$smarty->assign('oper_nome', $oper_nome);
$smarty->assign('tipoCobranca', $tipoCobranca);
$smarty->assign('acaoForm', isset($acaoForm) ? $acaoForm : 'Incluir');
$smarty->assign('tipoOpera', $tipoOpera);
$smarty->assign('contr_tipo_franquia', $contr_tipo_franquia);
$smarty->assign('contr_dia_fechamento', $contr_dia_fechamento);
GetTemplate($smarty, $nomeTpl);
function AtualizaFranquia($dbcon, $dadosForm)
{
$result = 1;
$tff_mes = explode('-', $dadosForm['prc_vigencia']);
$diaFechamento = GetFechamentoContrato($tff_mes[0], $tff_mes[1], $dadosForm['contr_dia_fechamento']);
$dadosForm['tff_mes'] = $tff_mes[1];
$dadosForm['tfm_user'] = GetMatricula();
$tipoFranquia = $dadosForm['contr_tipo_franquia'];
$query = "SELECT tff_franquia, tff_franquia_movel FROM pbx_tarif_franquia WHERE contr_id = {contr_id} AND tff_mes = {tff_mes} ";
foreach ($dadosForm as $key => $value) {
$query = str_replace(sprintf('{%s}', $key), QuotedStr($value), $query);
}
$result = pg_query($dbcon, $query);
if (!$result) {
return false;
}
if (pg_num_rows($result)) {
$dadosForm['tfm_tipo_franquia'] = $tipoFranquia;
$dados = pg_fetch_array($result);
if ($tipoFranquia == 0) {
$query = "UPDATE pbx_tarif_franquia set tff_franquia = '0', tff_saldo = '0', tff_franquia_movel = '0', tff_saldo_movel = '0' WHERE contr_id = {contr_id} AND tff_mes = {tff_mes}";
foreach ($dadosForm as $key => $value) {
$query = str_replace(sprintf('{%s}', $key), QuotedStr($value), $query);
}
$result = pg_query($dbcon, $query);
if (!$result) {
return false;
}
} else {
if (($tipoFranquia == 1) || ($tipoFranquia == 2))
$atualizaFranquia = ($dados['tff_franquia'] != $dadosForm['prc_franquia']);
else if ($tipoFranquia == 3)
$atualizaFranquia = ($dados['tff_franquia_movel'] != $dadosForm['prc_franquia_movel']);
else if ($tipoFranquia == 4)
$atualizaFranquia = ($dados['tff_franquia'] != $dadosForm['prc_franquia']) || ($dados['tff_franquia_movel'] != $dadosForm['prc_franquia_movel']);
if ($atualizaFranquia) {
$result = pg_query($dbcon, 'begin');
//Esta modalidades nao usam movel
if (($tipoFranquia == 1) || ($tipoFranquia == 2) || ($tipoFranquia == 3))
$dadosForm['prc_franquia_movel'] = 0;
$query = "UPDATE pbx_tarif_franquia SET tff_franquia = ({prc_franquia} * 60), tff_franquia_movel = ({prc_franquia_movel} * 60), contr_dia_fechamento = {contr_dia_fechamento} WHERE contr_id = {contr_id} and tff_mes = {tff_mes}\n";
foreach ($dadosForm as $key => $value) {
$query = str_replace(sprintf('{%s}', $key), QuotedStr($value), $query);
}
if ($result) {
$result = pg_query($dbcon, $query);
}
if ($result) {
$result = pg_query($dbcon, 'commit');
} else {
$result = false;
pg_query($dbcon, 'rollback');
}
}
}
}
if ($result) {
return true;
} else {
return false;
}
}
function AtualizaFranquiaOld($dbcon, $dadosForm)
{
$result = 1;
$tff_mes = explode('-', $dadosForm['prc_vigencia']);
$diaFechamento = GetFechamentoContrato($tff_mes[0], $tff_mes[1], $dadosForm['contr_dia_fechamento']);
$org_id = GetOrganizacao();
$dadosForm['tff_mes'] = $tff_mes[1];
$dadosForm['tfm_user'] = GetMatricula();
$tipoFranquia = $dadosForm['contr_tipo_franquia'];
$query = "SELECT tff_franquia, tff_franquia_movel FROM pbx_tarif_franquia WHERE contr_id = {contr_id} AND tff_mes = {tff_mes} ";
foreach ($dadosForm as $key => $value) {
$query = str_replace(sprintf('{%s}', $key), QuotedStr($value), $query);
}
$result = pg_query($dbcon, $query);
if (!$result)
return false;
if (pg_num_rows($result)) {
$dadosForm['tfm_tipo_franquia'] = $tipoFranquia;
$dados = pg_fetch_array($result);
if ($tipoFranquia == 0) {
$query = "UPDATE pbx_tarif_franquia SET tff_franquia = '0', tff_saldo = '0', tff_franquia_movel = '0', tff_saldo_movel = '0' WHERE contr_id = {contr_id} AND tff_mes = {tff_mes}";
foreach ($dadosForm as $key => $value) {
$query = str_replace(sprintf('{%s}', $key), QuotedStr($value), $query);
}
$result = pg_query($dbcon, $query);
if (!$result) {
return false;
}
} else {
if (($tipoFranquia == 1) || ($tipoFranquia == 2)) {
$atualizaFranquia = ($dados['tff_franquia'] != $dadosForm['prc_franquia']);
} else if ($tipoFranquia == 3) {
$atualizaFranquia = ($dados['tff_franquia_movel'] != $dadosForm['prc_franquia_movel']);
} else if ($tipoFranquia == 4) {
$atualizaFranquia = ($dados['tff_franquia'] != $dadosForm['prc_franquia']) || ($dados['tff_franquia_movel'] != $dadosForm['prc_franquia_movel']);
}
if ($atualizaFranquia) {
$result = pg_query($dbcon, 'begin');
//Esta modalidades nao usam movel
if (($tipoFranquia == 1) || ($tipoFranquia == 2) || ($tipoFranquia == 3))
$dadosForm['prc_franquia_movel'] = 0;
$query = "UPDATE pbx_tarif_franquia SET tff_franquia = ({prc_franquia} * 60), tff_franquia_movel = ({prc_franquia_movel} * 60), contr_dia_fechamento = {contr_dia_fechamento} WHERE contr_id = {contr_id} AND tff_mes = {tff_mes}\n";
foreach ($dadosForm as $key => $value) {
$query = str_replace(sprintf('{%s}', $key), QuotedStr($value), $query);
}
if ($result) {
$result = pg_query($dbcon, $query);
}
$limit = ($tipoFranquia == 4) ? 2 : 1;
$dadosCampoFranquia = ($tipoFranquia == 3) ? 'tff_franquia_movel' : 'tff_franquia';
$formCampoFranquia = ($tipoFranquia == 3) ? 'prc_franquia_movel' : 'prc_franquia';
$tmf_tipo_saldo = ($tipoFranquia == 3) ? 'M' : 'F';
for ($i = 1; $i <= $limit; $i++) {
if ($dados[$dadosCampoFranquia] > $dadosForm[$formCampoFranquia]) {
$dadosForm['tfm_lanc'] = $dadosForm[$formCampoFranquia] - $dados[$dadosCampoFranquia];
$dadosForm['tfm_tipo_lanc'] = 'D';
$dadosForm['tfm_motivo'] = 'Reducao na franquia inserida no cadastro de preco';
} else {
$dadosForm['tfm_lanc'] = $dadosForm[$formCampoFranquia] - $dados[$dadosCampoFranquia];
echo sprintf("CampoForm: %s CampoDados: %s ValorForm: %s valorDados: %s Saldo: %s", $formCampoFranquia, $dadosCampoFranquia, $dadosForm[$formCampoFranquia], $dados[$dadosCampoFranquia], $dadosForm['tfm_lanc']);
$dadosForm['tfm_tipo_lanc'] = 'C';
$dadosForm['tfm_motivo'] = 'Incremento na franquia inserida no cadastro de preco';
}
$query = " INSERT INTO pbx_tarif_franquia_movimento
( prc_id, contr_id, tfm_mes, uniqueid, tfm_data, tfm_lanc, tfm_tipo_lanc, tfm_motivo, tfm_user, tfm_tipo_franquia, tmf_tipo_saldo, org_id)
VALUES( 0, {contr_id}, {tff_mes}, 0, now(), ({tfm_lanc} * 60), {tfm_tipo_lanc}, {tfm_motivo}, {tfm_user}, {contr_tipo_franquia}, '$tmf_tipo_saldo', $org_id )\n";
foreach ($dadosForm as $key => $value) {
$query = str_replace(sprintf('{%s}', $key), QuotedStr($value), $query);
}
if ($result) {
$result = pg_query($dbcon, $query);
}
if (($tipoFranquia != 4)) {
break;
}
$dadosCampoFranquia = 'tff_franquia_movel';
$formCampoFranquia = 'prc_franquia_movel';
$tmf_tipo_saldo = 'M';
}
if ($result) {
pg_query($dbcon, 'commit');
} else {
pg_query($dbcon, 'rollback');
}
}
}
} else {
if ($tipoFranquia == 0) {
return true;
}
$result = pg_query($dbcon, 'begin');
if (($tipoFranquia == 3) || ($tipoFranquia == 4)) {
$dadosForm['tfm_lanc'] = $dadosForm['prc_franquia_movel'];
$dadosForm['tfm_tipo_lanc'] = 'C';
$dadosForm['tfm_motivo'] = 'franquia inserida no cadastro de preco';
$query = "INSERT INTO pbx_tarif_franquia_movimento
( prc_id, contr_id, tfm_mes, uniqueid, tfm_data, tfm_lanc, tfm_tipo_lanc, tfm_motivo, tfm_user, tfm_tipo_franquia, tmf_tipo_saldo, org_id)
VALUES( 0, {contr_id}, {tff_mes}, 0, now(), ({tfm_lanc} * 60), {tfm_tipo_lanc}, {tfm_motivo}, {tfm_user}, {contr_tipo_franquia}, 'M', $org_id)";
foreach ($dadosForm as $key => $value) {
$query = str_replace(sprintf('{%s}', $key), QuotedStr($value), $query);
}
if ($result)
$result = pg_query($dbcon, $query);
}
$dadosForm['tfm_lanc'] = $dadosForm['prc_franquia'];
$dadosForm['tfm_tipo_lanc'] = 'C';
$dadosForm['tfm_motivo'] = 'Reducao na franquia inserida no cadastro de preco';
$query = "INSERT INTO pbx_tarif_franquia_movimento
( prc_id, contr_id, tfm_mes, uniqueid, tfm_data, tfm_lanc, tfm_tipo_lanc, tfm_motivo, tfm_user, tfm_tipo_franquia, tmf_tipo_saldo, org_id)
VALUES( 0, {contr_id}, {tff_mes}, 0, now(), ({tfm_lanc} * 60), {tfm_tipo_lanc}, {tfm_motivo}, {tfm_user}, {contr_tipo_franquia}, 'F', $org_id)";
foreach ($dadosForm as $key => $value) {
$query = str_replace(sprintf('{%s}', $key), QuotedStr($value), $query);
}
if ($result) {
$result = pg_query($dbcon, $query);
}
if ($result) {
$result = pg_query($dbcon, 'commit');
} else {
pg_query($dbcon, 'rollback');
}
}
if ($result) {
return true;
} else {
return false;
}
}