Esempio n. 1
0
        private bool CheckBeforeUpdate(PurchaseOrderHDTO dtoH, List <PurchaseOrderDDTO> dtoDs)
        {
            //Check Item is exist?
            CheckPurchaseOrderItem(dtoDs);

            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// Cancel PO Header and Update Balance PO Function.
        /// </summary>
        /// <param name="dtoH">PO Header that want to cancel</param>
        public void CancelPO(PurchaseOrderHDTO dtoH)
        {
            Database db = null;

            try
            {
                db = Common.CurrentDatabase;
                db.KeepConnection = true;
                db.BeginTransaction(IsolationLevel.Serializable);

                _CancelPO(dtoH, db);

                db.Commit();
            }
            catch (Exception)
            {
                db.Rollback();
                throw;
            }
            finally
            {
                if (db.DBConnectionState == ConnectionState.Open)
                {
                    db.Close();
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Delete PO Line and Call Update PO balance Function
        /// </summary>
        /// <param name="dtoH">PO Header that be the owner of PO Detail List</param>
        /// <param name="dtoDs">PO Detail List that want to delete.</param>
        public void DeletePOLine(PurchaseOrderHDTO dtoH, List <PurchaseOrderDDTO> dtoDs)
        {
            Database db = null;

            try
            {
                db = Common.CurrentDatabase;
                db.KeepConnection = true;
                db.BeginTransaction(IsolationLevel.Serializable);

                _DeletePOLine(db, dtoH, dtoDs);

                PurchaseOrderDDAO daoD = new PurchaseOrderDDAO();
                // เมื่อลบเสร็จเช็คว่า ถ้าใน Purchase order ใบนี้ไม่มี list การสั่งซื้อเหลืออยู่แล้ว ให้กำหนดสถานะเป็น inactive
                if (!daoD.IsExistPOLine(db, dtoH.PO_NO))
                {
                    _CancelPO(dtoH, db);
                }
                db.Commit();
            }
            catch (Exception)
            {
                db.Rollback();
                throw;
            }
            finally
            {
                if (db.DBConnectionState == ConnectionState.Open)
                {
                    db.Close();
                }
            }
        }
Esempio n. 4
0
        private bool CheckBeforeAdd(PurchaseOrderHDTO dtoH, List <PurchaseOrderDDTO> dtoDs)
        {
            //Check PO exists
            CheckPOIsExists(dtoH);

            //Check Item is exist?
            CheckPurchaseOrderItem(dtoDs);
            return(true);
        }
Esempio n. 5
0
        private void OpenPurchaseOrderEntry(PurchaseOrderHDTO dtoPurchaseOrder)
        {
            PUR020_PurchaseOrderEntry dialog = new PUR020_PurchaseOrderEntry(dtoPurchaseOrder);

            if (dialog.ShowDialog(this) == DialogResult.OK)
            {
                OnRefresh();
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Generate PO Header.
        /// </summary>
        /// <param name="strPONo">PO No of PO Header.</param>
        /// <returns>PO Header</returns>
        private PurchaseOrderHDTO GeneratePurchaseOrderHDTO(NZString strPONo)
        {
            NZDateTime dtmPO         = new NZDateTime(dtmPODate, dtmPODate.Value);
            NZString   strSupplierCD = new NZString(cboSupplierCode, cboSupplierCode.SelectedValue);
            NZString   strDeliveryTo = chkOurFactory.Checked ? new NZString(cboDelivery, cboDelivery.Text) : new NZString(cboDelivery, cboDelivery.SelectedValue);
            NZString   strCurrency   = new NZString(cboCurrency, cboCurrency.SelectedValue);
            NZString   strVatRate    = new NZString(txtVatRate, txtVatRate.Text);
            string     strVatType    = (Convert.ToInt32(strVatRate) > 0) ? "02" : "01";

            #region validation

            ValidateException.ThrowErrorItem(PurchaseOrderEntryValidation.CheckDateTimeValue(dtmPO, Messages.eValidate.VLM0116));
            ValidateException.ThrowErrorItem(PurchaseOrderEntryValidation.CheckEmptyString(strSupplierCD, Messages.eValidate.VLM0118));
            if (!chkOurFactory.Checked)
            {
                ValidateException.ThrowErrorItem(PurchaseOrderEntryValidation.CheckEmptyString((NZString)strDeliveryTo, Messages.eValidate.VLM0119));
            }
            ValidateException.ThrowErrorItem(PurchaseOrderEntryValidation.CheckEmptyString((NZString)strCurrency, Messages.eValidate.VLM0121));
            if (this.m_ScreenStateEnum == eScreenState.Add)
            {
                ValidateException.ThrowErrorItem(PurchaseOrderEntryValidation.CheckPurchaseOrderItem((NZInt)shtView.Rows.Count));
            }

            #endregion


            PurchaseOrderHDTO hDTO = new PurchaseOrderHDTO
            {
                CRT_BY      = CommonLib.Common.CurrentUserInfomation.UserCD,
                CRT_DATE    = (NZDateTime)DateTime.UtcNow,
                CRT_MACHINE = CommonLib.Common.CurrentUserInfomation.Machine,
                UPD_BY      = CommonLib.Common.CurrentUserInfomation.UserCD,
                UPD_DATE    = (NZDateTime)DateTime.UtcNow,
                UPD_MACHINE = CommonLib.Common.CurrentUserInfomation.Machine,

                PO_NO     = strPONo,
                PO_DATE   = (NZDateTime)dtmPO,
                IS_ACTIVE = (NZBoolean)m_bIsActived, //(NZBoolean)((m_iPOStatus == 1) ? true : false),
                PO_TYPE   = (NZString)"01",          //(NZString)(cboPOType.SelectedValue.ToString()),

                IS_EXPORT = (NZBoolean)false,        //(NZBoolean)chkExport.Checked,
                ADDRESS   = (NZString)"",            // (NZString)txtAddress.Text,

                SUPPLIER_CD     = (NZString)strSupplierCD,
                DELIVERY_TO     = (NZString)strDeliveryTo,
                TERM_OF_PAYMENT = (NZString)(Convert.ToString(cboTermOfPayment.SelectedValue)),

                STATUS   = (NZString)"0",
                VAT_TYPE = (NZString)strVatType,
                VAT_RATE = (NZDecimal)Convert.ToDecimal(strVatRate),
                CURRENCY = (NZString)(cboCurrency.SelectedValue.ToString()),

                REMARK = (NZString)txtRemark.Text,
            };

            return(hDTO);
        }
Esempio n. 7
0
 private void tsbSaveAndNew_Click(object sender, EventArgs e)
 {
     if (Save())
     {
         m_HDTOPurchaseOrder = null;
         this.SetDefault(null);
         this.SetScreenState(eScreenState.Add);
     }
 }
Esempio n. 8
0
        /// <summary>
        /// Update record by using the table's primary key.
        /// </summary>
        /// <param name="database"></param>
        /// <param name="data">Data which to update.</param>
        /// <param name="oldPO_NO">Old Key #1</param>
        /// <returns></returns>
        public int UpdateWithPK(Database database, PurchaseOrderHDTO data, String oldPO_NO)
        {
            Database db = UseDatabase(database);

            StringBuilder sb = new StringBuilder();

            #region SQL Statement
            sb.AppendLine(" UPDATE " + data.TableName);
            sb.AppendLine(" SET ");
            sb.AppendLine("  " + PurchaseOrderHDTO.eColumns.UPD_BY + "=:UPD_BY");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.UPD_DATE + "=GETDATE()");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.UPD_MACHINE + "=:UPD_MACHINE");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.IS_ACTIVE + "=:IS_ACTIVE");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.PO_NO + "=:PO_NO");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.PO_TYPE + "=:PO_TYPE");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.PO_DATE + "=:PO_DATE");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.SUPPLIER_CD + "=:SUPPLIER_CD");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.SUPPLIER_NAME + "=:SUPPLIER_NAME");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.ADDRESS + "=:ADDRESS");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.DELIVERY_TO + "=:DELIVERY_TO");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.CURRENCY + "=:CURRENCY");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.VAT_TYPE + "=:VAT_TYPE");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.VAT_RATE + "=:VAT_RATE");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.TERM_OF_PAYMENT + "=:TERM_OF_PAYMENT");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.IS_EXPORT + "=:IS_EXPORT");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.STATUS + "=:STATUS");
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.REMARK + "=:REMARK");
            sb.AppendLine(" WHERE ");
            sb.AppendLine("  " + PurchaseOrderHDTO.eColumns.PO_NO + "=:oldPO_NO");
            #endregion

            DataRequest req = new DataRequest(sb.ToString());
            #region Parameters
            req.Parameters.Add("UPD_BY", DataType.NVarChar, data.UPD_BY.Value);
            req.Parameters.Add("UPD_MACHINE", DataType.NVarChar, data.UPD_MACHINE.Value);
            req.Parameters.Add("IS_ACTIVE", DataType.Default, data.IS_ACTIVE.Value);
            req.Parameters.Add("PO_NO", DataType.NVarChar, data.PO_NO.Value);
            req.Parameters.Add("PO_TYPE", DataType.NVarChar, data.PO_TYPE.Value);
            req.Parameters.Add("PO_DATE", DataType.Default, data.PO_DATE.Value);
            req.Parameters.Add("SUPPLIER_CD", DataType.NVarChar, data.SUPPLIER_CD.Value);
            req.Parameters.Add("SUPPLIER_NAME", DataType.NVarChar, data.SUPPLIER_NAME.Value);
            req.Parameters.Add("ADDRESS", DataType.NVarChar, data.ADDRESS.Value);
            req.Parameters.Add("DELIVERY_TO", DataType.NVarChar, data.DELIVERY_TO.Value);
            req.Parameters.Add("CURRENCY", DataType.NVarChar, data.CURRENCY.Value);
            req.Parameters.Add("VAT_TYPE", DataType.NVarChar, data.VAT_TYPE.Value);
            req.Parameters.Add("VAT_RATE", DataType.Number, data.VAT_RATE.Value);
            req.Parameters.Add("TERM_OF_PAYMENT", DataType.NVarChar, data.TERM_OF_PAYMENT.Value);
            req.Parameters.Add("IS_EXPORT", DataType.Default, data.IS_EXPORT.Value);
            req.Parameters.Add("STATUS", DataType.NVarChar, data.STATUS.Value);
            req.Parameters.Add("REMARK", DataType.NVarChar, data.REMARK.Value);
            req.Parameters.Add("oldPO_NO", DataType.NVarChar, oldPO_NO);
            #endregion

            return(db.ExecuteNonQuery(req));
        }
Esempio n. 9
0
        /// <summary>
        /// Check exist before manipulate data. If found record will update data. Otherwise insert new data.
        /// </summary>
        /// <param name="database"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public int AddNewOrUpdate(Database database, PurchaseOrderHDTO data)
        {
            Database db = UseDatabase(database);

            if (Exist(database, data.PO_NO))
            {
                return(UpdateWithoutPK(db, data));
            }

            return(AddNew(db, data));
        }
Esempio n. 10
0
        private void CanDeletePO(PurchaseOrderHDTO dtoH)
        {
            PurchaseOrderDDAO dao = new PurchaseOrderDDAO(CommonLib.Common.CurrentDatabase);
            DataTable         dt  = dao.LoadReceivePurchaseOrderD(null, dtoH);

            if (dt != null && dt.Rows.Count > 0)
            {
                ErrorItem errorItem = new ErrorItem(null, TKPMessages.eValidate.VLM0111.ToString());
                throw new BusinessException(errorItem);
            }
        }
Esempio n. 11
0
        private void Add()
        {
            ValidateAllRows();
            RunningNumberBIZ bizRunning = new RunningNumberBIZ();
            NZString         strPONo    = bizRunning.GetCompleteRunningNo(new NZString(null, "PO_NO"), new NZString(null, "TB_PURCHASE_ORDER_H_TR"));

            PurchaseOrderHDTO        hDTOPurchaseOrder = GeneratePurchaseOrderHDTO(strPONo);
            List <PurchaseOrderDDTO> dDTOPurchaseOrder = GeneratePurchaseOrderDDTO(strPONo, eModifyState.Add);

            m_BIZPurchaseOrder.AddPO(hDTOPurchaseOrder, dDTOPurchaseOrder);
        }
Esempio n. 12
0
        public int DeleteByPO(Database database, PurchaseOrderHDTO dto)
        {
            Database db = UseDatabase(database);

            DataRequest req = new DataRequest();

            req.CommandText = "S_MRP040_DeletePurchaseOrderDByPONo";
            req.CommandType = CommandType.StoredProcedure;
            req.Parameters.Add("@pVar_PO_NO", DataType.NVarChar, dto.PO_NO.Value);

            return(db.ExecuteNonQuery(req));
        }
Esempio n. 13
0
        public DataTable LoadReceivePurchaseOrderD(Database database, PurchaseOrderHDTO dto)
        {
            Database db = UseDatabase(database);

            DataRequest req = new DataRequest();

            req.CommandText = "S_MRP040_LoadReceiveItem";
            req.CommandType = CommandType.StoredProcedure;
            req.Parameters.Add("@pVar_PO_NO", DataType.VarChar, dto.PO_NO.Value);

            return(db.ExecuteQuery(req));
        }
Esempio n. 14
0
        internal int Cancel(Database database, PurchaseOrderHDTO dtoH)
        {
            Database db = UseDatabase(database);

            DataRequest req = new DataRequest();

            req.CommandText = "S_MRP040_CancelPO";
            req.CommandType = CommandType.StoredProcedure;
            req.Parameters.Add("@P_PO_NO", DataType.NVarChar, dtoH.PO_NO.Value);

            return(db.ExecuteNonQuery(req));
        }
Esempio n. 15
0
        //public void DeletePO(PurchaseOrderHDTO dtoH) {
        //    Database db = null;

        //    try {

        //        CheckBeforeDelete(dtoH);

        //        db = Common.CurrentDatabase;
        //        db.KeepConnection = true;
        //        db.BeginTransaction(IsolationLevel.Serializable);

        //        PurchaseOrderHDAO daoH = new PurchaseOrderHDAO(db);
        //        PurchaseOrderDDAO daoD = new PurchaseOrderDDAO(db);

        //        //----------delete Header : set InActive ------------
        //        daoH.DeletePurchaseOrderH(null, dtoH);

        //        //----------delete all detail------------------
        //        daoD.DeleteByPO(null, dtoH);

        //        db.Commit();
        //    }
        //    catch (Exception) {
        //        db.Rollback();
        //        throw;
        //    }
        //    finally {
        //        if (db.DBConnectionState == ConnectionState.Open)
        //            db.Close();
        //    }
        //}

        #endregion

        #region Validate

        private void CheckPOIsExists(PurchaseOrderHDTO dtoH)
        {
            ErrorItem errorItem;

            PurchaseOrderHDAO dao = new PurchaseOrderHDAO(CommonLib.Common.CurrentDatabase);

            if (dao.Exist(null, dtoH.PO_NO))
            {
                errorItem = new ErrorItem(null, TKPMessages.eValidate.VLM0110.ToString());
                throw new BusinessException(errorItem);
            }
        }
Esempio n. 16
0
        /// <summary>
        /// Private method that use for cancel PO
        /// </summary>
        /// <param name="dtoH"></param>
        /// <param name="db"></param>
        private void _CancelPO(PurchaseOrderHDTO dtoH, Database db)
        {
            PurchaseOrderHDAO daoH = new PurchaseOrderHDAO(db);
            PurchaseOrderDDAO daoD = new PurchaseOrderDDAO(db);

            List <PurchaseOrderDDTO> dDTOList = daoD.LoadPurchaseOrderDByPONo(null, dtoH);

            foreach (PurchaseOrderDDTO dtoD in dDTOList)
            {
                daoH.UpdateBalance(null, dtoH, dtoD, dtoD.RECEIVE_QTY);
            }
            daoH.Cancel(null, dtoH);
        }
Esempio n. 17
0
        public List <PurchaseOrderDDTO> LoadPurchaseOrderDByPONo(Database database, PurchaseOrderHDTO dto)
        {
            Database db = UseDatabase(database);

            DataRequest req = new DataRequest();

            req.CommandText = "S_MRP040_LoadPurchaseOrderDByPO";
            req.CommandType = CommandType.StoredProcedure;
            req.Parameters.Add("@pVar_PO_NO", DataType.VarChar, dto.PO_NO.Value);

            List <PurchaseOrderDDTO> list = db.ExecuteForList <PurchaseOrderDDTO>(req);

            return(list);
        }
Esempio n. 18
0
        private void Edit()
        {
            ValidateAllRows();
            NZString          strPONo           = m_HDTOPurchaseOrder.PO_NO;
            PurchaseOrderHDTO hDTOPurchaseOrder = GeneratePurchaseOrderHDTO(strPONo);

            // เก็บ dto แยก list สำหรับ add , edit , delete
            List <PurchaseOrderDDTO> dDTOPurchaseOrderAdd    = GeneratePurchaseOrderDDTO(strPONo, eModifyState.Add);
            List <PurchaseOrderDDTO> dDTOPurchaseOrderEdit   = GeneratePurchaseOrderDDTO(strPONo, eModifyState.Edit);
            List <PurchaseOrderDDTO> dDTOPurchaseOrderDelete = m_DDTOListForDelete;

            // update ทีเดียว
            m_BIZPurchaseOrder.UpdatePO(hDTOPurchaseOrder, dDTOPurchaseOrderEdit, dDTOPurchaseOrderAdd, dDTOPurchaseOrderDelete);

            m_DDTOListForDelete.Clear();
        }
Esempio n. 19
0
        public int UpdateBalance(Database database, PurchaseOrderHDTO dtoH, PurchaseOrderDDTO dtoD, decimal dChangeQty)
        {
            Database db = UseDatabase(database);

            DataRequest req = new DataRequest();

            req.CommandText = "S_PURP010_FIFOBalancePOProcess";
            req.CommandType = CommandType.StoredProcedure;
            req.Parameters.Add("@P_RECEIVING_ID", DBNull.Value);
            req.Parameters.Add("@P_RECEIVING_DATE", DataType.DateTime, dtoD.DUE_DATE.Value);
            req.Parameters.Add("@P_ITEM_CD", DataType.NVarChar, dtoD.ITEM_CD.Value);
            req.Parameters.Add("@P_SUPPLIER_CD", DataType.NVarChar, dtoH.SUPPLIER_CD.Value);
            req.Parameters.Add("@P_CHGQTY", DataType.Decimal, dChangeQty);

            return(db.ExecuteNonQuery(req));
        }
Esempio n. 20
0
        /// <summary>
        /// Private method that use for delete.
        /// </summary>
        /// <param name="db"></param>
        /// <param name="dtoH"></param>
        /// <param name="dtoDs"></param>
        private void _DeletePOLine(Database db, PurchaseOrderHDTO dtoH, List <PurchaseOrderDDTO> dtoDs)
        {
            CheckBeforeUpdate(dtoH, dtoDs);

            PurchaseOrderHDAO daoH = new PurchaseOrderHDAO(db);
            PurchaseOrderDDAO daoD = new PurchaseOrderDDAO(db);

            if (dtoDs == null)
            {
                return;
            }

            foreach (PurchaseOrderDDTO dtoD in dtoDs)
            {
                PurchaseOrderDDTO dtoDTmp = dtoD;
                dtoD.RECEIVE_QTY = (NZDecimal)daoD.DeleteWithReturnReceiveQTY(null, dtoD);

                daoH.UpdateBalance(null, dtoH, dtoD, dtoD.RECEIVE_QTY);
            }
        }
Esempio n. 21
0
        /// <summary>
        /// Add PO Header and detail into db.
        /// </summary>
        /// <param name="dtoH">PO Header that will be added into database.</param>
        /// <param name="dtoDs">PO Detail List that be linked with Header.</param>
        public void AddPO(PurchaseOrderHDTO dtoH, List <PurchaseOrderDDTO> dtoDs)
        {
            Database db = null;

            try {
                CheckBeforeAdd(dtoH, dtoDs);

                db = Common.CurrentDatabase;
                db.KeepConnection = true;
                db.BeginTransaction(IsolationLevel.Serializable);

                PurchaseOrderHDAO daoH = new PurchaseOrderHDAO(db);
                PurchaseOrderDDAO daoD = new PurchaseOrderDDAO(db);

                // Add Header
                daoH.AddNew(null, dtoH);

                // Add Details
                foreach (PurchaseOrderDDTO dtoD in dtoDs)
                {
                    daoD.AddNew(null, dtoD);
                }

                db.Commit();
            }
            catch (Exception) {
                db.Rollback();
                throw;
            }
            finally {
                if (db.DBConnectionState == ConnectionState.Open)
                {
                    db.Close();
                }
            }
        }
Esempio n. 22
0
        /// <summary>
        /// Set Default for each control in screen.
        /// </summary>
        /// <param name="hDTO">DTO for set default.</param>
        private void SetDefault(PurchaseOrderHDTO hDTO)
        {
            if (hDTO != null)
            {
                // แสดง header
                PurchaseOrderHDTO hDTOSearch = m_BIZPurchaseOrder.LoadByPK(hDTO);

                this.lblPoNo.Text    = hDTOSearch.PO_NO.ToString();
                this.dtmPODate.Value = hDTOSearch.PO_DATE;

                this.cboSupplierCode.SelectedValue = hDTOSearch.SUPPLIER_CD;

                string strDeliveryTo = Convert.ToString((new SysConfigBIZ().LoadByPK((NZString)"DELIVERY_TO", (NZString)"PUR010")).CHAR_DATA.Value);
                if (hDTOSearch.DELIVERY_TO.Value.Equals(strDeliveryTo))
                {
                    chkOurFactory.Checked = true;
                    chkOurFactory_CheckedChanged(this, null);
                }
                else
                {
                    this.cboDelivery.SelectedValue = hDTOSearch.DELIVERY_TO;
                }

                this.cboTermOfPayment.SelectedValue = hDTOSearch.TERM_OF_PAYMENT;

                m_bIsActived     = hDTO.IS_ACTIVE.StrongValue;
                lblPoStatus.Text = m_bIsActived ? "Active" : "Cancel";


                this.txtVatRate.Text           = hDTOSearch.VAT_RATE.ToString();
                this.cboCurrency.SelectedValue = hDTOSearch.CURRENCY;

                this.txtRemark.Text = hDTOSearch.REMARK;

                m_HDTOPurchaseOrder = hDTOSearch;

                // แสดง detail
                shtView.RowCount = 0;
                List <PurchaseOrderDDTO> dDTOPurchaseOrderList = m_BIZPurchaseOrder.LoadDetailByPO(m_HDTOPurchaseOrder);
                shtView.DataSource = DTOUtility.ConvertListToDataTable <PurchaseOrderDDTO>(dDTOPurchaseOrderList);

                for (int iRow = 0; iRow < shtView.RowCount; iRow++)
                {
                    LoadItem(iRow);
                    SetComboBoxInSpreadSheet(iRow);
                }

                if (hDTOSearch.IS_ACTIVE.StrongValue)
                {
                    SetScreenState(eScreenState.Edit);
                }
                else
                {
                    SetScreenState(eScreenState.View);
                }
            }
            else
            {
                // set default into Controls.
                var bizSysConfig = new SysConfigBIZ();

                string strVatRate = (bizSysConfig.LoadByPK((NZString)"VAT_RATE", (NZString)"PUR010")).CHAR_DATA;;
                this.txtVatRate.Text = strVatRate;

                string strCurrency = (bizSysConfig.LoadByPK((NZString)"CURRENCY", (NZString)"PUR010")).CHAR_DATA;;
                cboCurrency.SelectedValue = strCurrency;

                chkOurFactory.Checked = true;
                chkOurFactory_CheckedChanged(this, null);

                this.lblPoNo.Text    = string.Empty;
                this.dtmPODate.Value = DateTime.Now;

                this.cboSupplierCode.SelectedIndex  = -1;
                this.cboTermOfPayment.SelectedIndex = -1;

                lblPoStatus.Text = "Actived";

                this.txtRemark.Text = string.Empty;

                shtView.Rows.Count = 0;
                SetScreenState(eScreenState.Add);
            }
            m_DDTOListForDelete = new List <PurchaseOrderDDTO>();
        }
Esempio n. 23
0
        public PUR020_PurchaseOrderEntry(PurchaseOrderHDTO hdtoPurchaseOrder)
        {
            InitializeComponent();

            #region Set Component
            shtView.ActiveSkin = Common.ACTIVE_SKIN;

            this.WindowState = FormWindowState.Maximized;

            CtrlUtil.MappingDataFieldWithEnum(shtView, typeof(eColumn));
            m_BIZPurchaseOrder = new PurchaseOrderBIZ();
            LookupDataBIZ BIZLookupData = new LookupDataBIZ();

            cboSupplierCode.Format += CommonLib.Common.ComboBox_Format;
            cboSupplierCode.LoadLookupData(BIZLookupData.LoadLookupLocation(new NZString[] { (NZString)"04", (NZString)"05" }));
            cboSupplierCode.SelectedIndex = -1;

            cboDelivery.Format += CommonLib.Common.ComboBox_Format;
            cboDelivery.LoadLookupData(BIZLookupData.LoadLookupLocation(new NZString[]
                                                                        { (NZString)DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Customer),
                                                                          (NZString)DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.CustomerVendor) }));
            cboDelivery.SelectedIndex = -1;

            cboTermOfPayment.Format += CommonLib.Common.ComboBox_Format;
            cboTermOfPayment.LoadLookupData(BIZLookupData.LoadLookupClassType(DataDefine.TERM_OF_PAYMENT.ToNZString()));
            cboTermOfPayment.SelectedIndex = -1;

            cboCurrency.Format += CommonLib.Common.ComboBox_Format;
            cboCurrency.LoadLookupData(BIZLookupData.LoadLookupClassType(DataDefine.CURRENCY.ToNZString()));
            cboCurrency.SelectedIndex = -1;

            shtView.Columns[(int)eColumn.UNIT].CellType   = CtrlUtil.CreateComboBoxCellType(BIZLookupData.LoadLookupClassType(DataDefine.UM_CLS.ToNZString()), true);
            shtView.Columns[(int)eColumn.INV_UM].CellType = CtrlUtil.CreateComboBoxCellType(BIZLookupData.LoadLookupClassType(DataDefine.UM_CLS.ToNZString()), true);
            //shtView.Columns[(int)eColumn.STATUS].CellType = CtrlUtil.CreateComboBoxCellType(BIZLookupData.LoadLookupClassType(DataDefine.PO_STATUS.ToNZString()), true);


            // ซ่อน column บางตัว
            for (eColumn column = eColumn.PO_LINE; column < eColumn.STATUS; column++)
            {
                FarPoint.Win.Spread.Column hiddenColumn = shtView.Columns[(int)column];
                hiddenColumn.Visible = false;
                hiddenColumn.Label   = column.ToString();
                if (column == eColumn.PO_NO)
                {
                    column = eColumn.BACK_ORDER_QTY;
                }
            }
            shtView.Columns[(int)eColumn.ModifyState].Visible = false;
            shtView.Columns[(int)eColumn.KeptStatus].Visible  = false;
            shtView.Columns[(int)eColumn.RATE].Visible        = false;


            for (int iColumn = 0; iColumn < shtView.ColumnCount; iColumn++)
            {
                if (iColumn != (int)eColumn.BUTTON)
                {
                    shtView.Columns[iColumn].AllowAutoFilter = true;
                    shtView.Columns[iColumn].AllowAutoSort   = true;
                }
            }
            #endregion

            this.m_HDTOPurchaseOrder = hdtoPurchaseOrder;
        }
Esempio n. 24
0
        private bool CheckBeforeDelete(PurchaseOrderHDTO dtoH)
        {
            CanDeletePO(dtoH);

            return(true);
        }
Esempio n. 25
0
        /// <summary>
        /// Insert new record into database.
        /// </summary>
        /// <param name="database"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public int AddNew(Database database, PurchaseOrderHDTO data)
        {
            Database db = UseDatabase(database);

            StringBuilder sb = new StringBuilder();

            #region SQL Statement
            sb.AppendLine(" INSERT INTO " + data.TableName + "(");
            sb.AppendLine("  " + PurchaseOrderHDTO.eColumns.CRT_BY);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.CRT_DATE);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.CRT_MACHINE);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.UPD_BY);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.UPD_DATE);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.UPD_MACHINE);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.IS_ACTIVE);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.PO_NO);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.PO_TYPE);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.PO_DATE);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.SUPPLIER_CD);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.SUPPLIER_NAME);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.ADDRESS);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.DELIVERY_TO);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.CURRENCY);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.VAT_TYPE);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.VAT_RATE);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.TERM_OF_PAYMENT);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.IS_EXPORT);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.STATUS);
            sb.AppendLine("  ," + PurchaseOrderHDTO.eColumns.REMARK);
            sb.AppendLine(") VALUES(");
            sb.AppendLine("   :CRT_BY");
            sb.AppendLine("   ,GETDATE()");
            sb.AppendLine("   ,:CRT_MACHINE");
            sb.AppendLine("   ,:UPD_BY");
            sb.AppendLine("   ,GETDATE()");
            sb.AppendLine("   ,:UPD_MACHINE");
            sb.AppendLine("   ,:IS_ACTIVE");
            sb.AppendLine("   ,:PO_NO");
            sb.AppendLine("   ,:PO_TYPE");
            sb.AppendLine("   ,:PO_DATE");
            sb.AppendLine("   ,:SUPPLIER_CD");
            sb.AppendLine("   ,:SUPPLIER_NAME");
            sb.AppendLine("   ,:ADDRESS");
            sb.AppendLine("   ,:DELIVERY_TO");
            sb.AppendLine("   ,:CURRENCY");
            sb.AppendLine("   ,:VAT_TYPE");
            sb.AppendLine("   ,:VAT_RATE");
            sb.AppendLine("   ,:TERM_OF_PAYMENT");
            sb.AppendLine("   ,:IS_EXPORT");
            sb.AppendLine("   ,:STATUS");
            sb.AppendLine("   ,:REMARK");
            sb.AppendLine(" )");
            #endregion

            DataRequest req = new DataRequest(sb.ToString());
            #region Parameters
            req.Parameters.Add("CRT_BY", DataType.NVarChar, data.CRT_BY.Value);
            req.Parameters.Add("CRT_MACHINE", DataType.NVarChar, data.CRT_MACHINE.Value);
            req.Parameters.Add("UPD_BY", DataType.NVarChar, data.UPD_BY.Value);
            req.Parameters.Add("UPD_MACHINE", DataType.NVarChar, data.UPD_MACHINE.Value);
            req.Parameters.Add("IS_ACTIVE", DataType.Default, data.IS_ACTIVE.Value);
            req.Parameters.Add("PO_NO", DataType.NVarChar, data.PO_NO.Value);
            req.Parameters.Add("PO_TYPE", DataType.NVarChar, data.PO_TYPE.Value);
            req.Parameters.Add("PO_DATE", DataType.Default, data.PO_DATE.Value);
            req.Parameters.Add("SUPPLIER_CD", DataType.NVarChar, data.SUPPLIER_CD.Value);
            req.Parameters.Add("SUPPLIER_NAME", DataType.NVarChar, data.SUPPLIER_NAME.Value);
            req.Parameters.Add("ADDRESS", DataType.NVarChar, data.ADDRESS.Value);
            req.Parameters.Add("DELIVERY_TO", DataType.NVarChar, data.DELIVERY_TO.Value);
            req.Parameters.Add("CURRENCY", DataType.NVarChar, data.CURRENCY.Value);
            req.Parameters.Add("VAT_TYPE", DataType.NVarChar, data.VAT_TYPE.Value);
            req.Parameters.Add("VAT_RATE", DataType.Number, data.VAT_RATE.Value);
            req.Parameters.Add("TERM_OF_PAYMENT", DataType.NVarChar, data.TERM_OF_PAYMENT.Value);
            req.Parameters.Add("IS_EXPORT", DataType.Default, data.IS_EXPORT.Value);
            req.Parameters.Add("STATUS", DataType.NVarChar, data.STATUS.Value);
            req.Parameters.Add("REMARK", DataType.NVarChar, data.REMARK.Value);
            #endregion

            return(db.ExecuteNonQuery(req));
        }
Esempio n. 26
0
        /// <summary>
        /// Update PO (include add , edit , delete)
        /// </summary>
        /// <param name="dtoH">PO Header that want to update.</param>
        /// <param name="dtoDsUpdate">PO Detail List that want to update.</param>
        /// <param name="dtoDSAdd">PO Detail List that want to add into this PO Header.</param>
        /// <param name="dtoDSDel">PO Detail List that want to delete from this PO Header.</param>
        public void UpdatePO(PurchaseOrderHDTO dtoH, List <PurchaseOrderDDTO> dtoDsUpdate, List <PurchaseOrderDDTO> dtoDSAdd, List <PurchaseOrderDDTO> dtoDSDel)
        {
            Database db = null;

            try {
                CheckBeforeUpdate(dtoH, dtoDsUpdate);

                db = Common.CurrentDatabase;
                db.KeepConnection = true;
                db.BeginTransaction(IsolationLevel.Serializable);

                PurchaseOrderHDAO daoH = new PurchaseOrderHDAO(db);
                PurchaseOrderDDAO daoD = new PurchaseOrderDDAO(db);

                //----------Update Header ------------
                daoH.UpdateWithoutPK(null, dtoH);


                // Add Details Phase
                if (dtoDSAdd != null && dtoDSAdd.Count > 0)
                {
                    foreach (PurchaseOrderDDTO dtoD in dtoDSAdd)
                    {
                        daoD.AddNew(null, dtoD);
                    }
                }

                // Update Details Phase
                if (dtoDsUpdate != null && dtoDsUpdate.Count > 0)
                {
                    foreach (PurchaseOrderDDTO dtoD in dtoDsUpdate)
                    {
                        // เก็บผลต่างระหว่าง Receive Qty กับ PO Qty
                        // ถ้า Receive Qty > PO Qty หมายความว่า ได้มีการ update PO Qty ให้ลดลงจากปกติ และ Receive Qty มีมากเกินที่ต้องการ
                        // จะลด Receive Qty ให้เท่ากับ PO Qty และนำผลต่างนั้นไปเก็บไว้ใน Stack รอการใช้งานต่อไป
                        decimal dChangeQty = dtoD.RECEIVE_QTY - dtoD.PO_QTY;

                        // ถ้าค่า receive มากกว่า po qty จะปรับ receive ให้เท่ากับ po qty + สถานะเป็น 01
                        if (dtoD.RECEIVE_QTY >= dtoD.PO_QTY)
                        {
                            dtoD.RECEIVE_QTY = dtoD.PO_QTY;
                            if (!dtoD.STATUS.Value.Equals("02"))
                            {
                                dtoD.STATUS = (NZString)"01";
                            }
                        }
                        // ถ้าค่า receive น้อยกว่า po qty จะเปลี่ยนสถานะเป็น 00 คือ PO รายการนี้ยังได้ของไม่ครบ
                        else
                        {
                            if (!dtoD.STATUS.Value.Equals("02"))
                            {
                                dtoD.STATUS = (NZString)"00";
                            }
                        }
                        daoD.UpdateWithoutPK(null, dtoD);

                        // ถ้า receive มีการเปลี่ยนแปลง จะเรียก FIFO process
                        if (dChangeQty > 0)
                        {
                            daoH.UpdateBalance(null, dtoH, dtoD, dChangeQty);
                        }
                    }
                }

                // Delete Details Phase
                if (dtoDSDel != null && dtoDSDel.Count > 0)
                {
                    _DeletePOLine(db, dtoH, dtoDSDel);
                    // เมื่อลบเสร็จเช็คว่า ถ้าใน Purchase order ใบนี้ไม่มี list การสั่งซื้อเหลืออยู่แล้ว ให้กำหนดสถานะเป็น inactive
                    if (dtoDSAdd.Count == 0 && !daoD.IsExistPOLine(db, dtoH.PO_NO))
                    {
                        _CancelPO(dtoH, db);
                    }
                }

                db.Commit();
            }
            catch (Exception) {
                db.Rollback();
                throw;
            }
            finally {
                if (db.DBConnectionState == ConnectionState.Open)
                {
                    db.Close();
                }
            }
        }
Esempio n. 27
0
        public PurchaseOrderHDTO LoadByPK(PurchaseOrderHDTO dto)
        {
            PurchaseOrderHDAO dao = new PurchaseOrderHDAO(CommonLib.Common.CurrentDatabase);

            return(dao.LoadByPK(null, dto.PO_NO));
        }
Esempio n. 28
0
        public List <PurchaseOrderDDTO> LoadDetailByPO(PurchaseOrderHDTO dto)
        {
            PurchaseOrderDDAO dao = new PurchaseOrderDDAO(CommonLib.Common.CurrentDatabase);

            return(dao.LoadPurchaseOrderDByPONo(null, dto));
        }