private bool CheckBeforeUpdate(PurchaseOrderHDTO dtoH, List <PurchaseOrderDDTO> dtoDs) { //Check Item is exist? CheckPurchaseOrderItem(dtoDs); return(true); }
/// <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(); } } }
/// <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(); } } }
private bool CheckBeforeAdd(PurchaseOrderHDTO dtoH, List <PurchaseOrderDDTO> dtoDs) { //Check PO exists CheckPOIsExists(dtoH); //Check Item is exist? CheckPurchaseOrderItem(dtoDs); return(true); }
private void OpenPurchaseOrderEntry(PurchaseOrderHDTO dtoPurchaseOrder) { PUR020_PurchaseOrderEntry dialog = new PUR020_PurchaseOrderEntry(dtoPurchaseOrder); if (dialog.ShowDialog(this) == DialogResult.OK) { OnRefresh(); } }
/// <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); }
private void tsbSaveAndNew_Click(object sender, EventArgs e) { if (Save()) { m_HDTOPurchaseOrder = null; this.SetDefault(null); this.SetScreenState(eScreenState.Add); } }
/// <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)); }
/// <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)); }
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); } }
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); }
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)); }
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)); }
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)); }
//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); } }
/// <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); }
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); }
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(); }
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)); }
/// <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); } }
/// <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(); } } }
/// <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>(); }
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; }
private bool CheckBeforeDelete(PurchaseOrderHDTO dtoH) { CanDeletePO(dtoH); return(true); }
/// <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)); }
/// <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(); } } }
public PurchaseOrderHDTO LoadByPK(PurchaseOrderHDTO dto) { PurchaseOrderHDAO dao = new PurchaseOrderHDAO(CommonLib.Common.CurrentDatabase); return(dao.LoadByPK(null, dto.PO_NO)); }
public List <PurchaseOrderDDTO> LoadDetailByPO(PurchaseOrderHDTO dto) { PurchaseOrderDDAO dao = new PurchaseOrderDDAO(CommonLib.Common.CurrentDatabase); return(dao.LoadPurchaseOrderDByPONo(null, dto)); }