Esempio n. 1
0
 public function edit($id)
 {
     //dohvat iz tablice
     $this->data['service_2'] = $this->service_m->get($id, TRUE);
     //count($this->data['user']) || $this->data['errors'][] = 'User could not be found'; //ako korisnik nije pronađen, dodati error poruku u error array
     $this->data['options'] = array('U TIJEKU', 'GOTOVO');
     //pravila forme
     //$rules = $this->service_m->rules; //dohvat varijable 'rules' (koja je array) iz 'user_m'
     $this->form_validation->set_rules($this->rules);
     //procesiranje forme
     if ($this->form_validation->run() == TRUE) {
         $podaci = $this->service_m->array_from_post(array('kraj_servisa', 'status', 'komentar'));
         //$data['password'] = $this->user_m->hash(data['password']);
         $this->data['options'] = array('U TIJEKU', 'GOTOVO');
         //datum format
         $podaci['kraj_servisa'] = dateform_($podaci['kraj_servisa']);
         $id_servisa = $this->service_m->save($podaci, $id);
         //zapis statusa servisa u tablicu 'mechanics'
         $mechanics_array = array('status_servisa' => $podaci['status']);
         //
         $id_serv = array('servis_mehanicar' => $id_servisa);
         $mechanic_row = $this->mechanic_m->get_by($id_serv, TRUE);
         $this->mechanic_m->save($mechanics_array, $mechanic_row->id);
         redirect('mech/service');
     }
     //load view-a
     $this->data['subview'] = 'mech/service/edit';
     //view
     $this->data['subview_2'] = 'mech/menu/index';
     $this->load->view('login/_layout_main', $this->data);
 }
Esempio n. 2
0
 public function pretrazivanje_1()
 {
     $vrijednost = $this->array_from_post(array('vrijednost_search'));
     $search_array = $vrijednost['vrijednost_search'];
     $ime_servisa_korisnika = array('id' => $search_array);
     $i_servisa_result = $this->get_by($ime_servisa_korisnika, FALSE);
     $ime2_servisa_korisnika = array('naziv' => $search_array);
     $ii_servisa_result = $this->get_by($ime2_servisa_korisnika, FALSE);
     $result = $this->get();
     $result_date = array();
     foreach ($result as $key => $row) {
         $time = $row->created;
         //$date = date_format($time, 'Y-m-d H:i:s'); //datetime u string
         $search_rastavljeni = explode(" ", $time);
         //samo Y-m-d
         if (dateform_($search_array) == $search_rastavljeni[0]) {
             $result_date[$key] = $row;
         }
     }
     if (count($i_servisa_result)) {
         return $i_servisa_result;
     } elseif (count($ii_servisa_result)) {
         return $ii_servisa_result;
     } elseif (count($result_date)) {
         return $result_date;
     }
     /*
     elseif($vrijednost['opcija_search'] == 'Ime')
     {	
     	$ime_korisnika = array('ime'=>$search_array);
     	$ime_korisnika_result = $this->user_m->get_by($ime_korisnika, FALSE);
     
     	$this->data['users_search'] = $ime_korisnika_result;
     }
     elseif($vrijednost['opcija_search'] == 'Prezime')
     {
     	$prezime_korisnika = array('prezime'=>$search_array);
     	$prezime_korisnika_result = $this->user_m->get_by($prezime_korisnika, FALSE);
     
     	$this->data['users_search'] = $prezime_korisnika_result;
     }
     elseif($vrijednost['opcija_search'] == 'Korisničko ime')
     {
     	$name_korisnika = array('name'=>$search_array);
     	$name_korisnika_result = $this->user_m->get_by($name_korisnika, FALSE);
     
     	$this->data['users_search'] = $name_korisnika_result;
     }
     */
 }
Esempio n. 3
0
 public function edit($id = NULL)
 {
     //dohvat korisnika iz tablice ili stvaranje novog (za preliminarni ispis kod edit-a)
     if ($id != NULL) {
         $this->data['user'] = $this->user_m->get($id);
         //count($this->data['user']) || $this->data['errors'][] = 'User could not be found'; //ako korisnik nije pronađen, dodati error poruku u error array
         /*spremanje trenutnog imena za provjeru pri editiranju (callback username...)
         		$url = array('admin/user/edit/'.$id);
         		if(in_array(uri_string(), $url)==TRUE) //
         		{
         			$trenutno_ime = array('trenutno_ime'=>$this->data['user']->name);
         			$this->user_m->save($trenutno_ime, $id);	
         		}*/
     } else {
         $this->data['user'] = $this->user_m->get_new();
     }
     //pravila forme
     $rules = $this->user_m->rules;
     //dohvat varijable 'rules' (koja je array) iz 'user_m'
     //password, stavi neka je required ako se pravi novi profil
     if ($id == NULL) {
         $rules['password']['rules'] .= '|required';
     }
     //$rules['password']['rules'] = $rules['password'] . '|required';
     //$id==NULL || $rules['password']['rules'] .= '|required';   //NE RADI
     $this->form_validation->set_rules($rules);
     //drop-down menu
     $this->data['type_options'] = array('Administrator', 'Mehaničar', 'Klijent');
     if ($id == NULL) {
         $this->data['type_options_2'] = array('Zaposlenik', 'Nije zaposlenik');
     } else {
         $this->data['type_options_2'] = array('Zaposlenik', 'Bivši zaposlenik', 'Nije zaposlenik');
     }
     //procesiranje forme
     if ($this->input->post('submit') == 'Spremi') {
         if ($this->form_validation->run() == TRUE) {
             /* ne radi ako se stavi PRIJE 119. linije $podaci = ... jer array još nije definiran
             
             				$now = date('Y-m-d H:i:s');
             				if($id==NULL)
             				{$podaci['created'] = $now;}
             				elseif($id!=NULL)
             				{$podaci['modified'] = $now;}
             				*/
             $podaci = $this->user_m->array_from_post(array('ime', 'prezime', 'email', 'password', 'user_type', 'status', 'adresa', 'datum_rodjenja', 'JMBG', 'oruzani_broj', 'kontakt_broj'));
             //originalna lozinka - za privremeni ispis pri kreaciji novog profila
             $password_original = $podaci['password'];
             //password hashiranje (kako admin ne bi vidio)
             $podaci['password'] = $this->login_m->hash($podaci['password']);
             //kada se editira Šef, on je automatski admin i zaposlenik (UVIJEK)
             if ($id != NULL) {
                 if ($this->data['user']->nadleznost == 'Šef') {
                     //$type = array('user_type'=> 'admin'); //ne radi jer se naknadno sprema preko $podaci
                     //$this->user_m->save($type, $id);
                     $podaci['user_type'] = 'admin';
                     $podaci['status'] = 'Zaposlenik';
                 }
             }
             //kada se editira profil, upisuje se stara šifra
             if ($id != NULL) {
                 $podaci['password'] = $this->data['user']->password;
             }
             //datum format
             $podaci['datum_rodjenja'] = dateform_($podaci['datum_rodjenja']);
             //stvaranje korisničkog imena
             //$prvo_slovo_ime = substr($podaci['ime'], 0,1);
             $username = $podaci['ime'] . $podaci['prezime'];
             $user_result = $this->user_m->get();
             $najveci = 0;
             //$trenutno_ime = $this->data['user']->name;
             //$trenutno_ime_broj = preg_replace('/[^0-9]+/', ' ', $trenutno_ime);
             foreach ($user_result as $user_row) {
                 //$user_name = explode('_', $user_row->name);
                 //$name = $user_name['0'] . '_';
                 $name = preg_replace("/[^a-zA-ZčćđžšČĆŽŠĐ]+/", '', $user_row->name);
                 //zamijeni sve osim slova u $user_row->name sa ''
                 //$name = str_replace($numbers, '', $user_row->name);
                 //ako to NIJE redak korisnika kojeg upravo uređujemo
                 if ($user_row->id != $id) {
                     if ($username == $name) {
                         //$rastavljeni = explode("_", $user_row->name);
                         //$broj_username = intval($rastavljeni['1']);
                         //preg_match_all('!\d+!', $user_row->name, $broj);
                         $broj = preg_replace('/[^0-9]+/', ' ', $user_row->name);
                         //uzima $user_row->name string, zamjenjuje sve znakove sa prazninom osim brojki
                         $broj_username = intval($broj);
                         if ($broj_username >= $najveci) {
                             $najveci = $broj_username + 1;
                         }
                     }
                 }
             }
             $username = $username . $najveci;
             //spremanje korisničkog imena
             $podaci['name'] = $username;
             /*if($id!=NULL)
             		{
             			//brisanje vrijednosti 'trenutno_ime'
             			$trenutno_ime = array('trenutno_ime'=>NULL);
             			$this->user_m->save($trenutno_ime, $id);
             		}*/
             //postavljanje tipa korisnika
             if ($podaci['user_type'] == 'Administrator') {
                 $podaci['user_type'] = 'admin';
             } elseif ($podaci['user_type'] == 'Mehaničar') {
                 $podaci['user_type'] = 'mech';
             } elseif ($podaci['user_type'] == 'Klijent') {
                 $podaci['user_type'] = 'client';
             }
             //ako je client, automatski je 'Nije zaposlenik'
             if ($podaci['user_type'] == 'client') {
                 $podaci['status'] = 'Nije zaposlenik';
             }
             //ako se novi korisnik postavi na tip 'admin' ili 'mech', on je automatski zaposlenik
             if ($id == NULL) {
                 if ($podaci['user_type'] == 'admin' || $podaci['user_type'] == 'mech') {
                     $podaci['status'] = 'Zaposlenik';
                 }
             }
             //ako se ažurirani korisnik postavi na admina ili mecha i stavi kao 'nije zaposlenik' - on je autoamtski bivši zaposlenik
             if ($id != NULL) {
                 if ($podaci['user_type'] == 'admin' || $podaci['user_type'] == 'mech') {
                     if ($podaci['status'] == 'Nije zaposlenik') {
                         $podaci['status'] = 'Bivši zaposlenik';
                     }
                 }
             }
             $this->user_m->save($podaci, $id);
             $novi_user = $this->user_m->get_by($podaci, TRUE);
             //dohvat novostvorenog korisnika
             //spremanje originalne lozinke (prije hasha)
             /*	$novi_user->password_original = $password_original;
             				$password_array = array('password_original'=> $novi_user->password_original);
             				$this->user_m->save($password_array, $novi_user->id);
             			*/
             //privremeno spremanje lozinke radi ispisa (za printanje)
             $this->session->set_flashdata('lozinka', $password_original);
             //ažuriranje (NE spremanje) klijenta (ako je klijent) u tablicu klijenata ('clients')
             if ($podaci['user_type'] == 'client') {
                 $klijent_ime = $podaci['name'];
                 //$klijent_id = $this->data['user']->id;  -još nije stvoren id, izbacuje error
                 $klijent_id = $novi_user->id;
                 $klijent_array = array('name_client' => $klijent_ime, 'id_client' => $klijent_id);
                 //$novi_klijent_redak = $this->client_m->get_new();  //iz nekog razloga na ovo se ne izbacuje error
                 //$id_2 = $novi_klijent_redak->id;					//a trebao bi...
                 //ipak radi i sprema $id_2 = NULL
                 //isto se dogodi i ako stavimo varijablu bilo kojeg drugog naziva (a nije id)
                 $id_array = array('id_client' => $klijent_id);
                 $klijent_result = $this->client_m->get_by($id_array, FALSE);
                 //id klijenta je nepromjenjen
                 if (count($klijent_result)) {
                     foreach ($klijent_result as $klijent_row) {
                         $id_clients = $klijent_row->id;
                         $this->client_m->save($klijent_array, $id_clients);
                         //nema potrebe za get_new()
                         //save() automatski stvara novi redak ako nema prijenosa id-a
                     }
                 }
                 //ažuriranje podataka klijenta u tablicama servisa ('services') i oružija ('weapons')
                 $klijent_array_1 = array('vlasnik' => $klijent_ime);
                 $id_array_1 = array('id_vlasnika' => $klijent_id);
                 $weapon_result = $this->weapon_m->get_by($id_array_1, FALSE);
                 $service_result = $this->service_m->get_by($id_array_1, FALSE);
                 if (count($service_result)) {
                     foreach ($service_result as $service_row) {
                         $id_service = $service_row->id;
                         $this->service_m->save($klijent_array_1, $id_service);
                     }
                 }
                 if (count($weapon_result)) {
                     foreach ($weapon_result as $weapon_row) {
                         $id_weapon = $weapon_row->id;
                         $this->weapon_m->save($klijent_array_1, $id_weapon);
                     }
                 }
             }
             //ažuriranje (NE spremanje) mehaničara (ako je mehaničar) u tablicama 'services' i 'mechanics'
             if ($podaci['user_type'] == 'mech') {
                 $mehanicar_ime = $podaci['name'];
                 $mehanicar_id = $novi_user->id;
                 $servicer_row = array('serviser' => $mehanicar_ime, 'id_servisera' => $mehanicar_id);
                 $mechanic_row = array('name_mehanicar' => $mehanicar_ime, 'id_mehanicar' => $mehanicar_id);
                 $id_array_s = array('id_servisera' => $mehanicar_id);
                 $id_array_m = array('id_mehanicar' => $mehanicar_id);
                 $stari_mehan_result_s = $this->service_m->get_by($id_array_s, FALSE);
                 //ako nema, vraća NULL
                 $stari_mehan_result_m = $this->mechanic_m->get_by($id_array_m, FALSE);
                 foreach ($stari_mehan_result_s as $row_s) {
                     ////ako je stari_mehan = NULL, foreach se uopće ne izvrši,
                     $id_services = $row_s->id;
                     //čak nema ni potrebe za if(count($stari_mehan))
                     $this->service_m->save($servicer_row, $id_services);
                 }
                 foreach ($stari_mehan_result_m as $row_m) {
                     $id_mechanics = $row_m->id;
                     $this->mechanic_m->save($mechanic_row, $id_mechanics);
                 }
             }
             //spremanje korisnika u tablicu 'zaposlenici' ukoliko je zaposlenik/bivši zaposlenik
             if ($podaci['status'] == 'Zaposlenik' && $id == NULL) {
                 $datum_zaposlenja = date('Y-m-d');
                 $zaposlenik_array = array('name' => $username, 'pocetak_rada' => $datum_zaposlenja);
                 $this->zaposlenik_m->save($zaposlenik_array, $id);
             } elseif ($podaci['status'] == 'Bivši zaposlenik' && $id != NULL) {
                 $zaposlenik = array('name' => $username);
                 $zaposlenici = $this->zaposlenik_m->get_by($zaposlenik, FALSE);
                 foreach ($zaposlenici as $zaposlen) {
                     if ($zaposlen->kraj_rada == "0000-00-00") {
                         $id_zaposlenik = $zaposlen->id;
                     }
                 }
                 $datum_prestanka = date('Y-m-d');
                 $zaposlenik_array = array('kraj_rada' => $datum_prestanka);
                 $this->zaposlenik_m->save($zaposlenik_array, $id_zaposlenik);
             } elseif ($podaci['status'] == 'Zaposlenik' && $id != NULL) {
                 $i = FALSE;
                 $datum_zaposlenja = date('Y-m-d');
                 $zaposlenik_array = array('name' => $username);
                 $zaposlenik_array_2 = array('name' => $username, 'pocetak_rada' => $datum_zaposlenja);
                 $zaposlenik_result = $this->zaposlenik_m->get_by($zaposlenik_array, FALSE);
                 foreach ($zaposlenik_result as $zaposlen) {
                     if ($zaposlen->pocetak_rada != "0000-00-00" && $zaposlen->kraj_rada == "0000-00-00") {
                         //koji nema 'kraj_rada'	(nije popunjen)
                         $i = TRUE;
                         break;
                     }
                 }
                 if ($i == FALSE) {
                     $this->zaposlenik_m->save($zaposlenik_array_2, $id_zaposlenik);
                     //stvori novi red s tim korisničkim imenom
                 }
             }
             //redirect
             if ($id == NULL) {
                 redirect('admin/printing/index/' . $novi_user->id);
             } else {
                 redirect('admin/user');
             }
             //inače preusmjeri nazad na popis
         } else {
             $this->form_validation->set_message('rule', 'Error Message');
         }
     }
     //load view-a
     $this->data['subview'] = 'admin/user/edit';
     //view
     $this->data['subview_2'] = 'admin/menu/index';
     $this->load->view('login/_layout_main', $this->data);
 }
Esempio n. 4
0
 public function edit($id = NULL)
 {
     //dohvat korisnika iz tablice ili stvaranje novog
     if ($id != NULL) {
         $this->data['service'] = $this->service_m->get($id);
         //count($this->data['user']) || $this->data['errors'][] = 'User could not be found'; //ako korisnik nije pronađen, dodati error poruku u error array
     } else {
         $this->data['service'] = $this->service_m->get_new();
     }
     //pravila forme
     $rules = $this->service_m->rules;
     //dohvat varijable 'rules' (koja je array) iz 'user_m'
     $this->form_validation->set_rules($rules);
     $user_type_client = array('user_type' => 'client');
     $user_type_mech = array('user_type' => 'mech');
     //slanje liste korisnika (drop-down menu)
     $this->data['clients_options'] = $this->user_m->get_by($user_type_client, FALSE);
     //slanje liste oružija (drop-down menu)
     $this->data['weapons_options'] = $this->weapon_m->get();
     //slanje liste mehaničara (drop-down menu)
     $this->data['mechs_options'] = $this->user_m->get_by($user_type_mech, FALSE);
     //vraća nekoliko redova
     //$id || $rules['password']['rules'] .= '|required';    //$rules['password']['rules'] = $rules['password'] . '|required';
     //procesiranje forme
     if ($this->form_validation->run() == TRUE) {
         $podaci = $this->service_m->array_from_post(array('oruzije', 'serviser', 'pocetak_servisa', 'kraj_servisa'));
         //$data['password'] = $this->user_m->hash(data['password']);
         $podaci['preuzeto'] = FALSE;
         $podaci['kraj_servisa'] = date('Y-m-d');
         //date format
         $podaci['pocetak_servisa'] = dateform_($podaci['pocetak_servisa']);
         $mehanicar = array('name' => $podaci['serviser']);
         //dohvat  servisera
         $mech_row = $this->user_m->get_by($mehanicar, TRUE);
         //dohvat retka tog mehaničara iz tablice 'users'
         $id_mehanicara = $mech_row->id;
         //dohvat  tog mehaničara
         //TREBAO BI BITI ID MEHANICARA!!!!
         $ime_mehanicara = $mech_row->name;
         //dohvat imena mehanicara
         $oruzije = array('name' => $podaci['oruzije']);
         //dohvat
         $oruz_row = $this->weapon_m->get_by($oruzije, TRUE);
         $id_oruzija = $oruz_row->id;
         //dohvat tog oružija
         //TREBAO BI BITI ID ORUŽIJA!!
         $naziv_oruzija = $oruz_row->name;
         //dohvat naziva oruzija
         //naziv_servisa
         /*
         $br_servisa = count($this->service_m->get())+1;
         $naziv_servisa_osnovno = 'Servis_' . $br_servisa;
         $postojeci_servisi = $this->service_m->get();
         $ii = 0;
         foreach($postojeci_servisi as $servis)
         {
         	if($naziv_servisa_osnovno == $servis->naziv_servisa)
         	{$i++;}
         }
         
         if($i!=0)
         {
         	$naziv_servisa = 'Servis_' . $br_servisa . '_';
         }
         */
         //naziv servisa
         !$id || $this->db->where('id !=', $id);
         //preskače se naziv aktualnog servisa, (ukoliko se ažurira)
         $postojeci_servisi = $this->service_m->get();
         $najveci = 0;
         foreach ($postojeci_servisi as $servis) {
             //ako nema servisa, nema foreach-a...
             $rastavljeni = explode("_", $servis->naziv);
             $broj_servisa = intval($rastavljeni['1']);
             if ($broj_servisa >= $najveci) {
                 $najveci = $broj_servisa + 1;
             }
         }
         $naziv_servisa = 'Servis_' . $najveci;
         //
         $podaci_update = array('id_vlasnika' => $oruz_row->id_vlasnika, 'id_oruzija' => $id_oruzija, 'id_servisera' => $id_mehanicara, 'naziv' => $naziv_servisa);
         $id_servisa = $this->service_m->save($podaci, $id);
         $this->service_m->save($podaci_update, $id_servisa);
         //dodatno spremanje
         $mechanics_array = array('id_mehanicar' => $id_mehanicara, 'name_mehanicar' => $ime_mehanicara, 'servis_mehanicar' => $id_servisa, 'id_oruzije_mehanicar' => $id_oruzija, 'naziv_servisa' => $naziv_servisa, 'oruzije_mehanicar' => $naziv_oruzija);
         //
         //$novi_mech_servis = $this->mechanic_m->get_new(); //stvaranje novog retka u tablici 'mechanics'
         //$id_2 = $novi_mech_servis->id; //dohvat id-a novostvorenog retka -NO
         //za dvije gornje linije, iz nekog razloga, ne javlja error kada se stavi $id_2 u save()
         $this->mechanic_m->save($mechanics_array);
         //za spremanje id servisa i imena mehanicara
         // u tablicu 'mechanics' u odgovarajuće atribute
         //zapis id servisa u tablicu 'clients'
         $klijent = array('id_client' => $oruz_row->id_vlasnika, 'id_oruzija_client' => $id_oruzija);
         //DODATI JOŠ ID ORUŽIJA KAO UVJET PRETRAGE
         $client_row = $this->client_m->get_by($klijent, TRUE);
         //JER ISTI KLIJENT MOŽE IMATI VIŠE ORUŽIJA
         // = JEDAN SERVIS
         $id_2 = $client_row->id;
         $client_array = array('servis_client' => $id_servisa, 'naziv_servisa' => $naziv_servisa);
         $this->client_m->save($client_array, $id_2);
         //zapis id servisa u tablicu oružija
         $id_oruzija_ = array('id' => $id_oruzija);
         //TREBAO BI BITI ID ORUŽIJA!!!
         $weapon_row = $this->weapon_m->get_by($id_oruzija_, TRUE);
         //izvlači se nešto što se već ima...
         $id_3 = $weapon_row->id;
         $weapon_array = array('pripadni_servis' => $id_servisa, 'naziv_servisa' => $naziv_servisa);
         $this->weapon_m->save($weapon_array, $id_3);
         $ime_vlasnika = $client_row->name_client;
         //dohvat imena vlasnika
         //spremanje pojedinih naziva u tablicu servisa
         $podaci_2 = array('serviser' => $ime_mehanicara, 'oruzije' => $naziv_oruzija, 'vlasnik' => $ime_vlasnika);
         $this->service_m->save($podaci_2, $id_servisa);
         redirect('admin/service');
     }
     //load view-a
     $this->data['subview'] = 'admin/service/edit';
     //view
     $this->data['subview_2'] = 'admin/menu/index';
     $this->load->view('login/_layout_main', $this->data);
 }
Esempio n. 5
0
 public function pretrazivanje_2($oruzija)
 {
     $i_oruzija = array();
     $iii_oruzija = array();
     $vrijednost = $this->array_from_post(array('vrijednost_search'));
     $search_array = $vrijednost['vrijednost_search'];
     $ime_oruzija_korisnika = array('name' => $search_array);
     $i_oruzija_result = $this->get_by($ime_oruzija_korisnika, FALSE);
     $ime2_oruzija_korisnika = array('puni_naziv' => $search_array);
     $ii_oruzija_result = $this->get_by($ime2_oruzija_korisnika, FALSE);
     if (count($i_oruzija_result)) {
         //foreach($i_oruzija_result as $oruzije_row):
         foreach ($oruzija as $key => $oruzije_row) {
             if ($oruzije_row->oruzije_mehanicar == $search_array) {
                 $i_oruzija[$key] = $oruzije_row;
             }
         }
         //endforeach;
         return $i_oruzija;
     }
     if (count($ii_oruzija_result)) {
         foreach ($oruzija as $key => $oruzije_row) {
             $naziv = array('name' => $oruzije_row->oruzije_mehanicar);
             $weap = $this->get_by($naziv, TRUE);
             //dohvati iz tablice oružija puni naziv
             $puni_naziv = $weap->puni_naziv;
             if ($puni_naziv == $search_array) {
                 $i_oruzija[$key] = $oruzije_row;
             }
         }
         return $ii_oruzija_result;
     }
     if (count($oruzija)) {
         //foreach($i_oruzija_result as $oruzije_row):
         foreach ($oruzija as $key => $oruzije_row) {
             $time = $oruzije_row->created;
             //$date = date_format($time, 'Y-m-d H:i:s'); //datetime u string
             $search_rastavljeni = explode(" ", $time);
             if ($search_rastavljeni['0'] == dateform_($search_array)) {
                 $iii_oruzija[$key] = $oruzije_row;
             }
         }
         //endforeach;
         if (count($iii_oruzija)) {
             return $iii_oruzija;
         }
     }
 }