Exemplo n.º 1
0
        public void Build(SalesRecord salesRecord, IEnumerable <Price> prices, ProductCategory category, int batchId)
        {
            _logger.Info($"Processing Ramaining: {salesRecord.Remaining}");
            while (true)
            {
                var item = prices.OrderBy(p => p.UnitPrice).FirstOrDefault(p => p.Category == category && p.UnitPrice > salesRecord.Remaining);
                if (item == null)
                {
                    _logger.Info($"Couldn't find best price item, now try to pick again.");

                    var picker = _categoryPickers.Single(p => p.Category == category);

                    picker.Build(salesRecord, prices, salesRecord.Remaining, batchId);
                }
                else
                {
                    var pickedItem = new OutputPrice()
                    {
                        BatchId   = batchId,
                        Service   = item.Service,
                        UnitPrice = salesRecord.Remaining,
                        Category  = item.Category,
                        Quantity  = 1,
                        Discount  = item.UnitPrice - salesRecord.Remaining
                    };

                    salesRecord.AddPrice(pickedItem);
                    _logger.Info(
                        $"Remaining picker picked item: {pickedItem.Service} price: {pickedItem.UnitPrice} " +
                        $"after discount {pickedItem.Discount} remaining: {salesRecord.Remaining}");
                    return;
                }
            }
        }
Exemplo n.º 2
0
 private void ClearButConv_Click(object sender, EventArgs e)
 {
     inputDistance.Clear();
     OutputPrice.Clear();
     PriceLabel.Text          = "";
     intakeLabel.Text         = "";
     FuelBox.SelectedItem     = default;
     VehiclesBox.SelectedItem = default;
 }
Exemplo n.º 3
0
        private string GetOutputString(DateTime date, OutputPrice outputPrice, OutputType outputType)
        {
            if (outputType == OutputType.Card)
            {
                return
                    ($"{date.ToShortDateString()},{outputPrice.Service},{outputPrice.UnitPrice},,{outputType.ToString()}");
            }

            if (outputType == OutputType.Cash)
            {
                return
                    ($"{date.ToShortDateString()},{outputPrice.Service},,{outputPrice.UnitPrice},{outputType.ToString()}");
            }

            throw new Exception($"OutputType: {outputType.ToString()} does not exist.");
        }