public void DeleteExpensePerdiemItemOnTransaction(Guid txId, long itemId) { ExpenseDataSet expDs = (ExpenseDataSet)TransactionService.GetDS(txId); ExpenseDataSet.FnExpensePerdiemItemRow row = expDs.FnExpensePerdiemItem.FindByPerdiemItemID(itemId); expDs.FnExpensePerdiemItem.RemoveFnExpensePerdiemItemRow(row); }
public void DeleteExpensePerdiemItemTransaction(long itemId, Guid txId) { ExpenseDataSet expDs = (ExpenseDataSet)TransactionService.GetDS(txId); ExpenseDataSet.FnExpensePerdiemItemRow row = expDs.FnExpensePerdiemItem.FindByPerdiemItemID(itemId); long expensePerdiemID = row.ExpensePerdiemID; row.Delete(); FnExpensePerdiemService.UpdateExpensePerdiemCalculateTransaction(expensePerdiemID, txId); }
public void AddExpensePerdiemItemOnTransaction(FnExpensePerdiemItem item, Guid txId) { Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors(); if (item.FromDate == null) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredFromDate")); } if (item.FromTime == null) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredFromTime")); } else { item.FromTime = new DateTime(item.FromDate.Year, item.FromDate.Month, item.FromDate.Day, item.FromTime.Hour, item.FromTime.Minute, 0); } if (item.ToDate == null) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredToDate")); } if (item.ToTime == null) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredToTime")); } else { item.ToTime = new DateTime(item.ToDate.Year, item.ToDate.Month, item.ToDate.Day, item.ToTime.Hour, item.ToTime.Minute, 0); } if (item.AdjustedDay == null) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredAdjustedDay")); } if (item.AdjustedDay.Equals((decimal)0)) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredAdjustedDayNotEqualZero")); } if (item.ToTime < item.FromTime) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredToDateIncorrect")); } if (!errors.IsEmpty) { throw new ServiceValidationException(errors); } ExpenseDataSet ds = (ExpenseDataSet)TransactionService.GetDS(txId); ExpenseDataSet.FnExpensePerdiemItemRow row = ds.FnExpensePerdiemItem.NewFnExpensePerdiemItemRow(); row.ExpensePerdiemID = item.ExpensePerdiemID.ExpensePerdiemID; row.FromDate = item.FromDate; row.FromTime = item.FromTime; row.ToDate = item.ToDate; row.ToTime = item.ToTime; row.AdjustedDay = item.AdjustedDay.Value; row.NetDay = ComputeNetDay(item.FromTime, item.ToTime, item.AdjustedDay.Value); row.CreBy = item.CreBy; row.CreDate = item.CreDate; row.UpdBy = item.UpdBy; row.UpdDate = item.UpdDate; row.UpdPgm = item.UpdPgm; row.Active = true; ds.FnExpensePerdiemItem.AddFnExpensePerdiemItemRow(row); }
public void AddExpensePerdiemItemTransaction(FnExpensePerdiemItem item, Guid txId) { Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors(); string PerdiemType = GetPerdiemType(item, txId); if (!item.FromDate.HasValue) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredFromDate")); } if (!item.FromTime.HasValue) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredFromTime")); } if (!item.ToDate.HasValue) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredToDate")); } if (!item.ToTime.HasValue) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredToTime")); } if (item.FromDate.HasValue && item.FromTime.HasValue && item.ToDate.HasValue && item.ToTime.HasValue) { DateTime FromDateTime = ConvertDateTime(item.FromDate, item.FromTime); DateTime ToDateTime = ConvertDateTime(item.ToDate, item.ToTime); if (DateTime.Compare(ToDateTime, DateTime.Now.Date) > 0) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("PleaseSelectDateIsNotToday")); } if (ToDateTime < FromDateTime) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("RequiredToDateIncorrect")); } else { if (CalculateNetDay(CalculateTotalDay(FromDateTime, ToDateTime, PerdiemType), item.AdjustedDay) < 0) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("Invalid Date Information")); } if (PerdiemType == ZoneType.Foreign) { if (item.HalfDay < 0) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("Invalid Date Information")); } else { if (CalculateFullDay(CalculateNetDay(CalculateTotalDay(FromDateTime, ToDateTime, PerdiemType), item.AdjustedDay), item.HalfDay) < 0) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("Invalid Date Information")); } } } } } if (PerdiemType == ZoneType.Foreign) { if (!item.CountryID.HasValue && string.IsNullOrEmpty(item.Remark)) { errors.AddError("PerdiemItem.Error", new Spring.Validation.ErrorMessage("Remark is required")); } } if (!errors.IsEmpty) { throw new ServiceValidationException(errors); } ExpenseDataSet ds = (ExpenseDataSet)TransactionService.GetDS(txId); ExpenseDataSet.FnExpensePerdiemItemRow row = ds.FnExpensePerdiemItem.NewFnExpensePerdiemItemRow(); row.ExpensePerdiemID = item.ExpensePerdiem.ExpensePerdiemID; row.FromDate = item.FromDate.Value; row.FromTime = ConvertDateTime(item.FromDate.Value, item.FromTime.Value); row.ToDate = item.ToDate.Value; row.ToTime = ConvertDateTime(item.ToDate, item.ToTime); row.AdjustedDay = (decimal)item.AdjustedDay; row.NetDay = (decimal)CalculateNetDay(CalculateTotalDay(row.FromTime, row.ToTime, PerdiemType), item.AdjustedDay); //** for Domestic and Foreign row.Remark = item.Remark; if (PerdiemType == ZoneType.Foreign) { row.HalfDay = (decimal)item.HalfDay; row.FullDay = (decimal)CalculateFullDay((double)row.NetDay, (double)row.HalfDay); if (item.CountryID.HasValue) { row.CountryID = item.CountryID.Value; } if (item.CountryZoneID.HasValue) { row.CountryZoneID = item.CountryZoneID.Value; } } row.CreBy = row.UpdBy = UserAccount.UserID; row.CreDate = row.UpdDate = DateTime.Now.Date; row.UpdPgm = item.UpdPgm; row.Active = true; ds.FnExpensePerdiemItem.AddFnExpensePerdiemItemRow(row); FnExpensePerdiemService.UpdateExpensePerdiemCalculateTransaction(item.ExpensePerdiem.ExpensePerdiemID, txId); }
public void PrepareDataToDataset(ExpenseDataSet ds, long perdiemId) { ExpenseDataSet.FnExpensePerdiemRow row = ds.FnExpensePerdiem.FindByExpensePerdiemID(perdiemId); ExpenseDataSet.FnExpenseDocumentRow expRow = ds.FnExpenseDocument.FindByExpenseID(row.ExpenseID); string PerdiemType = expRow.ExpenseType; IList <FnExpensePerdiemItem> perdiemItemList = ScgeAccountingQueryProvider.FnExpensePerdiemItemQuery.GetPerdiemItemByPerdiemID(perdiemId); decimal totalNetDay = 0; foreach (FnExpensePerdiemItem item in perdiemItemList) { // Set data to perdiem item row in Dataset. ExpenseDataSet.FnExpensePerdiemItemRow itemRow = ds.FnExpensePerdiemItem.NewFnExpensePerdiemItemRow(); itemRow.PerdiemItemID = item.PerdiemItemID; itemRow.ExpensePerdiemID = item.ExpensePerdiem.ExpensePerdiemID; itemRow.FromDate = item.FromDate.Value; itemRow.FromTime = ConvertDateTime(item.FromDate.Value, item.FromTime.Value); itemRow.ToDate = item.ToDate.Value; itemRow.ToTime = ConvertDateTime(item.ToDate, item.ToTime); itemRow.AdjustedDay = (decimal)item.AdjustedDay; itemRow.NetDay = (decimal)item.NetDay; totalNetDay += itemRow.NetDay; if (PerdiemType == ZoneType.Foreign) { itemRow.HalfDay = (decimal)item.HalfDay; itemRow.FullDay = (decimal)item.FullDay; itemRow.SetCountryIDNull(); if (item.CountryID != null) { itemRow.CountryID = item.CountryID.Value; } itemRow.SetCountryZoneIDNull(); if (item.CountryZoneID != null) { itemRow.CountryZoneID = item.CountryZoneID.Value; } } itemRow.Remark = item.Remark; itemRow.Active = item.Active; itemRow.CreBy = item.CreBy; itemRow.CreDate = item.CreDate; itemRow.UpdBy = item.UpdBy; itemRow.UpdDate = item.UpdDate; itemRow.UpdPgm = item.UpdPgm; // Add perdiem item row to documentDataset. ds.FnExpensePerdiemItem.AddFnExpensePerdiemItemRow(itemRow); } if (PerdiemType == ZoneType.Domestic) { row.TotalFullDayPerdiem = totalNetDay; row.TotalFullDayPerdiemAmount = totalNetDay * row.FullDayPerdiemRate; } }