You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mo...@apache.org on 2008/05/31 17:29:37 UTC

svn commit: r662037 - in /ofbiz/trunk/applications: marketing/config/ marketing/webapp/marketing/lookup/ marketing/webapp/sfa/WEB-INF/ marketing/widget/ marketing/widget/sfa/ marketing/widget/sfa/forms/ order/script/org/ofbiz/order/opportunity/ order/s...

Author: mor
Date: Sat May 31 08:29:36 2008
New Revision: 662037

URL: http://svn.apache.org/viewvc?rev=662037&view=rev
Log:
Patch for SalesForecast screens, SalesForecastDetail screens, crud services - part of Jira Issue OFBIZ-1645 (https://issues.apache.org/jira/browse/OFBIZ-1645)

Added:
    ofbiz/trunk/applications/marketing/widget/sfa/ForecastScreens.xml   (with props)
    ofbiz/trunk/applications/marketing/widget/sfa/forms/ForecastForms.xml   (with props)
Modified:
    ofbiz/trunk/applications/marketing/config/MarketingUiLabels.xml
    ofbiz/trunk/applications/marketing/webapp/marketing/lookup/LookupForms.xml
    ofbiz/trunk/applications/marketing/webapp/sfa/WEB-INF/controller.xml
    ofbiz/trunk/applications/marketing/widget/LookupScreens.xml
    ofbiz/trunk/applications/marketing/widget/sfa/CommonScreens.xml
    ofbiz/trunk/applications/marketing/widget/sfa/SfaMenus.xml
    ofbiz/trunk/applications/order/script/org/ofbiz/order/opportunity/OpportunityServices.xml
    ofbiz/trunk/applications/order/servicedef/services_opportunity.xml

Modified: ofbiz/trunk/applications/marketing/config/MarketingUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/config/MarketingUiLabels.xml?rev=662037&r1=662036&r2=662037&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/config/MarketingUiLabels.xml (original)
+++ ofbiz/trunk/applications/marketing/config/MarketingUiLabels.xml Sat May 31 08:29:36 2008
@@ -601,6 +601,12 @@
         <value xml:lang="th">แก้ไขสถานะแผนการตลาด</value>
         <value xml:lang="zh">编辑市场攻势角色</value>
     </property>
+    <property key="PageTitleEditSalesForecast">
+        <value xml:lang="en">Edit Sales Forecast</value>
+    </property>    
+    <property key="PageTitleEditSalesForecastDetail">
+        <value xml:lang="en">Edit Sales Forecast Detail</value>
+    </property>     
     <property key="PageTitleEditSegmentGroup">
         <value xml:lang="en">Edit Segment Group</value>
         <value xml:lang="es">Editar segmento</value>
@@ -709,6 +715,9 @@
         <value xml:lang="th">ค้นหาสถานะแผนการตลาด</value>
         <value xml:lang="zh">查找市场攻势角色</value>
     </property>
+    <property key="PageTitleFindSalesForecast">
+        <value xml:lang="en">Find Sales Forecast</value>
+    </property>    
     <property key="PageTitleFindSegmentGroup">
         <value xml:lang="en">Find Segment Group</value>
         <value xml:lang="es">Buscar segmento</value>
@@ -887,6 +896,9 @@
         <value xml:lang="th">ค้นหาข้อมูลโครงสร้าง</value>
         <value xml:lang="zh">查找地理</value>
     </property>
+    <property key="PageTitleLookupSalesForecast">
+        <value xml:lang="en">Lookup Sales Forecast</value>
+    </property>    
     <property key="PageTitleLookupSegmentGroup">
         <value xml:lang="en">Lookup Segment Group</value>
         <value xml:lang="it">Ricerca Gruppi Segmento</value>
@@ -1131,6 +1143,9 @@
     <property key="SfaAcccounts">
         <value xml:lang="en">Accounts</value>
     </property>
+    <property key="SfaAddSalesForecastDetail">
+        <value xml:lang="en">Add Sales Forcast Detail</value>
+    </property>    
     <property key="SfaAutoCreateContactByImportingVCard">
         <value xml:lang="en">Automatically create a new contact by importing a vCard</value>
     </property>    
@@ -1182,6 +1197,9 @@
     <property key="SfaEditOpportunity">
         <value xml:lang="en">Edit Opportunity</value>
     </property>
+    <property key="SfaEditSalesForecast">
+        <value xml:lang="en">Create/Update Sales Forecast</value>
+    </property>     
     <property key="SfaEstimatedAmount">
         <value xml:lang="en">Estimated Amount</value>
     </property>
@@ -1224,6 +1242,9 @@
     <property key="SfaLeadSource">
         <value xml:lang="en">Lead Source</value>
     </property>
+    <property key="SfaListSalesForecastDetail">
+        <value xml:lang="en">List Sales Forecast Details</value>
+    </property>     
     <property key="SfaManagerApplication">
         <value xml:lang="en">SFA Manager Application</value>
     </property>
@@ -1266,6 +1287,9 @@
     <property key="SfaQuickAddLead">
         <value xml:lang="en">Quick Add Lead</value>
     </property>
+    <property key="SfaSalesForecast">
+        <value xml:lang="en">Sales Forecast</value>
+    </property>     
     <property key="SfaSecondContact">
         <value xml:lang="en">Second Contact</value>
     </property>   

Modified: ofbiz/trunk/applications/marketing/webapp/marketing/lookup/LookupForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/webapp/marketing/lookup/LookupForms.xml?rev=662037&r1=662036&r2=662037&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/webapp/marketing/lookup/LookupForms.xml (original)
+++ ofbiz/trunk/applications/marketing/webapp/marketing/lookup/LookupForms.xml Sat May 31 08:29:36 2008
@@ -62,4 +62,34 @@
                 description="[${uiLabelMap.CommonDelete}]" also-hidden="false"/>
         </field>
     </form>
+    <form name="LookupSalesForecast" target="LookupSalesForecast" title="" type="single"
+        header-row-style="header-row" default-table-style="basic-table">
+        <auto-fields-entity entity-name="SalesForecast" default-field-type="find"/>
+        <field name="currencyUomId">
+            <drop-down allow-empty="true">
+                <entity-options key-field-name="uomId" description="${abbreviation} - ${description}" entity-name="Uom">
+                    <entity-constraint name="uomTypeId" operator="equals" value="CURRENCY_MEASURE"/>
+                    <entity-order-by field-name="abbreviation"/>
+                </entity-options>
+            </drop-down>
+        </field>
+        <field name="createdByUserLoginId"><hidden/></field>
+        <field name="modifiedByUserLoginId"><hidden/></field>
+        <field name="noConditionFind"><hidden value="Y"/></field>
+        <field name="submitButton" title="${uiLabelMap.CommonLookup}" widget-style="smallSubmit"><submit button-type="button"/></field>
+    </form>
+    
+    <form name="ListLookupSalesForecast" list-name="listIt" type="list" paginate-target="LookupSalesForecast" view-size="10"
+            odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
+        <actions>
+            <service service-name="performFind" result-map-name="result" result-map-list-name="listIt">
+                <field-map field-name="inputFields" env-name="parameters"/>
+                <field-map field-name="entityName" value="SalesForecast"/>
+            </service>
+        </actions>
+        <auto-fields-entity entity-name="SalesForecast" default-field-type="display"/>
+        <field name="salesForecastId"  widget-style="buttontext">
+            <hyperlink also-hidden="false" target-type="plain" description="${salesForecastId}" target="javascript:set_value('${salesForecastId}')"/>
+        </field>
+    </form>
 </forms>
\ No newline at end of file

Modified: ofbiz/trunk/applications/marketing/webapp/sfa/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/webapp/sfa/WEB-INF/controller.xml?rev=662037&r1=662036&r2=662037&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/webapp/sfa/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/marketing/webapp/sfa/WEB-INF/controller.xml Sat May 31 08:29:36 2008
@@ -178,7 +178,58 @@
     <request-map uri="quickAddContact">   
         <event type="service" invoke="createContact"/>
         <response name="success" type="view" value="viewprofile"/>
-    </request-map> 
+    </request-map>
+     
+    <!-- Forecast Requests -->
+    <request-map uri="FindSalesForecast">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="FindSalesForecast"/>
+    </request-map>
+    <request-map uri="EditSalesForecast">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="EditSalesForecast"/>
+        <response name="error" type="view" value="EditSalesForecast"/>
+    </request-map>
+    <request-map uri="createSalesForecast">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="createSalesForecast"/>
+        <response name="success" type="view" value="EditSalesForecast"/>
+        <response name="error" type="view" value="EditSalesForecast"/>
+    </request-map>
+    <request-map uri="updateSalesForecast">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="updateSalesForecast"/>
+        <response name="success" type="view" value="EditSalesForecast"/>
+        <response name="error" type="view" value="EditSalesForecast"/>
+    </request-map>
+    
+    <request-map uri="EditSalesForecastDetail">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="EditSalesForecastDetail"/>
+    </request-map>
+    <request-map uri="createSalesForecastDetail">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="createSalesForecastDetail"/>
+        <response name="success" type="view" value="EditSalesForecastDetail"/>
+        <response name="error" type="view" value="EditSalesForecastDetail"/>
+    </request-map>
+    <request-map uri="updateSalesForecastDetail">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="updateSalesForecastDetail"/>
+        <response name="success" type="view" value="EditSalesForecastDetail"/>
+        <response name="error" type="view" value="EditSalesForecastDetail"/>
+    </request-map>
+    <request-map uri="deleteSalesForecastDetail">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="deleteSalesForecastDetail"/>
+        <response name="success" type="view" value="EditSalesForecastDetail"/>
+        <response name="error" type="view" value="EditSalesForecastDetail"/>
+    </request-map>
+    
+    <!-- Lookup requests -->
+    <request-map uri="LookupSalesForecast"><security https="true" auth="true"/><response name="success" type="view" value="LookupSalesForecast"/></request-map>
+    <request-map uri="LookupProduct"><security auth="true" https="true"/><response name="success" type="view" value="LookupProduct"/></request-map>
+    <request-map uri="LookupProductCategory"><security auth="true" https="true"/><response name="success" type="view" value="LookupProductCategory"/></request-map>
     <!-- end of request mappings -->
 
     <!-- View Mappings -->
@@ -203,6 +254,14 @@
     <view-map name="CreateContact" type="screen" page="component://marketing/widget/sfa/ContactScreens.xml#CreateContact"/>
     <view-map name="MergeContacts" type="screen" page="component://marketing/widget/sfa/ContactScreens.xml#MergeContacts"/>
     <view-map name="CreateContactFromVCard" type="screen" page="component://marketing/widget/sfa/ContactScreens.xml#CreateContactFromVCard"/>
+
+    <view-map name="FindSalesForecast" type="screen" page="component://marketing/widget/sfa/ForecastScreens.xml#FindSalesForecast"/>
+    <view-map name="EditSalesForecast" type="screen" page="component://marketing/widget/sfa/ForecastScreens.xml#EditSalesForecast"/>
+    <view-map name="EditSalesForecastDetail" type="screen" page="component://marketing/widget/sfa/ForecastScreens.xml#EditSalesForecastDetail"/>
+    
+    <view-map name="LookupSalesForecast" type="screen" page="component://marketing/widget/LookupScreens.xml#LookupSalesForecast"/>
+    <view-map name="LookupProduct" type="screen" page="component://product/widget/catalog/LookupScreens.xml#LookupProduct"/>
+    <view-map name="LookupProductCategory" type="screen" page="component://product/widget/catalog/LookupScreens.xml#LookupProductCategory"/>
     
     <!-- end of view mappings -->
 </site-conf>
\ No newline at end of file

Modified: ofbiz/trunk/applications/marketing/widget/LookupScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/widget/LookupScreens.xml?rev=662037&r1=662036&r2=662037&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/widget/LookupScreens.xml (original)
+++ ofbiz/trunk/applications/marketing/widget/LookupScreens.xml Sat May 31 08:29:36 2008
@@ -60,4 +60,41 @@
             </widgets>
         </section>
     </screen>
+    <!-- SalesForecast Lookup Screen -->
+    <screen name="LookupSalesForecast">
+        <section>
+            <condition>
+                <or>
+                    <if-has-permission permission="MARKETING" action="_VIEW"/>
+                </or>
+            </condition>
+            <actions>
+                <property-map resource="MarketingUiLabels" map-name="uiLabelMap" global="true"/>
+
+                <set field="title" value="${uiLabelMap.PageTitleLookupSalesForecast}"/>
+                <set field="queryString" from-field="result.queryString"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="LookupDecorator" location="component://common/widget/CommonScreens.xml">
+                    <decorator-section name="body">
+                        <container style="screenlet">
+                            <container style="screenlet-title-bar">
+                                <container style="h3">
+                                    <label text="${uiLabelMap.PageTitleLookupSalesForecast}"/>
+                                </container>
+                            </container>
+                            <container style="screenlet-body">
+                                <section>
+                                    <widgets>
+                                        <include-form name="LookupSalesForecast" location="component://marketing/webapp/marketing/lookup/LookupForms.xml"/>
+                                        <include-form name="ListLookupSalesForecast" location="component://marketing/webapp/marketing/lookup/LookupForms.xml"/>
+                                    </widgets>
+                                </section>
+                            </container>
+                        </container>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
 </screens>
\ No newline at end of file

Modified: ofbiz/trunk/applications/marketing/widget/sfa/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/widget/sfa/CommonScreens.xml?rev=662037&r1=662036&r2=662037&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/widget/sfa/CommonScreens.xml (original)
+++ ofbiz/trunk/applications/marketing/widget/sfa/CommonScreens.xml Sat May 31 08:29:36 2008
@@ -27,6 +27,7 @@
                 <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
                 <property-map resource="AccountingUiLabels" map-name="uiLabelMap" global="true"/>
                 <property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/>
+                <property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
                 <property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
                 <property-map resource="MarketingUiLabels" map-name="uiLabelMap" global="true"/>
                 <set field="layoutSettings.javaScripts[]" value="/partymgr/static/partymgr.js" global="true"/>

Added: ofbiz/trunk/applications/marketing/widget/sfa/ForecastScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/widget/sfa/ForecastScreens.xml?rev=662037&view=auto
==============================================================================
--- ofbiz/trunk/applications/marketing/widget/sfa/ForecastScreens.xml (added)
+++ ofbiz/trunk/applications/marketing/widget/sfa/ForecastScreens.xml Sat May 31 08:29:36 2008
@@ -0,0 +1,153 @@
+<?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="CommonSalesForecastDecorator">
+        <section>
+            <actions>
+                <set field="headerItem" value="Forecast"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <section>
+                            <widgets>
+                                <section>
+                                    <condition><not><if-empty field-name="salesForecastId"/></not></condition>
+                                    <widgets>
+                                        <include-menu name="SalesForecastTabBar" location="component://marketing/widget/sfa/SfaMenus.xml"/>
+                                    </widgets>
+                                </section>
+                            </widgets>
+                        </section>                    
+                        <decorator-section-include name="body"/>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+    
+    <screen name="FindSalesForecast">
+        <section>
+            <actions>
+                <set field="titleProperty" value="PageTitleFindSalesForecast"/>
+                <set field="headerItem" value="Forecast"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <section>
+                            <widgets>
+                                <decorator-screen name="FindScreenDecorator" location="component://common/widget/CommonScreens.xml">
+                                    <decorator-section name="menu-bar">
+                                        <section>
+                                            <widgets>
+                                                <container style="button-bar"><link target="EditSalesForecast" text="${uiLabelMap.CommonCreateNew} ${uiLabelMap.SfaSalesForecast}" style="buttontext"/></container>
+                                            </widgets>
+                                        </section>
+                                    </decorator-section>
+                                    <decorator-section name="search-options">
+                                        <include-form name="FindSalesForecast" location="component://marketing/widget/sfa/forms/ForecastForms.xml"/>
+                                    </decorator-section>
+                                    <decorator-section name="search-results">
+                                        <include-form name="SalesForecastSearchResults" location="component://marketing/widget/sfa/forms/ForecastForms.xml"/>
+                                    </decorator-section>
+                                </decorator-screen>
+                            </widgets>
+                        </section>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+    
+    <screen name="EditSalesForecast">
+        <section>
+            <actions>
+                <set field="titleProperty" value="PageTitleEditSalesForecast"/>
+                <set field="tabButtonItem" value="EditSalesForecast"/>
+                <set field="salesForecastId" from-field="parameters.salesForecastId"/>
+                <entity-one entity-name="SalesForecast" value-name="salesForecast"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="CommonSalesForecastDecorator">
+                    <decorator-section name="body">
+                        <container style="screenlet">
+                            <container style="screenlet-title-bar">
+                                <container style="h3">
+                                    <label text="${uiLabelMap.SfaEditSalesForecast}"/>
+                                </container>
+                            </container>
+                            <container style="screenlet-body">
+                                <section>
+                                    <condition><not><if-empty field-name="salesForecastId"/></not></condition>
+                                        <widgets>
+                                            <container style="button-bar">
+                                                <link target="EditSalesForecast" text="${uiLabelMap.CommonCreateNew} ${uiLabelMap.SfaSalesForecast}" style="buttontext"/>
+                                            </container>                                
+                                    </widgets>
+                                </section>    
+                                <include-form name="EditSalesForecast" location="component://marketing/widget/sfa/forms/ForecastForms.xml"/>
+                            </container>
+                        </container>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+    
+    <screen name="EditSalesForecastDetail">
+        <section>
+            <actions>
+                <set field="titleProperty" value="PageTitleEditSalesForecastDetail"/>
+                <set field="tabButtonItem" value="EditSalesForecastDetail"/>
+                <set field="salesForecastId" from-field="parameters.salesForecastId"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="CommonSalesForecastDecorator">
+                    <decorator-section name="body">
+                        <section>
+                            <widgets>
+                                <container style="screenlet">
+                                    <container style="screenlet-title-bar">
+                                        <container style="h3"><label text="${uiLabelMap.SfaAddSalesForecastDetail} ${uiLabelMap.CommonFor} [${salesForecastId}]"/></container>
+                                    </container>
+                                    <container style="screenlet-body">
+                                        <include-form name="AddSalesForecastDetail" location="component://marketing/widget/sfa/forms/ForecastForms.xml"/>
+                                    </container>
+                                </container>
+                                <container style="screenlet">
+                                    <container style="screenlet-title-bar">
+                                        <container style="h3"><label text="${uiLabelMap.SfaListSalesForecastDetail}"/></container>
+                                    </container>
+                                    <container style="screenlet-body">
+                                        <include-form name="ListSalesForecastDetails" location="component://marketing/widget/sfa/forms/ForecastForms.xml"/>
+                                    </container>
+                                </container>
+                            </widgets>
+                        </section>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>  
+    </screen>
+</screens>
\ No newline at end of file

Propchange: ofbiz/trunk/applications/marketing/widget/sfa/ForecastScreens.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/applications/marketing/widget/sfa/ForecastScreens.xml
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/applications/marketing/widget/sfa/ForecastScreens.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: ofbiz/trunk/applications/marketing/widget/sfa/SfaMenus.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/widget/sfa/SfaMenus.xml?rev=662037&r1=662036&r2=662037&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/widget/sfa/SfaMenus.xml (original)
+++ ofbiz/trunk/applications/marketing/widget/sfa/SfaMenus.xml Sat May 31 08:29:36 2008
@@ -27,7 +27,7 @@
         <menu-item name="Competitors" title="${uiLabelMap.SfaCompetitors}"><link target=""/></menu-item>
         <menu-item name="Events" title="${uiLabelMap.SfaEvents}"><link target=""/></menu-item>
         <menu-item name="Documents" title="${uiLabelMap.SfaDocuments}"><link target=""/></menu-item>
-        <menu-item name="Forecasts" title="${uiLabelMap.SfaForecasts}"><link target=""/></menu-item>
+        <menu-item name="Forecast" title="${uiLabelMap.SfaForecasts}"><link target="FindSalesForecast"/></menu-item>
         <menu-item name="Opportunities" title="${uiLabelMap.SfaOpportunities}"><link target="FindOpportunity"/></menu-item>
         <menu-item name="Logout" title="${uiLabelMap.CommonLogout}" align-style="col-right" selected-style="selected">
             <condition><not><if-empty field-name="userLogin"/></not></condition>
@@ -99,4 +99,13 @@
             <link target="CreateContactFromVCard"/>
         </menu-item>
     </menu>    
+    <menu name="SalesForecastTabBar" default-selected-style="selected" type="simple"
+            menu-container-style="button-bar tab-bar no-clear" selected-menuitem-context-field-name="tabButtonItem">
+        <menu-item name="EditSalesForecast" title="${uiLabelMap.SfaSalesForecast}">
+            <link target="EditSalesForecast?salesForecastId=${parameters.salesForecastId}"/>
+        </menu-item>
+        <menu-item name="EditSalesForecastDetail" title="${uiLabelMap.ProductPickingDetail}">
+            <link target="EditSalesForecastDetail?salesForecastId=${parameters.salesForecastId}"/>
+        </menu-item>
+    </menu>
 </menus>

Added: ofbiz/trunk/applications/marketing/widget/sfa/forms/ForecastForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/widget/sfa/forms/ForecastForms.xml?rev=662037&view=auto
==============================================================================
--- ofbiz/trunk/applications/marketing/widget/sfa/forms/ForecastForms.xml (added)
+++ ofbiz/trunk/applications/marketing/widget/sfa/forms/ForecastForms.xml Sat May 31 08:29:36 2008
@@ -0,0 +1,128 @@
+<?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.
+-->
+
+<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-form.xsd">
+
+    <form name="FindSalesForecast" type="single" target="FindSalesForecast" extends="LookupSalesForecast"
+            extends-resource="component://marketing/webapp/marketing/lookup/LookupForms.xml" 
+            header-row-style="header-row" default-table-style="basic-table">
+        <field name="submitButton" title="${uiLabelMap.CommonFind}"><submit button-type="button"/></field>
+    </form>
+    <form name="SalesForecastSearchResults" type="list" list-name="listIt" paginate-target="FindForecasts" view-size="5"
+            odd-row-style="alternate-row" default-table-style="basic-table hover-bar" header-row-style="header-row-2" separate-columns="true">
+        <actions>
+            <service service-name="performFind" result-map-name="result" result-map-list-name="listIt">
+                <field-map field-name="inputFields" env-name="parameters"/>
+                <field-map field-name="entityName" value="SalesForecast"/>
+            </service>
+        </actions>
+        <auto-fields-entity entity-name="SalesForecast" default-field-type="display"/>
+        <field name="salesForecastId" widget-style="buttontext">
+            <hyperlink target="EditSalesForecast?salesForecastId=${salesForecastId}" description="${salesForecastId}" also-hidden="false"/>
+        </field>
+        <field name="percentOfQuotaForecast"><hidden/></field>
+        <field name="percentOfQuotaClosed"><hidden/></field>
+        <field name="pipelineAmount"><hidden/></field>
+        <field name="createdByUserLoginId"><hidden/></field>
+        <field name="modifiedByUserLoginId"><hidden/></field>
+    </form>
+    
+    <form name="EditSalesForecast" type="single" target="updateSalesForecast" default-map-name="salesForecast">
+        <alt-target use-when="salesForecast==null" target="createSalesForecast"/>
+        <auto-fields-service service-name="updateSalesForecast"/>
+        
+        <field name="salesForecastId" use-when="salesForecastId!=null" tooltip="${uiLabelMap.CommonNotModifRecreat}"><display/></field>
+        <field name="salesForecastId" use-when="salesForecast==null&amp;&amp;salesForecastId==null"><ignored/></field>
+        <field name="salesForecastId" use-when="salesForecast==null&amp;&amp;salesForecastId!=null" tooltip="${uiLabelMap.CommonCannotBeFound}: [${salesForecastId}]"><display also-hidden="false"/></field>
+         
+        <field name="parentSalesForecastId">
+            <lookup target-form-name="LookupSalesForecast"/>
+        </field>
+        <field name="organizationPartyId">
+            <lookup target-form-name="LookupPartyName"/>
+        </field>
+        <field name="internalPartyId">
+            <lookup target-form-name="LookupPartyName"/>
+        </field>
+        <field name="currencyUomId">
+            <drop-down allow-empty="true">
+                <entity-options key-field-name="uomId" description="${abbreviation} - ${description}" entity-name="Uom">
+                    <entity-constraint name="uomTypeId" operator="equals" value="CURRENCY_MEASURE"/>
+                    <entity-order-by field-name="abbreviation"/>
+                </entity-options>
+            </drop-down>
+        </field>
+        <field name="createdByUserLoginId"><hidden/></field>
+        <field name="modifiedByUserLoginId"><hidden/></field>
+        <field name="submitButton" title="${uiLabelMap.CommonSave}" use-when="salesForecast==null"><submit button-type="button"/></field>
+        <field name="submitButton" title="${uiLabelMap.CommonUpdate}" use-when="salesForecast!=null"><submit button-type="button"/></field>
+    </form>
+    
+    <form name="ListSalesForecastDetails" type="list" target="updateSalesForecastDetail" view-size="10"
+            odd-row-style="alternate-row" default-table-style="basic-table hover-bar" separate-columns="true">
+        <actions>
+            <entity-condition entity-name="SalesForecastDetail">
+                <condition-expr field-name="salesForecastId" env-name="parameters.salesForecastId"/>
+            </entity-condition>
+        </actions>
+        <auto-fields-entity entity-name="SalesForecastDetail" default-field-type="edit"/>
+        <field name="salesForecastId"><hidden/></field>
+        <field name="salesForecastDetailId"><display/></field>
+        <field name="quantityUomId">
+            <drop-down allow-empty="true">
+                <entity-options entity-name="UomAndType" key-field-name="uomId" description="[${typeDescription}] ${description}">
+                    <entity-order-by field-name="uomTypeId"/>
+                </entity-options> 
+            </drop-down>
+        </field>
+        <field name="productId" title="${uiLabelMap.AccountingProductId}">
+            <lookup target-form-name="LookupProduct"/>
+        </field>
+        <field name="productCategoryId" title="${uiLabelMap.ProductProductCategoryId}">
+            <lookup target-form-name="LookupProductCategory"/>
+        </field>
+        <field name="submitButton" title="${uiLabelMap.CommonUpdate}"><submit button-type="button"/></field>
+        <field name="deleteLink" title="" widget-style="buttontext">
+            <hyperlink target="deleteSalesForecastDetail?salesForecastId=${salesForecastId}&amp;salesForecastDetailId=${salesForecastDetailId}"
+                description="${uiLabelMap.CommonDelete}" also-hidden="false"/>
+        </field>
+    </form>
+    
+    <form name="AddSalesForecastDetail" type="single" target="createSalesForecastDetail">
+        <auto-fields-entity entity-name="SalesForecastDetail"/>
+        <field name="salesForecastId"><hidden/></field>
+        <field name="salesForecastDetailId"><hidden/></field>
+        <field name="quantityUomId">
+            <drop-down allow-empty="true">
+                <entity-options entity-name="UomAndType" key-field-name="uomId" description="[${typeDescription}] ${description}">
+                    <entity-order-by field-name="uomTypeId"/>
+                </entity-options> 
+            </drop-down>
+        </field>
+        <field name="productId" title="${uiLabelMap.AccountingProductId}">
+            <lookup target-form-name="LookupProduct"/>
+        </field>
+        <field name="productCategoryId" title="${uiLabelMap.ProductProductCategoryId}">
+            <lookup target-form-name="LookupProductCategory"/>
+        </field>
+        <field name="submitButton" title="${uiLabelMap.CommonAdd}"><submit button-type="button"/></field>
+    </form>
+</forms>
\ No newline at end of file

Propchange: ofbiz/trunk/applications/marketing/widget/sfa/forms/ForecastForms.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/applications/marketing/widget/sfa/forms/ForecastForms.xml
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/applications/marketing/widget/sfa/forms/ForecastForms.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: ofbiz/trunk/applications/order/script/org/ofbiz/order/opportunity/OpportunityServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/script/org/ofbiz/order/opportunity/OpportunityServices.xml?rev=662037&r1=662036&r2=662037&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/script/org/ofbiz/order/opportunity/OpportunityServices.xml (original)
+++ ofbiz/trunk/applications/order/script/org/ofbiz/order/opportunity/OpportunityServices.xml Sat May 31 08:29:36 2008
@@ -81,5 +81,23 @@
         <!-- create the value -->
         <create-value value-name="salesForecastHistory"/>
     </simple-method>
-
-</simple-methods>
+    
+    <!-- Sales Forecast Detail --> 
+    <simple-method method-name="createSalesForecastDetail" short-description="Creates a sales forecast detail">
+        <make-value entity-name="SalesForecastDetail" value-name="newEntity"/>
+        <sequenced-id-to-env sequence-name="SalesForecastDetail" env-name="newEntity.salesForecastDetailId"/>
+        <field-to-result field-name="newEntity.salesForecastDetailId" result-name="salesForecastDetailId"/>
+        <set-pk-fields map-name="parameters" value-name="newEntity"/> 
+        <set-nonpk-fields map-name="parameters" value-name="newEntity"/>
+        <create-value value-name="newEntity"/>
+    </simple-method>
+    <simple-method method-name="updateSalesForecastDetail" short-description="Updates a sales forecast detail">
+        <entity-one entity-name="SalesForecastDetail" value-name="lookedUpValue"/>
+        <set-nonpk-fields value-name="lookedUpValue" map-name="parameters"/>
+        <store-value value-name="lookedUpValue"/>
+    </simple-method>
+    <simple-method method-name="deleteSalesForecastDetail" short-description="Delete a Sales Forecast Detail">
+        <entity-one entity-name="SalesForecastDetail" value-name="lookedUpValue"/>
+        <remove-value value-name="lookedUpValue"/>
+    </simple-method>
+</simple-methods>
\ No newline at end of file

Modified: ofbiz/trunk/applications/order/servicedef/services_opportunity.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/services_opportunity.xml?rev=662037&r1=662036&r2=662037&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/servicedef/services_opportunity.xml (original)
+++ ofbiz/trunk/applications/order/servicedef/services_opportunity.xml Sat May 31 08:29:36 2008
@@ -47,5 +47,24 @@
         <auto-attributes mode="IN" include="nonpk" optional="true"/>
         <attribute name="changeNote" type="String" mode="IN" optional="true"/>
     </service>
-
-</services>
+    
+     <!-- Sales Forecast Detail -->
+    <service name="createSalesForecastDetail" engine="simple" auth="true" default-entity-name="SalesForecastDetail"
+            location="org/ofbiz/order/opportunity/OpportunityServices.xml" invoke="createSalesForecastDetail">
+        <description>Creates a Sales Forecast Detail</description>
+        <auto-attributes mode="IN" include="pk" optional="false"/>
+        <auto-attributes mode="IN" include="nonpk" optional="true"/>
+        <override name="salesForecastDetailId" mode="OUT"/>
+    </service>
+    <service name="updateSalesForecastDetail" engine="simple" auth="true" default-entity-name="SalesForecastDetail"
+            location="org/ofbiz/order/opportunity/OpportunityServices.xml" invoke="updateSalesForecastDetail">
+        <description>Updates a Sales Forecast Detail</description>
+        <auto-attributes mode="IN" include="pk" optional="false"/>
+        <auto-attributes mode="IN" include="nonpk" optional="true"/>
+    </service>
+    <service name="deleteSalesForecastDetail" engine="simple" default-entity-name="SalesForecastDetail"
+            location="org/ofbiz/order/opportunity/OpportunityServices.xml" invoke="deleteSalesForecastDetail">
+        <description>Delete a Sales Forecast Detail</description>
+        <auto-attributes mode="IN" include="pk" optional="false"/>
+    </service>
+</services>
\ No newline at end of file