|
|
@ -2,6 +2,7 @@ |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.ComponentModel; |
|
|
|
using System.Data; |
|
|
|
using System.Data.OleDb; |
|
|
|
using System.Drawing; |
|
|
|
using System.Text; |
|
|
|
using System.Windows.Forms; |
|
|
@ -94,42 +95,48 @@ namespace Stone.WinModule.Standard |
|
|
|
btnUpload.Click += BtnUpload_Click; |
|
|
|
this.toolStrip1.Items.Insert(0, btnUpload); |
|
|
|
|
|
|
|
ToolStripButton btnPrintRe = new ToolStripButton("补打ASN"); |
|
|
|
btnPrintRe.Image = this.imageList1.Images[0]; |
|
|
|
btnPrintRe.TextImageRelation = TextImageRelation.ImageAboveText; |
|
|
|
btnPrintRe.Click += new EventHandler(btnPrintRe_Click); |
|
|
|
this.toolStrip1.Items.Insert(0, btnPrintRe); |
|
|
|
|
|
|
|
ToolStripButton btnPrint = new ToolStripButton("打印ASN"); |
|
|
|
btnPrint.Image = this.imageList1.Images[0]; |
|
|
|
btnPrint.TextImageRelation = TextImageRelation.ImageAboveText; |
|
|
|
btnPrint.Click += new EventHandler(btnPrint_Click); |
|
|
|
this.toolStrip1.Items.Insert(0, btnPrint); |
|
|
|
|
|
|
|
ToolStripButton btnPrintVDARight = new ToolStripButton("补打02标签"); |
|
|
|
btnPrintVDARight.Image = this.imageList1.Images[0]; |
|
|
|
btnPrintVDARight.TextImageRelation = TextImageRelation.ImageAboveText; |
|
|
|
btnPrintVDARight.Click += new EventHandler(btnPrintVDARight_Click); |
|
|
|
this.toolStrip1.Items.Insert(0, btnPrintVDARight); |
|
|
|
|
|
|
|
ToolStripButton btnPrintVDA = new ToolStripButton("补打01标签"); |
|
|
|
btnPrintVDA.Image = this.imageList1.Images[0]; |
|
|
|
btnPrintVDA.TextImageRelation = TextImageRelation.ImageAboveText; |
|
|
|
btnPrintVDA.Click += new EventHandler(btnPrintVDA_Click); |
|
|
|
this.toolStrip1.Items.Insert(0, btnPrintVDA); |
|
|
|
|
|
|
|
ToolStripButton btnPrintLabel = new ToolStripButton("打印VDA标签"); |
|
|
|
btnPrintLabel.Image = this.imageList1.Images[0]; |
|
|
|
btnPrintLabel.TextImageRelation = TextImageRelation.ImageAboveText; |
|
|
|
btnPrintLabel.Click += btnPrintLabel_Click; |
|
|
|
this.toolStrip1.Items.Insert(0, btnPrintLabel); |
|
|
|
|
|
|
|
ToolStripButton btnPREDN = new ToolStripButton("PRE-DN生成"); |
|
|
|
// ToolStripButton btnPrintRe = new ToolStripButton("补打ASN");
|
|
|
|
// btnPrintRe.Image = this.imageList1.Images[0];
|
|
|
|
// btnPrintRe.TextImageRelation = TextImageRelation.ImageAboveText;
|
|
|
|
// btnPrintRe.Click += new EventHandler(btnPrintRe_Click);
|
|
|
|
// this.toolStrip1.Items.Insert(0, btnPrintRe);
|
|
|
|
//
|
|
|
|
// ToolStripButton btnPrint = new ToolStripButton("打印ASN");
|
|
|
|
// btnPrint.Image = this.imageList1.Images[0];
|
|
|
|
// btnPrint.TextImageRelation = TextImageRelation.ImageAboveText;
|
|
|
|
// btnPrint.Click += new EventHandler(btnPrint_Click);
|
|
|
|
// this.toolStrip1.Items.Insert(0, btnPrint);
|
|
|
|
|
|
|
|
// ToolStripButton btnPrintVDARight = new ToolStripButton("补打02标签");
|
|
|
|
// btnPrintVDARight.Image = this.imageList1.Images[0];
|
|
|
|
// btnPrintVDARight.TextImageRelation = TextImageRelation.ImageAboveText;
|
|
|
|
// btnPrintVDARight.Click += new EventHandler(btnPrintVDARight_Click);
|
|
|
|
// this.toolStrip1.Items.Insert(0, btnPrintVDARight);
|
|
|
|
//
|
|
|
|
// ToolStripButton btnPrintVDA = new ToolStripButton("补打01标签");
|
|
|
|
// btnPrintVDA.Image = this.imageList1.Images[0];
|
|
|
|
// btnPrintVDA.TextImageRelation = TextImageRelation.ImageAboveText;
|
|
|
|
// btnPrintVDA.Click += new EventHandler(btnPrintVDA_Click);
|
|
|
|
// this.toolStrip1.Items.Insert(0, btnPrintVDA);
|
|
|
|
|
|
|
|
// ToolStripButton btnPrintLabel = new ToolStripButton("打印VDA标签");
|
|
|
|
// btnPrintLabel.Image = this.imageList1.Images[0];
|
|
|
|
// btnPrintLabel.TextImageRelation = TextImageRelation.ImageAboveText;
|
|
|
|
// btnPrintLabel.Click += btnPrintLabel_Click;
|
|
|
|
// this.toolStrip1.Items.Insert(0, btnPrintLabel);
|
|
|
|
|
|
|
|
ToolStripButton btnPREDN = new ToolStripButton("ASN发运"); |
|
|
|
btnPREDN.Image = this.imageList1.Images[1]; |
|
|
|
btnPREDN.TextImageRelation = TextImageRelation.ImageAboveText; |
|
|
|
btnPREDN.Click += btnPREDN_Click; |
|
|
|
this.toolStrip1.Items.Insert(0, btnPREDN); |
|
|
|
|
|
|
|
ToolStripButton btnImportDP = new ToolStripButton("拉动导入"); |
|
|
|
btnImportDP.Image = this.imageList1.Images[1]; |
|
|
|
btnImportDP.TextImageRelation = TextImageRelation.ImageAboveText; |
|
|
|
btnImportDP.Click += btnImportDP_Click; |
|
|
|
this.toolStrip1.Items.Insert(0, btnImportDP); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
@ -444,37 +451,11 @@ namespace Stone.WinModule.Standard |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
if (this.dgrdView.SelectedRows.Count == 0) |
|
|
|
throw new Exception("请选择要生成的ASN"); |
|
|
|
|
|
|
|
string AsnNumber = this.dgrdView.SelectedRows[0].Cells["AsnNumber"].Value.ToString(); |
|
|
|
|
|
|
|
if (!CheckASN(AsnNumber)) return; |
|
|
|
|
|
|
|
Entity_v_JIS_VDA v_JIS_VDA = new Entity_v_JIS_VDA(); |
|
|
|
DataTable dtData = v_JIS_VDA.GetData("", $"[AsnNumber]='{AsnNumber}'", "[PackageNo] asc").Tables[0]; |
|
|
|
if (dtData.Rows.Count == 0) throw new Exception("打印的数据不存在"); |
|
|
|
|
|
|
|
if (dtData.Rows[0]["IsPrintASN"].ToString() == "1") |
|
|
|
throw new Exception($"{AsnNumber}已经完成,不能生成PREDN"); |
|
|
|
|
|
|
|
var frmPickUpDate = new frmPickUpDate(); |
|
|
|
frmPickUpDate.dtSwetDate = Convert.ToDateTime(dtData.Rows[0]["Date"]).Date; |
|
|
|
frmPickUpDate.ShowDialog(); |
|
|
|
frmPickUpDate.Dispose(); |
|
|
|
if(frmPickUpDate.DialogResult != DialogResult.OK) return; |
|
|
|
frmPREDN frm = new frmPREDN(); |
|
|
|
frm.dtPickUpTime = frmPickUpDate.dtPickUp; |
|
|
|
frm.dtData = dtData; |
|
|
|
frm.ShowDialog(); |
|
|
|
frm.Dispose(); |
|
|
|
//更新需求日期 todo
|
|
|
|
var db = new Gm_WMS.DataAccess.DataService.LocalDBService(); |
|
|
|
db.BeginTrans(); |
|
|
|
Entity_v_JIS_VDA t_JIS_VDA = new Entity_v_JIS_VDA(db); |
|
|
|
t_JIS_VDA.Edit($"[Date]='" + frmPickUpDate.dtPickUp + "'", $"[AsnNumber]='{AsnNumber}'"); |
|
|
|
db.Commit(); |
|
|
|
Search(AsnNumber); |
|
|
|
var frmAsnScan = new frmASNScan(); |
|
|
|
frmAsnScan.ShowDialog(); |
|
|
|
frmAsnScan.Dispose(); |
|
|
|
if(frmAsnScan.DialogResult != DialogResult.OK) return; |
|
|
|
Search(""); |
|
|
|
btnSerach_Click(sender,null); |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
@ -845,5 +826,278 @@ namespace Stone.WinModule.Standard |
|
|
|
|
|
|
|
return strsql; |
|
|
|
} |
|
|
|
|
|
|
|
private void btnImportDP_Click(object sender, EventArgs e) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
if (this.openFileDialog1.ShowDialog() == DialogResult.OK) |
|
|
|
{ |
|
|
|
Input(this.openFileDialog1.FileName); |
|
|
|
UpdateGridView(); |
|
|
|
|
|
|
|
MyMessageBox.ShowInfoMessage("数据导入成功!"); |
|
|
|
} |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
MyMessageBox.ShowInfoMessage(ex.Message); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void Input(string filename) |
|
|
|
{ |
|
|
|
DataSet dsInput = null; |
|
|
|
MyExcelDatabase.OpenDatabase(filename, true); |
|
|
|
var sheetName = GetSheetName(filename); |
|
|
|
dsInput = MyOleDbDatabase.ExecuteDataSet("select * from ["+sheetName+"]"); |
|
|
|
MyOleDbDatabase.CloseDatabase(); |
|
|
|
|
|
|
|
LocalDBService db = null; |
|
|
|
try |
|
|
|
{ |
|
|
|
db = new LocalDBService(); |
|
|
|
db.BeginTrans(); |
|
|
|
InputData(dsInput, db); |
|
|
|
db.Commit(); |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
if (db != null) db.Rollback(); |
|
|
|
throw new Exception("导入数据失败!\r\n" + "原因为:\r\n" + ex.Message); |
|
|
|
} |
|
|
|
finally |
|
|
|
{ |
|
|
|
if (db != null) db.EndTrans(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Stone.WinBiz.BasicData.F_Log.WriteLog("导入Excel[" + filename + "]"); |
|
|
|
} |
|
|
|
|
|
|
|
private string GetSheetName(string filename) |
|
|
|
{ |
|
|
|
string HDR = "HDR=YES;"; ; |
|
|
|
|
|
|
|
var m_oleconn = new OleDbConnection(); |
|
|
|
if (filename.ToLower().Substring(filename.Length - 3) == "xls") //excel 2003格式
|
|
|
|
{ |
|
|
|
m_oleconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties='Excel 8.0;" + HDR + "'"); |
|
|
|
} |
|
|
|
else //excel 2007 格式
|
|
|
|
{ |
|
|
|
m_oleconn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties='Excel 12.0 Xml;" + HDR + "'"); |
|
|
|
} |
|
|
|
m_oleconn.Open(); |
|
|
|
|
|
|
|
var m_olecmd = m_oleconn.CreateCommand(); |
|
|
|
|
|
|
|
DataTable dtSheetName = m_oleconn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); |
|
|
|
string[] strTableNames = new string[dtSheetName.Rows.Count]; |
|
|
|
for (int k = 0; k < dtSheetName.Rows.Count; k++) |
|
|
|
{ |
|
|
|
strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString(); |
|
|
|
} |
|
|
|
// 选择第一个sheet进行操作
|
|
|
|
string sheetName = strTableNames[0]; |
|
|
|
return sheetName; |
|
|
|
} |
|
|
|
|
|
|
|
public void InputData(DataSet dsData, LocalDBService db) |
|
|
|
{ |
|
|
|
Entity_t_JIS_VDA t_Input = new Entity_t_JIS_VDA(db); |
|
|
|
DataRow drInput = null; |
|
|
|
//第四行开始读日期,第五行是到货时间,第六行车型不要,第七行读零件和数量
|
|
|
|
int readRow = 4; |
|
|
|
//导入的列数
|
|
|
|
var coloumnCount = dsData.Tables[0].Columns.Count; |
|
|
|
//零件号所在的行 从0开始
|
|
|
|
var partRowIndex = 7; |
|
|
|
//零件号所在的列数 从0 开始
|
|
|
|
var partIndex = 2; |
|
|
|
//校验零件号是否有订单信息
|
|
|
|
var strCheckPO = CheckPartPO(dsData.Tables[0], partRowIndex, partIndex); |
|
|
|
if (strCheckPO != "OK") |
|
|
|
{ |
|
|
|
throw new Exception("导入数据失败!\r\n" + "原因为:\r\n" + strCheckPO); |
|
|
|
} |
|
|
|
|
|
|
|
//删掉以导入的ASN todo ASN模板未确认
|
|
|
|
// DelDPASNHis(dsData.Tables[0]);
|
|
|
|
|
|
|
|
for (int i = 0; i < dsData.Tables[0].Rows.Count; i++) |
|
|
|
{ |
|
|
|
if (i == readRow-1) |
|
|
|
{ |
|
|
|
var drDate = dsData.Tables[0].Rows[i]; |
|
|
|
for (int n = 0; n < coloumnCount; n++) |
|
|
|
{ |
|
|
|
//第六列开始是时间
|
|
|
|
if (n >= 5) |
|
|
|
{ |
|
|
|
var date = drDate[n].ToString(); |
|
|
|
if (string.IsNullOrEmpty(date)) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
date = GetDateTimeStyle4(date, MyDateTimeType.Date); |
|
|
|
//校验是否是日期,如果是日期,循环读入天的需求
|
|
|
|
if (DateTime.TryParse(date, out DateTime dt)) |
|
|
|
{ |
|
|
|
var DPTime = dsData.Tables[0].Rows[i + 1][n].ToString(); |
|
|
|
//得到了发货日期 和 发货时间
|
|
|
|
//开始循坏要货明细
|
|
|
|
for (int nPart = i + 4; nPart < dsData.Tables[0].Rows.Count-1; nPart++) |
|
|
|
{ |
|
|
|
//如果有数量 则填加
|
|
|
|
var dr = dsData.Tables[0].Rows[nPart]; |
|
|
|
var qty = dr[n].ToString(); |
|
|
|
if (int.TryParse(qty, out int planQty)) |
|
|
|
{ |
|
|
|
if (planQty > 0) |
|
|
|
{ |
|
|
|
drInput = t_Input.Table.NewRow(); |
|
|
|
drInput["LabelDate"] = dt.ToString("yyyy-MM-dd") + " " + DPTime + ":00"; |
|
|
|
drInput["Date"] = dt; |
|
|
|
//todo AsnNumber 当前模板没有ASN号
|
|
|
|
drInput["AsnNumber"] = ""; |
|
|
|
drInput["PartNumber"] = dr[partIndex]; |
|
|
|
drInput["Qty"] = planQty; |
|
|
|
//todo 从基础数据表获取PO
|
|
|
|
drInput["orderNumber"] = ""; |
|
|
|
//todo 增加表结构
|
|
|
|
drInput["CheckQty"] = 0; |
|
|
|
//是否完成装箱校验
|
|
|
|
drInput["IsPackingVerification"] = 0; |
|
|
|
//是否发运
|
|
|
|
drInput["IsShipingVerification"] = 0; |
|
|
|
//是否生成ASN
|
|
|
|
drInput["IsPrintASN"] = 0; |
|
|
|
//是否上传ASN
|
|
|
|
drInput["IsUpload"] = 0; |
|
|
|
t_Input.Add(drInput); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public static string GetDateTimeStyle4(string sDateTime, MyDateTimeType dType) |
|
|
|
{ |
|
|
|
if (sDateTime.Length != 8) throw new Exception("[" + sDateTime + "]日期时间格式错误!"); |
|
|
|
|
|
|
|
string Result = ""; |
|
|
|
string year = sDateTime.Substring(0, 4); |
|
|
|
string month = sDateTime.Substring(4, 2); |
|
|
|
string day = sDateTime.Substring(6, 2); |
|
|
|
|
|
|
|
string h = "0"; |
|
|
|
string m = "0"; |
|
|
|
string s = "0"; |
|
|
|
string mi = "0"; |
|
|
|
|
|
|
|
if (month.Length == 1) month = "0" + month; |
|
|
|
if (day.Length == 1) day = "0" + day; |
|
|
|
if (h.Length == 1) h = "0" + h; |
|
|
|
if (m.Length == 1) m = "0" + m; |
|
|
|
if (s.Length == 1) s = "0" + s; |
|
|
|
if (mi.Length == 1) mi = "00" + mi; |
|
|
|
if (mi.Length == 2) mi = "0" + mi; |
|
|
|
|
|
|
|
if (dType == MyDateTimeType.DateTime) |
|
|
|
{ |
|
|
|
Result = year + "-" + month + "-" + day + " " + h + ":" + m + ":" + s; |
|
|
|
} |
|
|
|
|
|
|
|
if (dType == MyDateTimeType.Date) |
|
|
|
{ |
|
|
|
Result = year + "-" + month + "-" + day; |
|
|
|
} |
|
|
|
|
|
|
|
if (dType == MyDateTimeType.Time) |
|
|
|
{ |
|
|
|
Result = h + ":" + m + ":" + s; |
|
|
|
} |
|
|
|
|
|
|
|
if (dType == MyDateTimeType.Batch) |
|
|
|
{ |
|
|
|
Result = year.Substring(2, 2) + month + day; |
|
|
|
} |
|
|
|
|
|
|
|
if (dType == MyDateTimeType.BillNo) |
|
|
|
{ |
|
|
|
Result = year + month + day + h + m + s + mi; |
|
|
|
} |
|
|
|
|
|
|
|
return Result; |
|
|
|
} |
|
|
|
|
|
|
|
private string CheckPartPO(DataTable dtImport,int startRowIndex,int columnIndex) |
|
|
|
{ |
|
|
|
string strRtn = ""; |
|
|
|
Entity_t_PartPO partPO = new Entity_t_PartPO(); |
|
|
|
DataTable dtData = partPO.GetData($"1 = 1").Tables[0]; |
|
|
|
if (dtData.Rows.Count == 0) |
|
|
|
{ |
|
|
|
return "系统中没有定义零件号对应的订单信息!"; |
|
|
|
} |
|
|
|
for (int i = startRowIndex; i < dtImport.Rows.Count-1; i++) |
|
|
|
{ |
|
|
|
var partCode = dtImport.Rows[i][columnIndex].ToString(); |
|
|
|
var row = dtData.Select("Code = '" + partCode + "'"); |
|
|
|
if (row.Length != 1) |
|
|
|
{ |
|
|
|
strRtn += "零件号["+partCode + "]没有对应有效的订单号"+ Environment.NewLine; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
if(string.IsNullOrEmpty(row[0]["PONumber"].ToString())) |
|
|
|
{ |
|
|
|
strRtn += "零件号[" + partCode + "]没有对应有效的订单号" + Environment.NewLine; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(strRtn)) |
|
|
|
{ |
|
|
|
strRtn = "OK"; |
|
|
|
} |
|
|
|
if (dtData.Rows.Count == 0) throw new Exception("补打的记录不存在"); |
|
|
|
return strRtn; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 删除历史导入的ASN单
|
|
|
|
/// </summary>
|
|
|
|
private void DelDPASNHis(DataTable dtImport) |
|
|
|
{ |
|
|
|
LocalDBService db = new LocalDBService(); |
|
|
|
var sql = ""; |
|
|
|
var AsnNums = ""; |
|
|
|
//ASN 行位置
|
|
|
|
//todo asn模板未确定
|
|
|
|
var asnRowIndex = 6; |
|
|
|
var asnRow = dtImport.Rows[asnRowIndex]; |
|
|
|
//ASN 列开始位置
|
|
|
|
var asnColumnStartIndex = 5; |
|
|
|
for (int i = asnColumnStartIndex; i < dtImport.Columns.Count; i++) |
|
|
|
{ |
|
|
|
if (!string.IsNullOrEmpty(asnRow[i].ToString())) |
|
|
|
{ |
|
|
|
AsnNums += "'" + asnRow[i].ToString() + "',"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (AsnNums.Length > 0) |
|
|
|
{ |
|
|
|
AsnNums = AsnNums.Substring(0, AsnNums.Length - 1); |
|
|
|
sql = $"delete from t_JIS_VDA where AsnNumber in (" + AsnNums + ")"; |
|
|
|
db.Exec_NonQuery(sql); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|