diff --git a/CHANGELOG.md b/CHANGELOG.md index 67f07a0ae..bf87552e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ Todas as alterações serão documentadas neste arquivo Formato baseado em [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), e [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [3.10.0] - 2019-10-08 + +### Added +- Adicionando anotações na OS. [@RamonSilva20](https://github.com/RamonSilva20) + ## [3.9.0] - 2019-10-05 ### Added diff --git a/README.md b/README.md index bcc6bb2f4..77c4d77ca 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@  - +    diff --git a/application/config/config.php b/application/config/config.php index 45009876e..6403bef63 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -1,7 +1,7 @@ array(array( - 'field'=>'nomeCliente', - 'label'=>'Nome', - 'rules'=>'required|trim' - ), - array( - 'field'=>'documento', - 'label'=>'CPF/CNPJ', - 'rules'=>'required|trim' - ), - array( - 'field'=>'telefone', - 'label'=>'Telefone', - 'rules'=>'required|trim' - ), - array( - 'field'=>'email', - 'label'=>'Email', - 'rules'=>'required|trim|valid_email' - ), - array( - 'field'=>'rua', - 'label'=>'Rua', - 'rules'=>'required|trim' - ), - array( - 'field'=>'numero', - 'label'=>'Número', - 'rules'=>'required|trim' - ), - array( - 'field'=>'bairro', - 'label'=>'Bairro', - 'rules'=>'required|trim' - ), - array( - 'field'=>'cidade', - 'label'=>'Cidade', - 'rules'=>'required|trim' - ), - array( - 'field'=>'estado', - 'label'=>'Estado', - 'rules'=>'required|trim' - ), - array( - 'field'=>'cep', - 'label'=>'CEP', - 'rules'=>'required|trim' - )) - , - 'servicos' => array(array( - 'field'=>'nome', - 'label'=>'Nome', - 'rules'=>'required|trim' - ), - array( - 'field'=>'descricao', - 'label'=>'', - 'rules'=>'trim' - ), - array( - 'field'=>'preco', - 'label'=>'', - 'rules'=>'required|trim' - )) - , - 'produtos' => array(array( - 'field'=>'descricao', - 'label'=>'', - 'rules'=>'required|trim' - ), - array( - 'field'=>'unidade', - 'label'=>'Unidade', - 'rules'=>'required|trim' - ), - array( - 'field'=>'precoCompra', - 'label'=>'Preo de Compra', - 'rules'=>'required|trim' - ), - array( - 'field'=>'precoVenda', - 'label'=>'Preo de Venda', - 'rules'=>'required|trim' - ), - array( - 'field'=>'estoque', - 'label'=>'Estoque', - 'rules'=>'required|trim' - ), - array( - 'field'=>'estoqueMinimo', - 'label'=>'Estoque Mnimo', - 'rules'=>'trim' - )) - , - 'usuarios' => array(array( - 'field'=>'nome', - 'label'=>'Nome', - 'rules'=>'required|trim' - ), - array( - 'field'=>'rg', - 'label'=>'RG', - 'rules'=>'required|trim' - ), - array( - 'field'=>'cpf', - 'label'=>'CPF', - 'rules'=>'required|trim|is_unique[usuarios.cpf]' - ), - array( - 'field'=>'rua', - 'label'=>'Rua', - 'rules'=>'required|trim' - ), - array( - 'field'=>'numero', - 'label'=>'Numero', - 'rules'=>'required|trim' - ), - array( - 'field'=>'bairro', - 'label'=>'Bairro', - 'rules'=>'required|trim' - ), - array( - 'field'=>'cidade', - 'label'=>'Cidade', - 'rules'=>'required|trim' - ), - array( - 'field'=>'estado', - 'label'=>'Estado', - 'rules'=>'required|trim' - ), - array( - 'field'=>'email', - 'label'=>'Email', - 'rules'=>'required|trim|valid_email|is_unique[usuarios.email]' - ), - array( - 'field'=>'senha', - 'label'=>'Senha', - 'rules'=>'required|trim' - ), - array( - 'field'=>'telefone', - 'label'=>'Telefone', - 'rules'=>'required|trim' - ), - array( - 'field'=>'situacao', - 'label'=>'Situacao', - 'rules'=>'required|trim' - )) - , - 'os' => array(array( - 'field'=>'dataInicial', - 'label'=>'DataInicial', - 'rules'=>'required|trim' - ), - array( - 'field'=>'dataFinal', - 'label'=>'DataFinal', - 'rules'=>'trim|required' - ), - array( - 'field'=>'garantia', - 'label'=>'Garantia', - 'rules'=>'trim' - ), - array( - 'field'=>'termoGarantia', - 'label'=>'Termo Garantia', - 'rules'=>'trim' - ), - array( - 'field'=>'descricaoProduto', - 'label'=>'DescricaoProduto', - 'rules'=>'trim' - ), - array( - 'field'=>'defeito', - 'label'=>'Defeito', - 'rules'=>'trim' - ), - array( - 'field'=>'status', - 'label'=>'Status', - 'rules'=>'required|trim' - ), - array( - 'field'=>'observacoes', - 'label'=>'Observacoes', - 'rules'=>'trim' - ), - array( - 'field'=>'clientes_id', - 'label'=>'clientes', - 'rules'=>'trim|required' - ), - array( - 'field'=>'usuarios_id', - 'label'=>'usuarios_id', - 'rules'=>'trim|required' - ), - array( - 'field'=>'laudoTecnico', - 'label'=>'Laudo Tecnico', - 'rules'=>'trim' - )) + array(array( - 'field'=>'nomeTipo', - 'label'=>'NomeTipo', - 'rules'=>'required|trim' - ), - array( - 'field'=>'situacao', - 'label'=>'Situacao', - 'rules'=>'required|trim' - )) +$config = - , - 'receita' => array(array( - 'field'=>'descricao', - 'label'=>'Descrição', - 'rules'=>'required|trim' - ), - array( - 'field'=>'valor', - 'label'=>'Valor', - 'rules'=>'required|trim' - ), - array( - 'field'=>'vencimento', - 'label'=>'Data Vencimento', - 'rules'=>'required|trim' - ), - - array( - 'field'=>'cliente', - 'label'=>'Cliente', - 'rules'=>'required|trim' - ), - array( - 'field'=>'tipo', - 'label'=>'Tipo', - 'rules'=>'required|trim' - )) - , - 'despesa' => array(array( - 'field'=>'descricao', - 'label'=>'Descrição', - 'rules'=>'required|trim' - ), - array( - 'field'=>'valor', - 'label'=>'Valor', - 'rules'=>'required|trim' - ), - array( - 'field'=>'vencimento', - 'label'=>'Data Vencimento', - 'rules'=>'required|trim' - ), - array( - 'field'=>'fornecedor', - 'label'=>'Fornecedor', - 'rules'=>'required|trim' - ), - array( - 'field'=>'tipo', - 'label'=>'Tipo', - 'rules'=>'required|trim' - )) - , - 'garantias' => array(array( - 'field'=>'dataGarantia', - 'label'=>'dataGarantia', - 'rules'=>'trim' - ), - array( - 'field'=>'usuarios_id', - 'label'=>'usuarios_id', - 'rules'=>'trim' - ), - array( - 'field'=>'refGarantia', - 'label'=>'refGarantia', - 'rules'=>'trim' - ), - array( - 'field'=>'textoGarantia', - 'label'=>'textoGarantia', - 'rules'=>'required|trim' - )) - , - 'vendas' => array(array( +array('clientes' => array(array( + 'field' => 'nomeCliente', + 'label' => 'Nome', + 'rules' => 'required|trim', +), + array( + 'field' => 'documento', + 'label' => 'CPF/CNPJ', + 'rules' => 'required|trim', + ), + array( + 'field' => 'telefone', + 'label' => 'Telefone', + 'rules' => 'required|trim', + ), + array( + 'field' => 'email', + 'label' => 'Email', + 'rules' => 'required|trim|valid_email', + ), + array( + 'field' => 'rua', + 'label' => 'Rua', + 'rules' => 'required|trim', + ), + array( + 'field' => 'numero', + 'label' => 'Número', + 'rules' => 'required|trim', + ), + array( + 'field' => 'bairro', + 'label' => 'Bairro', + 'rules' => 'required|trim', + ), + array( + 'field' => 'cidade', + 'label' => 'Cidade', + 'rules' => 'required|trim', + ), + array( + 'field' => 'estado', + 'label' => 'Estado', + 'rules' => 'required|trim', + ), + array( + 'field' => 'cep', + 'label' => 'CEP', + 'rules' => 'required|trim', + )) + , + 'servicos' => array(array( + 'field' => 'nome', + 'label' => 'Nome', + 'rules' => 'required|trim', + ), + array( + 'field' => 'descricao', + 'label' => '', + 'rules' => 'trim', + ), + array( + 'field' => 'preco', + 'label' => '', + 'rules' => 'required|trim', + )) + , + 'produtos' => array(array( + 'field' => 'descricao', + 'label' => '', + 'rules' => 'required|trim', + ), + array( + 'field' => 'unidade', + 'label' => 'Unidade', + 'rules' => 'required|trim', + ), + array( + 'field' => 'precoCompra', + 'label' => 'Preo de Compra', + 'rules' => 'required|trim', + ), + array( + 'field' => 'precoVenda', + 'label' => 'Preo de Venda', + 'rules' => 'required|trim', + ), + array( + 'field' => 'estoque', + 'label' => 'Estoque', + 'rules' => 'required|trim', + ), + array( + 'field' => 'estoqueMinimo', + 'label' => 'Estoque Mnimo', + 'rules' => 'trim', + )) + , + 'usuarios' => array(array( + 'field' => 'nome', + 'label' => 'Nome', + 'rules' => 'required|trim', + ), + array( + 'field' => 'rg', + 'label' => 'RG', + 'rules' => 'required|trim', + ), + array( + 'field' => 'cpf', + 'label' => 'CPF', + 'rules' => 'required|trim|is_unique[usuarios.cpf]', + ), + array( + 'field' => 'rua', + 'label' => 'Rua', + 'rules' => 'required|trim', + ), + array( + 'field' => 'numero', + 'label' => 'Numero', + 'rules' => 'required|trim', + ), + array( + 'field' => 'bairro', + 'label' => 'Bairro', + 'rules' => 'required|trim', + ), + array( + 'field' => 'cidade', + 'label' => 'Cidade', + 'rules' => 'required|trim', + ), + array( + 'field' => 'estado', + 'label' => 'Estado', + 'rules' => 'required|trim', + ), + array( + 'field' => 'email', + 'label' => 'Email', + 'rules' => 'required|trim|valid_email|is_unique[usuarios.email]', + ), + array( + 'field' => 'senha', + 'label' => 'Senha', + 'rules' => 'required|trim', + ), + array( + 'field' => 'telefone', + 'label' => 'Telefone', + 'rules' => 'required|trim', + ), + array( + 'field' => 'situacao', + 'label' => 'Situacao', + 'rules' => 'required|trim', + )) + , + 'os' => array(array( + 'field' => 'dataInicial', + 'label' => 'DataInicial', + 'rules' => 'required|trim', + ), + array( + 'field' => 'dataFinal', + 'label' => 'DataFinal', + 'rules' => 'trim|required', + ), + array( + 'field' => 'garantia', + 'label' => 'Garantia', + 'rules' => 'trim', + ), + array( + 'field' => 'termoGarantia', + 'label' => 'Termo Garantia', + 'rules' => 'trim', + ), + array( + 'field' => 'descricaoProduto', + 'label' => 'DescricaoProduto', + 'rules' => 'trim', + ), + array( + 'field' => 'defeito', + 'label' => 'Defeito', + 'rules' => 'trim', + ), + array( + 'field' => 'status', + 'label' => 'Status', + 'rules' => 'required|trim', + ), + array( + 'field' => 'observacoes', + 'label' => 'Observacoes', + 'rules' => 'trim', + ), + array( + 'field' => 'clientes_id', + 'label' => 'clientes', + 'rules' => 'trim|required', + ), + array( + 'field' => 'usuarios_id', + 'label' => 'usuarios_id', + 'rules' => 'trim|required', + ), + array( + 'field' => 'laudoTecnico', + 'label' => 'Laudo Tecnico', + 'rules' => 'trim', + )) - 'field' => 'dataVenda', - 'label' => 'Data da Venda', - 'rules' => 'required|trim' - ), - array( - 'field'=>'clientes_id', - 'label'=>'clientes', - 'rules'=>'trim|required' - ), - array( - 'field'=>'usuarios_id', - 'label'=>'usuarios_id', - 'rules'=>'trim|required' - )) - ); + , + 'tiposUsuario' => array(array( + 'field' => 'nomeTipo', + 'label' => 'NomeTipo', + 'rules' => 'required|trim', + ), + array( + 'field' => 'situacao', + 'label' => 'Situacao', + 'rules' => 'required|trim', + )) + + , + 'receita' => array(array( + 'field' => 'descricao', + 'label' => 'Descrição', + 'rules' => 'required|trim', + ), + array( + 'field' => 'valor', + 'label' => 'Valor', + 'rules' => 'required|trim', + ), + array( + 'field' => 'vencimento', + 'label' => 'Data Vencimento', + 'rules' => 'required|trim', + ), + + array( + 'field' => 'cliente', + 'label' => 'Cliente', + 'rules' => 'required|trim', + ), + array( + 'field' => 'tipo', + 'label' => 'Tipo', + 'rules' => 'required|trim', + )) + , + 'despesa' => array(array( + 'field' => 'descricao', + 'label' => 'Descrição', + 'rules' => 'required|trim', + ), + array( + 'field' => 'valor', + 'label' => 'Valor', + 'rules' => 'required|trim', + ), + array( + 'field' => 'vencimento', + 'label' => 'Data Vencimento', + 'rules' => 'required|trim', + ), + array( + 'field' => 'fornecedor', + 'label' => 'Fornecedor', + 'rules' => 'required|trim', + ), + array( + 'field' => 'tipo', + 'label' => 'Tipo', + 'rules' => 'required|trim', + )) + , + 'garantias' => array(array( + 'field' => 'dataGarantia', + 'label' => 'dataGarantia', + 'rules' => 'trim', + ), + array( + 'field' => 'usuarios_id', + 'label' => 'usuarios_id', + 'rules' => 'trim', + ), + array( + 'field' => 'refGarantia', + 'label' => 'refGarantia', + 'rules' => 'trim', + ), + array( + 'field' => 'textoGarantia', + 'label' => 'textoGarantia', + 'rules' => 'required|trim', + )) + , + 'vendas' => array(array( + + 'field' => 'dataVenda', + 'label' => 'Data da Venda', + 'rules' => 'required|trim', + ), + array( + 'field' => 'clientes_id', + 'label' => 'clientes', + 'rules' => 'trim|required', + ), + array( + 'field' => 'usuarios_id', + 'label' => 'usuarios_id', + 'rules' => 'trim|required', + )), + 'anotacoes_os' => array(array( + 'field' => 'anotacao', + 'label' => 'Anotação', + 'rules' => 'required|trim', + ), + array( + 'field' => 'os_id', + 'label' => 'ID Os', + 'rules' => 'trim|required|integer', + )), + +); diff --git a/application/controllers/Os.php b/application/controllers/Os.php index fdea58fa8..c7c1073c7 100644 --- a/application/controllers/Os.php +++ b/application/controllers/Os.php @@ -280,6 +280,7 @@ public function editar() $this->data['produtos'] = $this->os_model->getProdutos($this->uri->segment(3)); $this->data['servicos'] = $this->os_model->getServicos($this->uri->segment(3)); $this->data['anexos'] = $this->os_model->getAnexos($this->uri->segment(3)); + $this->data['anotacoes'] = $this->os_model->getAnotacoes($this->uri->segment(3)); $this->data['view'] = 'os/editarOs'; $this->load->view('tema/topo', $this->data); } @@ -365,7 +366,7 @@ public function enviar_email() if ($enviouEmail) { $this->session->set_flashdata('success', 'O email está sendo processado e será enviado em breve para o cliente.'); - log_info('Enviou e-mail para o cliente: '.$this->data['result']->nomeCliente. '. E-mail: '. $this->data['result']->email); + log_info('Enviou e-mail para o cliente: ' . $this->data['result']->nomeCliente . '. E-mail: ' . $this->data['result']->email); redirect(site_url('os')); } else { $this->session->set_flashdata('error', 'Ocorreu um erro ao enviar e-mail para o cliente.'); @@ -750,4 +751,38 @@ private function enviarOsPorEmail($idOs, $remetentes, $assunto) return true; } + + public function adicionarAnotacao() + { + $this->load->library('form_validation'); + if ($this->form_validation->run('anotacoes_os') == false) { + echo json_encode(validation_errors()); + } else { + $data = array( + 'anotacao' => $this->input->post('anotacao'), + 'data_hora' => date('Y-m-d H:i:s'), + 'os_id' => $this->input->post('os_id'), + ); + + if ($this->os_model->add('anotacoes_os', $data) == true) { + + log_info('Adicionou anotação a uma OS.'); + echo json_encode(array('result' => true)); + } else { + echo json_encode(array('result' => false)); + } + } + } + + public function excluirAnotacao() + { + $id = $this->input->post('idAnotacao'); + if ($this->os_model->delete('anotacoes_os', 'idAnotacoes', $id) == true) { + + log_info('Removeu anotação de uma OS.'); + echo json_encode(array('result' => true)); + } else { + echo json_encode(array('result' => false)); + } + } } diff --git a/application/models/Os_model.php b/application/models/Os_model.php index 18e0ec70b..4866a4ecb 100644 --- a/application/models/Os_model.php +++ b/application/models/Os_model.php @@ -272,4 +272,11 @@ public function getAnexos($os) $this->db->where('os_id', $os); return $this->db->get('anexos')->result(); } + + public function getAnotacoes($os) + { + $this->db->where('os_id', $os); + $this->db->order_by('idAnotacoes', 'desc'); + return $this->db->get('anotacoes_os')->result(); + } } diff --git a/application/views/os/editarOs.php b/application/views/os/editarOs.php index c9206a2c7..4b00966fc 100644 --- a/application/views/os/editarOs.php +++ b/application/views/os/editarOs.php @@ -31,6 +31,7 @@
Anotação | +Data/Hora | +Ações | +' . $a->anotacao . ' | '; + echo '' . date('d/m/Y H:i:s', strtotime($a->data_hora)) . ' | '; + echo ''; + echo ''; + } + if(!$anotacoes){ + echo ' |
---|---|---|
Nenhuma anotação cadastrada |