請問薪資計算相關問題 |
|
cd109
一般會員 發表:23 回覆:33 積分:11 註冊:2003-12-22 發送簡訊給我 |
請問各位大大
我現在資料庫中有四個欄位分別是
平時加班 超時加班 週六加班 假日加班
4 0 0 0
(這是一個人對多筆的加班資料)
計算規則如下
加班費計算
1. 平日加班 平日超時加班 週六加班 假日加班(<=8小時) < = 46
小時 ---- 屬加班費
2. (平日加班 平日超時加班 週六加班 假日加班(<=8小時)) - 46 > 0
小時 ---- 屬工作奬金 (即加班時數超過46小時的部份)
3. 假日加班超過8小時的部份 ---- 屬工作奬金 PS:第一跟第三我都算的出來,就是第二點沒辦法算出超過46小時的時間(未超過 46小時是加班費,超過46小時的小時數才轉成工作獎金). 發表人 - cd109 於 2004/08/27 11:31:15
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 試試如下﹕
Var Total_Hours, Over_T, Bonus_T : Integer; //Over_T為加班費﹐Bonus_T為工作獎金﹐Total_Hours為加班時間合計 begin Total_Hours := ADOQuery1.FieldByName('平時加班').AsInteger ADOQuery1.FieldByName('超時加班').AsInteger ADOQuery1.FieldByName('周六加班').AsInteger ADOQuery1.FieldByName('假日加班'); //以下為您的第一項要求 if Total_Hours <= 46 then begin if ADOQuery1.FieldByName('假日加班').AsInteger <= 8 then begin Over_T := Total_Hours; Bonus_T := 0; end else //以下為您的第一項加第三項要求 begin Over_T := Total_Hours - ADOQuery1.FieldByName('假日加班').AsInteger 8; Bonus_T := ADOQuery1.FieldByName('假日加班') - 8; end; end else //以下為您的第二項要求 begin if ADOQuery1.FieldByName('假日加班').AsInteger <= 8 then begin Over_T := 46; Bonus_T := Total_Hours - 46; end else //以下為您的第二項加第三項要求 begin if (Total_Hours - ADOQuery1.FieldByName('假日加班').AsInteger 8) <= 46 then begin Over_T := Total_Hours - ADOQuery1.FieldByName('假日加班').AsInteger 8; Bonus_T := ADOQuery1.FieldByName('假日加班').AsInteger - 8; end else begin Over.T := 46; Bonus_T := Total_Hours - 46; end; end; end; end;========================= 大病初愈﹐休養調整中... ========================= 發表人 - cashxin2002 於 2004/08/27 18:15:27
------
忻晟 |
cd109
一般會員 發表:23 回覆:33 積分:11 註冊:2003-12-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |