function save_patient_data(Request $request) { if ($request->ajax()) { $request->validate([ 'iActivityAssignID' => 'required|not_regex:/<(?:(?!input)[^>])*>(?:<\\ /[^>]*>)?/', 'iStepID' => 'required|not_regex:/<(?:(?!input)[^>])*>(?:<\\ /[^>]*>)?/', ], ['required' => 'This field is required.']); try { $iActivityAssignID = Crypt::decrypt($request->iActivityAssignID); $iStepID = Crypt::decrypt($request->iStepID); } catch (DecryptException $e) { $return['message'] = $e; $return['status'] = 0; echo json_encode($return); } //get type of step $step_type = StepMaster::findOrFail($iStepID)->eType; //doctor id $iDoctorID = ActivityAssign::findOrFail($iActivityAssignID)->iDoctorID; DB::beginTransaction(); try { $checkStepStatus = ActivityAssignStepStatus::where('iActivityAssignID', $iActivityAssignID)->where('iStepID', $iStepID)->first(); if (empty($checkStepStatus)) { //inser status as review pending $ActivityAssignStepStatus = new ActivityAssignStepStatus; $ActivityAssignStepStatus->iActivityAssignID = $iActivityAssignID; $ActivityAssignStepStatus->iStepID = $iStepID; $ActivityAssignStepStatus->eStatus = 'Review Pending'; $ActivityAssignStepStatus->iCreatedBy = auth()->user()->iUserID; $ActivityAssignStepStatus->iUserID = auth()->user()->iUserID; $ActivityAssignStepStatus->save(); $iActivityAssignStepStatusID = $ActivityAssignStepStatus->iActivityAssignStepStatusID; } else { $checkStepStatus = $checkStepStatus->toArray(); $iActivityAssignStepStatusID = $checkStepStatus['iActivityAssignStepStatusID']; //update step status ActivityAssignStepStatus::where('iActivityAssignStepStatusID', $iActivityAssignStepStatusID) ->update(['eStatus' => 'Review Pending']); //inactive all step data of this id ActivityAssignStepData::where('iActivityAssignStepStatusID', $iActivityAssignStepStatusID)->update(['eStatus' => 'Inactive']); } } catch (\Exception $e) { DB::rollback(); $return['message'] = 'Something went wrong'; $return['status'] = 0; echo json_encode($return); } switch ($step_type) { case 'pan': if ($request->state == 'reference') { $request->validate([ 'reference_id' => 'required', ], ['required' => 'This field is required.', 'not_regex' => 'invalid formate.']); try { $reference_id = Crypt::decrypt($request->reference_id); } catch (DecryptException $e) { $return['message'] = 'Something went wrong'; $return['status'] = 0; echo json_encode($return); die; } try { //insert Data for this step $ActivityAssignStepData = new ActivityAssignStepData; $ActivityAssignStepData->iActivityAssignID = $iActivityAssignID; $ActivityAssignStepData->iActivityAssignStepStatusID = $iActivityAssignStepStatusID; $ActivityAssignStepData->eType = 'Doctor'; $ActivityAssignStepData->eInputType = 'Data'; $ActivityAssignStepData->iReferenceID = $reference_id; $ActivityAssignStepData->save(); DB::commit(); $return['message'] = 'Data Added Successfylly.'; $return['status'] = 1; echo json_encode($return); } catch (\Exception $e) { DB::rollback(); $return['message'] = 'Something went wrong'; $return['status'] = 0; echo json_encode($return); } } else { $request->validate([ 'pan_no' => 'required|regex:/([A-Z]){5}([0-9]){4}([A-Z]){1}$/', 'vPanName' => 'required|not_regex:/<(?:(?!input)[^>])*>(?:<\\ /[^>]*>)?/', 'isVerified' => 'required|not_regex:/<(?:(?!input)[^>])*>(?:<\\ /[^>]*>)?/', 'vPanCardDoc' => 'required|max:10240|mimes:pdf', ], ['required' => 'This field is required.', 'not_regex' => 'invalid formate.']); $pan_no = $request->pan_no; $vPanName = $request->vPanName; $data['PAN No.'] = $pan_no; $data['Name as per PAN Card'] = $vPanName; $data['Verified'] = $request->isVerified; $jData = json_encode($data); // try { //insert Data for this step $ActivityAssignStepData = new ActivityAssignStepData; $ActivityAssignStepData->iActivityAssignID = $iActivityAssignID; $ActivityAssignStepData->iActivityAssignStepStatusID = $iActivityAssignStepStatusID; $ActivityAssignStepData->eType = 'Doctor'; $ActivityAssignStepData->vDocumentName = generatePanName($iDoctorID); $ActivityAssignStepData->bDocument = base64_encode($request->file('vPanCardDoc')); $ActivityAssignStepData->jData = $jData; $ActivityAssignStepData->mime_type = $request->file('vPanCardDoc')->getClientOriginalExtension(); $ActivityAssignStepData->eInputType = 'Data'; $ActivityAssignStepData->save(); //update pan card in doctor ActivityAssign::find($iActivityAssignID)->doctor()->update([ 'vDcsPANName' => $vPanName, 'vDcsPANNumber' => $pan_no, 'isDcsPanVerified' => $request->isVerified, 'dtDcsPanUpdated_at' => currentTimeStamp(), ]); DB::commit(); $return['message'] = 'Data Added Successfylly.'; $return['status'] = 1; echo json_encode($return); // } catch (\Exception $e) { // DB::rollback(); // $return['message'] = 'Something went wrong'; // $return['status'] = 0; // echo json_encode($return); // } } break; case 'gst': $request->validate([ 'isGst' => 'required', ], ['required' => 'This field is required.', 'not_regex' => 'invalid formate.']); if ($request->isGst == 'No') { $isGst = $request->isGst; $data['Is GST'] = $isGst; if ($isGst == 'Yes') $jData = json_encode($data); } else { if ($request->state == 'reference') { $request->validate([ 'vGst_readonly' => 'required|regex:/\d{2}[A-Z]{5}\d{4}[A-Z]{1}[A-Z\d]{1}[Z]{1}[A-Z\d]{1}/', 'bGstDoc' => 'required|max:10240|mimes:pdf', 'isGst' => 'required', ], ['required' => 'This field is required.', 'not_regex' => 'invalid formate.']); try { $reference_id = Crypt::decrypt($request->reference_id); } catch (DecryptException $e) { $return['message'] = 'Something went wrong'; $return['status'] = 0; echo json_encode($return); die; } $vGst_readonly = $request->vGst_readonly; $data['GST Number'] = $vGst_readonly; $data['Is GST'] = $request->isGst; } else { $request->validate([ 'vCompanyName' => 'required', 'vGst' => 'required|regex:/\d{2}[A-Z]{5}\d{4}[A-Z]{1}[A-Z\d]{1}[Z]{1}[A-Z\d]{1}/', 'bGstDoc' => 'required|max:10240|mimes:pdf', 'isGst' => 'required', 'isVerified' => 'required|not_regex:/<(?:(?!input)[^>])*>(?:<\\ /[^>]*>)?/', ], ['required' => 'This field is required.', 'not_regex' => 'invalid formate.']); $vGst = $request->vGst; $data['GST Number'] = $vGst; $data['Company Name'] = $request->vCompanyName; $data['Verified'] = $request->isVerified; $data['Is GST'] = $request->isGst; } } $jData = json_encode($data); // try { //insert Data for this step $ActivityAssignStepData = new ActivityAssignStepData; $ActivityAssignStepData->iActivityAssignID = $iActivityAssignID; $ActivityAssignStepData->iActivityAssignStepStatusID = $iActivityAssignStepStatusID; $ActivityAssignStepData->eType = 'Doctor'; $ActivityAssignStepData->jData = $jData; $ActivityAssignStepData->eInputType = 'Data'; if ($request->isGst == 'Yes') { $ActivityAssignStepData->vDocumentName = generateGSTName($iDoctorID); $ActivityAssignStepData->bDocument = base64_encode($request->file('bGstDoc')); $ActivityAssignStepData->mime_type = $request->file('bGstDoc')->getClientOriginalExtension();; } if ($request->state == 'reference') $ActivityAssignStepData->iReferenceID = $reference_id; $ActivityAssignStepData->save(); if ($request->state != 'reference' && $request->isGst == 'Yes') { //update pan card in doctor ActivityAssign::find($iActivityAssignID)->doctor()->update([ 'vDcsGSTNumber' => $data['GST Number'], 'isDcsGSTVerified' => $request->isVerified, 'vDcsCompanyName' => $data['Company Name'], 'dtDcsGSTUpdated_at' => currentTimeStamp(), ]); } DB::commit(); $return['message'] = 'Data Added Successfylly.'; $return['status'] = 1; echo json_encode($return); // } catch (\Exception $e) { // DB::rollback(); // $return['message'] = 'Something went wrong'; // $return['status'] = 0; // echo json_encode($return); // } break; case 'consent': $request->validate([ 'concent_doc' => 'required|max:10240|mimes:pdf', ], ['required' => 'This field is required.', 'not_regex' => 'invalid formate.']); //insert Document for this step $ActivityAssignStepData2 = new ActivityAssignStepData; $ActivityAssignStepData2->iActivityAssignID = $iActivityAssignID; $ActivityAssignStepData2->iActivityAssignStepStatusID = $iActivityAssignStepStatusID; $ActivityAssignStepData2->eType = 'Doctor'; $ActivityAssignStepData2->vDocumentName = $request->file('concent_doc')->getClientOriginalName(); $ActivityAssignStepData2->bDocument = base64_encode($request->file('concent_doc')); $ActivityAssignStepData2->jData = NULL; $ActivityAssignStepData2->mime_type = $request->file('concent_doc')->getClientOriginalExtension();; $ActivityAssignStepData2->eInputType = 'Document'; $ActivityAssignStepData2->save(); DB::commit(); $return['message'] = 'Data Added Successfylly.'; $return['status'] = 1; echo json_encode($return); // } catch (\Exception $e) { // DB::rollback(); // $return['message'] = 'Something went wrong'; // $return['status'] = 0; // echo json_encode($return); // } break; case 'bank': if ($request->state == 'reference') { $request->validate([ 'reference_id' => 'required', ], ['required' => 'This field is required.', 'not_regex' => 'invalid formate.']); try { $reference_id = Crypt::decrypt($request->reference_id); } catch (DecryptException $e) { $return['message'] = 'Something went wrong'; $return['status'] = 0; echo json_encode($return); die; } // try { //insert Data for this step $ActivityAssignStepData = new ActivityAssignStepData; $ActivityAssignStepData->iActivityAssignID = $iActivityAssignID; $ActivityAssignStepData->iActivityAssignStepStatusID = $iActivityAssignStepStatusID; $ActivityAssignStepData->eType = 'Doctor'; $ActivityAssignStepData->eInputType = 'Data'; $ActivityAssignStepData->iReferenceID = $reference_id; $ActivityAssignStepData->save(); // } catch (\Exception $e) { // DB::rollback(); // $return['message'] = 'Something went wrong'; // $return['status'] = 0; // echo json_encode($return); // } } else { $request->validate([ 'bChequeDoc' => 'exclude_if:has_data_bank,1|required|max:10240|mimes:pdf', 'vChequeName' => 'required|not_regex:/<(?:(?!input)[^>])*>(?:<\\ /[^>]*>)?/', 'vBankAccount' => 'required|confirmed|not_regex:/<(?:(?!input)[^>])*>(?:<\\ /[^>]*>)?/', 'vIFSCCode' => 'required|not_regex:/<(?:(?!input)[^>])*>(?:<\\ /[^>]*>)?/', 'vBankName' => 'required|not_regex:/<(?:(?!input)[^>])*>(?:<\\ /[^>]*>)?/', 'vAccountType' => 'required|not_regex:/<(?:(?!input)[^>])*>(?:<\\ /[^>]*>)?/', 'isVerified' => 'required|not_regex:/<(?:(?!input)[^>])*>(?:<\\ /[^>]*>)?/', ], ['required' => 'This field is required.', 'not_regex' => 'invalid formate.']); $data['Cheque Name'] = $request->vChequeName; $data['Bank Account No.'] = $request->vBankAccount; $data['IFSC Code'] = $request->vIFSCCode; $data['Bank Name'] = $request->vBankName; $data['Bank Account Type'] = $request->vAccountType; $data['Verified'] = $request->isVerified; $jData = json_encode($data); //insert Data for this step $ActivityAssignStepData = new ActivityAssignStepData; $ActivityAssignStepData->iActivityAssignID = $iActivityAssignID; $ActivityAssignStepData->iActivityAssignStepStatusID = $iActivityAssignStepStatusID; $ActivityAssignStepData->eType = 'Doctor'; $ActivityAssignStepData->vDocumentName = generateChequeName($iDoctorID); $ActivityAssignStepData->bDocument = base64_encode($request->file('bChequeDoc')); $ActivityAssignStepData->jData = $jData; $ActivityAssignStepData->mime_type = $request->file('bChequeDoc')->getClientOriginalExtension();; $ActivityAssignStepData->eInputType = 'Data'; $ActivityAssignStepData->save(); //update pan card in doctor ActivityAssign::find($iActivityAssignID)->doctor()->update([ 'vDcsChequeName' => $request->vChequeName, 'vDcsBankAccountNumber' => $request->vBankAccount, 'vDcsBankIFSCCode' => $request->vIFSCCode, 'isDcsIFSCVerified' => $request->isVerified, 'vDcsBankAccountType' => $request->vAccountType, 'dtDcsBankUpdated_at' => currentTimeStamp(), ]); } DB::commit(); $return['message'] = 'Data Added Successfylly.'; $return['status'] = 1; echo json_encode($return); // } catch (\Exception $e) { // DB::rollback(); // $return['message'] = 'Something went wrong'; // $return['status'] = 0; // echo json_encode($return); // } break; default: # code... break; } } else { abort(404); } }