You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1127 lines
54 KiB
1127 lines
54 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Data.Linq;
|
|
using System.Linq;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using DevExpress.XtraEditors;
|
|
using DevExpress.XtraGrid.Views.BandedGrid;
|
|
using DevExpress.XtraGrid.Columns;
|
|
using DevExpress.XtraGrid;
|
|
using System.IO;
|
|
using System.Threading;
|
|
using ICSSoft.Base.Language.Tool;
|
|
using ICSSoft.Base.Config.AppConfig;
|
|
using ICSSoft.Base.UserControl.MessageControl;
|
|
using ICSSoft.Base.Config.DBHelper;
|
|
using ICSSoft.Base.Report.Filter;
|
|
using ICSSoft.Base.UserControl.FormControl;
|
|
using ICSSoft.Base.Report.GridReport;
|
|
using ICSSoft.Base.ReferForm.AppReferForm;
|
|
using ICSSoft.Frame.Data.BLL;
|
|
using DevExpress.XtraPrinting;
|
|
using System.Data.SqlClient;
|
|
using ICSSoft.Frame.Data.Entity;
|
|
|
|
namespace ICSSoft.Frame.APP
|
|
{
|
|
public partial class FormICSPACKINGINPUT : DevExpress.XtraEditors.XtraForm
|
|
{
|
|
FramDataContext context = new FramDataContext(AppConfig.AppConnectString);
|
|
List<string> MOCode = new List<string>();
|
|
List<string> MOBITEMCODE = new List<string>();
|
|
List<string> TransNO = new List<string>();
|
|
List<string> MOBITE_MCODE = new List<string>();
|
|
public string TransferNO = "";
|
|
private string sqltxt = "";
|
|
private string sqlconn = "";
|
|
String guid = AppConfig.GetGuid();
|
|
private DataTable dataSource = null;
|
|
|
|
#region 构造函数
|
|
public FormICSPACKINGINPUT()
|
|
{
|
|
InitializeComponent();
|
|
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
|
|
this.WindowState = FormWindowState.Maximized;
|
|
}
|
|
#endregion
|
|
|
|
#region 操作权限
|
|
public DataTable RightOfExute()
|
|
{
|
|
DataTable rData = new DataTable();
|
|
rData.Columns.Add("BtnName");
|
|
rData.Columns.Add("ActionName");
|
|
//查看权限(必须有)
|
|
DataRow seeRow = rData.NewRow();
|
|
seeRow["BtnName"] = "see";
|
|
seeRow["ActionName"] = "查看";
|
|
rData.Rows.Add(seeRow);
|
|
List<Control> ControlList = new List<Control>();
|
|
ControlList.Add(btnModify);
|
|
ControlList.Add(btnOutPut);
|
|
ControlList.Add(btnShow);
|
|
ControlList.Add(btnSave);
|
|
ControlList.Add(btnDel);
|
|
foreach (Control ctr in ControlList)
|
|
{
|
|
if (ctr.GetType() == typeof(SimpleButton))
|
|
{
|
|
DataRow dr = rData.NewRow();
|
|
dr["BtnName"] = ctr.Name;
|
|
dr["ActionName"] = ctr.Text;
|
|
rData.Rows.Add(dr);
|
|
}
|
|
}
|
|
rData.AcceptChanges();
|
|
return rData;
|
|
}
|
|
|
|
public DataTable RightOfData()// 数据权限
|
|
{
|
|
DataTable rData = new DataTable();
|
|
rData.Columns.Add("BodyName");
|
|
rData.Columns.Add("ControlName");
|
|
rData.Columns.Add("ControlCaption");
|
|
rData.AcceptChanges();
|
|
return rData;
|
|
}
|
|
#endregion
|
|
|
|
#region 退出
|
|
private void btnClose_Click(object sender, EventArgs e)
|
|
{
|
|
AppConfig.CloseFormShow(this.Text);
|
|
this.Close();
|
|
}
|
|
|
|
private void btnExit_Click(object sender, EventArgs e)
|
|
{
|
|
AppConfig.CloseFormShow(this.Text);
|
|
this.Close();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 移动窗体
|
|
private const int WM_NCHITTEST = 0x84;
|
|
private const int HTCLIENT = 0x1;
|
|
private const int HTCAPTION = 0x2;
|
|
//首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
|
|
//系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
|
|
//假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
|
|
//同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
|
|
|
|
//重写窗体,使窗体可以不通过自带标题栏实现移动
|
|
protected override void WndProc(ref Message m)
|
|
{
|
|
//当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
|
|
//当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
|
|
//这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
|
|
//注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
|
|
switch (m.Msg)
|
|
{
|
|
case WM_NCHITTEST:
|
|
base.WndProc(ref m);
|
|
if ((int)m.Result == HTCLIENT)
|
|
m.Result = (IntPtr)HTCAPTION;
|
|
return;
|
|
}
|
|
//拦截双击标题栏、移动窗体的系统消息
|
|
if (m.Msg != 0xA3)
|
|
{
|
|
base.WndProc(ref m);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 列表
|
|
private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
|
|
{
|
|
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
|
|
e.Info.DisplayText = (e.RowHandle + 1).ToString();
|
|
}
|
|
#endregion
|
|
|
|
#region 过滤
|
|
private string tempTableName = "";
|
|
private void btnFilter_Click(object sender, EventArgs e)
|
|
{
|
|
FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name));
|
|
filter.OldTempTableName = tempTableName;
|
|
if (filter.ShowDialog() == DialogResult.OK)
|
|
{
|
|
DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
|
|
try
|
|
{
|
|
_wait.Show();
|
|
tempTableName = filter.NewTempTableName;
|
|
sqltxt = filter.SqlText;
|
|
sqlconn = filter.FilterConnectString;
|
|
dataSource = filter.FilterData.Tables[0];
|
|
grdDetail.DataSource = dataSource;
|
|
grvDetail.BestFitColumns();
|
|
_wait.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
_wait.Close();
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 绑定数据源
|
|
private void btnConfig_Click(object sender, EventArgs e)
|
|
{
|
|
if (AppConfig.UserCode.ToLower() != "demo")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("您没有权限设置数据源,请联系软件提供商!");
|
|
return;
|
|
}
|
|
FormDataSource fdata = new FormDataSource(AppConfig.GetMenuId(this.Tag.ToString()), btnConfig.Name);
|
|
fdata.ShowDialog();
|
|
}
|
|
#endregion
|
|
|
|
#region 过滤方法
|
|
private void FormContainerManager_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
AppConfig.DropTemTable(tempTableName);
|
|
}
|
|
#endregion
|
|
|
|
#region 全选
|
|
private void btnSelectAll_Click(object sender, EventArgs e)
|
|
{
|
|
grvDetail.PostEditor();
|
|
this.Validate();
|
|
for (int i = 0; i < grvDetail.RowCount; i++)
|
|
{
|
|
grvDetail.SetRowCellValue(i, colisSelect, "Y");
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 全消
|
|
private void btnCancelAll_Click(object sender, EventArgs e)
|
|
{
|
|
grvDetail.PostEditor();
|
|
this.Validate();
|
|
for (int i = 0; i < grvDetail.RowCount; i++)
|
|
{
|
|
grvDetail.SetRowCellValue(i, colisSelect, "");
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 双击
|
|
private void grvDetail_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
if (grvDetail.FocusedRowHandle < 0)
|
|
{
|
|
return;
|
|
}
|
|
if (grvDetail.FocusedColumn == colisSelect)
|
|
{
|
|
if (grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colisSelect).ToString() == "")
|
|
{
|
|
grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "Y");
|
|
}
|
|
else
|
|
{
|
|
grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "");
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 导出
|
|
private void btnOutPut_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
FormOutExcel foe = new FormOutExcel(this.Tag.ToString(), grdDetail);
|
|
foe.ShowDialog();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
//FormOutExcel foe = new FormOutExcel();
|
|
//if (foe.ShowDialog() == DialogResult.OK)
|
|
//{
|
|
// try
|
|
// {
|
|
// string outtype = foe._OutType;
|
|
// string exceltype = foe._ExcelType;
|
|
// string filename = foe._FileName;
|
|
// string url = foe._Url;
|
|
// string sheetname = foe._SheetName;
|
|
// if (outtype.ToLower() == "excel")
|
|
// {
|
|
// DevExpress.XtraPrinting.XlsExportOptions op = new DevExpress.XtraPrinting.XlsExportOptions();
|
|
// op.SheetName = sheetname;
|
|
// grdDetail.MainView.ExportToXls((url + "\\" + filename + (exceltype == "2003" ? ".xls" : ".xlsx")), op);
|
|
// gridViewGroup.MainView.ExportToXls((url + "\\" + filename + (exceltype == "2003" ? ".xls" : ".xlsx")), op);
|
|
// }
|
|
// else
|
|
// {
|
|
// grdDetail.MainView.ExportToPdf(url + "\\" + filename + ".pdf");
|
|
// gridViewGroup.MainView.ExportToPdf(url + "\\" + filename + ".pdf");
|
|
// }
|
|
// MessageBox.Show("导出成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
// }
|
|
//}
|
|
}
|
|
#endregion
|
|
|
|
#region 刷新
|
|
private void btnRefresh_Click(object sender, EventArgs e)
|
|
{
|
|
if (sqlconn == null || sqlconn == "")
|
|
{
|
|
return;
|
|
}
|
|
gridViewGroup.DataSource = null;
|
|
DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
|
|
try
|
|
{
|
|
_wait.Show();
|
|
FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name), false);
|
|
filter.OldTempTableName = tempTableName;
|
|
dataSource = DBHelper.ExecuteDataset(sqlconn, CommandType.Text, sqltxt).Tables[0];
|
|
grdDetail.DataSource = dataSource;
|
|
grvDetail.BestFitColumns();
|
|
_wait.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
_wait.Close();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 修改
|
|
private void btnModify_Click(object sender, EventArgs e)
|
|
{
|
|
SimpleButton btntemp = (SimpleButton)sender;
|
|
if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
|
|
return;
|
|
}
|
|
|
|
DataTable dt = null;
|
|
if (grvViewGroup.DataSource.GetType().Name == "DataView")
|
|
{
|
|
dt = ((DataView)grvViewGroup.DataSource).ToTable();
|
|
}
|
|
else if (grvViewGroup.DataSource.GetType().Name == "DataTable")
|
|
{
|
|
dt = ((DataTable)grvViewGroup.DataSource);
|
|
}
|
|
if (dt == null || dt.Rows.Count == 0)
|
|
{
|
|
return;
|
|
}
|
|
#region 修改逻辑
|
|
//MOBITEMCODE.Clear();
|
|
//for (int i = 0; i < dt.Rows.Count;i++ )
|
|
//{
|
|
// MOBITEMCODE.Add(dt.Rows[i]["MOBITEMCODE"].ToString());
|
|
//}
|
|
//FormICSPACKINGINPUTADD add = new FormICSPACKINGINPUTADD(MOBITEMCODE);
|
|
#endregion
|
|
#region 现逻辑
|
|
TransNO.Clear();
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
if (!TransNO.Contains(dt.Rows[i]["TransferNO"].ToString()))
|
|
{
|
|
TransNO.Add(dt.Rows[i]["TransferNO"].ToString());
|
|
}
|
|
}
|
|
FormICSPACKINGINPUTADD add = new FormICSPACKINGINPUTADD(TransNO);
|
|
#endregion
|
|
add.ShowDialog();
|
|
this.show();
|
|
}
|
|
#endregion
|
|
|
|
#region 打印
|
|
private void btnPrint_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
this.grvDetail.OptionsView.RowAutoHeight = true;
|
|
PrintingSystem print = new DevExpress.XtraPrinting.PrintingSystem();
|
|
PrintableComponentLink link = new PrintableComponentLink(print);
|
|
DevExpress.XtraPrintingLinks.CompositeLink compositeLink = new DevExpress.XtraPrintingLinks.CompositeLink();
|
|
print.Links.Add(link);
|
|
link.Component = grdDetail;//这里可以是可打印的部件
|
|
link.Margins.Top = 50;
|
|
link.Margins.Bottom = 0;
|
|
link.Margins.Left = 0;
|
|
link.Margins.Right = 0;
|
|
string _PrintHeader = lblTitle.Text;
|
|
PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;
|
|
phf.Header.Content.Clear();
|
|
phf.Header.Content.AddRange(new string[] { "", _PrintHeader, "" });
|
|
phf.Header.Font = new System.Drawing.Font("宋体", 14, System.Drawing.FontStyle.Bold);
|
|
phf.Header.LineAlignment = BrickAlignment.Center;
|
|
link.CreateDocument(); //建立文档
|
|
print.PreviewFormEx.Show();//进行预览
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.ToString());
|
|
}
|
|
try
|
|
{
|
|
this.grvViewGroup.OptionsView.RowAutoHeight = true;
|
|
PrintingSystem print = new DevExpress.XtraPrinting.PrintingSystem();
|
|
PrintableComponentLink link = new PrintableComponentLink(print);
|
|
DevExpress.XtraPrintingLinks.CompositeLink compositeLink = new DevExpress.XtraPrintingLinks.CompositeLink();
|
|
print.Links.Add(link);
|
|
link.Component = gridViewGroup;//这里可以是可打印的部件
|
|
link.Margins.Top = 50;
|
|
link.Margins.Bottom = 0;
|
|
link.Margins.Left = 0;
|
|
link.Margins.Right = 0;
|
|
string _PrintHeader = lblTitle.Text;
|
|
PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;
|
|
phf.Header.Content.Clear();
|
|
phf.Header.Content.AddRange(new string[] { "", _PrintHeader, "" });
|
|
phf.Header.Font = new System.Drawing.Font("宋体", 14, System.Drawing.FontStyle.Bold);
|
|
phf.Header.LineAlignment = BrickAlignment.Center;
|
|
link.CreateDocument(); //建立文档
|
|
print.PreviewFormEx.Show();//进行预览
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.ToString());
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
private void show()
|
|
{
|
|
string sql = @"SELECT * FROM ICSPACKINGINPUT where TransferNO='" + TransferNO + "' order by TransferLineNo ";
|
|
sql = string.Format(sql, TransferNO);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
gridViewGroup.DataSource = dt;
|
|
}
|
|
|
|
private void ICSItemLot_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
AppConfig.DropTemTable(tempTableName);
|
|
}
|
|
|
|
private void FormICSPACKINGINPUT_Load(object sender, EventArgs e)
|
|
{
|
|
btnFilter_Click(sender, e);
|
|
}
|
|
|
|
private void grvDetail_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
|
|
{
|
|
if (e.RowHandle >= 0 && e.Column.FieldName == "DCTCODE")
|
|
{
|
|
e.CellValue = "cccc";
|
|
}
|
|
}
|
|
|
|
public void SearchX(string DocNo)
|
|
{
|
|
try
|
|
{
|
|
context = new FramDataContext(AppConfig.AppConnectString);
|
|
List<ICSMO> mos = new List<ICSMO>();
|
|
List<ICSPACKINGINPUT> puts = new List<ICSPACKINGINPUT>();
|
|
List<ICSPACKINGINPUTLog> logs = new List<ICSPACKINGINPUTLog>();
|
|
Dictionary<string, string> dit = new Dictionary<string, string>();//键值对,工单单号+行号
|
|
for (int i = 0; i < grvDetail.RowCount; i++)
|
|
{
|
|
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
|
|
{
|
|
dit.Add(grvDetail.GetRowCellValue(i, colMOCODE).ToString(), grvDetail.GetRowCellValue(i, colMOSEQ).ToString());
|
|
}
|
|
}
|
|
//不判断重复
|
|
//获取MO详细信息
|
|
foreach (string key in dit.Keys)
|
|
{
|
|
var hasMo = context.ICSMO.SingleOrDefault(a => a.MOCODE == key && a.MOSEQ == dit[key].ToString());
|
|
if (hasMo == null)
|
|
throw new Exception("单号:" + key + " 行号:" + dit[key].ToString() + " 不存在!");
|
|
|
|
ICSMO mo = new ICSMO();
|
|
mo.MOCODE = key;
|
|
mo.MOSEQ = dit[key].ToString();
|
|
mo.MOPLANQTY = hasMo.MOPLANQTY;
|
|
mo.ITEMCODE = hasMo.ITEMCODE;
|
|
mos.Add(mo);
|
|
}
|
|
|
|
//汇总子件信息
|
|
int sign = 0;
|
|
foreach (ICSMO mo in mos)
|
|
{
|
|
var boms =
|
|
from a in context.ICSMOBOM where a.ITEMCODE == mo.ITEMCODE && a.MOCODE == mo.MOCODE select a;
|
|
|
|
// context.ICSMOBOM.Where(a=>a.ITEMCODE==mo.ITEMCODE&&a.MOCODE==mo.MOCODE);
|
|
foreach (ICSMOBOM bom in boms)
|
|
{
|
|
bool b = false;
|
|
foreach (ICSPACKINGINPUT iput in puts)
|
|
{
|
|
if (bom.MOBITEMCODE == iput.MOBITEMCODE)
|
|
{
|
|
iput.MOBITEMQTY += bom.MOBITEMQTY;
|
|
b = true;
|
|
}
|
|
}
|
|
if (b) continue;
|
|
|
|
sign++;
|
|
var inv = context.ICSINVENTORY.SingleOrDefault(a => a.INVCODE == bom.MOBITEMCODE);
|
|
if (inv == null) throw new Exception("料号:" + bom.MOBITEMCODE + " 在ICSINVENTORY表中不存在");
|
|
ICSPACKINGINPUT put = new ICSPACKINGINPUT();
|
|
put.ID = AppConfig.GetGuid();
|
|
put.TransferNO = DocNo;
|
|
put.TransferLineNo = sign.ToString();
|
|
put.MOBITEMCODE = bom.MOBITEMCODE;
|
|
put.MOBITEMQTY = bom.MOBITEMQTY;
|
|
put.CINVNAME = inv.INVNAME;
|
|
put.CINVTYPE = inv.INVTYPE;
|
|
put.INVUOM = inv.INVUOM;
|
|
put.Status = "开立";
|
|
put.MUSER = AppConfig.UserCode;
|
|
put.MUSERName = AppConfig.UserName;
|
|
put.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
|
|
puts.Add(put);
|
|
|
|
ICSPACKINGINPUTLog log = new ICSPACKINGINPUTLog();
|
|
log.ID = AppConfig.GetGuid();
|
|
log.TransferNO = DocNo;
|
|
log.MOCODE = mo.MOCODE;
|
|
log.MOBITEMCODE = bom.MOBITEMCODE;
|
|
log.CINVNAME = inv.INVNAME;
|
|
log.CINVTYPE = inv.INVTYPE;
|
|
log.INVUOM = inv.INVUOM;
|
|
log.MUSER = AppConfig.UserCode;
|
|
log.MUSERName = AppConfig.UserName;
|
|
log.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
|
|
log.MOBITEMQTY = put.MOBITEMQTY;
|
|
logs.Add(log);
|
|
}
|
|
}
|
|
|
|
//插入数据
|
|
context.Connection.Open();
|
|
context.Transaction = context.Connection.BeginTransaction();
|
|
foreach (ICSPACKINGINPUT put in puts)
|
|
{
|
|
context.ICSPACKINGINPUT.InsertOnSubmit(put);
|
|
context.SubmitChanges();
|
|
}
|
|
foreach (ICSPACKINGINPUTLog log in logs)
|
|
{
|
|
context.ICSPACKINGINPUTLog.InsertOnSubmit(log);
|
|
context.SubmitChanges();
|
|
}
|
|
context.Transaction.Commit();
|
|
|
|
string sql = @"SELECT * FROM ICSPACKINGINPUT where TransferNO='" + DocNo + "' order by TransferLineNo ";
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
gridViewGroup.DataSource = dt;
|
|
grvViewGroup.BestFitColumns();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
|
|
public void Search()
|
|
{
|
|
DataTable dt = new DataTable();
|
|
DataTable ds = new DataTable();
|
|
dt.Clear();
|
|
ds.Clear();
|
|
MOCode.Clear();
|
|
MOBITEMCODE.Clear();
|
|
for (int i = 0; i < grvDetail.RowCount; i++)
|
|
{
|
|
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
|
|
{
|
|
MOCode.Add(grvDetail.GetRowCellValue(i, colMOCODE).ToString());
|
|
}
|
|
}
|
|
if (MOCode.Count <= 1)
|
|
{
|
|
try
|
|
{
|
|
string sql = @"SELECT c.MOCODE,
|
|
c.MOBITEMCODE,
|
|
c.CINVNAME,
|
|
c.CINVTYPE,
|
|
c.INVUOM,
|
|
CAST(ISNULL(c.MOBITEMQTY, 0) AS DECIMAL(18,2)) AS MOBITEMQTY,
|
|
ISNULL(d.QTYXBC, 0) AS QTYXBC
|
|
FROM
|
|
(SELECT
|
|
a.MOCODE,
|
|
a.MOBITEMCODE,
|
|
b.INVNAME AS CINVNAME,
|
|
b.INVSTD AS CINVTYPE,
|
|
b.INVUOM,
|
|
b.INVMACHINETYPE,
|
|
SUM(a.MOBITEMQTY*e.MOPLANQTY) AS MOBITEMQTY
|
|
FROM ICSMOBOM a
|
|
LEFT JOIN ICSINVENTORY b ON a.MOBITEMCODE = b.INVCODE AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN ICSMO e ON a.MOCODE = e.MOCODE AND a.SEQ=e.MOSEQ AND a.WorkPoint=e.WorkPoint
|
|
WHERE a.MOCODE = '{0}' AND a.WorkPoint = '{1}'
|
|
GROUP BY a.MOCODE,a.MOBITEMCODE,b.INVNAME,b.INVSTD,b.INVUOM,b.INVMACHINETYPE) c
|
|
LEFT JOIN (SELECT INVCode,WHCode,SUM(LotQty) AS QTYXBC FROM ICSWareHouseLotInfo WHERE WorkPoint='{1}' GROUP BY INVCode,WHCode) d ON c.MOBITEMCODE=d.INVCode AND c.INVMACHINETYPE=d.WHCode
|
|
ORDER BY c.MOBITEMCODE";
|
|
sql = string.Format(sql, grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colMOCODE).ToString(), AppConfig.WorkPointCode);
|
|
dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
MOBITEMCODE.Add(dr["MOBITEMCODE"].ToString());
|
|
}
|
|
if (!this.Insert(grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colMOCODE).ToString()))
|
|
{
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
SqlConnection conn = new SqlConnection(AppConfig.AppConnectString);
|
|
SqlCommand com = conn.CreateCommand();
|
|
SqlTransaction tran;
|
|
conn.Open();
|
|
tran = conn.BeginTransaction();
|
|
com.Transaction = tran;
|
|
try
|
|
{
|
|
string sqlText = @"insert into ICSPACKINGINPUT (TransferNO, MOBITEMCODE, CINVNAME, CINVTYPE, INVUOM, MUSER, MUSERName, MTIME, MOBITEMQTY, Status)
|
|
values (@TransferNO, @MOBITEMCODE, @CINVNAME, @CINVTYPE, @MUSER, @MUSER, @MUSERName, @MTIME, @MOBITEMQTY, '开立')";
|
|
com.CommandText = sqlText;
|
|
com.Parameters.Clear();
|
|
com.Parameters.AddWithValue("@TransferNO", TransferNO);
|
|
com.Parameters.AddWithValue("@MOBITEMCODE", dr["MOBITEMCODE"].ToString());
|
|
com.Parameters.AddWithValue("@CINVNAME", dr["CINVNAME"].ToString());
|
|
com.Parameters.AddWithValue("@CINVTYPE", dr["CINVTYPE"].ToString());
|
|
com.Parameters.AddWithValue("@INVUOM", dr["INVUOM"].ToString());
|
|
com.Parameters.AddWithValue("@Muser", AppConfig.UserName);
|
|
com.Parameters.AddWithValue("@MUSERName", AppConfig.UserName);
|
|
com.Parameters.AddWithValue("@Mtime", DateTime.Now.ToString());
|
|
com.Parameters.AddWithValue("@MOBITEMQTY", dr["MOBITEMQTY"].ToString());
|
|
com.ExecuteNonQuery();
|
|
tran.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
tran.Rollback();
|
|
throw ex;
|
|
}
|
|
}
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
SqlConnection conn = new SqlConnection(AppConfig.AppConnectString);
|
|
SqlCommand com = conn.CreateCommand();
|
|
SqlTransaction tran;
|
|
conn.Open();
|
|
tran = conn.BeginTransaction();
|
|
com.Transaction = tran;
|
|
try
|
|
{
|
|
string sqlText = @"insert into ICSPACKINGINPUTLog (TransferNO, MOCODE, MOBITEMCODE, CINVNAME, CINVTYPE, INVUOM, MUSER, MUSERName, MTIME, MOBITEMQTY)
|
|
values (@TransferNO, @MOCODE, @MOBITEMCODE, @CINVNAME, @CINVTYPE, @MUSER, @MUSER, @MUSERName, @MTIME, @MOBITEMQTY)";
|
|
com.CommandText = sqlText;
|
|
com.Parameters.Clear();
|
|
com.Parameters.AddWithValue("@TransferNO", TransferNO);
|
|
com.Parameters.AddWithValue("@MOCODE", dr["MOCODE"].ToString());
|
|
com.Parameters.AddWithValue("@MOBITEMCODE", dr["MOBITEMCODE"].ToString());
|
|
com.Parameters.AddWithValue("@CINVNAME", dr["CINVNAME"].ToString());
|
|
com.Parameters.AddWithValue("@CINVTYPE", dr["CINVTYPE"].ToString());
|
|
com.Parameters.AddWithValue("@INVUOM", dr["INVUOM"].ToString());
|
|
com.Parameters.AddWithValue("@Muser", AppConfig.UserName);
|
|
com.Parameters.AddWithValue("@MUSERName", AppConfig.UserName);
|
|
com.Parameters.AddWithValue("@Mtime", DateTime.Now.ToString());
|
|
com.Parameters.AddWithValue("@MOBITEMQTY", dr["MOBITEMQTY"].ToString());
|
|
com.ExecuteNonQuery();
|
|
tran.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
tran.Rollback();
|
|
throw ex;
|
|
}
|
|
}
|
|
gridViewGroup.DataSource = this.InsertX(grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colMOCODE).ToString());
|
|
}
|
|
else
|
|
{
|
|
gridViewGroup.DataSource = this.InsertX(grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colMOCODE).ToString());
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string where = "";
|
|
for (int i = 0; i < MOCode.Count; i++)
|
|
{
|
|
if (i == 0)
|
|
{
|
|
where = MOCode[0];
|
|
}
|
|
else
|
|
{
|
|
where += "' or a.MOCODE ='" + MOCode[i] + " ";
|
|
}
|
|
}
|
|
try
|
|
{
|
|
for (int i = 0; i < MOCode.Count; i++)
|
|
{
|
|
if (!this.Insert(MOCode[i]))
|
|
{
|
|
if (i == 0)
|
|
{
|
|
try
|
|
{
|
|
string sqltxt = @"SELECT X.MOBITEMCODE, X.CINVNAME, X.CINVTYPE, X.INVUOM, SUM(X.MOBITEMQTY) AS MOBITEMQTY FROM
|
|
(SELECT c.MOCODE,
|
|
c.MOBITEMCODE,
|
|
c.CINVNAME,
|
|
c.CINVTYPE,
|
|
c.INVUOM,
|
|
CAST(ISNULL(c.MOBITEMQTY, 0) AS DECIMAL(18,2)) AS MOBITEMQTY,
|
|
ISNULL(d.QTYXBC, 0) AS QTYXBC
|
|
FROM
|
|
(SELECT
|
|
a.MOCODE,
|
|
a.MOBITEMCODE,
|
|
b.INVNAME AS CINVNAME,
|
|
b.INVSTD AS CINVTYPE,
|
|
b.INVUOM,
|
|
b.INVMACHINETYPE,
|
|
SUM(a.MOBITEMQTY*e.MOPLANQTY) AS MOBITEMQTY
|
|
FROM ICSMOBOM a
|
|
LEFT JOIN ICSINVENTORY b ON a.MOBITEMCODE = b.INVCODE AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN ICSMO e ON a.MOCODE = e.MOCODE AND a.SEQ=e.MOSEQ AND a.WorkPoint=e.WorkPoint
|
|
WHERE (a.MOCODE = '{0}') AND a.WorkPoint = '{1}'
|
|
GROUP BY a.MOCODE,a.MOBITEMCODE,b.INVNAME,b.INVSTD,b.INVUOM,b.INVMACHINETYPE) c
|
|
LEFT JOIN (SELECT INVCode,WHCode,SUM(LotQty) AS QTYXBC FROM ICSWareHouseLotInfo WHERE WorkPoint='{1}' GROUP BY INVCode,WHCode) d ON c.MOBITEMCODE=d.INVCode AND c.INVMACHINETYPE=d.WHCode) X
|
|
GROUP BY X.MOBITEMCODE, X.CINVNAME, X.CINVTYPE, X.INVUOM";
|
|
sqltxt = string.Format(sqltxt, MOCode[i], AppConfig.WorkPointCode);
|
|
dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqltxt).Tables[0];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
MOBITEMCODE.Add(dr["MOBITEMCODE"].ToString());
|
|
}
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
SqlConnection conn = new SqlConnection(AppConfig.AppConnectString);
|
|
SqlCommand com = conn.CreateCommand();
|
|
SqlTransaction tran;
|
|
conn.Open();
|
|
tran = conn.BeginTransaction();
|
|
com.Transaction = tran;
|
|
try
|
|
{
|
|
string sqlText = @"insert into ICSPACKINGINPUT (TransferNO, MOBITEMCODE, CINVNAME, CINVTYPE, INVUOM, MUSER, MUSERName, MTIME, MOBITEMQTY, Status)
|
|
values (@TransferNO, @MOBITEMCODE, @CINVNAME, @CINVTYPE, @MUSER, @MUSER, @MUSERName, @MTIME, @MOBITEMQTY, '开立')";
|
|
com.CommandText = sqlText;
|
|
com.Parameters.Clear();
|
|
com.Parameters.AddWithValue("@TransferNO", TransferNO);
|
|
com.Parameters.AddWithValue("@MOBITEMCODE", dr["MOBITEMCODE"].ToString());
|
|
com.Parameters.AddWithValue("@CINVNAME", dr["CINVNAME"].ToString());
|
|
com.Parameters.AddWithValue("@CINVTYPE", dr["CINVTYPE"].ToString());
|
|
com.Parameters.AddWithValue("@INVUOM", dr["INVUOM"].ToString());
|
|
com.Parameters.AddWithValue("@Muser", AppConfig.UserName);
|
|
com.Parameters.AddWithValue("@MUSERName", AppConfig.UserName);
|
|
com.Parameters.AddWithValue("@Mtime", DateTime.Now.ToString());
|
|
com.Parameters.AddWithValue("@MOBITEMQTY", dr["MOBITEMQTY"].ToString());
|
|
com.ExecuteNonQuery();
|
|
tran.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
tran.Rollback();
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
else if (MOCode[i - 1] != MOCode[i])
|
|
{
|
|
try
|
|
{
|
|
string sqltxt = @"SELECT X.MOBITEMCODE, X.CINVNAME, X.CINVTYPE, X.INVUOM, SUM(X.MOBITEMQTY) AS MOBITEMQTY FROM
|
|
(SELECT c.MOCODE,
|
|
c.MOBITEMCODE,
|
|
c.CINVNAME,
|
|
c.CINVTYPE,
|
|
c.INVUOM,
|
|
CAST(ISNULL(c.MOBITEMQTY, 0) AS DECIMAL(18,2)) AS MOBITEMQTY,
|
|
ISNULL(d.QTYXBC, 0) AS QTYXBC
|
|
FROM
|
|
(SELECT
|
|
a.MOCODE,
|
|
a.MOBITEMCODE,
|
|
b.INVNAME AS CINVNAME,
|
|
b.INVSTD AS CINVTYPE,
|
|
b.INVUOM,
|
|
b.INVMACHINETYPE,
|
|
SUM(a.MOBITEMQTY*e.MOPLANQTY) AS MOBITEMQTY
|
|
FROM ICSMOBOM a
|
|
LEFT JOIN ICSINVENTORY b ON a.MOBITEMCODE = b.INVCODE AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN ICSMO e ON a.MOCODE = e.MOCODE AND a.SEQ=e.MOSEQ AND a.WorkPoint=e.WorkPoint
|
|
WHERE (a.MOCODE = '{0}') AND a.WorkPoint = '{1}'
|
|
GROUP BY a.MOCODE,a.MOBITEMCODE,b.INVNAME,b.INVSTD,b.INVUOM,b.INVMACHINETYPE) c
|
|
LEFT JOIN (SELECT INVCode,WHCode,SUM(LotQty) AS QTYXBC FROM ICSWareHouseLotInfo WHERE WorkPoint='{1}' GROUP BY INVCode,WHCode) d ON c.MOBITEMCODE=d.INVCode AND c.INVMACHINETYPE=d.WHCode) X
|
|
GROUP BY X.MOBITEMCODE, X.CINVNAME, X.CINVTYPE, X.INVUOM";
|
|
sqltxt = string.Format(sqltxt, MOCode[i], AppConfig.WorkPointCode);
|
|
dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqltxt).Tables[0];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
MOBITEMCODE.Add(dr["MOBITEMCODE"].ToString());
|
|
}
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
SqlConnection conn = new SqlConnection(AppConfig.AppConnectString);
|
|
SqlCommand com = conn.CreateCommand();
|
|
SqlTransaction tran;
|
|
conn.Open();
|
|
tran = conn.BeginTransaction();
|
|
com.Transaction = tran;
|
|
try
|
|
{
|
|
string sqlText = @"insert into ICSPACKINGINPUT (TransferNO, MOBITEMCODE, CINVNAME, CINVTYPE, INVUOM, MUSER, MUSERName, MTIME, MOBITEMQTY, Status)
|
|
values (@TransferNO, @MOBITEMCODE, @CINVNAME, @CINVTYPE, @MUSER, @MUSER, @MUSERName, @MTIME, @MOBITEMQTY, '开立')";
|
|
com.CommandText = sqlText;
|
|
com.Parameters.Clear();
|
|
com.Parameters.AddWithValue("@TransferNO", TransferNO);
|
|
com.Parameters.AddWithValue("@MOBITEMCODE", dr["MOBITEMCODE"].ToString());
|
|
com.Parameters.AddWithValue("@CINVNAME", dr["CINVNAME"].ToString());
|
|
com.Parameters.AddWithValue("@CINVTYPE", dr["CINVTYPE"].ToString());
|
|
com.Parameters.AddWithValue("@INVUOM", dr["INVUOM"].ToString());
|
|
com.Parameters.AddWithValue("@Muser", AppConfig.UserName);
|
|
com.Parameters.AddWithValue("@MUSERName", AppConfig.UserName);
|
|
com.Parameters.AddWithValue("@Mtime", DateTime.Now.ToString());
|
|
com.Parameters.AddWithValue("@MOBITEMQTY", dr["MOBITEMQTY"].ToString());
|
|
com.ExecuteNonQuery();
|
|
tran.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
tran.Rollback();
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
try
|
|
{
|
|
string sqltxt = @"SELECT X.MOBITEMCODE, X.CINVNAME, X.CINVTYPE, X.INVUOM, SUM(X.MOBITEMQTY) AS MOBITEMQTY FROM
|
|
(SELECT c.MOCODE,
|
|
c.MOBITEMCODE,
|
|
c.CINVNAME,
|
|
c.CINVTYPE,
|
|
c.INVUOM,
|
|
CAST(ISNULL(c.MOBITEMQTY, 0) AS DECIMAL(18,2)) AS MOBITEMQTY,
|
|
ISNULL(d.QTYXBC, 0) AS QTYXBC
|
|
FROM
|
|
(SELECT
|
|
a.MOCODE,
|
|
a.MOBITEMCODE,
|
|
b.INVNAME AS CINVNAME,
|
|
b.INVSTD AS CINVTYPE,
|
|
b.INVUOM,
|
|
b.INVMACHINETYPE,
|
|
SUM(a.MOBITEMQTY*e.MOPLANQTY) AS MOBITEMQTY
|
|
FROM ICSMOBOM a
|
|
LEFT JOIN ICSINVENTORY b ON a.MOBITEMCODE = b.INVCODE AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN ICSMO e ON a.MOCODE = e.MOCODE AND a.SEQ=e.MOSEQ AND a.WorkPoint=e.WorkPoint
|
|
WHERE (a.MOCODE = '{0}') AND a.WorkPoint = '{1}'
|
|
GROUP BY a.MOCODE,a.MOBITEMCODE,b.INVNAME,b.INVSTD,b.INVUOM,b.INVMACHINETYPE) c
|
|
LEFT JOIN (SELECT INVCode,WHCode,SUM(LotQty) AS QTYXBC FROM ICSWareHouseLotInfo WHERE WorkPoint='{1}' GROUP BY INVCode,WHCode) d ON c.MOBITEMCODE=d.INVCode AND c.INVMACHINETYPE=d.WHCode) X
|
|
GROUP BY X.MOBITEMCODE, X.CINVNAME, X.CINVTYPE, X.INVUOM";
|
|
sqltxt = string.Format(sqltxt, MOCode[i], AppConfig.WorkPointCode);
|
|
dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqltxt).Tables[0];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
MOBITEMCODE.Add(dr["MOBITEMCODE"].ToString());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
try
|
|
{
|
|
for (int i = 0; i < MOCode.Count; i++)
|
|
{
|
|
if (!this.Insert(MOCode[i]))
|
|
{
|
|
try
|
|
{
|
|
string sqltxt = @"SELECT c.MOCODE,
|
|
c.MOBITEMCODE,
|
|
c.CINVNAME,
|
|
c.CINVTYPE,
|
|
c.INVUOM,
|
|
CAST(ISNULL(c.MOBITEMQTY, 0) AS DECIMAL(18,2)) AS MOBITEMQTY,
|
|
ISNULL(d.QTYXBC, 0) AS QTYXBC
|
|
FROM
|
|
(SELECT
|
|
a.MOCODE,
|
|
a.MOBITEMCODE,
|
|
b.INVNAME AS CINVNAME,
|
|
b.INVSTD AS CINVTYPE,
|
|
b.INVUOM,
|
|
b.INVMACHINETYPE,
|
|
SUM(a.MOBITEMQTY*e.MOPLANQTY) AS MOBITEMQTY
|
|
FROM ICSMOBOM a
|
|
LEFT JOIN ICSINVENTORY b ON a.MOBITEMCODE = b.INVCODE AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN ICSMO e ON a.MOCODE = e.MOCODE AND a.SEQ=e.MOSEQ AND a.WorkPoint=e.WorkPoint
|
|
WHERE (a.MOCODE = '{0}') AND a.WorkPoint = '{1}'
|
|
GROUP BY a.MOCODE,a.MOBITEMCODE,b.INVNAME,b.INVSTD,b.INVUOM,b.INVMACHINETYPE) c
|
|
LEFT JOIN (SELECT INVCode,WHCode,SUM(LotQty) AS QTYXBC FROM ICSWareHouseLotInfo WHERE WorkPoint='{1}' GROUP BY INVCode,WHCode) d ON c.MOBITEMCODE=d.INVCode AND c.INVMACHINETYPE=d.WHCode
|
|
ORDER BY c.MOBITEMCODE";
|
|
sqltxt = string.Format(sqltxt, MOCode[i], AppConfig.WorkPointCode);
|
|
dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqltxt).Tables[0];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
MOBITEMCODE.Add(dr["MOBITEMCODE"].ToString());
|
|
}
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
SqlConnection conn = new SqlConnection(AppConfig.AppConnectString);
|
|
SqlCommand com = conn.CreateCommand();
|
|
SqlTransaction tran;
|
|
conn.Open();
|
|
tran = conn.BeginTransaction();
|
|
com.Transaction = tran;
|
|
try
|
|
{
|
|
string sqlText = @"insert into ICSPACKINGINPUTLog (TransferNO, MOCODE, MOBITEMCODE, CINVNAME, CINVTYPE, INVUOM, MUSER, MUSERName, MTIME, MOBITEMQTY)
|
|
values (@TransferNO, @MOCODE, @MOBITEMCODE, @CINVNAME, @CINVTYPE, @MUSER, @MUSER, @MUSERName, @MTIME, @MOBITEMQTY)";
|
|
com.CommandText = sqlText;
|
|
com.Parameters.Clear();
|
|
com.Parameters.AddWithValue("@TransferNO", TransferNO);
|
|
com.Parameters.AddWithValue("@MOCODE", dr["MOCODE"].ToString());
|
|
com.Parameters.AddWithValue("@MOBITEMCODE", dr["MOBITEMCODE"].ToString());
|
|
com.Parameters.AddWithValue("@CINVNAME", dr["CINVNAME"].ToString());
|
|
com.Parameters.AddWithValue("@CINVTYPE", dr["CINVTYPE"].ToString());
|
|
com.Parameters.AddWithValue("@INVUOM", dr["INVUOM"].ToString());
|
|
com.Parameters.AddWithValue("@Muser", AppConfig.UserName);
|
|
com.Parameters.AddWithValue("@MUSERName", AppConfig.UserName);
|
|
com.Parameters.AddWithValue("@Mtime", DateTime.Now.ToString());
|
|
com.Parameters.AddWithValue("@MOBITEMQTY", dr["MOBITEMQTY"].ToString());
|
|
com.ExecuteNonQuery();
|
|
tran.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
tran.Rollback();
|
|
throw ex;
|
|
}
|
|
}
|
|
}
|
|
dt = this.InsertX(MOCode[i]);
|
|
ds.Merge(dt);
|
|
}
|
|
DataView dv = new DataView(ds);
|
|
string[] strComuns = { "TransferNO", "MOBITEMCODE", "CINVNAME", "CINVTYPE", "INVUOM", "MOBITEMQTY", "Status" };
|
|
ds = dv.ToTable(true, strComuns);
|
|
gridViewGroup.DataSource = ds;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void btnShow_Click(object sender, EventArgs e)
|
|
{
|
|
TransferNO = this.GetTransferNO();
|
|
this.SearchX(TransferNO);
|
|
}
|
|
|
|
private string GetTransferNO()
|
|
{
|
|
string time=DateTime.Now.ToString("yyMMdd");;
|
|
context = new FramDataContext(AppConfig.AppConnectString);
|
|
var no = context.ICSPACKINGINPUT.Where(a => a.TransferNO.StartsWith("T2" + time)).Max(c=>c.TransferNO);
|
|
if (no == null)
|
|
return TransferNO = "T2" + time + "001";
|
|
else
|
|
return TransferNO = "T" + (Decimal.Parse(no.Substring(1, no.Length - 1)) + 1).ToString();
|
|
#region
|
|
//string sql = @"SELECT A.TransferNO FROM ICSPACKINGINPUT A";
|
|
//sql = string.Format(sql);
|
|
//DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
//if (dt != null && dt.Rows.Count > 0)
|
|
//{
|
|
// sql = @"SELECT MAX(A.TransferNO) AS TransferNO FROM ICSPACKINGINPUT A";
|
|
// sql = string.Format(sql);
|
|
// dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
// if (dt != null && dt.Rows.Count > 0)
|
|
// {
|
|
// TransferNO = dt.Rows[0]["TransferNO"].ToString();
|
|
// }
|
|
// if (TransferNO.Length == 10)
|
|
// {
|
|
// return TransferNO = TransferNO.Substring(0, 8) + (Decimal.Parse(TransferNO.Substring(8, 2)) + 1).ToString();
|
|
// }
|
|
// else
|
|
// {
|
|
// return TransferNO = "T" + (Decimal.Parse(TransferNO.Substring(1, TransferNO.Length - 1)) + 1).ToString();
|
|
// }
|
|
//}
|
|
//else
|
|
//{
|
|
// return TransferNO = "T2" + DateTime.Now.ToString("yyyyMMddHHmmss").Substring(2, 6) + "01";
|
|
//}
|
|
#endregion
|
|
}
|
|
|
|
private void btnTrans_Click(object sender, EventArgs e)
|
|
{
|
|
if (grvViewGroup.DataSource == null)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("生成的调拨单物料信息不能为空");
|
|
return;
|
|
}
|
|
DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在生成调拨单请稍等...");
|
|
try
|
|
{
|
|
for (int i = 0; i < grvViewGroup.RowCount; i++)
|
|
{
|
|
string sql = @"update ICSPACKINGINPUT set TransferNO = '{0}' where 1=1 and MOBITEMCODE='" + grvViewGroup.GetRowCellValue(i, colMOBITEMCODE1).ToString() + "'";
|
|
sql = string.Format(sql, TransferNO);
|
|
DBHelper.ExecuteNonQuery(AppConfig.AppConnectString, CommandType.Text, sql);
|
|
}
|
|
for (int i = 0; i < grvViewGroup.RowCount; i++)
|
|
{
|
|
string sql = @"update ICSPACKINGINPUTLog set TransferNO = '{0}' where 1=1 and MOBITEMCODE='" + grvViewGroup.GetRowCellValue(i, colMOBITEMCODE1).ToString() + "'";
|
|
sql = string.Format(sql, TransferNO);
|
|
DBHelper.ExecuteNonQuery(AppConfig.AppConnectString, CommandType.Text, sql);
|
|
}
|
|
_wait.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_wait.Close();
|
|
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
|
|
}
|
|
}
|
|
|
|
private bool Insert(string MOCODE)
|
|
{
|
|
bool insert = false;
|
|
string sql = @"SELECT C.TransferNO, C.MOBITEMCODE, C.CINVNAME, C.CINVTYPE, C.INVUOM, C.MOBITEMQTY
|
|
FROM ICSPACKINGINPUTLog C WHERE C.MOCODE = '{0}'";
|
|
sql = string.Format(sql, MOCODE);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
insert = true;
|
|
}
|
|
return insert;
|
|
}
|
|
|
|
private DataTable InsertX(string MOCODE)
|
|
{
|
|
string sql = @"SELECT A.TransferNO, A.MOBITEMCODE, A.CINVNAME, A.CINVTYPE, A.INVUOM, A.MOBITEMQTY, A.Status
|
|
FROM ICSPACKINGINPUT A WHERE A.TransferNO IN (SELECT B.TransferNO FROM ICSPACKINGINPUTLog B WHERE B.MOCODE = '{0}')";
|
|
sql = string.Format(sql, MOCODE);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
return dt;
|
|
}
|
|
|
|
private void btnSave_Click(object sender, EventArgs e)
|
|
{
|
|
SimpleButton btntemp = (SimpleButton)sender;
|
|
if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
|
|
return;
|
|
}
|
|
#region 另一逻辑
|
|
//List<string> Trans = new List<string>();
|
|
//for (int i = 0; i < grvViewGroup.RowCount; i++)
|
|
//{
|
|
// if (i == 0)
|
|
// {
|
|
// Trans.Add(grvViewGroup.GetRowCellValue(i, colTransferNO).ToString());
|
|
// }
|
|
// else
|
|
// {
|
|
// if (grvViewGroup.GetRowCellValue(i - 1, colTransferNO).ToString() != grvViewGroup.GetRowCellValue(i, colTransferNO).ToString())
|
|
// {
|
|
// Trans.Add(grvViewGroup.GetRowCellValue(i, colTransferNO).ToString());
|
|
// }
|
|
// }
|
|
//}
|
|
//FormICSPACKINGINPUTIN add = new FormICSPACKINGINPUTIN(Trans);
|
|
#endregion
|
|
FormICSPACKINGINPUTIN add = new FormICSPACKINGINPUTIN();
|
|
add.ShowDialog();
|
|
}
|
|
|
|
private void btnDel_Click(object sender, EventArgs e)
|
|
{
|
|
SimpleButton btntemp = (SimpleButton)sender;
|
|
if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
|
|
return;
|
|
}
|
|
FormICSPACKINGINPUTOUT add = new FormICSPACKINGINPUTOUT();
|
|
add.ShowDialog();
|
|
}
|
|
}
|
|
}
|