I'm having a very strange problem and I believe you can help me.
I have a web system to control the company, where it has the customer registration, the products, etc.
The system is in php + codeigniter.
In the Client Controller, the code is this:
<?php
class Clientes extends CI_Controller {
function __construct() {
parent::__construct();
if((!$this->session->userdata('session_id')) || (!$this->session->userdata('logado'))){
redirect('mapos/login');
}
$this->load->helper(array('codegen_helper'));
$this->load->model('clientes_model','',TRUE);
$this->data['menuClientes'] = 'clientes';
}
function index(){
$this->gerenciar();
}
function gerenciar(){
if(!$this->permission->checkPermission($this->session->userdata('permissao'),'vCliente')){
$this->session->set_flashdata('error','Você não tem permissão para visualizar clientes.');
redirect(base_url());
}
$this->load->library('table');
$this->load->library('pagination');
$config['base_url'] = base_url().'index.php/clientes/gerenciar/';
$config['total_rows'] = $this->clientes_model->count('clientes');
$config['per_page'] = 10;
$config['next_link'] = 'Próxima';
$config['prev_link'] = 'Anterior';
$config['full_tag_open'] = '<div class="pagination alternate"><ul>';
$config['full_tag_close'] = '</ul></div>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li><a style="color: #2D335B"><b>';
$config['cur_tag_close'] = '</b></a></li>';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['first_link'] = 'Primeira';
$config['last_link'] = 'Última';
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$this->pagination->initialize($config);
$this->data['results'] = $this->clientes_model->get('clientes','idClientes,nomeCliente,documento,docrg,DataNasc,telefone,celular,email,rua,numero,ptoref,bairro,cidade,estado,cep','',$config['per_page'],$this->uri->segment(3));
$this->data['view'] = 'clientes/clientes';
$this->load->view('tema/topo',$this->data);
}
function adicionar() {
if(!$this->permission->checkPermission($this->session->userdata('permissao'),'aCliente')){
$this->session->set_flashdata('error','Você não tem permissão para adicionar clientes.');
redirect(base_url());
}
$this->load->library('form_validation');
$this->data['custom_error'] = '';
if ($this->form_validation->run('clientes') == false) {
$this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
} else {
$data = array(
'nomeCliente' => set_value('nomeCliente'),
'documento' => set_value('documento'),
'docrg' => set_value('docrg'),
'DataNasc' => set_value('DataNasc'),
'telefone' => set_value('telefone'),
'celular' => set_value('celular'),
'email' => set_value('email'),
'rua' => set_value('rua'),
'numero' => set_value('numero'),
'ptoref' => set_value('ptoref'),
'bairro' => set_value('bairro'),
'cidade' => set_value('cidade'),
'estado' => set_value('estado'),
'cep' => set_value('cep'),
'dataCadastro' => date('d-m-Y')
);
if ($this->clientes_model->add('clientes', $data) == TRUE) {
$this->session->set_flashdata('success','Cliente adicionado com sucesso!');
redirect(base_url() . 'index.php/clientes/adicionar/');
} else {
$this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';
}
}
$this->data['view'] = 'clientes/adicionarCliente';
$this->load->view('tema/topo', $this->data);
}
function editar() {
if(!$this->permission->checkPermission($this->session->userdata('permissao'),'eCliente')){
$this->session->set_flashdata('error','Você não tem permissão para editar clientes.');
redirect(base_url());
}
$this->load->library('form_validation');
$this->data['custom_error'] = '';
if ($this->form_validation->run('clientes') == false) {
$this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
} else {
$data = array(
'nomeCliente' => $this->input->post('nomeCliente'),
'documento' => $this->input->post('documento'),
'docrg' => $this->input->post('docrg'),
'DataNasc' => $this->input->post('DataNasc'),
'telefone' => $this->input->post('telefone'),
'celular' => $this->input->post('celular'),
'email' => $this->input->post('email'),
'rua' => $this->input->post('rua'),
'numero' => $this->input->post('numero'),
'ptoref' => $this->input->post('ptoref'),
'bairro' => $this->input->post('bairro'),
'cidade' => $this->input->post('cidade'),
'estado' => $this->input->post('estado'),
'cep' => $this->input->post('cep')
);
if ($this->clientes_model->edit('clientes', $data, 'idClientes', $this->input->post('idClientes')) == TRUE) {
$this->session->set_flashdata('success','Cliente editado com sucesso!');
redirect(base_url() . 'index.php/clientes/editar/'.$this->input->post('idClientes'));
} else {
$this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro</p></div>';
}
}
$this->data['result'] = $this->clientes_model->getById($this->uri->segment(3));
$this->data['view'] = 'clientes/editarCliente';
$this->load->view('tema/topo', $this->data);
}
public function visualizar(){
if(!$this->permission->checkPermission($this->session->userdata('permissao'),'vCliente')){
$this->session->set_flashdata('error','Você não tem permissão para visualizar clientes.');
redirect(base_url());
}
$this->data['custom_error'] = '';
$this->data['result'] = $this->clientes_model->getById($this->uri->segment(3));
$this->data['results'] = $this->clientes_model->getOsByCliente($this->uri->segment(3));
$this->data['view'] = 'clientes/visualizar';
$this->load->view('tema/topo', $this->data);
}
public function excluir(){
if(!$this->permission->checkPermission($this->session->userdata('permissao'),'dCliente')){
$this->session->set_flashdata('error','Você não tem permissão para excluir clientes.');
redirect(base_url());
}
$id = $this->input->post('id');
if ($id == null){
$this->session->set_flashdata('error','Erro ao tentar excluir cliente.');
redirect(base_url().'index.php/clientes/gerenciar/');
}
//$id = 2;
// excluindo OSs vinculadas ao cliente
$this->db->where('clientes_id', $id);
$os = $this->db->get('os')->result();
if($os != null){
foreach ($os as $o) {
$this->db->where('os_id', $o->idOs);
$this->db->delete('servicos_os');
$this->db->where('os_id', $o->idOs);
$this->db->delete('produtos_os');
$this->db->where('idOs', $o->idOs);
$this->db->delete('os');
}
}
// excluindo Vendas vinculadas ao cliente
$this->db->where('clientes_id', $id);
$vendas = $this->db->get('vendas')->result();
if($vendas != null){
foreach ($vendas as $v) {
$this->db->where('vendas_id', $v->idVendas);
$this->db->delete('itens_de_vendas');
$this->db->where('idVendas', $v->idVendas);
$this->db->delete('vendas');
}
}
//excluindo receitas vinculadas ao cliente
$this->db->where('clientes_id', $id);
$this->db->delete('lancamentos');
$this->clientes_model->delete('clientes','idClientes',$id);
$this->session->set_flashdata('success','Cliente excluido com sucesso!');
redirect(base_url().'index.php/clientes/gerenciar/');
}
}
No Customer Models This is the code:
<?php
class Clientes_model extends CI_Model {
function __construct() {
parent::__construct();
}
function get($table,$fields,$where='',$perpage=0,$start=0,$one=false,$array='array'){
$this->db->select($fields);
$this->db->from($table);
$this->db->order_by('idClientes','desc');
$this->db->limit($perpage,$start);
if($where){
$this->db->where($where);
}
$query = $this->db->get();
$result = !$one ? $query->result() : $query->row();
return $result;
}
function getById($id){
$this->db->where('idClientes',$id);
$this->db->limit(1);
return $this->db->get('clientes')->row();
}
function add($table,$data){
$this->db->insert($table, $data);
if ($this->db->affected_rows() == '1')
{
return TRUE;
}
return FALSE;
}
function edit($table,$data,$fieldID,$ID){
$this->db->where($fieldID,$ID);
$this->db->update($table, $data);
if ($this->db->affected_rows() >= 0)
{
return TRUE;
}
return FALSE;
}
function delete($table,$fieldID,$ID){
$this->db->where($fieldID,$ID);
$this->db->delete($table);
if ($this->db->affected_rows() == '1')
{
return TRUE;
}
return FALSE;
}
function count($table) {
return $this->db->count_all($table);
}
public function getOsByCliente($id){
$this->db->where('clientes_id',$id);
$this->db->order_by('idOs','desc');
$this->db->limit(50);
return $this->db->get('os')->result();
}
}
And in Views AddClient this is the code:
<div class="row-fluid" style="margin-top:0">
<div class="span12">
<div class="widget-box">
<div class="widget-title">
<span class="icon">
<i class="icon-user"></i>
</span>
<h5>Cadastro de Cliente</h5>
</div>
<div class="widget-content nopadding">
<?php if ($custom_error != '') {
echo '<div class="alert alert-danger">' . $custom_error . '</div>';
} ?>
<form action="<?php echo current_url(); ?>" id="formCliente" method="post" class="form-horizontal" >
<div class="control-group">
<label for="nomeCliente" class="control-label">Nome<span class="required">*</span></label>
<div class="controls">
<input id="nomeCliente" type="text" name="nomeCliente" value="<?php echo set_value('nomeCliente'); ?>" />
</div>
</div>
<div class="control-group">
<label for="documento" class="control-label">CPF/CNPJ<span class="required">*</span></label>
<div class="controls">
<input id="documento" type="text" name="documento" value="<?php echo set_value('documento'); ?>" />
</div>
</div>
<div class="control-group">
<label for="docrg" class="control-label">R.G.<span class="required">*</span></label>
<div class="controls">
<input id="docrg" type="text" name="docrg" value="<?php echo set_value('docrg'); ?>" />
</div>
</div>
<div class="control-group">
<label for="DataNasc" class="control-label">Data de Nascimento<span class="required">*</span></label>
<div class="controls">
<input id="DataNasc" type="text" name="DataNasc" value="<?php echo set_value('DataNasc'); ?>" />
</div>
</div>
<div class="control-group">
<label for="telefone" class="control-label">Telefone<span class="required">*</span></label>
<div class="controls">
<input id="telefone" type="text" name="telefone" value="<?php echo set_value('telefone'); ?>" />
</div>
</div>
<div class="control-group">
<label for="celular" class="control-label">Telefone 2<span class="required">*</span></label>
<div class="controls">
<input id="celular" type="text" name="celular" value="<?php echo set_value('celular'); ?>" />
</div>
</div>
<div class="control-group">
<label for="email" class="control-label">Email<span class="required">*</span></label>
<div class="controls">
<input id="email" type="text" name="email" value="<?php echo set_value('email'); ?>" />
</div>
</div>
<div class="control-group" class="control-label">
<label for="rua" class="control-label">Rua<span class="required">*</span></label>
<div class="controls">
<input id="rua" type="text" name="rua" value="<?php echo set_value('rua'); ?>" />
</div>
</div>
<div class="control-group">
<label for="numero" class="control-label">Número<span class="required">*</span></label>
<div class="controls">
<input id="numero" type="text" name="numero" value="<?php echo set_value('numero'); ?>" />
</div>
</div>
<div class="control-group" class="control-label">
<label for="ptoref" class="control-label">Ponto de Referência<span class="required">*</span></label>
<div class="controls">
<input id="ptoref" type="text" name="ptoref" value="<?php echo set_value('ptoref'); ?>" />
</div>
</div>
<div class="control-group" class="control-label">
<label for="bairro" class="control-label">Bairro<span class="required">*</span></label>
<div class="controls">
<input id="bairro" type="text" name="bairro" value="<?php echo set_value('bairro'); ?>" />
</div>
</div>
<div class="control-group" class="control-label">
<label for="cidade" class="control-label">Cidade<span class="required">*</span></label>
<div class="controls">
<input id="cidade" type="text" name="cidade" value="<?php echo set_value('cidade'); ?>" />
</div>
</div>
<div class="control-group" class="control-label">
<label for="estado" class="control-label">Estado<span class="required">*</span></label>
<div class="controls">
<input id="estado" type="text" name="estado" value="<?php echo set_value('estado'); ?>" />
</div>
</div>
<div class="control-group" class="control-label">
<label for="cep" class="control-label">CEP<span class="required">*</span></label>
<div class="controls">
<input id="cep" type="text" name="cep" value="<?php echo set_value('cep'); ?>" />
</div>
</div>
<div class="form-actions">
<div class="span12">
<div class="span6 offset3">
<button type="submit" class="btn btn-success"><i class="icon-plus icon-white"></i> Adicionar</button>
<a href="<?php echo base_url() ?>index.php/clientes" id="" class="btn"><i class="icon-arrow-left"></i> Voltar</a>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<script src="<?php echo base_url()?>js/jquery.validate.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#formCliente').validate({
rules :{
nomeCliente:{ required: true},
documento:{ required: true},
docrg:{ required: true},
DataNasc:{ required: true},
telefone:{ required: true},
email:{ required: true},
rua:{ required: true},
numero:{ required: true},
bairro:{ required: true},
cidade:{ required: true},
estado:{ required: true},
cep:{ required: true}
},
messages:{
nomeCliente :{ required: 'Campo Requerido.'},
documento :{ required: 'Campo Requerido.'},
docrg :{ required: 'Campo Requerido.'},
DataNasc :{ required: 'Campo Requerido.'},
telefone:{ required: 'Campo Requerido.'},
email:{ required: 'Campo Requerido.'},
rua:{ required: 'Campo Requerido.'},
numero:{ required: 'Campo Requerido.'},
bairro:{ required: 'Campo Requerido.'},
cidade:{ required: 'Campo Requerido.'},
estado:{ required: 'Campo Requerido.'},
cep:{ required: 'Campo Requerido.'}
},
errorClass: "help-inline",
errorElement: "span",
highlight:function(element, errorClass, validClass) {
$(element).parents('.control-group').addClass('error');
},
unhighlight: function(element, errorClass, validClass) {
$(element).parents('.control-group').removeClass('error');
$(element).parents('.control-group').addClass('success');
}
});
});
</script>
Of all this, the only thing that happens is that it is not recording in the bank the registers RG, Phone 2 (cellular) and Point of reference (ptoref).
And already in the file EditaCliente (in the views), when I reinsert the missing data, it records everything perfectly. Of course I do not want to spend my entire life adding a client and editing it again, just add and that's it.
What could be wrong, because I did not find any errors.
This is the customer table. And apparently everything is the same.