using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data;

namespace SiaSun.LMS.WPFClient.MANAGE
{
    public partial class MANAGE_MOVE_XIAOLIAO : AvalonDock.DocumentContent
    {
        public MANAGE_MOVE_XIAOLIAO()
        {
            InitializeComponent();
        }

        private void BtnSave_Click(object sender, RoutedEventArgs e)
        {
            bool bResult = true;
            string sResult = string.Empty;
            if (string.IsNullOrEmpty(this.tbStock_barcode.Text))
            {
                MessageBox.Show("托盘条码为空");
                return;
            }
            int iZupanCellID = 0;
            DataTable dtZupan = MainApp._I_BaseService.GetList("select CELL_ID from WH_CELL where CELL_CODE='99999'");
            if (dtZupan.Rows.Count == 0)
            {
                MessageBox.Show("未找到组盘区");
                return;
            }
            else
            {
                iZupanCellID = Convert.ToInt32(dtZupan.Rows[0]["CELL_ID"]);
            }

            if (!Common.RegexValid.GetCodeCheck(this.tbStock_barcode.Text, "StockCodeCheck"))
            {
                MessageBox.Show("托盘条码规则不正确");
                return;
            }
            DataTable gOODS_MAIN = MainApp._I_BaseService.GetList("select GOODS_ID from goods_main where goods_code = 'GTP'");
            if (gOODS_MAIN == null || gOODS_MAIN.Rows.Count < 1)
            {
                MessageBox.Show("母托盘物料信息不存在");
                return;
            }
            Model.MANAGE_MAIN mANAGE_MAIN = new Model.MANAGE_MAIN();
            Model.MANAGE_LIST mANAGE_LIST = new Model.MANAGE_LIST();
            List<SiaSun.LMS.Model.MANAGE_LIST> lsMANAGE_LIST = new List<Model.MANAGE_LIST>();
            mANAGE_MAIN.STOCK_BARCODE = this.tbStock_barcode.Text;
            mANAGE_MAIN.MANAGE_TYPE_CODE = "ManageIn";
            mANAGE_MAIN.MANAGE_OPERATOR = MainApp._USER.USER_NAME;
            mANAGE_MAIN.MANAGE_BEGIN_TIME = Common.StringUtil.GetDateTime();
            mANAGE_MAIN.MANAGE_STATUS = "Waiting";
            mANAGE_MAIN.START_CELL_ID = iZupanCellID;
            mANAGE_MAIN.END_CELL_ID = 0;
            mANAGE_LIST.GOODS_ID = Convert.ToInt32(gOODS_MAIN.Rows[0]["GOODS_ID"].ToString());
            mANAGE_LIST.MANAGE_ID = 0;
            mANAGE_LIST.MANAGE_LIST_QUANTITY = 1;
            mANAGE_LIST.PLAN_LIST_ID = 0;
            mANAGE_LIST.STORAGE_LIST_ID = 0;
            lsMANAGE_LIST.Add(mANAGE_LIST);
            bResult = MainApp._I_BaseService.Invoke("ManageIn", "ManageCreate",
                new object[] {
                    mANAGE_MAIN,
                    lsMANAGE_LIST,
                    true,//事务
                    true,//检查库存
                    true,//是否完成
                    false//是否下达任务
                }, out sResult);

            if (bResult)
            {
                MessageBox.Show("输送成功");
                BtnClear_Click(null, null);
                return;
            }
            else
            {
                MessageBox.Show(sResult);
                return;
            }
        }

        private void BtnClear_Click(object sender, RoutedEventArgs e)
        {
            this.tbStock_barcode.Text = string.Empty;
            this.tbStock_barcode.Focus();
        }

        private void tbStock_barcode_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                if (string.IsNullOrWhiteSpace(this.tbStock_barcode.Text))
                {
                    return;
                }
                this.tbStock_barcode.Text = this.tbStock_barcode.Text.ToUpper();
                BtnSave_Click(null, null);
            }
        }
    }
}