示例#1
0
        public ActionResult Edit(LessonSessionsModel modifiedModel, string FILTER_Keyword, string FILTER_InvoiceNo, int?FILTER_Cancelled,
                                 bool?FILTER_chkDateFrom, DateTime?FILTER_DateFrom, bool?FILTER_chkDateTo, DateTime?FILTER_DateTo)
        {
            if (ModelState.IsValid)
            {
                LessonSessionsModel originalModel = get(modifiedModel.Id);

                //without the specified access, some fields are excluded in edit form resulting in no value. Copy values from original model
                if (!UserAccountsController.getUserAccess(Session).LessonSessions_Edit)
                {
                    modifiedModel.HourlyRates_Rate = originalModel.HourlyRates_Rate;
                    modifiedModel.TravelCost       = originalModel.TravelCost;
                    modifiedModel.TutorTravelCost  = originalModel.TutorTravelCost;
                }

                string log = string.Empty;
                log = Helper.append(log, originalModel.HourlyRates_Rate, modifiedModel.HourlyRates_Rate, LessonSessionsModel.COL_HourlyRates_Rate.LogDisplay);
                log = Helper.append(log, originalModel.TravelCost, modifiedModel.TravelCost, LessonSessionsModel.COL_TravelCost.LogDisplay);
                log = Helper.append(log, originalModel.TutorTravelCost, modifiedModel.TutorTravelCost, LessonSessionsModel.COL_TutorTravelCost.LogDisplay);
                log = Helper.append(log, originalModel.Review, modifiedModel.Review, LessonSessionsModel.COL_Review.LogDisplay);
                log = Helper.append(log, originalModel.InternalNotes, modifiedModel.InternalNotes, LessonSessionsModel.COL_InternalNotes.LogDisplay);

                if (!string.IsNullOrEmpty(log))
                {
                    update(modifiedModel, log);

                    //update payrollitem if rate or travel cost is changed
                    //Tutor Travel Cost is not currently checked against total travel cost amount paid by customer. This edit may cause cost to exceed amount paid by customer.
                    PayrollPaymentItemsModel payrollPaymentItem = PayrollPaymentItemsController.get(Session, originalModel.PayrollPaymentItems_Id);

                    //this is necessary for payrollpaymentitems that has multiple lessonsessions (class)
                    payrollPaymentItem.HourlyRate      += (modifiedModel.HourlyRates_Rate - originalModel.HourlyRates_Rate);
                    payrollPaymentItem.TutorTravelCost += (modifiedModel.TutorTravelCost - originalModel.TutorTravelCost);

                    payrollPaymentItem.Amount = PayrollPaymentItemsController.calculateAmount(originalModel.IsWaiveTutorFee, payrollPaymentItem.Hour, payrollPaymentItem.HourlyRate, modifiedModel.TutorTravelCost);
                    PayrollPaymentItemsController.update(db, Session, payrollPaymentItem);
                }

                return(RedirectToAction(nameof(Index), new
                {
                    FILTER_Keyword = FILTER_Keyword,
                    FILTER_InvoiceNo = FILTER_InvoiceNo,
                    FILTER_Cancelled = FILTER_Cancelled,
                    FILTER_chkDateFrom = FILTER_chkDateFrom,
                    FILTER_DateFrom = FILTER_DateFrom,
                    FILTER_chkDateTo = FILTER_chkDateTo,
                    FILTER_DateTo = FILTER_DateTo
                }));
            }

            setViewBag(FILTER_Keyword, FILTER_InvoiceNo, FILTER_Cancelled, FILTER_chkDateFrom, FILTER_DateFrom, FILTER_chkDateTo, FILTER_DateTo);
            return(View(modifiedModel));
        }
 public static void add(PayrollPaymentItemsModel model)
 {
     WebDBConnection.Insert(new DBContext().Database, "PayrollPaymentItems",
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_Id.Name, model.Id),
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_PayrollPayments_Id.Name, model.PayrollPayments_Id),
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_Timestamp.Name, model.Timestamp),
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_Description.Name, model.Description),
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_Hour.Name, model.Hour),
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_HourlyRate.Name, model.HourlyRate),
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_TutorTravelCost.Name, model.TutorTravelCost),
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_Amount.Name, model.Amount),
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_UserAccounts_Id.Name, model.UserAccounts_Id),
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_CancelNotes.Name, model.CancelNotes),
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_Branches_Id.Name, model.Branches_Id),
                            DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_IsFullTime.Name, model.IsFullTime)
                            );
 }
        public static void update(DBContext db, HttpSessionStateBase Session, PayrollPaymentItemsModel model)
        {
            PayrollPaymentItemsModel originalModel = get(Session, model.Id);

            string log = string.Empty;

            log = Helper.append(log, originalModel.HourlyRate, model.HourlyRate, PayrollPaymentItemsModel.COL_HourlyRate.LogDisplay);
            log = Helper.append(log, originalModel.TutorTravelCost, model.TutorTravelCost, PayrollPaymentItemsModel.COL_TutorTravelCost.LogDisplay);
            log = Helper.append(log, originalModel.Amount, model.Amount, PayrollPaymentItemsModel.COL_Amount.LogDisplay);

            if (!string.IsNullOrEmpty(log))
            {
                WebDBConnection.Update(db.Database, "PayrollPaymentItems",
                                       DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_Id.Name, model.Id),
                                       DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_HourlyRate.Name, model.HourlyRate),
                                       DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_TutorTravelCost.Name, model.TutorTravelCost),
                                       DBConnection.getSqlParameter(PayrollPaymentItemsModel.COL_Amount.Name, model.Amount)
                                       );
                ActivityLogsController.AddEditLog(db, Session, model.Id, log);
                db.SaveChanges();
            }
        }