Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.85 KB | None | 0 0
  1. <cfcomponent name="SFOvertimeVN" hint="SunFish Overtime Formula Object">
  2.  
  3. <cfset objAttendance = createobject("component","SFAttendance")/>
  4. <cfset objAttendance.checkDBChangeAll("TTAMOVERTIME","splitovtdaytypeph","tinyint","1")>
  5.  
  6. <cffunction name="overtimeIndexOtherPH">
  7. <cfargument name="ovtday" default="#now()#">
  8. <cfargument name="empid" default="">
  9. <cfargument name="company_id" default=#request.scookie.coid#>
  10. <cfargument name="attend_id" default=""> <!--- attendance_id --->
  11. <cfargument name="ovttype" default="">
  12. <cfargument name="startovt" default="00:00">
  13. <cfargument name="endovt" default="00:00">
  14. <cfargument name="AUTO" default="0">
  15. <cfargument name="IN" default="0">
  16. <cfargument name="BREAK1" default="0">
  17. <cfargument name="BREAK2" default="0">
  18. <cfargument name="BREAK3" default="0">
  19. <cfargument name="BREAK4" default="0">
  20. <cfargument name="BREAK5" default="0">
  21. <cfargument name="OUT" default="0">
  22. <cfargument name="ovtdetail_id" default="">
  23. <cfargument name="starttime_ot" default="00:00">
  24. <cfargument name="isND" default="0">
  25. <!--- <cf_sfwritelog dump="Arguments" prefix="Rangga_PH_" folder="rangga"> --->
  26.  
  27. <cfdump var="hello buddy">
  28.  
  29. <cfset objectAttendance = CreateObject("component","SFAttendance")/>
  30. <cfset objOvertime = createobject("component","SFOvertime")/>
  31. <cfset LOCAL.NonAuto = IN + BREAK1 + BREAK2+ BREAK3+ BREAK4+ BREAK5+ OUT>
  32. <cfquery datasource="#REQUEST.SDSN#" name="qGetOvtSetting">
  33. SELECT step, value FROM TTADOVERTIMEDEDUCT
  34. WHERE overtime_code = <cfqueryparam value="#ovttype#" cfsqltype="cf_sql_varchar">
  35. </cfquery>
  36. <!--- <cfdump var="#qGetOvtSetting#"> --->
  37. <cfset qSplitOvertime = splitOvertimePh(ovttype,startovt,endovt,empid,company_id,attend_id,starttime_ot,isND,AUTO,NONAUTO)>
  38. <cfif val(qGetOvtSetting.step) neq 0>
  39. <cfset local.totalminutesovt = val(AUTO) + val(NONAUTO)>
  40. <cfset local.recurdeduct = int(val(totalminutesovt)/val(qGetOvtSetting.step))>
  41. <cfset local.queryDeductDef = QueryNew("step, startdeduct, enddeduct", "integer, Timestamp, Timestamp")>
  42. <cfloop from="1" to="#recurdeduct#" index="idxrecur">
  43. <cfset local.thestep = idxrecur*val(qGetOvtSetting.step)>
  44. <cfset local.enddeduct = dateAdd('n',thestep,startovt)>
  45. <cfset local.startdeduct = dateAdd('n',qGetOvtSetting.value*-1,enddeduct)>
  46. <cfset QueryAddRow(queryDeductDef, 1)>
  47. <cfset QuerySetCell(queryDeductDef, "step", thestep)>
  48. <cfset QuerySetCell(queryDeductDef, "startdeduct", startdeduct)>
  49. <cfset QuerySetCell(queryDeductDef, "enddeduct", enddeduct)>
  50. </cfloop>
  51. </cfif>
  52. <cfset local.acceptedOvt = 0>
  53. <cfset totalIndex = 0>
  54. <cfset totalIndexNSD = 0>
  55. <cfset local.lstidx = ''>
  56. <cfset TotalLstIndex = "">
  57. <cfset local.deducttime = "">
  58. <cfset local.totaldeduct = "">
  59. <cfquery datasource="#REQUEST.SDSN#" name="qOther">
  60. SELECT code FROM TTAMOVTTYPE
  61. </cfquery>
  62. <cfset TOTALOVTOTHER = IN+BREAK1+BREAK2+BREAK3+BREAK4+BREAK5+OUT>
  63. <cfloop query="qOther">
  64. <cfset "Total#code#" = objOvertime.IndexOther(TOTALOVTOTHER,ovttype,code)>
  65. </cfloop>
  66.  
  67.  
  68. <!--- <cfdump var="#queryDeductDef#"> --->
  69. <cfquery datasource="#REQUEST.SDSN#" name="qDelOvtIndex">
  70. DELETE FROM TTADATTOVTINDEX
  71. WHERE attend_id = <cfqueryparam value="#arguments.ATTEND_ID#" cfsqltype="cf_sql_varchar">
  72. </cfquery>
  73. <!--- <cf_sfwritelog dump="qSplitOvertime" prefix="Rangga_PH_36_"> --->
  74. <cfset local.lstidxtemp = "">
  75. <cfset local.totalExcess8 = 0>
  76. <cfset local.totalFirst8 = 0>
  77. <cfset local.totalNSD1 = 0>
  78. <cfset local.totalNSD2 = 0>
  79. <cfset listOvttypeph = "">
  80. <cfloop query="qSplitOvertime">
  81. <cfset ovtdaystart = createdatetime(year(qSplitOvertime.startovt),month(qSplitOvertime.startovt),day(qSplitOvertime.startovt),0,0,0)>
  82. <cfset ovtTime = 0>
  83. <cfif val(qGetOvtSetting.step) neq 0>
  84.  
  85. <cfset ovtTime = DateDiff('n',qSplitOvertime.startovt, qSplitOvertime.endtovt)>
  86. <cfset local.deducttime = "">
  87.  
  88. <cfelse>
  89. <cfset ovtTime = DateDiff('n',qSplitOvertime.startovt, qSplitOvertime.endtovt)>
  90. <!---
  91. sementara
  92. <cfif qSplitOvertime.nsd_no eq 0>
  93. <cfset local.deducttime = "">
  94. <cfset acceptedOvt = acceptedOvt+ovtTime>
  95. </cfif>
  96. --->
  97. </cfif>
  98. <!--- <cfset ovtTime = DateDiff('n',qSplitOvertime.startovt, qSplitOvertime.endtovt)> --->
  99. <cfset theIndex = IndexOvertimePh(ovtTime,ovttype,1,qSplitOvertime.nsd_no)>
  100. <!---<cfset totalIndex = totalIndex + theIndex.index>--->
  101. <cfset totalIndex = theIndex.index + theIndex.otnsd>
  102. <cfset totalIndexNSD = totalIndexNSD + theIndex.otnsd>
  103. <cfset lstidxtemp = ListAppend(lstidxtemp,theIndex.lstidx,"|")>
  104.  
  105. <cfquery datasource="#REQUEST.SDSN#" name="qUpdateOvertimeNsd">
  106. UPDATE TTADATTOVTDETAILVN
  107. SET totalidx = '#totalIndex#'
  108. , total_ot = '#theIndex.index#'
  109. , totalnsd = '#theIndex.otnsd#'
  110. WHERE detailvn_id = #qSplitOvertime.detailvn_id#
  111. </cfquery>
  112.  
  113. <cfif qSplitOvertime.nsd_no eq 0>
  114. <cfif ListFindNoCase(listOvttypeph,"Excess8") eq 0>
  115. <cfset listOvttypeph = ListAppend(listOvttypeph,"Excess8")>
  116. </cfif>
  117. <cfset factorExcess8 = qSplitOvertime.ot_factor>
  118. <cfset totalExcess8 = totalExcess8 + theIndex.otnsd + theIndex.index>
  119. <cfelseif qSplitOvertime.nsd_no eq 0>
  120. <cfif ListFindNoCase(listOvttypeph,"First8") eq 0>
  121. <cfset listOvttypeph = ListAppend(listOvttypeph,"First8")>
  122. </cfif>
  123. <cfset factorFirst8 = qSplitOvertime.ot_factor>
  124. <cfset totalFirst8 = totalFirst8 + theIndex.otnsd + theIndex.index>
  125. <cfelseif qSplitOvertime.nsd_no eq 1>
  126. <cfif ListFindNoCase(listOvttypeph,"NSD1") eq 0>
  127. <cfset listOvttypeph = ListAppend(listOvttypeph,"NSD1")>
  128. </cfif>
  129. <cfset factorNSD1 = qSplitOvertime.nsd_factor>
  130. <cfset totalNSD1 = totalNSD1 + theIndex.otnsd + theIndex.index>
  131. <cfelseif qSplitOvertime.nsd_no eq 2>
  132. <cfif ListFindNoCase(listOvttypeph,"NSD2") eq 0>
  133. <cfset listOvttypeph = ListAppend(listOvttypeph,"NSD2")>
  134. </cfif>
  135. <cfset factorNSD2 = qSplitOvertime.nsd_factor>
  136. <cfset totalNSD2 = totalNSD2 + theIndex.otnsd + theIndex.index>
  137. </cfif>
  138. </cfloop>
  139. <cfloop list="#listOvttypeph#" index="OTcode">
  140. <cfif Evaluate('factor#OTcode#') neq "">
  141. <cfset factorOT=Evaluate('factor#OTcode#')>
  142. <cfelse>
  143. <cfset factorOT=0>
  144. </cfif>
  145.  
  146. <cfif Evaluate('total#OTcode#') neq "">
  147. <cfset totalOT=Evaluate('total#OTcode#')>
  148. <cfelse>
  149. <cfset totalOT=0>
  150. </cfif>
  151.  
  152. <cfquery datasource="#REQUEST.SDSN#" name="qInsOvtIndex">
  153. INSERT INTO TTADATTOVTINDEX
  154. VALUES(
  155. <cfqueryparam value="#arguments.ATTEND_ID#" cfsqltype="cf_sql_varchar">,
  156. <cfqueryparam value="#ovtday#" cfsqltype="CF_SQL_TIMESTAMP">,
  157. <cfqueryparam value="#OTcode#" cfsqltype="cf_sql_varchar">,
  158. <cfqueryparam value="#factorOT#" cfsqltype="CF_SQL_FLOAT">,
  159. <cfqueryparam value="#totalOT#" cfsqltype="CF_SQL_FLOAT">,
  160. NULL, <!--- dikosongin dulu. nanti dipakai untuk premium night / bukan (pake utk philipine) --->
  161. <cfqueryparam value="#Request.scookie.user.uname#" cfsqltype="cf_sql_varchar">,
  162. <cfqueryparam value="#now()#" cfsqltype="CF_SQL_TIMESTAMP">
  163. )
  164. </cfquery>
  165. </cfloop>
  166.  
  167. <cfset totalAllIndex = totalIndex + totalIndexNSD>
  168. <!--- Update total Index attendance --->
  169. <cfquery datasource="#REQUEST.SDSN#" name="qUpdateAttendance">
  170. UPDATE TTADATTENDANCE
  171. SET total_otindex = <cfqueryparam value="#totalAllIndex#" cfsqltype="cf_sql_decimal" scale="8">
  172. ,total_ot = <cfqueryparam value="#acceptedOvt#" cfsqltype="cf_sql_decimal" scale="8">
  173. WHERE attend_id = <cfqueryparam value="#arguments.ATTEND_ID#" cfsqltype="cf_sql_varchar">
  174. </cfquery>
  175. <cfquery datasource="#REQUEST.SDSN#" name="qUpdateAttendance">
  176. UPDATE TTADATTOVTDETAIL
  177. SET accepted_min = <cfqueryparam value="#acceptedOvt#" cfsqltype="cf_sql_decimal" scale="8">
  178. WHERE ovtdetail_id = <cfqueryparam value="#arguments.ovtdetail_id#" cfsqltype="cf_sql_varchar">
  179. </cfquery>
  180. <cfquery datasource="#REQUEST.SDSN#" name="qDelOvtOther">
  181. DELETE FROM TTADATTOVTOTHER
  182. WHERE attend_id = <cfqueryparam value="#arguments.ATTEND_ID#" cfsqltype="cf_sql_varchar">
  183. </cfquery>
  184.  
  185. <cfquery datasource="#REQUEST.SDSN#" name="qSelectTempPH">
  186. DELETE FROM TTADATTOVTDETAILVN WHERE attend_id NOT IN (SELECT attend_id FROM TTADATTENDANCE)
  187. <!--- bersihkan data, hapus detail yang sudah tidak ada di attendance --->
  188. </cfquery>
  189. <cfloop query="qOther"> <!--- masukkan data overtime other --->
  190. <cfquery datasource="#REQUEST.SDSN#" name="qInsOvtOther">
  191. INSERT INTO TTADATTOVTOTHER
  192. VALUES(
  193. <cfqueryparam value="#arguments.ATTEND_ID#" cfsqltype="cf_sql_varchar">,
  194. <cfqueryparam value="#ovtday#" cfsqltype="CF_SQL_TIMESTAMP">,
  195. <cfqueryparam value="#qOther.code#" cfsqltype="cf_sql_varchar">,
  196. <cfqueryparam value="#evaluate("Total#Code#")#" cfsqltype="CF_SQL_FLOAT">,
  197. <cfqueryparam value="#Request.scookie.user.uname#" cfsqltype="cf_sql_varchar">,
  198. <cfqueryparam value="#now()#" cfsqltype="CF_SQL_TIMESTAMP">
  199. )
  200. </cfquery>
  201. </cfloop>
  202. <cfquery name="qCheckOvtDetPhi" datasource="#REQUEST.SDSN#">
  203. SELECT * FROM TTADATTOVTDETAILVN
  204. where attend_id = <cfqueryparam value="#arguments.ATTEND_ID#" cfsqltype="cf_sql_varchar">
  205. </cfquery>
  206. <cfreturn TotalLstIndex>
  207. </cffunction>
  208.  
  209. <cffunction name="splitOvertimePh">
  210. <cfargument name="overtimecode" default="">
  211. <cfargument name="startovertime" default="">
  212. <cfargument name="endovertime" default="">
  213. <cfargument name="emp_id" default="#request.scookie.user.empid#">
  214. <cfargument name="company_id" default="#request.scookie.coid#">
  215. <cfargument name="attend_id" default="">
  216. <cfargument name="starttime_ot" default="">
  217. <cfargument name="isND" default="0">
  218. <cfargument name="AUTO" default="0">
  219. <cfargument name="NONAUTO" default="0">
  220.  
  221. <cfset LOCAL.strckDetailPhi = Arguments/>
  222.  
  223. <cfset objOvtPhi = CreateObject("component","SMOvertimeVN")/>
  224. <cfset objectAttendance = CreateObject("component","SFAttendance")/>
  225. <cfset shiftdailyCode = "">
  226. <cfset ovCode ="overtimecode,overtimecode_restd,overtimecode_ph,overtimecode_sd,overtimecode_phrestd,overtimecode_sdrestd">
  227.  
  228. <cfquery datasource="#REQUEST.SDSN#" name="qGetAttshift">
  229. SELECT shiftdaily_code, starttime, endtime, shiftstarttime, shiftendtime,daytype FROM TTADATTENDANCE
  230. WHERE attend_id = <cfqueryparam value="#arguments.attend_id#" cfsqltype="cf_sql_varchar">
  231. </cfquery>
  232.  
  233. <cfif qGetAttshift.recordcount eq 0>
  234. <cfset qDefShift = objectAttendance.GetDefaultShift(arguments.emp_id,arguments.company_id,startovertime)>
  235. <cfset shiftdailyCode = qDefShift.shiftdailycode>
  236. <cfset shiftdailystart = qDefShift.starttime>
  237. <cfset shiftdailyend = qDefShift.endtime>
  238. <cfelse>
  239. <cfset shiftdailyCode = qGetAttshift.shiftdaily_code>
  240. <cfset shiftdailystart = qGetAttshift.shiftstarttime>
  241. <cfset shiftdailyend = qGetAttshift.shiftendtime>
  242. </cfif>
  243.  
  244. <cfquery datasource="#REQUEST.SDSN#" name="qGetOvtCode">
  245. SELECT *
  246. FROM TTAMSHIFTDAILY
  247. WHERE shiftdailycode = <cfqueryparam value="#shiftdailyCode#" cfsqltype="cf_sql_varchar">
  248. and company_id = <cfqueryparam value="#arguments.company_id#" cfsqltype="cf_sql_varchar">
  249. </cfquery>
  250. <!---cf_sfwritelog dump="qGetOvtCode" prefix="rangga" folder="rangga"--->
  251. <cfset local.ovtdayphi = CreateDate(year(startovertime),month(startovertime),day(startovertime))>
  252.  
  253.  
  254. <cfquery datasource="#REQUEST.SDSN#" name="qGetOvertimeNsd"> <!--- cari setting NSD --->
  255. SELECT startnsd, endnsd, nsd_no,factor,factor2 FROM TTADOVERTIMENSD
  256. WHERE overtime_code = <cfqueryparam value="#overtimecode#" cfsqltype="cf_sql_varchar">
  257. ORDER BY startnsd
  258. </cfquery>
  259. <cfquery datasource="#REQUEST.SDSN#" name="qGetOvertimeEight"> <!--- cari setting Overtime --->
  260. SELECT step, value, factor_no FROM TTADOVERTIMEFACTOR
  261. WHERE overtime_code = <cfqueryparam value="#overtimecode#" cfsqltype="cf_sql_varchar">
  262. ORDER BY factor_no
  263. </cfquery>
  264. <cfquery datasource="#REQUEST.SDSN#" name="qGetOvertimeSplit"> <!--- cari setting Overtime Split for PH --->
  265. SELECT splitovtdaytypeph FROM TTAMOVERTIME
  266. WHERE overtime_code = <cfqueryparam value="#overtimecode#" cfsqltype="cf_sql_varchar">
  267. </cfquery>
  268. <cfif qGetOvertimeSplit.splitovtdaytypeph eq 1>
  269. <cfset splitovtdaytypeph = 1>
  270. <cfelse>
  271. <cfset splitovtdaytypeph = 0>
  272. </cfif>
  273. <cfif isND eq 0>
  274. <cfset starttime_ot = CreateDateTime(year(startovertime),month(startovertime),day(startovertime),hour(startovertime),minute(startovertime),'00')>
  275. <cfelse>
  276. <cfset starttime_ot = CreateDateTime(year(starttime_ot),month(starttime_ot),day(starttime_ot),hour(starttime_ot),minute(starttime_ot),'00')>
  277. <!--- <cfif starttime_ot gt startovertime>
  278. <cfset starttime_ot = DateAdd('d',-1,starttime_ot)>
  279. </cfif> --->
  280. </cfif>
  281. <!--- <cfoutput><script>alert('#TimeFormat(starttime_ot)# ~ #isND#') </script> </cfoutput> --->
  282. <!--- remark sementara untuk update atmelph - tasya-
  283. <cfif day(starttime_ot) gt day(startovertime)>
  284. <cfset overtimetime_temp = startovertime>
  285. <cfelse>
  286. <cfset overtimetime_temp = starttime_ot>
  287. </cfif> --->
  288. <cfset overtimetime_temp = startovertime>
  289. <cfset overtime_codenext = ''>
  290. <cfset shiftdailyCodenext = ''>
  291. <cfset starttimensd = "">
  292. <cfset startnsdbefore = "">
  293. <cfset endtimensd = "">
  294. <cfset first8endforNSD = "">
  295.  
  296.  
  297. <!---start: Hitung First 8 ( berdasarkan setting ) --->
  298. <cfset startOv = startovertime>
  299. <cfset EndOv = endovertime>
  300. <cfif startOV lt qGetAttshift.shiftstarttime and EndOV gt qGetAttShift.shiftstarttime>
  301. <cfset EndOv = qGetAttShift.shiftstarttime>
  302. <cfelseif EndOv gt qGetAttShift.shiftendtime and startOv lt qGetAttShift.shiftendtime>
  303. <cfset startOv = qGetAttShift.shiftendtime>
  304. </cfif>
  305. <cfset TimeStart = startOv>
  306. <cfset TimeEnd = EndOv>
  307. <cfset getbreak = 0 >
  308. <cfset local.bedahari = 0 >
  309. <cfset local.bedahari_otno = 0 > <!--- perpotongan pada attendtype yg berbeda harus mengikuti first8/exceed8 --->
  310. <cfset First8val = val(ListFirst(valuelist(qGetOvertimeEight.step)))*60>
  311. <cfset First8valNextType = 0>
  312. <!--- <cfoutput><script>alert('#AUTO#');</script></cfoutput>--->
  313. <cfset startov2=0> <cfset endov2= 0>
  314. <cfif endovertime gt endov> <!--- YHNOW --->
  315. <cfset StartOv2 = qGetAttShift.shiftendtime>
  316. <cfset EndOv2= endovertime>
  317. <cfset TimeStart2 = startov2>
  318. <cfset TimeEnd2 = EndOv2>
  319. </cfif>
  320.  
  321. <cfif AUTO eq 0 or NONAUTO gt 0>
  322. <cfloop query="qGetOvertimeEight">
  323. <cfif dateDiff("n", startOv, EndOv) gt 0>
  324. <cfset overtimestep = (val(qGetOvertimeEight.step)*60)>
  325. <cfif dateDiff("n", TimeStart, TimeEnd) gt overtimestep>
  326. <cfset TimeStart = startOv >
  327. <cfset TimeEndTemp = DateAdd("n",overtimestep,TimeStart)>
  328. <cfif TimeStart lt TimeEndTemp AND TimeEndTemp lte TimeEnd> <!--- BUG50416-62963 --->
  329. <cfset TimeEnd = DateAdd("n",overtimestep,TimeStart)>
  330. </cfif>
  331. <cfset startOv = TimeEnd >
  332. <cfset getbreak = 0 >
  333. <cfelse>
  334. <cfset TimeStart = startOv>
  335. <cfset TimeEnd = EndOv >
  336. <cfset getbreak = 1>
  337. </cfif>
  338. <cfif TimeStart lt TimeEnd>
  339. <!--- <cfset first8endforNSD = TimeEnd> --->
  340. <cfset timebetween = CreateDate(year(TimeEnd),month(TimeEnd),day(TimeEnd))>
  341. <cfquery datasource="#REQUEST.SDSN#" name="qcekovtph" maxrows="1">
  342. SELECT *
  343. FROM TTADATTOVTDETAILVN
  344. WHERE emp_id = <cfqueryparam value="#arguments.emp_id#" cfsqltype="cf_sql_varchar">
  345. AND company_id = <cfqueryparam value="#arguments.company_id#" cfsqltype="cf_sql_integer">
  346. AND (startovt = <cfqueryparam value="#TimeStart#" cfsqltype="cf_sql_timestamp">
  347. AND endtovt = <cfqueryparam value="#TimeEnd#" cfsqltype="cf_sql_timestamp">)
  348. </cfquery>
  349.  
  350. <cfif qcekovtph.recordcount eq 0>
  351. <cfset strckDetailPhi["startovt"]= TimeStart>
  352. <cfset strckDetailPhi["endtovt"]= TimeEnd>
  353. <cfset strckDetailPhi["ovtimetype"]="OVT">
  354. <cfset strckDetailPhi["nsd_no"]= 0>
  355. <cfset strckDetailPhi["ot_no"]= val(qGetOvertimeEight.factor_no)>
  356. <cfset strckDetailPhi["nsd_factor"]= 0>
  357. <cfset strckDetailPhi["ot_factor"]= qGetOvertimeEight.value>
  358. <cfdump var="kesini oyabin1"><cfset Local.Retvar = objOvtPhi.Insert(strckDetailPhi)>
  359. </cfif>
  360. </cfif>
  361. </cfif>
  362.  
  363. <!--- </cfloop> --->
  364. </cfloop>
  365.  
  366. <cfif startov2 neq 0>
  367. <cfloop query="qGetOvertimeEight"> <!--- YHNOW --->
  368. <cfif dateDiff("n", startOv2, EndOv2) gt 0>
  369. <cfif dateDiff("n", TimeStart2, TimeEnd2) gt (val(qGetOvertimeEight.step)*60)>
  370. <cfset TimeStart2 = startOv2 >
  371. <cfset TimeEnd2 = DateAdd("n",(val(qGetOvertimeEight.step)*60),TimeStart2)>
  372. <cfset startOv2 = TimeEnd2 >
  373. <cfset getbreak = 0 >
  374. <cfelse>
  375. <cfset TimeStart2 = startOv2>
  376. <cfset TimeEnd2 = EndOv2 >
  377. <cfset getbreak = 1>
  378. </cfif>
  379. <cfset strckDetailPhi["startovt"]= TimeStart2>
  380. <cfset strckDetailPhi["endtovt"]= TimeEnd2>
  381. <cfset strckDetailPhi["ovtimetype"]="OVT">
  382. <cfset strckDetailPhi["nsd_no"]= 0>
  383. <cfset strckDetailPhi["ot_no"]= val(qGetOvertimeEight.factor_no)>
  384. <cfset strckDetailPhi["nsd_factor"]= 0>
  385. <cfset strckDetailPhi["ot_factor"]= qGetOvertimeEight.value>
  386. <cfdump var="kesini bos3"><cfset Local.Retvar = objOvtPhi.Insert(strckDetailPhi)>
  387. <cfif getbreak >
  388. <cfbreak>
  389. </cfif>
  390. </cfif>
  391. </cfloop>
  392. </cfif>
  393.  
  394. </cfif>
  395. <!--- end First 8 --->
  396.  
  397. <!--- Start ND --->
  398. <cfset First8startTime = startovertime>
  399. <!--- <cfset First8endTime=first8endforNSD> --->
  400. <cfset otno=0>
  401. <cfset First8endTime = endovertime>
  402. <!---<cfset First8endTime = DateAdd("n",(First8val),startovertime)>--->
  403. <!--- <cfoutput><script>alert('#TimeFormat(First8endTime)# ~ #NONAUTO#') </script> </cfoutput> --->
  404. <cfif qGetOvertimeNsd.recordcount>
  405.  
  406. <cfloop query="qGetOvertimeNsd">
  407. <cfset startND = qGetOvertimeNsd.startNsd>
  408. <cfset endND = qGetOvertimeNsd.endNsd>
  409. <cfset nextDay = Datediff("d", dateformat(startND,"yyyy/mm/dd"),dateformat(endND,"yyyy/mm/dd")) >
  410.  
  411. <cfset startND = CreateDateTime(Year(overtimetime_temp),month(overtimetime_temp),day(overtimetime_temp),hour(startND),minute(startND),0)>
  412. <cfset endND = DateAdd("d",nextDay,CreateDateTime(Year(overtimetime_temp),month(overtimetime_temp),day(overtimetime_temp),hour(endND),minute(endND),0))>
  413.  
  414. <cfset prevStartND = dateadd("d",-1,startND)>
  415. <cfset prevEndND = dateadd("d",-1,EndND)>
  416. <cfif DateDiff("n",endovertime,prevEndND) gt 0>
  417. <cfset prevEndND = endovertime >
  418. </cfif>
  419.  
  420. <cfif DateDiff("n",startND,startovertime) gt 0>
  421. <cfset startND = startovertime >
  422. </cfif>
  423. <!--- <cfoutput><script>alert('#DateTimeformat(endND)# #DateTimeformat(endovertime)#');</script></cfoutput>--->
  424. <cfif DateDiff("n",endovertime,endND) gt 0>
  425. <cfset endND = endovertime >
  426. </cfif>
  427.  
  428. <!--- <cfif TimeFormat(overtimetime_temp) lt TimeFormat(qGetOvertimeNsd.startNsd) AND Datediff("d", dateformat(shiftdailystart,"yyyy/mm/dd"),dateformat(overtimetime_temp,"yyyy/mm/dd")) gt 0>
  429. <cfset startND = DateAdd("d",-1,startND)><cfoutput><script>alert('1--#TimeFormat(overtimetime_temp)# ~ #TimeFormat(qGetOvertimeNsd.startNsd)# ~ #TimeFormat(shiftdailystart)#~#TimeFormat(endovertime)# ~ #TimeFormat(startND)#~#TimeFormat(endND)#') </script> </cfoutput>
  430.  
  431. </cfif>--->
  432.  
  433. <cfdump var="#startND#">
  434. <cfdump var="#endND#">
  435.  
  436. <cfif overtimetime_temp lt startND AND Datediff("d", dateformat(shiftdailystart,"yyyy/mm/dd"),dateformat(overtimetime_temp,"yyyy/mm/dd")) gt 0 and AUTO gt 0 AND NONAUTO eq 0>
  437. <cfset startND = DateAdd("d",-1,startND)>
  438. </cfif>
  439. <cfif startovertime gt prevStartND and startovertime lt prevEndND><!---nsd jika shift pagi hari beririsan dengan setting nsd--->
  440. <cfset strckDetailPhi["startovt"]= startovertime>
  441. <cfset strckDetailPhi["endtovt"]= prevEndND>
  442. <cfset strckDetailPhi["nsd_factor"]= qGetOvertimeNsd.factor>
  443. <cfset strckDetailPhi["ovtimetype"]="NS">
  444. <cfset strckDetailPhi["ot_no"]= 0>
  445. <cfset strckDetailPhi["nsd_no"]= qGetOvertimeNsd.nsd_no>
  446. <cfset strckDetailPhi["ot_factor"]=0>
  447. <cfquery name="qCheckOvtDetPhi" datasource="#REQUEST.SDSN#">
  448. SELECT * FROM TTADATTOVTDETAILVN
  449. where startovt = #CREATEODBCDATETIME(strckDetailPhi["startovt"])# AND endtovt=#CREATEODBCDATETIME(strckDetailPhi["endtovt"])#
  450. and attend_id = <cfqueryparam value="#arguments.ATTEND_ID#" cfsqltype="cf_sql_varchar">
  451. </cfquery>
  452. <cfif qCheckOvtDetPhi.recordcount eq 0>
  453. <cfdump var="kesini bos4"><cfset Local.Retvar = objOvtPhi.Insert(strckDetailPhi)>
  454. <cfelse>
  455. <cfdump var="kesini bos44">
  456. <cfdump var="#qCheckOvtDetPhi#">
  457. </cfif>
  458. </cfif>
  459.  
  460.  
  461. <!--- <cfoutput><script>alert('#TimeFormat(overtimetime_temp)# ~ #TimeFormat(First8endTime)# ~ #TimeFormat(startovertime)#~#TimeFormat(endovertime)# ~ #TimeFormat(startND)#~#TimeFormat(endND)#') </script> </cfoutput>--->
  462. <!--- <!---tasya: for NSD REG --->--->
  463.  
  464. <cfif DateDiff("n",startND,endovertime) gt 0 >
  465. <cfif AUTO gt 0 AND NONAUTO eq 0> <!---tasya: for NSD REG only (NONAUTO eq 0=tidak ada ovt) ~~ NSD Reg belum dipotong jika attend type berbeda (belum yakin casenya seperti apa)--->
  466.  
  467. <cfset strckDetailPhi["startovt"]= startND>
  468. <cfset strckDetailPhi["endtovt"]= endND>
  469. <cfset strckDetailPhi["nsd_type"]= 'REG'>
  470. <cfset strckDetailPhi["ot_no"]= 0>
  471. <cfset strckDetailPhi["nsd_no"]= qGetOvertimeNsd.nsd_no>
  472. <cfset strckDetailPhi["nsd_factor"]= qGetOvertimeNsd.factor>
  473. <cfset strckDetailPhi["ovtimetype"]="NS">
  474. <cfset strckDetailPhi["ot_factor"]=0>
  475. <cfquery name="qCheckOvtDetPhi" datasource="#REQUEST.SDSN#">
  476. SELECT * FROM TTADATTOVTDETAILVN
  477. where startovt = #CREATEODBCDATETIME(startND)# AND endtovt=#CREATEODBCDATETIME(endND)#
  478. AND nsd_no = #qGetOvertimeNsd.currentRow# and ot_no = 0
  479. and attend_id = <cfqueryparam value="#arguments.ATTEND_ID#" cfsqltype="cf_sql_varchar">
  480. </cfquery>
  481. <cfif qCheckOvtDetPhi.recordcount eq 0>
  482. <cfdump var="kesini bos5"><cfset Local.Retvar = objOvtPhi.Insert(strckDetailPhi)>
  483. <cfelse>
  484. <cfdump var="kesini bos55">
  485. <cfdump var="#qCheckOvtDetPhi#">
  486. </cfif>
  487.  
  488. </cfif>
  489. </cfif>
  490. <!---end of NSD REG--->
  491.  
  492.  
  493. <cfif DateDiff("n",startND,endovertime) gt 0 or AUTO gt 0>
  494. <cfif NONAUTO neq 0>
  495. <cfset strckDetailPhi["startovt"]= startND>
  496. <cfset strckDetailPhi["endtovt"]= endND>
  497. <cfset strckDetailPhi["ot_no"]= 0>
  498. <cfset strckDetailPhi["nsd_no"]= qGetOvertimeNsd.nsd_no>
  499. <cfset strckDetailPhi["nsd_factor"]= qGetOvertimeNsd.factor>
  500. <cfset strckDetailPhi["ot_factor"]=qGetOvertimeNsd.factor>
  501. <cfset strckDetailPhi["ovtimetype"]="NS">
  502. <cfquery name="qCheckOvtDetPhi" datasource="#REQUEST.SDSN#">
  503. SELECT * FROM TTADATTOVTDETAILVN
  504. where startovt = #CREATEODBCDATETIME(strckDetailPhi["startovt"])# AND endtovt=#CREATEODBCDATETIME(strckDetailPhi["endtovt"])#
  505. AND nsd_no = #qGetOvertimeNsd.nsd_no#
  506. and attend_id = <cfqueryparam value="#arguments.ATTEND_ID#" cfsqltype="cf_sql_varchar">
  507. </cfquery>
  508. <cfif qCheckOvtDetPhi.recordcount eq 0>
  509. <cfdump var="masuk sini bosss222">
  510. <cfset Local.Retvar = objOvtPhi.Insert(strckDetailPhi)>
  511. </cfif>
  512. </cfif>
  513.  
  514. <cfelseif DateDiff("n",startND,endovertime) gt 0>
  515.  
  516. <cfset startND = DateAdd("d",-1,CreateDateTime(Year(overtimetime_temp),month(overtimetime_temp),day(overtimetime_temp),hour(startND),minute(startND),0))>
  517. <cfset endND = CreateDateTime(Year(overtimetime_temp),month(overtimetime_temp),day(overtimetime_temp),hour(endND),minute(endND),0)>
  518.  
  519.  
  520. <cfif DateDiff("n",startND,startovertime) gt 0>
  521. <cfset startND = startovertime >
  522. </cfif>
  523. <cfif DateDiff("n",endovertime,endND) gt 0>
  524. <cfset endND = endovertime >
  525. </cfif>
  526.  
  527. <cfif DateDiff("n",startND,First8endTime) gt 0 AND DateDiff("n",First8endTime,startND) gt 0>
  528. <cfelse>
  529. <cfif DateDiff("n",startND,endND) gt 0>
  530. <cfset strckDetailPhi["startovt"]= startND>
  531. <cfset strckDetailPhi["endtovt"]= endND>
  532. <cfset strckDetailPhi["ovtimetype"]="NS">
  533. <cfset strckDetailPhi["nsd_no"]= qGetOvertimeNsd.nsd_no>
  534. <cfset strckDetailPhi["ot_no"]= 0>
  535. <cfset strckDetailPhi["nsd_factor"]= qGetOvertimeNsd.factor>
  536. <cfset strckDetailPhi["ot_factor"]=0>
  537. <cfquery name="qCheckOvtDetPhi" datasource="#REQUEST.SDSN#">
  538. SELECT * FROM TTADATTOVTDETAILVN
  539. where startovt = #CREATEODBCDATETIME(startND)# AND endtovt=#CREATEODBCDATETIME(endND)#
  540. and attend_id = <cfqueryparam value="#arguments.ATTEND_ID#" cfsqltype="cf_sql_varchar">
  541. </cfquery>
  542. <cfif qCheckOvtDetPhi.recordcount eq 0>
  543. <cfdump var="kesini bos10"><cfset Local.Retvar = objOvtPhi.Insert(strckDetailPhi)>
  544. <cfelse>
  545. <cfdump var="kesini bos1010">
  546. <cfdump var="#qCheckOvtDetPhi#">
  547. </cfif>
  548. </cfif>
  549. </cfif>
  550. <cfelse>
  551. <!--- <cfdump var="#startND#" label="startND">
  552. <cfdump var="#endovertime#" label="endovertime"> --->
  553. </cfif>
  554. <!--- End ND --->
  555. </cfloop>
  556.  
  557. </cfif>
  558.  
  559. <cfquery datasource="#REQUEST.SDSN#" name="qSelectTempPHRet">
  560. SELECT detailvn_id, startovt, endtovt, <cfif REQUEST.DBDRIVER eq "MYSQL">TIME_TO_SEC(TIMEDIFF(startovt,endtovt))/60<cfelse>datediff(n,startovt, endtovt)</cfif> diff, ot_factor,nsd_no,nsd_factor
  561. FROM TTADATTOVTDETAILVN
  562. WHERE emp_id = <cfqueryparam value="#arguments.emp_id#" cfsqltype="cf_sql_varchar">
  563. AND attend_id = <cfqueryparam value="#arguments.attend_id#" cfsqltype="cf_sql_varchar">
  564. ORDER BY startovt ASC
  565. </cfquery>
  566.  
  567. <Cfdump var="#qSelectTempPHRet#">
  568.  
  569. <cfreturn qSelectTempPHRet>
  570. </cffunction>
  571.  
  572. <!--- FUNCTION GENERATE INDEX PHILLIPINES--->
  573. <cffunction name="IndexOvertimePh">
  574. <cfargument name="OTTime" default="0">
  575. <cfargument name="OTType" default="">
  576. <cfargument name="ot_no" default="">
  577. <cfargument name="nsd_no" default="">
  578. <!--- <cfdump var="#arguments#"> --->
  579. <!---<cfoutput><script>alert("#OTType#");</script></cfoutput>--->
  580.  
  581. <cfquery datasource="#REQUEST.SDSN#" name="qGetOvtLimit">
  582. SELECT otrounding, otroundlimit FROM TTAMOVERTIME
  583. WHERE overtime_code = <cfqueryparam value="#OTType#" cfsqltype="cf_sql_varchar">
  584. </cfquery>
  585.  
  586. <cfquery datasource="#REQUEST.SDSN#" name="qGetOvtFactor">
  587. SELECT step,value,factor_no FROM TTADOVERTIMEFACTOR
  588. WHERE overtime_code = <cfqueryparam value="#OTType#" cfsqltype="cf_sql_varchar">
  589. <!--- AND step = <cfqueryparam value="#ot_no#" cfsqltype="cf_sql_integer"> --->
  590. ORDER BY FACTOR_NO
  591. </cfquery>
  592.  
  593. <cfquery datasource="#REQUEST.SDSN#" name="qGetOvtNSD">
  594. SELECT nsd_no, factor, factor2 FROM TTADOVERTIMENSD
  595. WHERE overtime_code = <cfqueryparam value="#OTType#" cfsqltype="cf_sql_varchar">
  596. AND nsd_no = <cfqueryparam value="#arguments.nsd_no#" cfsqltype="cf_sql_integer">
  597. </cfquery>
  598. <!--- <cfoutput><script>alert("#OTType#");</script></cfoutput> --->
  599. <cfif val(qGetOvtLimit.otrounding) gt 0>
  600. <cfset local.sisaOT = (ARGUMENTS.OTTIME mod 60)>
  601. <cfset ARGUMENTS.OTTIME = (INT(ARGUMENTS.OTTIME/60) * 60) + (INT(sisaOT/val(qGetOvtLimit.otrounding)) * val(qGetOvtLimit.otrounding)) + IIF((sisaOT mod val(qGetOvtLimit.otrounding)) gte qGetOvtLimit.otroundlimit, val(qGetOvtLimit.otrounding), 0)>
  602. </cfif>
  603.  
  604. <cfset totalhour = ARGUMENTS.OTTIME/60>
  605. <cfset OTINDEX = 0>
  606. <cfset OTNSD = 0>
  607.  
  608. <cfset local.lstidx = "">
  609. <cfif ot_no eq 1>
  610. <cfset colName = "First8">
  611. <cfelse>
  612. <cfset colName = "Excess8">
  613. </cfif>
  614. <!--- <cfif nsd_no eq 0> --->
  615. <cfloop query="qGetOvtFactor">
  616. <cfif qGetOvtFactor.currentrow eq ot_no>
  617.  
  618. <cfset colName = "First8">
  619. <cfif qGetOvtNSD.recordcount>
  620. <cfset OTNSD = totalhour * val(qGetOvtNSD.factor)>
  621. <!--- <cfset lstidx = ListAppend(lstidx,"#val(qGetOvtNSD.factor)#;#totalhour#;NSD#replace(val(qGetOvtNSD.nsd_no),'.','_','ALL')#","|")> --->
  622. <cfset ovtfactor.valFactorNSD = val(qGetOvtNSD.factor)>
  623. </cfif>
  624.  
  625. <cfset lstidx = ListAppend(lstidx,"#val(qGetOvtFactor.Value)#;#totalhour#;#colName#","|")>
  626. <cfset OTINDEX = OTINDEX + totalhour * val(Evaluate("qGetOvtFactor.Value"))>
  627. <cfbreak>
  628. </cfif>
  629. </cfloop>
  630. <!--- </cfif> --->
  631.  
  632. <cfif qGetOvtNSD.recordcount>
  633. <!--- <cfset lstidx = ListAppend(lstidx,"#val(qGetOvtFactor.Value)#;0;#colName#","|")> --->
  634. <cfset OTINDEX = 0>
  635. <cfif ot_no eq 2>
  636. <!--- <cfif nsd_no eq 1>
  637. <cfset OTNSD = totalhour * val(qGetOvtNSD.factor)>
  638. <cfelse> --->
  639. <cfset OTNSD = totalhour * val(qGetOvtNSD.factor2)>
  640. <!--- </cfif> --->
  641.  
  642. <cfset lstidx = ListAppend(lstidx,"#val(qGetOvtNSD.factor2)#;#totalhour#;NSD#arguments.nsd_no#","|")>
  643. <cfelse>
  644. <cfset OTNSD = totalhour * val(qGetOvtNSD.factor)>
  645. <cfset lstidx = ListAppend(lstidx,"#val(qGetOvtNSD.factor)#;#totalhour#;NSD#arguments.nsd_no#","|")>
  646. </cfif>
  647. </cfif>
  648.  
  649. <cfset ovtfactor.totalhour = val(totalhour)>
  650. <cfset ovtfactor.index = OTINDEX>
  651. <cfset ovtfactor.otnsd = OTNSD>
  652.  
  653. <!--- <cfset lstidx=replace(lstidx,".","_","ALL")> --->
  654. <cfset ovtfactor.lstidx = lstidx>
  655. <cfreturn ovtfactor>
  656. </cffunction>
  657.  
  658. <!--- FUNGSI GENERATE INDEX OTHER --->
  659. <cffunction name="IndexOther">
  660. <cfargument name="OTTime" default="0">
  661. <cfargument name="OTType" default="">
  662. <cfargument name="Code" default="">
  663.  
  664. <cfquery datasource="#REQUEST.SDSN#" name="qGetOvtLimit">
  665. SELECT otrounding, otroundlimit FROM TTAMOVERTIME
  666. WHERE overtime_code = <cfqueryparam value="#OTType#" cfsqltype="cf_sql_varchar">
  667. </cfquery>
  668.  
  669. <cfquery datasource="#REQUEST.SDSN#" name="qGetOvtOtherFactor">
  670. SELECT * FROM TTADOVERTIMEOTHER
  671. WHERE OVERTIME_CODE = <cfqueryparam value="#OTType#" cfsqltype="cf_sql_varchar">
  672. AND TYPE_CODE = <cfqueryparam value="#Code#" cfsqltype="cf_sql_varchar">
  673. ORDER BY FACTOR_NO
  674. </cfquery>
  675.  
  676. <cfif val(qGetOvtLimit.otrounding) gt 0>
  677. <cfset sisaOT = (ARGUMENTS.OTTIME mod 60)>
  678. <cfset ARGUMENTS.OTTIME = (INT(ARGUMENTS.OTTIME/60) * 60) + (INT(sisaOT/val(qGetOvtLimit.otrounding)) * val(qGetOvtLimit.otrounding)) + IIF((sisaOT mod val(qGetOvtLimit.otrounding)) gte qGetOvtLimit.otroundlimit, val(qGetOvtLimit.otrounding), 0)>
  679. </cfif>
  680.  
  681. <cfset minutes = ARGUMENTS.OTTIME>
  682. <cfset remain = minutes>
  683. <cfset OTINDEX = 0>
  684. <cfloop query="qGetOvtOtherFactor">
  685. <cfif Remain gte val(qGetOvtOtherFactor.step) and Remain neq 0>
  686. <cfset OTINDEX = OTINDEX + val(qGetOvtOtherFactor.Value)>
  687. <cfset remain = remain - val(qGetOvtOtherFactor.step)>
  688. <cfelse>
  689. <cfbreak>
  690. </cfif>
  691. </cfloop>
  692.  
  693. <cfset otherovtvalue = OTINDEX>
  694. <cfreturn otherovtvalue>
  695. </cffunction>
  696.  
  697. <cffunction name="FuncTotalLstIndex">
  698. <cfargument name="LstIndex" default="">
  699.  
  700. <cfset arrFac = arraynew(1)>
  701. <cfset arrVal = arraynew(1)>
  702. <cfset ctr = 0>
  703. <cfloop index="lst" list="#arguments.LstIndex#" delimiters="|">
  704. <cfset ctr = ctr + 1>
  705. <cfset arrFac[ctr] = ListFirst(lst,";")>
  706. <cfset arrVal[ctr] = ListGetAt(lst,2,";")>
  707. <cfset arrCode[ctr] = ListLast(lst,";")>
  708. </cfloop>
  709.  
  710. <cfset fctr = "">
  711. <cfset TotalLstIndex="">
  712.  
  713. <cfloop from=1 to=#ctr# index="idx">
  714. <cfif isdefined("code_#arrCode[idx]#")>
  715. <cfset "code_#arrCode[idx]#" = evaluate("code_#arrCode[idx]#") + #arrVal[idx]#>
  716. <cfelse>
  717. <cfset "code_#arrCode[idx]#" = #arrVal[idx]#>
  718. </cfif>
  719.  
  720. <cfset "fac_#arrCode[idx]#" = #arrFac[idx]#>
  721. <cfif not listFindNoCase(fctr,#arrCode[idx]#)>
  722. <cfset fctr = ListAppend(fctr,"#arrCode[idx]#","|")>
  723. </cfif>
  724. </cfloop>
  725.  
  726. <cfloop list="#fctr#" index="idx" delimiters="|">
  727. <cfset temp="#evaluate("fac_#idx#")#;#evaluate("code_#idx#")#;#idx#">
  728. <cfif not listfindnocase(TotalLstIndex,"#temp#","|")>
  729. <cfset TotalLstIndex = listappend(TotalLstIndex,"#temp#","|")>
  730. </cfif>
  731. </cfloop>
  732.  
  733. <!--- <cfoutput><script>alert('#LstIndex# ~ #TotalLstIndex#');</script></cfoutput> --->
  734. <!--- <cfset TotalLstIndex=replace(TotalLstIndex,".","_","ALL")> --->
  735. <cfreturn TotalLstIndex>
  736. </cffunction>
  737.  
  738. <cffunction name="cekShiftNsd">
  739. <cfargument name="shiftstart1" default="now()">
  740. <cfargument name="shiftend1" default="now()">
  741. <cfargument name="ovtcode" default="NSD">
  742. <cfquery datasource="#REQUEST.SDSN#" name="qSelectNSD" maxrows="1">
  743. SELECT min(startnsd) startnsd,max(endnsd) endnsd FROM TTADOVERTIMENSD WHERE overtime_code = '#arguments.ovtcode#' ORDER BY startnsd
  744. </cfquery>
  745.  
  746. <cfif isdate(arguments.shiftstart1) and isdate(arguments.shiftend1) and isdate(qSelectNSD.startnsd)>
  747. <!--- <cf_sfwritelog dump="shiftstart1,shiftend1" prefix="Rangga__"> --->
  748. <cfset shiftstarttemp = CreateDateTime(Year(qSelectNSD.startnsd),Month(qSelectNSD.startnsd),Day(qSelectNSD.startnsd),hour(arguments.shiftstart1),minute(arguments.shiftstart1),'00')>
  749. <cfset shiftstart = shiftstarttemp>
  750.  
  751. <cfset LOCAL.shiftstart1date = CREATEDATE(year(arguments.shiftstart1), month(arguments.shiftstart1), day(arguments.shiftstart1))>
  752. <cfset LOCAL.shiftend1date = CREATEDATE(year(arguments.shiftend1), month(arguments.shiftend1), day(arguments.shiftend1))>
  753. <cfif DateDiff('d',shiftstart1date,shiftend1date) eq 0>
  754. <cfset LOCAL.shiftend = CreateDateTime(Year(qSelectNSD.startnsd),Month(qSelectNSD.startnsd),Day(qSelectNSD.startnsd),hour(arguments.shiftend1),minute(arguments.shiftend1),'00')>
  755. <cfelse>
  756. <cfset LOCAL.shiftend = CreateDateTime(Year(qSelectNSD.startnsd),Month(qSelectNSD.startnsd),Day(qSelectNSD.startnsd),hour(arguments.shiftend1),minute(arguments.shiftend1),'00')>
  757. <cfset shiftend = dateAdd("d",1,shiftend)>
  758. </cfif>
  759. <cfquery datasource="#REQUEST.SDSN#" name="qCheckNSD">
  760. SELECT * FROM TTADOVERTIMENSD
  761. WHERE ((startnsd <= #shiftstart# OR endnsd >= #shiftstart#)
  762. AND (startnsd <= #shiftend# OR endnsd >= #shiftend#)
  763. )
  764. AND overtime_code = '#arguments.ovtcode#'
  765. AND (#shiftstart# < #dateadd("d",-1,CREATEODBCDATETIME(qSelectNSD.endNSD))# or #shiftend# > #CREATEODBCDATETIME(qSelectNSD.startNSD)#)
  766. </cfquery>
  767. <cfelse>
  768. <cfset qCheckNSD = QueryNew("Name", "VarChar")>
  769. </cfif>
  770.  
  771. <!--- <cf_sfwritelog dump="qCheckNSD" prefix="Rangga_dphi_"> --->
  772. <cfreturn qCheckNSD>
  773.  
  774. </cffunction>
  775. </cfcomponent>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement