<cfif isDefined("form")>
	<cfset totalunits =0 />
	<cfset units= form.Units />
	<cfset duration=form.rdOverride />
	<cfset timeframe=form.Time_Frame />

	<cfif timeframe*units neq 0>
		<cfset totalunits= round(duration/timeframe*units) />
	<cfelse>
		<cfset totalunits= 0 />
	</cfif>

	<cfif isdefined('url.PID')>
		<cfset form.patientid=url.PID />
		<cfif isdefined('url.action')>
			<cfquery name="authorizationsdelete" datasource="#Application.DataSrc#">
				DELETE from #Request.prefix_db_agency#.authorizations WHERE Auth_ID = #url.AID#
			</cfquery>
		</cfif>
	</cfif>

	<cfset Rev_CodeID = 0 />
	<cfif isdefined('form.RevenueCode')>

		<cfloop list="#form.RevenueCode#" index=i>
			<cfset RevenueCode = GetToken(i, 1, '|') />
			<cfset HCPCS = GetToken(i , 2, '|') />
			<cfset Rev_CodeID = GetToken(i , 3 , '|') />
		</cfloop>


	</cfif>

	<cfset Rev_CodeID = Trim(Rev_CodeID) />

	<cfif isdefined('form.hdnInsert') and form.hdnInsert eq 'insert'>
		<cfif trim(form.payerid) eq "">
			<cfset form.payerid=0 />
		</cfif>


		<cfquery datasource="#Application.DataSrc#" name="PayerDrop">
			SELECT Payer_ID, PayName, Output_Type<!---,Ties_Associated_Assesment---> FROM #Request.prefix_db_agency#.Payer WHERE Payer_ID =#trim(form.Payer_Plan)#
		</cfquery>

		<cfquery name="authorizationsinsert" datasource="#Application.DataSrc#">
			insert into #Request.prefix_db_agency#.authorizations
				(
					Patient_ID,
					Revenue_Code,
					HCPCS_Code,
					Units,
					Time_Frame,
					StartDate,
					EndDate,
					Duration,
					Authorization_Number,
					Notes,
					Mod_Date,
					Rev_CodeID,
					Payer_ID
					)
				values
				(
					#trim(form.patientid)#,
					'#trim(RevenueCode)#',
					'#trim(HCPCS)#',
					'#trim(form.Units)#',
					'#trim(form.Time_Frame)#',
					<cfif form.StartDate neq ''>#CreateODBCDate(form.StartDate)#,<cfelse>NULL,</cfif>
					<cfif form.EndDate neq ''>#CreateODBCDate(form.EndDate)#,<cfelse>NULL,</cfif>
					'#trim(form.rdOverride)#',
					'#trim(form.AuthorizationNumber)#',
					'#trim(form.txtNotes)#',
					#CreateODBCDate(now())#,
					'#Rev_CodeID#',
					'#form.Payer_Plan#'
				)
		</cfquery>
		<cfquery name="Getauthid" datasource="#Application.DataSrc#">
			SELECT max(auth_ID) as auth_id FROM #Request.prefix_db_agency#.authorizations
		</cfquery>

		<cfoutput>
			<cfloop index="Noofunits" from="1" to="#totalunits#">
				<cfquery name="insertunits" datasource="#Application.DataSrc#">
					insert into #Request.prefix_db_agency#.authorizations_details
						(
							Auth_ID
							)
						values
						(
							#Getauthid.auth_id#
						)
				</cfquery>
			</cfloop>
		</cfoutput>



	</cfif>


	<cfif isdefined('form.hdnInsert') and form.hdnInsert eq 'update'>

		<cfquery datasource="#Application.DataSrc#" name="PayerDrop">
			SELECT Payer_ID, PayName, Output_Type<!---,Ties_Associated_Assesment---> FROM #Request.prefix_db_agency#.Payer WHERE Payer_ID =#trim(form.Payer_Plan)#
		</cfquery>

		<cfquery name="Getoldunits" datasource="#Application.DataSrc#">
			SELECT Units,Duration,Time_Frame FROM #Request.prefix_db_agency#.authorizations where Auth_ID = '#Trim(form.hdnAuthID)#'
		</cfquery>



		<cfquery name="BenefitUpdate" datasource="#Application.DataSrc#">
			UPDATE #Request.prefix_db_agency#.authorizations SET
			Patient_ID = #trim(form.patientid)#,
			Revenue_Code = '#trim(RevenueCode)#',
			HCPCS_Code = '#trim(HCPCS)#',
			Units = '#trim(form.Units)#',
			Time_Frame = '#trim(form.Time_Frame)#',
			<cfif form.StartDate neq ''>StartDate = #CreateODBCDate(form.StartDate)#,<cfelse>StartDate = NULL,</cfif>
			<cfif form.EndDate neq ''>EndDate = #CreateODBCDate(form.EndDate)#,<cfelse>EndDate = NULL,</cfif>
			Duration = '#trim(form.rdOverride)#',
			Authorization_Number = '#trim(form.AuthorizationNumber)#',
			Notes = '#trim(form.txtNotes)#',
			Mod_Date = #CreateODBCDate(now())#,
			Rev_CodeID ='#trim(Rev_CodeID)#',
			Payer_ID ='#form.Payer_Plan#'
			Where 	Auth_ID = '#Trim(form.hdnAuthID)#'
		</cfquery>

		<cfquery name="Checkunits" datasource="#Application.DataSrc#">
			SELECT count(*) as countunits FROM #Request.prefix_db_agency#.authorizations_details where Auth_ID = '#Trim(form.hdnAuthID)#'
		</cfquery>

		<cfif Checkunits.countunits eq 0>
			<cfoutput>
				<cfloop index="Noofunits" from="1" to="#totalunits#">
					<cfquery name="insertunitswhileupdate" datasource="#Application.DataSrc#">
						insert into #Request.prefix_db_agency#.authorizations_details
							(
								Auth_ID
								)
							values
							(
								#form.hdnAuthID#
							)
					</cfquery>
				</cfloop>
			</cfoutput>

		<cfelse>

			<cfset totalunits =0 />
			<cfif Getoldunits.Units eq ''>
				<cfset units= 0 />
			<cfelse>
				<cfset units= Getoldunits.Units />
			</cfif>
			<cfif Getoldunits.Duration eq ''>
				<cfset duration= 0 />
			<cfelse>
				<cfset duration= Getoldunits.Duration />
			</cfif>
			<cfif Getoldunits.Time_Frame eq ''>
				<cfset timeframe= 0 />
			<cfelse>
				<cfset timeframe= Getoldunits.Time_Frame />
			</cfif>
			<cfif Getoldunits.Time_Frame eq ''>
				<cfset oldtotalunits= 0 />
			<cfelse>
				<cfset oldtotalunits= round(duration/timeframe*units) />
			</cfif>

			<cfif form.Units gt Getoldunits.Units >
				<cfset newtotalunits=0 />
				<cfset units= form.Units />
				<cfset duration=form.rdOverride />
				<cfset timeframe=form.Time_Frame />
				<cfset newtotalunits= round(duration/timeframe*units) />
				<cfoutput>
					<cfset oldunits = oldtotalunits +1 />
					<cfloop index="units" from="#oldunits#" to="#newtotalunits#">
						<cfquery name="insertunitsmore" datasource="#Application.DataSrc#">
							insert into #Request.prefix_db_agency#.authorizations_details
								(
									Auth_ID
									)
								values
								(
									#form.hdnAuthID#
								)
						</cfquery>
					</cfloop>
				</cfoutput>

			<cfelse>
				<cfset totalunits =0 />
				<cfset units= Getoldunits.Units />
				<cfset duration=Getoldunits.Duration />
				<cfset timeframe=Getoldunits.Time_Frame />
				<cfset oldtotalunits= round(duration/timeframe*units) />
				<cfif form.Units lt Getoldunits.Units>
					<cfset newtotalunits=0 />
					<cfset units= form.Units />
					<cfset duration=form.rdOverride />
					<cfset timeframe=form.Time_Frame />
					<cfset newtotalunits= round(duration/timeframe*units) />
					<cfoutput>
						<cfset Deleteunits =  oldtotalunits - newtotalunits  />
						<cfloop index="units" from="1" to="#Deleteunits#">
							<cfquery name="selectid" datasource="#Application.DataSrc#">
								select Auth_Details_ID from #Request.prefix_db_agency#.authorizations_details where Auth_ID = '#Trim(form.hdnAuthID)#' and ScheduleItems_ID is null order by Auth_Details_ID desc limit 1
							</cfquery>
							<cfif selectid.recordcount gt 0>
								<cfquery name="insertunitsmore" datasource="#Application.DataSrc#">
									Delete from #Request.prefix_db_agency#.authorizations_details where Auth_ID = '#Trim(form.hdnAuthID)#'
									and Auth_Details_ID=#selectid.Auth_Details_ID# and ScheduleItems_ID is null
								</cfquery>
							</cfif>
						</cfloop>
					</cfoutput>
				</cfif>
			</cfif>
		</cfif>
	</cfif>
<cfset session.cs.enc_patientid = encrypt(#form.patientid#,"54kczhzgHTj4a8n+SRZPyg==","AES","Hex") />
	<cfoutput>
		<cflocation url="index.cfm?page=patient&ID=#session.cs.enc_patientid#&cat=Patient" addtoken="no">
	</cfoutput>
<cfelse>
	<script>
		window.location=history.back();
	</script>
</cfif>