PhysiciansController.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Traits\StringGeneratorTrait;
  4. use Ramsey\Uuid\Uuid;
  5. use Illuminate\Http\Request;
  6. use App\Models\PhysicianTrainingRequest;
  7. use App\Models\PhysicianContactMessage;
  8. use App\Models\PhysicianDirectoryListingRequest;
  9. use App\Models\PhysicianMarketingMaterialsRequest;
  10. use App\Models\LigatorOrder;
  11. class PhysiciansController extends Controller
  12. {
  13. use StringGeneratorTrait;
  14. public function index(Request $request) {
  15. return view('app.physicians.index');
  16. }
  17. public function instructionsForUse(Request $request){
  18. return view('app.physicians.instructions-for-use');
  19. }
  20. public function practiceSupport(Request $request){
  21. return view('app.physicians.practice-support');
  22. }
  23. public function practiceSupportReimbursement(Request $request){
  24. return view('app.physicians.practice-support.reimbursement');
  25. }
  26. public function practiceSupportTraining(Request $request){
  27. return view('app.physicians.practice-support.training');
  28. }
  29. public function practiceSupportDirectoryListing(Request $request){
  30. return view('app.physicians.practice-support.directory-listing');
  31. }
  32. public function orderProducts(Request $request){
  33. return view('app.physicians.order-products');
  34. }
  35. public function orderProductsLigators(Request $request){
  36. return view('app.physicians.order-products.ligators');
  37. }
  38. public function orderProductsMarketing(Request $request){
  39. return view('app.physicians.order-products.marketing');
  40. }
  41. public function orderProductsObp(Request $request){
  42. return view('app.physicians.order-products.obp');
  43. }
  44. public function fdaRegistration(Request $request){
  45. return view('app.physicians.fda-registration');
  46. }
  47. public function contactUs(Request $request){
  48. return view('app.physicians.contact-us');
  49. }
  50. public function getTrained(Request $request){
  51. return view('app.physicians.get-trained');
  52. }
  53. public function reimbursementGuide(Request $request){
  54. return view('app.physicians.reimbursement-guide');
  55. }
  56. public function privacy() {
  57. return view('app.privacy');
  58. }
  59. public function terms() {
  60. return view('app.terms');
  61. }
  62. public function submitTrainingRequest(Request $request) {
  63. $request->validate([
  64. 'name_first' => 'required|string',
  65. 'name_last' => 'required|string',
  66. 'practice_name' => 'required|string',
  67. 'email' => 'required|email',
  68. 'phone' => 'required|string',
  69. 'zip' => 'required|string',
  70. 'training_type' => 'required|string',
  71. 'training_format' => 'required|string',
  72. 'g-recaptcha-response' => 'required|recaptcha'
  73. ]);
  74. $request['form_name'] = 'physician_training_request';
  75. $record = new PhysicianTrainingRequest;
  76. $record->iid = $this->makeIID();
  77. $record->uid = Uuid::uuid6();
  78. $record->name_first = $request->get('name_first');
  79. $record->name_last = $request->get('name_last');
  80. $record->practice_name = $request->get('practice_name');
  81. $record->email = $request->get('email');
  82. $record->phone = $request->get('phone');
  83. $record->zip = $request->get('zip');
  84. $record->training_type = $request->get('training_type');
  85. $record->training_type_other = $request->get('training_type_other');
  86. $record->training_format = $request->get('training_format');
  87. $record->notes = $request->get('notes');
  88. $record->save();
  89. $this->saveWebForm($request);
  90. $this->sendWebsiteEmailNotification([
  91. 'template' => 'training-request',
  92. 'subject' => 'Hemband Training Request',
  93. 'data' => $record
  94. ]);
  95. return redirect()->back()->with('success', 'Your request has been submitted!');
  96. }
  97. public function submitContactUs(Request $request){
  98. $request->validate([
  99. 'name_prefix' => 'required|string',
  100. 'name_first' => 'required|string',
  101. 'name_last' => 'required|string',
  102. 'practice_name' => 'required|string',
  103. 'email' => 'required|email',
  104. 'phone' => 'required|string',
  105. 'zip' => 'required|string',
  106. 'message' => 'required|string',
  107. ]);
  108. $request['form_name'] = 'physician_contact_message';
  109. $record = new PhysicianContactMessage;
  110. $record->iid = $this->makeIID();
  111. $record->uid = Uuid::uuid6();
  112. $record->name_prefix = $request->get('name_prefix');
  113. $record->name_first = $request->get('name_first');
  114. $record->name_last = $request->get('name_last');
  115. $record->practice_name = $request->get('practice_name');
  116. $record->email = $request->get('email');
  117. $record->phone = $request->get('phone');
  118. $record->zip = $request->get('zip');
  119. $record->message = $request->get('message');
  120. $record->save();
  121. $this->saveWebForm($request);
  122. $this->sendWebsiteEmailNotification([
  123. 'template' => 'physician-contact',
  124. 'subject' => 'Hemband Physician Contact Form',
  125. 'data' => $record
  126. ]);
  127. return redirect()->back()->with('success', 'Your request has been submitted!');
  128. }
  129. public function submitPracticeSupportDirectoryListing(Request $request){
  130. $request->validate([
  131. 'name_first' => 'required|string',
  132. 'name_last' => 'required|string',
  133. 'title' => 'required|string',
  134. 'practice_name' => 'required|string',
  135. 'email' => 'required|email',
  136. 'phone' => 'required|string',
  137. 'zip' => 'required|string',
  138. 'comment' => 'required|string',
  139. 'g-recaptcha-response' => 'required|recaptcha'
  140. ]);
  141. $request['form_name'] = 'physician_directory_listing_request';
  142. $record = new PhysicianDirectoryListingRequest;
  143. $record->iid = $this->makeIID();
  144. $record->uid = Uuid::uuid6();
  145. $record->name_first = $request->get('name_first');
  146. $record->name_last = $request->get('name_last');
  147. $record->title = $request->get('title');
  148. $record->practice_name = $request->get('practice_name');
  149. $record->email = $request->get('email');
  150. $record->phone = $request->get('phone');
  151. $record->zip = $request->get('zip');
  152. $record->comment = $request->get('comment');
  153. $record->save();
  154. $this->saveWebForm($request);
  155. $this->sendWebsiteEmailNotification([
  156. 'template' => 'physician-directory-listing-request',
  157. 'subject' => 'Hemband Physician Directory Listing Request Form',
  158. 'data' => $record
  159. ]);
  160. return redirect()->back()->with('success', 'Your request has been submitted!');
  161. }
  162. public function submitOrderProductsMarketing(Request $request) {
  163. $request->validate([
  164. 'name_first' => 'required|string',
  165. 'name_last' => 'required|string',
  166. 'title' => 'required|string',
  167. 'practice_name' => 'required|string',
  168. 'practice_address' => 'required|string',
  169. 'email' => 'required|email',
  170. 'phone' => 'required|string',
  171. 'zip' => 'required|string',
  172. 'comment' => 'required|string',
  173. 'g-recaptcha-response' => 'required|recaptcha'
  174. ]);
  175. $request['form_name'] = 'physician_marketing_materials_request';
  176. $record = new PhysicianMarketingMaterialsRequest;
  177. $record->iid = $this->makeIID();
  178. $record->uid = Uuid::uuid6();
  179. $record->name_first = $request->get('name_first');
  180. $record->name_last = $request->get('name_last');
  181. $record->title = $request->get('title');
  182. $record->practice_name = $request->get('practice_name');
  183. $record->practice_address = $request->get('practice_address');
  184. $record->email = $request->get('email');
  185. $record->phone = $request->get('phone');
  186. $record->zip = $request->get('zip');
  187. $record->comment = $request->get('comment');
  188. $record->save();
  189. $this->saveWebForm($request);
  190. $this->sendWebsiteEmailNotification([
  191. 'template' => 'physician-marketing-materials-request',
  192. 'subject' => 'Hemband Physician Marketing Materials Request Form',
  193. 'data' => $record
  194. ]);
  195. return redirect()->back()->with('success', 'Your request has been submitted!');
  196. }
  197. public function submitOrderLigators(Request $request){
  198. $request->validate([
  199. 'order_date' => 'required|string',
  200. 'company_name' => 'required|string',
  201. 'order_phyisician_name' => 'required|string',
  202. 'phone_number' => 'required|string',
  203. 'purchasing_contact_name' => 'required|string',
  204. 'email' => 'required|email',
  205. 'state' => 'required|string',
  206. 'city' => 'required|string',
  207. 'zip' => 'required|string',
  208. 'shipping_address' => 'required|string',
  209. 'g-recaptcha-response' => 'required|recaptcha'
  210. ]);
  211. $request['form_name'] = 'physician_ligator_order';
  212. $record = new LigatorOrder;
  213. $record->iid = $this->makeIID();
  214. $record->uid = Uuid::uuid6();
  215. $record->order_date = $request->get('order_date');
  216. $record->postal_code = $request->get('postal_code');
  217. $record->company_name = $request->get('company_name');
  218. $record->group_npi = $request->get('group_npi');
  219. $record->order_phyisician_name = $request->get('order_phyisician_name');
  220. $record->physician_npi = $request->get('physician_npi');
  221. $record->purchasing_contact_name = $request->get('purchasing_contact_name');
  222. $record->phone_number = $request->get('phone_number');
  223. $record->email = $request->get('email');
  224. $record->shipping_address = $request->get('shipping_address');
  225. $record->line_2 = $request->get('line_2');
  226. $record->city = $request->get('city');
  227. $record->state = $request->get('state');
  228. $record->zip = $request->get('zip');
  229. $record->quantity = $request->get('quantity');
  230. $record->memo = $request->get('memo');
  231. $record->delivery_option = $request->get('delivery_option');
  232. $record->agrees_to_terms = $request->get('agrees_to_terms');
  233. $record->save();
  234. $this->saveWebForm($request);
  235. $this->sendWebsiteEmailNotification([
  236. 'template' => 'physician-order-ligators',
  237. 'subject' => 'Physician Ligator Order',
  238. 'data' => $record
  239. ]);
  240. return redirect()->back()->with('orderIID', $record->iid)->with('success', 'Your order has been submitted!');
  241. }
  242. }