/// <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;
 }
Example #2
0
        /// <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;
            }
        }
Example #4
0
        /// <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("정상제품에 대해서만 반품내역 추가할 수 있습니다.");
            }
        }
Example #5
0
        /// <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);
        }