<cfif variables.actions eq "insert">
  <cftransaction>

	<cftry> 
		<!--- pPtPayer table insert start --->

		    <cfquery  name="pPtPayer_insert" datasource="#Application.DataSrc#">
				 INSERT IGNORE  INTO #Request.prefix_db_agency#.pPtPayer
				( 
				    Patient_ID,Status,Payer_ID,Record_Creation_Date,Created_by,Record_Mod_Date,Change_by
				)
			    VALUES
				(
					<cfqueryparam value = "#Patient_ID#" CFSQLType ="CF_SQL_INTEGER">,
					<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
					<cfqueryparam value = "1" CFSQLType ="CF_SQL_INTEGER">,
					<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
					<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
				)
			</cfquery>
			
			<cfquery name="Last_Insert" datasource="#Application.DataSrc#">
				SELECT LAST_INSERT_ID() as PtPayer_ID
		    </cfquery>

			<cfset PtPayer_ID = #Last_Insert.PtPayer_ID# />

			<!--- pPtPayer table insert  End--->

			<!--- pAdmit table insert start --->
			    <cfquery  name="pAdmit_insert" datasource="#Application.DataSrc#">
				     INSERT IGNORE  INTO #Request.prefix_db_agency#.pAdmit
						(
							Patient_ID,Status,Date_Create,Created_by,Date_Change,Change_by
						)
					VALUES
						(
						<cfqueryparam value = "#Patient_ID#" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
						<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
						<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
						)
			    </cfquery>

				<cfquery name="Last_Insert" datasource="#Application.DataSrc#">
					SELECT LAST_INSERT_ID() as PtAdmit_ID
			    </cfquery>

				<cfset PtAdmit_ID = #Last_Insert.PtAdmit_ID# />

			<!--- pAdmit table insert  End--->


			<!--- pAssessments table insert start --->

				<cfquery  name="get_assid" datasource="#Application.DataSrc#">
					SELECT IFNULL(MAX(Assmt_ID),0)+1 As pAssmt_ID FROM #Request.prefix_db_agency#.pAssessments 
				</cfquery>

				<cfset pAssmt_ID =  #get_assid.pAssmt_ID# />

				<cfquery  name="pAssessments_insert" datasource="#Application.DataSrc#">
					INSERT IGNORE  INTO #Request.prefix_db_agency#.pAssessments
					(  
						Assmt_ID,Admit_ID,Patient_ID,Loc_ID,status,F26,F176,F177,F178,Record_Creation_Date,Record_Created_By,Record_Mod_Date,Record_Mod_By
					)
					VALUES
					(
						<cfqueryparam value = "#pAssmt_ID#" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value = "#PtAdmit_ID#" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value = "#Patient_ID#" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value = "#form.assesment#" CFSQLType ="CF_SQL_VARCHAR">,
						<cfqueryparam value = "#form.Date_completed#" CFSQLType ="CF_SQL_DATE">	,
						<cfqueryparam value = "#form.Cert_Start#" CFSQLType ="CF_SQL_DATE">	,
						<cfqueryparam value = "#form.Cert_End#" CFSQLType ="CF_SQL_DATE">	,
						<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
						<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
						<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
					)
				</cfquery>

				<cfset Encrypted_assesment_ID = encrypt(#pAssmt_ID#,#application.enckey#,"AES","Hex") />

			<!--- pAssessments table insert End --->


			<!--- pAuth table insert start --->

				<cfset linklist = "SN:Nursing_Visits,HHA:Total_HHA_visits,PT:Total_PT_visits,OT:Total_OT_visits,ST:total_st_visit,MSW:total_msw_visit" />

				<cfloop list="#linklist#" index=i>
					<cfset skill = GetToken(i, 1, ':') />
					<cfset totvisits = GetToken(i , 2, ':') />
					<cfquery  name="pAuth_insert" datasource="#Application.DataSrc#">
						INSERT   INTO #Request.prefix_db_agency#.pAuths
						(
							Patient_ID,Assmt_ID,PtPayer_ID,Status,Skill,Total_Visits,Date_Create,Created_by,Date_Change,Change_by
						)
						VALUES
						(
							<cfqueryparam value = "#Patient_ID#" CFSQLType ="CF_SQL_INTEGER">,
							<cfqueryparam value = "#pAssmt_ID#" CFSQLType ="CF_SQL_INTEGER">,
							<cfqueryparam value = "#PtPayer_ID#" CFSQLType ="CF_SQL_INTEGER">,
							<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
							<cfqueryparam value = "#skill#" CFSQLType ="CF_SQL_VARCHAR">,
							<cfqueryparam value = "#Form[totvisits]#" CFSQLType ="CF_SQL_INTEGER">,
							<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
							<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
							<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
							<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
						)
					</cfquery>

					<cfquery name="Last_Insert" datasource="#Application.DataSrc#">
					  SELECT LAST_INSERT_ID() as Auth_ID
			      	</cfquery>

			       <cfset pAuth_ID = #Last_Insert.Auth_ID# />

				    <!---  pSchedule table insert End --->
				    	<cfloop from="1" to ="#Form[totvisits]#" index=j>
						     <cfquery  name="pSchedule_insert" datasource="#Application.DataSrc#">
									INSERT IGNORE  INTO #Request.prefix_db_agency#.pSchedule
									(
										Patient_ID, Auth_ID, PtPayer_ID, Pay_ID,Status, Skill, Visit_no, Date_Create, Created_by, Date_Change, Change_by
									)
									VALUES
									(
										<cfqueryparam value = "#Patient_ID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#pAuth_ID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#PtPayer_ID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "1" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#skill#" CFSQLType ="CF_SQL_VARCHAR">,
										<cfqueryparam value = "#j#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
										<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
										<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
									)
							 </cfquery>
						</cfloop>
					<!---  pSchedule table insert End --->
				</cfloop>

			<!---  pAuth table insert End --->
				<cftransaction action="commit" />
				 
				<cfcatch type="any"> 
				 	<cftransaction action="rollback" /> 
				</cfcatch> 
	 		</cftry> 
	</cftransaction>

<cfelse>

	<!--- pAssessments table update start --->

		<cfset pPatient_ID = #form.patient_tbl_id# />
    	<cfset pAssmt_ID = #form.Assmt_ID# />

    	<cfquery  name="get_pAssess" datasource="#Application.DataSrc#">
    		SELECT * FROM #Request.prefix_db_agency#.pAssessments  
    		WHERE  
    		Patient_ID = <cfqueryparam value = "#pPatient_ID#" CFSQLType ="CF_SQL_INTEGER">
			AND Assmt_ID = <cfqueryparam value = "#pAssmt_ID#" CFSQLType ="CF_SQL_INTEGER">
		</cfquery>

		<cfquery  name="pAssessments_Update" datasource="#Application.DataSrc#">
			UPDATE #Request.prefix_db_agency#.pAssessments 
			SET 
				status 		= <cfqueryparam value = "1" CFSQLType ="CF_SQL_INTEGER">,
				Record_Mod_Date = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
				Record_Mod_By	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
			WHERE 
			    Patient_ID = <cfqueryparam value = "#pPatient_ID#" CFSQLType ="CF_SQL_INTEGER">
			AND Assmt_ID = <cfqueryparam value = "#pAssmt_ID#" CFSQLType ="CF_SQL_INTEGER">
		</cfquery>
	<!--- pAssessments table update end --->


	<!--- pAssessments table insert start --->
		<cfquery  name="pAssessments_insert" datasource="#Application.DataSrc#">
			INSERT IGNORE  INTO #Request.prefix_db_agency#.pAssessments
			(  
				Assmt_ID,Admit_ID,Patient_ID,Loc_ID,status,F26,F176,F177,F178,Record_Creation_Date,Record_Created_By,Record_Mod_Date,Record_Mod_By
			)
			VALUES
			(
				<cfqueryparam value = "#pAssmt_ID#" CFSQLType ="CF_SQL_INTEGER">,
				<cfqueryparam value = "#get_pAssess.Admit_ID#" CFSQLType ="CF_SQL_INTEGER">,
				<cfqueryparam value = "#pPatient_ID#" CFSQLType ="CF_SQL_INTEGER">,
				<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
				<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
				<cfqueryparam value = "#get_pAssess.F26#" CFSQLType ="CF_SQL_VARCHAR">,
				<cfqueryparam value = "#form.Date_completed#" CFSQLType ="CF_SQL_DATE">	,
				<cfqueryparam value = "#form.Cert_Start#" CFSQLType ="CF_SQL_DATE">	,
				<cfqueryparam value = "#form.Cert_End#" CFSQLType ="CF_SQL_DATE">	,
				<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
				<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
				<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
				<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
			)
		</cfquery>

		<cfset Encrypted_assesment_ID = encrypt(#pAssmt_ID#,#application.enckey#,"AES","Hex") />

	<!--- pAssessments table insert End --->

	
	<!--- pAuth table update start --->
		<cfset linklist = "SN:Nursing_Visits,HHA:Total_HHA_visits,PT:Total_PT_visits,OT:Total_OT_visits,ST:total_st_visit,MSW:total_msw_visit" />

		<cfquery  name="getpAuth" datasource="#Application.DataSrc#">
			SELECT * FROM #Request.prefix_db_agency#.pAuths 
			WHERE  Patient_ID = <cfqueryparam value = "#pPatient_ID#" CFSQLType ="CF_SQL_INTEGER">
			AND  Assmt_ID = <cfqueryparam value = "#pAssmt_ID#" CFSQLType ="CF_SQL_INTEGER">
		</cfquery>

		<cfloop list="#linklist#" index=i>
			<cfset skill = GetToken(i, 1, ':') />
			<cfset totvisits = GetToken(i , 2, ':') />

			<cfquery  name="getoldpAuth" dbtype="query">
				SELECT * FROM getpAuth WHERE Skill = <cfqueryparam value = "#skill#" CFSQLType ="CF_SQL_VARCHAR">
			</cfquery>

			<cfset tot_oldvisit = #getoldpAuth.Total_Visits# />
			<cfset pAuth_ID =  #getoldpAuth.Auth_ID# />
			<cfset PtPayer_ID =  #getoldpAuth.PtPayer_ID# />

			 <cfquery  name="pAuth_Update" datasource="#Application.DataSrc#">
				UPDATE #Request.prefix_db_agency#.pAuths 
				SET 
					Total_Visits = <cfqueryparam value = "#Form[totvisits]#" CFSQLType ="CF_SQL_INTEGER">, 
					Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
				WHERE 
				    Patient_ID = <cfqueryparam value = "#pPatient_ID#" CFSQLType ="CF_SQL_INTEGER">
				AND Assmt_ID = <cfqueryparam value = "#pAssmt_ID#" CFSQLType ="CF_SQL_INTEGER">
				AND Skill = <cfqueryparam value = "#skill#" CFSQLType ="CF_SQL_VARCHAR">
			</cfquery> 

			<cfquery  name="getpSchedule" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_agency#.pSchedule 
				WHERE   Patient_ID = <cfqueryparam value = "#pPatient_ID#" CFSQLType ="CF_SQL_INTEGER">
				AND  Auth_ID = <cfqueryparam value = "#pAuth_ID#" CFSQLType ="CF_SQL_INTEGER">
				AND  PtPayer_ID = <cfqueryparam value = "#PtPayer_ID#" CFSQLType ="CF_SQL_INTEGER">
			</cfquery>

			<cfoutput>
				<cfif  #Form[totvisits]# GT tot_oldvisit>
					<cfset fromvisit = tot_oldvisit + 1 />
					<cfset tovisit = #Form[totvisits]# />
					<!---  pSchedule table append start --->
				    	<cfloop from="#fromvisit#" to ="#tovisit#" index=j>

				    		<cfquery  name="getspSchedule" dbtype="query">
								SELECT * FROM getpSchedule
								WHERE Skill = <cfqueryparam value = "#skill#" CFSQLType ="CF_SQL_VARCHAR">
								AND Visit_no = <cfqueryparam value = "#j#" CFSQLType ="CF_SQL_INTEGER">
							</cfquery>

							<cfif getspSchedule.recordcount gt 0>
								<cfquery  name="pSchedule_Update" datasource="#Application.DataSrc#">
									UPDATE #Request.prefix_db_agency#.pSchedule 
									SET Status = <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
										Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
										Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
									WHERE Schedule_ID = <cfqueryparam value = "#getspSchedule.Schedule_ID#" CFSQLType ="CF_SQL_INTEGER">
								</cfquery> 
							<cfelse>
								<cfquery  name="pSchedule_insert" datasource="#Application.DataSrc#">
									INSERT IGNORE  INTO #Request.prefix_db_agency#.pSchedule
									(
										Patient_ID, Auth_ID, PtPayer_ID, Pay_ID,Status, Skill, Visit_no, Date_Create, Created_by, Date_Change, Change_by
									)
									VALUES
									(
										<cfqueryparam value = "#pPatient_ID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#pAuth_ID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#PtPayer_ID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "1" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#skill#" CFSQLType ="CF_SQL_VARCHAR">,
										<cfqueryparam value = "#j#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
										<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
										<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
									)
								</cfquery>
							</cfif>
						</cfloop>
			 		<!---  pSchedule table append End --->
				<cfelseif #Form[totvisits]# LT tot_oldvisit>
					<cfset tovisit = tot_oldvisit  />
					<cfset fromvisit = #Form[totvisits]# + 1 />
					<!---  Inactivate pSchedule table start --->
					  		<cfloop from="#fromvisit#" to ="#tovisit#" index=j>
								<cfquery  name="pAuth_Update" datasource="#Application.DataSrc#">
									UPDATE #Request.prefix_db_agency#.pSchedule 
									SET 
										Status = <cfqueryparam value = "1" CFSQLType ="CF_SQL_INTEGER">,
										Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
										Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
									WHERE 
									    Patient_ID = <cfqueryparam value = "#pPatient_ID#" CFSQLType ="CF_SQL_INTEGER">
									 AND  Auth_ID = <cfqueryparam value = "#pAuth_ID#" CFSQLType ="CF_SQL_INTEGER">
									 AND  PtPayer_ID = <cfqueryparam value = "#PtPayer_ID#" CFSQLType ="CF_SQL_INTEGER">
									AND Skill = <cfqueryparam value = "#skill#" CFSQLType ="CF_SQL_VARCHAR">
									AND Visit_no = <cfqueryparam value = "#j#" CFSQLType ="CF_SQL_INTEGER">
								</cfquery> 
							</cfloop>
					<!--- Inactivate pSchedule table End --->
				</cfif>
			</cfoutput>
		</cfloop>
	
	<!---  pAuth table update End --->

</cfif>
