You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ha...@apache.org on 2007/06/18 08:07:28 UTC
svn commit: r548227 - in /ofbiz/trunk/applications/accounting: config/
script/org/ofbiz/accounting/invoice/ servicedef/
webapp/accounting/WEB-INF/actions/invoice/ webapp/accounting/invoice/ widget/
Author: hansbak
Date: Sun Jun 17 23:07:27 2007
New Revision: 548227
URL: http://svn.apache.org/viewvc?view=rev&rev=548227
Log:
now an invoice can be shown and send per email in the customer currency, need however the preferred currency in the party entity and appropriate values in uomConversionBydate entity
Modified:
ofbiz/trunk/applications/accounting/config/AccountingUiLabels.properties
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml
ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml
ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/invoice/editInvoice.bsh
ofbiz/trunk/applications/accounting/webapp/accounting/invoice/InvoiceForms.xml
ofbiz/trunk/applications/accounting/widget/Menus.xml
Modified: ofbiz/trunk/applications/accounting/config/AccountingUiLabels.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/config/AccountingUiLabels.properties?view=diff&rev=548227&r1=548226&r2=548227
==============================================================================
--- ofbiz/trunk/applications/accounting/config/AccountingUiLabels.properties (original)
+++ ofbiz/trunk/applications/accounting/config/AccountingUiLabels.properties Sun Jun 17 23:07:27 2007
@@ -225,6 +225,7 @@
AccountingInvoicePayments=Payments
AccountingInvoicePurchase=Purchase Invoice
AccountingInvoicePDF=PDF
+AccountingInvoicePDFOtherCur=PDF other Currency
AccountingInvoiceRoles=Roles
AccountingInvoiceSales=Sales Invoice
AccountingInvoiceStatus=Status
Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml?view=diff&rev=548227&r1=548226&r2=548227
==============================================================================
--- ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml (original)
+++ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml Sun Jun 17 23:07:27 2007
@@ -247,6 +247,7 @@
<set field="emailParams.xslfoAttachScreenLocation" value="component://accounting/widget/AccountingPrintForms.xml#InvoicePDF"/>
<set field="emailParams.bodyParameters.invoiceId" from-field="parameters.invoiceId"/>
<set field="emailParams.bodyParameters.userLogin" from-field="parameters.userLogin"/>
+ <set field="emailParams.bodyParameters.other" from-field="parameters.other"/><!-- to to print in 'other currency' -->
<call-service-asynch service-name="sendMailFromScreen" in-map-name="emailParams"/>
<property-to-field resource="AccountingUiLabels" property="AccountingEmailScheduledToSend" field-name="successMessage"/>
</simple-method>
Modified: ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml?view=diff&rev=548227&r1=548226&r2=548227
==============================================================================
--- ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml (original)
+++ ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml Sun Jun 17 23:07:27 2007
@@ -229,6 +229,7 @@
<attribute name="sendCc" type="String" mode="IN" optional="true"/>
<attribute name="subject" type="String" mode="IN" optional="true"/>
<attribute name="bodyText" type="String" mode="IN" optional="true"/>
+ <attribute name="other" type="String" mode="IN" optional="true"/><!-- to send the invoice in the 'other' currency (y) -->
</service>
<service name="checkInvoicePaymentApplications" engine="java"
location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="checkInvoicePaymentApplications">
Modified: ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/invoice/editInvoice.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/invoice/editInvoice.bsh?view=diff&rev=548227&r1=548226&r2=548227
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/invoice/editInvoice.bsh (original)
+++ ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/invoice/editInvoice.bsh Sun Jun 17 23:07:27 2007
@@ -24,6 +24,10 @@
import org.ofbiz.accounting.invoice.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import java.math.BigDecimal;
+import org.ofbiz.base.util.UtilNumber;
+import javolution.util.FastList;
+
// delegator = parameters.get("delegator");
invoiceId = parameters.get("invoiceId");
@@ -31,13 +35,49 @@
invoice = delegator.findByPrimaryKey("Invoice", UtilMisc.toMap("invoiceId", invoiceId));
context.put("invoice", invoice);
+other = parameters.get("other"); // allow the display of the invoice in the currency of the other party. sales: partyId, purch: partyIdFrom using the convertUom service.
+BigDecimal conversionRate = new BigDecimal("1");
+private static BigDecimal ZERO = new BigDecimal("0");
+private static int decimals = UtilNumber.getBigDecimalScale("invoice.decimals");
+private static int rounding = UtilNumber.getBigDecimalRoundingMode("invoice.rounding");
+if (other != null && other.equalsIgnoreCase("y")) {
+ otherCurrency = null;
+ if ((invoice.getRelatedOne("InvoiceType")).getString("parentTypeId").equals("SALES_INVOICE"))
+ otherCurrency = invoice.getRelatedOne("Party").getString("preferredCurrencyUomId");
+ else
+ otherCurrency = invoice.getRelatedOne("FromParty").getString("preferredCurrencyUomId");
+
+ result = null;
+ if (otherCurrency != null && invoice.get("currencyUomId") != null && !otherCurrency.equals(invoice.getString("currencyUomId"))) {
+ result = dispatcher.runSync("convertUom", UtilMisc.toMap("uomId", invoice.getString("currencyUomId"), "uomIdTo", otherCurrency, "originalValue", 1.00, "asOfDate", invoice.getTimestamp("invoiceDate")));
+
+ if (result.get("convertedValue") != null) {
+ conversionRate = new BigDecimal(result.get("convertedValue").doubleValue());
+ invoice.put("invoiceMessage",
+ invoice.get("invoiceMessage") != null?
+ invoice.getString("invoiceMessage").concat(" Converted from " + invoice.getString("currencyUomId") + " Rate: " + conversionRate.setScale(6, rounding).toString()) :
+ "Converted from " + invoice.getString("currencyUomId") + " Rate: " + conversionRate.setScale(6, rounding).toString());
+ invoice.put("currencyUomId", otherCurrency);
+ }
+ }
+
+}
+
if (invoice != null) {
invoiceItems = invoice.getRelatedOrderBy("InvoiceItem",UtilMisc.toList("invoiceItemSeqId"));
+ invoiceItemsConv = FastList.newInstance();
+ Iterator it = invoiceItems.iterator();
+ while (it.hasNext()) {
+ invoiceItem = it.next();
+ invoiceItem.put("amount", new Double((invoiceItem.getBigDecimal("amount").multiply(conversionRate).setScale(decimals, rounding)).doubleValue()));
+ invoiceItemsConv.add(invoiceItem);
+ }
+
- context.put("invoiceItems", invoiceItems);
+ context.put("invoiceItems", invoiceItemsConv);
- invoiceTotal = InvoiceWorker.getInvoiceTotal(invoice);
- invoiceNoTaxTotal = InvoiceWorker.getInvoiceNoTaxTotal(invoice);
+ invoiceTotal = InvoiceWorker.getInvoiceTotalBd(invoice).multiply(conversionRate).setScale(decimals, rounding).doubleValue();
+ invoiceNoTaxTotal = InvoiceWorker.getInvoiceNoTaxTotalBd(invoice).multiply(conversionRate).setScale(decimals, rounding).doubleValue();
context.put("invoiceTotal", new Double(invoiceTotal));
context.put("invoiceNoTaxTotal", new Double(invoiceNoTaxTotal));
Modified: ofbiz/trunk/applications/accounting/webapp/accounting/invoice/InvoiceForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/invoice/InvoiceForms.xml?view=diff&rev=548227&r1=548226&r2=548227
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/accounting/invoice/InvoiceForms.xml (original)
+++ ofbiz/trunk/applications/accounting/webapp/accounting/invoice/InvoiceForms.xml Sun Jun 17 23:07:27 2007
@@ -426,6 +426,7 @@
<field name="emailAddressTo" entry-name="mapFrom.emailAddress" parameter-name="sendTo" use-when=""${invoice.invoiceTypeId}".equals("PURCHASE_INVOICE")"><text/></field>
<field name="emailAddressCc" entry-name="ccEmailAddress" parameter-name="sendCc"><text/></field>
<field name="subject"><text default-value="Please find attached invoice."/></field>
+ <field name="otherCurrency" entry-name="parameters.other" parameter-name="other"><check/></field>
<field name="bodyText"><textarea/></field>
<field name="submitButton" title="${uiLabelMap.CommonSubmit}" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
Modified: ofbiz/trunk/applications/accounting/widget/Menus.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/Menus.xml?view=diff&rev=548227&r1=548226&r2=548227
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/Menus.xml (original)
+++ ofbiz/trunk/applications/accounting/widget/Menus.xml Sun Jun 17 23:07:27 2007
@@ -121,7 +121,13 @@
<condition>
<not><if-empty field-name="invoice.invoiceId"/></not>
</condition>
- <link target="invoice.pdf?invoiceId=${invoice.invoiceId}"/>
+ <link target="invoice.pdf?invoiceId=${invoice.invoiceId}" target-window="_BLANK"/>
+ </menu-item>
+ <menu-item name="pdfOtherCur" title="${uiLabelMap.AccountingInvoicePDFOtherCur}">
+ <condition>
+ <not><if-empty field-name="invoice.invoiceId"/></not>
+ </condition>
+ <link target="invoice.pdf?invoiceId=${invoice.invoiceId}&other=Y" target-window="_BLANK"/>
</menu-item>
<menu-item name="statusToApproved" title="${uiLabelMap.AccountingInvoiceStatusToApproved}">
<condition>