예제 #1
0
 /**
  * Show the application dashboard.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     // get user id
     // connect to farmbook and get default database
     $database = Auth::user()->getDatabase();
     //change database dynamically to user set database
     $street = new Street();
     $street->changeConnection($database);
     $streets = Street::on($database)->orderBy('strStreetName', 'ASC')->lists('strStreetName', 'id');
     $complexes = Complex::on($database)->orderBy('strComplexName', 'ASC')->lists('strComplexName', 'id');
     // $owners = Owner::on($database )->orderBy('NAME','DESC')->lists('NAME', 'id');
     $owners = Property::on($database)->orderBy('strOwners', 'DESC')->groupBy('strOwners')->lists('strOwners', 'id');
     $properties = Property::on($database)->orderBy('strKey', 'ASC')->lists('strkey', 'id');
     $erfs = Note::on($database)->orderBy('numErf', 'ASC')->lists('numErf', 'id');
     return view('search', compact('streets', 'complexes', 'owners', 'properties', 'erfs'));
 }
 public function todo()
 {
     // get all note with a follow up date TODAY - 1 WEEK
     $now = \Carbon\Carbon::now('Africa/Johannesburg')->subWeeks(1)->toDateTimeString();
     //$now->subWeeks(1);
     // set database
     $database = Auth::user()->getDatabase();
     //change database
     $note = new Note();
     $note->changeConnection($database);
     $followups = Note::on($database)->select('*')->where('followup', '>=', $now)->orderBy('followup')->get();
     $owners = array();
     // loop all notes with date > today
     foreach ($followups as $followup) {
         for ($x = 0; $x < $followup->properties->count(); $x++) {
             $detail = ['id' => $followup->properties[$x]->id, 'strKey' => $followup->properties[$x]->strKey, 'strOwners' => $followup->properties[$x]->strOwners, 'memNotes' => $followup->memNotes, 'followup' => $followup->followup];
             array_push($owners, $detail);
         }
     }
     // dd($followups, "follow up - dashboard controller");
     //dd($owners);
     return view('followups', compact('followups', 'owners'));
 }
예제 #3
0
 public function index(Request $request)
 {
     // set database
     $database = Auth::user()->getDatabase();
     //change database for notes
     $erf = new Note();
     $erf->changeConnection($database);
     //change database for Street
     $property = new Property();
     $property->changeConnection($database);
     // get inputs
     $Input = $request->input('input');
     $Select = $request->input('selected');
     //dd(   $streetInput,$streetSelect);
     // check if input or select
     // if input ignore select
     if (strlen($Input) > 0) {
         // search
         $search = $Input;
         $properties = Property::on($database)->where('numErf', 'LIKE', "{$search}%")->orderby('numErf', 'ASC')->get();
     } else {
         $note = Note::on($database)->where('id', $Select)->first();
         $search = $note->numErf;
         $properties = Property::on($database)->where('numErf', $search)->orderby('numErf', 'ASC')->get();
     }
     Session::put('search', $Input);
     Session::put('controllerroute', '/erf');
     // view properties
     // return with error if no result
     if ($properties->count()) {
         return view('erfs', compact('properties', 'search'));
     } else {
         Session::flash('flash_message', '' . "No properties matching search criteria.");
         Session::flash('flash_type', 'alert-danger');
         return Redirect::back();
     }
 }
예제 #4
0
 public function newMultiUnit($updatesA, $unit, $database)
 {
     $echo = "Entering newMultiUnit ........................................ ";
     File::append($this->logfilename, $echo . "\r\n");
     //dd($updatesA, $unit);
     // check if multiple units
     // get sqM for specific unit
     $a = explode(" & ", $updatesA['strComplexNo']);
     $sqM = explode(" & ", $updatesA['strSqMeters']);
     $found = in_array($unit, $a);
     if ($found) {
         $place = array_search($unit, $a);
         $updatesA['strSqMeters'] = $sqM[$place];
     }
     $now = \Carbon\Carbon::now('Africa/Johannesburg')->toDateTimeString();
     $updatesA['id'] = null;
     $updatesA['strKey'] = $updatesA['strKey'];
     $updatesA['numStreetNo'] = $updatesA['strStreetNo'];
     $updatesA['numComplexNo'] = $updatesA['strComplexNo'];
     $updatesA['created_at'] = $now;
     // dd($updatesA, $a, $found, $place, $a[$place], $sqM[$place]);
     // delete older ones
     $delOld = Property::on($database)->where('strKey', $updatesA['strKey'])->where(DB::raw("STR_TO_DATE(dtmRegDate, '%Y-%m-%d')"), '<', Date($updatesA['dtmRegDate']))->delete();
     $echo = "..DELETE OLD ............    " . $updatesA['strKey'] . "   -   " . $delOld;
     File::append($this->logfilename, $echo . "\r\n");
     // insert new property record
     Property::on($database)->insert($updatesA);
     // add owner record if not existing
     //
     $hascontact = Owner::on($database)->select('id')->where('strIDNumber', '=', $updatesA['strIdentity']);
     if ($hascontact->count() == 0) {
         // update details from admin contacts
         $admin_contacts = "farmbook_admin";
         $otf = new \App\Database\OTF(['database' => $admin_contacts]);
         $db = DB::connection($admin_contacts);
         $owner_details = Contact::on($admin_contacts)->select('*')->where('strIDNumber', $updatesA['strIdentity'])->first();
         // contact details found in admin contacts
         if (sizeof($owner_details) == 1) {
             $uid = $owner_details->strIDNumber;
             // set database back
             $dbname = $database;
             $otf = new \App\Database\OTF(['database' => $dbname]);
             $db = DB::connection($dbname);
             // update contact details
             $owner = Owner::on($database)->insert(array('strIDNumber' => $owner_details->strIDNumber, 'NAME' => $owner_details->NAME, 'TITLE' => $owner_details->TITLE, 'INITIALS' => $owner_details->INITIALS, 'strSurname' => $owner_details->strSurname, 'strFirstName' => $owner_details->strFirstName, 'strHomePhoneNo' => $owner_details->strHomePhoneNo, 'strWorkPhoneNo' => $owner_details->strWorkPhoneNo, 'strCellPhoneNo' => $owner_details->strCellPhoneNo, 'EMAIL' => $owner_details->EMAIL, 'created_at' => $now, 'updated_at' => $now));
             // update from prop rec
         } else {
             $dbname = $database;
             $otf = new \App\Database\OTF(['database' => $dbname]);
             $db = DB::connection($dbname);
             $owner = Owner::on($database)->insert(array('strIDNumber' => $updatesA['strIdentity'], 'NAME' => $updatesA['strOwners'], 'created_at' => $now));
         }
     } else {
         // dont wipe old details
     }
     // add note
     //
     $hasnote = Note::on($database)->select('id')->where('strKey', '=', $updatesA['strKey'])->get();
     if ($hasnote->count() == 0) {
         //$note       = Note::on($database)->insert(array('strKey' => $updatesA[$x]['strKey'], 'numErf' => $updatesA[$x]['numErf'], 'memNotes' => "\n" . $now . '  ' . $updatesA[$x]['strOwners'] . '  - New Owner.', 'created_at' => $now));
         $note = Note::on($database)->insert(array('strKey' => $updatesA['strKey'], 'numErf' => $updatesA['numErf'], 'created_at' => $now));
     } else {
         $note = Note::on($database)->where('strKey', '=', $updatesA['strKey'])->update(array('memNotes' => DB::raw('concat(memNotes, " \\n' . $now . '  ' . $updatesA['strOwners'] . ' -  New Owner.")'), 'updated_at' => $now));
     }
     $echo = "Finishing newMultiUnit ........................................  ";
     File::append($this->logfilename, $echo . "\r\n");
 }
예제 #5
0
 public function update(Request $request)
 {
     // set database
     $database = Auth::user()->getDatabase();
     //change database
     $owner = new Owner();
     $owner->changeConnection($database);
     //change database
     $note = new Note();
     $note->changeConnection($database);
     // get logged in user
     $user = Auth::user()->name;
     $now = Carbon\Carbon::now('Africa/Cairo')->toDateTimeString();
     // get inputs
     $strKey = $request->input('strKey');
     $strIdentity = $request->input('strIdentity');
     $strOwners = $request->input('strOwners');
     $homePhone = $request->input('strHomePhoneNo');
     $workPhone = $request->input('strWorkPhoneNo');
     $cellPhone = $request->input('strCellPhoneNo');
     $email = $request->input('EMAIL');
     $note = $request->input('note');
     $newnote = $request->input('newnote');
     $strStreetNo = $request->input('strStreetNo');
     $strStreetName = $request->input('strStreetName');
     $followup = $request->input('followup');
     $date = "";
     if (strLen($followup) > 0) {
         $date = Carbon\Carbon::createFromFormat('Y-m-d', $followup);
     }
     try {
         // update personal details
         //   $owner = Owner::on( $database )->where('strIDNumber', $strIdentity)->update(array('strCellPhoneNo' => $cellPhone,
         //      'strHomePhoneNo' => $homePhone,
         //      'strWorkPhoneNo' => $workPhone,
         //      'EMAIL' => $email,
         //      'updated_at'=> $now
         //      ));
         $properties = Property::on($database)->where('strKey', $strKey)->update(array('strStreetNo' => $strStreetNo, 'numStreetNo' => $strStreetNo, 'strStreetName' => $strStreetName));
         //dd($properties);
         //update owner details
         $owner = Owner::on($database)->where('strIDNumber', $strIdentity)->first();
         $owner->strHomePhoneNo = $homePhone;
         $owner->strCellPhoneNo = $cellPhone;
         $owner->strWorkPhoneNo = $workPhone;
         $owner->EMAIL = $email;
         $owner->save();
         // check if there is a new note
         if (strlen($newnote) > 0) {
             // if a previous note exists add a carrige return and new note
             if (strlen($note) > 0) {
                 $updatednote = ltrim(rtrim($note)) . "\n" . $now . " " . $user . " wrote: " . "\n" . $newnote;
             } else {
                 // add just the new note
                 $updatednote = $now . " " . $user . " wrote: " . "\n" . $newnote;
             }
             // update the note
             $affected = Note::on($database)->where('strKey', $strKey)->update(array('memNotes' => $updatednote, 'followup' => $date, 'updated_at' => $now));
         }
         Note::on($database)->where('strKey', $strKey)->update(array('followup' => $date, 'updated_at' => $now));
     } catch (exception $e) {
         Session::flash('flash_message', 'Error ' . $e->getMessage());
         Session::flash('flash_type', 'alert-danger');
         return Redirect::back();
     }
     Session::flash('flash_message', 'Updated ' . $strOwners . ' at ' . $now);
     Session::flash('flash_type', 'alert-success');
     return Redirect::back();
 }
예제 #6
0
 public function printfollowups()
 {
     // get all note with a follow up date TODAY - 1 WEEK
     $now = \Carbon\Carbon::now('Africa/Johannesburg')->subWeeks(1)->toDateTimeString();
     // set database
     $database = Auth::user()->getDatabase();
     $email = Auth::user()->email;
     //log
     $action = 'PRINTING';
     $comment = 'Report for ' . $database . ' - ' . 'FOLLOW-UPS';
     $append = \Carbon\Carbon::now('Africa/Johannesburg')->toDateTimeString() . ',          ' . trim($email) . ',          ' . $action . ',' . $comment;
     Storage::append('logfile.txt', $append);
     //change database
     $note = new Note();
     $note->changeConnection($database);
     $followups = Note::on($database)->select('*')->where('followup', '>=', $now)->orderBy('followup')->get();
     //   $followups->load('properties');
     // dd($followups);
     if (strpos($database, 'FH')) {
         $type = 'FH';
     } else {
         $type = 'ST';
     }
     $owners = array();
     $properties = array();
     // loop all notes with date > today
     foreach ($followups as $followup) {
         for ($x = 0; $x < $followup->properties->count(); $x++) {
             $detail = ['id' => $followup->properties[$x]->id, 'strKey' => $followup->properties[$x]->strKey, 'strOwners' => $followup->properties[$x]->strOwners, 'memNotes' => $followup->memNotes, 'followup' => $followup->followup];
             array_push($properties, $followup->properties[$x]);
             //array_push($owners, $detail);
         }
     }
     $count = sizeof($properties);
     // dd("print followups - reportcontroller", $properties, $count);
     return view('reportByFollowups', compact('properties', 'count', 'type'));
 }