/**
  * 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', 'display_name' => 'required', 'sort_name' => 'required', 'email_primary' => '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']);
     $vendor = \montserrat\Contact::with('address_primary.state', 'address_primary.location', 'phone_primary.location', 'phone_main_fax', 'email_primary.location', 'website_main', 'notes')->findOrFail($request->input('id'));
     $vendor->organization_name = $request->input('organization_name');
     $vendor->display_name = $request->input('display_name');
     $vendor->sort_name = $request->input('sort_name');
     $vendor->save();
     if (empty($vendor->address_primary)) {
         $address_primary = new \montserrat\Address();
     } else {
         $address_primary = \montserrat\Address::findOrNew($vendor->address_primary->id);
     }
     $address_primary->contact_id = $vendor->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 = $request->input('country_id');
     $address_primary->save();
     if (empty($vendor->phone_primary)) {
         $phone_primary = new \montserrat\Address();
     } else {
         $phone_primary = \montserrat\Phone::findOrNew($vendor->phone_primary->id);
     }
     $phone_primary->contact_id = $vendor->id;
     $phone_primary->location_type_id = LOCATION_TYPE_MAIN;
     $phone_primary->is_primary = 1;
     $phone_primary->phone_type = 'Phone';
     $phone_primary->phone = $request->input('phone_main_phone');
     $phone_primary->save();
     if (empty($vendor->phone_main_fax)) {
         $phone_main_fax = new \montserrat\Phone();
     } else {
         $phone_main_fax = \montserrat\Phone::findOrNew($vendor->phone_main_fax->id);
     }
     $phone_main_fax->contact_id = $vendor->id;
     $phone_main_fax->location_type_id = LOCATION_TYPE_MAIN;
     $phone_main_fax->phone_type = 'Fax';
     $phone_main_fax->phone = $request->input('phone_main_fax');
     $phone_main_fax->save();
     if (empty($vendor->email_primary)) {
         $email_primary = new \montserrat\Email();
     } else {
         $email_primary = \montserrat\Email::findOrNew($vendor->email_primary->id);
     }
     $email_primary->contact_id = $vendor->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 (null !== $request->file('avatar')) {
         $description = 'Avatar for ' . $vendor->organization_name;
         $attachment = new AttachmentsController();
         $attachment->update_attachment($request->file('avatar'), 'contact', $vendor->id, 'avatar', $description);
     }
     if (null !== $request->file('attachment')) {
         $description = $request->input('attachment_description');
         $attachment = new AttachmentsController();
         $attachment->update_attachment($request->file('attachment'), 'contact', $vendor->id, 'attachment', $description);
     }
     $url_main = \montserrat\Website::firstOrNew(['contact_id' => $vendor->id, 'website_type' => 'Main']);
     $url_main->contact_id = $vendor->id;
     $url_main->url = $request->input('url_main');
     $url_main->website_type = 'Main';
     $url_main->save();
     $url_work = \montserrat\Website::firstOrNew(['contact_id' => $vendor->id, 'website_type' => 'Work']);
     $url_work->contact_id = $vendor->id;
     $url_work->url = $request->input('url_work');
     $url_work->website_type = 'Work';
     $url_work->save();
     $url_facebook = \montserrat\Website::firstOrNew(['contact_id' => $vendor->id, 'website_type' => 'Facebook']);
     $url_facebook->contact_id = $vendor->id;
     $url_facebook->url = $request->input('url_facebook');
     $url_facebook->website_type = 'Facebook';
     $url_facebook->save();
     $url_google = \montserrat\Website::firstOrNew(['contact_id' => $vendor->id, 'website_type' => 'Google']);
     $url_google->contact_id = $vendor->id;
     $url_google->url = $request->input('url_google');
     $url_google->website_type = 'Google';
     $url_google->save();
     $url_instagram = \montserrat\Website::firstOrNew(['contact_id' => $vendor->id, 'website_type' => 'Instagram']);
     $url_instagram->contact_id = $vendor->id;
     $url_instagram->url = $request->input('url_instagram');
     $url_instagram->website_type = 'Instagram';
     $url_instagram->save();
     $url_linkedin = \montserrat\Website::firstOrNew(['contact_id' => $vendor->id, 'website_type' => 'LinkedIn']);
     $url_linkedin->contact_id = $vendor->id;
     $url_linkedin->url = $request->input('url_linkedin');
     $url_linkedin->website_type = 'LinkedIn';
     $url_linkedin->save();
     $url_twitter = \montserrat\Website::firstOrNew(['contact_id' => $vendor->id, 'website_type' => 'Twitter']);
     $url_twitter->contact_id = $vendor->id;
     $url_twitter->url = $request->input('url_twitter');
     $url_twitter->website_type = 'Twitter';
     $url_twitter->save();
     return Redirect::action('VendorsController@index');
 }
 /**
  * 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', 'display_name' => 'required', 'sort_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']);
     $diocese = \montserrat\Contact::with('bishops.contact_b', 'parishes.contact_b', 'address_primary.state', 'address_primary.location', 'phone_primary.location', 'phone_main_fax.location', 'email_primary.location', 'website_main', 'notes')->findOrFail($id);
     $diocese->organization_name = $request->input('organization_name');
     $diocese->display_name = $request->input('display_name');
     $diocese->sort_name = $request->input('sort_name');
     $diocese->contact_type = CONTACT_TYPE_ORGANIZATION;
     $diocese->subcontact_type = CONTACT_TYPE_DIOCESE;
     $diocese->save();
     $address_primary = \montserrat\Address::findOrNew($diocese->address_primary->id);
     $address_primary->contact_id = $diocese->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();
     $phone_primary = \montserrat\Phone::findOrNew($diocese->phone_primary->id);
     $phone_primary->contact_id = $diocese->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($diocese->phone_main_fax)) {
         $phone_main_fax = new \montserrat\Phone();
     } else {
         $phone_main_fax = \montserrat\Phone::findOrNew($diocese->phone_main_fax->id);
     }
     $phone_main_fax->contact_id = $diocese->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();
     $email_primary = \montserrat\Email::findOrNew($diocese->email_primary->id);
     $email_primary->contact_id = $diocese->id;
     $email_primary->is_primary = 1;
     $email_primary->location_type_id = LOCATION_TYPE_MAIN;
     $email_primary->email = $request->input('email_primary');
     $email_primary->save();
     $url_main = \montserrat\Website::firstOrNew(['contact_id' => $diocese->id, 'website_type' => 'Main']);
     $url_main->contact_id = $diocese->id;
     $url_main->url = $request->input('url_main');
     $url_main->website_type = 'Main';
     $url_main->save();
     $url_work = \montserrat\Website::firstOrNew(['contact_id' => $diocese->id, 'website_type' => 'Work']);
     $url_work->contact_id = $diocese->id;
     $url_work->url = $request->input('url_work');
     $url_work->website_type = 'Work';
     $url_work->save();
     $url_facebook = \montserrat\Website::firstOrNew(['contact_id' => $diocese->id, 'website_type' => 'Facebook']);
     $url_facebook->contact_id = $diocese->id;
     $url_facebook->url = $request->input('url_facebook');
     $url_facebook->website_type = 'Facebook';
     $url_facebook->save();
     $url_google = \montserrat\Website::firstOrNew(['contact_id' => $diocese->id, 'website_type' => 'Google']);
     $url_google->contact_id = $diocese->id;
     $url_google->url = $request->input('url_google');
     $url_google->website_type = 'Google';
     $url_google->save();
     $url_instagram = \montserrat\Website::firstOrNew(['contact_id' => $diocese->id, 'website_type' => 'Instagram']);
     $url_instagram->contact_id = $diocese->id;
     $url_instagram->url = $request->input('url_instagram');
     $url_instagram->website_type = 'Instagram';
     $url_instagram->save();
     $url_linkedin = \montserrat\Website::firstOrNew(['contact_id' => $diocese->id, 'website_type' => 'LinkedIn']);
     $url_linkedin->contact_id = $diocese->id;
     $url_linkedin->url = $request->input('url_linkedin');
     $url_linkedin->website_type = 'LinkedIn';
     $url_linkedin->save();
     $url_twitter = \montserrat\Website::firstOrNew(['contact_id' => $diocese->id, 'website_type' => 'Twitter']);
     $url_twitter->contact_id = $diocese->id;
     $url_twitter->url = $request->input('url_twitter');
     $url_twitter->website_type = 'Twitter';
     $url_twitter->save();
     if ($request->input('bishop_id') > 0) {
         $bishop_id = $request->input('bishop_id');
         $relationship_bishop = \montserrat\Relationship::firstOrNew(['contact_id_a' => $diocese->id, 'contact_id_b' => $bishop_id, 'relationship_type_id' => RELATIONSHIP_TYPE_BISHOP, 'is_active' => 1]);
         $relationship_bishop->contact_id_a = $diocese->id;
         $relationship_bishop->contact_id_b = $bishop_id;
         $relationship_bishop->relationship_type_id = RELATIONSHIP_TYPE_BISHOP;
         $relationship_bishop->is_active = 1;
         $relationship_bishop->save();
     }
     if (null !== $request->file('avatar')) {
         $description = 'Avatar for ' . $diocese->organization_name;
         $attachment = new AttachmentsController();
         $attachment->update_attachment($request->file('avatar'), 'contact', $diocese->id, 'avatar', $description);
     }
     if (null !== $request->file('attachment')) {
         $description = $request->input('attachment_description');
         $attachment = new AttachmentsController();
         $attachment->update_attachment($request->file('attachment'), 'contact', $diocese->id, 'attachment', $description);
     }
     return Redirect::action('DiocesesController@index');
 }