//public bool SaveData(string actionName, Payment payment, SlipDeatils slipDeatils, MemberShip memberShip,string VideoType)
        //{
        //    switch (actionName)
        //    {
        //        case "Product":
        //            GenerateProductSlip(payment, slipDeatils, 'P');

        //            //Generate Commission
        //            break;
        //        case "Book":
        //            GenerateProductSlip(payment, slipDeatils, 'B');
        //            //Generate Commission
        //            // Statements executed if expression(or variable) = value1
        //            break;
        //        case "Activate":
        //            MembershipPayment(payment, memberShip, 'S');
        //            //Generate Commission
        //            // Statements executed if expression(or variable) = value1
        //            break;
        //        case "Upgrade":
        //            MembershipPayment(payment, memberShip, 'U');
        //            //Generate Commission
        //            // Statements executed if expression(or variable) = value1
        //            break;
        //        case "UpgradeEmail":
        //            SendEmail(payment);
        //            //Generate Commission
        //            // Statements executed if expression(or variable) = value1
        //            break;
        //            break;
        //        case "Video":
        //         if(VideoType=="First Aid")
        //            {
        //                SaveVideoPayment(payment);
        //            }
        //            break;
        //        default:
        //            break;
        //            // Statements executed if no case matches
        //    }
        //    throw new NotImplementedException();
        //}
        public async Task <bool> GenerateSlip(int moduleId, Payment payment, SlipDeatils slipDeatils, Char slipType)
        {
            using (var transaction = context.Database.BeginTransaction())
            {
                try
                {
                    context.Payment.Add(payment);
                    context.SaveChanges();
                    slipDeatils.PaymentId = payment.PaymentId;
                    slipDeatils.SlipType  = slipType;
                    context.SlipDeatil.Add(slipDeatils);
                    context.SaveChanges();
                    var query = context.Agents.Where(a => a.ModuleId == moduleId);
                    if (query != null)
                    {
                        decimal commision = payment.PaidAmount * (Convert.ToDecimal(query.Select(a => a.CommisionPercentage)) / 100);

                        AgentCommission agentCommission = new AgentCommission();
                        agentCommission.AgentId         = Convert.ToInt32(query.Select(a => a.AgentId));
                        agentCommission.CommisionAmount = commision;
                        context.AgentCommission.Add(agentCommission);
                        context.SaveChanges();
                    }
                    transaction.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    return(false);
                }
            }
        }
Exemple #2
0
        public HttpResponseMessage Commission(AgentCommission commission)
        {
            using (var context = new ApplicationDbContext())
            {
                var entity = context.Commissions.Where(r => r.AgentCode == commission.AgentCode).FirstOrDefault();
                if (entity != null)
                {
                    entity.CommissionPercent = commission.CommissionPercent;
                }
                else   //New Record
                {
                    context.Commissions.Add(commission);
                }

                return(Request.CreateResponse(HttpStatusCode.OK, context.SaveChanges() == 1 ? true : false));
            }
        }
        public async Task <ResponseMessage> AddAgentCommission(PackingSlipHeader packingSlipHeader, decimal amount)
        {
            ResponseMessage message = new ResponseMessage {
                IsSuccess = false
            };

            var commission = new AgentCommission
            {
                AgentName     = packingSlipHeader.AgentName,
                Amount        = amount,
                PackingSlipId = packingSlipHeader.Id
            };

            _context.AgentCommissions.Add(commission);
            await _context.SaveChangesAsync();

            message.IsSuccess = true;

            return(message);
        }
        public ActionResult AddCommision(AgentCommissionModel model)
        {
            ModelState.Remove("Id");
            ModelState.Remove("ManagementCommission");

            if (ModelState.IsValid)
            {
                var agentCommission = InsuranceContext.AgentCommissions.Single(where : $"BusinessSourceId =" + model.BusinessSourceId);

                if (agentCommission == null)
                {
                    AgentCommission agentCommision = new AgentCommission {
                        BusinessSourceId = model.BusinessSourceId, CommissionName = model.CommissionName, CommissionAmount = model.CommissionAmount, CreatedOn = DateTime.Now
                    };
                    InsuranceContext.AgentCommissions.Insert(agentCommision);
                }
                else
                {
                    TempData["errorMsg"] = "Agent commmission alredy exist for selected source.";
                }
            }

            return(RedirectToAction("Commission"));
        }