336 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			336 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 fPartConfirm : FCOMMON.fBase
 | |
|     {
 | |
|         string fn_fpcolsize = "";
 | |
|         public int qty = 0;
 | |
| 
 | |
|         string search = string.Empty;
 | |
|         int idx = -1;
 | |
|         public fPartConfirm(dsPRJ.ProjectsPartDataTable dt,string sortkey)
 | |
|         {
 | |
|             InitializeComponent();
 | |
| 
 | |
|             this.bs.DataSource = dt;
 | |
|             this.bs.Sort = sortkey;
 | |
|             this.bs.Filter = "isnull(qtybuy,0) < 1";
 | |
| 
 | |
|             fn_fpcolsize = System.IO.Path.Combine(
 | |
|                 AppDomain.CurrentDomain.BaseDirectory,
 | |
|                 "formSetting",
 | |
|                 "fp_" + this.Name + ".ini");
 | |
| 
 | |
|             this.WindowState = FormWindowState.Normal;
 | |
|             this.StartPosition = FormStartPosition.CenterScreen;
 | |
|             this.KeyDown += (s1, e1) =>
 | |
|             {
 | |
|                 if (e1.KeyCode == Keys.Escape) this.Close();
 | |
|                 else if (e1.KeyCode == Keys.F1) btPrev.PerformClick();
 | |
|                 else if (e1.KeyCode == Keys.F9) btNext.PerformClick();
 | |
|                 else if (e1.KeyCode == Keys.F5) btConf.PerformClick();
 | |
|             };
 | |
|         }
 | |
| 
 | |
|         private void __Load(object sender, EventArgs e)
 | |
|         {
 | |
|             this.Show();
 | |
|             Application.DoEvents();
 | |
|             if (string.IsNullOrEmpty(tbFind.Text) == false)
 | |
|                 btFind.PerformClick();
 | |
|         }
 | |
|         void refreshData(string div)
 | |
|         {
 | |
|             this.taPMP.Fill(this.dsMSSQL.SPMaster, "%" + div + "%");
 | |
|             dvPMP.AutoResizeColumns();
 | |
|             //FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
 | |
| 
 | |
|             tbFind.Focus();
 | |
|                  //tbFind.SelectAll();
 | |
|         }
 | |
| 
 | |
| 
 | |
|         private void bs_CurrentChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             idx = -1;
 | |
|             var drv = bsPMP.Current as DataRowView;
 | |
|             if (drv == null) return;
 | |
|             var dr = drv.Row as dsPRJ.SPMasterRow;//.minutesRow;
 | |
|             idx = dr.ID;
 | |
|         }
 | |
| 
 | |
|         private void toolStripButton2_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 var cnt = this.taPMP.Update(this.dsMSSQL.SPMaster);
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE(ex.Message);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void 목록새로고침ToolStripMenuItem_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             this.refreshData(this.search);
 | |
|         }
 | |
| 
 | |
|         //void Find()
 | |
|         //{
 | |
|         //    var txt = tbFind.Text.Trim();
 | |
|         //    if (txt == "")
 | |
|         //    {
 | |
|         //        if(bs.Filter != "")
 | |
|         //        {
 | |
|         //            bs.Filter = "";
 | |
|         //            tbFind.BackColor = Color.WhiteSmoke;
 | |
|         //        }
 | |
|         //        tbFind.Focus();
 | |
|         //        return;
 | |
|         //    }
 | |
| 
 | |
|         //    //검색어가 잇으므로 검색을 수행한다
 | |
|         //    var cols = new string[] { "SIDNo","Storage","Location",
 | |
|         //    "PartName","PartNo","Memo","CostCenter","Enrollee"};
 | |
|         //    string filter = "";
 | |
|         //    foreach(var col in cols)
 | |
|         //    {
 | |
|         //        if (filter != "") filter += " or ";
 | |
|         //        filter += col + " like '%"+ txt.Replace("'","''") +"%' ";
 | |
|         //    }
 | |
|         //    try
 | |
|         //    {
 | |
|         //        this.bs.Filter = filter;
 | |
|         //        tbFind.BackColor = Color.Lime;
 | |
|         //        tbFind.SelectAll();
 | |
|         //    }catch (Exception ex)
 | |
|         //    {
 | |
|         //        this.bs.Filter = "";
 | |
|         //        tbFind.BackColor = Color.Red;
 | |
|         //        FCOMMON.Util.MsgE(ex.Message);
 | |
|         //    }
 | |
|         //}
 | |
| 
 | |
|         private void button1_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             refreshData(tbFind.Text.Trim());
 | |
|         }
 | |
| 
 | |
|         private void tbFind_KeyDown(object sender, KeyEventArgs e)
 | |
|         {
 | |
|             if (e.KeyCode == Keys.Enter)
 | |
|                 btFind.PerformClick();
 | |
|         }
 | |
| 
 | |
|         private void exportListToolStripMenuItem_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             SaveFileDialog sd = new SaveFileDialog();
 | |
|             sd.Filter = "excel|*.xls";
 | |
|             var fn = "pmplist";
 | |
|             sd.FileName = fn + ".xls";
 | |
|             if (sd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
 | |
|             {
 | |
|                 dvPMP.SaveExcelXML(sd.FileName);
 | |
|                 //fpSpread1.SaveExcel(sd.FileName,
 | |
|                 //    FarPoint.Excel.ExcelSaveFlags.SaveAsViewed
 | |
|                 //    | FarPoint.Excel.ExcelSaveFlags.SaveAsFiltered
 | |
|                 //    | FarPoint.Excel.ExcelSaveFlags.NoFormulas
 | |
|                 //    | FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         //private void autoToolStripMenuItem_Click(object sender, EventArgs e)
 | |
|         //{
 | |
|         //    this.fpSpread1.ActiveSheet.DataAutoSizeColumns = true;
 | |
| 
 | |
|         //    for (int i = 0; i < this.fpSpread1.ActiveSheet.Rows.Count; i++)
 | |
|         //        this.fpSpread1.ActiveSheet.SetRowHeight(i, 25);
 | |
|         //    //dv1.AutoResizeColumns();
 | |
|         //}
 | |
| 
 | |
|         //private void resetToolStripMenuItem_Click(object sender, EventArgs e)
 | |
|         //{
 | |
|         //    foreach (FarPoint.Win.Spread.Column col in this.fpSpread1.ActiveSheet.Columns)
 | |
|         //    {
 | |
|         //        col.Width = 100;
 | |
|         //    }
 | |
|         //}
 | |
| 
 | |
|         //private void saveToolStripMenuItem_Click(object sender, EventArgs e)
 | |
|         //{
 | |
|         //    FPUtil.ColsizeSave(this.fpSpread1, fn_fpcolsize);
 | |
|         //}
 | |
| 
 | |
|         //private void loadToolStripMenuItem_Click(object sender, EventArgs e)
 | |
|         //{
 | |
|         //    FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
 | |
|         //}
 | |
| 
 | |
|         private void btConf_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             var drv = this.bs.Current as DataRowView;
 | |
|             if (drv == null) return;
 | |
|             var dr = drv.Row as dsPRJ.ProjectsPartRow;
 | |
| 
 | |
|             var str_qty = textBox9.Text;
 | |
|             if (string.IsNullOrEmpty(str_qty) || str_qty == "-1")
 | |
|             {
 | |
|                 var result = FCOMMON.Util.MsgQ("구매 수량이 입력되지 않았습니다.\n\n자동으로 '0' 을 입력하시겠습니까?\n\n수량 '0'은 비 구매 항목으로 설정 됩니다");
 | |
|                 if(result == DialogResult.Yes)
 | |
|                 {
 | |
|                     dr.qtybuy = 0;
 | |
|                     if (dr.memo.IndexOf("비구매설정") == -1) dr.memo += "(비구매설정:" + DateTime.Now.ToString("MM-dd hh:mm:ss") + ")";
 | |
|                     textBox9.Text = "0";                    
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     textBox9.Focus();
 | |
|                     return;
 | |
|                 }
 | |
|             }
 | |
|             
 | |
|             this.Validate();
 | |
|             this.bs.EndEdit();
 | |
|             this.bsPMP.EndEdit();
 | |
| 
 | |
|   
 | |
|             //if (dr.qtybuy == 0 && dr.bbuy==false) dr.bbuy = true; //구매수량이0인것은 자동 확정한다
 | |
|             //dr.bconfirm = true;
 | |
|             dr.EndEdit();
 | |
| 
 | |
|             if (bs.Count < 1)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("미 확정 데이터가 없습니다.\n화면이 닫힙니다.");
 | |
|                 this.Close();
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 textBox9.Focus();
 | |
|                 this.textBox9.SelectAll();//
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void btNext_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             this.Validate();
 | |
|             this.bs.EndEdit();
 | |
|             this.bsPMP.EndEdit();
 | |
|                 
 | |
|                if (bs.Position < bs.Count - 1) bs.Position += 1;
 | |
|             textBox9.Focus();
 | |
|             this.textBox9.SelectAll();//
 | |
|         }
 | |
| 
 | |
|         private void btPrev_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             this.Validate();
 | |
|             this.bs.EndEdit();
 | |
|             this.bsPMP.EndEdit();
 | |
| 
 | |
|             if (bs.Position > 0) bs.Position -= 1;
 | |
|             textBox9.Focus();
 | |
|             this.textBox9.SelectAll();//
 | |
|         }
 | |
| 
 | |
|         private void bs_CurrentChanged_1(object sender, EventArgs e)
 | |
|         {
 | |
|             var drv = this.bs.Current as DataRowView;
 | |
|             if (drv == null)
 | |
|             {
 | |
|                 tbFind.Text = string.Empty;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 var dr = drv.Row as dsPRJ.ProjectsPartRow;
 | |
| 
 | |
|                 if (dr.ItemSid.Length == 9) tbFind.Text = dr.ItemSid;
 | |
|                 else if (dr.ItemName.Length > 4) tbFind.Text = dr.ItemName.Substring(0, 4);
 | |
|                 else if (dr.ItemName.Length > 0) tbFind.Text = dr.ItemName;
 | |
|                 else tbFind.Text = string.Empty;
 | |
|             }
 | |
|             
 | |
| 
 | |
|             if (string.IsNullOrEmpty(tbFind.Text) == true)
 | |
|             {
 | |
|                 dsMSSQL.SPMaster.Clear();
 | |
|             }
 | |
|             else btFind.PerformClick();
 | |
|         }
 | |
| 
 | |
|         private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 | |
|         {
 | |
|             finedata(textBox4.Text);
 | |
|         }
 | |
|         void finedata(string key)
 | |
|         {
 | |
|             tbFind.Text = key;
 | |
|             if (string.IsNullOrEmpty(key) == false)
 | |
|                 btFind.PerformClick();
 | |
|         }
 | |
| 
 | |
|         private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 | |
|         {
 | |
|             finedata(textBox3.Text);
 | |
|         }
 | |
| 
 | |
|         private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 | |
|         {
 | |
|             finedata(textBox5.Text);
 | |
|         }
 | |
| 
 | |
|         private void label3_Click(object sender, EventArgs e)
 | |
|         {
 | |
| 
 | |
|         }
 | |
| 
 | |
|         void aplyjago()
 | |
|         {
 | |
|             var drv = this.bsPMP.Current as DataRowView;
 | |
|             if (drv == null) return;
 | |
|             var dr = drv.Row as dsPRJ.SPMasterRow;
 | |
|             var qty = dr.CurrentQty;
 | |
|             if (qty < 1)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("현 재고가 없습니다");
 | |
|                 return;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 var drv2 = this.bs.Current as DataRowView;
 | |
|                 if (drv2 == null)
 | |
|                 {
 | |
|                     FCOMMON.Util.MsgE("미 확장 자료를 확인할 수 없습니다");
 | |
|                     return;
 | |
|                 }
 | |
| 
 | |
|                 var dr2 = drv2.Row as dsPRJ.ProjectsPartRow;
 | |
|                 var jagoqty = (int)Math.Min(dr2.qtyn, qty);
 | |
|                 dr2.qtyjago = jagoqty.ToString();
 | |
|                 dr2.jago = jagoqty;
 | |
|                 dr2.qtybuy = dr2.qtyn - jagoqty;
 | |
|                 var msg = "PMP재고 사용(" + jagoqty.ToString() + ")";
 | |
|                 if(dr2.memo.IndexOf(msg) == -1) dr2.memo += msg;
 | |
|                 dr2.EndEdit();
 | |
|             }
 | |
|         }
 | |
|         private void 재고에적용합니다ToolStripMenuItem_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             aplyjago();
 | |
|         }
 | |
| 
 | |
|         private void dvPMP_DoubleClick(object sender, EventArgs e)
 | |
|         {
 | |
|             aplyjago();
 | |
|         }
 | |
|     }
 | |
| }
 | 
