/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // $this->validate($request, ['organization_name' => 'required', 'bishop_id' => 'integer|min:0', 'email_main' => 'email', 'url_main' => 'url', 'url_facebook' => 'url|regex:/facebook\\.com\\/.+/i', 'url_google' => 'url|regex:/plus\\.google\\.com\\/.+/i', 'url_twitter' => 'url|regex:/twitter\\.com\\/.+/i', 'url_instagram' => 'url|regex:/instagram\\.com\\/.+/i', 'url_linkedin' => 'url|regex:/linkedin\\.com\\/.+/i', 'phone_main_phone' => 'phone', 'phone_main_fax' => 'phone', 'avatar' => 'image|max:5000', 'attachment' => 'file|mimes:pdf,doc,docx|max:10000', 'attachment_description' => 'string|max:200']); $organization = \montserrat\Contact::with('address_primary.state', 'address_primary.location', 'phone_main_phone.location', 'phone_main_fax.location', 'email_primary.location', 'website_main', 'note_organization')->findOrFail($id); $organization->organization_name = $request->input('organization_name'); $organization->display_name = $request->input('organization_name'); $organization->sort_name = $request->input('sort_name'); $organization->contact_type = CONTACT_TYPE_ORGANIZATION; $organization->subcontact_type = $request->input('subcontact_type'); $organization->save(); if (empty($organization->address_primary)) { $address_primary = new \montserrat\Address(); } else { $address_primary = \montserrat\Address::findOrNew($organization->address_primary->id); } $address_primary->contact_id = $organization->id; $address_primary->location_type_id = LOCATION_TYPE_MAIN; $address_primary->is_primary = 1; $address_primary->street_address = $request->input('street_address'); $address_primary->supplemental_address_1 = $request->input('supplemental_address_1'); $address_primary->city = $request->input('city'); $address_primary->state_province_id = $request->input('state_province_id'); $address_primary->postal_code = $request->input('postal_code'); $address_primary->country_id = COUNTRY_ID_USA; $address_primary->is_primary = 1; $address_primary->save(); // dd($organization->phone_main_phone); if (empty($organization->phone_main_phone)) { $phone_primary = new \montserrat\Phone(); } else { $phone_primary = \montserrat\Phone::findOrNew($organization->phone_main_phone->id); } $phone_primary->contact_id = $organization->id; $phone_primary->location_type_id = LOCATION_TYPE_MAIN; $phone_primary->is_primary = 1; $phone_primary->phone = $request->input('phone_main_phone'); $phone_primary->phone_type = 'Phone'; $phone_primary->save(); if (empty($organization->phone_main_fax)) { $phone_main_fax = new \montserrat\Phone(); } else { $phone_main_fax = \montserrat\Phone::findOrNew($organization->phone_main_fax->id); } $phone_main_fax->contact_id = $organization->id; $phone_main_fax->location_type_id = LOCATION_TYPE_MAIN; $phone_main_fax->phone = $request->input('phone_main_fax'); $phone_main_fax->phone_type = 'Fax'; $phone_main_fax->save(); if (empty($organization->email_primary)) { $email_primary = new \montserrat\Email(); } else { $email_primary = \montserrat\Email::findOrNew($organization->email_primary->id); } $email_primary->contact_id = $organization->id; $email_primary->is_primary = 1; $email_primary->location_type_id = LOCATION_TYPE_MAIN; $email_primary->email = $request->input('email_primary'); $email_primary->save(); if (empty($organization->note_organization)) { $organization_note = new \montserrat\Note(); } else { $organization_note = \montserrat\Note::findOrNew($organization->note_organization->id); } $organization_note->entity_table = 'contact'; $organization_note->entity_id = $organization->id; $organization_note->note = $request->input('note'); $organization_note->subject = 'Organization Note'; $organization_note->save(); if (null !== $request->file('avatar')) { $description = 'Avatar for ' . $organization->organization_name; $attachment = new AttachmentsController(); $attachment->update_attachment($request->file('avatar'), 'contact', $organization->id, 'avatar', $description); } if (null !== $request->file('attachment')) { $description = $request->input('attachment_description'); $attachment = new AttachmentsController(); $attachment->update_attachment($request->file('attachment'), 'contact', $organization->id, 'attachment', $description); } $url_main = \montserrat\Website::firstOrNew(['contact_id' => $organization->id, 'website_type' => 'Main']); $url_main->contact_id = $organization->id; $url_main->url = $request->input('url_main'); $url_main->website_type = 'Main'; $url_main->save(); $url_work = \montserrat\Website::firstOrNew(['contact_id' => $organization->id, 'website_type' => 'Work']); $url_work->contact_id = $organization->id; $url_work->url = $request->input('url_work'); $url_work->website_type = 'Work'; $url_work->save(); $url_facebook = \montserrat\Website::firstOrNew(['contact_id' => $organization->id, 'website_type' => 'Facebook']); $url_facebook->contact_id = $organization->id; $url_facebook->url = $request->input('url_facebook'); $url_facebook->website_type = 'Facebook'; $url_facebook->save(); $url_google = \montserrat\Website::firstOrNew(['contact_id' => $organization->id, 'website_type' => 'Google']); $url_google->contact_id = $organization->id; $url_google->url = $request->input('url_google'); $url_google->website_type = 'Google'; $url_google->save(); $url_instagram = \montserrat\Website::firstOrNew(['contact_id' => $organization->id, 'website_type' => 'Instagram']); $url_instagram->contact_id = $organization->id; $url_instagram->url = $request->input('url_instagram'); $url_instagram->website_type = 'Instagram'; $url_instagram->save(); $url_linkedin = \montserrat\Website::firstOrNew(['contact_id' => $organization->id, 'website_type' => 'LinkedIn']); $url_linkedin->contact_id = $organization->id; $url_linkedin->url = $request->input('url_linkedin'); $url_linkedin->website_type = 'LinkedIn'; $url_linkedin->save(); $url_twitter = \montserrat\Website::firstOrNew(['contact_id' => $organization->id, 'website_type' => 'Twitter']); $url_twitter->contact_id = $organization->id; $url_twitter->url = $request->input('url_twitter'); $url_twitter->website_type = 'Twitter'; $url_twitter->save(); return Redirect::action('OrganizationsController@index'); }
public function merge_destroy($id) { // TODO: consider creating a restore/{id} or undelete/{id} //delete existing groups and relationships when deleting user \montserrat\Relationship::whereContactIdA($id)->delete(); \montserrat\Relationship::whereContactIdB($id)->delete(); \montserrat\GroupContact::whereContactId($id)->delete(); //delete address, email, phone, website, emergency contact, notes for deleted users \montserrat\Address::whereContactId($id)->delete(); \montserrat\Email::whereContactId($id)->delete(); \montserrat\Phone::whereContactId($id)->delete(); \montserrat\Website::whereContactId($id)->delete(); \montserrat\EmergencyContact::whereContactId($id)->delete(); \montserrat\Note::whereContactId($id)->delete(); \montserrat\Touchpoint::wherePersonId($id)->delete(); //delete registrations \montserrat\Registration::whereContactId($id)->delete(); \montserrat\Contact::destroy($id); return Redirect::back(); }