<!---myhomecarebiz.com/cron_payments_update.cfm--->

<cfset myarray[1] = "empty value">
<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)>
<cfloop query="Agency">
    <cfset myarray[CurrentRow]=agency_id>
</cfloop>

	<!---  <cfftp action = "open"
		username = "XP_LG14"
		connection = "objConnection"
		password = "p5gNM7Kx"
		port="22" timeout="80"
		server = "sftp.quadax.com" 
		secure = "yes"> 
		
	   <cfftp action = "open"
		username = "124641"
		connection = "objConnection"
		password = "demriz41"
		port="22" timeout="80"
		server = "sshftp.zirmed.com"
		secure = "yes">--->

	<cfftp action = "open"
	username = "sftp_user"
	connection = "objConnection"
	password = "klkk$mhcbTeam$Tq"
	port="22" timeout="80"
	server = "secure.myhomecarebiz.com"
	fingerprint = "SHA256:Y9KL+2dCp9X0fAcVVB2886fuENyLBacEpJcZycH9tVo"
	secure = "yes">
	
	
<cfftp connection="objConnection" action="GetCurrentDir" stoponerror="Yes"> 
<!---<cfftp connection="objConnection" action="listdir" directory="/PICKUP/REMITS/" name="dirlist" stoponerror="Yes"> --->
<cfftp connection="objConnection" action="listdir" directory="/Upload/" name="dirlist" stoponerror="Yes"> 
<h3>The current directory is <cfoutput>#dirlist.recordCount#</cfoutput>
<cfdump var="#dirlist#" ><cfabort>
<cfset name2=ArrayNew(1) />

<cfset counts = #dirlist.recordCount# - 1 />
	 <cfloop from="1" to="#dirlist.recordCount#" index="k">
		     <cfset filepath = "/Upload/" />
				<cfset name2 = #dirlist.name[k]# />
				<cfset filepath2 = filepath&name2 >
				<cfif filepath2 does not Contain '/Download/Archive' and  (Right(name2,4) eq  '.835' OR #Right(name2,4)# eq  '.txt')>
						<cfftp action="getfile" 
						 remotefile="#filepath##name2#" 
						 localfile="/www/Zirmed_Download_files_Backup/#name2#"
						 failIfExists="no" timeout="300"
						 connection="objConnection" />
              <cffile action="read"  variable="fileContent" file="/var/www/Zirmed_Download_files_Backup/24-10-2017/#name2#" >
              <cfset strWords = #fileContent# />
              <cfset strWords = Replace(#strWords#, "CLP", "<", "all") />
              <cfset var1 = ListToArray(#strWords#,'<') />
              <cfdump var="#var1#"><cfabort>
					    <cfset  date  =ListToArray(#var1[1]#,'|')/>
              <cfset Payerdate =#date[21]# />
              <cfset myCf = createObject("java","java.text.SimpleDateFormat").init("yyyyMMdd").parse(#Payerdate#,createObject("java","java.text.ParsePosition").init(0*0)) />
							<cfset date_of_service = ''>
              <cfset paydate = #dateformat(myCf,"yyyy-mm-dd")# />
              <cfset c=0 />						
					    <cfset st_array = ListToArray(#fileContent#,'~') />
					    <cfset dateofpaid = createObject("java","java.text.SimpleDateFormat").init("yyyyMMdd").parse(#RIGHT(st_array[4],8)#,createObject("java","java.text.ParsePosition").init(0*0)) />
					    <cfset date_of_paid = #dateformat(dateofpaid,"yyyy-mm-dd")# />
						 <cfset  eftnumber  =ListToArray(#st_array[5]#,'|')/>
						 <cfset eft_number = #eftnumber[3]# />
						 <!---<cfloop from="1" to="#arraylen(st_array)#" index="j">
						 <cfif st_array[j] contains 'DTM|472|'> 
						    <cfset dateofservice =createObject("java","java.text.SimpleDateFormat").init("yyyyMMdd").parse(#RIGHT(st_array[j],8)#,createObject("java","java.text.ParsePosition").init(0*0))>
						    <cfset date_of_service = #dateformat(dateofservice,"yyyy-mm-dd")# />
							<cfbreak>
						   </cfif>
						 </cfloop>--->
						  <cfoutput>date_of_paid - #date_of_paid#<br />eft_number - #eft_number#<br /><!--- date_of_service - #date_of_service#---></cfoutput><br />
						<!---<cfdump var="#st_array#" /><cfabort>--->
                         
						
	<div class="portlet box blue">
		<div class="portlet-title">
			<div class="caption">
				<i class="fa fa-gear"></i>Payment Claims
			</div>
			<div class="tools">
				<a class="collapse" href="javascript:;" data-original-title="" title="">
				</a>
			</div>
		</div>
		<div class="portlet-body flip-scroll">
			<table class="table table-bordered table-striped table-condensed flip-content">
				<thead class="flip-content">
					<tr>
						<th>
							Internal Control Number
						</th>
						<th class="numeric">
							Total_Amount
						</th>
						<th class="numeric">
							Paid Amount
						</th>
                        <th class="numeric">
							Writeoff Amount
						</th>
						  <th class="numeric">
                            PaymentDate
						</th>
						</th>
						  <th class="numeric">
                            PAYMENT TYPE
						</th>
						  <th class="numeric">
                            Patient_name
						</th>
                       </tr>
					</thead>
                    <tbody>   
                        
                      <cfoutput> 
					<!---  Verify 32|8 and 32|9 for the SAME PATIENT in the SAME FILE
					   <cfset RAP_cancel = 0 > 
					   <cfset type_2 ='' />
					   <cfset DTM8_ ='' />
					   <cfset DTM8_1 ='' />
					   <cfset DTM8_2 ='' />
					   <cfset DTM9_ ='' />
					   <cfset IOCRAP = '' />
					   <cfset DTM9_1 ='' />
					   <cfset DTM9_2 ='' />
					   <cfset count = 0 />
					   <cfset DTM8 = ArrayNew(1) >
					   <cfset DTM9 = ArrayNew(1) >
					   <cfset DTM23 =''/>
						<cfset DTM232 = '' />
						<cfset DTM232_8 ='' />
						<cfset DTM232_9 ='' />
					   <cfloop from="2" to="#arraylen(var1)#" index="i">
					   
						<cfset arrGir = ListToArray(#var1[i]#,'|') />
						<cfset type_1 =#arrGir[7]# />
						<cfset type_2 = type_2 & #Left(arrGir[8],1)# />
						<cfif type_1 eq 32 and #Left(arrGir[8],1)#  EQ '8'>
						<cfset DTM8_ = #Right(arrGir[17],3)# />
						<cfset IOC_number8 =#arrGir[1]# />
						<cfset DTM8_1 =#arrGir[18]# />
						<cfset DTM8_2 =#Left(arrGir[19],8)# />
						</cfif>
						<cfif type_1 eq 32 and #Left(arrGir[8],1)#  EQ '9'>
						<cfset DTM9_ = #Right(arrGir[15],3)# />
						<cfset DTM9_1 =#arrGir[16]# />
						<cfset DTM9_2 =#Left(arrGir[17],8)# />
						</cfif>
						
						<cfset arrGir = ListToArray(#var1[i]#,'|') />
						<cfset type_1 =#arrGir[7]# />
						<cfset type_2 = type_2 & #Left(arrGir[8],1)# />
						
						<cfif type_1 eq 32 and #Left(arrGir[8],1)#  EQ '8'>
						<cfset IOC_number8 =#arrGir[1]# />
						<cfset DTM23 = Replace(#var1[i]#, "DTM|232|", "{", "all") />
						<cfset DTM232 = ListToArray(#DTM23#,'{') />
						<cfset DTM232_8 =#Left(DTM232[2],8)# />
						</cfif>
						
						<cfif type_1 eq 32 and #Left(arrGir[8],1)#  EQ '9'>
						<cfset DTM23 = Replace(#var1[i]#, "DTM|232|", "{", "all") />
						<cfset DTM232 = ListToArray(#DTM23#,'{') />
						<cfset DTM232_9 =#Left(DTM232[2],8)# />
						</cfif>
						<cfif type_1 eq 32 and (type_2  contains '8' OR type_2  contains '9')>
						<!---#DTM232_8#&nbsp;#DTM232_9#<br />--->
						<cfif DTM232_8 eq DTM232_9>
						<cfset IOCRAP = IOCRAP&','&IOC_number8 />
						<cfset count = count + 1 />
						</cfif>
						</cfif>
						<cfset DTM23 =''/>
						<cfset DTM232 = '' />
						<cfset DTM232_8 ='' />
						<cfset DTM232_9 ='' />
						</cfloop>
						<!---#IOCRAP#<br/>
						#count#<br />--->
						<cfif type_1 eq 32 and type_2  contains '89'>
						<cfset RAP_cancel = 1 >
						</cfif>
				End Vefiry--->
                        <cfloop from="2" to="#arraylen(var1)#" index="i">
						<cfset DTM = '' />
						<cfset DTM1 ='' />
						<cfset DTM2 ='' />
						<cfset DTM_8 ='' />
						<cfset DTM_9 ='' />
						<cfset DTM_232_ = '' />
						<cfset DTM_233_ = '' />
						<cfset DTM23_array = '' />
						<cfset RAP_cancel = 0 />
						<cfset RAP_reversal  = 0 />
                        <cfset arrGirls = ListToArray(#var1[i]#,'|') />
                        <cfset Internal_Control_number =#arrGirls[1]# />
                        <cfset Amount =#arrGirls[3]# />
                        <cfset paid =#arrGirls[4]# />
						<cfset type1 =#arrGirls[7]# />
						<cfset type2 =#Left(arrGirls[8],1)# />
                       <!--- <cfset WriteoffType =#arrGirls[30]# />--->
						<cfset WriteoffAmount = Amount - paid />
						<cfset totalAmount = Amount + paid />
						<!---Check 328/329 combination --->
						<cfset DTM23 = Replace(#var1[i]#, "DTM|232|", "{", "all") />
						<cfset DTM232 = ListToArray(#DTM23#,'{') />
						<cftry>
						<cfset DTM_8 =#Left(DTM232[2],8)# />
						<cfcatch>
						<cfset DTM_8 ='' />
						</cfcatch>
						</cftry>
						
						<cfset i_count= i+1 />
						
						<cfif type1 eq 32 and type2 eq 8 and i_count lte #arraylen(var1)#  >
						<cfset arrGirls = ListToArray(#var1[i+1]#,'|') />
						<cfset DTM23 = Replace(#var1[i+1]#, "DTM|232|", "{", "all") />
						<cfset DTM232 = ListToArray(#DTM23#,'{') />
						<cfset DTM_9 =#Left(DTM232[2],8)# />
						</cfif>
						
						<cfif DTM_8 eq DTM_9>
						<cfset RAP_cancel = 1 />
						</cfif>
						<cfset DTM_date = ''>
					     <cfset DTM_232_date = ''>
						 <cfset DTM_233_date = ''>
						  
						<!---RAP Reversal updating start--->
						<cfif type1 eq 32 and type2 eq 8 and i_count lte #arraylen(var1)#  and  SGN(paid) EQ -1 >
						<cfset arrGirls = ListToArray(#var1[i]#,'|') />
						<cfset DTM23 = Replace(#var1[i+1]#, "DTM|232|", "{", "all") />
						<cfset DTM232 = ListToArray(#DTM23#,'{') />
						<cfset DTM_232_ = #Left(DTM232[2],8)# />
						<cfset DTM_233_ = #MID(DTM232[2],18,8)# />
						<!--- DTM_233_ - #DTM_233_# <br />DTM_232_ - #DTM_232_#<br />--->
						  <!--- <cfset DTM_233_date =createObject("java","java.text.SimpleDateFormat").init("yyyyMMdd").parse(#DTM_233_#,createObject("java","java.text.ParsePosition").init(0*0))>
						    <cfset DTM_232_date =createObject("java","java.text.SimpleDateFormat").init("yyyyMMdd").parse(#DTM_232_#,createObject("java","java.text.ParsePosition").init(0*0))>
							#var1[i+1]# #DTM_232_date# #DTM_232_date#<cfabort> --->
						</cfif>
						<cfif DTM_233_ eq DTM_232_ >
						<cfset RAP_reversal = 1 />
						</cfif>
						<!---RAP Reversal updating End--->
						
						
						<!--- DTM 232 and 233 Date spliting start--->
						<cfset DTM23_array = Replace(#var1[i]#, "DTM|232|", "{", "all") />
						<cfset DTM232_data = ListToArray(#DTM23_array#,'{') />
						<cfif arraylen(DTM232_data) gt 0>
						<cfset DTM_232date = #Left(DTM232_data[2],8)# />
						<cfset DTM_233date = #MID(DTM232_data[2],18,8)# />
						 <!---DTM_233_ - #DTM_233_# <br />DTM_232_ - #DTM_232_#<br />--->
						 <cfset DTM_233_date =createObject("java","java.text.SimpleDateFormat").init("yyyyMMdd").parse(#DTM_233date#,createObject("java","java.text.ParsePosition").init(0*0))>
						 <cfset DTM_232_date =createObject("java","java.text.SimpleDateFormat").init("yyyyMMdd").parse(#DTM_232date#,createObject("java","java.text.ParsePosition").init(0*0))>
						</cfif>
						<!--- DTM 232 and 233 Date spliting  End--->
						
						<cfif DTM_233_date eq DTM_232_date >
						<cfset RAP_reversal = 1 />
						</cfif>
						
						
						<!--- DTM 472 Date spliting  start--->
						<cfset DTM472_array = Replace(#var1[i]#, "DTM|472|", "{", "all") />
						<cfset DTM472_data = ListToArray(#DTM472_array#,'{') />
						<cfif arraylen(DTM472_data) gt 0>
						<cfset dateof_service = #Left(DTM472_data[2],8)# />
						  <cfset dateofservice =createObject("java","java.text.SimpleDateFormat").init("yyyyMMdd").parse(#dateof_service#,createObject("java","java.text.ParsePosition").init(0*0))>
						    <cfset date_of_service = #dateformat(dateofservice,"yyyy-mm-dd")# />
							<!---<cfbreak>--->
						   </cfif>
						 <!--- DTM 472 Date spliting  End--->
						 
						 
						 <!--- DTM 050 Date spliting  start--->
						<cfset date_of_billed = ''>
						<cfset DTM050_array = Replace(#var1[i]#, "DTM|050|", "{", "all") />
						<cfset DTM050_data = ListToArray(#DTM050_array#,'{') />
						<cfif arraylen(DTM050_data) gt 0>
						<cfset dateof_billed = #Left(DTM050_data[2],8)# />
						  <cfset dateofbilled =createObject("java","java.text.SimpleDateFormat").init("yyyyMMdd").parse(#dateof_billed#,createObject("java","java.text.ParsePosition").init(0*0))>
						    <cfset date_of_billed = #dateformat(dateofbilled,"yyyy-mm-dd")# />
							<!---<cfbreak>--->
						   </cfif>
						 <!--- DTM 472 Date spliting  End--->
						
						
						
						<!---<cfset DTM = #Right(arrGir[15],3)# />
						<cfset DTM1 =#arrGir[16]# />
						<cfset DTM2 =#Left(arrGir[17],8)# />--->
						<cfset DTM23 = Replace(#var1[i]#, "DTM|232|", "{", "all") />
						<cfset DTM232 = ListToArray(#DTM23#,'{') />
						<cftry>
						<cfset DTMs =#Left(DTM232[2],8)# />
						<cfcatch>
						<cfset DTMs ='' />
						</cfcatch>
						</cftry>
						
						<!---<cfset DTMs =#Left(DTM232[2],8)# />--->
						<!---#DTMs#<br />--->
					    <cfset  c=c+1 />
                      <tr>
									<td>
									#Internal_Control_number#
									</td>
									<td class="numeric">
                                    #Amount#
									</td>

									<td class="numeric">
                                    #paid#
									</td>
                                    <td class="numeric">

                                    #WriteoffAmount#
									</td>
									<td class="numeric">
                                    #paydate#
									</td>
									<td class="numeric">
                                    #type1#&nbsp;#type2# 
									</td>
									<td class="numeric">
                                    #DTM#&nbsp;#DTM1#&nbsp;#DTM2# &nbsp;#RAP_cancel#&nbsp;&nbsp;#RAP_reversal# &nbsp;#DTM_232_date# &nbsp; #DTM_233_date#
									</td>
									<cfif Internal_control_number contains '-'>
									<cfset a = Internal_control_number.Split("-") >
									<cfset Request.prefix_db_agency = 'agency_'&#a[1]# />
									</cfif>
									<cfquery name="Getdatabase" datasource="#Application.DataSrc#">
										SELECT TABLE_SCHEMA  FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA like '%#Request.prefix_db_agency#%' group by  TABLE_SCHEMA
								   </cfquery>
									<cfif Getdatabase.Recordcount gt 0>
									<cfquery name="select_patient" dataSource="#Application.DataSrc#">
									select Last_Name_M0040 ,First_Name_M0040,Assessment_Tracker_ID   from #Request.prefix_db_agency#.patient 
									join #Request.prefix_db_agency#.Invoices on patient.Patient_ID  = Invoices.patient_ID
									where  Internal_Control_Number = '#Internal_control_number#' 
									</cfquery>
									<td>#select_patient.Last_Name_M0040#,#select_patient.First_Name_M0040#</td>
									<cfelse>
									<cfset Request.prefix_db_agency ='prefix_db_agency_invalid'>
									</cfif>

					</tr>
				
				
			
								
	<cfif Internal_control_number NEQ 0>
			<cfif Request.prefix_db_agency NEQ 'prefix_db_agency_invalid'>
			<cfif type1 EQ 32 and type2 EQ 0>
			                       <!---If payment type = 32|0---> 
								   <cfoutput>
								    <cfquery name="updateInvoice" dataSource="#Application.DataSrc#">
									         INSERT IGNORE into #Request.prefix_db_agency#.Invoices
											(PatientPayer_ID,Agency_ID,Patient_ID,Assessment_Tracker_ID ,Output ,DateSent,MethodSent,InvoiceTotal,PayerBalance ,
											WhereTreated,Deleted ,Comment,TeamBill,QBExport,<!---Internal_control_number,--->claim_status, errors,Error_description,claim_received_date, claim_rejected_date, TOB, Medicare_number,Date_of_service, Date_of_Remits, remit_numebr,<cfif DTM_232_date neq ''> DTM_232_date,</cfif><cfif DTM_233_date neq ''>DTM_233_date, </cfif>Updated_by,Type_Of_bill,Assessment_Completed_M0090,Certification_End, 
											No_Days,User_Defined_Status,Record_Created_By)
											
											SELECT PatientPayer_ID,Agency_ID,Patient_ID,Assessment_Tracker_ID ,Output ,<cfif date_of_billed neq ''>#date_of_billed#<cfelse>DateSent</cfif>,MethodSent,'0.00','0.00' ,WhereTreated,
											Deleted ,Comment,TeamBill,QBExport,<!---Internal_control_number,--->'DUPLICATE', errors,Error_description,claim_received_date, claim_rejected_date, TOB, Medicare_number,'#date_of_service#',  '#date_of_paid#', '#eft_number#', 
											<cfif DTM_232_date neq ''>#DTM_232_date#,</cfif><cfif DTM_233_date neq ''>#DTM_233_date#,</cfif> 'Automatic','320',Assessment_Completed_M0090,Certification_End, 
											No_Days,'Needs fix',
											Record_Created_By FROM #Request.prefix_db_agency#.Invoices WHERE  Internal_control_number = '#Internal_Control_number#' AND Internal_control_number !=0
                                        </cfquery>
									   </cfoutput>
									
									
								   
						<!---		   
			                  <cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
                                        UPDATE  IGNORE  #Request.prefix_db_agency#.Invoices
										SET  User_defined_Status ='Needs fix',
										claim_status ='DUPLICATE',
										Date_of_service = '#date_of_service#',
										Date_of_Remits = '#date_of_paid#',
										 remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
										Type_Of_bill = '320'
										<!---,Comment = 'payer is disregarding this claimbecause of duplicate submissions'--->
										WHERE Internal_control_number ='#Internal_Control_number#'
										AND Internal_control_number !=0
										AND (IFNULL(Invoice_Lock,0) <> 1)
									</cfquery>--->
									
									
			
			<cfelseif type1 EQ 32 and type2 EQ 7>
			
			                        <!---If payment type = 32|7---> 
			                  <cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
                                        UPDATE  IGNORE  #Request.prefix_db_agency#.Invoices
										SET  User_defined_Status ='Needs fix',
										Date_of_service = '#date_of_service#',
										Date_of_Remits = '#date_of_paid#',
										 remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
										Type_Of_bill = '327'
										<!---,Comment = 'cancelled due to physician or patient ineligibility'--->
										WHERE Internal_control_number ='#Internal_Control_number#'
										AND Internal_control_number !=0
										AND (IFNULL(Invoice_Lock,0) <> 1)
									</cfquery>

									
			<cfelseif type1 EQ 32 and type2 EQ 8>
			
			                        <!---If payment type = 32|8---> 
									<cfif RAP_cancel EQ 1 >
									            <cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
													UPDATE  IGNORE  #Request.prefix_db_agency#.Invoices
													SET 
													<cfif RAP_reversal EQ 1>claim_status ='RAP Reversal',<cfelse> claim_status ='cancelled',</cfif>
													 InvoiceTotal = '#Amount#',
													Date_of_service = '#date_of_service#',
										            Date_of_Remits = '#date_of_paid#',
										             remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
													Type_Of_bill = '328',
													User_defined_Status ='final paid/RAP cancelled'
													<!---,Comment = 'cancelled claim reason unknown'--->
													WHERE Internal_control_number ='#Internal_Control_number#'
													AND Internal_control_number !=0
													AND (IFNULL(Invoice_Lock,0) <> 1)
												</cfquery>
												
									<cfelse>
									            
												<cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
													UPDATE IGNORE #Request.prefix_db_agency#.Invoices
													SET <cfif RAP_reversal EQ 1>claim_status ='RAP Reversal',<cfelse> claim_status ='cancelled',</cfif>
													 InvoiceTotal = '#Amount#',
													Date_of_service = '#date_of_service#',
										            Date_of_Remits = '#date_of_paid#',
										             remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
													Type_Of_bill = '328',
													User_defined_Status ='RAP cancelled/no final payment'
													WHERE Internal_control_number ='#Internal_Control_number#'
													AND Internal_control_number !=0
													AND (IFNULL(Invoice_Lock,0) <> 1)
												</cfquery>
												
												
									
									</cfif>			
									
		<cfelseif type1 EQ 32 and  type2 EQ 9>
		
		                            <cfquery name="Get_RAP" dataSource="#Application.DataSrc#">
										 select  
										 Case when  claim_status = 'paid'  then   Invoicetotal  ELSE 0  END AS paid_total,
										 Case when  claim_status = 'cancelled' then  Invoicetotal  ELSE 0  END AS cancelled_total
										  from  #Request.prefix_db_agency#.Invoices
										 where Assessment_Tracker_ID = #select_patient.Assessment_Tracker_ID#
										 <!---and claim_status = 'paid'--->
										 AND Output = 'RAP'
										 and deleted <> 1
									</cfquery>
									<cfif Get_RAP.Recordcount gt 0 >
									<cfif Get_RAP.paid_total neq 0 >
									<cfset totalAmount = paid - Get_RAP.paid_total />
									<cfelseif Get_RAP.cancelled_total neq 0 >
									<cfset totalAmount = paid  />
									</cfif>
									</cfif>
									
									
			
			                        <!---If payment type = 32|9 update payments---> 						
									<cfquery name="InsertPayments" dataSource="#Application.DataSrc#">
										 UPDATE  IGNORE  #Request.prefix_db_agency#.Payments SET
										  Amount = '#paid#',
										  PaymentDate = '#paydate#',
										  WriteoffAmount = '#Amount#',
										  PaymentMethod = 'EFT',
										  WriteOffType = 'payer adjusted',
										  Created_By = '1'
										  WHERE Internal_control_number ='#Internal_Control_number#'
										  AND Internal_control_number !=0
										  AND (IFNULL(Payment_Lock,0) <> 1)
										 </cfquery>
										 
								<!---If payment type = 32|9 update Invoice--->
									<cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
                                        UPDATE  IGNORE  #Request.prefix_db_agency#.Invoices
										SET  claim_status ='Paid',
										 InvoiceTotal = '#Amount#',
										Date_of_service = '#date_of_service#',
										Date_of_Remits = '#date_of_paid#',
										 remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
										Type_Of_bill = '329',
										<!---Comment = 'paid',--->
										<!---InvoiceTotal = '#totalAmount#',--->
										User_defined_Status ='final paid/RAP cancelled'
										WHERE Internal_control_number ='#Internal_Control_number#'
										AND Internal_control_number !=0
										AND (IFNULL(Invoice_Lock,0) <> 1)
									</cfquery>
									
			<cfelseif type1 EQ 32 and type2 EQ 2>
			
			                        <!---If payment type = 32|2 update payments---> 						

									<cfquery name="InsertPayments" dataSource="#Application.DataSrc#">
										 UPDATE  IGNORE  #Request.prefix_db_agency#.Payments SET
										  Amount = '#paid#',
										  PaymentDate = '#paydate#',
										  WriteoffAmount = '#Amount#',
										  PaymentMethod = 'EFT',
										  Created_By = '1'
										  WHERE Internal_control_number ='#Internal_Control_number#'
										  AND Internal_control_number !=0
										  AND (IFNULL(Payment_Lock,0) <> 1)
										 </cfquery>
										 
								<!---If payment type = 32|2 update Invoice--->
									<cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
                                        UPDATE  IGNORE  #Request.prefix_db_agency#.Invoices
										SET  claim_status ='Paid',
										Date_of_service = '#date_of_service#',
										Date_of_Remits = '#date_of_paid#',
										 remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
										Type_Of_bill = '322',
										<!---Comment = 'paid',--->
										InvoiceTotal = '#totalAmount#'
										<!--- User_defined_Status ='',--->
										WHERE Internal_control_number ='#Internal_Control_number#'
										AND Internal_control_number !=0
										AND (IFNULL(Invoice_Lock,0) <> 1)
									</cfquery>
									
		<cfelseif type1 EQ 32 and type2 EQ 'I'>
			
			                        <!---If payment type = 32|I update payments---> 						
									<cfquery name="InsertPayments" dataSource="#Application.DataSrc#">
										  UPDATE  IGNORE  #Request.prefix_db_agency#.Payments SET
										  Amount = '#paid#',
										  PaymentDate = '#paydate#',
										  WriteoffAmount = '#Amount#',
										  WriteOffType = 'payer adjusted',
										  PaymentMethod = 'EFT',
										  Created_By = '1'
										  WHERE Internal_control_number ='#Internal_Control_number#'
										  AND Internal_control_number !=0
										  AND (IFNULL(Payment_Lock,0) <> 1)
										 </cfquery>
										 
								
									
				</cfif>
		  <!---</cfif>--->
		  <cfelse>
		  <cftry>
			<cfloop from=1 to=#ArrayLen(myarray)# index=ind>
				<cfif ArrayLen(myarray) gt 1>
					<cfset Request.prefix_db_agency = 'agency_'&myarray[ind] />
				</cfif>
				
				<cfif type1 EQ 32 and type2 EQ 0>
			
			                       <!---If payment type = 32|0---> 
								   
								    <cfquery name="updateInvoice" dataSource="#Application.DataSrc#">
									         INSERT IGNORE into #Request.prefix_db_agency#.Invoices
											(PatientPayer_ID,Agency_ID,Patient_ID,Assessment_Tracker_ID ,Output ,DateSent,MethodSent,InvoiceTotal,PayerBalance ,
											WhereTreated,Deleted ,Comment,TeamBill,QBExport,<!---Internal_control_number,--->claim_status, errors,Error_description,claim_received_date, claim_rejected_date, TOB, Medicare_number,Date_of_service, Date_of_Remits, remit_numebr,<cfif DTM_232_date neq ''> DTM_232_date,</cfif><cfif DTM_233_date neq ''>DTM_233_date, </cfif>Updated_by,Type_Of_bill,Assessment_Completed_M0090,Certification_End, 
											No_Days,User_Defined_Status,Record_Created_By)
											
											SELECT PatientPayer_ID,Agency_ID,Patient_ID,Assessment_Tracker_ID ,Output ,DateSent,MethodSent,'0.00','0.00' ,WhereTreated,
											Deleted ,Comment,TeamBill,QBExport,<!---Internal_control_number,--->'DUPLICATE', errors,Error_description,claim_received_date, claim_rejected_date, TOB, Medicare_number,'#date_of_service#',  '#date_of_paid#', '#eft_number#', 
											<cfif DTM_232_date neq ''>#DTM_232_date#,</cfif><cfif DTM_233_date neq ''>#DTM_233_date#,</cfif> 'Automatic','320',Assessment_Completed_M0090,Certification_End, 
											No_Days,'Needs fix',
											Record_Created_By FROM #Request.prefix_db_agency#.Invoices WHERE  Internal_control_number = '#Internal_Control_number#' AND Internal_control_number !=0
                                        </cfquery>
										
			                  <!---<cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
                                        UPDATE  IGNORE  #Request.prefix_db_agency#.Invoices
										SET  User_defined_Status ='Needs fix',
										claim_status ='DUPLICATE',
										Date_of_service = '#date_of_service#',
										Date_of_Remits = '#date_of_paid#',
										 remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
										Type_Of_bill = '320'
										<!---,Comment = 'payer is disregarding this claimbecause of duplicate submissions'--->
										WHERE Internal_control_number ='#Internal_Control_number#'
										AND Internal_control_number !=0
										AND (IFNULL(Invoice_Lock,0) <> 1)
									</cfquery>--->
			
			<cfelseif type1 EQ 32 and type2 EQ 7>
			
			                        <!---If payment type = 32|7---> 
			                  <cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
                                        UPDATE  IGNORE  #Request.prefix_db_agency#.Invoices
										SET  User_defined_Status ='Needs fix',
										Date_of_service = '#date_of_service#',
										Date_of_Remits = '#date_of_paid#',
										 remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
										Type_Of_bill = '327'
										<!---,Comment = 'cancelled due to physician or patient ineligibility'--->
										WHERE Internal_control_number ='#Internal_Control_number#'
										AND Internal_control_number !=0
										AND (IFNULL(Invoice_Lock,0) <> 1)
									</cfquery>
									
			<cfelseif type1 EQ 32 and type2 EQ 8>
			
			                        <!---If payment type = 32|8---> 
									<cfif RAP_cancel EQ 1>
									            <cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
													UPDATE  IGNORE  #Request.prefix_db_agency#.Invoices
													SET  <cfif RAP_reversal EQ 1>claim_status ='RAP Reversal',<cfelse> claim_status ='cancelled',</cfif>
													 InvoiceTotal = '#Amount#',
													Date_of_service = '#date_of_service#',
										            Date_of_Remits = '#date_of_paid#',
										             remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
													Type_Of_bill = '328',
													User_defined_Status ='final paid/RAP cancelled'
													<!---,Comment = 'cancelled claim reason unknown'--->
													WHERE Internal_control_number ='#Internal_Control_number#'
													AND Internal_control_number !=0
													AND (IFNULL(Invoice_Lock,0) <> 1)
												</cfquery>
												
									<cfelse>
									            
												<cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
													UPDATE IGNORE #Request.prefix_db_agency#.Invoices
													SET  <cfif RAP_reversal EQ 1>claim_status ='RAP Reversal',<cfelse> claim_status ='cancelled',</cfif>
													 InvoiceTotal = '#Amount#',
													Date_of_service = '#date_of_service#',
													Date_of_Remits = '#date_of_paid#',
													 remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
													Type_Of_bill = '328',
													User_defined_Status ='RAP cancelled/no final payment'
													WHERE Internal_control_number ='#Internal_Control_number#'
													AND Internal_control_number !=0
													AND (IFNULL(Invoice_Lock,0) <> 1)
												</cfquery>
												
												
									
									</cfif>			
									
		<cfelseif type1 EQ 32 and  type2 EQ 9>
			
			                        <!---If payment type = 32|9 update payments---> 						
									<cfquery name="InsertPayments" dataSource="#Application.DataSrc#">
										 UPDATE  IGNORE  #Request.prefix_db_agency#.Payments SET
										  Amount = '#paid#',
										  PaymentDate = '#paydate#',
										  WriteoffAmount = '#Amount#',
										  PaymentMethod = 'EFT',
										  WriteOffType = 'payer adjusted',
										  Created_By = '1'
										  WHERE Internal_control_number ='#Internal_Control_number#'
										  AND Internal_control_number !=0
										  AND (IFNULL(Payment_Lock,0) <> 1)
										 </cfquery>
										 
								<!---If payment type = 32|9 update Invoice--->
									<cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
                                        UPDATE  IGNORE  #Request.prefix_db_agency#.Invoices
										SET  claim_status ='Paid',
										 InvoiceTotal = '#Amount#',
										Date_of_service = '#date_of_service#',
										Date_of_Remits = '#date_of_paid#',
										 remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
										Type_Of_bill = '329',
										<!---Comment = 'paid',--->
										<!---InvoiceTotal = '#totalAmount#',--->
										User_defined_Status ='final paid/RAP cancelled'
										WHERE Internal_control_number ='#Internal_Control_number#'
										AND Internal_control_number !=0
										AND (IFNULL(Invoice_Lock,0) <> 1)
									</cfquery>
									
			<cfelseif type1 EQ 32 and type2 EQ 2>
			
			                        <!---If payment type = 32|2 update payments---> 						
									<cfquery name="InsertPayments" dataSource="#Application.DataSrc#">
										 UPDATE  IGNORE  #Request.prefix_db_agency#.Payments SET
										  Amount = '#paid#',
										  PaymentDate = '#paydate#',
										  WriteoffAmount = '#Amount#',
										  PaymentMethod = 'EFT',
										  Created_By = '1'
										  WHERE Internal_control_number ='#Internal_Control_number#'
										  AND Internal_control_number !=0
										  AND (IFNULL(Payment_Lock,0) <> 1)
										 </cfquery>
										 
								<!---If payment type = 32|2 update Invoice--->
									<cfquery name="updateInvoices" dataSource="#Application.DataSrc#">
                                        UPDATE  IGNORE  #Request.prefix_db_agency#.Invoices
										SET  claim_status ='Paid',
										Date_of_service = '#date_of_service#',
										Date_of_Remits = '#date_of_paid#',
										 remit_numebr = '#eft_number#',
												    Updated_by = 'Automatic',
										<cfif DTM_232_date neq ''>DTM_232_date = #DTM_232_date#,</cfif>
										<cfif DTM_233_date neq ''>DTM_233_date = #DTM_233_date#,</cfif>
										Type_Of_bill = '322',
										<!---Comment = 'paid',--->
										InvoiceTotal = '#totalAmount#'
										<!--- User_defined_Status ='',---> 
										WHERE Internal_control_number ='#Internal_Control_number#'
										AND Internal_control_number !=0
										AND (IFNULL(Invoice_Lock,0) <> 1)
									</cfquery>
									
		<cfelseif type1 EQ 32 and type2 EQ 'I'>
			
			                        <!---If payment type = 32|I update payments---> 						
									<cfquery name="InsertPayments" dataSource="#Application.DataSrc#">
										  UPDATE  IGNORE  #Request.prefix_db_agency#.Payments SET
										  Amount = '#paid#',
										  PaymentDate = '#paydate#',
										  WriteoffAmount = '#Amount#',
										  WriteOffType = 'payer adjusted',
										  PaymentMethod = 'EFT',
										  Created_By = '1'
										  WHERE Internal_control_number ='#Internal_Control_number#'
										  AND Internal_control_number !=0
										  AND (IFNULL(Payment_Lock,0) <> 1)
										 </cfquery>
										 
								
									
				</cfif>
				
				 </cfloop>
                  <cfcatch>
                     <script type="text/javascript">
                              window.onload = function(){
                              alert("Please Check  Payment in your File");
                             }

					  </script>
                   </cfcatch>
            </cftry>
			</cfif>
		   <cfset Request.prefix_db_agency ='prefix_db_agency_invalid'>
		   <cfset RAP_cancel = 0 > 
		   <cfset RAP_reversal = 0 />
		   </cfif>
			</cfloop>
</cfoutput>
        
        </tbody>
			</table>
		</div>
	</div>
	<cfelse>
	<cfset k = k+1 />
		</cfif>
	</cfloop>
		<cfloop from="1" to="#dirlist.recordCount#" index="k">
		<cfset filepath = "/Download/" />
		<cfset name2 = #dirlist.name[k]# />
		<cfset filepath2 = filepath&name2 >
		<cfif filepath2 does not Contain '/Download/Archive' and  #Right(name2,7)#  eq  '835.edi'>
			<cfftp action="remove"  item="#filepath##name2#"  connection="objConnection"  stoponerror="yes" />
		</cfif>	
	</cfloop>
<cfftp action="close" connection="objConnection"/>