Esempio n. 1
0
        public void ShouldCorrectValueInPositionForSalesmanModel()
        {
            var saparator = "ç";
            var value     = "001ç1234567891234çPedroç50000";

            var objType  = typeof(SalesmanModel);
            var splitted = value.Split(saparator);

            var cpf    = objType.GetProperty("CPF").GetValueFromLine(splitted);
            var name   = objType.GetProperty("Name").GetValueFromLine(splitted);
            var salary = objType.GetProperty("Salary").GetValueFromLine(splitted);

            var data = new SalesmanModel();

            data.CPF    = GetValue <string>(cpf);
            data.Name   = GetValue <string>(name);
            data.Salary = GetValue <decimal>(salary);
            var dataValidation = new SalesmanModel {
                CPF = "1234567891234", Name = "Pedro", Salary = 50000
            };

            data.CPF.Should().Be(dataValidation.CPF);
            data.Name.Should().Be(dataValidation.Name);
            data.Salary.Should().Be(dataValidation.Salary);
        }
        private void ProcessSalesCommission(SqlConnection con, SqlTransaction tran, SalesmanModel salesman, double salesAmount, double paidCommissionPercent = 0)
        {
            if (paidCommissionPercent == 26)
            {
                return;
            }

            double personalSalesAmount   = _salesman.GetSalesAmount(salesman.CompanyCode, code: salesman.Code);
            double selfCommissionPercent = _policy.SalesCommissionPercentage(salesman.Designation, salesAmount);
            double payableAmount         = salesAmount * (selfCommissionPercent - paidCommissionPercent) / 100;

            if (_policy.IsEligible(personalSalesAmount))
            {
                _salary.AddSalesCommission(con, tran, salesman.CompanyCode, salesman.Code, payableAmount);
                paidCommissionPercent += (selfCommissionPercent - paidCommissionPercent);
            }
            if (!string.IsNullOrEmpty(salesman.ReferenceCode))
            {
                var reference = _salesman.Get(salesman.CompanyCode, salesman.ReferenceCode).FirstOrDefault();
                if (reference == null)
                {
                    _salary.AddSalesCommission(con, tran, null, salesman.CompanyCode, salesAmount * (26 - paidCommissionPercent) / 100);
                }
                else
                {
                    ProcessSalesCommission(con, tran, reference, salesAmount, paidCommissionPercent);
                }
            }
        }
        public AjaxResponseModel Update(SalesmanModel model, string userId)
        {
            try
            {
                var saleman = _context.MstSalesmen.FirstOrDefault(x => x.Cd == model.Cd);

                if (saleman != null)
                {
                    saleman.Code         = model.Code.Trim();
                    saleman.Name         = model.Name.Trim();
                    saleman.NameKana     = model.SalemanNameKana.Trim();
                    saleman.UpdateDate   = DateTime.Now;
                    saleman.UpdateUserId = userId;

                    Update(saleman);

                    return(new AjaxResponseModel(true, null));
                }

                return(new AjaxResponseModel(false, "この担当者が見つかりません。"));
            }
            catch (Exception e)
            {
                return(new AjaxResponseModel(false, e.Message));
            }
        }
Esempio n. 4
0
        public Salesman(SalesmanModel salesmanModel)
        {
            Model     = salesmanModel;
            IsPrimary = salesmanModel.IsPrimary;

            this.WhenAnyValue(x => x.IsPrimary)
            .Subscribe(s => Model.IsPrimary = s);
        }
Esempio n. 5
0
        public override void Init(object initData)
        {
            base.Init(initData);

            if (initData != null)
            {
                _salesman = (Salesman)initData;
            }
            SalesmanModelInit = new SalesmanModel(_salesman);
            name = SalesmanModelInit.Name;
        }
Esempio n. 6
0
        public override void Init(object initData)
        {
            base.Init(initData);

            if (initData != null)
            {
                _salesman = (Salesman)initData;
            }

            SalesmanModelInit = new SalesmanModel(_salesman);
            name = AppResources.Report + " " + SalesmanModelInit.Name;
        }
        private void dgSearchEmpInList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            DataGridCell cell = GetCell(dgSearchEmpInList.SelectedIndex, 3, dgSearchEmpInList);
            TextBlock    tb   = cell.Content as TextBlock;

            lblEnrollmentDate.Content = tb.Text;

            if (cbType.Text == "Employee")
            {
                lblType.Content = "Employee";
                EmployeeModel em = new EmployeeModel();
                em.BaseRate         = 100;
                lblBaseRate.Content = em.BaseRate;

                var enrollmentDate = DateTime.Parse(tb.Text);

                var countOfYears = DateTime.Now.Year - enrollmentDate.Year;
                lblCountOfYears.Content = countOfYears;

                lblSalary.Content = em.CalculateSalary(enrollmentDate, em.BaseRate);
            }

            if (cbType.Text == "Manager")
            {
                lblType.Content = "Manager";
                ManagerModel mm = new ManagerModel();
                mm.BaseRate         = 100;
                lblBaseRate.Content = mm.BaseRate;

                var enrollmentDate = Convert.ToDateTime(tb.Text);

                var countOfYears = DateTime.Now.Year - enrollmentDate.Year;
                lblCountOfYears.Content = countOfYears;

                lblSalary.Content = mm.CalculateSalary(enrollmentDate, mm.BaseRate);
            }

            if (cbType.Text == "Salesman")
            {
                lblType.Content = "Salesman";
                SalesmanModel sm = new SalesmanModel();
                sm.BaseRate         = 100;
                lblBaseRate.Content = sm.BaseRate;

                var enrollmentDate = DateTime.Parse(tb.Text);
                var countOfYears   = DateTime.Now.Year - enrollmentDate.Year;
                lblCountOfYears.Content = countOfYears;

                lblSalary.Content = sm.CalculateSalary(enrollmentDate, sm.BaseRate);
            }
        }
Esempio n. 8
0
        public IActionResult Login(UserModel user)
        {
            try
            {
                var loggedUser = _user.Login <UserViewModel>(user.Name, user.Password);
                if (loggedUser == null || (loggedUser.Name != user.Name && user.Password != user.Password))
                {
                    throw new InvalidException("Incorrect username or password!");
                }

                if (loggedUser.UserType == UserType.AlphaMember || loggedUser.UserType == UserType.BetaMember)
                {
                    loggedUser.EmploymentInfo.Membership = _employee.GetMember(loggedUser.CompanyCode, loggedUser.Code).FirstOrDefault() ?? new MemberModel();
                    loggedUser.Company        = _settings.GetCompany(loggedUser.CompanyCode);
                    loggedUser.PurchaseAmount = _employee.PurchaseAmount(loggedUser.CompanyCode, DateTime.Now.ToString("yyyyMM"), loggedUser.UserType, loggedUser.EmploymentInfo.Membership.Sidc);
                    loggedUser.SalesAmount    = _employee.SalesAmount(loggedUser.CompanyCode, DateTime.Now.ToString("yyyyMM"), loggedUser.UserType, loggedUser.EmploymentInfo.Membership.Sidc);
                }
                else if (loggedUser.UserType == UserType.Salesman)
                {
                    SalesmanModel emp = _employee.GetSalesman(loggedUser.CompanyCode, loggedUser.Code).FirstOrDefault();
                    loggedUser.EmploymentInfo.Id            = emp.Id;
                    loggedUser.EmploymentInfo.Code          = emp.Code;
                    loggedUser.EmploymentInfo.Name          = emp.Name;
                    loggedUser.EmploymentInfo.IsAlphaMember = emp.IsAlphaMember;
                    loggedUser.EmploymentInfo.IsBetaMember  = emp.IsBetaMember;
                    loggedUser.EmploymentInfo.Membership    = _employee.GetMemberBySidc(loggedUser.CompanyCode, loggedUser.Code) ?? new MemberModel();
                    loggedUser.Company        = _settings.GetCompany(emp.CompanyCode);
                    loggedUser.PurchaseAmount = _employee.PurchaseAmount(loggedUser.CompanyCode, DateTime.Now.ToString("yyyyMM"), loggedUser.UserType, loggedUser.Code);
                    loggedUser.SalesAmount    = _employee.SalesAmount(loggedUser.CompanyCode, DateTime.Now.ToString("yyyyMM"), loggedUser.UserType, loggedUser.Code);
                }
                else
                {
                    loggedUser.Company        = _settings.GetCompany(loggedUser.Code);
                    loggedUser.PurchaseAmount = _employee.PurchaseAmount(loggedUser.Code, DateTime.Now.ToString("yyyyMM"), loggedUser.UserType, loggedUser.Code);
                    loggedUser.SalesAmount    = _employee.SalesAmount(loggedUser.Code, DateTime.Now.ToString("yyyyMM"), loggedUser.UserType, loggedUser.Code);
                }

                return(Ok(new { status = true, result = loggedUser }));
            }
            catch (InvalidException err)
            {
                return(Ok(new { status = false, result = err.Message }));
            }
            catch (Exception err)
            {
                return(BadRequest(err.Message));
            }
        }
        public bool IsDuplicated(SalesmanModel model)
        {
            var isDuplicated = _context.MstSalesmen.AsQueryable();

            if (model.Cd == 0)
            {
                isDuplicated = isDuplicated.Where(x => x.Code.ToLower().Equals(model.Code.ToLower().Trim()));
            }
            else
            {
                isDuplicated = isDuplicated.Where(x => x.Code.ToLower().Equals(model.Code.ToLower().Trim()) &&
                                                  x.Cd != model.Cd);
            }

            return(isDuplicated.Any());
        }
        private async Task <Unit> AddSelectedFutureSalesman(SalesmenAggregateModel salesmenAggregateModel)
        {
            FilteredOrganizationSalesmen.Remove(salesmenAggregateModel);

            var model = new SalesmanModel
            {
                IsPrimary    = false,
                SalesmanId   = salesmenAggregateModel.SalesmanId,
                SalesmanName = salesmenAggregateModel.SalesmanName
            };

            DistrictSalesmen.Add(new Salesman(model));

            await dataService.InsertSecondarySalesman(salesmenAggregateModel.SalesmanId, District.Model.DistrictId);

            return(Unit.Default);
        }
        private void ProcessGbCommission(SqlConnection con, SqlTransaction tran, SalesmanModel salesman, double salesAmount)
        {
            var           gbPolicy  = _policy.GbCommissionPercentage();
            SalesmanModel reference = new SalesmanModel {
                Id = salesman.Id, Code = salesman.Code, ReferenceCode = salesman.ReferenceCode, CompanyCode = salesman.CompanyCode
            };
            double personalSalesAmount, commission;
            int    level;

            for (level = 0; level < 10; level++)
            {
                if (reference == null || string.IsNullOrEmpty(reference.ReferenceCode))
                {
                    break;
                }
                personalSalesAmount = _salesman.GetSalesAmount(reference.CompanyCode, code: reference.Code);
                if (_policy.IsEligible(personalSalesAmount))
                {
                    commission = salesAmount * gbPolicy[level] / 100;
                    _salary.AddGbCommission(connection: con, transaction: tran, reference.CompanyCode, reference.Code, commission);
                }
                else
                {
                    if (level < 9)
                    {
                        gbPolicy[level + 1] += gbPolicy[level];
                    }
                }

                reference = _salesman.Get(reference.CompanyCode, reference.ReferenceCode).FirstOrDefault();
                if (reference == null)
                {
                    break;
                }
            }
            while (level < 10)
            {
                //Unpaid commisiion added to company account.
                commission = salesAmount * gbPolicy[level++] / 100;
                _salary.AddGbCommission(con, tran, null, salesman.CompanyCode, commission);
            }
        }
        public SalesmanViewModel(string username, string accountRole)
        {
            model = new SalesmanModel
            {
                closeWindow = false,
                name        = username,
                role        = accountRole,
            };

            Logout = new RelayCommand <object>(p => p != null, p =>
            {
                var target = p as SalesmanView;

                target.Hide();

                var loginView = new LoginView();
                Application.Current.MainWindow = loginView;
                loginView.Show();

                target.Close();
            });

            MinimizeWindow = new RelayCommand <object>(p => p != null, p =>
            {
                var target = p as SalesmanView;

                target.WindowState = WindowState.Minimized;
            });

            CloseWindow = new RelayCommand <object>(p => p != null, p =>
            {
                var target = p as SalesmanView;

                MyMessageBox.ShowChosen(target, "Are you sure you want to exit?", ChooseYesNo);

                if (model.closeWindow)
                {
                    target.Close();
                }
            });
        }
 public IActionResult SaveSalesman(SalesmanModel salesman)
 {
     try
     {
         if (_employee.SaveOrUpdateSalesman(salesman))
         {
             return(Ok(new { status = true, result = "Salesman Saved Successfully." }));
         }
         else
         {
             return(Ok(new { status = false, result = "Failed to save the salesman." }));
         }
     }
     catch (InvalidException err)
     {
         return(Ok(new { status = false, result = err.Message }));
     }
     catch (Exception err)
     {
         return(BadRequest(err.Message));
     }
 }
 public bool SaveOrUpdateSalesman(SalesmanModel salesman)
 {
     if (_salesman.Count(salesman.CompanyCode) > 1 && String.IsNullOrEmpty(salesman.Code))
     {
         throw new InvalidException("SIDC is required.");
     }
     if (salesman.Id == null || salesman.Id == 0)
     {
         SalesmanModel existSalesman = _salesman.Get(salesman.CompanyCode, salesman.Code).FirstOrDefault();
         if (existSalesman == null)
         {
             return(_salesman.Add(salesman));
         }
         else
         {
             throw new InvalidException($"{salesman.Code} already exist, try with another code.");
         }
     }
     else
     {
         return(_salesman.Update(salesman));
     }
 }
        public AjaxResponseModel Create(SalesmanModel model, string userId)
        {
            try
            {
                var saleman = new MstSalesman()
                {
                    Code         = model.Code.Trim(),
                    Name         = model.Name.Trim(),
                    NameKana     = model.SalemanNameKana.Trim(),
                    InsertDate   = DateTime.Now,
                    InsertUserId = userId,
                    UpdateDate   = DateTime.Now,
                    UpdateUserId = userId
                };

                Add(saleman);
                return(new AjaxResponseModel(true, null));
            }
            catch (Exception e)
            {
                return(new AjaxResponseModel(false, e.Message));
            }
        }
Esempio n. 16
0
        public bool IsEligibleForOrdinalCommission(SalesmanModel salesman)
        {
            double personalSale = _salesman.GetSalesAmount(salesman.CompanyCode, code: salesman.Code);

            if (!IsEligible(personalSale))
            {
                return(false);
            }
            double associatesSale = _salesman.GetAssociatesSalesAmount(salesman.CompanyCode, referenceCode: salesman.ReferenceCode);

            switch (salesman.Designation)
            {
            case Designation.C: {
                return(associatesSale >= 16000);
            }

            case Designation.D: {
                if (associatesSale >= 6000)
                {
                    var  associates = _salesman.GetAssociates(salesman.CompanyCode, salesman.Code, (int)Designation.C);
                    bool isEligible = false;
                    foreach (var associate in associates)
                    {
                        if (isEligible)
                        {
                            return(true);
                        }
                        isEligible = IsEligibleForOrdinalCommission(associate);
                    }
                }
                return(false);
            }

            case Designation.E: {
                if ((personalSale + associatesSale) >= 70000)
                {
                    var associatesB = _salesman.GetAssociates(salesman.CompanyCode, salesman.Code, (int)Designation.B);
                    int eligibleB   = 0;
                    foreach (var associate in associatesB)
                    {
                        if (eligibleB == 3)
                        {
                            break;
                        }
                        if (IsEligible(_salesman.GetSalesAmount(associate.CompanyCode, code: associate.Code)))
                        {
                            eligibleB++;
                        }
                    }
                    if (eligibleB == 3)
                    {
                        var associatesC = _salesman.GetAssociates(salesman.CompanyCode, salesman.Code, (int)Designation.C);
                        int eligibleC   = 0;
                        foreach (var associate in associatesC)
                        {
                            if (eligibleC == 3)
                            {
                                break;
                            }
                            if (IsEligibleForOrdinalCommission(associate))
                            {
                                eligibleC++;
                            }
                        }
                        return(eligibleC == 3);
                    }
                }
                return(false);
            }

            case Designation.F: {
                #region Checking B Eligiblity
                var associatesB = _salesman.GetAssociates(salesman.CompanyCode, salesman.Code, (int)Designation.B);
                int eligibleB   = 0;
                foreach (var associate in associatesB)
                {
                    if (eligibleB == 2)
                    {
                        break;
                    }
                    if (IsEligible(_salesman.GetSalesAmount(salesman.CompanyCode, code: associate.Code)))
                    {
                        eligibleB++;
                    }
                }
                if (eligibleB < 2)
                {
                    return(false);
                }
                #endregion

                #region #region Checking C Eligiblity
                var  associatesC = _salesman.GetAssociates(salesman.CompanyCode, salesman.Code, (int)Designation.C);
                bool eligibleC   = false;
                foreach (var associate in associatesC)
                {
                    if (eligibleC)
                    {
                        break;
                    }
                    if (IsEligibleForOrdinalCommission(associate))
                    {
                        eligibleC = true;
                    }
                }
                if (!eligibleC)
                {
                    return(false);
                }
                #endregion

                #region #region Checking E Eligiblity
                var associatesE = _salesman.GetAssociates(salesman.CompanyCode, salesman.Code, (int)Designation.E);
                int eligibleE   = 0;
                foreach (var associate in associatesE)
                {
                    if (eligibleE == 2)
                    {
                        break;
                    }
                    if (IsEligibleForOrdinalCommission(associate))
                    {
                        eligibleE++;
                    }
                }
                return(eligibleE >= 2);

                #endregion
            }

            case Designation.G: {
                var associatesE = _salesman.GetAssociates(salesman.CompanyCode, salesman.Code, (int)Designation.E);
                int eligibleE   = 0;
                foreach (var associate in associatesE)
                {
                    if (eligibleE == 4)
                    {
                        break;
                    }
                    if (IsEligibleForOrdinalCommission(associate))
                    {
                        eligibleE++;
                    }
                }
                return(eligibleE >= 4);
            }

            case Designation.H: {
                var associatesE = _salesman.GetAssociates(salesman.CompanyCode, salesman.Code, (int)Designation.E);
                int eligibleE   = 0;
                foreach (var associate in associatesE)
                {
                    if (eligibleE == 6)
                    {
                        break;
                    }
                    if (IsEligibleForOrdinalCommission(associate))
                    {
                        eligibleE++;
                    }
                }
                return(eligibleE >= 6);
            }

            case Designation.I: {
                var associatesH = _salesman.GetAssociates(salesman.CompanyCode, salesman.Code, (int)Designation.H);
                int eligibleH   = 0;
                foreach (var associate in associatesH)
                {
                    if (eligibleH == 6)
                    {
                        break;
                    }
                    if (IsEligibleForOrdinalCommission(associate))
                    {
                        eligibleH++;
                    }
                }
                return(eligibleH >= 6);
            }

            case Designation.J: {
                var associatesI = _salesman.GetAssociates(salesman.CompanyCode, salesman.Code, (int)Designation.I);
                int eligibleI   = 0;
                foreach (var associate in associatesI)
                {
                    if (eligibleI == 3)
                    {
                        break;
                    }
                    if (IsEligibleForOrdinalCommission(associate))
                    {
                        eligibleI++;
                    }
                }
                return(eligibleI >= 3);
            }

            case Designation.K: {
                var associatesJ = _salesman.GetAssociates(salesman.CompanyCode, salesman.Code, (int)Designation.J);
                int eligibleJ   = 0;
                foreach (var associate in associatesJ)
                {
                    if (eligibleJ == 2)
                    {
                        break;
                    }
                    if (IsEligibleForOrdinalCommission(associate))
                    {
                        eligibleJ++;
                    }
                }
                return(eligibleJ >= 2);
            }

            default:
                return(false);
            }
        }