|
@@ -565,6 +565,8 @@ namespace OASystem.API.OAMethodLib
|
|
|
slice_info = vacation.attendance.slice_info;
|
|
|
}
|
|
|
|
|
|
+ DateTime date_Range_new_begin_dt = date_Range.new_begin_dt;
|
|
|
+ DateTime date_Range_new_end_dt = date_Range.new_end_dt;
|
|
|
|
|
|
//计算请假类型扣款金额
|
|
|
decimal new_duration = 0.00M;
|
|
@@ -572,49 +574,87 @@ namespace OASystem.API.OAMethodLib
|
|
|
{
|
|
|
new_duration = Convert.ToDecimal(date_Range.new_duration) / 86400.00M;
|
|
|
unit = "天";
|
|
|
- startTime = date_Range.new_begin_dt.ToString("yyyy-MM-dd") + " 09:00";
|
|
|
- endTime = date_Range.new_begin_dt.ToString("yyyy-MM-dd") + " 18:00";
|
|
|
+ startTime = date_Range_new_begin_dt.ToString("yyyy-MM-dd") + " 09:00";
|
|
|
+ endTime = date_Range_new_end_dt.ToString("yyyy-MM-dd") + " 18:00";
|
|
|
|
|
|
if (new_duration >= 0.50M)
|
|
|
{
|
|
|
if (slice_info != null)
|
|
|
{
|
|
|
- decimal qjLongTime = slice_info.duration / 3600.00M;
|
|
|
- if (qjLongTime == 4.50M)
|
|
|
+ if (slice_info.day_items.Count > 1)
|
|
|
{
|
|
|
- startTime1 = "12:00";
|
|
|
- endTime1 = "18:00:00";
|
|
|
+
|
|
|
+ date_Range_new_begin_dt = slice_info.day_items[0].daytimeDt;
|
|
|
+ date_Range_new_end_dt = slice_info.day_items[slice_info.day_items.Count - 1].daytimeDt;
|
|
|
+
|
|
|
+ decimal startTime11 = slice_info.day_items[0].duration;
|
|
|
+ decimal startTime11_11 = startTime11 / 3600.00M;
|
|
|
+ decimal endTime11 = slice_info.day_items[slice_info.day_items.Count - 1].duration;
|
|
|
+ decimal endTime11_11 = endTime11 / 3600.00M;
|
|
|
+ if (startTime11_11 == 3.00M )
|
|
|
+ {
|
|
|
+ startTime1 = "09:00";
|
|
|
+ }else if (startTime11_11 == 4.50M)
|
|
|
+ {
|
|
|
+ startTime1 = "12:00";
|
|
|
+ }
|
|
|
+ else if (startTime11_11 == 7.50M)
|
|
|
+ {
|
|
|
+ startTime1 = "09:00";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (endTime11_11 == 3.00M)
|
|
|
+ {
|
|
|
+ endTime1 = "12:00";
|
|
|
+ }
|
|
|
+ else if (endTime11_11 == 4.50M)
|
|
|
+ {
|
|
|
+ endTime1 = "18:00";
|
|
|
+ }
|
|
|
+ else if (endTime11_11 == 7.50M)
|
|
|
+ {
|
|
|
+ endTime1 = "18:00";
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
- else if (qjLongTime == 3.00M)
|
|
|
+ else
|
|
|
{
|
|
|
- startTime1 = "09:00";
|
|
|
- endTime1 = "12:00:00";
|
|
|
+ decimal qjLongTime = slice_info.duration / 3600.00M;
|
|
|
+ if (qjLongTime == 4.50M)
|
|
|
+ {
|
|
|
+ startTime1 = "12:00";
|
|
|
+ endTime1 = "18:00:00";
|
|
|
+ }
|
|
|
+ else if (qjLongTime == 3.00M)
|
|
|
+ {
|
|
|
+ startTime1 = "09:00";
|
|
|
+ endTime1 = "12:00:00";
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- startTime1 = date_Range.new_begin_dt.ToString("HH:mm:ss");
|
|
|
- endTime1 = date_Range.new_end_dt.ToString("HH:mm:ss");
|
|
|
+ startTime1 = date_Range_new_begin_dt.ToString("HH:mm:ss");
|
|
|
+ endTime1 = date_Range_new_end_dt.ToString("HH:mm:ss");
|
|
|
}
|
|
|
}
|
|
|
else if (date_Range.type == "hour")
|
|
|
{
|
|
|
new_duration = Convert.ToDecimal(date_Range.new_duration) / 3600.00M;
|
|
|
unit = "小时";
|
|
|
- startTime = date_Range.new_begin_dt.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
- endTime = date_Range.new_end_dt.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
- startTime1 = date_Range.new_begin_dt.ToString("HH:mm:ss");
|
|
|
- endTime1 = date_Range.new_end_dt.ToString("HH:mm:ss");
|
|
|
+ startTime = date_Range_new_begin_dt.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ endTime = date_Range_new_end_dt.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ startTime1 = date_Range_new_begin_dt.ToString("HH:mm:ss");
|
|
|
+ endTime1 = date_Range_new_end_dt.ToString("HH:mm:ss");
|
|
|
}
|
|
|
|
|
|
LeaveDetails leaveDetails1 = new LeaveDetails()
|
|
|
{
|
|
|
TypeId = leaveType,
|
|
|
TypeName = typeName,
|
|
|
- StartDt = Convert.ToDateTime(date_Range.new_begin_dt.ToString("yyyy-MM-dd") + " " + startTime1),
|
|
|
- EndDt = Convert.ToDateTime(date_Range.new_end_dt.ToString("yyyy-MM-dd") + " " + endTime1),
|
|
|
+ StartDt = Convert.ToDateTime(date_Range_new_begin_dt.ToString("yyyy-MM-dd") + " " + startTime1),
|
|
|
+ EndDt = Convert.ToDateTime(date_Range_new_end_dt.ToString("yyyy-MM-dd") + " " + endTime1),
|
|
|
DtType = date_Range.type,
|
|
|
Unit = unit,
|
|
|
New_Duration = new_duration,
|
|
@@ -1271,7 +1311,8 @@ namespace OASystem.API.OAMethodLib
|
|
|
{
|
|
|
mealDeduction = 10 * Math.Ceiling(duration);
|
|
|
}
|
|
|
- } }
|
|
|
+ }
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
mealDeduction = 10 * Math.Ceiling(duration);
|
|
@@ -1295,28 +1336,23 @@ namespace OASystem.API.OAMethodLib
|
|
|
{
|
|
|
decimal sj_wholeDay = Math.Floor(duration); //整天
|
|
|
decimal sj_halfDay = duration % 1; //半天
|
|
|
- typeDeduction = personalkLeave_dailywage_day * sj_wholeDay;
|
|
|
|
|
|
if (sj_halfDay > 0)
|
|
|
{
|
|
|
LeaveDetails sjDetails = leaveDetails.Where(it => it.StartDt == startTime && it.EndDt == endTime).FirstOrDefault();
|
|
|
-
|
|
|
decimal sjPrice = 0.00M;
|
|
|
if (sjDetails != null)
|
|
|
{
|
|
|
Slice_info sj_slice_Info = sjDetails.SliceInfo;
|
|
|
- decimal sjLongTime = sj_slice_Info.duration / 3600.00M;
|
|
|
- if (sjLongTime == 3.00M)
|
|
|
- {
|
|
|
- typeDeduction = typeDeduction + (personalkLeave_dailywage_day / 7.50M) * 3.00M;
|
|
|
- }
|
|
|
- else if (sjLongTime == 4.50M)
|
|
|
- {
|
|
|
- typeDeduction = typeDeduction + (personalkLeave_dailywage_day / 7.50M) * 4.50M;
|
|
|
- }
|
|
|
+ decimal sjLongTime = (sj_slice_Info.duration / 3600.00M);
|
|
|
+ typeDeduction = (personalkLeave_dailywage_day / 7.50M) * sjLongTime;
|
|
|
}
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
|
|
|
+ typeDeduction = personalkLeave_dailywage_day* sj_wholeDay;
|
|
|
+ }
|
|
|
typeDeduction = ConvertToDecimal(typeDeduction);
|
|
|
}
|
|
|
}
|