public function processa_analise() { $data = $this->getParametroVisao(); $data['page'] = 'home'; $data['tema'] != '' ? $this->load->setTheme($data['tema']) : ''; $data['msg'] = $this->getMsg(); $data['abaAtiva'] = 30; $data['abaPage'] = 'processa_analise'; $data['js'] = array(0 => 'js/modules/financeiro/financeiro.js'); $sqlFinanceiro = new SqlFinanceiro(); $ano_letivo = $data['ano_letivo']; $data['turmas'] = $sqlFinanceiro->get_turmas_gerais($ano_letivo); if ($_SERVER['REQUEST_METHOD'] == "POST") { try { $turma = $this->input->post('pk_turma'); $ano = $data['ano_letivo']; //consulta receita bruta da turma para fazer processamento $data['receita_turma'] = $sqlFinanceiro->listar_receita_turma_id($turma, $ano); $totalReceita = array(); //processa registros da receita da turma foreach ($data['receita_turma']['registros'] as $row) { //calculo desconto mensalidade $percentual = $row[9] / 100; if ($row[10] == 1) { $mensalidade = $row[6]; } elseif ($row[10] == 2) { $mensalidade = $row[7]; } elseif ($row[10] == 3) { $mensalidade = $row[8]; } else { $mensalidade = null; // $mensalidade = $row[6]; } $desconto = $percentual * $mensalidade; $mensalidadeEfetiva = $mensalidade - $desconto; array_push($totalReceita, $mensalidadeEfetiva); } //armazena total de receita em variável $totalReceitaMensalidades = array_sum($totalReceita); //consulta parametros de custo por professor na turma $data['custo_professores'] = $sqlFinanceiro->listar_custo_professores_id($turma, $ano); $totalCustoMensalBase = array(); $totalCustoMensalMedio = array(); foreach ($data['custo_professores']['registros'] as $row) { //verifica titulacao do professor para definir gratificação por titulação if ($row[5] == null) { $grat_titulacao = 0; } elseif ($row[5] == 1) { $grat_titulacao = $row[9]; } elseif ($row[5] == 2) { $grat_titulacao = $row[10]; } elseif ($row[5] == 3) { $grat_titulacao = $row[11]; } elseif ($row[5] == 4) { $grat_titulacao = $row[12]; } // Cálculo de custo mensal (Base) //soma adicionais de pesquisa + titulacao + correcao de prova $gratificacaoTotal = $grat_titulacao + $row[13] + $row[14]; $ajusteGratificacao = $gratificacaoTotal / 100; //cria variavel de horabase $horaBase = $row[7]; $custo = ($horaBase + $row[8]) * (1 + $ajusteGratificacao); //multiplica pela carga horária $horasCarga = $custo * $row[2]; //parametro para multiplicacao $mensal = 5.25; //cria variavel com o valor mensal $valorMensal = $horasCarga * $mensal; //acrescenta gratificacao na serie (se houver) $custoMensalBase = $valorMensal; // Cálculo de custo mensal (Médio) //calculo 13º + Férias $custoDecimoNoMes = $custoMensalBase * 1 / 12; $custoFeriasNoMes = $custoMensalBase * 1 / 12; $custoTercoDeFeriasNoMes = $custoFeriasNoMes * 1 / 3; $custoProvisaoDecimoEFerias = $custoDecimoNoMes + $custoFeriasNoMes + $custoTercoDeFeriasNoMes; //calculo inss + fgts $inss = $row[15]; $fgts = $row[16]; //custoIF = 1 + ((INSS + FGTS) / 100) $custoIF = 1 + ($inss + $fgts) / 100; $custoMensalComImpostos = $custoMensalBase * $custoIF; $custoMensalTotal = $custoMensalComImpostos + $custoProvisaoDecimoEFerias; array_push($totalCustoMensalMedio, money_format('%.2n', round($custoMensalTotal))); array_push($totalCustoMensalBase, money_format('%.2n', round($custoMensalBase))); } $totalMensalBase = array_sum($totalCustoMensalBase); $totalMensalMedio = array_sum($totalCustoMensalMedio); //verifica se já existe uma análise na tabela relacionada a turma atual $data['verifica_consolidacao'] = $sqlFinanceiro->verifica_analise($turma); if ($data['verifica_consolidacao'] == null) { //consolida dados em tabela do módulo financeiro $data['consolida'] = $sqlFinanceiro->consolida_analise($turma, $totalReceitaMensalidades, $totalMensalMedio); $data['status'] = array('0' => '1', '1' => 'Processado com sucesso!', '2' => '0'); //converte array em json para retornar os dados $saida = json_encode($data['status']); //retorna os dados para o javascript financeiro.js echo $saida; } else { //atualiza dados consolidados $data['consolida'] = $sqlFinanceiro->atualiza_analise($turma, $totalReceitaMensalidades, $totalMensalMedio); $data['status'] = array('0' => '1', '1' => 'Processado com sucesso!', '2' => '0'); //converte array em json para retornar os dados $saida = json_encode($data['status']); //retorna os dados para o javascript financeiro.js echo $saida; } } catch (Exception $e) { $msg = '<p class="alert erro">' . $e->getMessage() . '</p>'; } } $this->load->view($this->load->getUrlTema(), $data); //$this->output->enable_profiler(TRUE); }