public MVAMFGMWrkOdrTrnsctionLine(Ctx ctx, int VAMFG_M_WrkOdrTrnsctionLine_ID, Trx trx) : base(ctx, VAMFG_M_WrkOdrTrnsctionLine_ID, trx) { //base(ctx, M_WorkOrderTransactionLine_ID, trx); MVAMFGMWrkOdrTransaction wot = new MVAMFGMWrkOdrTransaction(ctx, GetVAMFG_M_WrkOdrTransaction_ID(), trx); SetClientOrg(wot); // New if (VAMFG_M_WrkOdrTrnsctionLine_ID == 0) { base.SetProcessed(false); } }
} // addDescription /// <summary> /// Before Delete ///</summary> /// <returns> true of it can be deleted</returns> protected override Boolean BeforeDelete() { MVAMFGMWrkOdrTransaction workOrderTxn = new MVAMFGMWrkOdrTransaction(GetCtx(), GetVAMFG_M_WrkOdrTransaction_ID(), Get_TrxName()); if (workOrderTxn.IsProcessed()) { return(false); } if (IsProcessed()) { return(false); } return(true); } // beforeDelete
protected override Boolean AfterDelete(bool success) { Tuple <String, String, String> mInfo = null; if (Env.HasModulePrefix("GOM01_", out mInfo)) { string qry = "SELECT SUM(GOM01_ActualQuantity) FROM VAMFG_M_WrkOdrTrnsctionLine WHERE VAMFG_M_WrkOdrTransaction_ID = " + GetVAMFG_M_WrkOdrTransaction_ID(); decimal qty = VAdvantage.Utility.Util.GetValueOfDecimal(DB.ExecuteScalar(qry, null, Get_TrxName())); MVAMFGMWrkOdrTransaction wrk = new MVAMFGMWrkOdrTransaction(GetCtx(), GetVAMFG_M_WrkOdrTransaction_ID(), Get_TrxName()); wrk.SetGOM01_ActualQuantity(qty); if (!wrk.Save()) { //Error log.SaveError("Error", Msg.Translate(GetCtx(), "Error while saving Production Execution")); return(false); } } return(true); }
} // setM_Product_ID /// <summary> /// This sets the required (not null) columns besides the ones that are standard across all POs. /// </summary> /// <param name="workOrderTransactionID">workOrderTransactionID</param> /// <param name="productID">productID</param> /// <param name="uomID"> qty</param> /// <param name="qty"></param> /// <param name="operationID"></param> /// <param name="basisType"></param> public void SetRequiredColumns(int workOrderTransactionID, int productID, int AttributeSet_ID, int uomID, Decimal qty, int operationID, String basisType) { SetVAMFG_M_WrkOdrTransaction_ID(workOrderTransactionID); if (uomID > 0) { SetM_Product_ID(productID); // set Attributeset Instance ID also on work order transaction line // added by vivek on 16/12/2017 assigned by pradeep SetM_AttributeSetInstance_ID(AttributeSet_ID); SetC_UOM_ID(uomID); } else { SetM_Product_ID(productID, true); // set Attributeset Instance ID also on work order transaction line // added by vivek on 16/12/2017 assigned by pradeep SetM_AttributeSetInstance_ID(AttributeSet_ID); } //setQtyEntered(qty.setScale(MUOM.GetPrecision(GetCtx(), GetC_UOM_ID()), BigDecimal.ROUND_HALF_UP)); SetVAMFG_QtyEntered(Decimal.Round((qty), VAdvantage.Model.MUOM.GetPrecision(GetCtx(), GetC_UOM_ID()))); SetVAMFG_M_WorkOrderOperation_ID(operationID); SetBasisType(basisType); // set BP details while creating component Txn lines added by vivek on 04/01/2018 MVAMFGMWrkOdrTransaction wot = new MVAMFGMWrkOdrTransaction(GetCtx(), workOrderTransactionID, Get_TrxName()); SetC_BPartner_ID(wot.GetC_BPartner_ID()); SetC_BPartner_Location_ID(wot.GetC_BPartner_Location_ID()); SetAD_User_ID(wot.GetAD_User_ID()); VAdvantage.Model.MRole role = VAdvantage.Model.MRole.GetDefault(GetCtx(), false); String sql = "SELECT COALESCE(MAX(VAMFG_Line),0)+10 AS DefaultValue FROM VAMFG_M_WrkOdrTrnsctionLine WHERE VAMFG_M_WrkOdrTransaction_ID=@param1"; sql = role.AddAccessSQL(sql, "VAMFG_M_WrkOdrTrnsctionLine", VAdvantage.Model.MRole.SQL_NOTQUALIFIED, VAdvantage.Model.MRole.SQL_RO); //PreparedStatement pstmt = DB.prepareStatement(sql, (Trx) null); //ResultSet rs = null; SqlParameter[] param = null; IDataReader idr = null; DataTable dt = new DataTable(); try { param = new SqlParameter[1]; param[0] = new SqlParameter("@param1", workOrderTransactionID); idr = DB.ExecuteReader(sql, param, null); if (idr.Read()) { SetVAMFG_Line(VAdvantage.Utility.Util.GetValueOfInt(idr[0])); } if (idr != null) { idr.Close(); idr = null; } //pstmt.setInt(1, workOrderTransactionID); //rs = pstmt.executeQuery(); //if (rs.next()) //{ // setLine(rs.getInt(1)); //} //rs.close(); //pstmt.close(); } catch { if (idr != null) { idr.Close(); idr = null; } log.Log(Level.SEVERE, sql); } } // setRequiredColumns
} // beforeDelete /// <summary> /// Is used to save record pn production execution line /// </summary> /// <param name="newRecord">newRecord</param> /// <returns>TRUE if success</returns> protected override Boolean BeforeSave(bool newRecord) { if (GetVAMFG_Line() < 0) { log.SaveError("Error", Msg.ParseTranslation(GetCtx(), "@Line@ < 0")); return(false); } MVAMFGMWrkOdrTransaction wot = new MVAMFGMWrkOdrTransaction(GetCtx(), GetVAMFG_M_WrkOdrTransaction_ID(), Get_TrxName()); string _sql = "Select Sum(GOM01_ActualQuantity) as QtyEntered From VAMFG_M_WrkOdrTrnsctionLine Where VAMFG_M_WrkOdrTransaction_ID=" + GetVAMFG_M_WrkOdrTransaction_ID() + " AND M_Product_ID=" + GetM_Product_ID() + "" + " AND M_AttributeSetInstance_ID=" + GetM_AttributeSetInstance_ID(); decimal Qty = Util.GetValueOfDecimal(DB.ExecuteScalar(_sql)); if (Qty > 0) { Qty = Qty + GetGOM01_ActualQuantity(); string qry = "SELECT currentqty FROM M_Transaction WHERE M_Transaction_ID = (SELECT MAX(M_Transaction_ID) FROM M_Transaction WHERE movementdate = " + " (SELECT MAX(movementdate) FROM M_Transaction WHERE movementdate <= " + GlobalVariable.TO_DATE(wot.GetVAMFG_DateTrx(), true) + " AND M_Product_ID = " + GetM_Product_ID() + " AND M_Locator_ID = " + GetM_Locator_ID() + " AND M_AttributeSetInstance_ID = " + GetM_AttributeSetInstance_ID() + ") AND M_Product_ID = " + GetM_Product_ID() + " AND M_Locator_ID = " + GetM_Locator_ID() + " AND M_AttributeSetInstance_ID = " + GetM_AttributeSetInstance_ID() + ") AND AD_Org_ID = " + GetAD_Org_ID() + " AND M_Product_ID = " + GetM_Product_ID() + " AND M_Locator_ID = " + GetM_Locator_ID() + " AND M_AttributeSetInstance_ID = " + GetM_AttributeSetInstance_ID(); decimal CurrentQty = VAdvantage.Utility.Util.GetValueOfDecimal(DB.ExecuteScalar(qry)); if (CurrentQty < Qty) { log.SaveError("Error", Msg.Translate(GetCtx(), "Insufficient qty in warehouse for the product")); return(false); } } // get current cost from product cost on new record and when product changed // currency conversion also required if order has different currency with base currency if ((newRecord || (Is_ValueChanged("M_Product_ID"))) && GetM_Product_ID() > 0) { decimal currentcostprice = MCost.GetproductCosts(GetAD_Client_ID(), GetAD_Org_ID(), GetM_Product_ID(), VAdvantage.Utility.Util.GetValueOfInt(GetM_AttributeSetInstance_ID()), Get_TrxName()); decimal currentQty = GetCurrentQtyFromMCost(GetAD_Client_ID(), GetAD_Org_ID(), GetM_Product_ID(), VAdvantage.Utility.Util.GetValueOfInt(GetM_AttributeSetInstance_ID()), Get_TrxName()); bool isGomel = Env.IsModuleInstalled("GOM01_"); //MVAMFGMWrkOdrTransaction wot = new MVAMFGMWrkOdrTransaction(GetCtx(), GetVAMFG_M_WrkOdrTransaction_ID(), Get_TrxName()); if (wot.GetVAMFG_Description() != null && wot.GetVAMFG_Description().Contains("{->")) { // not to set cuurent cost price on reversal because its already filed during creation of line } else if (isGomel && Get_ColumnIndex("GOM01_ActualQuantity") > 0 && GetGOM01_ActualQuantity() <= currentQty) { SetCurrentCostPrice(currentcostprice); } else if (!isGomel) // if gomel module is not available, then update currenct cost price on save { SetCurrentCostPrice(currentcostprice); } } if (Is_ValueChanged("VAMFG_QtyEntered")) { //BigDecimal qtyEntered = GetVAMFG_QtyEntered().setScale(MUOM.getPrecision(getCtx(), getC_UOM_ID()), BigDecimal.ROUND_HALF_UP); Decimal qtyEntered = Decimal.Round((GetVAMFG_QtyEntered()), VAdvantage.Model.MUOM.GetPrecision(GetCtx(), GetC_UOM_ID())); if (qtyEntered.CompareTo(GetVAMFG_QtyEntered()) != 0) { log.Fine("Corrected QtyEntered Scale UOM=" + GetC_UOM_ID() + "; QtyEntered =" + GetVAMFG_QtyEntered() + "->" + qtyEntered); SetVAMFG_QtyEntered(qtyEntered); } } return(true); }