This commit is contained in:
chikyun.kim
2018-09-28 10:24:41 +09:00
parent 78f316bc3a
commit 128c089816
377 changed files with 23606 additions and 2107 deletions

View File

@@ -0,0 +1,245 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FPJ0000
{
public partial class fPartList : Form
{
int ProjectIndex = -1;
public fPartList(int idx_)
{
InitializeComponent();
this.ProjectIndex = idx_;
this.FormClosed += fPartList_FormClosed;
this.KeyPreview = true;
this.KeyDown += fPartList_KeyDown;
this.dsPRJ.ProjectsPart.TableNewRow += ProjectsPart_TableNewRow;
}
void ProjectsPart_TableNewRow(object sender, DataTableNewRowEventArgs e)
{
e.Row["wuid"] = FCOMMON.info.Login.no;
e.Row["wdate"] = DateTime.Now;
e.Row["Project"] = this.ProjectIndex;
}
void fPartList_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape) this.Close();
}
void fPartList_FormClosed(object sender, FormClosedEventArgs e)
{
var form = this as Form;
FCOMMON.Util.SetFormStatus(ref form, this.Name, false);
}
private void fPartList_Load(object sender, EventArgs e)
{
var form = this as Form;
FCOMMON.Util.SetFormStatus(ref form, this.Name, true);
this.Show();
Application.DoEvents();
RefreshData();
}
void RefreshData()
{
this.ta.FillByIDX(this.dsPRJ.Projects, this.ProjectIndex);
this.taPart.Fill(this.dsPRJ.ProjectsPart, this.ProjectIndex);
//로딩후에 sid 와 suuply 를 조회해준다.
foreach( dsPRJ.ProjectsPartRow dr in this.dsPRJ.ProjectsPart.Rows)
{
if (dr.IsItemNull() || dr.Item < 0) continue;
var iteminfo = FCOMMON.DBM.getItemInfo(dr.Item);
if(iteminfo.idx != -1)
{
dr.SID = iteminfo.sid;
dr.Supply = iteminfo.supply;
}
}
this.dsPRJ.AcceptChanges();
this.dv1.AutoResizeColumns();
RefreshSum();
}
void RefreshSum()
{
decimal sum = 0;
foreach( dsPRJ.ProjectsPartRow dr in this.dsPRJ.ProjectsPart.Rows)
{
if (dr.RowState == DataRowState.Deleted || dr.RowState == DataRowState.Detached) continue;
sum += dr.amt;
}
lbSum.Text = sum.ToString("N0");
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
this.Validate();
this.bs.EndEdit();
this.bsPart.EndEdit();
try
{
var cnt = this.tam.UpdateAll(this.dsPRJ);
FCOMMON.Util.MsgI(cnt.ToString() + "건의 자료가 업데이트 되었습니다.");
}
catch (Exception ex)
{
FCOMMON.Util.MsgE(ex.Message);
}
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
var f = new fRPartList(this.ProjectIndex);
f.Show();
}
private void dv1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0) return;
var col = dv1.Columns[e.ColumnIndex];
var taItem = new FCM0000.dsMSSQLTableAdapters.ItemsTableAdapter();
switch (col.DataPropertyName)
{
case "ItemName":
var valuen = dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
if (valuen != null)
{
string inputtext = valuen.ToString().Trim();
if (inputtext == "")
{
dv1.Rows[e.RowIndex].Cells["dvc_itemName"].Value = inputtext;
}
else
{
//검색을 실행해서 보여준다.
var SearchDT = taItem.GetSearch("%" + inputtext + "%");
if (SearchDT == null || SearchDT.Rows.Count < 1)
{
//FCOMMON.Util.MsgE("검색 결과가 없습니다.");
return;
}
else
{
//검색된 결과를 표시해서 보여준다.
var f = new FCM0000.fLovItem("%" + inputtext + "%");
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
dv1.Rows[e.RowIndex].Cells["dvc_item"].Value = f.item;
dv1.Rows[e.RowIndex].Cells["dvc_itemname"].Value = f.itemName;
dv1.Rows[e.RowIndex].Cells["dvc_sid"].Value = f.SID;
dv1.Rows[e.RowIndex].Cells["dvc_supply"].Value = f.itemSupply;
if(f.itemmodel != "")
dv1.Rows[e.RowIndex].Cells["dvc_model"].Value = f.itemmodel;
if(f.itemprice != 0)
dv1.Rows[e.RowIndex].Cells["dvc_price"].Value = f.itemprice;
var valueq1 = dv1.Rows[e.RowIndex].Cells["dvc_qty"].Value;
var valuep1 = dv1.Rows[e.RowIndex].Cells["dvc_price"].Value;
Int32 iQty = 0;
decimal iPrice = 0;
if (valueq1 != null) iQty = (Int32)valueq1;
if (valuep1 != null) iPrice = (decimal)valuep1;
decimal iAmt = iQty * iPrice;
dv1.Rows[e.RowIndex].Cells["dvc_amt"].Value = iAmt;
}
}
}
}
break;
case "item":
var value = dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
if (value != null)
{
int idx = (int)value;
if (idx != -1)
{
var item = taItem.GetIDX(idx);
if (item.Count == 1)
{
//1개만 찾았다면 그것을 사용한다.
var itemnameValue = item[0]["name"];
var itemmodel = item[0]["model"];
var itemprice = item[0]["price"];
var itemSID = item[0]["sid"];
var itemSupply = item[0]["supply"];
if (itemprice != null)
{
var price = (decimal)itemprice;
if(price != 0)
dv1.Rows[e.RowIndex].Cells["dvc_price"].Value = (decimal)itemprice;
}
if (itemnameValue != null)
dv1.Rows[e.RowIndex].Cells["dvc_itemname"].Value = itemnameValue.ToString();
if (itemmodel != null)
dv1.Rows[e.RowIndex].Cells["dvc_model"].Value = itemmodel.ToString();
if (itemSID != null)
dv1.Rows[e.RowIndex].Cells["dvc_sid"].Value = itemSID.ToString();
if (itemSupply != null)
dv1.Rows[e.RowIndex].Cells["dvc_supply"].Value = itemSupply.ToString();
}
else
{
FCOMMON.Util.MsgE("해당 아이템이 존재하지 않습니다.");
dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = DBNull.Value;
}
}
}
break;
case "price":
case "qty":
var valueq = dv1.Rows[e.RowIndex].Cells["dvc_qty"].Value;
var valuep = dv1.Rows[e.RowIndex].Cells["dvc_price"].Value;
var amt = (Int32)valueq * (decimal)valuep;
dv1.Rows[e.RowIndex].Cells["dvc_amt"].Value = amt;
RefreshSum();
break;
}
}
private void autoSizeColumnToolStripMenuItem_Click(object sender, EventArgs e)
{
dv1.AutoResizeColumns();
}
private void exportListToolStripMenuItem_Click(object sender, EventArgs e)
{
dv1.ExportData("partlist.csv");
}
private void dv1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
}
}
}