Files
Groupware/SubProject/FPJ0000/Project/fProjectPartToPurchase.cs
chikyun.kim 3336898dc0 파트리스트 가져오기 기능
파트리스트 구매등록 기능
2019-05-17 17:30:51 +09:00

284 lines
11 KiB
C#

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 fProjectPartToPurchase : Form
{
BindingSource bsModel;
int ProjectIndex = -1;
public fProjectPartToPurchase(int pidx)
{
InitializeComponent();
this.ProjectIndex = pidx;
this.KeyPreview = true;
this.StartPosition = FormStartPosition.CenterScreen;
this.KeyDown += (s1, e1) =>
{
if (e1.KeyCode == Keys.Escape) this.Close();
};
}
private void __Load(object sender, EventArgs e)
{
//프로젝트정보를 찾는다.
var dtPrj = taProject.GetbyIDX(this.ProjectIndex);
var drPrj = dtPrj.Rows[0] as dsPRJ.ProjectsRow;
this.tbProjectIndex.Text = drPrj.idx.ToString();
this.tbProject.Text = drPrj.name;
this.tbCr.Text = drPrj.orderno;
this.tbOrderNo.Text = drPrj.orderno;
//파트리스트 합계금액
var dtPart = taPart.GetData(this.ProjectIndex);
var sumAmt = dtPart.Sum(t => t.amt);
this.tbSum.Text = sumAmt.ToString("N0");
//상태
var stateList = FCOMMON.DBM.getCodeTable("04");
this.cmbState.DisplayMember = "Value";
this.cmbState.ValueMember = "Value";
this.cmbState.DataSource = stateList;
//장비제조
var dt_dept = FCOMMON.DBM.getCodeTable("06");
BindingSource bsManu = new BindingSource(dt_dept, "");
this.cbEQManu.DisplayMember = "Value";
this.cbEQManu.ValueMember = "Value";
this.cbEQManu.DataSource = bsManu;
//장비모델
var dt_asset = FCOMMON.DBM.getCodeTable("07");
bsModel = new BindingSource(dt_asset, "");
bsModel.Filter = "svalue='그런거없다'";
this.cbEQModel.DisplayMember = "Value";
this.cbEQModel.ValueMember = "Value";
this.cbEQModel.DataSource = bsModel;
//제조공정
var dt_manuproc = FCOMMON.DBM.getCodeTable("08");
this.cbManuProc.DisplayMember = "Value";
this.cbManuProc.ValueMember = "Value";
this.cbManuProc.DataSource = dt_manuproc;
//장비기술공정
var dt_eetproc = FCOMMON.DBM.getCodeTable("09");
this.cbProcess.DisplayMember = "Value";
this.cbProcess.ValueMember = "Value";
this.cbProcess.DataSource = dt_eetproc;
////processlist
//var procList = FCOMMON.DBM.getGroupTable("process", "Purchase", "process <> ''");
//this.cbProcess.DisplayMember = "Value";
//this.cbProcess.ValueMember = "Key";
//this.cbProcess.DataSource = new BindingSource(procList, "");
//담당자목록
var userList = FCOMMON.DBM.getGroupList("name", "Users", "[level] > 0 and [level] < 10");
foreach (var user in userList)
{
this.cmbRequest.Items.Add(user);
}
dtPdate.Value = DateTime.Now;
cmbRequest.Text = FCOMMON.info.Login.nameK;
cmbState.Text = "PO";
this.Show();
Application.DoEvents();
}
private bool saveData()
{
this.Validate();
if (cbProcess.Text.Trim() == "")
{
FCOMMON.Util.MsgE("프로세스를 선택하세요.");
cbProcess.Focus();
return false;
}
if (tbProject.Text == "")
{
FCOMMON.Util.MsgE("프로젝트 정보를 입력하세요.");
tbProject.Focus();
return false;
}
var overtime = DateTime.Now - DateTime.Parse("2019-01-09 00:00:00");
if (overtime.TotalSeconds > 0)
{
if (this.cbProcess.SelectedIndex == -1)
{
if (FCOMMON.info.Login.level >= 5)
{
var dlg = FCOMMON.Util.MsgQ("[공정]을 입력하지 않고 진행 하시겠습니까?\n\n" +
"선택 대상이 없는 경우 문의 바랍니다.\n\n" +
"BongSeok Jung(T.7191)\n" +
"BongSeok.Jung@amkor.co.kr");
if (dlg != System.Windows.Forms.DialogResult.Yes)
{
cbProcess.Focus();
return false;
}
}
else
{
FCOMMON.Util.MsgE("[공정]을 선택하세요\n\n" +
"선택 대상이 없는 경우 문의 바랍니다.\n\n" +
"BongSeok Jung(T.7191)\n" +
"BongSeok.Jung@amkor.co.kr");
cbProcess.Focus();
return false;
}
}
if (cbManuProc.SelectedIndex == -1)
{
if (FCOMMON.info.Login.level >= 5)
{
var dlg = FCOMMON.Util.MsgQ("제조공정을 입력하지 않고 진행 하시겠습니까?\n\n" +
"선택 대상이 없는 경우 문의 바랍니다.\n\n" +
"BongSeok Jung(T.7191)\n" +
"BongSeok.Jung@amkor.co.kr");
if (dlg != System.Windows.Forms.DialogResult.Yes)
{
cbManuProc.Focus();
return false;
}
}
else
{
FCOMMON.Util.MsgE("제조공정을 선택하세요\n\n" +
"선택 대상이 없는 경우 문의 바랍니다.\n\n" +
"BongSeok Jung(T.7191)\n" +
"BongSeok.Jung@amkor.co.kr");
cbManuProc.Focus();
return false;
}
}
if (this.cbEQManu.SelectedIndex == -1)
{
if (FCOMMON.info.Login.level >= 5)
{
var dlg = FCOMMON.Util.MsgQ("장비제조사를 입력하지 않고 진행 하시겠습니까?\n\n" +
"선택 대상이 없는 경우 문의 바랍니다.\n\n" +
"BongSeok Jung(T.7191)\n" +
"BongSeok.Jung@amkor.co.kr");
if (dlg != System.Windows.Forms.DialogResult.Yes)
{
cbEQManu.Focus();
return false;
}
}
else
{
FCOMMON.Util.MsgE("장비 제조사를 선택하세요.\n\n" +
"선택 대상이 없는 경우 문의 바랍니다.\n\n" +
"BongSeok Jung(T.7191)\n" +
"BongSeok.Jung@amkor.co.kr");
cbEQManu.Focus();
return false;
}
}
}
//part 목록을 조회해서 NR에 등록해줘야 함
var dlg2 = FCOMMON.Util.MsgQ("해당 파트리스트룰 NR구매 목록에 등록하시겠습니까?");
if (dlg2 != System.Windows.Forms.DialogResult.Yes) return false;
//기존에 등록된 자료가 있는지 체크한다.
var SQLExist =
" select count(*) from Purchase" +
" where import = 1" +
" and pdate = '{0}'" +
" and projectidx = {1}";
SQLExist = string.Format(SQLExist, dtPdate.Value.ToShortDateString(), this.ProjectIndex.ToString());
var ExistCnt = FCOMMON.DBM.ExecuteScalarI(SQLExist);
if (ExistCnt > 0)
{
var dlgq = FCOMMON.Util.MsgQ(string.Format("생성된 자료가 {0}건 존재 합니다.\n\n" + "기존 자료를 삭제 하시겠습니까?",ExistCnt));
if (dlgq == System.Windows.Forms.DialogResult.Yes)
{
SQLExist =
" delete from Purchase" +
" where import = 1" +
" and pdate = '{0}'" +
" and projectidx = {1}";
SQLExist = string.Format(SQLExist, dtPdate.Value.ToShortDateString(), this.ProjectIndex.ToString());
var delCnt = FCOMMON.DBM.ExecuteNonQuery(SQLExist);
Console.WriteLine(delCnt.ToString() + "건의 기존 입력된 자료가 삭제됨");
}
}
//insert query
var SQL =
" insert into purchase(pdate,state,process,request,sid,pumname,pumidx,pumscale,pumunit," +
" pumqty,pumprice,pumamt,supply,supplyidx,project,projectidx,bigo,import,wuid,wdate,orderno)" +
" select '{0}' as pdate,'{1}','{2}' as process ,'{3}' as request,ItemSid," +
" ItemName,Item,ItemModel,ItemUnit,qty,price,amt,ItemSupply,ItemSupplyidx,'{4}',Project," +
" memo,1 as import,'{5}' as wuid, getdate() as wdate,'{6}' as orderno" +
" from ProjectsPart" +
" where Project = {7}";
SQL = string.Format(SQL,
dtPdate.Value.ToShortDateString(),
cmbState.Text.Trim(),
cbProcess.Text.Trim(),
cmbRequest.Text.Trim(),
tbProject.Text.Trim(),
FCOMMON.info.Login.no,
tbOrderNo.Text.Trim(),
this.ProjectIndex.ToString()
);
// Console.WriteLine(SQL);
var cnt = FCOMMON.DBM.ExecuteNonQuery(SQL);
FCOMMON.Util.MsgI(string.Format("{0}건의 자료가 생성 되었습니다.\n\n구매등록 화면에서 내용을 확인하세요.", cnt));
return true;
}
private void button1_Click(object sender, EventArgs e)
{
if (!saveData()) return;
DialogResult = System.Windows.Forms.DialogResult.OK;
}
private void cbEQManu_SelectedIndexChanged(object sender, EventArgs e)
{
if (bsModel == null) return;
string = cbEQModel.Text;
//장비모델 필터를 변경해준다.
if (cbEQManu.SelectedIndex < 0)
{
cbEQModel.SelectedIndex = -1;
return;
}
string filter = "svalue='" + cbEQManu.Text.Replace("'", "''") + "'";
bsModel.Filter = filter;
if ( != "") cbEQModel.Text = ;
else cbEQModel.SelectedIndex = -1;
}
}
}