public void TestSellOfShare()
        {
            var shares = new List <EmployeeShare>();

            shares.Add(new EmployeeShare()
            {
                GrantPrice    = .45M,
                NumberOfUnits = 1000,
                VestDate      = DateTime.Now.AddDays(-10)
            });

            var bonus = new EmployeeBonus();

            bonus.BonusDate  = DateTime.Now.AddDays(10);
            bonus.Multiplier = 1.5M;

            var shareSell = new EmployeeSale();

            shareSell.Quantity        = 500;
            shareSell.SaleDate        = DateTime.Now;
            shareSell.MarketSellPrice = 1.00M;

            var bonuslist = new List <EmployeeBonus>();

            bonuslist.Add(bonus);

            var result = shareSell.CalculateSale(shares, bonuslist);

            Assert.IsTrue(result == 275);
        }
Example #2
0
        public BaseRecord GetRecord(string type, CsvReader csvReader)
        {
            switch (type)
            {
            case "VEST":
                var newShareRecord = new EmployeeShare
                {
                    Action        = csvReader.GetField <string>(0),
                    EmployeeId    = csvReader.GetField <string>(1),
                    VestDate      = ParseExactDate(csvReader.GetField <string>(2)),
                    NumberOfUnits = csvReader.GetField <int>(3),
                    GrantPrice    = csvReader.GetField <decimal>(4)
                };
                return(newShareRecord);

            case "PERF":
                var employeeBonus = new EmployeeBonus
                {
                    Action     = csvReader.GetField <string>(0),
                    EmployeeId = csvReader.GetField <string>(1),
                    BonusDate  = ParseExactDate(csvReader.GetField <string>(2)),
                    Multiplier = csvReader.GetField <decimal>(3)
                };
                return(employeeBonus);

            case "SALE":
                var employeeSale = new EmployeeSale
                {
                    Action          = csvReader.GetField <string>(0),
                    EmployeeId      = csvReader.GetField <string>(1),
                    SaleDate        = ParseExactDate(csvReader.GetField <string>(2)),
                    Quantity        = csvReader.GetField <int>(3),
                    MarketSellPrice = csvReader.GetField <decimal>(4)
                };
                return(employeeSale);

            default:
                throw new InvalidInputException("Row type not supported.");
            }
        }
Example #3
0
        public void AddControlEmployeeBillFlowLayoutPanel()
        {
            flowLayoutPanelEmployee.Controls.Clear();
            for (int i = 0; i < salesOperation.SelectEmployeeProducts().Rows.Count; i++)
            {
                Button b = new Button
                {
                    Name                  = salesOperation.SelectEmployeeProducts().Rows[i][0].ToString(),
                    BackgroundImage       = Image.FromFile(salesOperation.SelectEmployeeProducts().Rows[i][3].ToString()),
                    BackgroundImageLayout = ImageLayout.Stretch,
                    Height                = 100,
                    Width                 = 100,
                    Font                  = new Font(FontFamily.GenericMonospace, 18, FontStyle.Bold),
                };


                flowLayoutPanelEmployee.Controls.Add(b);
                b.Click += (s, e) =>
                {
                    if (s is Button button)
                    {
                        if (!string.IsNullOrWhiteSpace(txtEmployeeBillID.Text))
                        {
                            var selectedProduct = salesOperation.SelectEmployeeProducts(Convert.ToInt32(button.Name));
                            if (selectedProduct.Rows.Count > 0)
                            {
                                Receipt obj = new Receipt
                                {
                                    Id          = employeeBillOrder++,
                                    ProductName = selectedProduct.Rows[0][1].ToString(),
                                    Price       = Convert.ToInt32(selectedProduct.Rows[0][4].ToString()),
                                    Quantity    = 1
                                };
                                employeeBillTotal += obj.Price * obj.Quantity;
                                receiptBindingSource.Add(obj);
                                receiptBindingSource.MoveLast();
                                txtTotalEmployeeBill.Text = string.Format("RS {0}", employeeBillTotal);
                                EmployeeSale employeeSale = new EmployeeSale
                                {
                                    E_ID        = Convert.ToInt32(txtEmployeeBillID.Text),
                                    ProductName = obj.ProductName,
                                    Quantity    = obj.Quantity.ToString(),
                                    SaleDate    = DateTime.Now.ToShortDateString(),
                                    Total       = obj.Total.ToString()
                                };
                                employeeSalesToSendInDB.Add(employeeSale);
                            }
                        }
                    }
                };

                Label l = new Label
                {
                    Height  = 100,
                    Width   = 150,
                    Padding = new Padding(12),
                    Text    = "Name: " + salesOperation.SelectEmployeeProducts().Rows[i][1].ToString() + "\n price:" + salesOperation.SelectEmployeeProducts().Rows[i][4].ToString(),

                    Name = "lbl" + salesOperation.SelectEmployeeProducts().Rows[i][0].ToString(),
                };
                flowLayoutPanelEmployee.Controls.Add(l);
            }



            flowLayoutPanelEmployee.AutoScroll = true;
        }