Пример #1
0
        private void executeRemoveQuantity()
        {
            if (FocusedRow == null)
            {
                _eventAggregator.PublishOnUIThread(new StatusEvent(this, "No asset selected"));
                return;
            }
            var vm = new AssetRemoveQuantityDialogViewModel(FocusedRow);

            vm.Quantity = Math.Abs(FocusedRow.CalculatedQuantity);
            if (_windowManager.ShowDialog(vm).GetValueOrDefault() && vm.Quantity > 0)
            {
                var newQuantity = FocusedRow.CalculatedQuantity - vm.Quantity;
                if (newQuantity < 0)
                {
                    _eventAggregator.PublishOnUIThread(new StatusEvent(this, "New quantity cannot be less than zero"));
                    return;
                }
                if (newQuantity <= 0)
                {
                    newQuantity             = 0;
                    FocusedRow.BrokerFees   = 0;
                    FocusedRow.MaterialCost = 0;
                }
                else
                {
                    FocusedRow.BrokerFees   = (FocusedRow.BrokerFees / FocusedRow.CalculatedQuantity) * newQuantity;
                    FocusedRow.MaterialCost = (FocusedRow.MaterialCost / FocusedRow.CalculatedQuantity) * newQuantity;
                }
                FocusedRow.CalculatedQuantity = newQuantity;
                var mod = new AssetModification();
                mod.Quantity    = 0 - vm.Quantity;
                mod.Description = vm.Description;
                mod.Date        = vm.Date;
                mod.AssetId     = FocusedRow.Asset.Id;
                mod.PostModificationQuantity = newQuantity;
                _assetManagerService.AddModification(mod);
                FocusedRow.AssetModifications.Add(mod);
            }
        }
Пример #2
0
        private void executeAddQuantity()
        {
            if (FocusedRow == null)
            {
                _eventAggregator.PublishOnUIThread(new StatusEvent(this, "No asset selected"));
                return;
            }
            var vm = new AssetAddQuantityDialogViewModel(FocusedRow);

            if (_windowManager.ShowDialog(vm).GetValueOrDefault() && vm.Quantity > 0)
            {
                FocusedRow.MaterialCost       += vm.TransactionCost;
                FocusedRow.CalculatedQuantity += vm.Quantity;
                var mod = new AssetModification();
                mod.AssetId     = FocusedRow.Asset.Id;
                mod.Quantity    = vm.Quantity;
                mod.Description = vm.Description;
                mod.Date        = vm.Date;
                mod.PostModificationQuantity = FocusedRow.CalculatedQuantity;
                mod.TransactionValue         = vm.TransactionCost;
                _assetManagerService.AddModification(mod);
                FocusedRow.AssetModifications.Add(mod);
            }
        }
Пример #3
0
 public Transaction(string guid, AssetModification state, long timestamp)
     : this(guid, (int)state, timestamp)
 {
 }
Пример #4
0
 public Transaction(string guid, AssetModification state)
     : this(guid, (int)state)
 {
 }
Пример #5
0
 public void AddModification(AssetModification modification)
 {
     Db.Context.AssetModifications.Add(modification);
 }