InOutDevice_Static.cs 1.5 KB
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DeviceLibrary
{
    partial class InOutDevice
    {
        public static bool GetInStoreWaitSide(out InOutSideE inOutSide, out InOutDevice iod, bool dontCheckPosid = false)
        {

            inOutSide = InOutSideE.Left;
            iod = null;
            for (int i = 0; i < InOutDeviceList.Count; i++)
            {
                var ioddic = InOutDeviceList.ElementAt(i);
                var InMoveInfo = ioddic.Value.MoveInfo;
                if (InMoveInfo.MoveStep >= MoveStep.StartInStore && InMoveInfo.MoveStep <= MoveStep.InWaitBoxLeave && (!string.IsNullOrEmpty(InMoveInfo.MoveParam.PosID)|| dontCheckPosid))
                {
                    inOutSide = ioddic.Key;
                    iod = ioddic.Value;
                    return true;
                }
            }

            return false;
        }
        public static bool GetOutStoreFreeSide(out InOutSideE inOutSide, out InOutDevice iod)
        {
            inOutSide = InOutSideE.Left;
            iod = null;
            for (int i = 0; i < InOutDeviceList.Count; i++)
            {
                var ioddic = InOutDeviceList.ElementAt(i);
                if (!ioddic.Value.CanOut())
                    continue;

                inOutSide = ioddic.Key;
                iod = ioddic.Value;
                return true;
            }

            return false;
        }
    }
}