using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections.Specialized;
namespace  DeiNiu.Wms.CE
{
    public partial class LocationStockCompare :basicForm
    {
        #region 界面初始化
   
        DataTable dt = new DataTable();
        public LocationStockCompare()
        {
            InitializeComponent();
        }
        #endregion
        /// 
        /// 定义清除界面数据方法
        /// 
        private void clear()
        {
            setTitle();
            locationid_lab.Text = name_lab.Text = spea_lab.Text = company_lab.Text = erpcount_lab.Text =
                wmscount_lab.Text =  "";
            dg1.DataSource = new DataTable();
        }
        /// 
        /// 扫描货位触发事件
        /// 
        /// 
        /// 
        private void locationid_txt_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                locationid_lab.Text = locationid_txt.Text;
                locationid_txt.Text = "";
                string goodsCode = useLoc ? "" : locationid_lab.Text;
                string goodsId = "";
                try
                {
                    DataTable dta = null;
                    if (useLoc)
                    {
                        dta = client.getStockLocation(locationid_lab.Text);
                        if (dta.Rows.Count > 0)
                        {
                            goodsCode = dta.Rows[0]["barcode"].ToString();
                            goodsId = dta.Rows[0]["goodsId"].ToString();
                        }
                    }
                    else
                    {
                        dta = client.getStockLocationsByBarcode(locationid_lab.Text);
                    }
                    if (dta.Rows.Count>0 && !string.IsNullOrEmpty(goodsCode+goodsId))
                    {
                        name_lab.Text = dta.Rows[0]["spec"].ToString();
                        spea_lab.Text = dta.Rows[0]["type"].ToString();
                        company_lab.Text = dta.Rows[0]["manufacturer"].ToString();
                        Cursor.Current = Cursors.WaitCursor;
                        dt = client.getStockCompareErp(goodsId, goodsCode);
                        Cursor.Current = Cursors.Default;
                        dg1.DataSource = dt;
                        DataRow[] row = dt.Select("来源='wms'");
                        double sum = 0;
                        foreach (DataRow dr in row)
                        {
                            sum = sum + Convert.ToDouble(dr["数量"].ToString());
                        }
                        wmscount_lab.Text = sum.ToString() + dta.Rows[0]["unit"].ToString();
                         sum = 0;
                        DataRow[] rower = dt.Select("来源='erp'");
                        foreach (DataRow d in rower)
                        {
                            sum = sum + Convert.ToDouble(d["数量"].ToString());
                        }
                        erpcount_lab.Text = sum.ToString() + dta.Rows[0]["unit"].ToString();
                        if (wmscount_lab.Text != erpcount_lab.Text)
                        {
                            wmscount_lab.ForeColor = Color.Red;
                            erpcount_lab.ForeColor = Color.Red;
                        }
                        else
                        {
                            wmscount_lab.ForeColor = Color.Black;
                            erpcount_lab.ForeColor = Color.Black;
                        }
                        DataGridTableStyle dts = new DataGridTableStyle();
                        dts.MappingName = dt.TableName;
                        dg1.TableStyles.Add(dts);
                        dg1.TableStyles[0].GridColumnStyles["来源"].Width = 38;
                        dg1.TableStyles[0].GridColumnStyles["货位"].Width = 70;
                        dg1.TableStyles[0].GridColumnStyles["批号"].Width = 60;
                        dg1.TableStyles[0].GridColumnStyles["生产日期"].Width = 75;
                        dg1.TableStyles[0].GridColumnStyles["有效期至"].Width = 75;
                    }
                    else
                    {
                        clear();
                    }
                 
                }
                catch(Exception er)
                {
                    MessageBox.Show(er.Message.ToString());
                    Cursor.Current = Cursors.Default;
                }
            }
        }
        bool useLoc = true;
        private void rdLoc_CheckedChanged(object sender, EventArgs e)
        {
            useLoc = rdLoc.Checked;
            locationid_txt.Text ="";
            locationid_txt.Focus();
        }
        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            useLoc = rdLoc.Checked;
            locationid_txt.Text = "";
            locationid_txt.Focus();
        }
    }
}