Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Database & SysAdmin
  3. Database
  4. Calculation For Time Attendance System

Calculation For Time Attendance System

Scheduled Pinned Locked Moved Database
databasehelptoolsregexjson
4 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    caulsonchua
    wrote on last edited by
    #1

    i had plot data from Entry Pass Scan in / out system into Database and write calculation in SQL script to generate Report in Aspx web page. i had different type of shift pattern following by EP_SHIFT_NAME EP_SHIFT_DESC EP_SHIFT_TIMEFR EP_SHIFT_TIMETO R1 Off Day 09:00 23:59 W1 W1 08:00 17:00 R2 Rest Day 09:00 23:59 D1 Day Shift 07:00 16:00 NS Normal Shift 08:00 17:30 E1 Day Shift 08:00 17:00 E2 Night Shift 20:00 05:00 N1 Night Shift 19:00 04:00 Currently i had facing a problem which is a)Total actual working minute(as Work MIn) is 720min per day[12 hours per day] (if more than 720 minutes working hours is consider under category Extra OT hour). b) Cut off the scan in and out time from 0700 ~ 1900 (DAY) and 1900 ~ 0700(NIGHT) calculation. However, if the person late in or early out the calculation of the time is base from the last and the first scan. Anyone can help me or amend the calculation in SQL Script ? For the Work Hour calculation, i have a idea which is catch the (last scan time - EP_SHIFT_TIMEFROM) for every shift type Kindly advise , thank you

    SELECT CONVERT(VARCHAR(8),STUFF(STUFF(FIRSTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':'),112) AS SCANDATE
    ,FIRSTSCAN.EP_EMP_COMPANY
    ,FIRSTSCAN.EP_EMP_DEPT
    ,FIRSTSCAN.EP_EMP_ID
    ,FIRSTSCAN.EP_EMP_NAME
    ,FIRSTSCAN.EP_EMP_SECTION
    ,FIRSTSCAN.EP_EMP_SHIFT
    ,FIRSTSCAN.EP_SHIFT
    ,right(FIRSTSCAN.EP_SCAN_DATE,6) AS FIRSTSCAN
    ,right(LASTSCAN.EP_SCAN_DATE,6) AS LASTSCAN
    ,SCANTIMECAL.INFAB AS INFAB_MIN
    ,SCANTIMECAL.OUTFAB AS OUTFAB_MIN
    ,DATEDIFF(MI,CAST(STUFF(STUFF(FIRSTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)
    ,CAST(STUFF(STUFF(LASTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)) AS WORK_MIN
    ,DATEDIFF(HOUR,CAST(STUFF(STUFF(FIRSTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)
    ,CAST(STUFF(STUFF(LASTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)) AS WORK_HOUR

            ,CASE WHEN FIRSTSCAN.EP\_SHIFT <> 'R1' AND FIRSTSCAN.EP\_SHIFT <> 'R2' 
              THEN ROUND(CAST((DATEDIFF(MINUTE,CAST(STUFF(STUFF((CASE WHEN SHIFTCAL.EP\_SHIFT = 'N1' 
              THEN CONVERT(VARCHAR(8),DATEADD(DAY,+1,LEFT(FIRSTSCAN.EP\_SCAN\_DATE ,8)),112) + ' ' + 
              REPLACE(CONVERT(VARCHAR(8),DATEADD(HOUR,+0,SHIFTDESC.EP\_SHIFT\_TIMETO + ':00'),108),':','') 
               ELSE LEFT(FIRSTSCAN.EP\_SCAN\_DATE ,8) + ' ' + 
               REPLACE(CONVERT(VA
    
    M A 2 Replies Last reply
    0
    • C caulsonchua

      i had plot data from Entry Pass Scan in / out system into Database and write calculation in SQL script to generate Report in Aspx web page. i had different type of shift pattern following by EP_SHIFT_NAME EP_SHIFT_DESC EP_SHIFT_TIMEFR EP_SHIFT_TIMETO R1 Off Day 09:00 23:59 W1 W1 08:00 17:00 R2 Rest Day 09:00 23:59 D1 Day Shift 07:00 16:00 NS Normal Shift 08:00 17:30 E1 Day Shift 08:00 17:00 E2 Night Shift 20:00 05:00 N1 Night Shift 19:00 04:00 Currently i had facing a problem which is a)Total actual working minute(as Work MIn) is 720min per day[12 hours per day] (if more than 720 minutes working hours is consider under category Extra OT hour). b) Cut off the scan in and out time from 0700 ~ 1900 (DAY) and 1900 ~ 0700(NIGHT) calculation. However, if the person late in or early out the calculation of the time is base from the last and the first scan. Anyone can help me or amend the calculation in SQL Script ? For the Work Hour calculation, i have a idea which is catch the (last scan time - EP_SHIFT_TIMEFROM) for every shift type Kindly advise , thank you

      SELECT CONVERT(VARCHAR(8),STUFF(STUFF(FIRSTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':'),112) AS SCANDATE
      ,FIRSTSCAN.EP_EMP_COMPANY
      ,FIRSTSCAN.EP_EMP_DEPT
      ,FIRSTSCAN.EP_EMP_ID
      ,FIRSTSCAN.EP_EMP_NAME
      ,FIRSTSCAN.EP_EMP_SECTION
      ,FIRSTSCAN.EP_EMP_SHIFT
      ,FIRSTSCAN.EP_SHIFT
      ,right(FIRSTSCAN.EP_SCAN_DATE,6) AS FIRSTSCAN
      ,right(LASTSCAN.EP_SCAN_DATE,6) AS LASTSCAN
      ,SCANTIMECAL.INFAB AS INFAB_MIN
      ,SCANTIMECAL.OUTFAB AS OUTFAB_MIN
      ,DATEDIFF(MI,CAST(STUFF(STUFF(FIRSTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)
      ,CAST(STUFF(STUFF(LASTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)) AS WORK_MIN
      ,DATEDIFF(HOUR,CAST(STUFF(STUFF(FIRSTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)
      ,CAST(STUFF(STUFF(LASTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)) AS WORK_HOUR

              ,CASE WHEN FIRSTSCAN.EP\_SHIFT <> 'R1' AND FIRSTSCAN.EP\_SHIFT <> 'R2' 
                THEN ROUND(CAST((DATEDIFF(MINUTE,CAST(STUFF(STUFF((CASE WHEN SHIFTCAL.EP\_SHIFT = 'N1' 
                THEN CONVERT(VARCHAR(8),DATEADD(DAY,+1,LEFT(FIRSTSCAN.EP\_SCAN\_DATE ,8)),112) + ' ' + 
                REPLACE(CONVERT(VARCHAR(8),DATEADD(HOUR,+0,SHIFTDESC.EP\_SHIFT\_TIMETO + ':00'),108),':','') 
                 ELSE LEFT(FIRSTSCAN.EP\_SCAN\_DATE ,8) + ' ' + 
                 REPLACE(CONVERT(VA
      
      M Offline
      M Offline
      Mycroft Holmes
      wrote on last edited by
      #2

      You are seriously hoping someone will go through that heap of... good luck with that. Try breaking it down to smaller bits that you can work over in isolation and then put the bits together to solve the issue or at least isolate the problem. Loading in a dump like that is not going to get you a positive response.

      Never underestimate the power of human stupidity RAH

      1 Reply Last reply
      0
      • C caulsonchua

        i had plot data from Entry Pass Scan in / out system into Database and write calculation in SQL script to generate Report in Aspx web page. i had different type of shift pattern following by EP_SHIFT_NAME EP_SHIFT_DESC EP_SHIFT_TIMEFR EP_SHIFT_TIMETO R1 Off Day 09:00 23:59 W1 W1 08:00 17:00 R2 Rest Day 09:00 23:59 D1 Day Shift 07:00 16:00 NS Normal Shift 08:00 17:30 E1 Day Shift 08:00 17:00 E2 Night Shift 20:00 05:00 N1 Night Shift 19:00 04:00 Currently i had facing a problem which is a)Total actual working minute(as Work MIn) is 720min per day[12 hours per day] (if more than 720 minutes working hours is consider under category Extra OT hour). b) Cut off the scan in and out time from 0700 ~ 1900 (DAY) and 1900 ~ 0700(NIGHT) calculation. However, if the person late in or early out the calculation of the time is base from the last and the first scan. Anyone can help me or amend the calculation in SQL Script ? For the Work Hour calculation, i have a idea which is catch the (last scan time - EP_SHIFT_TIMEFROM) for every shift type Kindly advise , thank you

        SELECT CONVERT(VARCHAR(8),STUFF(STUFF(FIRSTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':'),112) AS SCANDATE
        ,FIRSTSCAN.EP_EMP_COMPANY
        ,FIRSTSCAN.EP_EMP_DEPT
        ,FIRSTSCAN.EP_EMP_ID
        ,FIRSTSCAN.EP_EMP_NAME
        ,FIRSTSCAN.EP_EMP_SECTION
        ,FIRSTSCAN.EP_EMP_SHIFT
        ,FIRSTSCAN.EP_SHIFT
        ,right(FIRSTSCAN.EP_SCAN_DATE,6) AS FIRSTSCAN
        ,right(LASTSCAN.EP_SCAN_DATE,6) AS LASTSCAN
        ,SCANTIMECAL.INFAB AS INFAB_MIN
        ,SCANTIMECAL.OUTFAB AS OUTFAB_MIN
        ,DATEDIFF(MI,CAST(STUFF(STUFF(FIRSTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)
        ,CAST(STUFF(STUFF(LASTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)) AS WORK_MIN
        ,DATEDIFF(HOUR,CAST(STUFF(STUFF(FIRSTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)
        ,CAST(STUFF(STUFF(LASTSCAN.EP_SCAN_DATE,12,0,':'),15,0,':') AS DATETIME)) AS WORK_HOUR

                ,CASE WHEN FIRSTSCAN.EP\_SHIFT <> 'R1' AND FIRSTSCAN.EP\_SHIFT <> 'R2' 
                  THEN ROUND(CAST((DATEDIFF(MINUTE,CAST(STUFF(STUFF((CASE WHEN SHIFTCAL.EP\_SHIFT = 'N1' 
                  THEN CONVERT(VARCHAR(8),DATEADD(DAY,+1,LEFT(FIRSTSCAN.EP\_SCAN\_DATE ,8)),112) + ' ' + 
                  REPLACE(CONVERT(VARCHAR(8),DATEADD(HOUR,+0,SHIFTDESC.EP\_SHIFT\_TIMETO + ':00'),108),':','') 
                   ELSE LEFT(FIRSTSCAN.EP\_SCAN\_DATE ,8) + ' ' + 
                   REPLACE(CONVERT(VA
        
        A Offline
        A Offline
        Amol_B
        wrote on last edited by
        #3

        What you have tried so far?

        C 1 Reply Last reply
        0
        • A Amol_B

          What you have tried so far?

          C Offline
          C Offline
          caulsonchua
          wrote on last edited by
          #4

          I had try out is IN FAB time is out time - In time and Out FAB time is In time - Out time. the problem is now dont know how to apply the logic in my SQL script. kindly advise, thank you

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • World
          • Users
          • Groups