<cfparam name="url.inv" default="">
<cfparam name="url.Agency_ID" default="">
<cfif url.Agency_ID NEQ ''>
	<cfset  #Request.prefix_db_agency# = 'agency_'& url.Agency_ID>
	<cfquery name="GetTable" datasource="#Application.DataSrc#">
			SELECT TABLE_SCHEMA  FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA like '%#Request.prefix_db_agency#%' group by  TABLE_SCHEMA
	</cfquery>
	<cfset database=arraynew(1)>

	<cfloop query="GetTable">
		<cfset database[CurrentRow]= TABLE_SCHEMA>
	</cfloop>
	<cfquery name="GetVisits" datasource="#Application.DataSrc#">
			<cfsetting requesttimeout="5000">
			  SELECT pSchedules.* , pSchedules.Schedule_ID, pSchedules.Total_Units, pSchedules.Visit_Date, pSchedules.Rev_ID,
				pAssessments.F300  AS HIPPS_Code,pAssessments.Assmt_ID,pAssessments.F26 AS  Assessment_Reason_M0100,
				pAssessments.F177 Certification_Start,pAssessments.F178 Certification_End,pAssessments.Patient_ID ,
				pRevenue_Code.Measure, pRevenue_Code.EClaim_Price,pRevenue_Code.Contract_Rate,
				pRevenue_Code.Payer_ID, pRevenue_Code.Visit_Type
      	FROM  #Request.prefix_db_agency#.pSchedules,
      	 #Request.prefix_db_agency#.pAssessments, #Request.prefix_db_agency#.pRevenue_Code
      	WHERE   pAssessments.Assmt_ID = pSchedules.Assmt_ID
      	AND pRevenue_Code.Rev_CodeID =  pSchedules.Rev_ID
        AND pSchedules.Status = 0
        AND  pSchedules.Invoice_ID > 0 
        AND pRevenue_Code.Contract_Rate > 0
		AND (pSchedules.Total_Contract IS NULL OR pSchedules.Total_Contract = '0')
         <!--- AND pSchedules.Invoice_ID = '#url.inv#'
            AND pSchedules.Invoice_ID IN   (SELECT Invoice_ID  FROM agency_1163.Invoices 
         WHERE PatientPayer_ID IN (1186,1187,1188,1189,1190) AND deleted <> 1)--->
         AND pAssessments.Status = 0
	</cfquery>

	<cfoutput query="GetVisits"> 
        <cfif GetVisits.Measure EQ 'visit'>
          	<cfset totalUnits = 1>
        <cfelse>
          <cfset totalUnits = GetVisits.Total_Units>
        </cfif>
        
        <!--- Get the correct contract rate based on visit date --->
        <cfquery name="GetCorrectContractRate" datasource="#Application.DataSrc#">
            SELECT Contract_Rate
            FROM #Request.prefix_db_agency#.pRevenue_Code
            WHERE Payer_ID = #GetVisits.Payer_ID#
            AND Visit_Type = '#GetVisits.Visit_Type#'
            AND Agency_ID = #url.Agency_ID#
            AND Status = 0
            AND Contract_Rate > 0
            AND (
                Contract_Rate_Effective_Date IS NULL 
                OR Contract_Rate_Effective_Date <= '#GetVisits.Visit_Date#'
            )
            AND (
                Contract_Rate_End_Date IS NULL 
                OR Contract_Rate_End_Date >= '#GetVisits.Visit_Date#'
            )
            ORDER BY Contract_Rate_Effective_Date DESC
            LIMIT 1
        </cfquery>
        
        <cfif GetCorrectContractRate.recordcount gt 0>
            <cfset current_contract_rate = GetCorrectContractRate.Contract_Rate>
        <cfelse>
            <cfset current_contract_rate = GetVisits.Contract_Rate>
        </cfif>
        
      	<!--- <cfset Request.Total_Price = totalUnits * GetVisits.EClaim_Price /> --->
      	<cfset Request.Total_Contract = totalUnits * current_contract_rate />
      	<cfquery name="Update_VisitsEclaims" datasource="#Application.DataSrc#"> 
        		UPDATE #Request.prefix_db_agency#.pSchedules SET 
            <!--- Total_Eclaim = #NumberFormat(Request.Total_Price,'_____.__')#, --->
            Total_Contract = #NumberFormat(Request.Total_Contract,'_____.__')#
        		WHERE Schedule_ID = #Schedule_ID#
  		</cfquery> 
    </cfoutput>

    <cfquery name="getinvoices" datasource="#Application.DataSrc#">
		<cfsetting requesttimeout="5000">
		  SELECT Invoices.Invoice_ID,Invoices.InvoiceTotal,Invoices.ContractTotal,
	       SUM(Total_Contract) AS totalcontract
	       FROM #Request.prefix_db_agency#.Invoices
	       JOIN #Request.prefix_db_agency#.pSchedules ON  Invoices.Invoice_ID = pSchedules.Invoice_ID
	       AND Invoices.Deleted <> 1
	       WHERE pSchedules.status = 0
		   AND (Invoices.ContractTotal IS NULL OR ContractTotal = '0')
	      <!--- AND pSchedules.Invoice_ID = '#url.inv#'
	      AND pSchedules.Invoice_ID IN   (SELECT Invoice_ID  FROM agency_1163.Invoices 
         WHERE PatientPayer_ID IN (1186,1187,1188,1189,1190) AND deleted <> 1)--->
	       GROUP BY Invoices.Invoice_ID
	</cfquery>

	<cfoutput query="getinvoices"> 
      	<cfquery name="Update_VisitsEclaims" datasource="#Application.DataSrc#"> 
        		UPDATE #Request.prefix_db_agency#.Invoices SET 
            		ContractTotal = #NumberFormat(totalcontract,'_____.__')#
        		WHERE Invoice_ID = #Invoice_ID#
        		AND (IFNULL(Invoice_Lock,0) <> 1)
  		</cfquery> 
    </cfoutput>
<p>Updated the Invoices now.So please check on it your web</p>
</cfif>
<cfabort>
<cfloop from=1 to=#ArrayLen(database)# index=ind>
	<cfset Request.prefix_db_agency = #database[ind]# />

	<cfquery name="getinvoices" datasource="#Application.DataSrc#">
		<cfsetting requesttimeout="5000">
		  SELECT Invoices.Invoice_ID,Invoices.InvoiceTotal,Invoices.ContractTotal,
	       SUM(Total_Contract) AS totalcontract
	       FROM #Request.prefix_db_agency#.Invoices
	       JOIN #Request.prefix_db_agency#.pSchedules ON  Invoices.Invoice_ID = pSchedules.Invoice_ID
	       AND Invoices.Deleted <> 1
	       WHERE pSchedules.status = 0
	       AND Invoices.ContractTotal = '0.00'
	       GROUP BY Invoices.Invoice_ID
	</cfquery>

	<cfoutput query="getinvoices"> 
      	<cfquery name="Update_VisitsEclaims" datasource="#Application.DataSrc#"> 
        		UPDATE #Request.prefix_db_agency#.Invoices SET 
            		ContractTotal = #NumberFormat(totalcontract,'_____.__')#
        		WHERE Invoice_ID = #Invoice_ID#
        		AND (IFNULL(Invoice_Lock,0) <> 1)
  		</cfquery> 
    </cfoutput>


</cfloop>



