Esempio n. 1
0
 public function lastnames($lastname = NULL)
 {
     $persons = \montserrat\Contact::whereContactType(CONTACT_TYPE_INDIVIDUAL)->orderBy('sort_name', 'asc')->with('addresses.state', 'phones', 'emails', 'websites', 'parish.contact_a')->where('last_name', 'LIKE', $lastname . '%')->paginate(100);
     //dd($persons);
     return view('persons.index', compact('persons'));
     //
 }
 public function edit_group($id)
 {
     //
     $registration = \montserrat\Registration::with('retreatant', 'retreat', 'room')->findOrFail($id);
     //        $retreat = \montserrat\Retreat::findOrFail($registration->event_id);
     $retreatant = \montserrat\Contact::findOrFail($registration->contact_id);
     $retreats = \montserrat\Retreat::select(\DB::raw('CONCAT(idnumber, "-", title, " (",DATE_FORMAT(start_date,"%m-%d-%Y"),")") as description'), 'id')->where("end_date", ">", \Carbon\Carbon::today())->orderBy('start_date')->pluck('description', 'id');
     //dd($retreats);
     //TODO: we will want to be able to switch between types when going from a group registration to individual room assignment
     if ($retreatant->contact_type == CONTACT_TYPE_INDIVIDUAL) {
         $retreatants = \montserrat\Contact::whereContactType(CONTACT_TYPE_INDIVIDUAL)->orderBy('sort_name')->pluck('sort_name', 'id');
     }
     if ($retreatant->contact_type == CONTACT_TYPE_ORGANIZATION) {
         $retreatants = \montserrat\Contact::whereContactType(CONTACT_TYPE_ORGANIZATION)->whereSubcontactType($retreatant->subcontact_type)->orderBy('sort_name')->pluck('sort_name', 'id');
     }
     $rooms = \montserrat\Room::orderby('name')->pluck('name', 'id');
     $rooms->prepend('Unassigned', 0);
     /* Check to see if the current registration is for a past retreat and if so, add it to the collection */
     // $retreats[0] = 'Unassigned';
     if ($registration->retreat->end < \Carbon\Carbon::now()) {
         $retreats[$registration->event_id] = $registration->retreat->idnumber . '-' . $registration->retreat->title . " (" . date('m-d-Y', strtotime($registration->retreat->start_date)) . ")";
     }
     return view('registrations.edit_group', compact('registration', 'retreats', 'rooms', 'retreatants'));
 }
 public function get_contact_type_list($contact_type = 'Individual', $contact_subtype = NULL)
 {
     //dd($contact_type,$contact_subtype);
     switch ($contact_type) {
         case 'Household':
             $households = \montserrat\Contact::whereContactType(CONTACT_TYPE_HOUSEHOLD)->orderBy('organization_name', 'asc')->pluck('organization_name', 'id');
             return $households;
             break;
         case 'Organization':
             switch ($contact_subtype) {
                 case 'Parish':
                     $parish_list = array();
                     $parishes = \montserrat\Contact::whereSubcontactType(CONTACT_TYPE_PARISH)->orderBy('organization_name', 'asc')->with('address_primary.state', 'diocese.contact_a')->get();
                     foreach ($parishes as $parish) {
                         $parish_list[$parish->id] = $parish->organization_name . ' (' . $parish->address_primary_city . ') - ' . $parish->diocese_name;
                     }
                     return $parish_list;
                     break;
                 case 'Diocese':
                     $dioceses = \montserrat\Contact::whereSubcontactType(CONTACT_TYPE_DIOCESE)->orderBy('organization_name', 'asc')->pluck('organization_name', 'id');
                     return $dioceses;
                     break;
                 case 'Province':
                     $provinces = \montserrat\Contact::whereSubcontactType(CONTACT_TYPE_PROVINCE)->orderBy('organization_name', 'asc')->pluck('organization_name', 'id');
                     return $provinces;
                     break;
                 case 'Community':
                     $communities = \montserrat\Contact::whereSubcontactType(CONTACT_TYPE_COMMUNITY)->orderBy('organization_name', 'asc')->pluck('organization_name', 'id');
                     return $communities;
                     break;
                 case 'Retreat House':
                     $retreat_houses = \montserrat\Contact::whereSubcontactType(CONTACT_TYPE_RETREAT_HOUSE)->orderBy('organization_name', 'asc')->pluck('organization_name', 'id');
                     return $retreat_houses;
                     break;
                 case 'Vendor':
                     $vendors = \montserrat\Contact::whereSubcontactType(CONTACT_TYPE_VENDOR)->orderBy('organization_name', 'asc')->pluck('organization_name', 'id');
                     return $vendors;
                     break;
                 case 'Religious-Catholic':
                     $religious_catholic = \montserrat\Contact::whereSubcontactType(CONTACT_TYPE_RELIGIOUS_CATHOLIC)->orderBy('organization_name', 'asc')->pluck('organization_name', 'id');
                     return $religious_catholic;
                     break;
                 case 'Religious-Non-Catholic':
                     $religious_non_catholic = \montserrat\Contact::whereSubcontactType(CONTACT_TYPE_RELIGIOUS_NONCATHOLIC)->orderBy('organization_name', 'asc')->pluck('organization_name', 'id');
                     return $religious_non_catholic;
                     break;
                 case 'Foundation':
                     $foundations = \montserrat\Contact::whereSubcontactType(CONTACT_TYPE_FOUNDATION)->orderBy('organization_name', 'asc')->pluck('organization_name', 'id');
                     return $religious_non_catholic;
                     break;
                     //default NULL (generic organization)
                 //default NULL (generic organization)
                 default:
                     $organizations = \montserrat\Contact::whereContactType(CONTACT_TYPE_ORGANIZATION)->orderBy('organization_name', 'asc')->pluck('organization_name', 'id');
                     return $organizations;
                     break;
             }
             break;
             // default Individual
         // default Individual
         default:
             switch ($contact_subtype) {
                 case 'Bishop':
                     $bishops = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_BISHOP);
                     })->pluck('sort_name', 'id');
                     return $bishops;
                     break;
                 case 'Priest':
                     $priests = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_PRIEST);
                     })->pluck('sort_name', 'id');
                     return $priests;
                     break;
                 case 'Deacon':
                     $deacons = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_DEACON);
                     })->pluck('sort_name', 'id');
                     return $deacons;
                     break;
                 case 'Pastor':
                     $pastors = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_PASTOR);
                     })->pluck('sort_name', 'id');
                     return $pastors;
                     break;
                 case 'Innkeeper':
                     $innkeepers = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_INNKEEPER);
                     })->pluck('sort_name', 'id');
                     return $innkeepers;
                     break;
                 case 'Assistant':
                     $assistants = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_ASSISTANT);
                     })->pluck('sort_name', 'id');
                     return $assistants;
                     break;
                 case 'Director':
                     $directors = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_DIRECTOR);
                     })->pluck('sort_name', 'id');
                     return $directors;
                     break;
                 case 'Captain':
                     $captains = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_CAPTAIN);
                     })->pluck('sort_name', 'id');
                     return $captains;
                     break;
                 case 'Jesuit':
                     $jesuits = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_JESUIT);
                     })->pluck('sort_name', 'id');
                     return $jesuits;
                     break;
                 case 'Provincial':
                     $provincials = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_PROVINCIAL);
                     })->pluck('sort_name', 'id');
                     return $provincials;
                     break;
                 case 'Superior':
                     $superiors = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_SUPERIOR);
                     })->pluck('sort_name', 'id');
                     return $superiors;
                     break;
                 case 'Board member':
                     $board_members = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_BOARD);
                     })->pluck('sort_name', 'id');
                     return $board_members;
                     break;
                 case 'Employee':
                     $staff = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_STAFF);
                     })->pluck('sort_name', 'id');
                     return $staff;
                     break;
                 case 'Volunteer':
                     $volunteers = \montserrat\Contact::with('groups.group')->orderby('sort_name')->whereHas('groups', function ($query) {
                         $query->where('group_id', '=', GROUP_ID_VOLUNTEER);
                     })->pluck('sort_name', 'id');
                     return $volunteers;
                     break;
                     //default null
                 //default null
                 default:
                     $individuals = \montserrat\Contact::whereContactType(CONTACT_TYPE_INDIVIDUAL)->orderBy('sort_name', 'asc')->pluck('sort_name', 'id');
                     return $individuals;
                     break;
             }
     }
 }
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function edit($id)
 {
     //
     $touchpoint = \montserrat\Touchpoint::with('staff', 'person')->findOrFail($id);
     $staff = \montserrat\Contact::with('groups')->whereHas('groups', function ($query) {
         $query->where('group_id', '=', GROUP_ID_STAFF);
     })->orderBy('sort_name')->pluck('sort_name', 'id');
     //consider renaming touchpoint table's person_id field to contact_id
     $contact = \montserrat\Contact::findOrFail($touchpoint->person_id);
     if (isset($contact->subcontact_type)) {
         $persons = \montserrat\Contact::whereSubcontactType($contact->subcontact_type)->orderBy('sort_name')->pluck('sort_name', 'id');
     } else {
         $persons = \montserrat\Contact::whereContactType($contact->contact_type)->orderBy('sort_name')->pluck('sort_name', 'id');
     }
     //$persons = \montserrat\Contact::whereContactType(CONTACT_TYPE_INDIVIDUAL)->orderBy('sort_name')->pluck('sort_name','id');
     // check contact type and if parish get list of parishes if individual get list of persons
     return view('touchpoints.edit', compact('touchpoint', 'staff', 'persons'));
     //
 }