<cfparam name="form.Status" default="0">
<cfparam name="form.Authno_Placeholder" default="0">
<cfparam name="form.Assessments" default="0">
<cfparam name="form.no_assessments" default="0">
<cfparam name="form.Visitfreq_Placeholder" default="0">
<cfparam name="form.visit_withoutorders" default="0">
<cfparam name="form.getauthweeks" default="0">
<cfset form.Record_Creation_Date = "#Now()#" />
<cfset form.Record_Created_By = #session.employeeid# />
<cfset form.Record_Mod_Date = #Now()# />
<cfset form.Record_Mod_By = #session.employeeid# />
<cfset DoCommit = 1>
<cfset form.ID  = decrypt(#session.cs.enc_patientid#,#application.enckey#,"AES","Hex") />  
<cfif form.no_assessments EQ 1>
    <cfset form.Assmt_ID = 0 />
<cfelse>
    <cfset form.Assmt_ID = ListFirst(form.Assessments, "~") />
</cfif>
<cfif form.Auth_ID EQ 0>  
    <cftransaction>
        <cftry>
            <cfquery  name="getauth" datasource="#Application.DataSrc#">
                       SELECT IFNULL(MAX(Auth_ID),0)+1 As pAuth_ID FROM #Request.prefix_db_agency#.pAuths 
            </cfquery>
            <cfset pAuth_ID =  #getauth.pAuth_ID# />

           <cfcatch>
                <cfset DoCommit = 0>
                <cftransaction action="rollback" />
            </cfcatch>
        </cftry>
        <cfif DoCommit EQ 1>
            <cftransaction action="commit" />
        </cfif>            
   </cftransaction>
<cfelse>
        <cfquery name="update_pAdmit" datasource="#Application.DataSrc#"  result="result">
           UPDATE #Request.prefix_db_agency#.pAuths SET 
           <cfif form.Status EQ 0 >
             Status   = <cfqueryparam VALUE="3"  cfsqltype="cf_sql_integer">,    
           <cfelse>
              Status   = <cfqueryparam VALUE="3"  cfsqltype="cf_sql_integer">,    
           </cfif>  
           Date_Change = <cfqueryparam VALUE="#form.Record_Mod_Date#"  cfsqltype="cf_sql_timestamp">,
           Change_by = <cfqueryparam VALUE="#form.Record_Mod_By#"  cfsqltype="cf_sql_integer">
           WHERE  Patient_ID = <cfqueryparam VALUE="#form.ID#"  cfsqltype="cf_sql_integer">
           AND AutoAuth_ID = <cfqueryparam VALUE="#form.AutoAuth_ID#"  cfsqltype="cf_sql_integer">
        </cfquery>
        <cfset pAuth_ID =  #form.Auth_ID# />
</cfif>
<cftransaction>
    <cftry>
        <cfif form.Rev_ID EQ ''>
          <cfset  form.Rev_ID  = 0 />
        </cfif>
        <cfif form.Total_Visits EQ ''>
          <cfset  form.Total_Visits  = 0 />
        </cfif>
        <cfparam name="form.visit_freq" default="0" />
        <cfif form.visit_freq EQ ''>
          <cfset  form.visit_freq  = 0 />
        </cfif>
        <cfif form.visit_withoutorders EQ ''>
          <cfset  form.visit_withoutorders  = 0 />
        </cfif>

        

        <cfquery name="getRevenue" datasource="#Application.DataSrc#">
            SELECT * FROM #Request.prefix_db_agency#.pRevenue_Code 
            WHERE Rev_CodeID = <cfqueryparam VALUE="#form.Rev_ID#"  cfsqltype="cf_sql_integer">
        </cfquery>

            <cfset CMSOrder_ID  =  0 />
            <cfset updating_reason = '' />
            <cfif form.AutoAuth_ID NEQ 0 >
                <cfquery name="getauths" datasource="#Application.DataSrc#">
                    SELECT * FROM #Request.prefix_db_agency#.pAuths 
                    WHERE AutoAuth_ID = <cfqueryparam VALUE="#form.AutoAuth_ID#"  cfsqltype="cf_sql_integer">
                </cfquery>
                <cfif form.visit_freq EQ getauths.visit_freq OR  form.Total_Visits EQ getauths.Total_Visits>
                    <cfset CMSOrder_ID = #getauths.CMSOrder_ID# />
                <cfelse>
                    <cfset updating_reason = 'Authorization changes of ' &  #getRevenue.Visit_Type# 
                        & " skill Total Visits: "& #form.Total_Visits#  & " and  Visit Freq: " & #form.visit_freq#  &"<br>" />
                </cfif>
                <cfif form.prn_visits NEQ getauths.prn_visits >
                     <cfset CMSOrder_ID  =  0 />
                    <cfset updating_reason = updating_reason & 'Authorization PRN Visits: '  & #form.prn_visits#  &"<br>" />
                <cfelseif CMSOrder_ID NEQ 0>
                     <cfset CMSOrder_ID = #getauths.CMSOrder_ID# />   
                </cfif>

            </cfif>
            <cfscript>
                    request.ass = CreateObject("component","components.general.assessments").init();
                    getgoalsuccess = request.ass.updategoals_visit(#form.Assmt_ID#);
            </cfscript>

            <cfquery name="InsertingpAuths"  datasource="#Application.DataSrc#"  result="result">
               INSERT INTO #Request.prefix_db_agency#.pAuths (Auth_ID, Patient_ID, Assmt_ID, PtPayer_ID, Elig_ID,CMSOrder_ID, Status, 
                <cfif form.Auth_No neq ''>Auth_No,</cfif> 
                Authno_Placeholder,Visitfreq_Placeholder,
                Date_Start, Date_End, Rev_ID, Skill, Total_Visits, visit_freq, Set_1_visits, Set_1_weeks, Set_2_visits, Set_2_weeks,
                 Set_3_visits, Set_3_weeks, Set_4_visits, Set_4_weeks, prn_visits, Notes,
                 <cfif updating_reason NEQ ''>updating_reason,</cfif> visit_withoutorders,
                  Date_Create, Created_by, Date_Change, Change_by
                    )
                VALUES
                ( 
                  <cfqueryparam VALUE="#pAuth_ID#"  cfsqltype="cf_sql_integer">,
                  <cfqueryparam VALUE="#form.ID#"  cfsqltype="cf_sql_integer">,
                  <cfqueryparam VALUE="#form.Assmt_ID#"  cfsqltype="cf_sql_integer">,
                  <cfqueryparam VALUE="#form.ptpay_ID#"  cfsqltype="cf_sql_integer">,
                  <cfqueryparam VALUE="0"  cfsqltype="cf_sql_integer">,
                  <cfqueryparam VALUE="#CMSOrder_ID#"  cfsqltype="cf_sql_integer">,
                  <cfqueryparam VALUE="#form.Status#"  cfsqltype="cf_sql_integer">,
                  <cfif form.Auth_No neq ''>"#form.Auth_No#",</cfif>
                  <cfqueryparam VALUE="#form.Authno_Placeholder#"  cfsqltype="cf_sql_integer">,
                  <cfqueryparam VALUE="#form.Visitfreq_Placeholder#"  cfsqltype="cf_sql_integer">,
                  <cfqueryparam VALUE="#form.Date_Start#"  cfsqltype="cf_sql_date">,
                  <cfqueryparam VALUE="#form.Date_End#"  cfsqltype="cf_sql_date">,
                  <cfqueryparam VALUE="#form.Rev_ID#"  cfsqltype="cf_sql_integer" >,
                  <cfqueryparam VALUE="#getRevenue.Visit_Type#"  cfsqltype="cf_sql_varchar">,
                  <cfqueryparam VALUE="#form.Total_Visits#"  cfsqltype="cf_sql_integer" >,
                  <cfqueryparam VALUE="#form.visit_freq#"  cfsqltype="cf_sql_integer" >,
                  <cfif form.Set_1_visit NEQ ''><cfqueryparam VALUE="#form.Set_1_visit#" cfsqltype="cf_sql_integer" ><cfelse>0</cfif>,
                  <cfif form.Set_1_week NEQ ''><cfqueryparam VALUE="#form.Set_1_week#"  cfsqltype="cf_sql_integer"  ><cfelse>0</cfif>,
                  <cfif form.Set_2_visit NEQ ''><cfqueryparam VALUE="#form.Set_2_visit#"  cfsqltype="cf_sql_integer"><cfelse>0</cfif>,
                  <cfif form.Set_2_week NEQ ''><cfqueryparam VALUE="#form.Set_2_week#"  cfsqltype="cf_sql_integer"><cfelse>0</cfif>,
                  <cfif form.Set_3_visit NEQ ''><cfqueryparam VALUE="#form.Set_3_visit#"  cfsqltype="cf_sql_integer"><cfelse>0</cfif>,
                  <cfif form.Set_3_week NEQ ''><cfqueryparam VALUE="#form.Set_3_week#"  cfsqltype="cf_sql_integer"><cfelse>0</cfif>,
                  <cfif form.Set_4_visit NEQ ''><cfqueryparam VALUE="#form.Set_4_visit#"  cfsqltype="cf_sql_integer"><cfelse>0</cfif>,
                  <cfif form.Set_4_week NEQ ''><cfqueryparam VALUE="#form.Set_4_week#"  cfsqltype="cf_sql_integer"><cfelse>0</cfif>,
                  <cfif form.prn_visits NEQ ''><cfqueryparam VALUE="#form.prn_visits#"  cfsqltype="cf_sql_integer" ><cfelse>0</cfif> ,
                  <cfqueryparam VALUE="#form.Notes#"  cfsqltype="cf_sql_varchar">,
                  <cfif updating_reason NEQ ''> <cfqueryparam VALUE="#updating_reason#"  cfsqltype="cf_sql_varchar">,</cfif>
                  <cfif form.visit_withoutorders NEQ ''><cfqueryparam VALUE="#form.visit_withoutorders#"  cfsqltype="cf_sql_integer" ><cfelse>0</cfif>,  
                  <cfqueryparam VALUE="#form.Record_Creation_Date#"  cfsqltype="cf_sql_timestamp">,
                  <cfqueryparam VALUE="#session.employeeid#"  cfsqltype="cf_sql_integer">,
                  <cfqueryparam VALUE="#form.Record_Creation_Date#"  cfsqltype="cf_sql_timestamp">,
                  <cfqueryparam VALUE="#session.employeeid#"  cfsqltype="cf_sql_integer">
                )
            </cfquery>


            <cfif CGI.REMOTE_ADDR EQ '121.200.49.65' OR session.Display EQ 'Melissa Cott'>
                <!--- <cfif form.getauthweeks gt 0 >
                    <cfloop from="1" to="10" index="i">
                        <cfquery name="getsauthweeks" datasource="#Application.DataSrc#">
                            SELECT * FROM #Request.prefix_db_agency#.pAuths_weeks 
                            WHERE Week_No = '#i#' 
                            AND Auth_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#pAuth_ID#">
                            AND Status = 0
                        </cfquery>
                        <cfquery name="update_pAuths_weeks" datasource="#Application.DataSrc#"  result="result">
                            UPDATE #Request.prefix_db_agency#.pAuths_weeks SET 
                            Status   = <cfqueryparam VALUE="2"  cfsqltype="cf_sql_integer">,    
                            Date_Change = <cfqueryparam cfsqltype="cf_sql_timestamp" value="#now()#">,
                            Change_by = <cfqueryparam VALUE="#session.employeeid#"  cfsqltype="cf_sql_integer">
                            WHERE Week_No = '#i#'
                            AND  Auth_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#pAuth_ID#">
                            AND status = 0
                        </cfquery>
                        <cfif i LTE  form.getauthweeks>
                            <cfquery  name="getauthorizations" datasource="#Application.DataSrc#">
                                INSERT INTO #Request.prefix_db_agency#.pAuths_weeks
                                (
                                    Auth_ID, Week_No, Week_Start, Week_End,Total_visits, Date_Create, Created_by, Date_Change, Change_by
                                )
                                VALUES
                                (
                                    <cfqueryparam cfsqltype="cf_sql_integer" value="#getsauthweeks.Auth_ID#">,
                                    <cfqueryparam cfsqltype="cf_sql_integer" value="#i#">,
                                    <cfqueryparam cfsqltype="cf_sql_date" value="#getsauthweeks.week_start#">,
                                    <cfqueryparam cfsqltype="cf_sql_date" value="#getsauthweeks.week_end#">,
                                    <cfqueryparam cfsqltype="cf_sql_integer" value="#FORM['WeeK_Total_visits'&i]#">,
                                    <cfqueryparam cfsqltype="cf_sql_timestamp" value="#now()#">,
                                    <cfqueryparam VALUE="#session.employeeid#"  cfsqltype="cf_sql_integer">,
                                    <cfqueryparam cfsqltype="cf_sql_timestamp" value="#now()#">,
                                    <cfqueryparam VALUE="#session.employeeid#"  cfsqltype="cf_sql_integer">
                                )
                            </cfquery>
                        </cfif>
                    </cfloop>
                <cfelse> --->
                    <cfinclude template="authweeks_insert.cfm">
                <!--- </cfif> --->
                
            </cfif>
        <cfquery name="Getass" datasource="#Application.DataSrc#">
            SELECT *
            FROM  #Request.prefix_db_agency#.pAssessments
            WHERE Assmt_ID = <cfqueryparam value = "#form.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER"> 
            AND Status < 2 
            ORDER BY AutoAssmt_ID DESC 
        </cfquery>
        <cfif form.no_assessments EQ 1>
            <cfset encautoass_id = 0 />   
            <cfset encadmit_id   = 0 />
        <cfelse>
            <cfset encautoass_id= encrypt(#Getass.AutoAssmt_ID#,#Application.enckey#,"AES","Hex") />   
            <cfset encadmit_id= encrypt(#Getass.Admit_ID#,#Application.enckey#,"AES","Hex") />
        </cfif>        
        <cfset encass_id= encrypt(#form.Assmt_ID#,#Application.enckey#,"AES","Hex") />  
        <cfset enauth_id= encrypt(#pAuth_ID#,#Application.enckey#,"AES","Hex") />   
        <cfcatch>
            <cfset DoCommit = 0>
            <cftransaction action="rollback" />
             <cfmail to="#request.send_errors_to#" from="error@myhomecarebiz.com" subject="#Application.ServerName#  Error: #cfcatch#" type="html">
                 <cfdump var="#form#">
                <cfdump var="#cfcatch#">
            </cfmail>
            <cfabort>
        </cfcatch>
    </cftry>
    <cfif DoCommit EQ 1>
        <cftransaction action="commit" />
    </cfif>            
</cftransaction>
<!--- <cfif CGI.REMOTE_ADDR EQ '121.200.49.65'>
<cfabort>
</cfif>--->
<cfif form.Auth_ID EQ 0>  
    <div class="portlet box red">
        <div class="portlet-title">
            <div class="caption">
                <i class="fa fa-gear"></i> Authorization Updated!
            </div>
            <div class="tools">
                <a href="javascript:;" class="collapse"></a>
            </div>
        </div>
        <div class="portlet-body form">
            <div class="form-body">
                <div class="form-group"><h4> Authorizations successfully updated.</h4></div>
                <div class="row">
                    <cfoutput>
                      <div class="col-md-1">
                            <div class="form-group">
                                <a  class="btn btn-default btn-sm" id="add_schedule" href="/schedules/index.cfm?aMenu=schedules&page=schedules&cat=&rpt=addvisit&restrict=0&SID=0&PID=#session.cs.enc_patientid#&AID=#encass_id#&authid=#enauth_id#&frm=patient&visitdate=">Add Visit</a>                                
                            </div>
                        </div>
                        <div class="col-md-1">
                            <div class="form-group">
                                <a  class="btn btn-default btn-sm" id="add_schedule" href="/schedules/index.cfm?aMenu=schedules&page=schedules&cat=&rpt=addschedule&restrict=0&SID=0&PID=#session.cs.enc_patientid#&AID=#encass_id#&authid=#enauth_id#&frm=patient&visitdate=">Add Schedule</a>                                
                            </div>
                        </div>
                        <div class="col-md-2">
                            <div class="form-group">
                                 <a  class="btn btn-default btn-sm" id="viewproblist" href="/patientadmin_new/index.cfm?a=1&page=patient&px=y&ID=#session.cs.enc_patientid#&cat=Patient&autoassid=#encautoass_id#&admitid=#encadmit_id###authorization_#Getass.AutoAssmt_ID#"   >Go to Chart</a>
                            </div>
                        </div>
                    </cfoutput>
                </div>
            </div>
        </div>
    </div>
    <cfabort>
<cfelse>
    <cflocation url="/patientadmin_new/index.cfm?a=1&page=patient&px=y&ID=#session.cs.enc_patientid#&cat=authorizations&autoassid=#encautoass_id#&admitid=#encadmit_id#" addtoken="no">
</cfif>
<cfif CGI.REMOTE_ADDR EQ '121.200.49.65'>
    <cflocation url="#application.downloadpath#/patientadmin_new/index.cfm?page=patient&ID=#session.cs.enc_patientid#&cat=schedule" addtoken="no">
<cfelse>
<cflocation url="#application.downloadpath#/patientadmin_new/index.cfm?page=patient&ID=#session.cs.enc_patientid#&cat=authorizations" addtoken="no">
</cfif>
