/// <summary> /// GetOrderLine /// </summary> /// <param name="ctx"></param> /// <param name="param"></param> /// <returns></returns> public Dictionary <String, String> GetOrderLine(Ctx ctx, string param) { string[] paramValue = param.Split(','); Dictionary <String, String> retDic = new Dictionary <string, string>(); //Assign parameter value int id; id = Util.GetValueOfInt(paramValue[0].ToString()); //End Assign parameter value MOrderLine orderline = new MOrderLine(ctx, id, null); retDic["C_Tax_ID"] = Util.GetValueOfString(orderline.GetC_Tax_ID()); retDic["PriceList"] = Util.GetValueOfString(orderline.GetPriceList()); retDic["PriceLimit"] = Util.GetValueOfString(orderline.GetPriceLimit()); retDic["PriceActual"] = Util.GetValueOfString(orderline.GetPriceActual()); retDic["PriceEntered"] = Util.GetValueOfString(orderline.GetPriceEntered()); retDic["C_Currency_ID"] = Util.GetValueOfString(orderline.GetC_Currency_ID()); retDic["Discount"] = Util.GetValueOfString(orderline.GetDiscount()); retDic["Discount"] = Util.GetValueOfString(orderline.GetDiscount()); retDic["M_Product_ID"] = Util.GetValueOfString(orderline.GetM_Product_ID()); retDic["Qty"] = Util.GetValueOfString(orderline.GetQtyEntered()); retDic["C_UOM_ID"] = Util.GetValueOfString(orderline.GetC_UOM_ID()); retDic["C_BPartner_ID"] = Util.GetValueOfString(orderline.GetC_BPartner_ID()); retDic["PlannedHours"] = Util.GetValueOfString(orderline.GetQtyOrdered()); retDic["M_AttributeSetInstance_ID"] = Util.GetValueOfString(orderline.GetM_AttributeSetInstance_ID()); retDic["QtyOrdered"] = Util.GetValueOfString(orderline.GetQtyOrdered()); retDic["QtyDelivered"] = Util.GetValueOfString(orderline.GetQtyDelivered()); retDic["QtyEntered"] = Util.GetValueOfString(orderline.GetQtyEntered()); retDic["C_Activity_ID"] = Util.GetValueOfString(orderline.GetC_Activity_ID()); retDic["C_Campaign_ID"] = Util.GetValueOfString(orderline.GetC_Campaign_ID()); retDic["C_Project_ID"] = Util.GetValueOfString(orderline.GetC_Project_ID()); retDic["C_ProjectPhase_ID"] = Util.GetValueOfString(orderline.GetC_ProjectPhase_ID()); retDic["C_ProjectTask_ID"] = Util.GetValueOfString(orderline.GetC_ProjectTask_ID()); retDic["AD_OrgTrx_ID"] = Util.GetValueOfString(orderline.GetAD_OrgTrx_ID()); retDic["User1_ID"] = Util.GetValueOfString(orderline.GetUser1_ID()); retDic["User2_ID"] = Util.GetValueOfString(orderline.GetUser2_ID()); retDic["IsReturnTrx"] = Util.GetValueOfString(orderline.GetParent().IsReturnTrx()).ToLower(); retDic["Orig_InOutLine_ID"] = Util.GetValueOfString(orderline.GetOrig_InOutLine_ID()); retDic["Orig_OrderLine_ID"] = Util.GetValueOfString(orderline.GetOrig_OrderLine_ID()); retDic["GetID"] = Util.GetValueOfString(orderline.Get_ID()); return(retDic); }
public JsonResult GetOrderLine(string param) { string retError = ""; string retJSON = ""; if (Session["ctx"] != null) { VAdvantage.Utility.Ctx ctx = Session["ctx"] as Ctx; string[] paramValue = param.Split(','); Dictionary <String, String> retDic = new Dictionary <string, string>(); //Assign parameter value int id; id = Util.GetValueOfInt(paramValue[0].ToString()); MOrderLine orderline = new MOrderLine(ctx, id, null); //retDic["Orig_InOutLine_ID", null); retDic["C_Tax_ID"] = orderline.GetC_Tax_ID().ToString(); retDic["PriceList"] = orderline.GetPriceList().ToString(); retDic["PriceLimit"] = orderline.GetPriceLimit().ToString(); retDic["PriceActual"] = orderline.GetPriceActual().ToString(); retDic["PriceEntered"] = orderline.GetPriceEntered().ToString(); retDic["C_Currency_ID"] = orderline.GetC_Currency_ID().ToString(); retDic["Discount"] = orderline.GetDiscount().ToString(); retDic["Discount"] = orderline.GetDiscount().ToString(); //retlst.Add(retValue); //retVal.Add(notReserved); retJSON = JsonConvert.SerializeObject(retDic); } else { retError = "Session Expired"; } return(Json(new { result = retJSON, error = retError }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Create Facts (the accounting logic) for /// MXP. /// <pre> /// Product PPV <difference> /// PPV_Offset <difference> /// </pre> /// </summary> /// <param name="as1"></param> /// <returns></returns> public override List <Fact> CreateFacts(MAcctSchema as1) { List <Fact> facts = new List <Fact>(); // if (GetM_Product_ID() == 0 || // Nothing to do if no Product Env.Signum(Utility.Util.GetValueOfDecimal(GetQty())) == 0 || _M_InOutLine_ID == 0) // No posting if not matched to Shipment { log.Fine("No Product/Qty - M_Product_ID=" + GetM_Product_ID() + ",Qty=" + GetQty()); return(facts); } // create Fact Header Fact fact = new Fact(this, as1, Fact.POST_Actual); SetC_Currency_ID(as1.GetC_Currency_ID()); // Purchase Order Line Decimal poCost = _oLine.GetPriceCost(); if (Env.Signum(poCost) == 0) { poCost = _oLine.GetPriceActual(); } poCost = Decimal.Multiply(poCost, Utility.Util.GetValueOfDecimal(GetQty())); // Delivered so far // Different currency if (_oLine.GetC_Currency_ID() != as1.GetC_Currency_ID()) { MOrder order = _oLine.GetParent(); Decimal rate = MConversionRate.GetRate( order.GetC_Currency_ID(), as1.GetC_Currency_ID(), order.GetDateAcct(), order.GetC_ConversionType_ID(), _oLine.GetAD_Client_ID(), _oLine.GetAD_Org_ID()); if (rate.ToString() == null) { _error = "Purchase Order not convertible - " + as1.GetName(); return(null); } poCost = Decimal.Multiply(poCost, rate); if (Env.Scale(poCost) > as1.GetCostingPrecision()) { poCost = Decimal.Round(poCost, as1.GetCostingPrecision(), MidpointRounding.AwayFromZero); } } MOrder order1 = _oLine.GetParent(); bool isReturnTrx = order1.IsReturnTrx(); log.Fine("Temp"); if (!IsPosted()) { // Create PO Cost Detail Record firs MCostDetail.CreateOrder(as1, _oLine.GetAD_Org_ID(), GetM_Product_ID(), _M_AttributeSetInstance_ID, _C_OrderLine_ID, 0, // no cost element isReturnTrx ? Decimal.Negate(poCost) : poCost, isReturnTrx ? Decimal.Negate(Utility.Util.GetValueOfDecimal(GetQty())) : Utility.Util.GetValueOfDecimal(GetQty()), // Delivered _oLine.GetDescription(), GetTrx(), GetRectifyingProcess()); } // Current Costs String costingMethod = as1.GetCostingMethod(); MProduct product = MProduct.Get(GetCtx(), GetM_Product_ID()); MProductCategoryAcct pca = MProductCategoryAcct.Get(GetCtx(), product.GetM_Product_Category_ID(), as1.GetC_AcctSchema_ID(), GetTrx()); if (pca.GetCostingMethod() != null) { costingMethod = pca.GetCostingMethod(); } Decimal?costs = _pc.GetProductCosts(as1, GetAD_Org_ID(), costingMethod, _C_OrderLine_ID, false); // non-zero costs // No Costs yet - no PPV if (costs == null || Env.Signum(Utility.Util.GetValueOfDecimal(costs)) == 0) { _error = "Resubmit - No Costs for " + product.GetName(); log.Log(Level.SEVERE, _error); return(null); } // Difference Decimal difference = Decimal.Subtract(poCost, Utility.Util.GetValueOfDecimal(costs)); /***********************************************************************************/ //05,Sep,2011 //Special Check to restic Price varience posting in case of //AvarageInvoice Selected on product Category.Then Neglact the AverageInvoice Cost try { if (as1.IsNotPostPOVariance()) { difference = 0; } } catch (Exception ex) { log.SaveError("AccountSchemaColumnError", ex); } /***********************************************************************************/ // Nothing to post if (Env.Signum(difference) == 0) { log.Log(Level.FINE, "No Cost Difference for M_Product_ID=" + GetM_Product_ID()); facts.Add(fact); return(facts); } // Product PPV FactLine cr = fact.CreateLine(null, _pc.GetAccount(ProductCost.ACCTTYPE_P_PPV, as1), as1.GetC_Currency_ID(), difference); if (cr != null) { cr.SetQty(GetQty()); cr.SetC_BPartner_ID(_oLine.GetC_BPartner_ID()); cr.SetC_Activity_ID(_oLine.GetC_Activity_ID()); cr.SetC_Campaign_ID(_oLine.GetC_Campaign_ID()); cr.SetC_Project_ID(_oLine.GetC_Project_ID()); cr.SetC_UOM_ID(_oLine.GetC_UOM_ID()); cr.SetUser1_ID(_oLine.GetUser1_ID()); cr.SetUser2_ID(_oLine.GetUser2_ID()); } // PPV Offset FactLine dr = fact.CreateLine(null, GetAccount(Doc.ACCTTYPE_PPVOffset, as1), as1.GetC_Currency_ID(), Decimal.Negate(difference)); if (dr != null) { dr.SetQty((Decimal?)Decimal.Negate(Utility.Util.GetValueOfDecimal(GetQty()))); dr.SetC_BPartner_ID(_oLine.GetC_BPartner_ID()); dr.SetC_Activity_ID(_oLine.GetC_Activity_ID()); dr.SetC_Campaign_ID(_oLine.GetC_Campaign_ID()); dr.SetC_Project_ID(_oLine.GetC_Project_ID()); dr.SetC_UOM_ID(_oLine.GetC_UOM_ID()); dr.SetUser1_ID(_oLine.GetUser1_ID()); dr.SetUser2_ID(_oLine.GetUser2_ID()); } // facts.Add(fact); return(facts); }