|
@@ -121,8 +121,11 @@ namespace OASystem.API.OAMethodLib
|
|
|
|
|
|
if (item.begtime_dt>= startDt && item.endtime_dt <= endDt)
|
|
|
{
|
|
|
- TimeSpan ts = item.endtime_dt - item.begtime_dt;
|
|
|
- spe_offdays += (ts.Days + 1);
|
|
|
+ if (item.endtime_dt > startDt)
|
|
|
+ {
|
|
|
+ TimeSpan ts = item.endtime_dt - item.begtime_dt;
|
|
|
+ spe_offdays += (ts.Days + 1);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -596,7 +599,7 @@ namespace OASystem.API.OAMethodLib
|
|
|
SubTypeId = 4,
|
|
|
SubType = "旷工",
|
|
|
Duration = 0,
|
|
|
- StartTimeDt = Convert.ToDateTime(thisDay),
|
|
|
+ StartTimeDt = Convert.ToDateTime(goOutPunchItem.StartDt),
|
|
|
Unit = "分钟",
|
|
|
Reason ="数据来源【外出打卡】"
|
|
|
};
|
|
@@ -669,12 +672,12 @@ namespace OASystem.API.OAMethodLib
|
|
|
{
|
|
|
day_deduction = 0.00M;
|
|
|
}
|
|
|
- beLate_deduction += day_deduction;
|
|
|
+ early_deduction += day_deduction;
|
|
|
}
|
|
|
else if (timeLong >= 10 && timeLong < 60)
|
|
|
{
|
|
|
day_deduction = 50.00M;
|
|
|
- beLate_deduction += day_deduction;
|
|
|
+ early_deduction += day_deduction;
|
|
|
beLate_belate_ex.SubTypeId = 1;
|
|
|
beLate_belate_ex.SubType = "早退";
|
|
|
}
|
|
@@ -758,9 +761,15 @@ namespace OASystem.API.OAMethodLib
|
|
|
Date_range date_Range = attendance.date_range;
|
|
|
|
|
|
|
|
|
- if ( Convert.ToDateTime(date_Range.new_begin_dt) < startDt || Convert.ToDateTime(date_Range.new_end_dt.ToString("yyyy-MM-dd")) > endDt)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (Convert.ToDateTime(date_Range.new_begin_dt) < startDt || Convert.ToDateTime(date_Range.new_begin_dt) > endDt)
|
|
|
{
|
|
|
- continue;
|
|
|
+ continue;
|
|
|
}
|
|
|
|
|
|
string leave_starttime = date_Range.new_begin_dt.ToString("HH:mm");
|
|
@@ -902,6 +911,8 @@ namespace OASystem.API.OAMethodLib
|
|
|
endTime1 = date_Range_new_end_dt.ToString("HH:mm:ss");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
LeaveDetails leaveDetails1 = new LeaveDetails()
|
|
|
{
|
|
|
TypeId = leaveType,
|
|
@@ -954,6 +965,26 @@ namespace OASystem.API.OAMethodLib
|
|
|
|
|
|
int leaveType = leave_item.TypeId;
|
|
|
decimal new_duration = leave_item.New_Duration;
|
|
|
+
|
|
|
+ #region 处理跨月天数
|
|
|
+
|
|
|
+ if (leave_item.EndDt > endDt)
|
|
|
+ {
|
|
|
+ DateTime dt1 = Convert.ToDateTime(leave_item.StartDt.ToString("yyyy-MM-dd") + " 12:00");
|
|
|
+ DateTime dt2 = Convert.ToDateTime(leave_item.StartDt.ToString("yyyy-MM-dd") + " 09:00");
|
|
|
+ TimeSpan ts = Convert.ToDateTime(endDt.ToString("yyyy-MM-dd") + " 18:00") - Convert.ToDateTime(leave_item.StartDt.ToString("yyyy-MM-dd"));
|
|
|
+ if (dt2 >= leave_item.StartDt && leave_item.StartDt <= dt1)
|
|
|
+ {
|
|
|
+ new_duration = ts.Days + 1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ new_duration = ts.Days + 1.00M + 0.50M;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
|
|
|
CalculateTypeFee1(leaveDetails,leaveType, leave_item.DtType, leave_item.StartDt, leave_item.EndDt, amountPayable, work_days,
|
|
|
new_duration,out leave_meals, out thisTypeDeduction);
|
|
@@ -1639,7 +1670,6 @@ namespace OASystem.API.OAMethodLib
|
|
|
if (duration % 1 > 0)
|
|
|
{
|
|
|
typeDeduction = (personalkLeave_dailywage_day / 2.00M) * (duration / 0.50M);
|
|
|
-
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -1832,7 +1862,6 @@ namespace OASystem.API.OAMethodLib
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|