<!---cron_duplicate_employee.cfm--->

<cfset myarray[1] = "empty value">

<cfquery name="GetTable" datasource="#Application.DataSrc#">
		SELECT TABLE_SCHEMA  FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA like '%agency%' group by  TABLE_SCHEMA
</cfquery>

<cfquery name="Agency" datasource="#Application.DataSrc#">
		select agency_id from #Request.prefix_db_lookup#.Agency where status='active' ORDER BY agency_id
</cfquery>
<cfset myarray=arraynew(1)>
<cfset database=arraynew(1)>
<cfloop query="Agency">
<cfset myarray[CurrentRow]=agency_id>
</cfloop>

<cfloop query="GetTable">
<cfset database[CurrentRow]= TABLE_SCHEMA>
</cfloop>


	<cfquery name="Delete" datasource="#Application.DataSrc#">
	DELETE from  #Request.prefix_db_lookup#.Schedules_Dup
	</cfquery>

	<cfloop from=1 to=#ArrayLen(database)# index=ind>

			<cfset Request.prefix_db_agency = database[ind] />
			<cfquery name="Update_Dup" datasource="#Application.DataSrc#">
				Update #Request.prefix_db_agency#.pSchedules  SET
				Schedules_Dup = 0
				WHERE status = 0 
				AND Year(pSchedules.Visit_Date) = YEAR(CURDATE())
				AND MONTH(pSchedules.Visit_Date) = MONTH(CURDATE())
				</cfquery>

			<cfset agencyList = ListToArray(database[ind],'_')>
			<cfquery name="get" datasource="#Application.DataSrc#">
			Insert IGNORE INTO #Request.prefix_db_lookup#.Schedules_Dup
				(
				  Schedule_ID,Patient_ID,Visit_Date,StartTime,EndTime,Emp_ID
				)
			select Schedule_ID,Patient_ID,Visit_Date,StartTime,EndTime,pSchedules.Emp_ID  FROM  #Request.prefix_db_agency#.pSchedules 
			JOIN #Request.prefix_db_lookup#.pEmployee ON pEmployee.Emp_ID = pSchedules.Emp_ID
			WHERE pSchedules.status  = 0
			<!---AND(pSchedules.Visit_Date >= {d '2016-11-01'} AND pSchedules.Visit_Date <= {d '2016-12-31'})  --->
			AND Year(pSchedules.Visit_Date) = YEAR(CURDATE())
			-- AND MONTH(pSchedules.Visit_Date) = MONTH(CURDATE())
			 AND  pSchedules.Visit_Date >= now() - INTERVAL 2 month 
			<!---AND Schedules_Dup != 1--->  and Schedules_Dup != 3
			AND pEmployee.Loc_ID =  #agencyList[2]# AND pEmployee.status = 0
			</cfquery>

			<cfquery name="Update_Dup" datasource="#Application.DataSrc#">
				Update #Request.prefix_db_agency#.pSchedules  SET
				Schedules_Dup = 0
				WHERE Schedules_Dup = 2 AND status = 0
			</cfquery>


			<cfquery name="getDup" datasource="#Application.DataSrc#"> 
			Select *  FROM #Request.prefix_db_lookup#.Schedules_Dup ORDER BY  Emp_ID ASC
			</cfquery>

			<cfloop query="getDup"> 
					<cfquery name="test" datasource="#Application.DataSrc#">
					SELECT s.Schedule_ID,s.Visit_Date,s.StartTime,s.EndTime FROM #Request.prefix_db_agency#.pSchedules s
					JOIN  #Request.prefix_db_agency#.pPatients on s.Patient_ID = pPatients.Patient_ID AND  pPatients.status = 0 
					WHERE  s.Visit_Date = '#DateFormat(Visit_Date,"yyy-mm-dd")#'
					AND (time('#StartTime#') Between s.StartTime And s.EndTime
					OR time('#EndTime#') Between s.StartTime And s.EndTime 
					 OR s.StartTime  Between time('#StartTime#') AND time('#EndTime#')
					OR s.EndTime Between time('#StartTime#') AND time('#EndTime#'))
					AND s.Emp_ID = #Emp_ID# <!--- AND s.Patient_ID != #Patient_ID#  --->
					AND s.status = 0
					AND s.Missed = 0
					</cfquery> 

					<cfif  test.Recordcount gt 1 >
						<cfoutput query="test">
							<cfquery name="Update_Dup" datasource="#Application.DataSrc#">
								Update #Request.prefix_db_agency#.pSchedules  SET
								Schedules_Dup = 2
								WHERE Schedule_ID in (#Schedule_ID#)
							</cfquery>
						</cfoutput>
					</cfif> 

			</cfloop>


			<cfquery name="Delete" datasource="#Application.DataSrc#">
			DELETE from  #Request.prefix_db_lookup#.Schedules_Dup
			</cfquery>

	</cfloop>
