public function update() { if ($this->isLogged()) { $page = $this->getPage(); $this->load->model('VisitorModel'); $this->load->model('AddressModel'); $this->load->model('DistrictModel'); $this->load->model('CityModel'); $this->load->model('StateModel'); $address = new AddressModel(); $district = new DistrictModel(); $city = new CityModel(); $state = new StateModel(); $visitor = new VisitorModel(); // VARIÁVEIS VÃO RECEBER TODAS AS INFORMAÇÕES ENVIADAS PELO FORMULÁRIO PARA TRABALHAR DENTRO DO CONTROLADOR $vid = $this->input->get('id'); $vstatus = $this->input->get('status'); $vmaker = $this->input->get('maker'); $vname = mb_strtoupper($this->input->get('name')); $vcpf = $this->input->get('cpf'); $vrg = $this->input->get('rg'); $vphone = $this->input->get('phone'); $vstreet = mb_strtoupper($this->input->get('street')); $vnumber = $this->input->get('number'); $vcep = $this->input->get('cep'); $vdistrict = mb_strtoupper($this->input->get('district')); $vcity = mb_strtoupper($this->input->get('city')); $vuf = $this->input->get('uf'); // *********************************************************************************************************************** // // cityaux vai receber do banco uma cidade cuja qual o estado relacionado tenha uf igual a fornecida no formulario $cityaux = null; $districtaux = null; $addressaux = null; $cityaux = $city->surecity($vcity, $vuf); if (!$cityaux) { // se esta cidade não existir, ele deve salvar ela no banco de dados $citydata['idcity'] = null; $citydata['namecity'] = $vcity; $citydata['state'] = $vuf; if ($city->save($citydata)) { // caso salve corretamente, cityaux passa a receber essa nova cidade salva $cityaux = $city->lastinsert(); } else { // caso não salve a cidade, já fica impossibilitado o restante do código, não cadastranso o visitante return false; } } // districtaux vai receber do banco um bairro cujo qual a cidade relacionada é a mesma definida em cityaux $districtaux = $district->suredistrict($vdistrict, $cityaux['idcity']); if (!$districtaux) { // se este bairro não existir, deve ser criado $districtdata['iddistrict'] = NULL; $districtdata['namedistrict'] = $vdistrict; $districtdata['city'] = $cityaux['idcity']; if ($district->save($districtdata)) { // caso salvo corretamente, districtaux recebe o novo bairro salvo $districtaux = $district->lastinsert(); } else { // caso não salve o bairro, já fica impossibilitado o restante do código, não cadastranso o visitante return false; } } // COM CIDADE E BAIRRO DEFINIDAS, AGORA É HORA DE SALVAR O ENDEREÇO // PARA CADA NOVO USUÁRIO, UM NOVO ENDEREÇO DEVE SER SALVO $visitoraux = $visitor->search($vid); $addressaux = $address->search($visitoraux['address']); $addressdata['idaddress'] = $addressaux['idaddress']; $addressdata['street'] = $vstreet; $addressdata['number'] = $vnumber; $addressdata['cep'] = $vcep; $addressdata['district'] = $districtaux['iddistrict']; $address->update($addressdata); $visitordata['id'] = $vid; $visitordata['name'] = $vname; $visitordata['cpf'] = $vcpf; $visitordata['rg'] = $vrg; $visitordata['phone'] = $vphone; $visitordata['address'] = $addressaux['idaddress']; $visitordata['maker'] = $vmaker; $visitordata['status'] = $vstatus; if ($visitor->update($visitordata)) { if ($this->session->userdata('incourse') === TRUE) { $current = array("id" => 4, "page" => "user"); $page = array("current" => $current); $this->load->view('template/user/header', $page); $delivery = $visitor->searchforcpf($vcpf); $msg = array("visitors" => $delivery); $this->load->view('user/newloan', $msg); } else { $this->load->view('template/user/header', $page); $savesuccess = array("id" => "1", "class" => "success", "message" => "Cadastro atualizado com sucesso!"); $delivery = $visitor->searchforcpf($vcpf); $msg = array("visitors" => $delivery, "savesuccess" => $savesuccess); $this->load->view('user/visitor', $msg); } $this->load->view('template/public/footer'); } else { return false; } } }