You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ap...@apache.org on 2009/08/12 15:48:27 UTC
svn commit: r803508 - in /ofbiz/trunk/applications/accounting: config/
entitydef/ webapp/ap/WEB-INF/ webapp/ap/WEB-INF/actions/invoices/
webapp/ap/invoices/ webapp/ap/reports/ widget/ap/ widget/ap/forms/
Author: apatel
Date: Wed Aug 12 13:48:26 2009
New Revision: 803508
URL: http://svn.apache.org/viewvc?rev=803508&view=rev
Log:
Improvements in the Invoice Generation for commission run functionality. Patch from OFBIZ-2806. Thanks Rishi and Amit for help.
Thanks Eva and Vince for requirements definition.
Added:
ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/actions/invoices/CommissionReport.groovy
ofbiz/trunk/applications/accounting/webapp/ap/invoices/CommissionReport.ftl (with props)
ofbiz/trunk/applications/accounting/webapp/ap/reports/
ofbiz/trunk/applications/accounting/webapp/ap/reports/CommissionReport.fo.ftl (with props)
ofbiz/trunk/applications/accounting/widget/ap/ApPrintScreens.xml (with props)
Modified:
ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml
ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml
ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/controller.xml
ofbiz/trunk/applications/accounting/widget/ap/CommonScreens.xml
ofbiz/trunk/applications/accounting/widget/ap/InvoiceScreens.xml
ofbiz/trunk/applications/accounting/widget/ap/Menus.xml
ofbiz/trunk/applications/accounting/widget/ap/forms/InvoiceForms.xml
Modified: ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml?rev=803508&r1=803507&r2=803508&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml (original)
+++ ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml Wed Aug 12 13:48:26 2009
@@ -1874,10 +1874,18 @@
<value xml:lang="th">à¸à¸§à¸²à¸¡à¸à¸´à¸à¹à¸«à¹à¸</value>
<value xml:lang="zh">è¯è®º</value>
</property>
+ <property key="AccountingCommissionAmount">
+ <value xml:lang="en">Commission Amount</value>
+ <value xml:lang="hi_IN">दलालॠराशà¥</value>
+ </property>
<property key="AccountingCommissionRun">
<value xml:lang="en">Commission Run</value>
<value xml:lang="hi_IN">दलालॠà¤à¥à¤à¤¤à¤¾à¤¨</value>
</property>
+ <property key="AccountingCommissionReport">
+ <value xml:lang="en">Commission Report</value>
+ <value xml:lang="hi_IN">दलालॠविवरण</value>
+ </property>
<property key="AccountingCompanies">
<value xml:lang="ar">شرÙات</value>
<value xml:lang="de">Firmen</value>
@@ -5495,6 +5503,10 @@
<value xml:lang="th">à¸à¹à¸à¸«à¸²à¸à¸²à¸£à¸à¸³à¸£à¸°à¹à¸à¸´à¸</value>
<value xml:lang="zh">æ¥æ¾æ¯ä»</value>
</property>
+ <property key="AccountingLicensedProduct">
+ <value xml:lang="en">Licensed Product</value>
+ <value xml:lang="hi_IN">लाà¤à¤¸à¥à¤à¤¸ à¤à¤¤à¥à¤ªà¤¾à¤¦</value>
+ </property>
<property key="AccountingMainMenu">
<value xml:lang="ar">اÙرئÙسÙØ©</value>
<value xml:lang="de">Haupt</value>
@@ -5706,6 +5718,10 @@
<value xml:lang="th">รายà¹à¸à¹à¸ªà¸¸à¸à¸à¸´</value>
<value xml:lang="zh">åæ¶å
¥</value>
</property>
+ <property key="AccountingNetSale">
+ <value xml:lang="en">Net Sale</value>
+ <value xml:lang="hi_IN">शà¥à¤¦à¥à¤§ विà¤à¥à¤°à¤¯</value>
+ </property>
<property key="AccountingNewAccount">
<value xml:lang="ar">Øساب جدÙد</value>
<value xml:lang="de">Neues Konto</value>
@@ -6292,6 +6308,10 @@
<value xml:lang="th">หมายà¹à¸¥à¸</value>
<value xml:lang="zh">æ°å</value>
</property>
+ <property key="AccountingNumberOfOrders">
+ <value xml:lang="en">Number of Orders</value>
+ <value xml:lang="hi_IN">à¤à¤¦à¥à¤¶à¥à¤ à¤à¥ सà¤à¤à¥à¤¯à¤¾</value>
+ </property>
<property key="AccountingNumberOfTransaction">
<value xml:lang="de">Anzahl der Transaktionen</value>
<value xml:lang="en">Number of Transaction</value>
@@ -8015,6 +8035,14 @@
<value xml:lang="th">à¹à¸ªà¸à¸à¸à¸²à¸à¸à¸£à¸°à¹à¸ à¸à¹à¸à¹à¸ªà¸£à¹à¸à¸à¸²à¸£à¸à¸²à¸¢à¸à¸¶à¸à¸£à¸²à¸¢à¹à¸à¹à¸à¸à¸à¸«à¸¡à¸²à¸¢à¹à¸¥à¸à¸à¸±à¸à¸à¸µà¹à¸¢à¸à¸à¸£à¸°à¹à¸ à¸à¸à¸±à¹à¸§à¹à¸</value>
<value xml:lang="zh">ä»éå®å票类åå°æ¶å
¥æ»è´¦è´¦æ·ç¼å·çæå®å表</value>
</property>
+ <property key="AccountingSalesAgents">
+ <value xml:lang="en">Sales Agents</value>
+ <value xml:lang="hi_IN">विà¤à¥à¤°à¤¯ दलाल</value>
+ </property>
+ <property key="AccountingSalesInvoices">
+ <value xml:lang="en">Sales Invoices</value>
+ <value xml:lang="hi_IN">विà¤à¥à¤°à¤¯ à¤à¤¾à¤²à¤¾à¤¨ </value>
+ </property>
<property key="AccountingSecurityCodeCard">
<value xml:lang="en">Card Security Code</value>
<value xml:lang="es">Código de seguridad de tarjeta</value>
@@ -8439,6 +8467,10 @@
<value xml:lang="th">รายà¸à¸²à¸à¸à¸¥à¸£à¸§à¸¡à¸ าษี</value>
<value xml:lang="zh">ç¨å¡æ»è¡¨</value>
</property>
+ <property key="AccountingTermAmount">
+ <value xml:lang="en">Term Amount</value>
+ <value xml:lang="hi_IN">शरà¥à¤¤ राशà¥</value>
+ </property>
<property key="AccountingTermTypeId">
<value xml:lang="en">Term Type Id</value>
<value xml:lang="es">Id TipoTérmino</value>
@@ -8455,6 +8487,10 @@
<value xml:lang="en">Total amountPercentage is greater then 100.</value>
<value xml:lang="hi_IN">à¤à¥à¤² amountPercentage 100 सॠà¤à¥ à¤à¥à¤¯à¤¾à¤¦à¤¾ हà¥</value>
</property>
+ <property key="AccountingTotalCommissionAmount">
+ <value xml:lang="en">Total Commission Amount</value>
+ <value xml:lang="hi_IN">à¤à¥à¤² दलालॠराशà¥</value>
+ </property>
<property key="AccountingTotalOfTheCurrentMonth">
<value xml:lang="en">Total of the current month</value>
<value xml:lang="hi_IN">à¤à¤¾à¤²à¥ माह à¤à¥ à¤à¥à¤²</value>
@@ -8567,6 +8603,14 @@
<value xml:lang="th">Total excl. tax</value>
<value xml:lang="zh">æªå«ç¨å计</value>
</property>
+ <property key="AccountingTotalNetSales">
+ <value xml:lang="en">Total Net Sales</value>
+ <value xml:lang="hi_IN">à¤à¥à¤² शà¥à¤¦à¥à¤§ विà¤à¥à¤°à¤¯</value>
+ </property>
+ <property key="AccountingTotalNumberOfOrders">
+ <value xml:lang="en">Total Number of Orders</value>
+ <value xml:lang="hi_IN">à¤à¥à¤² à¤à¤¦à¥à¤¶à¥à¤ à¤à¥ सà¤à¤à¥à¤¯à¤¾</value>
+ </property>
<property key="AccountingTotalQuantityOnHand">
<value xml:lang="en">Total Quantity On Hand</value>
<value xml:lang="hi_IN">à¤à¥à¤² मातà¥à¤°à¤¾ हाथ पर</value>
Modified: ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml?rev=803508&r1=803507&r2=803508&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml Wed Aug 12 13:48:26 2009
@@ -1571,6 +1571,17 @@
</view-link>
</view-entity>
+ <view-entity entity-name="InvoiceItemAndAssoc" package-name="org.ofbiz.accounting.invoice">
+ <member-entity entity-alias="INT" entity-name="InvoiceItem"/>
+ <member-entity entity-alias="IIA" entity-name="InvoiceItemAssoc"/>
+ <alias-all entity-alias="INT"/>
+ <alias-all entity-alias="IIA"/>
+ <alias name="termAmount" field="amount" entity-alias="IIA"/>
+ <view-link entity-alias="INT" rel-entity-alias="IIA" rel-optional="false">
+ <key-map field-name="invoiceId" rel-field-name="invoiceIdFrom"/>
+ <key-map field-name="invoiceItemSeqId" rel-field-name="invoiceItemSeqIdFrom"/>
+ </view-link>
+ </view-entity>
<!-- ========================================================= -->
<!-- org.ofbiz.accounting.ledger -->
<!-- ========================================================= -->
Added: ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/actions/invoices/CommissionReport.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/actions/invoices/CommissionReport.groovy?rev=803508&view=auto
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/actions/invoices/CommissionReport.groovy (added)
+++ ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/actions/invoices/CommissionReport.groovy Wed Aug 12 13:48:26 2009
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.ofbiz.entity.condition.EntityCondition;
+import org.ofbiz.entity.condition.EntityOperator;
+import org.ofbiz.entity.util.EntityUtil;
+import org.ofbiz.base.util.UtilMisc;
+
+if ("Y".equals(parameters.isSearch)) {
+ fromDate = parameters.fromDate;
+ thruDate = parameters.thruDate;
+ partyId = parameters.partyId;
+ productId = parameters.productId;
+ invoiceItemAndAssocCond = [];
+ if (productId) {
+ invoiceItemAndAssocCond.add(EntityCondition.makeCondition("productId", EntityOperator.EQUALS, productId));
+ }
+ if (partyId) {
+ invoiceItemAndAssocCond.add(EntityCondition.makeCondition("partyIdFrom", EntityOperator.EQUALS, partyId));
+ }
+ if (fromDate) {
+ invoiceItemAndAssocCond.add(EntityCondition.makeCondition("fromDate", EntityOperator.GREATER_THAN_EQUAL_TO, Timestamp.valueOf(fromDate)));
+ }
+ if (thruDate) {
+ invoiceItemAndAssocCond.add(EntityCondition.makeCondition("thruDate", EntityOperator.LESS_THAN_EQUAL_TO, Timestamp.valueOf(thruDate)));
+ }
+ invoiceItemAndAssocList = [];
+ invoiceItemAndAssocList = delegator.findList("InvoiceItemAndAssoc", EntityCondition.makeCondition(invoiceItemAndAssocCond, EntityOperator.AND), null, null, null, false);
+
+ //filtering invoiceItemAndAssocList for each productId with updating quantity, commission amount and number of order which generated sales invoices.
+ totalQuantity = BigDecimal.ZERO;
+ totalNumberOfOrders = BigDecimal.ZERO;
+ totalCommissionAmount = BigDecimal.ZERO;
+ totalNetSales = BigDecimal.ZERO;
+ commissionReportList = [];
+ if (invoiceItemAndAssocList) {
+ productIds = EntityUtil.getFieldListFromEntityList(invoiceItemAndAssocList, "productId", true);
+ productIds.each { productId ->
+ quantity = BigDecimal.ZERO;
+ commissionAmount = BigDecimal.ZERO;
+ termAmount = BigDecimal.ZERO;
+ invoiceItemProductAmount = BigDecimal.ZERO;
+ assocProductId = null;
+ commissionReportMap = [:];
+ salesAgentAndTermAmtMap = [:];
+ salesInvoiceIds = [];
+ invoiceItemAndAssocList.each { invoiceItemAndAssoc ->
+ if (productId.equals(invoiceItemAndAssoc.productId)) {
+ partyIdTermAmountMap = [:];
+ partyIdTermAmountKey = null;
+ assocProductId = invoiceItemAndAssoc.productId;
+ quantity = quantity.add(invoiceItemAndAssoc.quantity);
+ commissionAmount = commissionAmount.add(invoiceItemAndAssoc.termAmount.multiply(invoiceItemAndAssoc.quantity));
+ termAmount = termAmount.add(invoiceItemAndAssoc.termAmount);
+ partyIdTermAmountMap.partyId = invoiceItemAndAssoc.partyIdFrom;
+ partyIdTermAmountMap.termAmount = invoiceItemAndAssoc.termAmount;
+ partyIdTermAmountKey = invoiceItemAndAssoc.partyIdFrom + invoiceItemAndAssoc.termAmount;
+ if (!salesAgentAndTermAmtMap.containsKey(partyIdTermAmountKey)) {
+ salesAgentAndTermAmtMap.put(partyIdTermAmountKey, partyIdTermAmountMap);
+ }
+ salesInvoiceIds.add(invoiceItemAndAssoc.invoiceIdFrom);
+ invoiceItemProductAmount = invoiceItemAndAssoc.amount;
+ }
+ }
+ commissionReportMap.productId = assocProductId;
+ commissionReportMap.quantity = quantity;
+ commissionReportMap.salesAgentAndTermAmtMap = salesAgentAndTermAmtMap;
+ commissionReportMap.commissionAmount = commissionAmount;
+ commissionReportMap.netSale = invoiceItemProductAmount.multiply(quantity);
+ commissionReportMap.salesInvoiceIds = salesInvoiceIds;
+ commissionReportMap.numberOfOrders = salesInvoiceIds.size();
+ commissionReportList.add(commissionReportMap);
+ totalQuantity = totalQuantity.add(quantity);
+ totalNumberOfOrders = totalNumberOfOrders.add(salesInvoiceIds.size());
+ totalCommissionAmount = totalCommissionAmount.add(commissionAmount);
+ totalNetSales = totalNetSales.add(invoiceItemProductAmount.multiply(quantity));
+ }
+ }
+ context.commissionReportList = commissionReportList;
+ context.totalQuantity = totalQuantity;
+ context.totalNumberOfOrders = totalNumberOfOrders;
+ context.totalCommissionAmount = totalCommissionAmount;
+ context.totalNetSales = totalNetSales;
+}
Modified: ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/controller.xml?rev=803508&r1=803507&r2=803508&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/controller.xml Wed Aug 12 13:48:26 2009
@@ -87,6 +87,10 @@
<response name="success" type="view" value="editPayment"/>
<response name="error" type="view" value="NewOutgoingPayment"/>
</request-map>
+ <request-map uri="FindCommissions">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="CommissionReport"/>
+ </request-map>
<request-map uri="newInvoice">
<security https="true" auth="true"/>
<response name="success" type="view" value="NewPurchaseInvoice"/>
@@ -114,6 +118,12 @@
<response name="error" type="view" value="FindVendors"/>
</request-map>
+ <!-- ================ PDF generation requests ================== -->
+ <request-map uri="CommissionReport.pdf">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="CommissionReportPdf"/>
+ </request-map>
+
<!-- end of request mappings -->
<!-- View Mappings -->
@@ -124,6 +134,11 @@
<view-map name="NewPurchaseInvoice" type="screen" page="component://accounting/widget/ap/InvoiceScreens.xml#NewPurchaseInvoice"/>
<view-map name="FindApPayments" type="screen" page="component://accounting/widget/ap/ApScreens.xml#FindApPayments"/>
<view-map name="NewOutgoingPayment" type="screen" page="component://accounting/widget/ap/ApScreens.xml#NewOutgoingPayment"/>
+ <view-map name="CommissionReport" type="screen" page="component://accounting/widget/ap/InvoiceScreens.xml#CommissionReport"/>
+
+ <!-- PDFs -->
+ <view-map name="CommissionReportPdf" type="screenfop" page="component://accounting/widget/ap/ApPrintScreens.xml#CommissionReportPdf" content-type="application/pdf" encoding="none"/>
+
<!-- Vendor Mappings -->
<view-map name="FindVendors" type="screen" page="component://accounting/widget/ap/CommonScreens.xml#FindVendors"/>
<view-map name="EditVendor" type="screen" page="component://accounting/widget/ap/CommonScreens.xml#EditVendor"/>
Added: ofbiz/trunk/applications/accounting/webapp/ap/invoices/CommissionReport.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/ap/invoices/CommissionReport.ftl?rev=803508&view=auto
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/ap/invoices/CommissionReport.ftl (added)
+++ ofbiz/trunk/applications/accounting/webapp/ap/invoices/CommissionReport.ftl Wed Aug 12 13:48:26 2009
@@ -0,0 +1,78 @@
+<#--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<#if commissionReportList?has_content>
+ <form name="CommissionReport" id="CommissionReport">
+ <div>
+ <a href="<@o...@ofbizUrl>" class="buttontext">${uiLabelMap.AccountingInvoicePDF}</a>
+ </div>
+ <table class="basic-table hover-bar" cellspacing="0">
+ <#-- Header Begins -->
+ <tr class="header-row-2">
+ <th>${uiLabelMap.AccountingLicensedProduct}</th>
+ <th>${uiLabelMap.AccountingQuantity}</th>
+ <th>${uiLabelMap.AccountingNumberOfOrders} / ${uiLabelMap.AccountingSalesInvoices}</th>
+ <th>${uiLabelMap.AccountingCommissionAmount}</th>
+ <th>${uiLabelMap.AccountingNetSale}</th>
+ <th>${uiLabelMap.AccountingSalesAgents} / ${uiLabelMap.AccountingTermAmount}</th>
+ </tr>
+ <#-- Header Ends-->
+ <#assign alt_row = false>
+ <#list commissionReportList as commissionReport>
+ <tr valign="middle"<#if alt_row> class="alternate-row"</#if>>
+ <td><a href="/catalog/control/EditProduct?productId=${commissionReport.productId!}">${commissionReport.productId!}</a></td>
+ <td>${commissionReport.quantity!}</td>
+ <td>
+ ${commissionReport.numberOfOrders!} /
+ <#list commissionReport.salesInvoiceIds as salesInvoiceId>
+ [<a href="/ap/control/invoiceOverview?invoiceId=${salesInvoiceId!}">${salesInvoiceId!}</a>]
+ </#list>
+ </td>
+ <td><@ofbizCurrency amount = commissionReport.commissionAmount!/></td>
+ <td><@ofbizCurrency amount = commissionReport.netSale!/></td>
+ <td>
+ <#if commissionReport.salesAgentAndTermAmtMap?has_content>
+ <#list commissionReport.salesAgentAndTermAmtMap.values() as partyIdAndTermAmountMap>
+ <#assign partyName = (delegator.findOne("PartyNameView", {"partyId" : partyIdAndTermAmountMap.partyId}, true))!>
+ <h6>[${(partyName.firstName)!} ${(partyName.lastName)!} ${(partyName.groupName)!}(<a href="/partymgr/control/viewprofile?partyId=${partyIdAndTermAmountMap.partyId!}">${partyIdAndTermAmountMap.partyId!}</a>)]
+ / <@ofbizCurrency amount = (partyIdAndTermAmountMap.termAmount)!/>
+ </h6>
+ </#list>
+ </#if>
+ </td>
+ </tr>
+ <#-- toggle the row color -->
+ <#assign alt_row = !alt_row>
+ </#list>
+ </table>
+ <div class="screenlet">
+ <ul>
+ <li class="label"></li>
+ <li class="label"><h3>${uiLabelMap.CommonSummary} :</h3></li>
+ <li class="label"></li>
+ <li class="label">${uiLabelMap.ManufacturingTotalQuantity} : ${totalQuantity!}</li>
+ <li class="label">${uiLabelMap.AccountingTotalCommissionAmount} : <@ofbizCurrency amount = totalCommissionAmount!/></li>
+ <li class="label">${uiLabelMap.AccountingTotalNetSales} : <@ofbizCurrency amount = totalNetSales!/></li>
+ <li class="label">${uiLabelMap.AccountingTotalNumberOfOrders} : ${totalNumberOfOrders!}</li>
+ </ul>
+ </div>
+ </form>
+<#else>
+ <td colspan='4'><h3>${uiLabelMap.AccountingNoRecordFound}</h3></td>
+</#if>
Propchange: ofbiz/trunk/applications/accounting/webapp/ap/invoices/CommissionReport.ftl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/trunk/applications/accounting/webapp/ap/invoices/CommissionReport.ftl
------------------------------------------------------------------------------
svn:keywords = Date Rev Author URL Id
Propchange: ofbiz/trunk/applications/accounting/webapp/ap/invoices/CommissionReport.ftl
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: ofbiz/trunk/applications/accounting/webapp/ap/reports/CommissionReport.fo.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/ap/reports/CommissionReport.fo.ftl?rev=803508&view=auto
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/ap/reports/CommissionReport.fo.ftl (added)
+++ ofbiz/trunk/applications/accounting/webapp/ap/reports/CommissionReport.fo.ftl Wed Aug 12 13:48:26 2009
@@ -0,0 +1,110 @@
+<#--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<#escape x as x?xml>
+ <fo:block font-size="14pt" font-weight="bold" text-align="center">${uiLabelMap.AccountingCommissionReport}</fo:block>
+ <fo:block space-after="20pt"/>
+ <fo:table table-layout="fixed" font-size="10pt">
+ <fo:table-column column-width="35mm"/>
+ <fo:table-column column-width="20mm"/>
+ <fo:table-column column-width="35mm"/>
+ <fo:table-column column-width="25mm"/>
+ <fo:table-column column-width="20mm"/>
+ <fo:table-column column-width="60mm"/>
+ <fo:table-header height="14px">
+ <fo:table-row>
+ <fo:table-cell border-bottom-style="solid" border-bottom-width="thin" border-bottom-color="black">
+ <fo:block font-weight="bold">${uiLabelMap.AccountingLicensedProduct}</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border-bottom-style="solid" border-bottom-width="thin" border-bottom-color="black">
+ <fo:block font-weight="bold">${uiLabelMap.AccountingQuantity}</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border-bottom-style="solid" border-bottom-width="thin" border-bottom-color="black">
+ <fo:block font-weight="bold">${uiLabelMap.AccountingNumberOfOrders} / ${uiLabelMap.AccountingSalesInvoices}</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border-bottom-style="solid" border-bottom-width="thin" border-bottom-color="black">
+ <fo:block font-weight="bold">${uiLabelMap.AccountingCommissionAmount}</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border-bottom-style="solid" border-bottom-width="thin" border-bottom-color="black">
+ <fo:block font-weight="bold">${uiLabelMap.AccountingNetSale}</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border-bottom-style="solid" border-bottom-width="thin" border-bottom-color="black">
+ <fo:block font-weight="bold">${uiLabelMap.AccountingSalesAgents} / ${uiLabelMap.AccountingTermAmount}</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-header>
+ <fo:table-body font-size="10pt" height="500px">
+ <#if commissionReportList?has_content>
+ <#list commissionReportList as commissionReport>
+ <fo:table-row height="14px">
+ <fo:table-cell>
+ <fo:block>${commissionReport.productId!}</fo:block>
+ </fo:table-cell>
+ <fo:table-cell>
+ <fo:block>${commissionReport.quantity!}</fo:block>
+ </fo:table-cell>
+ <fo:table-cell>
+ <fo:block>${commissionReport.numberOfOrders!} / ${commissionReport.salesInvoiceIds!}</fo:block>
+ </fo:table-cell>
+ <fo:table-cell>
+ <fo:block><@ofbizCurrency amount = commissionReport.commissionAmount!/></fo:block>
+ </fo:table-cell>
+ <fo:table-cell>
+ <fo:block><@ofbizCurrency amount = commissionReport.netSale!/></fo:block>
+ </fo:table-cell>
+ <fo:table-cell>
+ <#if commissionReport.salesAgentAndTermAmtMap?has_content>
+ <#list commissionReport.salesAgentAndTermAmtMap.values() as partyIdAndTermAmountMap>
+ <#assign partyName = (delegator.findOne("PartyNameView", {"partyId" : partyIdAndTermAmountMap.partyId}, true))!>
+ <fo:block>
+ [${(partyName.firstName)!} ${(partyName.lastName)!} ${(partyName.groupName)!} (${partyIdAndTermAmountMap.partyId!})] / <@ofbizCurrency amount = (partyIdAndTermAmountMap.termAmount)!/>
+ </fo:block>
+ </#list>
+ </#if>
+ </fo:table-cell>
+ </fo:table-row>
+ </#list>
+ <#else>
+ <fo:table-row height="14px">
+ <fo:table-cell number-columns-spanned="5">
+ <fo:block space-after="10pt"/>
+ <fo:block text-align="center">${uiLabelMap.AccountingNoRecordFound}</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </#if>
+ </fo:table-body>
+ </fo:table>
+ <fo:block space-after="50pt"/>
+ <#if commissionReportList?has_content && totalQuantity?has_content && totalCommissionAmount?has_content && totalNetSales?has_content && totalNumberOfOrders?has_content>
+ <fo:table font-size="14pt">
+ <fo:table-body font-size="10pt">
+ <fo:table-row>
+ <fo:table-cell>
+ <fo:block font-size="14pt" font-weight="bold">${uiLabelMap.CommonSummary} :</fo:block>
+ <fo:block space-after="10pt"/>
+ <fo:block font-weight="bold">${uiLabelMap.ManufacturingTotalQuantity} : ${totalQuantity!}</fo:block>
+ <fo:block font-weight="bold">${uiLabelMap.AccountingTotalCommissionAmount} : <@ofbizCurrency amount = totalCommissionAmount!/></fo:block>
+ <fo:block font-weight="bold">${uiLabelMap.AccountingTotalNetSales} : <@ofbizCurrency amount = totalNetSales!/></fo:block>
+ <fo:block font-weight="bold">${uiLabelMap.AccountingTotalNumberOfOrders} : ${totalNumberOfOrders!}</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ </#if>
+</#escape>
Propchange: ofbiz/trunk/applications/accounting/webapp/ap/reports/CommissionReport.fo.ftl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/trunk/applications/accounting/webapp/ap/reports/CommissionReport.fo.ftl
------------------------------------------------------------------------------
svn:keywords = Date Rev Author URL Id
Propchange: ofbiz/trunk/applications/accounting/webapp/ap/reports/CommissionReport.fo.ftl
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: ofbiz/trunk/applications/accounting/widget/ap/ApPrintScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/ap/ApPrintScreens.xml?rev=803508&view=auto
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/ap/ApPrintScreens.xml (added)
+++ ofbiz/trunk/applications/accounting/widget/ap/ApPrintScreens.xml Wed Aug 12 13:48:26 2009
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
+
+ <screen name="CommissionReportPdf">
+ <section>
+ <actions>
+ <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
+ <property-map resource="AccountingUiLabels" map-name="uiLabelMap" global="true"/>
+ <property-map resource="ManufacturingUiLabels" map-name="uiLabelMap" global="true"/>
+ <script location="component://accounting/webapp/ap/WEB-INF/actions/invoices/CommissionReport.groovy"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="FoReportDecorator" location="component://common/widget/CommonScreens.xml">
+ <decorator-section name="topLeft">
+ <include-screen name="CompanyLogo" location="component://order/widget/ordermgr/OrderPrintScreens.xml"/>
+ </decorator-section>
+ <decorator-section name="body">
+ <platform-specific>
+ <xsl-fo><html-template location="component://accounting/webapp/ap/reports/CommissionReport.fo.ftl"/></xsl-fo>
+ </platform-specific>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+</screens>
Propchange: ofbiz/trunk/applications/accounting/widget/ap/ApPrintScreens.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/trunk/applications/accounting/widget/ap/ApPrintScreens.xml
------------------------------------------------------------------------------
svn:keywords = Date Rev Author URL Id
Propchange: ofbiz/trunk/applications/accounting/widget/ap/ApPrintScreens.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Modified: ofbiz/trunk/applications/accounting/widget/ap/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/ap/CommonScreens.xml?rev=803508&r1=803507&r2=803508&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/ap/CommonScreens.xml (original)
+++ ofbiz/trunk/applications/accounting/widget/ap/CommonScreens.xml Wed Aug 12 13:48:26 2009
@@ -24,6 +24,7 @@
<property-map resource="AccountingUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
+ <property-map resource="ManufacturingUiLabels" map-name="uiLabelMap" global="true"/>
<set field="layoutSettings.companyName" from-field="uiLabelMap.AccountingApCompanyName" global="true"/>
<set field="layoutSettings.companySubtitle" from-field="uiLabelMap.AccountingCompanySubtitle" global="true"/>
<set field="applicationMenuName" value="ApAppBar" global="true"/>
@@ -324,4 +325,24 @@
</section>
</screen>
+ <screen name="CommonApReportDecorator">
+ <section>
+ <actions>
+ <set field="headerItem" value="reports"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="main-decorator" location="${parameter.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <section>
+ <widgets>
+ <include-menu name="ApReportTabBar" location="component://accounting/widget/ap/Menus.xml"/>
+ <container style="clear"/>
+ <decorator-section-include name="body"/>
+ </widgets>
+ </section>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
</screens>
\ No newline at end of file
Modified: ofbiz/trunk/applications/accounting/widget/ap/InvoiceScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/ap/InvoiceScreens.xml?rev=803508&r1=803507&r2=803508&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/ap/InvoiceScreens.xml (original)
+++ ofbiz/trunk/applications/accounting/widget/ap/InvoiceScreens.xml Wed Aug 12 13:48:26 2009
@@ -24,17 +24,21 @@
<screen name="ListReports">
<section>
<actions>
- <set field="headerItem" value="reports"/>
<set field="titleProperty" value="AccountingArPageTitleListReports"/>
<set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer"/>
+ <set field="tabButtonItem" value="viewReports"/>
<set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="10"/>
</actions>
<widgets>
- <decorator-screen name="main-decorator" location="component://accounting/widget/ap/CommonScreens.xml">
+ <decorator-screen name="CommonApReportDecorator" location="${parameters.mainDecoratorLocation}">
<decorator-section name="body">
- <screenlet title="${uiLabelMap.AccountingReports}" navigation-form-name="ListReports">
- <include-form name="ListReports" location="component://accounting/widget/ap/forms/InvoiceForms.xml"/>
- </screenlet>
+ <section>
+ <widgets>
+ <screenlet title="${uiLabelMap.AccountingReports}" navigation-form-name="ListReports">
+ <include-form name="ListReports" location="component://accounting/widget/ap/forms/InvoiceForms.xml"/>
+ </screenlet>
+ </widgets>
+ </section>
</decorator-section>
</decorator-screen>
</widgets>
@@ -175,4 +179,34 @@
</widgets>
</section>
</screen>
+
+ <screen name="CommissionReport">
+ <section>
+ <actions>
+ <set field="titleProperty" value="AccountingCommissionReport"/>
+ <set field="tabButtonItem" value="commissionReport"/>
+ <script location="component://accounting/webapp/ap/WEB-INF/actions/invoices/CommissionReport.groovy"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonApReportDecorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <section>
+ <widgets>
+ <decorator-screen name="FindScreenDecorator" location="component://common/widget/CommonScreens.xml">
+ <decorator-section name="search-options">
+ <include-form name="CommissionReport" location="component://accounting/widget/ap/forms/InvoiceForms.xml"/>
+ </decorator-section>
+ <decorator-section name="search-results">
+ <platform-specific>
+ <html><html-template location="component://accounting/webapp/ap/invoices/CommissionReport.ftl"/></html>
+ </platform-specific>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
</screens>
Modified: ofbiz/trunk/applications/accounting/widget/ap/Menus.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/ap/Menus.xml?rev=803508&r1=803507&r2=803508&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/ap/Menus.xml (original)
+++ ofbiz/trunk/applications/accounting/widget/ap/Menus.xml Wed Aug 12 13:48:26 2009
@@ -83,4 +83,14 @@
<link target="CommissionRun"/>
</menu-item>
</menu>
+
+ <menu name="ApReportTabBar" extends="CommonTabBarMenu" extends-resource="component://common/widget/CommonMenus.xml"
+ default-menu-item-name="viewInvoices">
+ <menu-item name="viewReports" title="${uiLabelMap.CommonMain}">
+ <link target="listReports"/>
+ </menu-item>
+ <menu-item name="commissionReport" title="${uiLabelMap.AccountingCommissionReport}">
+ <link target="FindCommissions"/>
+ </menu-item>
+ </menu>
</menus>
Modified: ofbiz/trunk/applications/accounting/widget/ap/forms/InvoiceForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/ap/forms/InvoiceForms.xml?rev=803508&r1=803507&r2=803508&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/ap/forms/InvoiceForms.xml (original)
+++ ofbiz/trunk/applications/accounting/widget/ap/forms/InvoiceForms.xml Wed Aug 12 13:48:26 2009
@@ -119,4 +119,19 @@
<field name="thruDate" position="2"><date-time/></field>
<field name="search" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
+
+ <form name="CommissionReport" type="single" target="FindCommissions">
+ <field name="isSearch"><hidden value="Y"/><!-- if this isn't there then with all fields empty no query will be done --></field>
+ <field name="productId" position="1"><lookup target-form-name="LookupProduct"/></field>
+ <field name="partyId" position="2" title="${uiLabelMap.PartyPartyId}">
+ <drop-down allow-empty="true">
+ <entity-options entity-name="PartyRoleAndPartyDetail" description="${firstName} ${middleName} ${lastName} ${groupName}(${partyId})">
+ <entity-constraint name="roleTypeId" operator="equals" value="SALES_REP"/>
+ </entity-options>
+ </drop-down>
+ </field>
+ <field name="fromDate" position="1"><date-time/></field>
+ <field name="thruDate" position="2"><date-time/></field>
+ <field name="search" widget-style="smallSubmit" position="1"><submit button-type="button"/></field>
+ </form>
</forms>