⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 export_sxb.php

📁 通达OA2007SE源代码 非常好的
💻 PHP
字号:
<?
  include_once 'inc/auth.php';
  include_once 'inc/utility_all.php';
  $EXCEL_OUT = '部门,姓名,全勤(天),迟到,上班未登记,早退,下班未登记,加班上班登记,加班下班登记
';
  $query = 'SELECT * from SYS_PARA where PARA_NAME=\'NO_DUTY_USER\'';
  $cursor = exequery ($connection, $query);
  if ($ROW = mysql_fetch_array ($cursor))
  {
    $NO_DUTY_USER = $ROW['PARA_VALUE'];
  }
  $query1 = 'SELECT * from ATTEND_CONFIG';
  $cursor1 = exequery ($connection, $query1);
  while ($ROW = mysql_fetch_array ($cursor1))
  {
    $DUTY_TYPE1 = $ROW['DUTY_TYPE'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_NAME'] = $ROW['DUTY_NAME'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['GENERAL'] = $ROW['GENERAL'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME1'] = $ROW['DUTY_TIME1'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME2'] = $ROW['DUTY_TIME2'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME3'] = $ROW['DUTY_TIME3'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME4'] = $ROW['DUTY_TIME4'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME5'] = $ROW['DUTY_TIME5'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME6'] = $ROW['DUTY_TIME6'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE1'] = $ROW['DUTY_TYPE1'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE2'] = $ROW['DUTY_TYPE2'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE3'] = $ROW['DUTY_TYPE3'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE4'] = $ROW['DUTY_TYPE4'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE5'] = $ROW['DUTY_TYPE5'];
    $ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE6'] = $ROW['DUTY_TYPE6'];
    for ($I = 1; ($I <= 6); ++$I)
    {
      $DUTY_TIME_I = $ROW[('DUTY_TIME'.$I)];
      $DUTY_TYPE_I = $ROW[('DUTY_TYPE'.$I)];
      if (($DUTY_TIME_I == ''))
      {
        continue;
      }
      else
      {
        if (($DUTY_TYPE_I == 1))
        {
          ++$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_ON_TIMES'];
          continue;
        }
        else
        {
          ++$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_OFF_TIMES'];
          continue;
        }
        continue;
      }
    }
  }
  $query = (((''.'SELECT * from USER,USER_PRIV,DEPARTMENT where USER.NOT_LOGIN=\'0\' and not find_in_set(USER.USER_ID,\'').$NO_DUTY_USER).'\') and DEPARTMENT.DEPT_ID=USER.DEPT_ID ');
  if (($DEPARTMENT != 'ALL_DEPT'))
  {
    ($query .= (((''.' and DEPARTMENT.DEPT_ID=\'').$DEPARTMENT).'\' '));
  }
  if (($DUTY_TYPE != 'ALL_TYPE'))
  {
    ($query .= (((''.' and DUTY_TYPE=\'').$DUTY_TYPE).'\' '));
  }
  ($query .= ' and  USER.USER_PRIV=USER_PRIV.USER_PRIV order by DEPT_NO,PRIV_NO,USER_NO,USER_NAME');
  $cursor = exequery ($connection, $query);
  $LINE_COUNT = 0;
  while ($ROW = mysql_fetch_array ($cursor))
  {
    $USER_ID = $ROW['USER_ID'];
    $DEPT_ID = $ROW['DEPT_ID'];
    $USER_NAME = $ROW['USER_NAME'];
    $DUTY_TYPE = $ROW['DUTY_TYPE'];
    $USER_DEPT_NAME = $ROW['DEPT_NAME'];
    if (!is_dept_priv ($DEPT_ID))
    {
      continue;
    }
    else
    {
      $DUTY_NAME = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_NAME'];
      $GENERAL = $ATTEND_CONFIG[$DUTY_TYPE]['GENERAL'];
      $DUTY_ON_TIMES = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_ON_TIMES'];
      $DUTY_OFF_TIMES = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_OFF_TIMES'];
      $DUTY_TIME1 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME1'];
      $DUTY_TIME2 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME2'];
      $DUTY_TIME3 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME3'];
      $DUTY_TIME4 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME4'];
      $DUTY_TIME5 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME5'];
      $DUTY_TIME6 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME6'];
      $DUTY_TYPE1 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE1'];
      $DUTY_TYPE2 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE2'];
      $DUTY_TYPE3 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE3'];
      $DUTY_TYPE4 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE4'];
      $DUTY_TYPE5 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE5'];
      $DUTY_TYPE6 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE6'];
      ++$LINE_COUNT;
      $PERFECT_COUNT = '';
      $EARLY_COUNT = '';
      $LATE_COUNT = '';
      $DUTY_ON_COUNT = '';
      $DUTY_OFF_COUNT = '';
      $DUTY_ON_TOTAL = '';
      $DUTY_OFF_TOTAL = '';
      $OVER_ON_COUNT = '';
      $OVER_OFF_COUNT = '';
      for ($J = $DATE1; ($J <= $DATE2); $J = date ('Y-m-d', (strtotime ($J) + 86400)))
      {
        $WEEK = date ('w', strtotime ($J));
        $HOLIDAY = 0;
        if (find_id ($GENERAL, $WEEK))
        {
          $HOLIDAY = 1;
        }
        if (($HOLIDAY == 0))
        {
          $query = (((((''.'select count(*) from ATTEND_HOLIDAY where BEGIN_DATE <=\'').$J).'\' and END_DATE>=\'').$J).'\'');
          $cursor1 = exequery ($connection, $query);
          if ($ROW = mysql_fetch_array ($cursor1))
          {
            $HOLIDAY = $ROW[0];
          }
        }
        if (($HOLIDAY == 0))
        {
          $query = (((((((''.'select count(*) from ATTEND_EVECTION where USER_ID=\'').$USER_ID).'\' and ALLOW=\'1\' and to_days(EVECTION_DATE1)<=to_days(\'').$J).'\') and to_days(EVECTION_DATE2)>=to_days(\'').$J).'\')');
          $cursor1 = exequery ($connection, $query);
          if ($ROW = mysql_fetch_array ($cursor1))
          {
            $HOLIDAY = $ROW[0];
          }
        }
        if (($HOLIDAY == 0))
        {
          $query = (((((((((((''.'select count(*) from ATTEND_LEAVE where USER_ID=\'').$USER_ID).'\' and ALLOW=\'1\' and LEAVE_DATE1<=\'').$J).' ').$DUTY_TIME).'\' and LEAVE_DATE2>=\'').$J).' ').$DUTY_TIME).'\'');
          $cursor1 = exequery ($connection, $query);
          if ($ROW = mysql_fetch_array ($cursor1))
          {
            $HOLIDAY = $ROW[0];
          }
        }
        if (($HOLIDAY == 0))
        {
          $query = (((((((((''.'select count(*) from ATTEND_OUT where USER_ID=\'').$USER_ID).'\' and ALLOW=\'1\' and to_days(SUBMIT_TIME)=to_days(\'').$J).'\') and OUT_TIME1<=\'').substr ($DUTY_TIME, 0, strrpos ($DUTY_TIME, ':'))).'\' and OUT_TIME2>=\'').substr ($DUTY_TIME, 0, strrpos ($DUTY_TIME, ':'))).'\'');
          $cursor1 = exequery ($connection, $query);
          if ($ROW = mysql_fetch_array ($cursor1))
          {
            $HOLIDAY = $ROW[0];
          }
        }
        if (($HOLIDAY == 0))
        {
          ($DUTY_ON_TOTAL += $DUTY_ON_TIMES);
          ($DUTY_OFF_TOTAL += $DUTY_OFF_TIMES);
        }
        $PERFECT_FLAG = 0;
        $query1 = (((((''.'SELECT * from ATTEND_DUTY where USER_ID=\'').$USER_ID).'\' and to_days(REGISTER_TIME)=to_days(\'').$J).'\')');
        $cursor1 = exequery ($connection, $query1);
        while (true)
        {
          while ($ROW = mysql_fetch_array ($cursor1))
          {
            $REGISTER_TYPE = $ROW['REGISTER_TYPE'];
            $REGISTER_TIME = $ROW['REGISTER_TIME'];
            $SOME_DATE = strtok ($REGISTER_TIME, ' ');
            $REGISTER_TIME = strtok (' ');
            $STR = ('DUTY_TIME'.$REGISTER_TYPE);
            $DUTY_TIME = $$STR;
            $STR = ('DUTY_TYPE'.$REGISTER_TYPE);
            $DUTY_TYPE = $$STR;
            if (($DUTY_TIME == ''))
            {
              continue;
            }
            else
            {
              if (($DUTY_TYPE == '1'))
              {
                if ((compare_time ($REGISTER_TIME, $DUTY_TIME) < 1))
                {
                  ++$PERFECT_FLAG;
                }
                if ((0 < $HOLIDAY))
                {
                  ++$OVER_ON_COUNT;
                  continue;
                }
                else
                {
                  ++$DUTY_ON_COUNT;
                  if ((compare_time ($REGISTER_TIME, $DUTY_TIME) == 1))
                  {
                    ++$LATE_COUNT;
                    break;
                  }
                  break;
                }
                continue;
              }
              continue;
            }
          }
          break;
        }
        if ((($DUTY_ON_TIMES + $DUTY_OFF_TIMES) <= $PERFECT_FLAG))
        {
          ++$PERFECT_COUNT;
          continue;
        }
      }
      $DUTY_ON_TOTAL1 = ($DUTY_ON_TOTAL - $DUTY_ON_COUNT);
      $DUTY_OFF_TOTAL1 = ($DUTY_OFF_TOTAL - $DUTY_OFF_COUNT);
      ($EXCEL_OUT .= ((((((((((((((((((''.$USER_DEPT_NAME).',').$USER_NAME).',').$PERFECT_COUNT).',').$LATE_COUNT).',').$DUTY_ON_TOTAL1).',').$EARLY_COUNT).',').$DUTY_OFF_TOTAL1).',').$OVER_ON_COUNT).',').$OVER_OFF_COUNT).'
'));
      continue;
    }
  }
  ob_end_clean ();
  header ('Cache-control: private');
  header ('Content-type: application/vnd.ms-excel');
  header ('Accept-Ranges: bytes');
  header (('Accept-Length: '.strlen ($EXCEL_OUT)));
  header (('Content-Length: '.strlen ($EXCEL_OUT)));
  header ('Content-Disposition: attachment; filename= 上下班登记数据.csv');
  echo $EXCEL_OUT;
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -