PhysiciansController.php 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  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.hcp.index');
  16. }
  17. public function instructionsForUse(Request $request){
  18. return view('app.hcp.instructions-for-use');
  19. }
  20. public function practiceSupport(Request $request){
  21. return view('app.hcp.practice-support');
  22. }
  23. public function practiceSupportReimbursement(Request $request){
  24. return view('app.hcp.practice-support.reimbursement');
  25. }
  26. public function practiceSupportTraining(Request $request){
  27. return view('app.hcp.practice-support.training');
  28. }
  29. public function practiceSupportDirectoryListing(Request $request){
  30. return view('app.hcp.practice-support.directory-listing');
  31. }
  32. public function orderProducts(Request $request){
  33. return view('app.hcp.order-products');
  34. }
  35. public function orderProductsLigators(Request $request){
  36. return view('app.hcp.order-products.ligators');
  37. }
  38. public function orderProductsSamples(Request $request){
  39. return view('app.hcp.order-products.samples');
  40. }
  41. public function orderProductsMarketing(Request $request){
  42. return view('app.hcp.order-products.marketing');
  43. }
  44. public function orderProductsObp(Request $request){
  45. return view('app.hcp.order-products.obp');
  46. }
  47. public function fdaRegistration(Request $request){
  48. return view('app.hcp.fda-registration');
  49. }
  50. public function contactUs(Request $request){
  51. return view('app.hcp.contact-us');
  52. }
  53. public function getTrained(Request $request){
  54. return view('app.hcp.get-trained');
  55. }
  56. public function reimbursementGuide(Request $request){
  57. return view('app.hcp.reimbursement-guide');
  58. }
  59. public function privacy() {
  60. return view('app.privacy');
  61. }
  62. public function terms() {
  63. return view('app.terms');
  64. }
  65. public function termsOfSale() {
  66. return view('app.terms-of-sale');
  67. }
  68. public function suctionEssentials() {
  69. return view('app.suction-essentials');
  70. }
  71. public function submitTrainingRequest(Request $request) {
  72. $request->validate([
  73. 'name_first' => 'required|string',
  74. 'name_last' => 'required|string',
  75. 'practice_name' => 'required|string',
  76. 'email' => 'required|email',
  77. 'phone' => 'required|string',
  78. 'zip' => 'required|string',
  79. 'training_type' => 'required|string',
  80. 'training_format' => 'required|string',
  81. 'g-recaptcha-response' => 'required|recaptcha'
  82. ]);
  83. $request['form_name'] = 'physician_training_request';
  84. $this->saveWebForm($request);
  85. $this->sendWebsiteEmailNotification([
  86. 'template' => 'training-request',
  87. 'subject' => 'Hemband Training Request',
  88. 'data' => (object) $request->all()
  89. ]);
  90. return redirect()->back()->with('success', 'Your request has been submitted!');
  91. }
  92. public function submitContactUs(Request $request){
  93. $request->validate([
  94. 'name_prefix' => 'required|string',
  95. 'name_first' => 'required|string',
  96. 'name_last' => 'required|string',
  97. 'practice_name' => 'required|string',
  98. 'email' => 'required|email',
  99. 'phone' => 'required|string',
  100. 'zip' => 'required|string',
  101. 'message' => 'required|string',
  102. 'g-recaptcha-response' => 'required|recaptcha'
  103. ]);
  104. $request['form_name'] = 'physician_contact_message';
  105. $this->saveWebForm($request);
  106. $this->sendWebsiteEmailNotification([
  107. 'template' => 'physician-contact',
  108. 'subject' => 'Hemband Physician Contact Form',
  109. 'data' => (object) $request->all()
  110. ]);
  111. return redirect()->back()->with('success', 'Your request has been submitted!');
  112. }
  113. public function submitPracticeSupportDirectoryListing(Request $request){
  114. $request->validate([
  115. 'name_first' => 'required|string',
  116. 'name_last' => 'required|string',
  117. 'title' => 'required|string',
  118. 'practice_name' => 'required|string',
  119. 'email' => 'required|email',
  120. 'phone' => 'required|string',
  121. 'zip' => 'required|string',
  122. 'comment' => 'required|string',
  123. 'g-recaptcha-response' => 'required|recaptcha'
  124. ]);
  125. $request['form_name'] = 'physician_directory_listing_request';
  126. $this->saveWebForm($request);
  127. $this->sendWebsiteEmailNotification([
  128. 'template' => 'physician-directory-listing-request',
  129. 'subject' => 'Hemband Physician Directory Listing Request Form',
  130. 'data' => (object) $request->all()
  131. ]);
  132. return redirect()->back()->with('success', 'Your request has been submitted!');
  133. }
  134. public function submitOrderProductsMarketing(Request $request) {
  135. $request->validate([
  136. 'name_first' => 'required|string',
  137. 'name_last' => 'required|string',
  138. 'title' => 'required|string',
  139. 'practice_name' => 'required|string',
  140. 'practice_address' => 'required|string',
  141. 'email' => 'required|email',
  142. 'phone' => 'required|string',
  143. 'zip' => 'required|string',
  144. 'comment' => 'required|string',
  145. 'g-recaptcha-response' => 'required|recaptcha'
  146. ]);
  147. $request['form_name'] = 'physician_marketing_materials_request';
  148. $this->saveWebForm($request);
  149. $this->sendWebsiteEmailNotification([
  150. 'template' => 'physician-marketing-materials-request',
  151. 'subject' => 'Hemband Physician Marketing Materials Request Form',
  152. 'data' => (object) $request->all()
  153. ]);
  154. return redirect()->back()->with('success', 'Your request has been submitted!');
  155. }
  156. public function submitRequestSamples(Request $request){
  157. $request->validate([
  158. 'company_name' => 'required|string',
  159. 'order_phyisician_name' => 'required|string',
  160. 'phone_number' => 'required|string',
  161. 'purchasing_contact_name' => 'required|string',
  162. 'email' => 'required|email',
  163. 'state' => 'required|string',
  164. 'city' => 'required|string',
  165. 'zip' => 'required|string',
  166. 'shipping_address' => 'required|string',
  167. 'g-recaptcha-response' => 'required|recaptcha'
  168. ]);
  169. $request['form_name'] = 'physician_request_sample';
  170. $record = $this->saveWebForm($request);
  171. //
  172. $this->sendWebsiteEmailNotification([
  173. 'template' => 'physician-request-sample',
  174. 'subject' => 'Physician Request Sample',
  175. 'data' => (object) $request->all()
  176. ]);
  177. return redirect()->back()->with('orderIID', $record->iid)->with('success', 'Your sample has been submitted!');
  178. }
  179. public function submitOrderLigators(Request $request){
  180. $request->validate([
  181. 'order_date' => 'required|string',
  182. 'company_name' => 'required|string',
  183. 'order_phyisician_name' => 'required|string',
  184. 'phone_number' => 'required|string',
  185. 'purchasing_contact_name' => 'required|string',
  186. 'email' => 'required|email',
  187. 'state' => 'required|string',
  188. 'city' => 'required|string',
  189. 'zip' => 'required|string',
  190. 'shipping_address' => 'required|string',
  191. 'g-recaptcha-response' => 'required|recaptcha'
  192. ]);
  193. $request['form_name'] = 'physician_ligator_order';
  194. $record = $this->saveWebForm($request);
  195. $this->sendWebsiteEmailNotification([
  196. 'template' => 'physician-order-ligators',
  197. 'subject' => 'Physician Ligator Order',
  198. 'data' => (object) $request->all()
  199. ]);
  200. return redirect()->back()->with('orderIID', $record->iid)->with('success', 'Your order has been submitted!');
  201. }
  202. }