/// <summary> /// 입고내역반품 생산자 /// </summary> /// <param name="rdvo">입고내역에 대한 VO</param> /// <param name="frmInventory">재고내역 메인 폼에 대한 개체</param> public ReceivingDetailsReturn(ReceivingDetailsVO rdvo, FrmInventory frmInventory) { this.rdvo = rdvo; InitializeComponent(); lblItemName.Text = rdvo.InventoryName; txtItemQuantity.Text = rdvo.Quantity + ""; this.frmInventory = frmInventory; }
/// <summary> /// ‘입고내역 적용' 버튼 클릭 시 입고내역서를 입고내역과 재고내역에 추가 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnReceivingDetailsSave_Click(object sender, EventArgs e) { receivingDetailsList = new List <ReceivingDetailsVO>(); bool temp = false; for (int i = 0; i < dgvReceivingDetails.Rows.Count; i++) { if (dgvReceivingDetails["InventoryName", i].Value == null) { temp = true; MessageBox.Show("등록되지 않은 재고는 입고내역에 추가되지 않습니다."); } else { ReceivingDetailsVO rd = new ReceivingDetailsVO(); rd.ReceivingDetailsID = dgvReceivingDetails["ReceivingDetailsID", i].Value.ToString(); rd.ReceivingDetailsDate = DateTime.Parse(dgvReceivingDetails["ReceivingDetailsDate", i].Value.ToString()); rd.ExpirationDate = DateTime.Parse(dgvReceivingDetails["ExpirationDate", i].Value.ToString()); rd.Quantity = Int32.Parse(dgvReceivingDetails["Quantity", i].Value.ToString()); rd.UnitPrice = float.Parse(dgvReceivingDetails["UnitPrice", i].Value.ToString()); rd.ReturnStatus = dgvReceivingDetails["ReturnStatus", i].Value.ToString(); rd.InventoryTypeCode = dgvReceivingDetails["InventoryTypeCode", i].Value.ToString(); receivingDetailsList.Add(rd); } } try { new InventoryDAO().InventoryInsert(receivingDetailsList); ReceivingDetailsListSelect(); MessageBox.Show("저장되었습니다."); btnReturnAdd.Enabled = btnReceivingDetailsSave.Enabled = false; } catch (SqlException) { if (temp == false) { MessageBox.Show("이미 저장되었습니다."); } btnReturnAdd.Enabled = btnReceivingDetailsSave.Enabled = false; } }
internal List <ReceivingDetailsVO> OutPutAllSaleRecords() { List <ReceivingDetailsVO> lst = new List <ReceivingDetailsVO>(); string sp = "OutPutAllReceiveingDetails"; try { SqlDataReader sdr = new DBConnection().Select(sp, null); while (sdr.Read()) { ReceivingDetailsVO receivingDetailsVO = new ReceivingDetailsVO(); receivingDetailsVO.ReceivingDetailsID = sdr["ReceivingDetailsID"].ToString(); receivingDetailsVO.UnitPrice = float.Parse(sdr["UnitPrice"].ToString()); receivingDetailsVO.InventoryTypeCode = sdr["InventoryTypeCode"].ToString(); lst.Add(receivingDetailsVO); } return(lst); } catch (SqlException) { throw; } }
/// <summary> /// 반품 추가 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnReturnAdd_Click(object sender, EventArgs e) { //반품 상태가 정상인 입고물품만 반품추가 가능 if (dgvReceivingDetails.SelectedRows[0].Cells["ReturnStatus"].Value.ToString() == "정상") { try { //선택된 rows의 내용들 VO에 보냄 ReceivingDetailsVOReturn = new ReceivingDetailsVO() { ReceivingDetailsID = dgvReceivingDetails.SelectedRows[0].Cells["ReceivingDetailsID"].Value.ToString(), InventoryName = dgvReceivingDetails.SelectedRows[0].Cells["InventoryName"].Value.ToString(), ReceivingDetailsDate = DateTime.Parse(dgvReceivingDetails.SelectedRows[0].Cells["ReceivingDetailsDate"].Value.ToString()), ExpirationDate = DateTime.Parse(dgvReceivingDetails.SelectedRows[0].Cells["ExpirationDate"].Value.ToString()), Quantity = Int32.Parse(dgvReceivingDetails.SelectedRows[0].Cells["Quantity"].Value.ToString()), UnitPrice = float.Parse(dgvReceivingDetails.SelectedRows[0].Cells["UnitPrice"].Value.ToString()), ReturnStatus = dgvReceivingDetails.SelectedRows[0].Cells["ReturnStatus"].Value.ToString(), InventoryTypeCode = dgvReceivingDetails.SelectedRows[0].Cells["InventoryTypeCode"].Value.ToString() }; //ReceivingDetailsReturn폼에 Vo를 보내줌 ReceivingDetailsReturn receivingDetailsReturn = new ReceivingDetailsReturn(ReceivingDetailsVOReturn, this); if (receivingDetailsReturn.ShowDialog() == DialogResult.OK) { dgvReceivingDetails.DataSource = null; for (int i = 0; i < receivingDetailsList.Count; i++) { //리스트에 입고(IN)으로 시작되는 내역만 검색함 if (receivingDetailsList[i].ReceivingDetailsID.Contains("IN")) { if (ReceivingDetailsVOReturn.ReceivingDetailsID.Substring(2, 8) == receivingDetailsList[i].ReceivingDetailsID.Substring(2, 8)) { receivingDetailsList[i].Quantity = receivingDetailsList[i].Quantity - ReceivingDetailsVOReturn.Quantity; if (receivingDetailsList[i].Quantity == 0) { receivingDetailsList.Remove(receivingDetailsList[i]); } } } } //선택된 row에 대한 반품내역 또는 교환내역이 이미 존재한다면 반품,교환내역에 수를 더해줌. for (int i = 0; i < receivingDetailsList.Count; i++) { if (receivingDetailsList[i].ReceivingDetailsID.Contains(ReceivingDetailsVOReturn.ReceivingDetailsID)) { ReceivingDetailsVOReturn.Quantity = receivingDetailsList[i].Quantity + ReceivingDetailsVOReturn.Quantity; receivingDetailsList.Remove(receivingDetailsList[i]); } } receivingDetailsList.Add(ReceivingDetailsVOReturn); dgvReceivingDetails.DataSource = receivingDetailsList; dgvReceivingDetails.Columns["ReceivingDetailsID"].HeaderText = "입고번호"; dgvReceivingDetails.Columns["ReceivingDetailsDate"].HeaderText = "입고날짜"; dgvReceivingDetails.Columns["ExpirationDate"].HeaderText = "유통기한"; dgvReceivingDetails.Columns["Quantity"].HeaderText = "수량"; dgvReceivingDetails.Columns["UnitPrice"].HeaderText = "단가"; dgvReceivingDetails.Columns["ReturnStatus"].HeaderText = "반품여부"; dgvReceivingDetails.Columns["InventoryTypeCode"].HeaderText = "재고종류코드"; dgvReceivingDetails.Columns["InventoryName"].HeaderText = "입고명"; } } catch (NullReferenceException) { MessageBox.Show("등록되지 않은 재고입니다."); } } else { MessageBox.Show("정상제품에 대해서만 반품내역 추가할 수 있습니다."); } }
/// <summary> /// 입고내역서(Excel) 파일 가져오기 /// </summary> /// <param name="filePath">엑셀파일의 경로</param> /// <returns>입고내역서에 대한 List파일</returns> private List <ReceivingDetailsVO> ExcelLoading(string filePath) { receivingDetailsList = new List <ReceivingDetailsVO>(); Excel.Application excelApp = new Excel.Application(); if (excelApp == null) { MessageBox.Show("Excel 응용프로그램을 찾을 수 없거나, 설치되지 않았습니다."); return(null); } Excel.Workbook workbook; Excel.Worksheet worksheet; object missingValue = System.Reflection.Missing.Value; if (!filePath.Contains(".xls")) { MessageBox.Show("excel파일이 아닙니다."); return(null); } workbook = excelApp.Workbooks.Open(filePath); worksheet = excelApp.Worksheets.Item[1]; if (worksheet.Cells[1, 1].Value.ToString() != "입고내역서") { MessageBox.Show("입고내역서가 아닙니다."); return(null); } int row = 4; string temp = worksheet.Cells[row, 2].Value.ToString(); while (temp != null) { ReceivingDetailsVO rd = new ReceivingDetailsVO(); rd.ReceivingDetailsID = worksheet.Cells[row, 2].Value.ToString(); rd.ReceivingDetailsDate = DateTime.Parse(worksheet.Cells[2, 6].Value.ToString()); rd.ExpirationDate = DateTime.Parse(worksheet.Cells[row, 6].Value.ToString()); rd.Quantity = Int32.Parse(worksheet.Cells[row, 5].Value.ToString()); rd.UnitPrice = float.Parse(worksheet.Cells[row, 4].Value.ToString()); rd.ReturnStatus = worksheet.Cells[row, 7].Value.ToString(); rd.InventoryTypeCode = worksheet.Cells[row, 8].Value.ToString(); for (int i = 0; i < dgvInventoryType.Rows.Count; i++) { if (dgvInventoryType["재고종류코드", i].Value.ToString() == rd.InventoryTypeCode) { rd.InventoryName = dgvInventoryType["재고명", i].Value.ToString(); break; } } row++; receivingDetailsList.Add(rd); try { temp = worksheet.Cells[row, 2].Value.ToString(); } catch (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException) { temp = null; } } workbook.Close(false, missingValue, missingValue); excelApp.Quit(); Marshal.ReleaseComObject(worksheet); Marshal.ReleaseComObject(workbook); Marshal.ReleaseComObject(excelApp); return(receivingDetailsList); }