This commit is contained in:
chi
2023-03-07 23:11:45 +09:00
parent 70fc4f6857
commit 8b6b25830e
62 changed files with 20345 additions and 11651 deletions

View File

@@ -14,8 +14,6 @@ namespace FPJ0000
{
string fn_fpcolsize = "";
int ProjectIndex = -1;
int colidx_itemname = -1;
int colidx_item = -1;
int colidx_qty = -1;
@@ -28,7 +26,6 @@ namespace FPJ0000
int colidx_manu = -1;
int colidx_unit = -1;
public fPartList(int idx_)
{
InitializeComponent();
@@ -70,7 +67,7 @@ namespace FPJ0000
void fPartList_KeyDown(object sender, KeyEventArgs e)
{
//if (e.KeyCode == Keys.Escape) this.Close();
if (e.KeyCode == Keys.F5) searchpmp();
// if (e.KeyCode == Keys.F5) searchpmp();
}
void fPartList_FormClosed(object sender, FormClosedEventArgs e)
@@ -188,21 +185,18 @@ namespace FPJ0000
this.fpSpread1.SuspendLayout();
var col_sid = this.fpSpread1.ActiveSheet.Columns["sid"].Index;
//var col_pmp = this.fpSpread1.ActiveSheet.Columns["pmp"].Index;
var col_buy = this.fpSpread1.ActiveSheet.Columns["buy"].Index; //구매수량
//var col_buy = this.fpSpread1.ActiveSheet.Columns["buy"].Index; //구매수량
var col_amt = this.fpSpread1.ActiveSheet.Columns["amt"].Index;
var col_amtn = this.fpSpread1.ActiveSheet.Columns["amtn"].Index;
var col_qtyn = this.fpSpread1.ActiveSheet.Columns["qtyn"].Index; //N대수량(전체수량)
var col_breq = this.fpSpread1.ActiveSheet.Columns["bbuy"].Index; //구매요청
var col_supply = this.fpSpread1.ActiveSheet.Columns["supply"].Index;
var col_bconf = this.fpSpread1.ActiveSheet.Columns["bconfirm"].Index; //구매확정
var col_bbuy = this.fpSpread1.ActiveSheet.Columns["bbuy"].Index; //구매확정
var col_cancel = this.fpSpread1.ActiveSheet.Columns["cancel"].Index; //구매확정
var col_qtyin = this.fpSpread1.ActiveSheet.Columns["qtyin"].Index;
var col_indate = this.fpSpread1.ActiveSheet.Columns["indate"].Index; //입고일
var col_inuser = this.fpSpread1.ActiveSheet.Columns["inuser"].Index; //수령일
var col_supply = this.fpSpread1.ActiveSheet.Columns["ItemSupply"].Index;
//구매요청컬럼값
var col_buyqty = this.fpSpread1.ActiveSheet.Columns["구매요청"].Index;
var col_inqty = this.fpSpread1.ActiveSheet.Columns["구매입고"].Index;
//var col_inuser = this.fpSpread1.ActiveSheet.Columns["구매수령인"].Index;
//var col_indate = this.fpSpread1.ActiveSheet.Columns["구매수령일"].Index;
//var col_inbigo = this.fpSpread1.ActiveSheet.Columns["구매비고"].Index;
var = 0; //전체자료
@@ -214,46 +208,40 @@ namespace FPJ0000
var = 0;
var project = int.Parse(tbIdx.Text);
FCOMMON.DBM.buyinfo TotInfo = new FCOMMON.DBM.buyinfo();
for (int i = 0; i < this.fpSpread1.ActiveSheet.Rows.Count; i++)
{
var row = this.fpSpread1.ActiveSheet.Rows[i];
var value = this.fpSpread1.ActiveSheet.GetValue(i, col_sid); //sid값을 확인한다
var value_buy = this.fpSpread1.ActiveSheet.GetValue(i, col_buy);
var value_in = this.fpSpread1.ActiveSheet.GetValue(i, col_qtyin);
var value_bbuy = this.fpSpread1.ActiveSheet.GetValue(i, col_breq); //구매요청
var value_bconf = this.fpSpread1.ActiveSheet.GetValue(i, col_bconf);//구매확정 210118
var db_cancel = this.fpSpread1.ActiveSheet.GetValue(i, col_cancel);
var db_supply = this.fpSpread1.ActiveSheet.GetValue(i, col_supply);
var value_supply = string.Empty;
var value_sid = this.fpSpread1.ActiveSheet.GetValue(i, col_sid);
if (db_supply != null) value_supply = db_supply.ToString().Trim();
Boolean b_cancel = false;
if (db_cancel != null) b_cancel = (bool)db_cancel;
//var value_bconf = this.fpSpread1.ActiveSheet.GetValue(i, col_bconf);
var v_supply = string.Empty;
var v_sid = string.Empty;
Boolean bPR = false;
Boolean bPO = false;
if (value_bbuy != null) bPR = (Boolean)value_bbuy; //PR체크박스
if (value_bconf != null) bPO = (Boolean)value_bconf; //PO체크박스
var row = this.fpSpread1.ActiveSheet.Rows[i];
// var value_buy = this.fpSpread1.ActiveSheet.GetValue(i, col_buy);
var db_supply = this.fpSpread1.ActiveSheet.GetValue(i, col_supply);
var db_sid = this.fpSpread1.ActiveSheet.GetValue(i, col_sid);
if (db_sid != null) v_sid = db_sid.ToString();
if (db_supply != null) v_supply = db_supply.ToString().Trim();
//해당 자료의 CR구매현황을 확인한다(gcode,project,sid)
var sidinfo = FCOMMON.DBM.GetPartBuyInfo(project, v_sid);
fpSpread1.ActiveSheet.Cells[i, col_buyqty].Value = sidinfo.Total_Request;
fpSpread1.ActiveSheet.Cells[i, col_inqty].Value = sidinfo.Total_Buy;
TotInfo.PO += sidinfo.PO;
TotInfo.PR += sidinfo.PR;
TotInfo.Received += sidinfo.Received;
TotInfo.Request += sidinfo.Request;
+= 1;
int qty_in = 0;
int qty_buy = -1;
if (value_in != null) qty_in = (int)value_in;
if (value_buy != null) qty_buy = (int)value_buy;
int qty_in = sidinfo.Total_Buy;// 0;
int qty_buy = sidinfo.Total_Request;// ;
if (b_cancel == true)
{
row.ForeColor = Color.White;
row.BackColor = Color.Red;
}
else if (qty_buy < 1) //비구매건
if (sidinfo.Total_Request < 1) //비구매건
{
+= 1;
row.ForeColor = Color.Black;
@@ -262,71 +250,91 @@ namespace FPJ0000
else
{
//여기서부터는 무조건 구매대상이다
if (bPR == false)
//입고수량이 구매수량을 넘어가면 완료이다
if(sidinfo.Total_Buy >= sidinfo.Total_Request )
{
if (qty_in > 0)
{
+= 1;
row.ForeColor = Color.White;
row.BackColor = Color.Red;
}
else
{
+= 1;
row.ForeColor = Color.Black;
if (value_sid == null || value_sid.ToString().isEmpty()) row.BackColor = Color.CornflowerBlue;
else row.BackColor = Color.LightSkyBlue;
//row.BackColor = Color.SkyBlue;
}
+= 1;
row.ForeColor = Color.Black;
row.BackColor = Color.LimeGreen;
}
else if (bPO == false)
else if(sidinfo.Total_Buy > 0) //구매진행중이다
{
if (qty_in > 0)
{
+= 1;
row.ForeColor = Color.White;
row.BackColor = Color.Red;
}
else
{
PO대기 += 1;
row.ForeColor = Color.Black;
row.BackColor = Color.Gold;
}
+= 1;
row.ForeColor = Color.White;
row.BackColor = Color.DarkMagenta;
}
else if(sidinfo.PR > 0)
{
PO대기 += 1;
row.ForeColor = Color.Black;
row.BackColor = Color.Gold;
}
else if (sidinfo.PO > 0)
{
+= 1;
row.ForeColor = Color.White;
row.BackColor = Color.DarkMagenta;
}
else
{
if (qty_in != qty_buy)
{
+= 1;
row.ForeColor = Color.White;
row.BackColor = Color.DarkMagenta;
}
else
{
+= 1;
row.ForeColor = Color.Black;
row.BackColor = Color.LimeGreen;
}
+= 1;
row.ForeColor = Color.Black;
row.BackColor = Color.LightSkyBlue;
}
}
this.fpSpread1.ActiveSheet.Cells[i, col_qtyin].BackColor = Color.DimGray;
this.fpSpread1.ActiveSheet.Cells[i, col_buy].BackColor = Color.DimGray;
this.fpSpread1.ActiveSheet.Cells[i, col_qtyin].BackColor = Color.DimGray;
this.fpSpread1.ActiveSheet.Cells[i, col_indate].BackColor = Color.DimGray;
this.fpSpread1.ActiveSheet.Cells[i, col_inuser].BackColor = Color.DimGray;
this.fpSpread1.ActiveSheet.Cells[i, col_bbuy].BackColor = Color.DimGray;
this.fpSpread1.ActiveSheet.Cells[i, col_bconf].BackColor = Color.DimGray;
//if (bPR == false)
//{
// {
// 구매요청 += 1;
// row.ForeColor = Color.Black;
// if (db_sid == null || db_sid.ToString().isEmpty()) row.BackColor = Color.CornflowerBlue;
// else row.BackColor = Color.LightSkyBlue;
// //row.BackColor = Color.SkyBlue;
// }
//}
//else if (bPO == false)
//{
// if (qty_in > 0)
// {
// 입력오류 += 1;
// row.ForeColor = Color.White;
// row.BackColor = Color.Red;
// }
// else
// {
// PO대기 += 1;
// row.ForeColor = Color.Black;
// row.BackColor = Color.Gold;
// }
//}
//else
//{
// if (qty_in != qty_buy)
// {
// 구매진행 += 1;
// row.ForeColor = Color.White;
// row.BackColor = Color.DarkMagenta;
// }
// else
// {
// 구매완료 += 1;
// row.ForeColor = Color.Black;
// row.BackColor = Color.LimeGreen;
// }
//}
}
//this.fpSpread1.ActiveSheet.Cells[i, col_buyqty].BackColor = Color.FromArgb(230, 230, 230);
//this.fpSpread1.ActiveSheet.Cells[i, col_inqty].BackColor = Color.FromArgb(230, 230, 230);
//this.fpSpread1.ActiveSheet.Cells[i, col_indate].BackColor = Color.FromArgb(230, 230, 230);
//this.fpSpread1.ActiveSheet.Cells[i, col_inuser].BackColor = Color.FromArgb(230, 230, 230);
//this.fpSpread1.ActiveSheet.Cells[i, col_inbigo].BackColor = Color.FromArgb(230, 230, 230);
}
//프로그레시브입력
prb1.Text = string.Format("비 구매 ({0})", );
prb2.Text = string.Format("구매요청 ({0})", );
prb3.Text = string.Format("발주대기 ({0})", PO대기);
@@ -335,7 +343,7 @@ namespace FPJ0000
var = ( + ) / ( * 1.0);
= / (( - ) * 1.0);
prb5.Text = string.Format("구매완료 ({0:N0}%)", * 100.0);
prb6.Text = string.Format("수량오류 ({0:})", );
//prb6.Text = string.Format("수량오류 ({0:})", 입력오류);
//prb1.Text = string.Format("수량 검토 완료 ({0}/{1})", 검토완료건수, 전체건수);
//prb1.ProgressMax = 전체건수;
@@ -374,10 +382,7 @@ namespace FPJ0000
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
Save();
}
void Save()
{
this.Validate();
@@ -457,7 +462,6 @@ namespace FPJ0000
//dv1.ExportData("partlist.csv");
}
private void autoToolStripMenuItem_Click(object sender, EventArgs e)
{
this.fpSpread1.ActiveSheet.DataAutoSizeColumns = true;
@@ -591,10 +595,7 @@ namespace FPJ0000
}
}
private void btRefresh_Click(object sender, EventArgs e)
{
RefreshData();
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
@@ -684,151 +685,12 @@ namespace FPJ0000
}
}
private void toolStripButton5_Click(object sender, EventArgs e)
{
var range = this.fpSpread1_Sheet1.GetSelection(0);
util.MsgE("준비중");
}
private void button1_Click(object sender, EventArgs e)
{
RefreshData();
}
private void toolStripButton5_Click_1(object sender, EventArgs e)
{
var dlg = FCOMMON.Util.MsgQ("재고 확인을 실행하시겠습니까?\n재고 확인 완료 후에는 구매수량값이 업데이트 됩니다");
if (dlg != DialogResult.Yes) return;
//pmp데이터에서 모두 업데이트 한다
//컬럼명 qty, qty_pmp, qty_buy
List<DatabaseManager.sPMPdata> retval = new List<DatabaseManager.sPMPdata>();
var cn = DatabaseManager.getCn();
try
{
cn.Open();
}
catch (Exception ex)
{
util.MsgE("데이터베이스 연결 실패\n" + ex.Message);
return;
}
System.Data.SqlClient.SqlDataReader rdr = null;
System.Data.SqlClient.SqlCommand cmd = null;
var basesql1 = "select isnull(SIDNo,'') ,isnull(PartName,'') ,isnull(PartNo,'') , isnull(CurrentQty,0) from SPMaster where SIDNo = '{0}' and isnull(Storage,'') <> 'B-CENTER'";
var basesql2 = "select isnull(SIDNo,'') ,isnull(PartName,'') ,isnull(PartNo,'') , isnull(CurrentQty,0) from SPMaster where PartNo = '{0}' and isnull(Storage,'') <> 'B-CENTER'";
cmd = new System.Data.SqlClient.SqlCommand("", cn);
var cnt_ok = 0;
var cnt_no = 0;
var cnt_ng = 0;
// var cnt_reduce = 0;
foreach (dsPRJ.ProjectsPartRow dr in this.dsPRJ.ProjectsPart.Rows)
{
if (dr.RowState == DataRowState.Detached || dr.RowState == DataRowState.Deleted) continue;
var qty = dr.qtyn; //파트리스트수량(N대수량으로 처리)
var model = string.IsNullOrEmpty(dr.ItemModel) ? dr.ItemName : dr.ItemModel;
//검색 sql 생성
string sql = "";
if (string.IsNullOrEmpty(dr.ItemSid) == true) sql = string.Format(basesql2, model);
else sql = string.Format(basesql1, dr.ItemSid);
cmd.CommandText = sql;
rdr = cmd.ExecuteReader();
List<DatabaseManager.sPMPdata> db = new List<DatabaseManager.sPMPdata>();
while (rdr.Read())
{
//데이터를 가져온다
var v_sidno = rdr[0];
var v_name = rdr[1];
var v_no = rdr[2];
var v_qty = rdr[3];
var newdr = new DatabaseManager.sPMPdata();
if (v_sidno != DBNull.Value) newdr.sid = v_sidno.ToString();
if (v_name != DBNull.Value) newdr.partname = v_name.ToString();
if (v_no != DBNull.Value) newdr.partno = v_no.ToString();
if (v_qty != DBNull.Value) newdr.qty = int.Parse(v_qty.ToString());
db.Add(newdr);
}
rdr.Close();
//데이터가 여러개있다면 해당 데이터를 표시한다
if (db.Count > 1)
{
cnt_ng += 1;
dr.qtyjago = "{" + db.Count.ToString() + "}";
//dr.qtybuy = qty;
}
else if (db.Count == 1 && db[0].qty != 0)
{
cnt_ok += 1;
dr.qtyjago = db[0].qty.ToString(); //재고수량
//dr.qtybuy = Math.Max(qty - db[0].qty, 0);
//cnt_reduce += (qty - dr.qtybuy);
}
else
{
//pmp에 자료 없다
cnt_no += 1;
dr.qtyjago = "--";
//dr.qtybuy = qty;
}
dr.EndEdit();
}
if (cmd != null) cmd.Dispose();
if (rdr != null) rdr.Close();
cn.Close();
cn.Dispose();
var msg = string.Format("PMP 검색결과 현황\n" +
"검색완료 : {0}\n" +
"복수확인 : {1}\n" +
"확인불가 : {2}", cnt_ok, cnt_ng, cnt_no);
FCOMMON.Util.MsgI(msg);
}
void searchpmp()
{
//PMP조회
var drv = this.bsPart.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as dsPRJ.ProjectsPartRow;
//검색어
var title = string.IsNullOrEmpty(dr.ItemModel) ? dr.ItemName : dr.ItemModel;
if (string.IsNullOrEmpty(dr.ItemSid) == false) title = dr.ItemSid;
var f = new fSPMaster(title);
if (f.ShowDialog() == DialogResult.OK)
{
var pmp = f.qty; //pmp재고
var req = f.qty;
var buy = Math.Max(req - pmp, 0);
dr.qtyjago = pmp.ToString();
dr.qtybuy = buy;
dr.EndEdit();
}
}
private void pMP조회ToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void toolStripButton7_Click(object sender, EventArgs e)
{
searchpmp();
}
private void button2_Click(object sender, EventArgs e)
{
@@ -840,44 +702,6 @@ namespace FPJ0000
}
private void btConf_Click(object sender, EventArgs e)
{
var f = new fPartConfirm(this.dsPRJ.ProjectsPart, sortkey);
f.ShowDialog();
FormattingData();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
////검토는 되어있지만 구매등록이 안된 목록 가져온다
//var list = this.dsPRJ.ProjectsPart.Where(t => t.bconfirm == true && t.bbuy == false);
//var cnt = list.Count();
//if (cnt < 1)
//{
// FCOMMON.Util.MsgE("검토목록 전체가 구매등록된 상태 입니다");
// return;
//}
//var dlg = FCOMMON.Util.MsgQ(string.Format("{0}건의 자료가 구매등록 대기 상태입니다\n\n구맹 등록상태로 전환 하시겠습니까?", cnt));
//if (dlg == DialogResult.Yes)
//{
// foreach (var dr in list)
// {
// dr.bbuy = true;
// dr.EndEdit();
// }
// this.FormattingData();
//}
}
private void toolStripButton1_Click_1(object sender, EventArgs e)
{
//쇼핑카드 데이터를 가져와서 검색을 실행한다
this.Validate();
this.bs.EndEdit();
this.bsPart.EndEdit();
var f = new fSCCheck(this.dsPRJ.ProjectsPart);
f.ShowDialog();
}
private void button3_Click(object sender, EventArgs e)
{
@@ -932,7 +756,6 @@ namespace FPJ0000
FCOMMON.Util.RunExplorer(path);
}
private void button4_Click(object sender, EventArgs e)
{
showfolder();