Files
Groupware/SubProject/FPJ0000/EBoard/fEboardData.cs
2023-07-12 17:22:24 +09:00

319 lines
12 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Windows.Forms;
using System.Threading.Tasks;
namespace FPJ0000
{
public partial class fEboardData : FCOMMON.fBase
{
dsPRJ.EETGW_JobReport_EBoardRow dr = null;
public fEboardData(dsPRJ.EETGW_JobReport_EBoardRow dr_)
{
InitializeComponent();
this.UseFormSetting = false;
this.dr = dr_;
this.dsPRJ.ProjectsHistory.TableNewRow += ProjectsHistory_TableNewRow;
}
void ProjectsHistory_TableNewRow(object sender, DataTableNewRowEventArgs e)
{
}
delegate void SetComboboxItemsHandler(ComboBox ctl, string[] list);
void SetComboboxItems(ComboBox ctl, string[] list)
{
//콤보박스의 아이템을 업데이트합니다.
if (ctl.InvokeRequired)
{
this.BeginInvoke(new SetComboboxItemsHandler(SetComboboxItems), new object[] { ctl, list });
return;
}
ctl.Items.Clear();
ctl.Items.AddRange(list);
ctl.Enabled = true;
}
private void fProjectData_Load(object sender, EventArgs e)
{
var db = new EEEntities();
//자동완성목록 업데이트
Task.Run(new Action(() =>
{
//UID목록
var lst_uid = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.uid) == false).OrderBy(t => t.uid).GroupBy(t => t.uid).Select(t => t.FirstOrDefault());
SetComboboxItems(cmbUID, lst_uid.Select(t => t.uid).ToArray());
//요청자
var lst_req = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.) == false).OrderBy(t => t.).GroupBy(t => t.).Select(t => t.FirstOrDefault());
SetComboboxItems(cmb요청자, lst_req.Select(t => t.).ToArray());
//모델
var lst_mod = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Model) == false).OrderBy(t => t.Model).GroupBy(t => t.Model).Select(t => t.FirstOrDefault());
SetComboboxItems(cmbModel, lst_mod.Select(t => t.Model).ToArray());
cmbModel.Enabled = true;
//BoardName
var lst_bon = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.BoardName) == false).OrderBy(t => t.BoardName).GroupBy(t => t.BoardName).Select(t => t.FirstOrDefault());
SetComboboxItems(cmbBoardName, lst_bon.Select(t => t.BoardName).ToArray());
cmbBoardName.Enabled = true;
//BoardVender
var lst_bvn = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.BoardVender) == false).OrderBy(t => t.BoardVender).GroupBy(t => t.BoardVender).Select(t => t.FirstOrDefault());
SetComboboxItems(cmbBoardVender, lst_bvn.Select(t => t.BoardVender).ToArray());
//SN
var lst_srn = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.SN) == false).OrderBy(t => t.SN).GroupBy(t => t.SN).Select(t => t.FirstOrDefault());
SetComboboxItems(cmbSN, lst_srn.Select(t => t.SN).ToArray());
////status
//var lst_sta = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Status) == false).OrderBy(t => t.Status).GroupBy(t => t.Status).Select(t => t.FirstOrDefault());
//SetComboboxItems(cmbStatus,lst_sta.Select(t => t.Status).ToArray());
//분류
var lst_cat = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.) == false).OrderBy(t => t.).GroupBy(t => t.).Select(t => t.FirstOrDefault());
SetComboboxItems(cmb분류, lst_cat.Select(t => t.).ToArray());
//Site
var lst_sit = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Site) == false).OrderBy(t => t.Site).GroupBy(t => t.Site).Select(t => t.FirstOrDefault());
SetComboboxItems(cmbSite, lst_sit.Select(t => t.Site).ToArray());
//Line
var lst_lin = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Line) == false).OrderBy(t => t.Line).GroupBy(t => t.Line).Select(t => t.FirstOrDefault());
SetComboboxItems(cmbLine, lst_lin.Select(t => t.Line).ToArray());
//division
var lst_div = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Division) == false).OrderBy(t => t.Division).GroupBy(t => t.Division).Select(t => t.FirstOrDefault());
SetComboboxItems(cmbDivision, lst_div.Select(t => t.Division).ToArray());
////Team
//var lst_tem = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Team) == false).OrderBy(t => t.Team).GroupBy(t => t.Team).Select(t => t.FirstOrDefault());
//SetComboboxItems(cmbTeam,lst_tem.Select(t => t.Team).ToArray());
//Process
var lst_prc = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Process) == false).OrderBy(t => t.Process).GroupBy(t => t.Process).Select(t => t.FirstOrDefault());
SetComboboxItems(cmbProcess, lst_prc.Select(t => t.Process).ToArray());
cmbProcess.Enabled = true;
//외주업체
var lst_ext = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.) == false).OrderBy(t => t.).GroupBy(t => t.).Select(t => t.FirstOrDefault());
SetComboboxItems(cmb외주업체, lst_ext.Select(t => t.).ToArray());
}));
///원인
if (string.IsNullOrEmpty(dr.2))
{
this.richTextBoxEx1.Text = dr.;
}
else
{
try
{
this.richTextBoxEx1.Rtf = dr.2;
}
catch
{
this.richTextBoxEx1.Text = dr.;
}
}
///결과
if (string.IsNullOrEmpty(dr.2))
{
this.richTextBoxEx2.Text = dr.;
}
else
{
try
{
this.richTextBoxEx2.Rtf = dr.2;
}
catch
{
this.richTextBoxEx2.Text = dr.;
}
}
this.checkBox1.Checked = dr.refdata;
this.tbSdate.Text = dr.pdate;
this.tbEdate.Text = dr.;
this.tbQty.Text = dr.QTY.ToString();
this.tbCostNew.Text = dr.NPrice.ToString();
this.tbCostOutSource.Text = dr.OPrice.ToString();
this.tbCostRepair.Text = dr.RepairCost.ToString();
this.tbCostReduct.Text = dr.CostReduction.ToString();
this.bs.DataSource = dr;
}
private void btSave_Click(object sender, EventArgs e)
{
this.Validate();
this.bs.EndEdit();
var s1 = tbCostOutSource.Text.Trim();
var s2 = tbCostRepair.Text.Trim();
float v1;
float v2;
var b1 = float.TryParse(s1, out v1);
var b2 = float.TryParse(s2, out v2);
if (b1 == false)
{
FCOMMON.Util.MsgE("입력값이 올바르지 않습니다. 숫자로 입력하세요");
tbCostOutSource.SelectAll();
tbCostOutSource.Focus();
return;
}
if (b2 == false)
{
FCOMMON.Util.MsgE("입력값이 올바르지 않습니다. 숫자로 입력하세요");
tbCostRepair.SelectAll();
tbCostRepair.Focus();
return;
}
if (tbSdate.Text.isEmpty() == false)
{
if (tbSdate.Text.isDate() == false)
{
FCOMMON.Util.MsgE("날짜형태로 입력하세요\n\n예) 2000-01-01");
tbSdate.SelectAll();
tbSdate.Focus();
return;
}
}
if (tbEdate.Text.isEmpty() == false)
{
if (tbEdate.Text.isDate() == false)
{
FCOMMON.Util.MsgE("날짜형태로 입력하세요\n\n예) 2000-01-01");
tbEdate.SelectAll();
tbEdate.Focus();
return;
}
}
this.dr. = richTextBoxEx1.Text;
this.dr.2 = richTextBoxEx1.Rtf;
this.dr. = richTextBoxEx2.Text;
this.dr.2 = richTextBoxEx2.Rtf;
this.dr.refdata = this.checkBox1.Checked;
this.dr.pdate = tbSdate.Text.Trim();
this.dr. = tbEdate.Text.Trim();
this.dr.QTY = tbQty.Text.ToInt();
this.dr.NPrice = tbCostNew.Text.ToDecimal();
this.dr.OPrice = tbCostOutSource.Text.ToDecimal();
this.dr.RepairCost = tbCostRepair.Text.ToDecimal();
this.dr.CostReduction = tbCostReduct.Text.ToDecimal();
this.dr.EndEdit();
this.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
//this.tableAdapterManager.UpdateAll(this.dsPRJ);
}
void SelectDate(TextBox ctl)
{
DateTime dt;
var dateStr = ctl.Text.Trim();
if (dateStr == "") dateStr = DateTime.Now.ToShortDateString();
else
{
if (DateTime.TryParse(dateStr, out dt)) dateStr = dt.ToShortDateString();
else
{
FCOMMON.Util.MsgE("날짜 형식으로 변환할 수 없는 문자열 입니다.\n" +
"기준일자가 금일로 변경 됩니다");
dateStr = DateTime.Now.ToShortDateString();
}
}
dt = DateTime.Parse(dateStr);
var f = new FCOMMON.fSelectDay(dt);
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
ctl.Text = f.dtPick.SelectionStart.ToShortDateString();
}
}
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
SelectDate(tbSdate);
}
private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
SelectDate(tbEdate);
//if (edateTextBox.Text.isEmpty() == false)
// cmbStatus.Text = "완료";
}
private void bs_CurrentChanged(object sender, EventArgs e)
{
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
}
private void tbQty_TextChanged(object sender, EventArgs e)
{
//수량변경시 금액 업데이트
var qty = tbQty.Text.ToInt();
var nAmt = tbCostNew.Text.ToDouble();
var oAmt = (nAmt * qty) * 0.5f;
var rAmt = tbCostRepair.Text.ToDouble();
var reduction = oAmt - rAmt;
this.tbCostOutSource.Text = oAmt.ToString();
//this.tbCostReduct.Text = reduction.ToString();
}
private void costnTextBox_TextChanged(object sender, EventArgs e)
{
//Out source 가 변경되면
var oAmt = tbCostOutSource.Text.ToDouble();
var rAmt = tbCostRepair.Text.ToDouble();
var reduction = oAmt - rAmt;
tbCostReduct.Text = reduction.ToString();
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
if (dr != null && (dr.RowState == DataRowState.Modified || dr.RowState == DataRowState.Unchanged))
{
Util.openEboarditemPath(dr.idx);
}
else FCOMMON.Util.MsgE("자료가 저장되기 전에는 폴더를 확인할 수 없습니다.\r\n자료를 저장한 후 다시 시도하세요");
}
}
}