FUNCTION i901_tc_votea01(p_cmd)  #單據編號
   DEFINE l_smydesc LIKE smy_file.smydesc,
          l_smyacti LIKE smy_file.smyacti,
          l_t1      LIKE oay_file.oayslip, #No.FUN-680136 VARCHAR(5)  
          p_cmd     LIKE type_file.chr1    #No.FUN-680136 VARCHAR(1)
 
   LET g_errno = ' '
   LET l_t1 = s_get_doc_no(g_votea.tc_votea01)        #No:MOD-540182
   IF g_votea.tc_votea01 IS NULL THEN
      LET g_errno = 'E'
      LET l_smydesc=NULL
   ELSE
      SELECT smydesc,smyacti
        INTO l_smydesc,l_smyacti
        FROM smy_file WHERE smyslip = l_t1
      IF SQLCA.sqlcode THEN
         LET g_errno = 'E'
         LET l_smydesc = NULL
      ELSE
         IF l_smyacti matches'[nN]' THEN
            LET g_errno = 'E'
         END IF
      END IF
   END IF
   IF cl_null(g_errno) OR p_cmd = 'd' THEN
    #  DISPLAY l_smydesc TO FORMONLY.smydesc
   END IF
END FUNCTION
  
FUNCTION i901_q()
   LET g_row_count = 0
   LET g_curs_index = 0
   CALL cl_navigator_setting( g_curs_index, g_row_count )
   MESSAGE ""
   CALL cl_opmsg('q')
   CLEAR FORM
   CALL g_voteb.clear()
   DISPLAY ' ' TO FORMONLY.cnt
   CALL i901_cs()
   IF INT_FLAG THEN
      LET INT_FLAG = 0
      INITIALIZE g_votea.* TO NULL
      RETURN
   END IF
   OPEN i901_cs                            # 從DB產生合乎條件TEMP(0-30秒)
   IF SQLCA.sqlcode THEN
      CALL cl_err('',SQLCA.sqlcode,0)
      INITIALIZE g_votea.* TO NULL
   ELSE
      OPEN i901_count
      FETCH i901_count INTO g_row_count
      DISPLAY g_row_count TO FORMONLY.cnt
      CALL i901_fetch('F')                  # 讀出TEMP第一筆並顯示
   END IF
END FUNCTION
FUNCTION i901_fetch(p_flag)
DEFINE
   p_flag          LIKE type_file.chr1                  #處理方式  #No.FUN-680136 VARCHAR(1)
   CASE p_flag
      WHEN 'N' FETCH NEXT     i901_cs INTO g_votea_rowid,g_votea.tc_votea01
      WHEN 'P' FETCH PREVIOUS i901_cs INTO g_votea_rowid,g_votea.tc_votea01
      WHEN 'F' FETCH FIRST    i901_cs INTO g_votea_rowid,g_votea.tc_votea01
      WHEN 'L' FETCH LAST     i901_cs INTO g_votea_rowid,g_votea.tc_votea01
      WHEN '/'
            IF (NOT mi_no_ask) THEN      #No:FUN-6A0067
                CALL cl_getmsg('fetch',g_lang) RETURNING g_msg
                LET INT_FLAG = 0
                PROMPT g_msg CLIPPED,': ' FOR g_jump
                   ON IDLE g_idle_seconds
                      CALL cl_on_idle()
 
      ON ACTION about         #MOD-4C0121
         CALL cl_about()      #MOD-4C0121
 
      ON ACTION help          #MOD-4C0121
         CALL cl_show_help()  #MOD-4C0121
 
      ON ACTION controlg      #MOD-4C0121
         CALL cl_cmdask()     #MOD-4C0121
 
                END PROMPT
                IF INT_FLAG THEN
                   LET INT_FLAG = 0
                   EXIT CASE
                END IF
            END IF
            FETCH ABSOLUTE g_jump i901_cs INTO g_votea_rowid,g_votea.tc_votea01
            LET mi_no_ask = FALSE     #No:FUN-6A0067
   END CASE
   IF SQLCA.sqlcode THEN
      CALL cl_err(g_votea.tc_votea01,SQLCA.sqlcode,0)
      INITIALIZE g_votea.* TO NULL               #No.FUN-6A0162
      RETURN
   ELSE
      CASE p_flag
         WHEN 'F' LET g_curs_index = 1
         WHEN 'P' LET g_curs_index = g_curs_index - 1
         WHEN 'N' LET g_curs_index = g_curs_index + 1
         WHEN 'L' LET g_curs_index = g_row_count
         WHEN '/' LET g_curs_index = g_jump
      END CASE
      CALL cl_navigator_setting( g_curs_index, g_row_count )
      DISPLAY g_curs_index TO FORMONLY.idx                    #No:FUN-4A0089
   END IF
   SELECT * INTO g_votea.* FROM tc_votea_file WHERE ROWID = g_votea_rowid
   IF SQLCA.sqlcode THEN
      CALL cl_err3("sel","tc_votea_file","","",SQLCA.sqlcode,"","",1)  #No.FUN-660129
      INITIALIZE g_votea.* TO NULL
      RETURN
   END IF
   LET g_data_owner = g_votea.tc_voteauser      #FUN-4C0056 add
  # LET g_data_group = g_votea.tc_voteagrup      #FUN-4C0056 add
   CALL i901_show()
END FUNCTION
#將資料顯示在畫面上
FUNCTION i901_show()
   LET g_votea_t.* = g_votea.*                #保存單頭舊值
   LET g_votea_o.* = g_votea.*                #保存單頭舊值
   DISPLAY BY NAME g_votea.tc_votea01,g_votea.tc_votea02,g_votea.tc_votea03,
                   g_votea.tc_voteauser,g_votea.tc_voteamodu,
                   g_votea.tc_voteadate,g_votea.tc_voteaacti,g_votea.tc_voteaconf
 
   CALL i901_tc_votea01('d')
   CALL i901_b_fill(g_wc2)                 #單身
   CALL cl_show_fld_cont()                   #No:FUN-550037 hmf
   IF g_votea.tc_voteaconf ='X' THEN LET g_chr='Y'  ELSE LET g_chr='N'  END IF
   IF g_votea.tc_votea03 ='R'   THEN LET g_chr2='Y' ELSE LET g_chr2='N' END IF
   CALL cl_set_field_pic(g_votea.tc_voteaconf,g_chr2,"","",g_chr,"")
END FUNCTION
#FUN-580120
FUNCTION i901_y_chk()
DEFINE l_cnt       LIKE type_file.num5    #No.FUN-680136 SMALLINT
   LET g_success = 'Y'
   IF s_shut(0) THEN RETURN END IF
   SELECT * INTO g_votea.* FROM tc_votea_file WHERE ROWID = g_votea_rowid
   IF SQLCA.SQLCODE THEN
      CALL cl_err('','mfg-009',1)
      LET g_success = 'N'
      RETURN
   END IF
   IF cl_null(g_votea.tc_votea01) THEN 
    CALL cl_err('',-400,0) 
 LET g_success = 'N'   
 RETURN 
   END IF
   IF g_votea.tc_voteaconf='X' THEN
      CALL cl_err('','9024',0)
      LET g_success = 'N'
      RETURN
   END IF
   IF g_votea.tc_voteaconf='Y' THEN
      CALL cl_err('','9023',0)
      LET g_success = 'N'
      RETURN
   END IF
   IF g_votea.tc_voteaacti= 'N' THEN
       CALL cl_err('','mfg0301',1)
       LET g_success = 'N'
       RETURN
   END IF
   LET l_cnt =0
   #控管單身未輸入資料
   SELECT COUNT(*) INTO l_cnt
     FROM tc_voteb_file
    WHERE tc_voteb01 = g_votea.tc_votea01
   IF SQLCA.SQLCODE THEN
      CALL cl_err('','mfg-009',1)
      LET g_success = 'N'
      RETURN
   END IF
   IF l_cnt = 0 OR l_cnt IS NULL THEN
      CALL cl_err('','mfg-009',1)
      LET g_success = 'N'
      RETURN
   END IF
END FUNCTION
FUNCTION i901_y_upd()
   DEFINE  l_cnt           LIKE type_file.num5    #No.FUN-680136 SMALLINT
   LET g_success = 'Y'
   IF NOT cl_confirm('axm-108') THEN RETURN END IF
   BEGIN WORK
   OPEN i901_cl USING g_votea_rowid
   IF STATUS THEN
      LET g_success = 'N'
      CALL cl_err("OPEN i901_cl:", STATUS, 1)
      CLOSE i901_cl
      ROLLBACK WORK
      RETURN
   END IF
   FETCH i901_cl INTO g_votea.*               # 對DB鎖定
   
   IF SQLCA.SQLCODE THEN
      LET g_success = 'N'
      CALL cl_err(g_votea.tc_votea01,SQLCA.SQLCODE,0)
      CLOSE i901_cl
      ROLLBACK WORK
      RETURN
   END IF
   UPDATE tc_votea_file SET tc_voteaconf = 'Y' WHERE tc_votea01 = g_votea.tc_votea01
   IF SQLCA.SQLCODE OR SQLCA.sqlerrd[3]=0 THEN
      CALL cl_err3("upd","tc_votea_file",g_votea.tc_votea01,"","apm-266","","upd tc_votea_file",1)  #No.FUN-660129
      LET g_success='N'
   END IF
   IF g_votea.tc_votea03 = 'U' THEN
      
      LET g_votea.tc_votea03 = 'R'
      UPDATE tc_votea_file SET tc_votea03 = 'U' WHERE tc_votea01 != g_votea.tc_votea01
      IF SQLCA.SQLCODE THEN
         CALL cl_err3("upd","tc_votea_file",g_votea.tc_votea01,"","apm-266","","upd tc_votea_file",1)  #No.FUN-660129
         LET g_success = 'N'
      END IF
      UPDATE tc_votea_file SET tc_votea03 = g_votea.tc_votea03 WHERE tc_votea01 = g_votea.tc_votea01
      IF SQLCA.SQLCODE THEN
         CALL cl_err3("upd","tc_votea_file",g_votea.tc_votea01,"","apm-266","","upd tc_votea_file",1)  #No.FUN-660129
         LET g_success = 'N'
      END IF
   END IF
   IF g_success = 'Y' THEN
      SELECT COUNT(*) INTO g_cnt FROM tc_voteb_file
       WHERE tc_voteb01 = g_votea.tc_votea01
      IF g_cnt = 0 OR SQLCA.SQLCODE THEN
         CALL cl_err(' ','aws-065',0)
         LET g_success = 'N'
      END IF
   END IF
  
      IF g_success='Y' THEN
         LET g_votea.tc_votea03='R'
         LET g_votea.tc_voteaconf='Y'
         COMMIT WORK
         DISPLAY BY NAME g_votea.tc_votea03
         DISPLAY BY NAME g_votea.tc_voteaconf
      ELSE
         LET g_votea.tc_voteaconf='N'
         LET g_success = 'N'
         ROLLBACK WORK
      END IF
   #CKP
   SELECT * INTO g_votea.* FROM tc_votea_file WHERE tc_votea01 = g_votea.tc_votea01
   IF g_votea.tc_voteaconf ='X' THEN LET g_chr='Y'  ELSE LET g_chr='N'  END IF
   IF g_votea.tc_votea03 ='R'   THEN LET g_chr2='Y' ELSE LET g_chr2='N' END IF
   CALL cl_set_field_pic(g_votea.tc_voteaconf,g_chr2,"",g_chr3,g_chr,g_votea.tc_voteaacti)
END FUNCTION

 

 

arrow
arrow
    全站熱搜

    jeffreyhu 發表在 痞客邦 留言(0) 人氣()