using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Windows.Forms; namespace FCOMMON { public static partial class DBM { public static SqlConnection getCn() { string cs = FCOMMON.info.CS; SqlConnection cn = new SqlConnection(); cn.ConnectionString = cs; return cn; } public struct sItemInfo { public int idx; public string sid; public string model; public string supply; public string name; public string unit; public float scale; public string price; public int supplyidx; public string project; public int qty; } public static List GetItemStorageList() { var cn = getCn(); cn.Open(); List retval = new List(); var sql = "SELECT place FROM Inventory WHERE(gcode = @gcode) AND(ISNULL(place, '') <> '') GROUP BY place ORDER BY place"; var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode; try { var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.Add(rdr[0].ToString()); } } catch { } cn.Close(); cn.Dispose(); return retval; } public static byte[] getImagByteArray(System.Drawing.Image img) { if (img == null || img.Width < 1 || img.Height < 1) return null; //이미지가 640보다 크면 조정한다. if (img.Width > 640) { var newrate = (640.0 / img.Width * 1.0); var newheight = (int)(img.Height * newrate); //높이값 다시 계산 var newimg = new System.Drawing.Bitmap(640, newheight); var g = System.Drawing.Graphics.FromImage(newimg); g.DrawImage(img, new System.Drawing.Rectangle(0, 0, 640, newheight)); g.Dispose(); img = (System.Drawing.Image)(newimg.Clone()); } else if (img.Height > 480) { var newrate = (480.0 / img.Height * 1.0); var newwidth = (int)(img.Width * newrate); //높이값 다시 계산 var newimg = new System.Drawing.Bitmap(newwidth, 480); var g = System.Drawing.Graphics.FromImage(newimg); g.DrawImage(img, new System.Drawing.Rectangle(0, 0, newwidth, 480)); g.Dispose(); img = (System.Drawing.Image)(newimg.Clone()); } System.IO.MemoryStream sm = new System.IO.MemoryStream(); img.Save(sm, System.Drawing.Imaging.ImageFormat.Jpeg); var buffer = sm.GetBuffer(); sm.Dispose(); return buffer; } public static Boolean setImageData(System.Drawing.Bitmap img, string table, string field, int idx) { return setImageData((System.Drawing.Image)img, table, field, idx); } public static Boolean setImageData(System.Drawing.Image img, string table, string field, int idx) { if (img == null || img.Width < 1 || img.Height < 1) return false; //이미지가 640보다 크면 조정한다. if (img.Width > 640) { var newrate = (640.0 / img.Width * 1.0); var newheight = (int)(img.Height * newrate); //높이값 다시 계산 var newimg = new System.Drawing.Bitmap(640, newheight); var g = System.Drawing.Graphics.FromImage(newimg); g.DrawImage(img, new System.Drawing.Rectangle(0, 0, 640, newheight)); g.Dispose(); img = (System.Drawing.Image)(newimg.Clone()); } else if (img.Height > 480) { var newrate = (480.0 / img.Height * 1.0); var newwidth = (int)(img.Width * newrate); //높이값 다시 계산 var newimg = new System.Drawing.Bitmap(newwidth, 480); var g = System.Drawing.Graphics.FromImage(newimg); g.DrawImage(img, new System.Drawing.Rectangle(0, 0, newwidth, 480)); g.Dispose(); img = (System.Drawing.Image)(newimg.Clone()); } var cn = getCn(); cn.Open(); Boolean retval = false; string sql = "update " + table + " set " + field + " = @data" + " where idx = @idx"; var cmd = new SqlCommand(sql, cn); System.IO.MemoryStream sm = new System.IO.MemoryStream(); img.Save(sm, System.Drawing.Imaging.ImageFormat.Jpeg); var buffer = sm.GetBuffer(); sm.Dispose(); cmd.Parameters.Add(new SqlParameter("idx", idx)); cmd.Parameters.Add(new SqlParameter("data", buffer)); try { cmd.ExecuteNonQuery(); retval = true; } catch { } cn.Close(); cn.Dispose(); return retval; } public class buyinfo { public int Request { get; set; } public int PR { get; set; } public int PO { get; set; } public int Received { get; set; } public int Cancled { get; set; } public int Total_Request { get; set; } public int Total_Buy { get; set; } public int Total_Remain { get; set; } } public static buyinfo GetPartBuyInfo(int project, string sid = null) { var sql = " select " + " isnull(sum(case when[state] = 'PR' then 0 when[state] = 'PO' then 0 when[state] = 'Received' then 0 when[state] = 'Cancled' then 0 else pumqtyReq end),0) as Request," + " isnull(sum(case when[state] = 'PR' then pumqty else 0 end),0) as PR," + " isnull(sum(case when[state] = 'PO' then pumqty else 0 end),0) as PO," + " isnull(sum(case when[state] = 'Received' then inqty else 0 end),0) as Received," + " isnull(sum(case when[state] = 'Cancled' then pumqtyReq else 0 end),0) as Cancled," + " isnull(sum(isnull(pumqty,pumqtyreq)),0) as Total_Request," + " isnull(sum(inqty),0) as Total_Buy," + " isnull(sum(pumqty) - sum(inqty),0) as Total_Remain" + " from EETGW_PurchaseCR" + " where gcode = @gcode and state <> 'Cancled'" + " and projectidx = @project" + (sid == null ? string.Empty : " and sid = @sid") + " and isnull(isdel,0) = 0"; var cn = getCn(); var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode; cmd.Parameters.Add("project", System.Data.SqlDbType.Int).Value = project; if (sid != null) cmd.Parameters.Add("sid", System.Data.SqlDbType.VarChar).Value = sid; cn.Open(); var rdr = cmd.ExecuteReader(); var retval = new buyinfo(); while (rdr.Read()) { var o_request = rdr["Request"]; var o_pr = rdr["PR"]; var o_po = rdr["PO"]; var o_received = rdr["Received"]; var o_cancled = rdr["Cancled"]; var o_totalrequest = rdr["Total_Request"]; var o_totalbuy = rdr["Total_Buy"]; var o_totalremain = rdr["Total_Remain"]; if (o_request != null) retval.Request = int.Parse(o_request.ToString()); if (o_pr != null) retval.PR = int.Parse(o_pr.ToString()); if (o_po != null) retval.PO = int.Parse(o_po.ToString()); if (o_received != null) retval.Received = int.Parse(o_received.ToString()); if (o_cancled != null) retval.Cancled = int.Parse(o_cancled.ToString()); if (o_totalrequest != null) retval.Total_Request = int.Parse(o_totalrequest.ToString()); if (o_totalbuy != null) retval.Total_Buy = int.Parse(o_totalbuy.ToString()); if (o_totalremain != null) retval.Total_Remain = int.Parse(o_totalremain.ToString()); } rdr.Close(); cn.Dispose(); return retval; } public static float GetProjectBuyInfo(int project) { var sql = " select isnull(((sum((case when isnull(pumqty,0) = isnull(inqty,0) then 1 else 0 end))*1.0) / count(*))*100,0)" + " from EETGW_PurchaseCR" + " where gcode = @gcode" + " and projectidx = @project" + " and isnull(isdel,0) = 0" + " and isnull([state],'') <> 'Cancled'"; var cn = getCn(); var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode; cmd.Parameters.Add("project", System.Data.SqlDbType.Int).Value = project; cn.Open(); var rdr = cmd.ExecuteScalar(); float retval = float.Parse(rdr.ToString()); cn.Dispose(); return retval; } /// /// 지정쿼리를 실행합니다. /// /// /// public static int ExecuteNonQuery(string sql) { var cn = getCn(); cn.Open(); var cmd = new SqlCommand(sql, cn); var retval = cmd.ExecuteNonQuery(); cn.Close(); cn.Dispose(); return retval; } public static int ExecuteScalarI(string sql) { var cn = getCn(); cn.Open(); var cmd = new SqlCommand(sql, cn); var retval = (int)(cmd.ExecuteScalar()); cn.Close(); cn.Dispose(); return retval; } public static string ExecuteScalar(string sql) { var cn = getCn(); cn.Open(); var cmd = new SqlCommand(sql, cn); var retval = cmd.ExecuteScalar().ToString(); cn.Close(); cn.Dispose(); return retval; } public static System.Drawing.Image GetImageData(string table, string field, int idx) { var cn = getCn(); cn.Open(); string sql = "select " + field + " from " + table + " where idx = " + idx.ToString(); var cmd = new SqlCommand(sql, cn); var data = cmd.ExecuteScalar() as byte[]; System.Drawing.Bitmap bmp = null; if (data != null) { System.IO.MemoryStream ms = new System.IO.MemoryStream(data); bmp = new System.Drawing.Bitmap(ms, true); ms.Dispose(); } cn.Close(); cn.Dispose(); return bmp; } public static string GetMaxVersion() { try { var sql = "select max(prgmVersion) from ProgramUser" + " where prgmName = 'Amkor K4-EET GroupWare'"; return ExecuteScalar(sql); } catch { return string.Empty; } } public static bool AddMagamList(string mon) { var gcode = FCOMMON.info.Login.gcode; //해당기간내의 마감 자료를 조회해서 넣는다. var cn = getCn(); cn.Open(); var retval = new List(); string sql = "select count(*) from EETGW_Magam where gcode=@gcode and pdate = @pdate"; var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = gcode; cmd.Parameters.Add("pdate", System.Data.SqlDbType.VarChar).Value = mon; var datacnt = int.Parse(cmd.ExecuteScalar().ToString()); if (datacnt == 0) { sql = "insert into EETGW_Magam(gcode,pdate,wdate,wuid) values(@gcode,@pdate,@wdate,@wuid)"; cmd.CommandText = sql; cmd.Parameters.Add("wdate", System.Data.SqlDbType.DateTime).Value = DateTime.Now; cmd.Parameters.Add("wuid", System.Data.SqlDbType.VarChar).Value = FCOMMON.info.Login.no; datacnt = cmd.ExecuteNonQuery(); } cn.Close(); cn.Dispose(); return datacnt == 1; } public static bool DelMagamList(string mon) { var gcode = FCOMMON.info.Login.gcode; //해당기간내의 마감 자료를 조회해서 넣는다. var cn = getCn(); cn.Open(); var retval = new List(); string sql = "delete from EETGW_Magam where gcode=@gcode and pdate = @pdate"; var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = gcode; cmd.Parameters.Add("pdate", System.Data.SqlDbType.VarChar).Value = mon; var datacnt = int.Parse(cmd.ExecuteNonQuery().ToString()); cn.Close(); cn.Dispose(); return datacnt == 1; } public static List GetMagamList() { var gcode = FCOMMON.info.Login.gcode; var sdate = DateTime.Now.AddMonths(-6).ToString("yyyy-MM"); var edate = DateTime.Now.AddMonths(1).ToString("yyyy-MM"); //해당기간내의 마감 자료를 조회해서 넣는다. var cn = getCn(); cn.Open(); var retval = new List(); string sql = "select pdate" + " from EETGW_Magam " + " where gcode=@gcode and pdate between @sdate and @edate and isnull(pdate,'') <> ''"; var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = gcode; cmd.Parameters.Add("sdate", System.Data.SqlDbType.VarChar).Value = sdate; cmd.Parameters.Add("edate", System.Data.SqlDbType.VarChar).Value = edate; var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.Add(rdr[0].ToString()); } cn.Close(); cn.Dispose(); return retval; } public static bool GetMagamStatus(DateTime mon) { return GetMagamStatus(mon.ToString("yyyy-MM")); } /// /// 머감상태를 확인합니다. /// /// yyyy-MM /// public static bool GetMagamStatus(string mon) { var gcode = FCOMMON.info.Login.gcode; var sdate = mon;// DateTime.Now.AddMonths(-6).ToString("yyyy-MM"); //var edate = DateTime.Now.AddMonths(1).ToString("yyyy-MM"); //해당기간내의 마감 자료를 조회해서 넣는다. var cn = getCn(); cn.Open(); var retval = new List(); string sql = "select count(*)" + " from EETGW_Magam " + " where gcode=@gcode and pdate = @sdate"; var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = gcode; cmd.Parameters.Add("sdate", System.Data.SqlDbType.VarChar).Value = sdate; var cnt = int.Parse(cmd.ExecuteScalar().ToString()); cn.Close(); cn.Dispose(); return cnt > 0; } public static sItemInfo getLastPurchaseInfo(int idx) { var cn = getCn(); cn.Open(); var retval = new sItemInfo(); retval.idx = -1; string sql = "select isnull(max(idx),-1) from Purchase where pumidx = " + idx.ToString(); var cmd = new SqlCommand(sql, cn); int maxidx = int.Parse(cmd.ExecuteScalar().ToString()); if (maxidx == -1) return retval; cmd.CommandText = "select * from Purchase where idx = " + maxidx.ToString(); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.idx = (int)rdr["idx"]; if (rdr["sid"] != DBNull.Value) retval.sid = rdr["sid"].ToString(); if (rdr["pumscale"] != DBNull.Value) retval.model = rdr["pumscale"].ToString(); if (rdr["supply"] != DBNull.Value) retval.supply = rdr["supply"].ToString(); if (rdr["supplyidx"] != DBNull.Value) retval.supplyidx = int.Parse(rdr["supplyidx"].ToString()); else retval.supplyidx = -1; if (rdr["pumname"] != DBNull.Value) retval.name = rdr["pumname"].ToString(); if (rdr["pumunit"] != DBNull.Value) retval.unit = rdr["pumunit"].ToString(); if (rdr["project"] != DBNull.Value) retval.project = rdr["project"].ToString(); if (rdr["pumprice"] != DBNull.Value) retval.price = rdr["pumprice"].ToString(); else retval.price = "0"; if (rdr["pumqty"] != DBNull.Value) retval.qty = int.Parse(rdr["pumqty"].ToString()); else retval.qty = 0; } cn.Close(); cn.Dispose(); return retval; } public static sItemInfo getLastPurchaseCRInfo(int idx) { var cn = getCn(); cn.Open(); var retval = new sItemInfo(); retval.idx = -1; string sql = "select isnull(max(idx),-1) from EETGW_PurchaseCR where pumidx = " + idx.ToString(); var cmd = new SqlCommand(sql, cn); int maxidx = int.Parse(cmd.ExecuteScalar().ToString()); if (maxidx == -1) return retval; cmd.CommandText = "select * from EETGW_PurchaseCR where idx = " + maxidx.ToString(); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.idx = (int)rdr["idx"]; if (rdr["sid"] != DBNull.Value) retval.sid = rdr["sid"].ToString(); if (rdr["pumscale"] != DBNull.Value) retval.model = rdr["pumscale"].ToString(); if (rdr["supply"] != DBNull.Value) retval.supply = rdr["supply"].ToString(); if (rdr["supplyidx"] != DBNull.Value) retval.supplyidx = int.Parse(rdr["supplyidx"].ToString()); else retval.supplyidx = -1; if (rdr["pumname"] != DBNull.Value) retval.name = rdr["pumname"].ToString(); if (rdr["pumunit"] != DBNull.Value) retval.unit = rdr["pumunit"].ToString(); if (rdr["project"] != DBNull.Value) retval.project = rdr["project"].ToString(); if (rdr["pumprice"] != DBNull.Value) retval.price = rdr["pumprice"].ToString(); else retval.price = "0"; if (rdr["pumqty"] != DBNull.Value) retval.qty = int.Parse(rdr["pumqty"].ToString()); else retval.qty = 0; } cn.Close(); cn.Dispose(); return retval; } public static Dictionary GetUserHolidayJan(string gcode, string uid, string pdate) { var cn = getCn(); cn.Open(); var retval = new Dictionary(); var dt = DateTime.Parse(pdate); var dtys = dt.Year.ToString("0000") + "-01-01"; string sql = "select isnull(cate,'--'), " + " isnull(sum(termdr),0), " + " isnull(sum(term),0), " + " isnull(sum(termdr)-sum(term),0) ," + " round(isnull(sum(drtime),0),2)," + " round(isnull(sum(crtime),0),2)," + " round(isnull(sum(drtime)-sum(crtime),0),2) as JanTime" + " from Holyday " + " where gcode=@gcode and uid = @uid and sdate between @sdate and @edate group by cate order by cate"; var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = gcode; cmd.Parameters.Add("uid", System.Data.SqlDbType.VarChar).Value = uid; cmd.Parameters.Add("sdate", System.Data.SqlDbType.VarChar).Value = dtys; cmd.Parameters.Add("edate", System.Data.SqlDbType.VarChar).Value = pdate; var rdr = cmd.ExecuteReader(); while (rdr.Read()) { var drtime = (double)rdr[4]; var crtime = (double)rdr[5]; retval.Add(rdr[0].ToString(), $"{rdr[1]}|{rdr[2]}|{rdr[3]}|{rdr[4]}|{rdr[5]}|{rdr[6]}"); } cn.Close(); cn.Dispose(); return retval; } /// /// 서플라이정보를 찾습니다. 1개의데이터가 검색된 경우에만 사용 됩니다. /// /// /// /// /// /// public static Boolean getFindSupply(string nameLike, out int idx, out string nameK, out string nameE) { idx = -1; nameE = ""; nameK = ""; var cn = getCn(); cn.Open(); string sql = "select idx,name,name2 from Customs where (name like '%SEEMAX%' or name2 like '%{0}%')"; sql = string.Format(sql, nameLike); var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); int cnt = 0; while (rdr.Read()) { idx = (int)rdr["idx"]; if (rdr["name"] != DBNull.Value) nameK = rdr["name"].ToString(); if (rdr["name2"] != DBNull.Value) nameE = rdr["name2"].ToString(); cnt += 1; } cn.Close(); cn.Dispose(); return cnt == 1; } /// /// 프로젝트 주간내역을 추가합니다 /// /// /// /// public static Boolean addProjectHistory(int ProjectIdx, string pdate, string Message, string rtf) { var cn = getCn(); cn.Open(); string sql = "insert into ProjectsHistory(pidx,pdate,remark,remark2,wuid,wdate)" + " values(@pidx,@pdate,@remark,@remark2,@wuid,@wdate)"; var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add(new SqlParameter("pidx", ProjectIdx)); cmd.Parameters.Add(new SqlParameter("pdate", pdate)); cmd.Parameters.Add(new SqlParameter("remark", Message)); cmd.Parameters.Add(new SqlParameter("remark2", rtf)); cmd.Parameters.Add(new SqlParameter("wuid", FCOMMON.info.Login.no)); cmd.Parameters.Add(new SqlParameter("wdate", DateTime.Now)); var cnt = cmd.ExecuteNonQuery(); cmd.Dispose(); cn.Close(); cn.Dispose(); return cnt == 1; } public static sItemInfo getItemInfo(int idx) { var cn = getCn(); cn.Open(); var retval = new sItemInfo(); retval.idx = -1; string sql = "select * from Items where gcode='" + FCOMMON.info.Login.gcode + "' and idx = " + idx.ToString(); var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.idx = (int)rdr["idx"]; if (rdr["sid"] != DBNull.Value) retval.sid = rdr["sid"].ToString(); if (rdr["model"] != DBNull.Value) retval.model = rdr["model"].ToString(); if (rdr["supply"] != DBNull.Value) retval.supply = rdr["supply"].ToString(); if (rdr["supplyidx"] != DBNull.Value) retval.supplyidx = int.Parse(rdr["supplyidx"].ToString()); if (rdr["name"] != DBNull.Value) retval.name = rdr["name"].ToString(); if (rdr["unit"] != DBNull.Value) retval.unit = rdr["unit"].ToString(); if (rdr["scale"] != DBNull.Value) retval.scale = float.Parse(rdr["scale"].ToString()); if (rdr["price"] != DBNull.Value) retval.price = rdr["price"].ToString(); } cn.Close(); cn.Dispose(); return retval; } public static int addItemInfo(sItemInfo info) { int retval = -1; var cn = getCn(); cn.Open(); string sql = "insert into Items" + " ([gcode],[cate],[sid],[model],[supply],[supplyidx],[name],[unit],[scale],[price],[wuid],[wdate])" + " values " + " (@gcode,@cate,@sid,@model,@supply,@supplyidx,@name,@unit,@scale,@price,@wuid,@wdate)"; var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add(new SqlParameter("@gcode", FCOMMON.info.Login.gcode)); cmd.Parameters.Add(new SqlParameter("@cate", "etc")); cmd.Parameters.Add(new SqlParameter("@sid", info.sid)); cmd.Parameters.Add(new SqlParameter("@model", info.model)); cmd.Parameters.Add(new SqlParameter("@supply", info.supply)); cmd.Parameters.Add(new SqlParameter("@supplyidx", info.supplyidx)); cmd.Parameters.Add(new SqlParameter("@name", info.name)); cmd.Parameters.Add(new SqlParameter("@unit", info.unit)); cmd.Parameters.Add(new SqlParameter("@scale", info.scale)); cmd.Parameters.Add(new SqlParameter("@price", info.price)); cmd.Parameters.Add(new SqlParameter("@wuid", FCOMMON.info.Login.no)); cmd.Parameters.Add(new SqlParameter("@wdate", DateTime.Now)); var iCnt = cmd.ExecuteNonQuery(); if (iCnt == 1) { cmd.CommandText = "select isnull(idx,-1) from Items where gcode=@gcode and [sid] = @sid"; cmd.Parameters.Clear(); cmd.Parameters.Add(new SqlParameter("gcode", FCOMMON.info.Login.gcode)); cmd.Parameters.Add(new SqlParameter("sid", info.sid)); retval = (int)cmd.ExecuteScalar(); } cn.Close(); cn.Dispose(); return retval; } public static sItemInfo getItemInfo(string sid) { var cn = getCn(); cn.Open(); var retval = new sItemInfo(); retval.idx = -1; string sql = "select * from Items where [gcode] = '" + FCOMMON.info.Login.gcode + "' and [sid] = '" + sid + "'"; var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.idx = (int)rdr["idx"]; if (rdr["sid"] != DBNull.Value) retval.sid = rdr["sid"].ToString(); if (rdr["model"] != DBNull.Value) retval.model = rdr["model"].ToString(); if (rdr["supply"] != DBNull.Value) retval.supply = rdr["supply"].ToString(); if (rdr["supplyidx"] != DBNull.Value) retval.supplyidx = int.Parse(rdr["supplyidx"].ToString()); if (rdr["name"] != DBNull.Value) retval.name = rdr["name"].ToString(); if (rdr["unit"] != DBNull.Value) retval.unit = rdr["unit"].ToString(); if (rdr["scale"] != DBNull.Value) retval.scale = float.Parse(rdr["scale"].ToString()); if (rdr["price"] != DBNull.Value) retval.price = rdr["price"].ToString(); } cn.Close(); cn.Dispose(); return retval; } public static Dictionary getUserList(int baseLevel = 1) { string where = "isnull(level,0) >= " + baseLevel.ToString(); return getTwoColumnList("vGroupUser", "id", "name", where, "name"); } /// /// id,name,dispname,dept,email,level,tel,process,grade /// /// /// public static System.Data.DataTable getUserTable(int baseLevel = 1) { var cn = getCn(); cn.Open(); var retval = new sItemInfo(); retval.idx = -1; string sql = "select [id],[name],([name] +'(' +[id] +')') as dispName,isnull([dept],'') as dept,isnull(grade,'') as grade," + $" [email],[level],[tel], isnull(processs, '') as process,isnull(indate, '') as indate, isnull(outdate, '') as outdate " + $" from vGroupUser " + $" where gcode='{FCOMMON.info.Login.gcode}' and [id] <> 'dev' and isnull(outdate,'') = '' and useUserState = 1 " + $" order by[name]"; var cmd = new SqlCommand(sql, cn); var da = new SqlDataAdapter(sql, cn); var ds = new System.Data.DataSet(); da.Fill(ds); cn.Close(); cn.Dispose(); if (ds.Tables.Count > 0) return ds.Tables[0]; else return null; } private static Dictionary MakeDataTable(List list) { var retval = new Dictionary(); foreach (var item in list) retval.Add(item, item); return retval; } private static System.Data.DataTable MakeDataTable(Dictionary list) { System.Data.DataTable dt = new System.Data.DataTable(); dt.Columns.Add("Key"); dt.Columns.Add("Value"); dt.Columns.Add("KeyValue"); foreach (var item in list) { dt.Rows.Add(new string[] { item.Key, item.Value, string.Format("[{0}] {1}", item.Key, item.Value) }); } dt.AcceptChanges(); return dt; } public static Dictionary getProjectList(string StateCode = "") { string where = "status = '{0}'"; if (StateCode != "") where = string.Format(where, StateCode); else where = string.Empty; return getTwoColumnList("Projects", "idx", "name", where, "status,name"); } public static System.Data.DataTable getProjectData(string StateCode = "") { var list = getProjectList(StateCode); return MakeDataTable(list); } public static Dictionary getCodeList(string GroupCode = "99") { string where = "Grp = '{0}'"; where = string.Format(where, GroupCode); return getTwoColumnList("Common", "code", "memo", where, "code"); } public static string getCodeSvalue(string GroupCode, string code) { var cn = getCn(); cn.Open(); var sql = "select isnull(SValue,'')" + " from Common" + " where gcode='" + FCOMMON.info.Login.gcode + "' and Grp = '{0}' and code = '{1}'"; sql = string.Format(sql, GroupCode, code); var cmd = new SqlCommand(sql, cn); var data = cmd.ExecuteScalar(); cmd.Dispose(); cn.Close(); cn.Dispose(); return data.ToString(); } public static float getCodeFvalue(string GroupCode, string code) { var cn = getCn(); cn.Open(); var sql = "select isnull(FValue,0)" + " from Common" + " where gcode='" + FCOMMON.info.Login.gcode + "' and Grp = '{0}' and code = '{1}'"; sql = string.Format(sql, GroupCode, code); var cmd = new SqlCommand(sql, cn); var data = cmd.ExecuteScalar(); cmd.Dispose(); cn.Close(); cn.Dispose(); return float.Parse(data.ToString()); } public struct sCodeData { public string code; public string title; public string svalue; public string grp; } public static sCodeData getCodeBySvalue(string GroupCode, string svalue) { var retval = new sCodeData(); retval.code = string.Empty; retval.title = string.Empty; retval.svalue = string.Empty; retval.grp = string.Empty; var cn = getCn(); cn.Open(); var sql = "select isnull(code,''),isnull(memo,'')" + " from Common" + " where gcode='" + FCOMMON.info.Login.gcode + "' and Grp = '{0}' and svalue = '{1}'"; sql = string.Format(sql, GroupCode, svalue); var cmd = new SqlCommand(sql, cn); var da = cmd.ExecuteReader(); while (da.Read()) { retval.code = da[0].ToString(); retval.title = da[1].ToString(); } cmd.Dispose(); cn.Close(); cn.Dispose(); retval.grp = GroupCode; retval.svalue = svalue; return retval; } public static sCodeData getCodeByMemo(string GroupCode, string memo) { var retval = new sCodeData(); retval.code = string.Empty; retval.title = string.Empty; retval.svalue = string.Empty; retval.grp = string.Empty; var cn = getCn(); cn.Open(); var sql = "select isnull(code,''),isnull(memo,'')" + " from Common" + " where gcode='" + FCOMMON.info.Login.gcode + "' and Grp = '{0}' and memo = '{1}'"; sql = string.Format(sql, GroupCode, memo); var cmd = new SqlCommand(sql, cn); var da = cmd.ExecuteReader(); while (da.Read()) { retval.code = da[0].ToString(); retval.title = da[1].ToString(); } cmd.Dispose(); cn.Close(); cn.Dispose(); retval.grp = GroupCode; retval.svalue = memo; return retval; } public static Boolean InsertLog(string cate, string remark, string pdate = "") { if (String.IsNullOrEmpty(pdate)) pdate = DateTime.Now.ToShortDateString(); try { var cn = getCn(); cn.Open(); var sql = "insert into EETGW_Log(gcode,pdate,cate,remark,wuid,wdate)" + " values(@gcode,@pdate,@cate,@remark,@wuid,@wdate)"; //sql = string.Format(sql, info.Login.gcode, memo); var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add(new SqlParameter("gcode", FCOMMON.info.Login.gcode)); cmd.Parameters.Add(new SqlParameter("pdate", pdate)); cmd.Parameters.Add(new SqlParameter("cate", cate)); cmd.Parameters.Add(new SqlParameter("remark", remark)); cmd.Parameters.Add(new SqlParameter("wuid", FCOMMON.info.Login.no)); cmd.Parameters.Add(new SqlParameter("wdate", DateTime.Now)); var da = cmd.ExecuteNonQuery(); cmd.Dispose(); cn.Close(); cn.Dispose(); return da > 0; } catch { } return false; } public static Boolean insertCommonCode(string GroupCode, string code, string memo, string svalue = "") { var cn = getCn(); cn.Open(); var sql = "insert into common(gcode,grp,code,svalue,memo,wuid,wdate)" + " values(@gcode,@grp,@code,@svalue,@memo,@wuid,@wdate)"; sql = string.Format(sql, GroupCode, memo); var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add(new SqlParameter("gcode", FCOMMON.info.Login.gcode)); cmd.Parameters.Add(new SqlParameter("grp", GroupCode)); cmd.Parameters.Add(new SqlParameter("code", code)); cmd.Parameters.Add(new SqlParameter("memo", memo)); cmd.Parameters.Add(new SqlParameter("svalue", svalue)); cmd.Parameters.Add(new SqlParameter("wuid", FCOMMON.info.Login.no)); cmd.Parameters.Add(new SqlParameter("wdate", DateTime.Now)); var da = cmd.ExecuteNonQuery(); cmd.Dispose(); cn.Close(); cn.Dispose(); return da > 0; } public static sCodeData getCodeByCode(string GroupCode, string code) { var retval = new sCodeData(); retval.code = string.Empty; retval.title = string.Empty; retval.svalue = string.Empty; retval.grp = string.Empty; var cn = getCn(); cn.Open(); var sql = "select isnull(code,''),isnull(memo,'')" + " from Common" + " where gcode='" + FCOMMON.info.Login.gcode + "' and Grp = '{0}' and code = '{1}'"; sql = string.Format(sql, GroupCode, code); var cmd = new SqlCommand(sql, cn); var da = cmd.ExecuteReader(); while (da.Read()) { retval.code = da[0].ToString(); retval.title = da[1].ToString(); } cmd.Dispose(); cn.Close(); cn.Dispose(); retval.grp = GroupCode; retval.svalue = code; return retval; } /// /// 지정된 프로젝트의 마지막 업무일지 데이터를 반환함 /// /// /// public static System.Data.DataTable getLastJobReportData(string uid, int projectIdx) { var cn = getCn(); cn.Open(); var sql = "select top 1 * from JobReport" + " where gcode ='" + FCOMMON.info.Login.gcode + "' and isnull(pidx,-1)=" + projectIdx.ToString() + " and uid ='" + uid + "'" + " order by pdate desc, idx desc"; var da = new SqlDataAdapter(sql, cn); var ds = new System.Data.DataSet(); da.Fill(ds); cn.Close(); if (ds.Tables.Count > 0) return ds.Tables[0]; else return null; } public static System.Data.DataTable getLastJobReportDatabyProjectName(string uid, string prjName) { var cn = getCn(); cn.Open(); var sql = "select top 1 * from JobReport" + " where gcode='" + FCOMMON.info.Login.gcode + "' and isnull(projectName,'') like '" + prjName + "'" + " and uid ='" + uid + "'" + " order by pdate desc, idx desc"; var da = new SqlDataAdapter(sql, cn); var ds = new System.Data.DataSet(); da.Fill(ds); cn.Close(); if (ds.Tables.Count > 0) return ds.Tables[0]; else return null; } public static System.Data.DataTable getLastJobReportData(string uid, string type) { var cn = getCn(); cn.Open(); var sql = "select top 1 * from JobReport" + " where gcode = '" + FCOMMON.info.Login.gcode + "' and isnull([type],'')='" + type + "'" + " and uid ='" + uid + "'" + " order by pdate desc, idx desc"; var da = new SqlDataAdapter(sql, cn); var ds = new System.Data.DataSet(); da.Fill(ds); cn.Close(); if (ds.Tables.Count > 0) return ds.Tables[0]; else return null; } public static System.Data.DataTable getProcessList() { System.Data.DataTable retval = new System.Data.DataTable(); retval.Columns.Add("Code"); retval.Columns.Add("Value"); var cn = getCn(); cn.Open(); var sql = "select isnull(processs,'') as process" + " from Users" + " where processs is not null and gcode='{0}'" + " group by processs" + " order by process"; sql = string.Format(sql, FCOMMON.info.Login.gcode); var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); var cnt = 0; while (rdr.Read()) { retval.Rows.Add(new string[] { cnt.ToString(), rdr[0].ToString() }); cnt += 1; } rdr.Close(); cmd.Dispose(); cn.Close(); cn.Dispose(); return retval; } public static string GetUserName(string gcode, string uid) { var slq = "select isnull(name,'') from vGroupUser" + $" where gcode = '{gcode}'" + $" and id = '{uid}'"; try { return ExecuteScalar(slq); } catch { return string.Empty; } } public static string GetUserTel(string gcode, string uid) { var slq = "select isnull(tel,'') from vGroupUser" + $" where gcode = '{gcode}'" + $" and id = '{uid}'"; try { return ExecuteScalar(slq); } catch { return string.Empty; } } public static System.Data.DataTable getUserProjectList(string userName) { System.Data.DataTable retval = new System.Data.DataTable(); retval.Columns.Add("Code"); retval.Columns.Add("Value"); retval.Columns.Add("NameOnly"); var cn = getCn(); cn.Open(); var sql = "select idx, '[' + cast(idx as varchar) + '] ' + isnull(name,''),isnull(name,'') from Projects" + " where gcode='{0}'" + " and (isnull(userManager,'') like '%{1}%'" + " or isnull(userMain,'') like '%{1}%'" + " or isnull(usersub,'') like '%{1}%')" + " and status not in ('보류', '취소', '완료(보고)')" + " order by status desc,pdate desc,name"; //" order by pdate desc,name"; sql = string.Format(sql, FCOMMON.info.Login.gcode, userName); var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.Rows.Add(new string[] { rdr[0].ToString(), rdr[1].ToString(), rdr[2].ToString() }); } rdr.Close(); cmd.Dispose(); cn.Close(); cn.Dispose(); return retval; } public static System.Data.DataTable getCodeTable(string GroupCode = "99", string sort = "memo") { System.Data.DataTable retval = new System.Data.DataTable(); retval.Columns.Add("Code"); retval.Columns.Add("Value"); retval.Columns.Add("SValue"); retval.Columns.Add("FValue"); var cn = getCn(); cn.Open(); var sql = "select isnull(code,''),isnull(memo ,''),isnull(svalue,''),isnull(fvalue,'')" + " from common" + " where gcode='" + FCOMMON.info.Login.gcode + "' and grp = '" + GroupCode + "'" + " and isnull(code,'') <> ''" + " order by "; var sortidx = 0; var sortlist = sort.Split(','); foreach (var sortstr in sortlist) { if (string.IsNullOrEmpty(sortstr)) continue; if (sortidx > 0) sql += ","; sql += "isnull(" + sortstr + ",'')"; sortidx += 1; } var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.Rows.Add(new string[] { rdr[0].ToString(), rdr[1].ToString(), rdr[2].ToString(), rdr[3].ToString() }); } rdr.Close(); cmd.Dispose(); cn.Close(); cn.Dispose(); return retval; } public static Dictionary getTwoColumnList(string table, string col1, string col2, string where = "", string order = "") { Dictionary retval = new Dictionary(); var cn = getCn(); cn.Open(); var sql = "select isnull({1},''),isnull({2},'')" + " from {0} " + " where gcode = '" + FCOMMON.info.Login.gcode + "' "; if (where != "") sql += " and " + where; if (order != "") sql += " order by " + order; sql = string.Format(sql, table, col1, col2); var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.Add(rdr[0].ToString(), rdr[1].ToString()); } rdr.Close(); cmd.Dispose(); cn.Close(); cn.Dispose(); return retval; } public static List getPlaceList(string gcode) { var retval = new List(); var cn = getCn(); cn.Open(); var sql = "select isnull(place,'')" + " from Inventory " + " where gcode = '{0}' and isnull(place,'') <> ''" + " group by place order by place"; sql = string.Format(sql, gcode); var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.Add(rdr[0].ToString()); } rdr.Close(); cmd.Dispose(); cn.Close(); cn.Dispose(); return retval; } public static Dictionary getGroupTable(string GroupColumn, string table, string where = "", Boolean desc = false) { var list = getGroupList(GroupColumn, table, where, desc); return MakeDataTable(list); } /// /// 데이터중 첫번째 자료를 반환 합니다. /// /// /// /// /// /// public static String getFirstValue(string column, string table, string where = "", string order = "") { string retval = string.Empty; var cn = getCn(); cn.Open(); var sql = "select {0} " + " from {1} " + " where gcode='" + FCOMMON.info.Login.gcode + "' and isnull({0},'') != '' "; if (where != "") sql += " and " + where; if (order != "") sql += " order by " + order; sql = string.Format(sql, "[" + column + "]", table); var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { if (rdr[0] != null) retval = rdr[0].ToString(); } cmd.Dispose(); cn.Close(); cn.Dispose(); return retval; } /// /// 지정된 사용자/월의 전체 근무시간 초과시간을 반환함 /// /// 사용자번호 /// 지정월(2019-05) /// 근무시간 /// 최대근무시간(근무일수*8) /// 초과근무시간 public static void getWorkTime(string uid, string yymm, out float work, out int total, out float ot) { work = 0; total = 0; ot = 0; string retval = string.Empty; var cn = getCn(); try { cn.Open(); var sql = "select isnull(sum(hrs),0) as hrs,isnull(sum(ot),0) as ot,dbo.getWorkDayCount('{1}') as workday" + " from JobReport" + " where gcode='" + FCOMMON.info.Login.gcode + "' and uid = '{0}' and substring(pdate,1,7) = '{1}'"; sql = string.Format(sql, uid, yymm); var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { work = float.Parse(rdr[0].ToString()); ot = float.Parse(rdr[1].ToString()); total = int.Parse(rdr[2].ToString()) * 8; } cmd.Dispose(); cn.Close(); cn.Dispose(); } catch { work = 0; total = 0; ot = 0; } finally { if (cn != null) cn.Dispose(); } } public static string GetcurrentUserNoName() { var currentusername = $"[{FCOMMON.info.Login.no}] {FCOMMON.info.Login.nameK}"; return currentusername; } public static int addItem(string pumname, string sid, string model, decimal price, string supply, int supplyidx = -1, byte[] pic = null) { var cn = getCn(); cn.Open(); int retval = -1; var cmd2 = new SqlCommand("", cn); cmd2.CommandText = string.Format("select count(*) from Items " + " where ISNULL(REPLACE(name, ' ', '') + REPLACE(model, ' ', ''), '') = '{0}'", pumname.Replace(" ", "").Replace("'", "''") + model.Replace(" ", "").Replace("'", "''")); var cnt = int.Parse(cmd2.ExecuteScalar().ToString()); if (cnt == 0) { DateTime wdate = DateTime.Now; if (pic == null) { cmd2.CommandText = "insert into items(gcode,cate,name,sid,model,scale,unit,supply,supplyidx,price,wuid,wdate)" + "values(@gcode,@cate,@name,@sid,@model,@scale,@unit,@supply,@supplyidx,@price,@wuid,@wdate)"; } else { cmd2.CommandText = "insert into items(gcode,cate,name,sid,model,scale,unit,supply,supplyidx,price,image,wuid,wdate)" + "values(@gcode,@cate,@name,@sid,@model,@scale,@unit,@supply,@supplyidx,@price,@image,@wuid,@wdate)"; } cmd2.Parameters.Clear(); cmd2.Parameters.Add(new SqlParameter("gcode", FCOMMON.info.Login.gcode)); cmd2.Parameters.Add(new SqlParameter("cate", "--")); cmd2.Parameters.Add(new SqlParameter("name", pumname.Trim())); cmd2.Parameters.Add(new SqlParameter("sid", sid.Trim())); cmd2.Parameters.Add(new SqlParameter("model", model.Trim())); cmd2.Parameters.Add(new SqlParameter("scale", 1.0)); cmd2.Parameters.Add(new SqlParameter("unit", "EA")); cmd2.Parameters.Add(new SqlParameter("supply", supply)); if (pic != null) cmd2.Parameters.Add(new SqlParameter("image", pic)); cmd2.Parameters.Add(new SqlParameter("supplyidx", supplyidx)); cmd2.Parameters.Add(new SqlParameter("price", price)); cmd2.Parameters.Add(new SqlParameter("wuid", FCOMMON.info.Login.no)); cmd2.Parameters.Add(new SqlParameter("wdate", wdate)); retval += cmd2.ExecuteNonQuery(); //추가된 데이터를 찾아서 다시 검색한다. //if (retval == 0) //{ // cmd2.CommandText = "select idx from Items where gcode=@gcode and name = @name and sid = @sid and model = @model and wuid = @wuid and wdate = @wdate"; // retval = int.Parse(cmd2.ExecuteScalar().ToString()); //} //else retval = -1; } //{ cmd2.CommandText = string.Format("select min(idx) from Items where gcode='" + FCOMMON.info.Login.gcode + "' and ISNULL(REPLACE(name, ' ', '') + REPLACE(model, ' ', ''), '') = '{0}'", pumname.Replace(" ", "").Replace("'", "''") + model.Replace(" ", "").Replace("'", "''")); var itemdata = cmd2.ExecuteScalar(); if (itemdata == DBNull.Value || itemdata == null) { retval = -1; } else { var strItem = itemdata.ToString(); if (strItem == "") retval = -1; else retval = int.Parse(strItem); } //} cmd2.Dispose(); cn.Close(); cn.Dispose(); return retval; } public static Boolean UpdateItemSID(int itemIdx, string sid) { var cn = getCn(); cn.Open(); int retval = 0; var cmd2 = new SqlCommand("", cn); cmd2.CommandText = string.Format("update Items set sid=@sid where idx=@idx"); cmd2.Parameters.Clear(); cmd2.Parameters.Add(new SqlParameter("idx", itemIdx)); cmd2.Parameters.Add(new SqlParameter("sid", sid)); retval = cmd2.ExecuteNonQuery(); cmd2.Dispose(); cn.Close(); cn.Dispose(); return retval != 0; } public static List getGroupListWithoutGcode(string GroupColumn, string table, string where = "", Boolean desc = false, Boolean useColumncover = true) { List retval = new List(); var cn = getCn(); cn.Open(); var sql = "select {0} " + " from {1} " + " where isnull({0},'') != '' "; if (table.ToUpper() == "USERS") sql = "select {0} " + " from {1} " + " where isnull({0},'') != '' "; if (where != "") sql += " and " + where; sql += " group by {0} " + " order by {0} "; if (desc) sql += " desc"; if (useColumncover) sql = string.Format(sql, "[" + GroupColumn + "]", table); else sql = string.Format(sql, GroupColumn, table); var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.Add(rdr[0].ToString()); } cmd.Dispose(); cn.Close(); cn.Dispose(); return retval; } public static List getGroupList(string GroupColumn, string table, string where = "", Boolean desc = false, Boolean useColumncover = true) { List retval = new List(); var cn = getCn(); cn.Open(); var sql = "select {0} " + " from {1} " + " where gcode='" + FCOMMON.info.Login.gcode + "' and isnull({0},'') != '' "; if (table.ToUpper() == "USERS") sql = "select {0} " + " from {1} " + " where isnull({0},'') != '' "; if (where != "") sql += " and " + where; sql += " group by {0} " + " order by {0} "; if (desc) sql += " desc"; if (useColumncover) sql = string.Format(sql, "[" + GroupColumn + "]", table); else sql = string.Format(sql, GroupColumn, table); var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { retval.Add(rdr[0].ToString()); } cmd.Dispose(); cn.Close(); cn.Dispose(); return retval; } public static String getPathKJ(string dept) { var cn = getCn(); cn.Open(); var sql = "select max(isnull(path_kj,'')) " + " from UserGroup " + " where dept = '" + dept + "'"; sql = string.Format(sql); var cmd = new SqlCommand(sql, cn); var rdr = cmd.ExecuteScalar(); cmd.Dispose(); cn.Close(); cn.Dispose(); if (rdr == null) return string.Empty; else return rdr.ToString(); } public static Boolean setPathKJ(string dept, string path) { var cn = getCn(); cn.Open(); var sql = "update UserGroup set path_kj=@path" + " where dept = @dept"; sql = string.Format(sql); var cmd = new SqlCommand(sql, cn); cmd.Parameters.Add(new SqlParameter("path", path)); cmd.Parameters.Add(new SqlParameter("dept", dept)); var rdr = cmd.ExecuteNonQuery(); cmd.Dispose(); cn.Close(); cn.Dispose(); return rdr > 0; } public static List getDateList(string table, string where = "", Boolean desc = false) { return getGroupList("pdate", table, where, desc); } public static int UpdateItemIndexbySID() { int retval = 0; var cn1 = getCn(); cn1.Open(); var cn2 = getCn(); cn2.Open(); var sql = "select idx, " + " isnull(pumname,'') as pumname, " + " isnull([sid],'') as [sid], " + " isnull(pumscale,'') as pummodel, " + " isnull(pumunit,'EA') as pumunit, " + " isnull(pumprice,0) as pumprice, " + " isnull(supply,'') as supply, " + " isnull(supplyidx,-1) as supplyidx" + " from purchase " + " where gcode='" + FCOMMON.info.Login.gcode + "' and isnull(sid,'') <> '' and " + " isnull(sid,'') <> '신규'" + " and isnull(pumidx,-1) = -1 " + " and len(sid) = 9" + " and isnull(pumname,'') <> ''"; var cmd2 = new SqlCommand("", cn2); var cmd = new SqlCommand(sql, cn1); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { var pumname = rdr["pumname"].ToString(); var pummodel = rdr["pummodel"].ToString(); var pumunit = rdr["pumunit"].ToString(); var pumprice = decimal.Parse(rdr["pumprice"].ToString()); var supply = rdr["supply"].ToString(); var supplyidx = int.Parse(rdr["supplyidx"].ToString()); var sid = rdr["sid"].ToString(); var idx = int.Parse(rdr["idx"].ToString()); //아이템정보에서 이 sid 가 1개 존재한다면 그것에 연결한다. var sql2 = "select isnull(idx,-1) from Items where gcode='" + FCOMMON.info.Login.gcode + "' and [sid] = '" + sid + "'"; cmd2.CommandText = sql2; var itemdata = cmd2.ExecuteScalar(); if (itemdata != null && itemdata.ToString() != "-1") { cmd2.CommandText = "update purchase set pumidx = " + itemdata.ToString() + " where gcode='" + FCOMMON.info.Login.gcode + "' and idx=" + idx.ToString(); retval += cmd2.ExecuteNonQuery(); } else { cmd2.CommandText = "insert into items(gcode,cate,name,sid,model,scale,unit,supply,supplyidx,price,wuid,wdate)" + "values(@gcode,@cate,@name,@sid,@model,@scale,@unit,@supply,@supplyidx,@price,@wuid,@wdate)"; cmd2.Parameters.Clear(); cmd2.Parameters.Add(new SqlParameter("gcode", FCOMMON.info.Login.gcode)); cmd2.Parameters.Add(new SqlParameter("cate", "--")); cmd2.Parameters.Add(new SqlParameter("name", pumname)); cmd2.Parameters.Add(new SqlParameter("sid", sid)); cmd2.Parameters.Add(new SqlParameter("model", pummodel)); cmd2.Parameters.Add(new SqlParameter("scale", 1.0)); cmd2.Parameters.Add(new SqlParameter("unit", pumunit)); cmd2.Parameters.Add(new SqlParameter("supply", supply)); cmd2.Parameters.Add(new SqlParameter("supplyidx", supplyidx)); cmd2.Parameters.Add(new SqlParameter("price", pumprice)); cmd2.Parameters.Add(new SqlParameter("wuid", "dev")); cmd2.Parameters.Add(new SqlParameter("wdate", DateTime.Now)); retval += cmd2.ExecuteNonQuery(); } } cmd2.Dispose(); cmd.Dispose(); cn1.Close(); cn1.Dispose(); cn2.Close(); cn2.Dispose(); return retval; } } }