How to decrease the amount of if

Asked

Viewed 510 times

0

The code below should do the following things:

1 - Search the companies in the database.

2 - Search the table in the month which companies will be worked.

3 - This table of the month is pulled that was done with companies, everything and format (int).

4 - Ai with the result of this second search I calculate the percentage of bonds made in each company.

5 - And also with the result I write in the table other information.

<?php
$login_test = new loginController();
$login_test->verif_login();

$_POST = Sanitize::filter($_POST);
$filtro_regime = $_POST['regime'];
$filtro_regime_nome = Components::nome_regime_trib($filtro_regime);

$filtro_empresa = $_POST['empresa'];
$filtro_mes_ano = $_POST['mes_ano'];
$status = $_POST['status'];
$user = $_SESSION['userCod'];
$nivel = $_SESSION['userLevel'];
$dataD = explode("/", "$filtro_mes_ano");
$m = $dataD[0];
$a = $dataD[1];
//$conecta = mysqli_connect("192.168.0.10", "easy_server", "easy2017", "easy");
$tributacao = $filtro_regime_nome;
?>
<script>
    $(function () {
        $('.listaEmpresasTabela').DataTable({
            "paging": true,
            "lengthChange": true,
            "searching": true,
            "ordering": true,
            "info": true,
            "autoWidth": false,
            "pagingType": "full_numbers"
        });

        var pg = "<?php echo $_POST['pg'] ?>";
        var find_pg = '';
        $('.paginate_button a').each(function (i, obj) {
            find_pg = $(this).text();
            if (pg === find_pg) {

                $(this).trigger('click');
            }
        });
    });
</script>
<div class="row" style="margin-top:10px;">
    <div class="col-md-12">
        <table class="table listaEmpresasTabela display table-hover" cellspacing="0" width="100%">
            <thead>
                <?php
                if ($tributacao == 'SIMPLES NACIONAL') {
                    ?>
                    <tr>
                        <th>ID</th>
                        <th>Empresa</th>
                        <th>CNPJ</th>
                        <th>Inscrição estadual</th>
                        <th>Apuração</th>
                        <th>Data Envio</th>
                        <th>Data Confirmação</th>
                        <th>Sintegra</th>
                        <th>DIFAL / DeSTDA</th>
                        <th>Retenções / CPOM</th>
                        <th>PGDAS</th>
                        <th>Obrigações</th>
                    </tr>
                    <?php
                } else {
                    ?>
                    <tr>
                        <th>ID</th>
                        <th>Empresa</th>
                        <th>CNPJ</th>
                        <th>Inscrição estadual</th>
                        <th>Apuração</th>
                        <th>Data Envio</th>
                        <th>Data Confirmação</th>
                        <th>Sped fiscal</th>
                        <th>Sped Contrib</th>
                        <th>Retenções</th>
                        <th>DCTF</th>
                        <th>Obrigações</th>
                    </tr>
                    <?php
                }
                ?>
            </thead>
            <tbody>
                <?php
                if ($nivel <= 3) {
                    if ($filtro_regime != "0") {
                        $sql = "SELECT id,cod,nome,cnpj,insc_estadual,tributacao FROM empresas_base WHERE tributacao = '$filtro_regime_nome' AND responsavel = '$user' GROUP BY id ORDER BY id";
                    } else {
                        $sql = "SELECT id,cod,nome,cnpj,insc_estadual,tributacao FROM empresas_base WHERE nome = '$filtro_empresa' AND responsavel = '$user' GROUP BY id ORDER BY id";
                    }
                } else {
                    if ($filtro_regime != "0") {
                        $sql = "SELECT id,cod,nome,cnpj,insc_estadual,tributacao FROM empresas_base WHERE tributacao = '$filtro_regime_nome' GROUP BY id ORDER BY id";
                    } else {
                        $sql = "SELECT id,cod,nome,cnpj,insc_estadual,tributacao FROM empresas_base WHERE nome = '$filtro_empresa' GROUP BY id ORDER BY id";
                    }
                }
                $rs = Components::get_rs_consulta_query($sql);
                while ($row = mysqli_fetch_array($rs)) {
                    $empresaID = $row['id'];
                    $empresaCod = $row['cod'];
                    $empresa = utf8_encode($row['nome']);
                    $cnpj = $row['cnpj'];
                    $insc_est = $row['insc_estadual'];

                    $regime_trib = $row['tributacao'];
                    // verifica pelo POST status se é pra exibir concluidos e incompletos
                    if ($status == '0' OR $status == '2') {
                        $sql2 = "SELECT * FROM controle_fiscal WHERE empresa = '$empresaCod' AND mes_correspondente = '$m' AND ano_correspondente = '$a' GROUP BY id ORDER BY id ";
                    } else {
                        if ($tributacao == 'SIMPLES NACIONAL') {
                            $sql2 = "SELECT * FROM controle_fiscal WHERE empresa = '$empresaCod' AND mes_correspondente = '$m' AND ano_correspondente = '$a' AND data_envio != '' AND data_confirmacao != '' AND sintegra != '0' AND difal_destda != '0' AND retencoes_cpom != '0' GROUP BY id ORDER BY id";
                        } elseif ($tributacao == 'PRESUMIDO' OR $tributacao == 'REAL') {
                            $sql2 = "SELECT * FROM controle_fiscal WHERE empresa = '$empresaCod' AND mes_correspondente = '$m' AND ano_correspondente = '$a' AND data_envio != '' AND data_confirmacao != '' AND sped_fiscal != '0' AND sped_contrib != '0' AND dctf != '0' AND retencoes != '0' GROUP BY id ORDER BY id";
                        }
                    }
                    $rs2 = Components::get_rs_consulta_query($sql2);
                    while ($row2 = mysqli_fetch_array($rs2)) {
                        $porc_form = 0;
                        //Todos
                        $apuracao = $row2['apuracao'];
                        $recibo_simples = $row2['recibo_simples'];
                        $controle_cod = $row2['cod'];
                        $data_envio = $row2['data_envio'];
                        $data_confirmacao = $row2['data_confirmacao'];
                        //Simples
                        $sintegra = $row2['sintegra'];
                        $difal_destda = $row2['difal_destda'];
                        $retencoes_cpom = $row2['retencoes_cpom'];
                        //Presumido
                        $sped_fiscal = $row2['sped_fiscal'];
                        $sped_contrib = $row2['sped_contrib'];
                        $dctf = $row2['dctf'];
                        $retencoes = $row2['retencoes'];
                        $pgdas = $row2['pgdas'];

                        if ($insc_est == 'CANCELADA' OR $insc_est == "INATIVA" OR $insc_est == 'ISENTO') {

                            if ($data_envio != 0) {
                                $data_envio_inativa = '';
                            } else {

                                $data_envio_inativa = 'Nada a enviar';
                            }

                            if ($data_confirmacao != 0) {
                                $data_confirmacao_inativa = '';
                            } else {

                                $data_confirmacao_inativa = 'Nada a confirmar';
                            }
                            if ($apuracao != 0) {

                                $apuracao_inativa = '';
                            } else {

                                $apuracao_inativa = 'Nada a apurar';
                            }

                            if ($tributacao == 'PRESUMIDO' OR $tributacao == "REAL") {
                                $retencoes_inativa = "Não necessário";
                                $sped_fiscal_inativa = 'Não necessário';
                                $sped_contrib_inativa = 'Não necessário';
                                $dctf_inativa = '';
                                $sintegra_inativa = '';
                                $difal_inativa = '';
                                $retencoes_cpom_inativa = '';
                                $sped_fiscal = '';
                                $sped_contrib = '';
                                $retencoes = '';
                            } elseif ($tributacao == 'SIMPLES NACIONAL') {
                                //$pgdas_inativa = 'Não necessário';
                                $retencoes_inativa = "";
                                $sped_fiscal_inativa = '';
                                $sped_contrib_inativa = '';
                                $sintegra_inativa = 'Não necessário';
                                $difal_inativa = 'Não necessário';
                                $retencoes_cpom_inativa = 'Não necessário';
                                $retencoes_cpom = '';
                                $difal_destda = '';
                                $sintegra = '';
                            }
                        } else {
                            $data_envio_inativa = '';
                            $data_confirmacao_inativa = '';
                            $apuracao_inativa = '';
                            $sintegra_inativa = '';
                            $pgdas_inativa = '';
                            $difal_inativa = '';
                            $retencoes_cpom_inativa = '';
                            $retencoes_inativa = "";
                            $dctf_inativa = '';
                            $sped_fiscal_inativa = '';
                            $sped_contrib_inativa = '';
                        }
                        if ($data_confirmacao == '' AND $data_envio != '') {
                            $data_envio_formated = DateTime::createFromFormat('d/m/Y', $data_envio);

                            $datetime1 = $data_envio_formated->format('Y-m-d');
                            $datetime2 = date('Y-m-d');
                            $time_inicial = strtotime($datetime1);
                            $time_final = strtotime($datetime2);
                            $diferenca = $time_final - $time_inicial; // 19522800 segundos
                            $dias = (int) floor($diferenca / (60 * 60 * 24));
                            if ($dias == 1) {
                                $data_confirmacao = 'Enviado ontem.';
                                $data_confirmacao_td_class = 'default';
                            } elseif ($dias < 5) {

                                $data_confirmacao = "A " . $dias . " dias sem confirmação";
                                $data_confirmacao_td_class = "warning";
                            } else {

                                $data_confirmacao = "ATENÇÃO! A " . $dias . " dias sem confirmação";
                                $data_confirmacao_td_class = "danger";
                            }
                        } else {
                            $data_confirmacao_td_class = "";
                            $data_confirmacao = $row2['data_confirmacao'];
                        }

                        if ($apuracao != 0) {
                            $apuracao_val = 1;
                        } else {
                            $apuracao_val = 0;
                        }
                        if ($apuracao != 0) {
                            $data_envio_val = 1;
                            $data_confirmacao_val = 1;
                        } else {
                            if ($data_envio != '' || $data_envio != 0) {
                                $data_envio_val = 1;
                            } else {
                                $data_envio_val = 0;
                            }

                            if ($data_confirmacao != '' || $data_confirmacao != 0) {
                                $data_confirmacao_val = 1;
                            } else {
                                $data_confirmacao_val = 0;
                            }
                        }
                        if ($insc_est == 'ISENTO' OR $insc_est == 'CANCELADA') {
                            $sintegra_val = 1;
                            $recibo_simples = 1;
                            if ($pgdas != 0) {
                                $pgdas_val = 1;
                            } else {
                                $pgdas_val = 0;
                            }
                            $difal_destda_val = 1;
                            $retencoes_cpom_val = 1;
                            $apuracao_val = 1;
                            $sped_fiscal_val = 1;
                            $sped_contrib_val = 1;
                            $retencoes_val = 1;
                                $val_obrig = $apuracao_val + $data_envio_val + $data_confirmacao_val + $sped_fiscal_val + $sped_contrib_val + $dctf_val + $retencoes_val;
                                $porc_form = (($val_obrig * 100) / 7);

                        } else {
                            if ($tributacao == 'SIMPLES NACIONAL') {
                                if ($sintegra != 0) {
                                    $sintegra_val = 1;
                                } else {
                                    $sintegra_val = 0;
                                }

                                if ($recibo_simples != 0) {
                                    $recibo_simples_val = 1;
                                    $pgdas_val = 1;
                                } else {
                                    $recibo_simples_val = 0;
                                    if ($pgdas != 0) {
                                        $pgdas_val = 1;
                                    } else {
                                        $pgdas_val = 0;
                                    }
                                }

                                if ($difal_destda != 0) {
                                    $difal_destda_val = 1;
                                } else {
                                    $difal_destda_val = 0;
                                }

                                if ($retencoes_cpom != 0) {
                                    $retencoes_cpom_val = 1;
                                } else {
                                    $retencoes_cpom_val = 0;
                                }


                                $val_obrig = $apuracao_val + $data_envio_val + $data_confirmacao_val + $sintegra_val + $recibo_simples_val + $difal_destda_val + $retencoes_cpom_val + $pgdas_val;

                                $porc_form = (($val_obrig * 100) / 8);
                            } elseif ($tributacao == 'PRESUMIDO' || $tributacao == "REAL") {

                                if ($sped_fiscal != 0) {
                                    $sped_fiscal_val = 1;
                                } else {
                                    $sped_fiscal_val = 0;
                                }


                                if ($sped_contrib != 0) {
                                    $sped_contrib_val = 1;
                                } else {
                                    $sped_contrib_val = 0;
                                }

                                if ($dctf != 0) {
                                    $dctf_val = 1;
                                } else {
                                    $dctf_val = 0;
                                }

                                if ($retencoes != 0) {
                                    $retencoes_val = 1;
                                } else {
                                    $retencoes_val = 0;
                                }
                                $val_obrig = $apuracao_val + $data_envio_val + $data_confirmacao_val + $sped_fiscal_val + $sped_contrib_val + $dctf_val + $retencoes_val;
                                $porc_form = (($val_obrig * 100) / 7);


                                $sped_fiscal_sum += $sped_fiscal_val;
                                $sped_contrib_sum += $sped_contrib_val;
                                $retencoes_sum += $retencoes_val;
                                $dctf_sum += $dctf_val;
                            }
                        }

                        if ($apuracao == '1') {
                            $data_envio = ' - Nada a enviar';
                            $data_confirmacao = ' - Nada a confirmar';
                        } else {
                            $data_envio = $data_envio;
                            $data_confirmacao = $data_confirmacao;
                        }
                        $tr_styles = fiscalModel::get_tr_obrigacoes_stats($status, $tributacao, $apuracao, $recibo_simples, $data_envio, $data_confirmacao, $sintegra, $difal_destda, $retencoes_cpom, $dctf, $retencoes, $pgdas, $sped_contrib, $sped_fiscal);
                        ?>
                        <tr style='<?php echo $tr_styles['display_none'] ?>'class="seleciona_empresa <?php echo $tr_styles['display_tr'] ?>" data-empresa="<?php echo $empresaCod ?>" data-empresa_nome="<?php echo $empresa ?>" data-controle='<?php echo $controle_cod ?>'>
                            <td width="2%">
                                <?php echo $empresaID ?>
                            </td>
                            <td width="16%">
                                <?php echo $empresa ?>
                            </td>
                            <td width="8%">
                                <?php echo $cnpj ?>
                            </td>
                            <td width="8%">
                                <?php echo $insc_est ?>
                            </td>
                            <td width="8%">
                                <?php echo $apuracao_inativa . Components::nome_apuracoes($apuracao) ?>
                            </td>
                            <td width="8%">
                                <?php echo $data_envio . $data_envio_inativa ?>
                            </td>
                            <td width="8%" class="<?php echo $data_confirmacao_td_class ?>">
                                <?php echo $data_confirmacao . $data_confirmacao_inativa ?>
                            </td>
                            <td width="8%">
                                <?php echo $sintegra_inativa . $sped_fiscal_inativa . Components::sintegra_nome($sintegra) . Components::sped_fiscal_nome($sped_fiscal); ?>
                            </td>
                            <td width="8%">
                                <?php echo $difal_inativa . $sped_contrib_inativa . Components::difal_destda_nome($difal_destda) . Components::sped_contrib_nome($sped_contrib); ?>
                            </td>
                            <td width="8%" >
                                <?php echo $retencoes_cpom_inativa . $retencoes_inativa . Components::retencoes_cpom_nome($retencoes_cpom) . Components::retencoes_nome($retencoes) ?>
                            </td>
                            <?php
                            if ($tributacao == 'SIMPLES NACIONAL') {
                                ?>
                                <td width="8%">
                                    <?php echo $pgdas_inativa . Components::pgdas_nome($pgdas) ?>
                                </td>
                                <?php
                            } elseif ($tributacao == 'PRESUMIDO' OR $tributacao = "REAL") {
                                ?>
                                <td width="8%">
                                    <?php echo $dctf_inativa . Components::get_dctf_nome($dctf) ?>
                                </td>
                                <?php
                            }
                            ?>
                            <td width="6%">
                                <?php echo number_format($porc_form, 2, '.', '') . "%"; ?>
                            </td>
                        </tr>
                        <?php
                    }
                }
                ?>
            </tbody>
        </table>
    </div>
</div>
<style>
    .listaEmpresasTabela tr{
        border: 2px solid #000;
    }
    .listaEmpresasTabela tr td{
        border:1px solid #ccc;
        margin:1px;
        z-index: 0;

    }
    .listaEmpresasTabela tr td:hover{
        border:1px solid #999;
        z-index: 1;
        margin:1px;

    }
    .dataTables_wrapper .row:first-child {
        border:1px dashed #ccc;
        margin: 0px;
        padding-top: 5px;
    }
    .table thead tr th{
        border:1px solid #000;
    }
</style>

This table is very conditional and like what should be displayed on it.

  • 1

    Needs better structure logic in if ($nivel <= 3) { has duplicated code ... breaking code snippets into functions, grouping elements into an array can help.

  • A tip: When working with php and html, use code blocks to escape them instead of openings of {}, will be more readable. Example: <?php if(condition): ?> HTML aqui <?php endif; ?>

1 answer

0

A good start is to extract the logic that is in PHP for small functions.

For example, codes like the below can be changed as follows:

if ($data_confirmacao != 0) {
  $data_confirmacao_inativa = '';
} else {
  $data_confirmacao_inativa = 'Nada a confirmar';
}

Move to a function:

function mesagem_data_confirmacao($data_confirmacao) {
  if ($data_confirmacao != 0) {
    return '';
  }
  return 'Nada a confirmar';
}

$data_confirmacao_inativa = mesagem_data_confirmacao($data_confirmacao);

You’ll have to write a little more, but it will make the table code more readable and easy to maintain.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.