Administrator
|
Thanks Adam,
Got caught another time by this one http://markmail.org/thread/wrzc4d4arfgqaawp, changes still sitting from https://issues.apache.org/jira/browse/OFBIZ-1599 I have to clarify and to drop or commit... Jacques From: <[hidden email]> > Author: doogie > Date: Sat Mar 21 23:40:05 2009 > New Revision: 757085 > > URL: http://svn.apache.org/viewvc?rev=757085&view=rev > Log: > One file got missed in the tab/space conversion. > > Modified: > ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java > > Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java?rev=757085&r1=757084&r2=757085&view=diff > ============================================================================== > --- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java (original) > +++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java Sat Mar 21 23:40:05 2009 > @@ -87,10 +87,10 @@ > * @return the invoice total as BigDecimal > */ > public static BigDecimal getInvoiceItemTotal(GenericValue invoiceItem) { > - BigDecimal quantity = invoiceItem.getBigDecimal("quantity"); > - if (quantity == null) { > - quantity = BigDecimal.ONE; > - } > + BigDecimal quantity = invoiceItem.getBigDecimal("quantity"); > + if (quantity == null) { > + quantity = BigDecimal.ONE; > + } > return quantity.multiply(invoiceItem.getBigDecimal("amount")).setScale(decimals, rounding); > } > > @@ -450,7 +450,7 @@ > } > } > if (UtilValidate.isNotEmpty(invoiceApplied) && !actualCurrency) { > - invoiceApplied = invoiceApplied.multiply(getInvoiceCurrencyConversionRate(delegator, > invoiceId)).setScale(decimals,rounding); > + invoiceApplied = invoiceApplied.multiply(getInvoiceCurrencyConversionRate(delegator, > invoiceId)).setScale(decimals,rounding); > } > return invoiceApplied; > } > @@ -522,68 +522,68 @@ > return invoiceItemApplied; > } > public static BigDecimal getInvoiceCurrencyConversionRate(GenericValue invoice) { > - BigDecimal conversionRate = null; > - GenericDelegator delegator = invoice.getDelegator(); > - String otherCurrencyUomId = null; > - // find the organization party currencyUomId which different from the invoice currency > - try { > - GenericValue party = delegator.findByPrimaryKey("PartyAcctgPreference", UtilMisc.toMap("partyId", > invoice.getString("partyIdFrom"))); > - if (UtilValidate.isEmpty(party) || party.getString("baseCurrencyUomId").equals(invoice.getString("currencyUomId"))) { > - party = delegator.findByPrimaryKey("PartyAcctgPreference", UtilMisc.toMap("partyId", invoice.getString("partyId"))); > - } > - if (UtilValidate.isNotEmpty(party) && party.getString("baseCurrencyUomId") != null) { > - otherCurrencyUomId = new String(party.getString("baseCurrencyUomId")); > - } else { > - otherCurrencyUomId = new String(UtilProperties.getPropertyValue("general", "currency.uom.id.default")); > - } > - if (otherCurrencyUomId == null) { > - otherCurrencyUomId = "USD"; // final default > - } > - } catch (GenericEntityException e) { > - Debug.logError(e, "Trouble getting database records....", module); > - } > - if (invoice.getString("currencyUomId").equals(otherCurrencyUomId)) { > - return BigDecimal.ONE; // organization party has the same currency so conversion not required. > - } > - > - try { > - // check if the invoice is posted and get the conversion from there > - List acctgTransEntries = invoice.getRelated("AcctgTrans"); > - if (UtilValidate.isNotEmpty(acctgTransEntries)) { > - GenericValue acctgTransEntry = ((GenericValue) acctgTransEntries.get(0)).getRelated("AcctgTransEntry").get(0); > - conversionRate = acctgTransEntry.getBigDecimal("amount").divide(acctgTransEntry.getBigDecimal("origAmount"), new > MathContext(100)).setScale(decimals,rounding); > - } > - // check if a payment is applied and use the currency conversion from there > - if (UtilValidate.isEmpty(conversionRate)) { > - List paymentAppls = invoice.getRelated("PaymentApplication"); > - Iterator ii = paymentAppls.iterator(); > - while (ii.hasNext()) { > - GenericValue paymentAppl = (GenericValue) ii.next(); > - GenericValue payment = paymentAppl.getRelatedOne("Payment"); > - if (UtilValidate.isNotEmpty(payment.getBigDecimal("actualCurrencyAmount"))) { > - if (UtilValidate.isEmpty(conversionRate)) { > - conversionRate = payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new > MathContext(100)).setScale(decimals,rounding); > - } else { > - conversionRate = conversionRate.add(payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new > MathContext(100))).divide(new BigDecimal("2"),new MathContext(100)).setScale(decimals,rounding); > - } > - } > - } > - } > - // use the dated conversion entity > - if (UtilValidate.isEmpty(conversionRate)) { > - List rates = EntityUtil.filterByDate(delegator.findByAnd("UomConversionDated", UtilMisc.toMap("uomIdTo", > invoice.getString("currencyUomId"), "uomId", otherCurrencyUomId)), invoice.getTimestamp("invoiceDate")); > - if (UtilValidate.isNotEmpty(rates)) { > - conversionRate = (BigDecimal.ONE).divide(((GenericValue) rates.get(0)).getBigDecimal("conversionFactor"), new > MathContext(100)).setScale(decimals,rounding); > - } else { > - Debug.logError("Could not find conversionrate for invoice: " + invoice.getString("invoiceId"), module); > - return new BigDecimal("1"); > - } > - } > - > - } catch (GenericEntityException e) { > - Debug.logError(e, "Trouble getting database records....", module); > - } > - return(conversionRate); > + BigDecimal conversionRate = null; > + GenericDelegator delegator = invoice.getDelegator(); > + String otherCurrencyUomId = null; > + // find the organization party currencyUomId which different from the invoice currency > + try { > + GenericValue party = delegator.findByPrimaryKey("PartyAcctgPreference", UtilMisc.toMap("partyId", > invoice.getString("partyIdFrom"))); > + if (UtilValidate.isEmpty(party) || party.getString("baseCurrencyUomId").equals(invoice.getString("currencyUomId"))) { > + party = delegator.findByPrimaryKey("PartyAcctgPreference", UtilMisc.toMap("partyId", > invoice.getString("partyId"))); > + } > + if (UtilValidate.isNotEmpty(party) && party.getString("baseCurrencyUomId") != null) { > + otherCurrencyUomId = new String(party.getString("baseCurrencyUomId")); > + } else { > + otherCurrencyUomId = new String(UtilProperties.getPropertyValue("general", "currency.uom.id.default")); > + } > + if (otherCurrencyUomId == null) { > + otherCurrencyUomId = "USD"; // final default > + } > + } catch (GenericEntityException e) { > + Debug.logError(e, "Trouble getting database records....", module); > + } > + if (invoice.getString("currencyUomId").equals(otherCurrencyUomId)) { > + return BigDecimal.ONE; // organization party has the same currency so conversion not required. > + } > + > + try { > + // check if the invoice is posted and get the conversion from there > + List acctgTransEntries = invoice.getRelated("AcctgTrans"); > + if (UtilValidate.isNotEmpty(acctgTransEntries)) { > + GenericValue acctgTransEntry = ((GenericValue) acctgTransEntries.get(0)).getRelated("AcctgTransEntry").get(0); > + conversionRate = acctgTransEntry.getBigDecimal("amount").divide(acctgTransEntry.getBigDecimal("origAmount"), new > MathContext(100)).setScale(decimals,rounding); > + } > + // check if a payment is applied and use the currency conversion from there > + if (UtilValidate.isEmpty(conversionRate)) { > + List paymentAppls = invoice.getRelated("PaymentApplication"); > + Iterator ii = paymentAppls.iterator(); > + while (ii.hasNext()) { > + GenericValue paymentAppl = (GenericValue) ii.next(); > + GenericValue payment = paymentAppl.getRelatedOne("Payment"); > + if (UtilValidate.isNotEmpty(payment.getBigDecimal("actualCurrencyAmount"))) { > + if (UtilValidate.isEmpty(conversionRate)) { > + conversionRate = > payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new > MathContext(100)).setScale(decimals,rounding); > + } else { > + conversionRate = > conversionRate.add(payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new > MathContext(100))).divide(new BigDecimal("2"),new MathContext(100)).setScale(decimals,rounding); > + } > + } > + } > + } > + // use the dated conversion entity > + if (UtilValidate.isEmpty(conversionRate)) { > + List rates = EntityUtil.filterByDate(delegator.findByAnd("UomConversionDated", UtilMisc.toMap("uomIdTo", > invoice.getString("currencyUomId"), "uomId", otherCurrencyUomId)), invoice.getTimestamp("invoiceDate")); > + if (UtilValidate.isNotEmpty(rates)) { > + conversionRate = (BigDecimal.ONE).divide(((GenericValue) rates.get(0)).getBigDecimal("conversionFactor"), new > MathContext(100)).setScale(decimals,rounding); > + } else { > + Debug.logError("Could not find conversionrate for invoice: " + invoice.getString("invoiceId"), module); > + return new BigDecimal("1"); > + } > + } > + > + } catch (GenericEntityException e) { > + Debug.logError(e, "Trouble getting database records....", module); > + } > + return(conversionRate); > } > > public static BigDecimal getInvoiceCurrencyConversionRate(GenericDelegator delegator, String invoiceId) { > > |
Administrator
|
For now I updated the patch in https://issues.apache.org/jira/browse/OFBIZ-1599
Any help appreciated... Jacques From: "Jacques Le Roux" <[hidden email]> > Thanks Adam, > > Got caught another time by this one http://markmail.org/thread/wrzc4d4arfgqaawp, changes still sitting from > I have to clarify and to drop or commit... > > Jacques > > From: <[hidden email]> >> Author: doogie >> Date: Sat Mar 21 23:40:05 2009 >> New Revision: 757085 >> >> URL: http://svn.apache.org/viewvc?rev=757085&view=rev >> Log: >> One file got missed in the tab/space conversion. >> >> Modified: >> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java >> >> Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java?rev=757085&r1=757084&r2=757085&view=diff >> ============================================================================== >> --- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java (original) >> +++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java Sat Mar 21 23:40:05 2009 >> @@ -87,10 +87,10 @@ >> * @return the invoice total as BigDecimal >> */ >> public static BigDecimal getInvoiceItemTotal(GenericValue invoiceItem) { >> - BigDecimal quantity = invoiceItem.getBigDecimal("quantity"); >> - if (quantity == null) { >> - quantity = BigDecimal.ONE; >> - } >> + BigDecimal quantity = invoiceItem.getBigDecimal("quantity"); >> + if (quantity == null) { >> + quantity = BigDecimal.ONE; >> + } >> return quantity.multiply(invoiceItem.getBigDecimal("amount")).setScale(decimals, rounding); >> } >> >> @@ -450,7 +450,7 @@ >> } >> } >> if (UtilValidate.isNotEmpty(invoiceApplied) && !actualCurrency) { >> - invoiceApplied = invoiceApplied.multiply(getInvoiceCurrencyConversionRate(delegator, >> invoiceId)).setScale(decimals,rounding); >> + invoiceApplied = invoiceApplied.multiply(getInvoiceCurrencyConversionRate(delegator, >> invoiceId)).setScale(decimals,rounding); >> } >> return invoiceApplied; >> } >> @@ -522,68 +522,68 @@ >> return invoiceItemApplied; >> } >> public static BigDecimal getInvoiceCurrencyConversionRate(GenericValue invoice) { >> - BigDecimal conversionRate = null; >> - GenericDelegator delegator = invoice.getDelegator(); >> - String otherCurrencyUomId = null; >> - // find the organization party currencyUomId which different from the invoice currency >> - try { >> - GenericValue party = delegator.findByPrimaryKey("PartyAcctgPreference", UtilMisc.toMap("partyId", >> invoice.getString("partyIdFrom"))); >> - if (UtilValidate.isEmpty(party) || party.getString("baseCurrencyUomId").equals(invoice.getString("currencyUomId"))) { >> - party = delegator.findByPrimaryKey("PartyAcctgPreference", UtilMisc.toMap("partyId", invoice.getString("partyId"))); >> - } >> - if (UtilValidate.isNotEmpty(party) && party.getString("baseCurrencyUomId") != null) { >> - otherCurrencyUomId = new String(party.getString("baseCurrencyUomId")); >> - } else { >> - otherCurrencyUomId = new String(UtilProperties.getPropertyValue("general", "currency.uom.id.default")); >> - } >> - if (otherCurrencyUomId == null) { >> - otherCurrencyUomId = "USD"; // final default >> - } >> - } catch (GenericEntityException e) { >> - Debug.logError(e, "Trouble getting database records....", module); >> - } >> - if (invoice.getString("currencyUomId").equals(otherCurrencyUomId)) { >> - return BigDecimal.ONE; // organization party has the same currency so conversion not required. >> - } >> - >> - try { >> - // check if the invoice is posted and get the conversion from there >> - List acctgTransEntries = invoice.getRelated("AcctgTrans"); >> - if (UtilValidate.isNotEmpty(acctgTransEntries)) { >> - GenericValue acctgTransEntry = ((GenericValue) acctgTransEntries.get(0)).getRelated("AcctgTransEntry").get(0); >> - conversionRate = acctgTransEntry.getBigDecimal("amount").divide(acctgTransEntry.getBigDecimal("origAmount"), new >> MathContext(100)).setScale(decimals,rounding); >> - } >> - // check if a payment is applied and use the currency conversion from there >> - if (UtilValidate.isEmpty(conversionRate)) { >> - List paymentAppls = invoice.getRelated("PaymentApplication"); >> - Iterator ii = paymentAppls.iterator(); >> - while (ii.hasNext()) { >> - GenericValue paymentAppl = (GenericValue) ii.next(); >> - GenericValue payment = paymentAppl.getRelatedOne("Payment"); >> - if (UtilValidate.isNotEmpty(payment.getBigDecimal("actualCurrencyAmount"))) { >> - if (UtilValidate.isEmpty(conversionRate)) { >> - conversionRate = payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new >> MathContext(100)).setScale(decimals,rounding); >> - } else { >> - conversionRate = conversionRate.add(payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new >> MathContext(100))).divide(new BigDecimal("2"),new MathContext(100)).setScale(decimals,rounding); >> - } >> - } >> - } >> - } >> - // use the dated conversion entity >> - if (UtilValidate.isEmpty(conversionRate)) { >> - List rates = EntityUtil.filterByDate(delegator.findByAnd("UomConversionDated", UtilMisc.toMap("uomIdTo", >> invoice.getString("currencyUomId"), "uomId", otherCurrencyUomId)), invoice.getTimestamp("invoiceDate")); >> - if (UtilValidate.isNotEmpty(rates)) { >> - conversionRate = (BigDecimal.ONE).divide(((GenericValue) rates.get(0)).getBigDecimal("conversionFactor"), new >> MathContext(100)).setScale(decimals,rounding); >> - } else { >> - Debug.logError("Could not find conversionrate for invoice: " + invoice.getString("invoiceId"), module); >> - return new BigDecimal("1"); >> - } >> - } >> - >> - } catch (GenericEntityException e) { >> - Debug.logError(e, "Trouble getting database records....", module); >> - } >> - return(conversionRate); >> + BigDecimal conversionRate = null; >> + GenericDelegator delegator = invoice.getDelegator(); >> + String otherCurrencyUomId = null; >> + // find the organization party currencyUomId which different from the invoice currency >> + try { >> + GenericValue party = delegator.findByPrimaryKey("PartyAcctgPreference", UtilMisc.toMap("partyId", >> invoice.getString("partyIdFrom"))); >> + if (UtilValidate.isEmpty(party) || party.getString("baseCurrencyUomId").equals(invoice.getString("currencyUomId"))) >> { >> + party = delegator.findByPrimaryKey("PartyAcctgPreference", UtilMisc.toMap("partyId", >> invoice.getString("partyId"))); >> + } >> + if (UtilValidate.isNotEmpty(party) && party.getString("baseCurrencyUomId") != null) { >> + otherCurrencyUomId = new String(party.getString("baseCurrencyUomId")); >> + } else { >> + otherCurrencyUomId = new String(UtilProperties.getPropertyValue("general", "currency.uom.id.default")); >> + } >> + if (otherCurrencyUomId == null) { >> + otherCurrencyUomId = "USD"; // final default >> + } >> + } catch (GenericEntityException e) { >> + Debug.logError(e, "Trouble getting database records....", module); >> + } >> + if (invoice.getString("currencyUomId").equals(otherCurrencyUomId)) { >> + return BigDecimal.ONE; // organization party has the same currency so conversion not required. >> + } >> + >> + try { >> + // check if the invoice is posted and get the conversion from there >> + List acctgTransEntries = invoice.getRelated("AcctgTrans"); >> + if (UtilValidate.isNotEmpty(acctgTransEntries)) { >> + GenericValue acctgTransEntry = ((GenericValue) acctgTransEntries.get(0)).getRelated("AcctgTransEntry").get(0); >> + conversionRate = acctgTransEntry.getBigDecimal("amount").divide(acctgTransEntry.getBigDecimal("origAmount"), new >> MathContext(100)).setScale(decimals,rounding); >> + } >> + // check if a payment is applied and use the currency conversion from there >> + if (UtilValidate.isEmpty(conversionRate)) { >> + List paymentAppls = invoice.getRelated("PaymentApplication"); >> + Iterator ii = paymentAppls.iterator(); >> + while (ii.hasNext()) { >> + GenericValue paymentAppl = (GenericValue) ii.next(); >> + GenericValue payment = paymentAppl.getRelatedOne("Payment"); >> + if (UtilValidate.isNotEmpty(payment.getBigDecimal("actualCurrencyAmount"))) { >> + if (UtilValidate.isEmpty(conversionRate)) { >> + conversionRate = >> payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new >> MathContext(100)).setScale(decimals,rounding); >> + } else { >> + conversionRate = >> conversionRate.add(payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new >> MathContext(100))).divide(new BigDecimal("2"),new MathContext(100)).setScale(decimals,rounding); >> + } >> + } >> + } >> + } >> + // use the dated conversion entity >> + if (UtilValidate.isEmpty(conversionRate)) { >> + List rates = EntityUtil.filterByDate(delegator.findByAnd("UomConversionDated", UtilMisc.toMap("uomIdTo", >> invoice.getString("currencyUomId"), "uomId", otherCurrencyUomId)), invoice.getTimestamp("invoiceDate")); >> + if (UtilValidate.isNotEmpty(rates)) { >> + conversionRate = (BigDecimal.ONE).divide(((GenericValue) rates.get(0)).getBigDecimal("conversionFactor"), >> new MathContext(100)).setScale(decimals,rounding); >> + } else { >> + Debug.logError("Could not find conversionrate for invoice: " + invoice.getString("invoiceId"), module); >> + return new BigDecimal("1"); >> + } >> + } >> + >> + } catch (GenericEntityException e) { >> + Debug.logError(e, "Trouble getting database records....", module); >> + } >> + return(conversionRate); >> } >> >> public static BigDecimal getInvoiceCurrencyConversionRate(GenericDelegator delegator, String invoiceId) { >> >> > > |
Free forum by Nabble | Edit this page |