/// <summary> /// Invoice Line Constructor /// </summary> /// <param name="iLine">invoice line</param> /// <param name="dateTrx">optional date</param> /// <param name="qty">matched quantity</param> public MMatchPO(MInvoiceLine iLine, DateTime?dateTrx, Decimal qty) : this(iLine.GetCtx(), 0, iLine.Get_Trx()) { SetClientOrg(iLine); SetC_InvoiceLine_ID(iLine); if (iLine.GetC_OrderLine_ID() != 0) { SetC_OrderLine_ID(iLine.GetC_OrderLine_ID()); } if (dateTrx != null) { SetDateTrx(dateTrx); } SetM_Product_ID(iLine.GetM_Product_ID()); SetM_AttributeSetInstance_ID(iLine.GetM_AttributeSetInstance_ID()); SetQty(qty); SetProcessed(true); // auto }
/** * Get Tax Line for Invoice Line * @param line invoice line * @param precision currency precision * @param oldTax if true old tax is returned * @param trxName transaction name * @return existing or new tax */ public static MInvoiceTax Get(MInvoiceLine line, int precision, Boolean oldTax, Trx trxName) { MInvoiceTax retValue = null; try { if (line == null || line.GetC_Invoice_ID() == 0 || line.IsDescription()) { return(null); } int C_Tax_ID = line.GetC_Tax_ID(); if (oldTax && line.Is_ValueChanged("C_Tax_ID")) { Object old = line.Get_ValueOld("C_Tax_ID"); if (old == null) { return(null); } C_Tax_ID = int.Parse(old.ToString()); } if (C_Tax_ID == 0) { _log.Warning("C_Tax_ID=0"); return(null); } String sql = "SELECT * FROM C_InvoiceTax WHERE C_Invoice_ID=" + line.GetC_Invoice_ID() + " AND C_Tax_ID=" + C_Tax_ID; try { DataSet ds = DataBase.DB.ExecuteDataset(sql, null, trxName); if (ds.Tables.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { retValue = new MInvoiceTax(line.GetCtx(), dr, trxName); } } } catch (Exception e) { _log.Log(Level.SEVERE, sql, e); } if (retValue != null) { retValue.Set_TrxName(trxName); retValue.SetPrecision(precision); _log.Fine("(old=" + oldTax + ") " + retValue); return(retValue); } // Create New retValue = new MInvoiceTax(line.GetCtx(), 0, trxName); retValue.Set_TrxName(trxName); retValue.SetClientOrg(line); retValue.SetC_Invoice_ID(line.GetC_Invoice_ID()); retValue.SetC_Tax_ID(line.GetC_Tax_ID()); retValue.SetPrecision(precision); retValue.SetIsTaxIncluded(line.IsTaxIncluded()); _log.Fine("(new) " + retValue); } catch { // MessageBox.Show("MInvoiceTax--Get"); } return(retValue); }
// Create Asset From Invoice Mohit /** * Shipment Constructor * @param Invoice * @param shipLine shipment line * @param deliveryCount 0 or number of delivery */ public MAsset(MInvoice invoice, MInvoiceLine invoiceline, int deliveryCount) : this(invoiceline.GetCtx(), 0, invoiceline.Get_TrxName()) { SetClientOrg(invoiceline); SetValueNameDescription(invoice, invoiceline, deliveryCount); // Header //SetIsOwned(true); SetC_BPartner_ID(invoice.GetC_BPartner_ID()); SetC_BPartner_Location_ID(invoice.GetC_BPartner_Location_ID()); SetAD_User_ID(invoice.GetAD_User_ID()); //SetM_Locator_ID(invoice.GetM_Locator_ID()); SetIsInPosession(true); SetAssetServiceDate(invoice.GetDateAcct()); // Line MProduct product = invoiceline.GetProduct(); SetM_Product_ID(product.GetM_Product_ID()); SetA_Asset_Group_ID(product.GetA_Asset_Group_ID()); //////////////////////////////* //Changes for vafam // SetAssetServiceDate(shipment.GetMovementDate()); //SetGuaranteeDate(TimeUtil.AddDays(shipment.GetMovementDate(), product.GetGuaranteeDays())); MAssetGroup _assetGroup = new MAssetGroup(GetCtx(), GetA_Asset_Group_ID(), invoice.Get_TrxName()); if (_assetGroup.IsOwned()) { SetIsOwned(true); //SetC_BPartner_ID(0); } if (_assetGroup.IsDepreciated()) { SetIsDepreciated(true); SetIsFullyDepreciated(false); } //////////////////////////////////// //Change by Sukhwinder for setting Asset type and amortization template on Asset window, MANTIS ID:1762 int countVA038 = Util.GetValueOfInt(DB.ExecuteScalar("SELECT COUNT(AD_MODULEINFO_ID) FROM AD_MODULEINFO WHERE PREFIX='VA038_' ")); int countVAFAM = Util.GetValueOfInt(DB.ExecuteScalar("SELECT COUNT(AD_MODULEINFO_ID) FROM AD_MODULEINFO WHERE PREFIX='VAFAM_' ")); if (countVA038 > 0) { Set_Value("VA038_AmortizationTemplate_ID", Utility.Util.GetValueOfInt(_assetGroup.Get_Value("VA038_AmortizationTemplate_ID"))); } if (countVAFAM > 0) { Set_Value("VAFAM_AssetType", _assetGroup.Get_Value("VAFAM_AssetType").ToString()); Set_Value("VAFAM_DepreciationType_ID", Utility.Util.GetValueOfInt(_assetGroup.Get_Value("VAFAM_DepreciationType_ID"))); } //////////////////////////////////// // Guarantee & Version SetGuaranteeDate(TimeUtil.AddDays(invoice.GetDateInvoiced(), product.GetGuaranteeDays())); SetVersionNo(product.GetVersionNo()); if (invoiceline.GetM_AttributeSetInstance_ID() != 0) // Instance { MAttributeSetInstance asi = new MAttributeSetInstance(GetCtx(), invoiceline.GetM_AttributeSetInstance_ID(), Get_TrxName()); SetM_AttributeSetInstance_ID(asi.GetM_AttributeSetInstance_ID()); SetLot(asi.GetLot()); SetSerNo(asi.GetSerNo()); } SetHelp(invoiceline.GetDescription()); // Qty int units = product.GetSupportUnits(); if (units == 0) { units = 1; } if (deliveryCount != 0) // one asset per UOM { SetQty(invoiceline.GetQtyEntered(), units); } else { SetQty((Decimal)units); } SetM_InOutLine_ID(invoiceline.GetM_InOutLine_ID()); Set_Value("C_InvoiceLine_ID", invoiceline.GetC_InvoiceLine_ID()); // Activate MAssetGroup ag = MAssetGroup.Get(GetCtx(), GetA_Asset_Group_ID()); if (!ag.IsCreateAsActive()) { SetIsActive(false); } }
/** * Find/Create PO(Inv) Match * @param iLine invoice line * @param sLine receipt line * @param dateTrx date * @param qty qty * @return Match Record */ public static MMatchPO Create(MInvoiceLine iLine, MInOutLine sLine, DateTime?dateTrx, Decimal qty) { Trx trxName = null; Ctx ctx = null; int C_OrderLine_ID = 0; if (iLine != null) { trxName = iLine.Get_Trx(); ctx = iLine.GetCtx(); C_OrderLine_ID = iLine.GetC_OrderLine_ID(); } if (sLine != null) { trxName = sLine.Get_Trx(); ctx = sLine.GetCtx(); C_OrderLine_ID = sLine.GetC_OrderLine_ID(); } MMatchPO retValue = null; String sql = "SELECT * FROM M_MatchPO WHERE C_OrderLine_ID=" + C_OrderLine_ID; // ArrayList list = new ArrayList(); DataSet ds = null; try { ds = DataBase.DB.ExecuteDataset(sql, null, trxName); foreach (DataRow dr in ds.Tables[0].Rows) { MMatchPO mpo = new MMatchPO(ctx, dr, trxName); if (qty.CompareTo(mpo.GetQty()) == 0) { if (iLine != null) { if (mpo.GetC_InvoiceLine_ID() == 0 || mpo.GetC_InvoiceLine_ID() == iLine.GetC_InvoiceLine_ID()) { mpo.SetC_InvoiceLine_ID(iLine); if (iLine.GetM_AttributeSetInstance_ID() != 0) { if (mpo.GetM_AttributeSetInstance_ID() == 0) { mpo.SetM_AttributeSetInstance_ID(iLine.GetM_AttributeSetInstance_ID()); } else if (mpo.GetM_AttributeSetInstance_ID() != iLine.GetM_AttributeSetInstance_ID()) { continue; } } } else { continue; } } if (sLine != null) { if (mpo.GetM_InOutLine_ID() == 0 || mpo.GetM_InOutLine_ID() == sLine.GetM_InOutLine_ID()) { mpo.SetM_InOutLine_ID(sLine.GetM_InOutLine_ID()); if (sLine.GetM_AttributeSetInstance_ID() != 0) { if (mpo.GetM_AttributeSetInstance_ID() == 0) { mpo.SetM_AttributeSetInstance_ID(sLine.GetM_AttributeSetInstance_ID()); } else if (mpo.GetM_AttributeSetInstance_ID() != sLine.GetM_AttributeSetInstance_ID()) { continue; } } } else { continue; } } retValue = mpo; break; } } } catch (Exception e) { s_log.Log(Level.SEVERE, sql, e); } // Create New if (retValue == null) { if (sLine != null) { retValue = new MMatchPO(sLine, dateTrx, qty); if (iLine != null) { retValue.SetC_InvoiceLine_ID(iLine); } } else if (iLine != null) { retValue = new MMatchPO(iLine, dateTrx, qty); } } return(retValue); }
/// <summary> /// Get Surcharge Tax Line for Invoice Line /// </summary> /// <param name="line">line</param> /// <param name="precision">currenct precision</param> /// <param name="oldTax">get old tax</param> /// <param name="trxName">transaction</param> /// <returns>existing or new tax</returns> public static MInvoiceTax GetSurcharge(MInvoiceLine line, int precision, bool oldTax, Trx trxName) { MInvoiceTax retValue = null; try { if (line == null || line.GetC_Invoice_ID() == 0 || line.IsDescription()) { return(null); } int C_Tax_ID = line.GetC_Tax_ID(); if (oldTax && line.Is_ValueChanged("C_Tax_ID")) { Object old = line.Get_ValueOld("C_Tax_ID"); if (old == null) { return(null); } C_Tax_ID = int.Parse(old.ToString()); } // Get Surcharge Tax ID from Tax selected on Line C_Tax_ID = Util.GetValueOfInt(DB.ExecuteScalar("SELECT Surcharge_Tax_ID FROM C_Tax WHERE C_Tax_ID = " + C_Tax_ID, null, trxName)); if (C_Tax_ID == 0) { _log.Warning("C_Tax_ID=0"); return(null); } String sql = "SELECT * FROM C_InvoiceTax WHERE C_Invoice_ID=" + line.GetC_Invoice_ID() + " AND C_Tax_ID=" + C_Tax_ID; try { DataSet ds = DataBase.DB.ExecuteDataset(sql, null, trxName); if (ds.Tables.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { retValue = new MInvoiceTax(line.GetCtx(), dr, trxName); } } } catch (Exception e) { _log.Log(Level.SEVERE, sql, e); } // Get IsTaxincluded from selected PriceList on header bool isTaxIncluded = Util.GetValueOfString(DB.ExecuteScalar("SELECT IsTaxIncluded FROM M_PriceList WHERE M_PriceList_ID = (SELECT M_PriceList_ID FROM C_Invoice WHERE C_Invoice_ID = " + line.GetC_Invoice_ID() + ")", null, trxName)) == "Y"; if (retValue != null) { retValue.Set_TrxName(trxName); retValue.SetPrecision(precision); retValue.SetIsTaxIncluded(isTaxIncluded); _log.Fine("(old=" + oldTax + ") " + retValue); return(retValue); } // Create New retValue = new MInvoiceTax(line.GetCtx(), 0, trxName); retValue.Set_TrxName(trxName); retValue.SetClientOrg(line); retValue.SetC_Invoice_ID(line.GetC_Invoice_ID()); retValue.SetC_Tax_ID(C_Tax_ID); retValue.SetPrecision(precision); retValue.SetIsTaxIncluded(isTaxIncluded); _log.Fine("(new) " + retValue); } catch { // MessageBox.Show("MInvoiceTax--Get"); } return(retValue); }