コード例 #1
0
        private IList <Movement> Movements(IList <Detail> details, IList <StockMap> stocksGeneral, Guid cellarId, Guid userId, Guid adjustmentId, string company)
        {
            //Movimiento
            IList <Movement> movements        = new List <Movement>();
            var          lastmov              = _adjustmentManager.GetNextMovementNumber(company);
            double       montoTotalInventario = stocksGeneral.Sum(a => a.GetAmountInStock());
            double       montoTotalBodega     = stocksGeneral.Where(a => a.CellarId == cellarId).Sum(a => a.GetAmountInStock());
            double       stockMovement        = 0;
            TypeMovement temp = TypeMovement.Input;

            foreach (var item in details)
            {
                var stockListCellar = _adjustmentManager.GetStocksList(company, cellarId, item.AssetId);
                var articuloExistenciaInventarioArticulo = stockListCellar.Where(a => a.AssetId == item.AssetId);
                var articuloExistenciaBodega             = articuloExistenciaInventarioArticulo.FirstOrDefault(a => a.CellarId == cellarId);

                double cntAnteriorExistenciaBodegaMigrado = articuloExistenciaBodega.GetStockItemsQty();
                double cntAntExisteciasInvMigrado         = articuloExistenciaInventarioArticulo.Sum(a => a.GetStockItemsQty());

                // Montos antes del movimiento en todo el inventario
                double montoAnteriorExistenciaBodega = articuloExistenciaBodega.GetAmountInStock();
                double montoAntExistenciasInv        = articuloExistenciaInventarioArticulo.Sum(a => a.GetAmountInStock());

                // Monto en todo el inventario y bodega
                double previousGeneralInvAmount   = montoTotalInventario;
                double previousGeneralStockAmount = montoTotalBodega;

                if (cntAnteriorExistenciaBodegaMigrado > item.StockAsset)
                {
                    stockMovement = cntAntExisteciasInvMigrado - item.StockAsset;
                    temp          = TypeMovement.Output;
                }
                else if (cntAnteriorExistenciaBodegaMigrado < item.StockAsset)
                {
                    stockMovement = item.StockAsset - cntAntExisteciasInvMigrado;
                    temp          = TypeMovement.Input;
                }


                var @entity = Movement.Create(lastmov, stockMovement, item.Price, _dateTime.Now,
                                              StatusMovement.AplicadoInventario, temp, MovementCategory.Adjustment, cntAnteriorExistenciaBodegaMigrado, montoAnteriorExistenciaBodega, cntAntExisteciasInvMigrado, montoAntExistenciasInv,
                                              previousGeneralInvAmount, previousGeneralStockAmount, cellarId, item.AssetId, userId, null, null, adjustmentId, null, userId, _dateTime.Now, company);

                if (cntAnteriorExistenciaBodegaMigrado > item.StockAsset)
                {
                    montoTotalInventario -= @entity.GetAmountMovement(); //Actualiza monto inventario
                    montoTotalBodega     -= @entity.GetAmountMovement(); //Actualiza monto bodega
                }
                else
                {
                    montoTotalInventario += @entity.GetAmountMovement(); //Actualiza monto inventario
                    montoTotalBodega     += @entity.GetAmountMovement(); //Actualiza monto bodega
                }


                movements.Add(@entity);
            }

            return(movements);
        }
コード例 #2
0
    /// <summary>
    /// Добавление движения в очередь
    /// </summary>
    /// <param name="move">Движение</param>
    public void AddMovement(TypeMovement move)
    {
        //Если : очередь полна - ничего не предпринимать
        if (_Queue.Count == 2)
        {
            return;
        }

        if (move == TypeMovement.Up)
        {
            MainManager.Audio.PlayFrontMoveSound();
        }
        else
        {
            MainManager.Audio.PlaySideMoveSound();
        }

        _Queue.Enqueue(move);

        //Добавлено первое движение на выполнение
        if (_Queue.Count == 1)
        {
            SwitchMovement(_Queue.Peek());
        }
    }
コード例 #3
0
 public void AddPositions(List <Vector2> positions)
 {
     if (_positions == null)
     {
         _positions = new List <Vector2>();
     }
     _positions.AddRange(positions);
     _typeMovement    = TypeMovement.POSITION;
     _positionReached = true;
 }
コード例 #4
0
ファイル: Movement.cs プロジェクト: Lookichev/Movie
    /// <summary>
    /// Добавление движения в очередь
    /// </summary>
    /// <param name="move">Движение</param>
    public void AddMovement(TypeMovement move)
    {
        //Если : очередь полна - ничего не предпринимать
        if (_Queue.Count == 2)
        {
            return;
        }

        _Queue.Enqueue(move);

        //Добавлено первое движение на выполнение
        if (_Queue.Count == 1)
        {
            SwitchMovement(_Queue.Peek());
        }
    }
コード例 #5
0
ファイル: Movement.cs プロジェクト: Lookichev/Movie
    /// <summary>
    /// Изменение координаты прибытия
    /// </summary>
    /// <param name="move">Движение</param>
    private void SwitchMovement(TypeMovement move)
    {
        switch (move)
        {
        case TypeMovement.Left:
            //Если : персонаж у левого края - не выполнять это движение
            if (_Position - 1 == -4)
            {
                _Queue.Dequeue();
            }
            else
            {
                _Position -= 1;
            }
            break;

        case TypeMovement.Right:
            //Если : персонаж у правого края - не выполнять это движение
            if (_Position + 1 == 4)
            {
                _Queue.Dequeue();
            }
            else
            {
                _Position += 1;
            }
            break;

        case TypeMovement.Up:
            //Если : движение вверх, то задать импульс
            _Rigidbody.velocity = Vector3.zero;
            if (move == TypeMovement.Up)
            {
                _Rigidbody.AddForce(new Vector3(0, Force, 0), ForceMode.Impulse);
            }
            MainManager.Interface.NextStep();
            break;
        }
    }
コード例 #6
0
ファイル: MainWindow.xaml.cs プロジェクト: luarca84/Snake
        private void NuevoJuego()
        {
            timer.Stop();

            movimiento = TypeMovement.Right;

            snake = new List<Point>();
            snake.Add(new Point(CTE_SIDE * 10, CTE_SIDE));
            snake.Add(new Point(CTE_SIDE * 10, CTE_SIDE * 2));
            snake.Add(new Point(CTE_SIDE * 10, CTE_SIDE * 3));
            snake.Add(new Point(CTE_SIDE * 10, CTE_SIDE * 4));

            food = new List<Point>();
            for (int i = 0; i < NUM_FOOD; i++)
                food.Add(new Point(CTE_SIDE * r.Next(0, 30), CTE_SIDE * r.Next(0, 30)));

            timer.Start();
        }
コード例 #7
0
ファイル: MainWindow.xaml.cs プロジェクト: luarca84/Snake
 private void MainWindow_KeyDown(object sender, KeyEventArgs e)
 {
     if (Keyboard.IsKeyDown(Key.Up))
         movimiento = TypeMovement.Up;
     if (Keyboard.IsKeyDown(Key.Down))
         movimiento = TypeMovement.Down;
     if (Keyboard.IsKeyDown(Key.Left))
         movimiento = TypeMovement.Left;
     if (Keyboard.IsKeyDown(Key.Right))
         movimiento = TypeMovement.Right;
 }
コード例 #8
0
        public static Movement Create(int numberMovement, double stock, double price, DateTime aplicationDate, StatusMovement status, TypeMovement type,
                                      MovementCategory movementCategory, double previosCellarQty, double previousCellarAmount, double previousCellarStockQtyInv, double previousCellarStockAmountInv,
                                      double previousGeneralInvAmount, double previousGeneralStockAmount, Guid cellarId, Guid assetId, Guid?userId, Guid?inRequestId,
                                      Guid?outRequestId, Guid?adjustmentId, Guid?projectId, Guid creatorid, DateTime createDateTime, string companyName)
        {
            var @movement = new Movement
            {
                Id                           = Guid.NewGuid(),
                MovementNumber               = numberMovement,
                StockMovement                = stock,
                Price                        = price,
                ApplicationDateTime          = aplicationDate,
                Status                       = status,
                TypeMovement                 = type,
                MovementCategory             = movementCategory,
                PreviosCellarQty             = previosCellarQty,
                PreviousCellarAmount         = previousCellarAmount,
                PreviousCellarStockQtyInv    = previousCellarStockQtyInv,
                PreviousCellarStockAmountInv = previousCellarStockAmountInv,
                PreviousGeneralInvAmount     = previousGeneralInvAmount,
                PreviousGeneralStockAmount   = previousGeneralStockAmount,
                CellarId                     = cellarId,
                AssetId                      = assetId,
                UserId                       = userId,
                InRequestId                  = inRequestId,
                OutRequestId                 = outRequestId,
                AdjustmentId                 = adjustmentId,
                ProjectId                    = projectId,
                CreationTime                 = createDateTime,
                CreatorUserId                = creatorid,
                CompanyName                  = companyName,
                IsDeleted                    = false
            };

            return(@movement);
        }