✏️ 正在编辑: ComissionamentoCorretorController.php
路径:
/srv/systems_dir/yuppiecred/application/controllers/ComissionamentoCorretorController.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class ComissionamentoCorretorController extends Zend_Controller_Action { public function indexAction() { $form = new Form_Filtro_ComissionamentoCorretor(); $request = $this->getRequest(); if (!empty($request->getParam('btn_export_tabelao'))) { $this->_forward('exportar-tabelao', null, null, $form->getValues()); return; } try { $comissoes = $form->search(); } catch ( Exception $e ) { $comissoes = array(); $this->_helper->flashMessenger(array( 'alert' => $e->getMessage() )); } $this->view->comissoes = $comissoes; $this->view->form = $form; } public function saveAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); $form = new Form_ComissionamentoCorretor(); if( $request->isPost() ){ if( $form->isValid($request->getPost()) ){ $grupo = new Model_ComissionamentoCorretor($request->getPost()); try { $id = $grupo->salvar($grupo); $request->setParam('id', $id); $this->_helper->flashMessenger(array( 'success' => 'Dados salvos com sucesso.' )); } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'error' => $e->getMessage() )); } } } if( $id > 0 ){ $grupo = new Model_ComissionamentoCorretor(); $dados = $grupo->exibir($id); $form->populate($dados->toArray()); $this->view->dados_comissionamento = $dados; $comissionamentoPercentual = new Form_ComissionamentoPercentual(); $this->view->form_comissionamento = $comissionamentoPercentual; } $this->view->form = $form; } public function deleteAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); $grupo = new Model_ComissionamentoCorretor(); if( $id > 0 ){ $grupo->excluir($id); $this->_helper->flashMessenger(array( 'success' => 'Item excluído com sucesso.' )); } elseif( count($request->getParam('comissoes')) > 0 ){ $cont = 0; foreach ( $request->getParam('comissoes') as $c ) { $result = $grupo->excluir($c); if( $result > 0 ){ $cont++; } } if( $cont > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Itens excluídos com sucesso.' )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum item foi excluído.' )); } } $this->_redirect('/comissionamento-corretor'); } public function addComissaoAction() { $request = $this->getRequest(); $form = new Form_ComissionamentoPercentual(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $auth = Yuppie_Auth::getIdentity(); $data = array_filter($request->getPost()); $comissao = new Model_ComissionamentoCorretorPercentual($form->getValues()); try { if( $auth->grupo == "Supervisor" ){ $modelSupervisor = new Model_GerenteRota(); $dadosSupervisor = $modelSupervisor->validarFaixaValores($data, $auth->id); if( $dadosSupervisor ){ throw new Exception("Atenção! Comissão inválida."); } } $comissao->salvar($comissao); $this->_helper->flashMessenger(array( 'success' => "Registro inserido com sucesso." )); } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'error' => $e->getMessage() )); } } $this->_helper->redirector('save', null, null, array( 'id' => $form->getValue('comissionamento_id') )); } public function deleteComissaoAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); if( $id > 0 ){ $comissao = new Model_ComissionamentoCorretorPercentual(); $comissao->excluir($id); $this->_helper->flashMessenger(array( 'success' => 'Registro excluído com sucesso.' )); } $this->_helper->redirector('save', null, null, array( 'id' => $request->getParam('comissionamento_id') )); } public function exportarAction() { $request = $this->getRequest(); $form = new Form_Filtro_ExportarComissoesCorretores(); if ($request->isPost()) { $fields = $request->getPost(); $form->populate($fields); $percentual = new Model_ComissionamentoCorretorPercentual(); $fields['all_corretor'] = true; $fields['find_data_final'] = true; try { $this->view->percentuais = $percentual->listar($fields); } catch (Core_Exception $e) { $this->_helper->flashMessenger(['error' => $e->getMessage()]); } $this->view->condicao = $fields['find_dt_final']; } $this->view->form = $form; } public function executarExportarComissoesAction() { $request = $this->getRequest(); $result = null; $cont = 0; if( $request->isPost() ){ $comissoes = $request->getPost('ck_comissoes'); $excluirSelecionados = $request->getPost('acao'); if( !$comissoes ){ $this->_helper->flashMessenger(array( 'alert' => "Atenção! Selecione pelo menos um item." )); $this->_helper->redirector('exportar'); } $ns = new Zend_Session_Namespace('comissoes_corretores_selecionadas'); $ns->comissoes_corretores_selecionadas = $comissoes; if( $request->getPost('button_date') ){ $model = new Model_DbTable_ComissionamentoCorretorPercentual(); $dataFinal = $request->getPost('data_final'); if( $dataFinal ){ $formatDate = new Zend_Date($dataFinal); $dataFinal = $formatDate->get('yyyy-MM-dd'); } else { $dataFinal = NULL; } foreach ( $ns->comissoes_corretores_selecionadas as $comissao ) { $result = $model->update(array( 'data_final' => $dataFinal ), 'id = ' . $comissao); $cont++; } if( $result > 0 ){ $this->_helper->flashMessenger(array( 'success' => "{$cont} Data(s) foram setada(s) com sucesso." )); $this->_helper->redirector('exportar'); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum registro foi alterado.' )); } } if( $excluirSelecionados ){ $cont = 0; $corretor = new Model_ComissionamentoCorretorPercentual(); foreach ( $comissoes as $c ) { $result = $corretor->excluir($c); if( $result > 0 ){ $cont++; } } if( $cont > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Itens excluídos com sucesso.' )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum item foi excluído.' )); } $this->_helper->redirector('exportar'); } $this->_helper->redirector('selecionar-corretores'); } $this->_helper->redirector('index'); } public function selecionarCorretoresAction() { $form = new Form_Filtro_SelecionarCorretores(); $fields = null; $request = $this->getRequest(); $corretor = new Model_Corretor(); if( $request->isPost() ){ $corretores = $request->getPost('corretores'); if( count($corretores) > 0 ){ $ns = new Zend_Session_Namespace('comissoes_corretores_selecionadas'); $comissoes = $ns->comissoes_corretores_selecionadas; $cont = 0; if( count($comissoes) > 0 && count($corretores) > 0 ){ $comissionamento = new Model_ComissionamentoCorretor(); try { $cont = $comissionamento->exportarComissaoCorretor($corretores, $comissoes); } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'alert' => $e->getMessage() )); } } if( $cont > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Comissões exportadas com sucesso.' )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhuma comissão foi exportada.' )); } $this->_helper->redirector('exportar'); } else { $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); } } $this->view->form = $form; $this->view->corretores = $corretor->getCorretoresComissionamento($fields, "corretores.nome ASC"); } public function atualizarComissaoContratosAction() { $request = $this->getRequest(); $form = new Form_AtualizarComissaoCorretorContratos(); if( $request->isPost() ){ $fields = $request->getPost(); $form->populate($fields); $percentual = new Model_ComissionamentoCorretorPercentual(); $this->view->percentuais = $percentual->listar($fields, array( 'corretor', 'data_inicial' )); } $this->view->form = $form; } public function executarAtualizarComissoesAction() { $request = $this->getRequest(); if( $request->isPost() ){ $comissoes = $request->getPost('ck_comissoes'); $percentual = new Model_ComissionamentoCorretorPercentual(); $contrato = new Model_Contrato(); $cont = 0; foreach ( $comissoes as $c ) { $dadosPercentual = $percentual->exibir($c); if( $dadosPercentual != null ){ $dadosComissao = $dadosPercentual->findParentRow('Model_DbTable_ComissionamentoCorretor'); $result = $contrato->atualizarComissaoCorretor( $dadosComissao['corretor_id'], $dadosComissao['banco_id'], $dadosComissao['tabela_id'], $dadosComissao['convenio_id'], $dadosComissao['prazo'], $dadosPercentual['data_inicial'], $dadosPercentual['data_final'], $dadosPercentual['comissao'] ); if( $result > 0 ){ $cont++; } } } if( $cont > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Comissões aplicadas com sucesso.' )); } else { $this->_helper->flashMessenger(array( 'alert' => 'A comissão não foi aplicada a nenhum contrato.' )); } $this->_helper->redirector('atualizar-comissao-contratos'); } } public function atualizaDataFinalAction() { $request = $this->getRequest(); $result = null; if( $request->isPost() ){ $id = (int) $request->getPost('id'); $dataFinal = $request->getPost('data_final'); $model = new Model_ComissionamentoCorretorPercentual(); try { $result = $model->atualizarDataFinal($id, $dataFinal); } catch ( Exception $e ) { $this->_helper->json(array( 'alert' => $e->getMessage() )); } } $this->_helper->json(array( 'result' => ($result != null ? 1 : 0) )); } public function associarComissaoGrupoAction() { $request = $this->getRequest(); $form = new Form_ComissionamentoCorretorPorGrupo(); if( $request->isPost() ){ if( $form->isValid($request->getPost()) ){ $corretor = new Model_Corretor(); $corretores = $corretor->listar( 'grupo_comissao = ' . $request->getPost('grupo_comissao') ); $ignorar = false; $successes = $errors = $ignored = 0; foreach ( $corretores as $corretor ) { $dados = $request->getPost(); try { $dadosComissionamento = array( 'corretor_id' => $corretor->id, 'banco_id' => $dados['banco_id'], 'convenio_id' => $dados['convenio_id'], 'tabela_id' => $dados['tabela_id'], 'prazo' => $dados['prazo'], 'tipo_produto' => $dados['tipo_produto'], ); $comissionamentoCorretor = new Model_ComissionamentoCorretor($dadosComissionamento); $comissionamento = $comissionamentoCorretor->listar($dadosComissionamento); $dataInicial = new Zend_Date($dados['data_inicial'], 'dd/MM/yyyy'); $dataFinal = $dados['data_final'] ? new Zend_Date($dados['data_final'], 'dd/MM/yyyy') : null; if( $comissionamento->count() > 0 ){ $comissionamentoCorretorPercentual = new Model_ComissionamentoCorretorPercentual(); $percentuais = $comissionamentoCorretorPercentual->listar(array( 'comissionamento_id' => $comissionamento->current()->id, 'data_final' => 'null' )); if( count($percentuais) > 0 ){ foreach ( $percentuais as $percentual ) { if( $percentual['comissao'] == $dados['comissao'] ){ // Se percentual é igual ao anterior, não cria um novo, nem seta data final $ignorar = true; } else { // Se já existir, seta data final para um dia antes da data inicial do novo a ser criado $dataPercentualFinal = clone $dataInicial; $dataPercentualFinal->subDay(1); $comissionamentoCorretorPercentual->atualizarDataFinal( $percentual['id'], $dataPercentualFinal->get(Zend_Date::DATES, 'pt') ); } } } $id = $comissionamento->current()->id; } else { $id = $comissionamentoCorretor->salvar($comissionamentoCorretor); } if( !$ignorar ){ $comissionamentoPercentual = new Model_ComissionamentoCorretorPercentual(array( 'comissionamento_id' => $id, 'data_inicial' => $dataInicial->get('yyyy-MM-dd'), 'data_final' => $dataFinal ? $dataFinal->get('yyyy-MM-dd') : '', 'comissao' => $dados['comissao'], 'bonus' => $dados['bonus'], 'excluido' => 0 )); $comissionamentoPercentual->salvar($comissionamentoPercentual); $successes++; } else { $ignored++; } } catch ( Zend_Exception $e ) { $errors++; // $this->_helper->flashMessenger(array('error' => $e->getMessage())); } } if( $successes ){ $this->_helper->flashMessenger(array( 'success' => $successes > 1 ? $successes . ' comissionamentos salvos com sucesso.' : '1 comissionamento salvo com sucesso.' )); } if( $errors ){ $this->_helper->flashMessenger(array( 'error' => $errors > 1 ? $errors . ' erros ao salvar comissionamentos.' : '1 erro ao salvar comissionamento.' )); } if( $ignored ){ $this->_helper->flashMessenger(array( 'info' => $ignored > 1 ? $ignored . ' comissionamentos não precisaram ser alterados.' : '1 comissionamento não precisou ser alterado.' )); } } } $this->view->form = $form; } public function atualizarComissoesAction() { $request = $this->getRequest(); $form = new Form_AtualizarComissionamentoCorretores(); if( $request->isPost() && $form->isValid($request->getPost()) ){ if( $request->getPost('grupo_comissao') ){ $model = 'Model_ComissionamentoGrupoPercentual'; } else { $model = 'Model_ComissionamentoCorretorPercentual'; } $modelPercentual = new $model(); $fields = $request->getPost(); $fields['data_final'] = 'null'; $fields['all_corretor'] = 1; $percentuais = $modelPercentual->listar($fields); $ignorar = false; $dados = $form->getValues(); $successes = $errors = $ignored = 0; if ($percentuais) { foreach ( $percentuais as $p ) { $dataInicial = new Zend_Date($dados['data_inicial'], 'dd/MM/yyyy'); if (!$dados['substituir_existentes'] && $dataInicial->get('yyyy-MM-dd') == $p['data_inicial'] ) { $ignored++; continue; } try { Zend_Db_Table::getDefaultAdapter()->beginTransaction(); $alteracao = Zend_Locale_Format::getFloat($dados['alteracao_comissao'], array( 'precision' => 2 )); switch ( $dados['operacao'] ) { case 'A': //aumentar $comissao = $p['comissao'] + $alteracao; break; case 'D': //diminuir $comissaoCalculada = $p['comissao'] - $alteracao; $comissao = $comissaoCalculada > 0 ? $comissaoCalculada : 0; break; case 'S': //setar $comissao = $alteracao; break; case 'C': //copiar $comissao = $p['comissao']; break; } $currentPercentual = new $model($p); $dataFinal = clone $dataInicial; $dataFinal->subDay(1); if ($dataFinal->compare($currentPercentual->getDataInicial(), 'yyyy-MM-dd') < 0) { $dataFinal = new Zend_Date($currentPercentual->getDataInicial(), 'yyyy-MM-dd'); } $currentPercentual->setDataFinal($dataFinal); $dadosPercentual = [ 'comissionamento_id' => $p['comissionamento_id'], 'comissao' => $comissao, 'adiantamento' => 0.00, 'data_inicial' => $dataInicial->get('yyyy-MM-dd'), 'data_final' => null, 'base_comissao_valor' => $fields['base_comissao_valor'], 'base_comissao_adiantamento' => $fields['base_comissao_valor'], 'base_comissao_diferimento' => $fields['base_comissao_valor'], 'base_comissao_bonus' => $fields['base_comissao_valor'], 'excluido' => 0 ]; $newPercentual = new $model($dadosPercentual); $modelPercentual->salvar($currentPercentual); $modelPercentual->salvar($newPercentual); Zend_Db_Table::getDefaultAdapter()->commit(); $successes++; } catch ( Zend_Exception $e ) { Zend_Db_Table::getDefaultAdapter()->rollBack(); $this->_helper->flashMessenger(array( 'error' => $e->getMessage() )); $errors++; } } } else { $this->_helper->flashMessenger(array( 'alert' => "Dados não encontrado." )); } if( $successes ){ $this->_helper->flashMessenger(array( 'success' => $successes > 1 ? "$successes comissionamentos salvos com sucesso." : '1 comissionamento salvo com sucesso.' )); } if( $errors ){ $this->_helper->flashMessenger(array( 'error' => $errors > 1 ? "$errors erros ao salvar comissionamentos." : '1 erro ao salvar comissionamento.' )); } if( $ignored ){ $this->_helper->flashMessenger(array( 'info' => $ignored > 1 ? "$ignored comissionamentos não precisaram ser alterados." : '1 comissionamento não precisou ser alterado.' )); } } $this->view->form = $form; } public function exportarParaTabelaAction() { $comissoes = $this->getRequest()->getPost('comissoes'); $ns = new Zend_Session_Namespace('importar_comissoes'); if( !$ns->importar_comissoes ){ if( !$comissoes ){ $this->_helper->flashMessenger( array( 'alert' => 'Selecione pelo menos uma comissão.' )); $this->_helper->redirector('index'); } $ns->importar_comissoes = $comissoes; } else { $comissoes = $ns->importar_comissoes; } $this->_helper->flashMessenger(array( 'info' => count($comissoes) . ' comissões selecionadas para exportação.' )); $form = new Form_ExportarParaTabela(); $dados = $this->getRequest()->getPost(); $errors = $success = 0; if( $comissoes && isset($dados['tabela_id']) && $dados['tabela_id'] ){ if( $form->isValid($dados) ){ $comissionamentoCorretor = new Model_ComissionamentoCorretor(); $comissionamentoPercentual = new Model_ComissionamentoCorretorPercentual(); foreach ( $comissoes as $comissaoId ) { try { $comissao = $comissionamentoCorretor->exibir($comissaoId); $dadosComissao = $comissao->toArray(); $dadosComissao['tabela_id'] = $dados['tabela_id']; $dadosComissao['convenio_id'] = $dados['convenio_id']; unset($dadosComissao['id']); $id = $comissionamentoCorretor->insereSeNaoExistir($dadosComissao); $percentuais = $comissionamentoPercentual->listarPorComissionamento($comissaoId); if( !empty($percentuais) ){ foreach ( $percentuais as $percentual ) { $comissionamentoPercentual->exportarPercentual($id, $percentual, $dados); } } $success++; } catch ( Exception $e ) { $errors++; } } } } if( $success > 0 ){ $this->_helper->flashMessenger(array( 'success' => $success . ' comissões exportadas com sucesso.' )); } if( $errors > 0 ){ $this->_helper->flashMessenger(array( 'error' => $errors . ' erro(s) na importação das comissões. (Comissões já existentes).' )); } if( $success > 0 ){ $this->_helper->redirector('index'); } $this->view->form = $form; } public function exportarParaOutrosCorretoresAction() { $request = $this->getRequest(); $comissoes = $request->getPost('comissoes'); $ns = new Zend_Session_Namespace('importar_comissoes'); if( !$ns->importar_comissoes ){ if( !$comissoes ){ $this->_helper->flashMessenger( array( 'alert' => 'Selecione pelo menos uma comissão.' )); $this->_helper->redirector('index'); } $ns->importar_comissoes = $comissoes; } else { $comissoes = $ns->importar_comissoes; } $this->_helper->flashMessenger(array( 'info' => count($comissoes) . ' comissões selecionadas para exportação.' )); } public function executarExportacaoAction() { // set_time_limit(0); // ini_set('memory_limit', '298M'); $request = $this->getRequest(); $ns = new Zend_Session_Namespace('importar_comissoes'); try { if( $request->isPost() ){ $dados = $request->getPost(); $comissoes = $ns->importar_comissoes; $comissionamentoCorretor = new Model_ComissionamentoCorretor(); $comissionamentoPercentual = new Model_ComissionamentoCorretorPercentual(); for ( $i = 0; $i < count($comissoes); $i++ ) { $comissao = $comissionamentoCorretor->exibir($comissoes[$i]); $dadosComissao = $comissao->toArray(); $dadosComissao['id'] = NULL; $dadosComissao['prazo_de'] = $dados['prazo_de']; $dadosComissao['prazo_a'] = $dados['prazo_a']; $id = $comissionamentoCorretor->insereSeNaoExistir($dadosComissao); $percentuais = $comissionamentoPercentual->listarPorComissionamento($comissoes[$i]); if( !empty($percentuais) ){ foreach ( $percentuais as $percentual ) { $comissionamentoPercentual->exportarPercentual($id, $percentual, $dados); } } } } $ns->unsetAll(); $this->_helper->flashMessenger(array( 'success' => 'Importação realizada com sucesso.' )); } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'alert' => 'Não foi possível realizar a importação.' )); } $this->_helper->redirector(null, 'comissionamento-corretor'); } public function opcoesAction() { switch ( $this->getRequest()->getParam('acao') ) { case 1: $this->_forward('exportar-para-tabela', null, null, $this->getRequest()->getParams()); break; case 2: $this->_forward('delete', null, null, $this->getRequest()->getParams()); break; case 3: $this->_forward('exportar-para-outros-corretores', null, null, $this->getRequest()->getParams()); break; case 4: $this->_forward('exportar-para-outro-banco', null, null, $this->getRequest()->getParams()); break; case 5: $this->_forward('atualizar-tipo-produto', null, null, $this->getRequest()->getParams()); break; case 6: $this->_forward('atualizar-data-final', null, null, $this->getRequest()->getParams()); break; case 7: $this->_forward('setar-data-final', null, null, $this->getRequest()->getParams()); break; case 8: case 9: $this->_forward('desativar-comissoes', null, null, $this->getRequest()->getParams()); break; default: $this->_forward('index', null, null, $this->getRequest()->getParams()); break; } } public function atualizarDataFinalAction() { $comissoes = $this->getRequest()->getPost('comissoes'); $ns = new Zend_Session_Namespace('atualizar_data_final'); if( !$ns->atualizar_data_final ){ if( !$comissoes ){ $this->_helper->flashMessenger( array( 'alert' => 'Selecione pelo menos uma comissão.' )); $this->_helper->redirector('index'); } $ns->atualizar_data_final = $comissoes; } else { $comissoes = $ns->atualizar_data_final; } $this->_helper->flashMessenger(array( 'info' => count($comissoes) . ' comissões selecionadas para atualização.' )); $form = new Form_AtualizarDataFinal(); $dados = $this->getRequest()->getPost(); $errors = []; if( $comissoes && isset($dados['data_final']) && $dados['data_final'] ){ if( $form->isValid($dados) ){ $comissionamentoPercentual = new Model_ComissionamentoCorretorPercentual(); $data = new Zend_Date($dados['data_final'], Zend_Date::DATES, 'pt'); $dataFinal = $data->toString('yyyy-MM-dd'); foreach ( $comissoes as $comissaoId ) { try { $comissionamentos = $comissionamentoPercentual->listarPorComissionamento($comissaoId); // Atualiza apenas o último percentual comissionamento e ele tem que estar vazio $i = count($comissionamentos); if( $i <= 0 ){ $errors[] = "Comissionamento não trouxe percentual cadastrado"; continue; } $comissionamento = $comissionamentos[$i - 1]; if( $comissionamento->data_inicial > $dataFinal ){ $errors[] = "Data final deve ser maior que a inicial"; continue; } if (!empty($comissionamento->data_final) && $comissionamento->data_final != "0000-00-00"){ $errors[] = "Comissão já possui data final e não foi alterada"; continue; } $comissionamento->data_final = $dataFinal; $comissionamento->save(); } catch ( Zend_Exception $e ) { $errors[] = $e->getMessage(); } } if( count($errors) <= 0 ){ $this->_helper->flashMessenger(array( 'success' => "Comissões atualizadas com sucesso" )); $this->_helper->redirector('index'); } } } if( count($errors) > 0 ){ $this->_helper->flashMessenger(array( 'error' => implode("<br/>", $errors) )); $this->_helper->redirector('index'); } $this->view->form = $form; } public function exportarParaOutroBancoAction() { $comissoes = $this->getRequest()->getPost('comissoes'); $ns = new Zend_Session_Namespace('importar_comissoes'); if( !$ns->importar_comissoes ){ if( !$comissoes ){ $this->_helper->flashMessenger( array( 'alert' => 'Selecione pelo menos uma comissão.' )); $this->_helper->redirector('index'); } $ns->importar_comissoes = $comissoes; } else { $comissoes = $ns->importar_comissoes; } $this->_helper->flashMessenger(array( 'info' => count($comissoes) . ' comissões selecionadas para exportação.' )); $form = new Form_ExportarParaOutroBanco(); $dados = $this->getRequest()->getPost(); $errors = $success = 0; if( $comissoes && isset($dados['banco_id']) && $dados['banco_id'] ){ if( $form->isValid($dados) ){ $comissionamentoCorretor = new Model_ComissionamentoCorretor(); $comissionamentoPercentual = new Model_ComissionamentoCorretorPercentual(); foreach ( $comissoes as $comissaoId ) { try { $comissao = $comissionamentoCorretor->exibir($comissaoId); $dadosComissao = $comissao->toArray(); $dadosComissao['banco_id'] = $dados['banco_id']; unset($dadosComissao['id']); $id = $comissionamentoCorretor->insereSeNaoExistir($dadosComissao); $percentuais = $comissionamentoPercentual->listarPorComissionamento($comissaoId); if( !empty($percentuais) ){ foreach ( $percentuais as $percentual ) { $comissionamentoPercentual->exportarPercentual($id, $percentual, $dados); } } $success++; } catch ( Zend_Exception $e ) { $errors++; } } } } if( $success > 0 ){ $this->_helper->flashMessenger(array( 'success' => $success . ' comissões exportadas com sucesso.' )); $this->_helper->redirector('index'); } if( $errors > 0 ){ $this->_helper->flashMessenger(array( 'error' => $errors . ' erros na importação das comissões.' )); $this->_helper->redirector('index'); } $this->view->form = $form; } public function atualizarTipoProdutoAction() { $comissoes = $this->getRequest()->getPost('comissoes'); $ns = new Zend_Session_Namespace('importar_comissoes'); if( !$ns->importar_comissoes ){ if( !$comissoes ){ $this->_helper->flashMessenger( array( 'alert' => 'Selecione pelo menos uma comissão.' )); $this->_helper->redirector('index'); } $ns->importar_comissoes = $comissoes; } else { $comissoes = $ns->importar_comissoes; } $this->_helper->flashMessenger(array( 'info' => count($comissoes) . ' comissões selecionadas para exportação.' )); $form = new Form_ExportarParaOutroTipo(); $dados = $this->getRequest()->getPost(); $errors = $success = 0; if( $comissoes && isset($dados['tipo_produto']) && $dados['tipo_produto'] ){ if( $form->isValid($dados) ){ $comissionamentoDbTable = new Model_DbTable_ComissionamentoCorretor(); foreach ( $comissoes as $comissaoId ) { try { $comissionamentoCorretor = new Model_ComissionamentoCorretor(); $comissao = $comissionamentoCorretor->exibir($comissaoId); $dadosComissao = $comissao->toArray(); $comissionamentoDbTable->update(array( 'excluido' => $dadosComissao['excluido'], 'tipo_produto' => $dados['tipo_produto'] ), "id = {$dadosComissao['id']}"); $success++; } catch ( Zend_Exception $e ) { $errors++; } } } } if( $success > 0 ){ unset($ns->importar_comissoes); $this->_helper->flashMessenger(array( 'success' => $success . ' comissões atualizadas com sucesso.' )); $this->_helper->redirector('index'); } if( $errors > 0 ){ $this->_helper->flashMessenger(array( 'error' => $errors . ' erros na atualização das comissões.' )); $this->_helper->redirector('index'); } $this->view->form = $form; } public function recalculoComissaoAction() { set_time_limit(0); $request = $this->getRequest(); $form = new Form_RecalculoComissao(); $confirm = $request->getPost('confirm'); $resultErros = array(); $resultSuccess = array(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $fields = array_filter($request->getPost()); $form->populate($fields); unset($fields['btn_filtrar']); $model = new Model_Contrato(); try { $contratos = $model->getContratosRecalculoComissao($fields); $qtdRegistros = count($contratos); if( $qtdRegistros > 0 ){ $form->botaoAdicionar($qtdRegistros, $fields['possui_captador']); if( $confirm ){ $result = $model->atualizarComissaoContrato($contratos, $fields, $resultErros, $resultSuccess); if( $result['cont_success'] > 0 ){ $this->_helper->flashMessenger(array( 'success' => $result['cont_success'] . ' comissões atualizadas com sucesso.' )); } if( $result['cont_errors'] > 0 ){ $this->_helper->flashMessenger(array( 'error' => $result['cont_errors'] . ' comissões não foram atualizadas.' )); } if( $result['cont_not_att'] > 0 ){ $this->_helper->flashMessenger(array( 'alert' => $result['cont_not_att'] . ' comissões não foram atualizadas.' )); } } else { $this->_helper->flashMessenger(array( 'info' => "{$qtdRegistros} - contrato(s) localizado(s). Se tiver certeza que deseja continuar clique em aplicar." )); } } else { $this->_helper->flashMessenger(array( 'alert' => "Nenhum contrato encontrado." )); } } catch ( Exception $ex ) { $this->_helper->flashMessenger(array( 'alert' => $ex->getMessage() )); } } else { $element = $form->getElement('status_proposta'); $element->setValue(43); } $this->view->found_erros = $resultErros; $this->view->found_success = $resultSuccess; $this->view->form = $form; } public function setarDataFinalAction() { $request = $this->getRequest(); if ($request->isPost()) { try { $dt = new Zend_Date($request->getPost('data_final')); } catch (Zend_Date_Exception $e) { $this->_helper->flashMessenger(['error' => 'Data final inválida']); $this->_helper->redirector('index'); } $dataFinal = $dt->get('dd/MM/yyyy'); $comissoes = $request->getPost('comissoes'); $mensagens = array(); $sucesso = 0; foreach ($comissoes as $comissao){ $model = new Model_ComissionamentoCorretor(); $dadosComissao = $model->exibir($comissao); if ($dadosComissao) { $modelPercentual = new Model_DbTable_ComissionamentoCorretorPercentual(); $idPercentual = $modelPercentual->fetchRow("comissionamento_id = {$comissao} AND (data_final IS NULL OR data_final = '0000-00-00')", "id DESC"); if ($idPercentual) { try { $modelPercentual = new Model_ComissionamentoCorretorPercentual(); $result = $modelPercentual->atualizarDataFinal($idPercentual->id, $dataFinal); if( $result ){ $sucesso++; } } catch (Exception $e) { $mensagens[] = array('error' => $e->getMessage()); continue; } }else{ $mensagens[] = array('info' => "Comissionamento não possui registro sem data final"); } } } if ($sucesso > 0) { $this->_helper->flashMessenger(array( 'success' => "Itens alterados com sucesso. ({$sucesso})" )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum registro foi alterado.' )); } if ($mensagens) { foreach( $mensagens as $mensagem ){ $this->_helper->flashMessenger($mensagem); } } } $this->_helper->redirector('index'); } public function desativarComissoesAction() { $comissoes = $this->getRequest()->getPost('comissoes'); $acao = $this->getRequest()->getPost('acao'); $model = new Model_ComissionamentoCorretor(); $desativar = $acao == 8 ? 1 : 0; $desativadas = $model->ativarDesativarComissoes('Model_DbTable_ComissionamentoCorretor', $comissoes, $desativar); if ($desativadas) { $this->_helper->flashMessenger(['info' => $desativadas['success'] . ' comissões alteradas. ' . $desativadas['errors'] . ' não foram alteradas.']); $this->_helper->redirector('index'); } $this->_helper->flashMessenger(['error' => 'Nenhuma comissão foi alterada.']); $this->_helper->redirector('index'); } public function exportarTabelaoAction() { $request = $this->getRequest(); $model = new Model_ComissionamentoCorretor(); $comissoes = $model->listarPercValido($request->getPost(), ['comissionamento.id ASC', 'perc.id ASC', 'tipo_produto ASC'], false, 'perc.id'); if (!empty($comissoes)) { $fileName = $model->exportarComissoes($comissoes); $url = getcwd() . "/downloads/" . $fileName; header('Content-Type: text/csv'); header("Content-Disposition: attachment;filename={$fileName}"); header('Cache-Control: max-age=0'); readfile($url); unlink(getcwd() . "/downloads/" . $fileName); exit; } $this->_helper->redirector('index'); } }
💾 保存文件
← 返回文件管理器