public ActionResult InsertSub(MCommissionDet viewModel, FormCollection formCollection, string commissionId)
        {
            var commissionDet = new MCommissionDet();

            commissionDet.CommissionId = _mCommissionRepository.Get(commissionId);
            TransferFormValuesTo(commissionDet, formCollection);
            commissionDet.SetAssignedIdTo(Guid.NewGuid().ToString());
            commissionDet.CreatedDate = DateTime.Now;
            commissionDet.CreatedBy   = User.Identity.Name;
            commissionDet.DataStatus  = EnumDataStatus.New.ToString();

            _mCommissionDetRepository.Save(commissionDet);

            try
            {
                _mCommissionDetRepository.DbContext.CommitChanges();
            }
            catch (Exception e)
            {
                _mCommissionDetRepository.DbContext.RollbackTransaction();

                return(Content(e.GetBaseException().Message));
            }

            return(Content("Data Detail berhasil dimasukkan"));
        }
Example #2
0
        private void CalculateCommissionSurveyor(TRecPeriod recPeriod, IList <TLoan> listLoan)
        {
            MCommission comm = _mCommissionRepository.GetCommissionByDate(EnumDepartment.SU, recPeriod.PeriodFrom, recPeriod.PeriodTo);

            if (comm == null)
            {
                throw new Exception("Data komisi untuk surveyor tidak tersedia.");
            }

            IList <MCommissionDet> listDets = comm.CommissionDets;
            decimal?incentiveSurvey         = 0;
            decimal?incentiveApprove        = 0;

            //get incentive
            if (listDets.Count > 0)
            {
                MCommissionDet det = listDets[0];
                incentiveSurvey  = det.DetailIncentiveSurveyOnly;
                incentiveApprove = det.DetailIncentiveSurveyAcc;
            }

            //get survey group by surveyor
            IList <TLoanSurvey> listSurvey = _tLoanSurveyRepository.GetListBySurveyDate(recPeriod.PeriodFrom, recPeriod.PeriodTo);
            var recapSurvey = from survey in listSurvey
                              where survey.LoanId.SurveyorId != null
                              group survey by survey.LoanId.SurveyorId into grouped
                              select new
            {
                SurveyorId  = grouped.Key,
                CountSurvey = grouped.Count(x => x.LoanId.SurveyorId != null)
            };

            //save survey commission
            foreach (var recap in recapSurvey)
            {
                SaveCommission(recPeriod, EnumCommissionType.IncentiveSurvey, EnumDepartment.SU, recap.SurveyorId, 1, recap.CountSurvey, incentiveSurvey);
            }

            //get loan group by surveyor that status is OK
            var recapLoan = from loan in listLoan
                            where loan.LoanStatus == EnumLoanStatus.OK.ToString() && loan.SurveyorId != null
                            group loan by loan.SurveyorId into grouped
                            select new
            {
                SurveyorId = grouped.Key,
                CountLoan  = grouped.Count(x => x.SurveyorId != null)
            };

            //save loan commission
            foreach (var recap in recapLoan)
            {
                SaveCommission(recPeriod, EnumCommissionType.IncentiveApprove, EnumDepartment.SU, recap.SurveyorId, 1, recap.CountLoan, incentiveApprove);
            }
        }
 private static void TransferFormValuesTo(MCommissionDet commissionDet, FormCollection formCollection)
 {
     commissionDet.DetailType                = formCollection["DetailType"];
     commissionDet.DetailLowTarget           = Helper.CommonHelper.ConvertToDecimal(formCollection["DetailLowTarget"]);
     commissionDet.DetailHighTarget          = Helper.CommonHelper.ConvertToDecimal(formCollection["DetailHighTarget"]);
     commissionDet.DetailValue               = Helper.CommonHelper.ConvertToDecimal(formCollection["DetailValue"]);
     commissionDet.DetailCustomerNumber      = Helper.CommonHelper.ConvertToInteger(formCollection["DetailCustomerNumber"]);
     commissionDet.DetailTransportAllowance  = Helper.CommonHelper.ConvertToDecimal(formCollection["DetailTransportAllowance"]);
     commissionDet.DetailIncentive           = Helper.CommonHelper.ConvertToDecimal(formCollection["DetailIncentive"]);
     commissionDet.DetailIncentiveSurveyAcc  = Helper.CommonHelper.ConvertToDecimal(formCollection["DetailIncentiveSurveyAcc"]);
     commissionDet.DetailIncentiveSurveyOnly = Helper.CommonHelper.ConvertToDecimal(formCollection["DetailIncentiveSurveyOnly"]);
 }
        public ActionResult DeleteSub(MCommissionDet viewModel, FormCollection formCollection)
        {
            MCommissionDet commissionDet = _mCommissionDetRepository.Get(viewModel.Id);

            if (commissionDet != null)
            {
                _mCommissionDetRepository.Delete(commissionDet);
            }

            try
            {
                _mCommissionDetRepository.DbContext.CommitChanges();
            }
            catch (Exception e)
            {
                _mCommissionDetRepository.DbContext.RollbackTransaction();

                return(Content(e.GetBaseException().Message));
            }

            return(Content("Data Detail Berhasil Dihapus"));
        }
        public ActionResult UpdateSub(MCommissionDet viewModel, FormCollection formCollection)
        {
            MCommissionDet commissionDet = _mCommissionDetRepository.Get(viewModel.Id);

            TransferFormValuesTo(commissionDet, formCollection);
            commissionDet.ModifiedDate = DateTime.Now;
            commissionDet.ModifiedBy   = User.Identity.Name;
            commissionDet.DataStatus   = EnumDataStatus.Updated.ToString();

            _mCommissionDetRepository.Update(commissionDet);

            try
            {
                _mCommissionDetRepository.DbContext.CommitChanges();
            }
            catch (Exception e)
            {
                _mCommissionDetRepository.DbContext.RollbackTransaction();

                return(Content(e.GetBaseException().Message));
            }

            return(Content("Data Detail Berhasil Diupdate"));
        }