Esempio n. 1
0
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function show($id)
 {
     //
     $group = \montserrat\Group::findOrFail($id);
     $members = \montserrat\Contact::whereHas('groups', function ($query) use($id) {
         $query->whereGroupId($id)->whereStatus('Added');
     })->orderby('sort_name')->get();
     //dd($group);
     return view('groups.show', compact('group', 'members'));
     //
 }
 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'));
 }
Esempio n. 3
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     //
     \montserrat\Contact::destroy($id);
     return Redirect::action('VendorsController@index');
 }
 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;
             }
     }
 }
Esempio n. 5
0
 public function role($role)
 {
     // TODO: figure out how to handle roles
     $contacts = \montserrat\Contact::orderBy('last_name', 'asc', 'first_name', 'asc')->where($role['field'], '1')->get();
     //dd($contacts);
     return view('contacts.role', compact('contacts', 'role'));
     //
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     // TODO: delete addresses, emails, webpages, and phone numbers for persons, parishes, dioceses and organizations
     \montserrat\Contact::destroy($id);
     return Redirect::action('OrganizationsController@index');
 }
 /**
  * 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'));
     //
 }
Esempio n. 8
0
 public function contact_info_report($id)
 {
     $person = \montserrat\Contact::findOrFail($id);
     return view('reports.contact_info', compact('person'));
     //
 }
Esempio n. 9
0
 public function edit($id)
 {
     //get this retreat's information
     $retreat = \montserrat\Retreat::with('retreatmasters', 'assistant', 'innkeeper', 'captains')->findOrFail($id);
     $event_types = \montserrat\EventType::whereIsActive(1)->orderBy('name')->pluck('name', 'id');
     //create lists of retreat directors, innkeepers, and assistants from relationship to retreat house
     $retreat_house = \montserrat\Contact::with('retreat_directors.contact_b', 'retreat_innkeepers.contact_b', 'retreat_assistants.contact_b')->findOrFail(CONTACT_MONTSERRAT);
     foreach ($retreat_house->retreat_innkeepers as $innkeeper) {
         $i[$innkeeper->contact_id_b] = $innkeeper->contact_b->sort_name;
     }
     asort($i);
     $i = array(0 => 'N/A') + $i;
     foreach ($retreat_house->retreat_directors as $director) {
         $d[$director->contact_id_b] = $director->contact_b->sort_name;
     }
     asort($d);
     $d = array(0 => 'N/A') + $d;
     foreach ($retreat_house->retreat_assistants as $assistant) {
         $a[$assistant->contact_id_b] = $assistant->contact_b->sort_name;
     }
     asort($a);
     $a = array(0 => 'N/A') + $a;
     foreach ($retreat_house->retreat_captains as $captain) {
         $c[$captain->contact_id_b] = $captain->contact_b->sort_name;
     }
     asort($c);
     $c = array(0 => 'N/A') + $c;
     //dd($a);
     return view('retreats.edit', compact('retreat', 'd', 'i', 'a', 'c', 'event_types'));
 }
Esempio n. 10
0
 public function search()
 {
     $person = new \montserrat\Contact();
     $parishes = \montserrat\Contact::whereSubcontactType(CONTACT_TYPE_PARISH)->orderBy('organization_name', 'asc')->with('address_primary.state', 'diocese.contact_a')->get();
     $parish_list[0] = 'N/A';
     $contact_types = \montserrat\ContactType::whereIsReserved(TRUE)->pluck('label', 'id');
     $contact_types->prepend('N/A', 0);
     $subcontact_types = \montserrat\ContactType::whereIsReserved(FALSE)->whereIsActive(TRUE)->pluck('label', 'id');
     $subcontact_types->prepend('N/A', 0);
     // while probably not the most efficient way of doing this it gets me the result
     foreach ($parishes as $parish) {
         $parish_list[$parish->id] = $parish->organization_name . ' (' . $parish->address_primary_city . ') - ' . $parish->diocese_name;
     }
     $countries = \montserrat\Country::orderBy('iso_code')->pluck('iso_code', 'id');
     $countries->prepend('N/A', 0);
     $ethnicities = \montserrat\Ethnicity::orderBy('ethnicity')->pluck('ethnicity', 'id');
     $ethnicities->prepend('N/A', 0);
     $genders = \montserrat\Gender::orderBy('name')->pluck('name', 'id');
     $genders->prepend('N/A', 0);
     $languages = \montserrat\Language::orderBy('label')->whereIsActive(1)->pluck('label', 'id');
     $languages->prepend('N/A', 0);
     $prefixes = \montserrat\Prefix::orderBy('name')->pluck('name', 'id');
     $prefixes->prepend('N/A', 0);
     $religions = \montserrat\Religion::orderBy('name')->whereIsActive(1)->pluck('name', 'id');
     $religions->prepend('N/A', 0);
     $states = \montserrat\StateProvince::orderBy('name')->whereCountryId(1228)->pluck('name', 'id');
     $states->prepend('N/A', 0);
     $suffixes = \montserrat\Suffix::orderBy('name')->pluck('name', 'id');
     $suffixes->prepend('N/A', 0);
     $occupations = \montserrat\Ppd_occupation::orderBy('name')->pluck('name', 'id');
     $occupations->prepend('N/A', 0);
     //create defaults array for easier pre-populating of default values on edit/update blade
     // initialize defaults to avoid undefined index errors
     $defaults = array();
     $defaults['Home']['street_address'] = '';
     $defaults['Home']['supplemental_address_1'] = '';
     $defaults['Home']['city'] = '';
     $defaults['Home']['state_province_id'] = '';
     $defaults['Home']['postal_code'] = '';
     $defaults['Home']['country_id'] = '';
     $defaults['Home']['Phone'] = '';
     $defaults['Home']['Mobile'] = '';
     $defaults['Home']['Fax'] = '';
     $defaults['Home']['email'] = '';
     $defaults['Work']['street_address'] = '';
     $defaults['Work']['supplemental_address_1'] = '';
     $defaults['Work']['city'] = '';
     $defaults['Work']['state_province_id'] = '';
     $defaults['Work']['postal_code'] = '';
     $defaults['Work']['country_id'] = '';
     $defaults['Work']['Phone'] = '';
     $defaults['Work']['Mobile'] = '';
     $defaults['Work']['Fax'] = '';
     $defaults['Work']['email'] = '';
     $defaults['Other']['street_address'] = '';
     $defaults['Other']['supplemental_address_1'] = '';
     $defaults['Other']['city'] = '';
     $defaults['Other']['state_province_id'] = '';
     $defaults['Other']['postal_code'] = '';
     $defaults['Other']['country_id'] = '';
     $defaults['Other']['Phone'] = '';
     $defaults['Other']['Mobile'] = '';
     $defaults['Other']['Fax'] = '';
     $defaults['Other']['email'] = '';
     $defaults['Main']['url'] = '';
     $defaults['Work']['url'] = '';
     $defaults['Facebook']['url'] = '';
     $defaults['Google']['url'] = '';
     $defaults['Instagram']['url'] = '';
     $defaults['LinkedIn']['url'] = '';
     $defaults['Twitter']['url'] = '';
     foreach ($person->addresses as $address) {
         $defaults[$address->location->name]['street_address'] = $address->street_address;
         $defaults[$address->location->name]['supplemental_address_1'] = $address->supplemental_address_1;
         $defaults[$address->location->name]['city'] = $address->city;
         $defaults[$address->location->name]['state_province_id'] = $address->state_province_id;
         $defaults[$address->location->name]['postal_code'] = $address->postal_code;
         $defaults[$address->location->name]['country_id'] = $address->country_id;
     }
     foreach ($person->phones as $phone) {
         $defaults[$phone->location->name][$phone->phone_type] = $phone->phone;
     }
     foreach ($person->emails as $email) {
         $defaults[$email->location->name]['email'] = $email->email;
     }
     foreach ($person->websites as $website) {
         $defaults[$website->website_type]['url'] = $website->url;
     }
     //dd($person);
     return view('search.search', compact('prefixes', 'suffixes', 'person', 'parish_list', 'ethnicities', 'states', 'countries', 'genders', 'languages', 'defaults', 'religions', 'occupations', 'contact_types', 'subcontact_types'));
 }
Esempio n. 11
0
 public function merge($contact_id, $merge_id = NULL)
 {
     $contact = \montserrat\Contact::findOrFail($contact_id);
     $similar = \montserrat\Contact::whereSortName($contact->sort_name)->get();
     $duplicates = $similar->keyBy('id');
     $duplicates->forget($contact->id);
     if (!empty($merge_id)) {
         $merge = \montserrat\Contact::findOrFail($merge_id);
         //dd($merge);
         if (empty($contact->prefix_id) && !empty($merge->prefix_id)) {
             $contact->prefix_id = $merge->prefix_id;
         }
         if (empty($contact->first_name) && !empty($merge->first_name)) {
             $contact->first_name = $merge->first_name;
         }
         if (empty($contact->nick_name) && !empty($merge->nick_name)) {
             $contact->nick_name = $merge->nick_name;
         }
         if (empty($contact->middle_name) && !empty($merge->middle_name)) {
             $contact->middle_name = $merge->middle_name;
         }
         if (empty($contact->last_name) && !empty($merge->last_name)) {
             $contact->last_name = $merge->last_name;
         }
         if (empty($contact->organization_name) && !empty($merge->organization_name)) {
             $contact->organization_name = $merge->organization_name;
         }
         if (empty($contact->suffix_id) && !empty($merge->suffix_id)) {
             $contact->suffix_id = $merge->suffix_id;
         }
         if (empty($contact->gender_id) && !empty($merge->gender_id)) {
             $contact->gender_id = $merge->gender_id;
         }
         if (empty($contact->birth_date) && !empty($merge->birth_date)) {
             $contact->birth_date = $merge->birth_date;
         }
         if (empty($contact->religion_id) && !empty($merge->religion_id)) {
             $contact->religion_id = $merge->religion_id;
         }
         if (empty($contact->occupation_id) && !empty($merge->occupation_id)) {
             $contact->occupation_id = $merge->occupation_id;
         }
         if (empty($contact->ethnicity_id) && !empty($merge->ethnicity_id)) {
             $contact->ethnicity_id = $merge->ethnicity_id;
         }
         $contact->save();
         //addresses
         if (NULL === $contact->address_primary) {
             $contact->address_primary = new \montserrat\Address();
             $contact->address_primary->contact_id = $contact->id;
             $contact->address_primary->is_primary = 1;
         }
         if (empty($contact->address_primary->street_address) && !empty($merge->address_primary->street_address)) {
             $contact->address_primary->street_address = $merge->address_primary->street_address;
         }
         if (empty($contact->address_primary->supplemental_address) && !empty($merge->address_primary->supplemental_address)) {
             $contact->address_primary->supplemental_address = $merge->address_primary->supplemental_address;
         }
         if (empty($contact->address_primary->city) && !empty($merge->address_primary->city)) {
             $contact->address_primary->city = $merge->address_primary->city;
         }
         if (empty($contact->address_primary->state_province_id) && !empty($merge->address_primary->state_province_id)) {
             $contact->address_primary->state_province_id = $merge->address_primary->state_province_id;
         }
         if (empty($contact->address_primary->postal_code) && !empty($merge->address_primary->postal_code)) {
             $contact->address_primary->postal_code = $merge->address_primary->postal_code;
         }
         if (empty($contact->address_primary->country_code) && !empty($merge->address_primary->country_code)) {
             $contact->address_primary->country_code = $merge->address_primary->country_code;
         }
         $contact->address_primary->save();
         //emergency_contact_info
         if (NULL === $contact->emergency_contact) {
             $contact->emergency_contact = new \montserrat\EmergencyContact();
             $contact->emergency_contact->contact_id = $contact->id;
         }
         if (empty($contact->emergency_contact->name) && !empty($merge->emergency_contact->name)) {
             $contact->emergency_contact->name = $merge->emergency_contact->name;
         }
         if (empty($contact->emergency_contact->relationship) && !empty($merge->emergency_contact->relationship)) {
             $contact->emergency_contact->relationship = $merge->emergency_contact->relationship;
         }
         if (empty($contact->emergency_contact->phone) && !empty($merge->emergency_contact->phone)) {
             $contact->emergency_contact->phone = $merge->emergency_contact->phone;
         }
         if (empty($contact->emergency_contact->phone_alternate) && !empty($merge->emergency_contact->phone_alternate)) {
             $contact->emergency_contact->phone_alternate = $merge->emergency_contact->phone_alternate;
         }
         $contact->emergency_contact->save();
         //emails
         foreach ($merge->emails as $email) {
             $contact_email = \montserrat\Email::firstOrNew(['contact_id' => $contact->id, 'location_type_id' => $email->location_type_id]);
             $contact_email->contact_id = $contact->id;
             $contact_email->location_type_id = $email->location_type_id;
             $contact_email->is_primary = $email->is_primary;
             //only create or overwrite if the current email address for the location is empty
             if (empty($contact_email->email)) {
                 $contact_email->email = $email->email;
                 $contact_email->save();
             }
         }
         //phones
         foreach ($merge->phones as $phone) {
             $contact_phone = \montserrat\Phone::firstOrNew(['contact_id' => $contact->id, "location_type_id" => $phone->location_type_id, "phone_type" => $phone->phone_type]);
             $contact_phone->contact_id = $contact->id;
             $contact_phone->location_type_id = $phone->location_type_id;
             $contact_phone->phone_type = $phone->phone_type;
             $contact_phone->is_primary = $phone->is_primary;
             //only create or overwrite if the current email address for the location is empty
             if (empty($contact_phone->phone)) {
                 $contact_phone->phone = $phone->phone;
                 $contact_phone->save();
             }
         }
         //notes - move all from merge to contact
         foreach ($merge->notes as $note) {
             $note->entity_id = $contact_id;
             $note->save();
         }
         //groups - move all from merge to contact
         foreach ($merge->groups as $group) {
             $group_exist = \montserrat\GroupContact::whereContactId($contact_id)->whereGroupId($group->group_id)->first();
             if (!isset($group_exist)) {
                 $group->contact_id = $contact_id;
                 $group->save();
             }
         }
         //relationships
         foreach ($merge->a_relationships as $a_relationship) {
             $a_relationship_exist = \montserrat\Relationship::whereContactIdA($contact_id)->whereContactIdB($a_relationship->contact_id_b)->whereRelationshipTypeId($a_relationship->relationship_type_id)->first();
             if (!isset($a_relationship_exist)) {
                 $a_relationship->contact_id_a = $contact_id;
                 $a_relationship->save();
             }
         }
         foreach ($merge->b_relationships as $b_relationship) {
             $b_relationship_exist = \montserrat\Relationship::whereContactIdB($contact_id)->whereContactIdA($b_relationship->contact_id_a)->whereRelationshipTypeId($b_relationship->relationship_type_id)->first();
             if (!isset($b_relationship_exist)) {
                 $b_relationship->contact_id_b = $contact_id;
                 $b_relationship->save();
             }
         }
         //touchpoints
         foreach ($merge->touchpoints as $touchpoint) {
             $touchpoint->person_id = $contact_id;
             $touchpoint->save();
         }
         //attachments
         foreach ($merge->attachments as $attachment) {
             $path = 'contact/' . $merge_id . '/attachments/' . $attachment->uri;
             $newpath = 'contact/' . $contact_id . '/attachments/' . $attachment->uri;
             Storage::move($path, $newpath);
             $attachment->entity_id = $contact->id;
             $attachment->save();
         }
     }
     return view('persons.merge', compact('contact', 'duplicates'));
 }
Esempio n. 12
0
 public function tylerdiocese()
 {
     $parishes = \montserrat\Contact::whereSubcontactType(CONTACT_TYPE_PARISH)->orderBy('organization_name', 'asc')->with('addresses.state', 'phones', 'emails', 'websites', 'pastor.contact_b', 'diocese.contact_a')->whereHas('diocese.contact_a', function ($query) {
         $query->where('contact_id_a', '=', CONTACT_DIOCESE_TYLER);
     })->get();
     return view('parishes.tylerdiocese', compact('parishes'));
     //
 }