신규 스케쥴 추가시 조회되지 않는 현상 수정

스케쥴 승인,1,2 기능 구현
This commit is contained in:
chi
2021-05-18 09:21:34 +09:00
parent d56775dc75
commit b3228bbdb6
41 changed files with 2390 additions and 723 deletions

View File

@@ -16,7 +16,8 @@ namespace FPJ0000
int projectindex = 0;
EEEntities db;
List<EETGW_ProjectsSchedule> list;
Boolean bini = false;
Boolean bInit = false;
public fProjectSchedule(int project_)
{
InitializeComponent();
@@ -26,6 +27,7 @@ namespace FPJ0000
fn_fpcolsize2 = util.MakeFilePath(util.CurrentPath, "formSetting", "fp2_" + this.Name + ".ini");
this.FormClosed += FProjectSchedule_FormClosed;
this.FormClosing += FProjectSchedule_FormClosing;
this.dsPRJ.EETGW_ProjectsSchedule.TableNewRow += ProjectsSchedule_TableNewRow;
}
private void FProjectSchedule_FormClosing(object sender, FormClosingEventArgs e)
@@ -33,7 +35,7 @@ namespace FPJ0000
this.Validate();
this.bs.EndEdit();
this.bsTodo.EndEdit();
if (dsPRJ.HasChanges())
{
var dlg = FCOMMON.Util.MsgQ("변경된 자료가 있습니다. 지금 화면을 닫으면 해당 자료는 손실됩니다\n화면을 닫을까요?");
@@ -47,7 +49,7 @@ namespace FPJ0000
private void FProjectSchedule_FormClosed(object sender, FormClosedEventArgs e)
{
this.dsPRJ.EETGW_ProjectsSchedule.TableNewRow -= ProjectsSchedule_TableNewRow;
this.dsPRJ.EETGW_ProjectsSchedule.RowChanged += EETGW_ProjectsSchedule_RowChanged;
}
@@ -56,6 +58,8 @@ namespace FPJ0000
e.Row["wuid"] = FCOMMON.info.Login.no;
e.Row["wdate"] = DateTime.Now;
e.Row["project"] = this.projectindex;
e.Row["appoval"] = 0; //신규추가는 확정안되는 데이터이다
e.Row["no"] = int.Parse(this.comboBox1.Text);
}
private void fProjectSchedule_Load(object sender, EventArgs e)
@@ -63,11 +67,35 @@ namespace FPJ0000
//프로젝트 정보 채우기
this.taProjectInfo.FillByIDX(this.dsPRJ.Projects, this.projectindex);
//스케쥴 그룹(no)
var db = new EEEntities();
var nolist = db.EETGW_ProjectsSchedule.AsNoTracking().Where(t => t.gcode == FCOMMON.info.Login.gcode && t.project == this.projectindex).GroupBy(t => t.no).ToList();
this.comboBox1.Items.Clear();
foreach (var item in nolist)
{
if (item.Key == null) this.comboBox1.Items.Add("1");
else this.comboBox1.Items.Add(item.Key.ToString());
}
db.Dispose();
if (this.comboBox1.Items.Count == 0)
{
util.MsgE("이 프로젝트에는 스케쥴이 등록되지 않았습니다\n" +
"스케쥴을 등록한 후 에는 관리자이 승인과정이 필요하며 승인이 완료되면 계획은 수정할 수 없습니다");
this.comboBox1.Items.Add("1");
this.comboBox1.SelectedIndex = 0;
}
else
{
this.comboBox1.SelectedIndex = this.comboBox1.Items.Count - 1;
}
this.comboBox1.Items.Add("스케쥴 추가");
RefreshData();
RefreshGraph();
this.dsPRJ.EETGW_ProjectsSchedule.RowChanged += EETGW_ProjectsSchedule_RowChanged;
bini = true;
//시작할떄 cww 를 가져오낟.
var sql = "select dbo.getWorkWeek('" + DateTime.Now.ToShortDateString() + "')";
@@ -77,14 +105,14 @@ namespace FPJ0000
CWW = int.Parse(wccstr.ToString());
cmd.Connection.Close();
cmd.Dispose();
bInit = true;
}
int CWW = 0;
private void EETGW_ProjectsSchedule_RowChanged(object sender, DataRowChangeEventArgs e)
{
if (bini == false) return;
if (bInit == false) return;
RefreshGraph();
}
@@ -94,10 +122,12 @@ namespace FPJ0000
}
void RefreshData()
{
var scno = int.Parse(comboBox1.Text);
try
{
//list = db.EETGW_ProjectsSchedule.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.project == this.projectindex).OrderBy(t => t.seq).ToList();
this.ta.Fill(this.dsPRJ.EETGW_ProjectsSchedule, FCOMMON.info.Login.gcode, this.projectindex);
this.ta.Fill(this.dsPRJ.EETGW_ProjectsSchedule, FCOMMON.info.Login.gcode, this.projectindex, scno);
this.taTodo.Fill(this.dsPRJ.EETGW_ProjectToDo, this.projectindex);
//this.bs.DataSource = list;//.ToList();// db.EETGW_ProjectsSchedule.Local;
//this.fpSpread1_Sheet1.DataSource = this.bs;
@@ -108,6 +138,45 @@ namespace FPJ0000
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
Application.DoEvents();
//해당스케쥴의 승인상태를 확인
var db = new EEEntities();
var dr = db.EETGW_ProjectsSchedule.Where(t => t.project == this.projectindex && t.no == scno).FirstOrDefault();
if (dr == null || dr.appoval == 0)
{
chkapp1.Checked = false;
chkapp2.Checked = false;
}
else if (dr.appoval == 1)
{
chkapp1.Checked = true;
chkapp2.Checked = false;
this.fpSpread1.Sheets[0].Columns[2].Locked = true;
this.fpSpread1.Sheets[0].Columns[3].Locked = true;
this.fpSpread1.Sheets[0].Columns[2].BackColor = Color.FromArgb(230, 230, 230);
this.fpSpread1.Sheets[0].Columns[3].BackColor = Color.FromArgb(230, 230, 230);
}
else
{
chkapp1.Checked = true;
chkapp2.Checked = true;
this.fpSpread1.Sheets[0].Columns[2].Locked = true;
this.fpSpread1.Sheets[0].Columns[3].Locked = true;
this.fpSpread1.Sheets[0].Columns[2].BackColor = Color.FromArgb(230, 230, 230);
this.fpSpread1.Sheets[0].Columns[3].BackColor = Color.FromArgb(230, 230, 230);
}
}
private void projectsScheduleBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
@@ -405,7 +474,7 @@ namespace FPJ0000
//actual
if (ww >= swa && ww <= ewa)
e.Graphics.FillRectangle(new SolidBrush(ABg), rect2BP.Left, rect2BP.Top, rect2BP.Width, rect2BP.Height);
else if (isEmpty == false && isBusy && ww >= swa && ww <= this.CWW )
else if (isEmpty == false && isBusy && ww >= swa && ww <= this.CWW)
{
e.Graphics.FillRectangle(new SolidBrush(Color.Pink), rect2BP.Left, rect2BP.Top, rect2BP.Width, rect2BP.Height);
}
@@ -515,5 +584,65 @@ namespace FPJ0000
//lad
FPUtil.ColSizeLoad(ref this.fpSpread2, fn_fpcolsize2);
}
private void chkapp1_Click(object sender, EventArgs e)
{
//권한이 있어야한다.
var db = new EEEntities();
var dr = db.Auth.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.user == FCOMMON.info.Login.no).FirstOrDefault();
if (dr == null || dr.scheapp == null || dr.scheapp < 1)
{
util.MsgE("'승인권한1'이 없습니다");
return;
}
if(chkapp1.Checked)
{
util.MsgE("'승인해제1'는 현재 구현 중");
}
else
{
chkapp1.Checked = true;
foreach(var item in this.dsPRJ.EETGW_ProjectsSchedule)
{
if (item.RowState == DataRowState.Deleted || item.RowState == DataRowState.Deleted) continue;
item.appoval = 1;
}
}
}
private void chkapp2_Click(object sender, EventArgs e)
{
//권한이 있어야한다.
var db = new EEEntities();
var dr = db.Auth.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.user == FCOMMON.info.Login.no).FirstOrDefault();
if (dr == null || dr.scheapp == null || dr.scheapp < 2)
{
util.MsgE("'승인권한2'이 없습니다");
return;
}
if (chkapp2.Checked)
{
util.MsgE("승인해제2'는 현재 구현 중");
}
else
{
chkapp2.Checked = true;
foreach (var item in this.dsPRJ.EETGW_ProjectsSchedule)
{
if (item.RowState == DataRowState.Deleted || item.RowState == DataRowState.Deleted) continue;
item.appoval = 2;
}
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (bInit == false) return;
if(comboBox1.SelectedIndex == this.comboBox1.Items.Count-1)
{
util.MsgE("스케쥴 신규 추가 기능은 준비 중 입니다");
this.comboBox1.SelectedIndex = this.comboBox1.Items.Count - 2;
}
}
}
}