This commit reverses the permissions checking work I just did. I recommend 
taking another look at it.

-Adrian

[EMAIL PROTECTED] wrote:
Author: apatel
Date: Mon Dec  3 16:12:27 2007
New Revision: 600738

URL: http://svn.apache.org/viewvc?rev=600738&view=rev
Log:
Implement an automatic GL posting service triggered when a physical inventory 
variance is performed.

Sachin Chourasia , Thanks for providing implementation. And also our thanks to 
Vikas Mayur, Ashish Vijaywargiya, Mridul Pathak, Pankaj Savita and others for 
managing and helping the team implementing these services.

Modified:
    
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml
    ofbiz/trunk/applications/accounting/servicedef/secas.xml
    ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml

Modified: 
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml?rev=600738&r1=600737&r2=600738&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml
 (original)
+++ 
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml
 Mon Dec  3 16:12:27 2007
@@ -653,4 +653,49 @@
         <field-to-result field-name="acctgTransId" result-name="acctgTransId"/>
     </simple-method>
+ <simple-method method-name="createAcctgTransForPhysicalInventoryVariance" short-description="Create an Account Transaction For Physical Inventory Variance"> + <!-- retrieve ledger rounding properties --> + <property-to-field resource="arithmetic" property="ledger.decimals" field-name="ledgerDecimals"/>
+        <property-to-field resource="arithmetic" property="ledger.rounding" 
field-name="roundingMode"/>
+        <entity-and entity-name="InventoryItemDetail" 
list-name="inventoryItemDetails">
+            <field-map field-name="physicalInventoryId" 
env-name="parameters.physicalInventoryId"/>
+            <order-by field-name="inventoryItemId"/>
+        </entity-and>
+        <iterate list-name="inventoryItemDetails" 
entry-name="inventoryItemDetail">
+ <get-related-one value-name="inventoryItemDetail" relation-name="InventoryItem" to-value-name="inventoryItem"/> + <calculate field-name="origAmount" type="BigDecimal" decimal-scale="${ledgerDecimals}" rounding-mode="${roundingMode}">
+                <calcop operator="multiply">
+                    <calcop operator="get" 
field-name="inventoryItemDetail.quantityOnHandDiff"/>
+                    <calcop operator="get" field-name="inventoryItem.unitCost 
"/>
+                </calcop>
+            </calculate>
+            <!-- Credit Entries -->
+            <make-value entity-name="AcctgTransEntry" 
value-name="creditEntry"/>
+            <set field="creditEntry.debitCreditFlag" value="C"/>
+            <set field="creditEntry.glAccountTypeId" 
from-field="inventoryItemDetail.reasonEnumId"/>
+            <set field="creditEntry.productId" 
from-field="inventoryItem.productId"/>
+            <set field="creditEntry.origAmount" from-field="origAmount"/>
+            <set field="creditEntry.origCurrencyUomId" 
from-field="inventoryItem.currencyUomId"/>
+            <set field="creditEntry.organizationPartyId" 
from-field="inventoryItem.ownerPartyId"/>
+            <!-- Debit Entries-->
+            <make-value entity-name="AcctgTransEntry" value-name="debitEntry"/>
+            <set field="debitEntry.debitCreditFlag" value="D"/>
+            <set field="debitEntry.glAccountTypeId" value="INVENTORY_ACCOUNT"/>
+            <set field="debitEntry.productId" 
from-field="inventoryItem.productId"/>
+            <set field="debitEntry.origAmount" from-field="origAmount"/>
+            <set field="debitEntry.origCurrencyUomId" 
from-field="inventoryItem.currencyUomId"/>
+            <set field="debitEntry.organizationPartyId" 
from-field="inventoryItem.ownerPartyId"/>
+            <set field="acctgTransEntries[]" from-field="creditEntry" 
type="Object"/>
+ <set field="acctgTransEntries[]" from-field="debitEntry" type="Object"/> + </iterate>
+        <set field="createAcctgTransAndEntriesInMap.glFiscalTypeId" 
value="ACTUAL"/>
+        <set field="createAcctgTransAndEntriesInMap.acctgTransEntries" 
from-field="acctgTransEntries"/>
+        <set field="createAcctgTransAndEntriesInMap.physicalInventoryId" 
from-field="parameters.physicalInventoryId"/>
+        <set field="createAcctgTransAndEntriesInMap.acctgTransTypeId" 
value="ITEM_VARIANCE_ACCTG_"/>
+        <call-service service-name="createAcctgTransAndEntries" 
in-map-name="createAcctgTransAndEntriesInMap">
+            <result-to-field result-name="acctgTransId"/>
+        </call-service>
+        <field-to-result field-name="acctgTransId" result-name="acctgTransId"/>
+   </simple-method>
+
 </simple-methods>

Modified: ofbiz/trunk/applications/accounting/servicedef/secas.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/secas.xml?rev=600738&r1=600737&r2=600738&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/servicedef/secas.xml (original)
+++ ofbiz/trunk/applications/accounting/servicedef/secas.xml Mon Dec  3 
16:12:27 2007
@@ -164,4 +164,11 @@
         <condition field-name="receiptId" operator="is-empty"/>
         <action service="createAcctgTransForInventoryItemCostChange" 
mode="sync"/>
     </eca>
+
+    <!-- attempt to create AcctgTrans Physical Inventory Variance when Physical 
InventoryAndVariance is created-->
+    <eca service="createPhysicalInventoryAndVariance" event="commit">
+        <condition field-name="physicalInventoryId" operator="is-not-empty"/>
+        <action service="createAcctgTransForPhysicalInventoryVariance" 
mode="sync"/>
+    </eca>
+ </service-eca>

Modified: ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml?rev=600738&r1=600737&r2=600738&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml 
(original)
+++ ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml Mon Dec  
3 16:12:27 2007
@@ -30,7 +30,6 @@
     <service name="createGlAccount" default-entity-name="GlAccount" 
engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="createGlAccount" auth="true">
         <description>Create a GlAccount record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="CREATE"/>
         <auto-attributes include="pk" mode="INOUT" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
         <override name="glAccountTypeId" optional="false"/>
@@ -41,40 +40,35 @@
     <service name="updateGlAccount" default-entity-name="GlAccount" 
engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="updateGlAccount" auth="true">
         <description>Update a GlAccount record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
     <service name="deleteGlAccount" default-entity-name="GlAccount" 
engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="deleteGlAccount" auth="true">
         <description>Delete a GlAccount record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
<service name="createGlAccountOrganization" default-entity-name="GlAccountOrganization" engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="createGlAccountOrganization" auth="true">
         <description>Create a GlAccount record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
     <service name="updateGlAccountOrganization" 
default-entity-name="GlAccountOrganization" engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="updateGlAccountOrganization" auth="true">
         <description>Update a GlAccount record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
     <service name="deleteGlAccountOrganization" 
default-entity-name="GlAccountOrganization" engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="deleteGlAccountOrganization" auth="true">
         <description>Delete a GlAccount record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
<!-- GlJournal --> - <service name="quickCreateAcctgTransAndEntries" engine="simple" + <service name="quickCreateAcctgTransAndEntries" engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="quickCreateAcctgTransAndEntries" auth="true">
         <description>Creates an AcctgTrans and two offsetting AcctgTransEntry 
records</description>
         <auto-attributes mode="IN" entity-name="AcctgTrans" include="nonpk" 
optional="true"/>
@@ -87,11 +81,10 @@
         <attribute name="acctgTransId" type="String" mode="OUT" 
optional="false"/>
         <override name="amount" optional="false"/>
     </service>
- +
     <service name="calculateGlJournalTrialBalance" default-entity-name="GlJournal" 
engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="calculateGlJournalTrialBalance" auth="true">
         <description>Calculate Trial Balance for a GlJournal</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="VIEW"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <attribute name="debitTotal" type="Double" mode="OUT" 
optional="false"/>
         <attribute name="creditTotal" type="Double" mode="OUT" 
optional="false"/>
@@ -105,7 +98,6 @@
     <service name="createGlJournal" default-entity-name="GlJournal" 
engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="createGlJournal" auth="true">
         <description>Create a GlJournal record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="CREATE"/>
         <auto-attributes include="pk" mode="OUT" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true">
             <exclude field-name="isPosted"/>
@@ -116,7 +108,6 @@
     <service name="updateGlJournal" default-entity-name="GlJournal" 
engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="updateGlJournal" auth="true">
         <description>Update a GlJournal record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true">
             <exclude field-name="isPosted"/>
@@ -126,7 +117,6 @@
     <service name="deleteGlJournal" default-entity-name="GlJournal" 
engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="deleteGlJournal" auth="true">
         <description>Delete a GlJournal record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
@@ -134,7 +124,6 @@
     <service name="createGlReconciliation" default-entity-name="GlReconciliation" 
engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="createGlReconciliation" auth="true">
         <description>Create a GlReconciliation record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="CREATE"/>
         <auto-attributes include="pk" mode="OUT" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true">
             <exclude field-name="createdByUserLogin"/>
@@ -145,7 +134,6 @@
     <service name="updateGlReconciliation" default-entity-name="GlReconciliation" 
engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="updateGlReconciliation" auth="true">
         <description>Update a GlReconciliation record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true">
             <exclude field-name="createdByUserLogin"/>
@@ -155,28 +143,24 @@
     <service name="deleteGlReconciliation" default-entity-name="GlReconciliation" 
engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="deleteGlReconciliation" auth="true">
         <description>Delete a GlReconciliation record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
<service name="createGlReconciliationEntry" default-entity-name="GlReconciliationEntry" engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="createGlReconciliationEntry" auth="true">
         <description>Add an Entry to a GlReconciliation</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="false"/>
     </service>
     <service name="updateGlReconciliationEntry" 
default-entity-name="GlReconciliationEntry" engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="updateGlReconciliationEntry" auth="true">
         <description>Update an Entry to a GlReconciliation record</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="false"/>
     </service>
     <service name="deleteGlReconciliationEntry" 
default-entity-name="GlReconciliationEntry" engine="simple"
             location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="deleteGlReconciliationEntry" auth="true">
         <description>Remove an Entry from a GlReconciliation</description>
-        <permission-service service-name="basicGeneralLedgerPermissionCheck" 
main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
@@ -195,21 +179,27 @@
     <service name="createAcctgTrans" default-entity-name="AcctgTrans" 
engine="simple"
             location="org/ofbiz/accounting/ledger/AcctgTransServices.xml" 
invoke="createAcctgTrans" auth="true">
         <description>Create a AcctgTrans record.  isPosted is forced to 
"N"</description>
-        <permission-service service-name="acctgTransactionPermissionCheck" 
main-action="CREATE"/>
+        <required-permissions join-type="OR">
+            <check-permission permission="ACCOUNTING" action="_ATX_CREATE"/>
+        </required-permissions>
         <implements service="interfaceAcctgTrans"/>
         <auto-attributes include="pk" mode="OUT" optional="false"/>
     </service>
     <service name="updateAcctgTrans" default-entity-name="AcctgTrans" 
engine="simple"
             location="org/ofbiz/accounting/ledger/AcctgTransServices.xml" 
invoke="updateAcctgTrans" auth="true">
         <description>Update a AcctgTrans record</description>
-        <permission-service service-name="acctgTransactionPermissionCheck" 
main-action="UPDATE"/>
+        <required-permissions join-type="OR">
+            <check-permission permission="ACCOUNTING" action="_ATX_UPDATE"/>
+        </required-permissions>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
     <service name="deleteAcctgTrans" default-entity-name="AcctgTrans" 
engine="simple"
             location="org/ofbiz/accounting/ledger/AcctgTransServices.xml" 
invoke="deleteAcctgTrans" auth="true">
         <description>Delete a AcctgTrans record</description>
-        <permission-service service-name="acctgTransactionPermissionCheck" 
main-action="DELETE"/>
+        <required-permissions join-type="OR">
+            <check-permission permission="ACCOUNTING" action="_ATX_DELETE"/>
+        </required-permissions>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
@@ -227,7 +217,9 @@
     <service name="createAcctgTransEntry" default-entity-name="AcctgTransEntry" 
engine="simple"
             location="org/ofbiz/accounting/ledger/AcctgTransServices.xml" 
invoke="createAcctgTransEntry" auth="true">
         <description>Add an Entry to a AcctgTrans.  Will use baseCurrencyUomId in 
PartyAcctgPreference if no currencyUomId is in parameters.</description>
-        <permission-service service-name="acctgTransactionPermissionCheck" 
main-action="CREATE"/>
+        <required-permissions join-type="OR">
+            <check-permission permission="ACCOUNTING" action="_ATX_CREATE"/>
+        </required-permissions>
         <implements service="interfaceAcctgTransEntry"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <override name="acctgTransEntrySeqId" mode="OUT"/>
@@ -235,14 +227,18 @@
     <service name="updateAcctgTransEntry" default-entity-name="AcctgTransEntry" 
engine="simple"
             location="org/ofbiz/accounting/ledger/AcctgTransServices.xml" 
invoke="updateAcctgTransEntry" auth="true">
         <description>Update an Entry to a AcctgTrans record</description>
-        <permission-service service-name="acctgTransactionPermissionCheck" 
main-action="UPDATE"/>
+        <required-permissions join-type="OR">
+            <check-permission permission="ACCOUNTING" action="_ATX_UPDATE"/>
+        </required-permissions>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
     <service name="deleteAcctgTransEntry" default-entity-name="AcctgTransEntry" 
engine="simple"
             location="org/ofbiz/accounting/ledger/AcctgTransServices.xml" 
invoke="deleteAcctgTransEntry" auth="true">
         <description>Remove an Entry from a AcctgTrans</description>
-        <permission-service service-name="acctgTransactionPermissionCheck" 
main-action="DELETE"/>
+        <required-permissions join-type="OR">
+            <check-permission permission="ACCOUNTING" action="_ATX_DELETE"/>
+        </required-permissions>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
@@ -255,11 +251,14 @@
             check that the debits and credits balance out.  The idea is that 
unbalanced transactions can be created here, but they will need
             to be created before they are actually posted, and a later posting 
service will actually check that the transaction is balanced.
         </description>
-        <permission-service service-name="acctgTransactionPermissionCheck" 
main-action="CREATE"/>
+        <required-permissions join-type="OR">
+            <check-permission permission="ACCOUNTING" action="_ATX_CREATE"/>
+        </required-permissions>
         <auto-attributes include="pk" mode="IN" optional="true"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
         <attribute name="acctgTransEntries" type="java.util.List" mode="IN" 
optional="false"/>
         <attribute name="acctgTransId" type="String" mode="OUT"/>
+        <!-- TODO: make required-permissions tag work here rather than inside the 
simple XML -->
     </service>
     <service name="calculateAcctgTransTrialBalance" default-entity-name="AcctgTrans" 
engine="simple"
             location="org/ofbiz/accounting/ledger/AcctgTransServices.xml" 
invoke="calculateAcctgTransTrialBalance" auth="true">
@@ -272,30 +271,32 @@
     <service name="postAcctgTrans" default-entity-name="AcctgTrans" 
engine="simple"
             location="org/ofbiz/accounting/ledger/AcctgTransServices.xml" 
invoke="postAcctgTrans" auth="true"
             transaction-timeout="600">
- <description>Post a AcctgTrans and related entries. This will make sure that the time period is not closed and that - the sum of the debits and credits are equal. + <description>Post a AcctgTrans and related entries. This will make sure that the time period is not closed and that
+         the sum of the debits and credits are equal.
         </description>
-        <permission-service service-name="acctgTransactionPermissionCheck" 
main-action="CREATE"/>
+        <required-permissions join-type="OR">
+            <check-permission permission="ACCOUNTING" action="_ATX_POST"/>
+        </required-permissions>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <attribute name="verifyOnly" type="String" mode="IN" optional="true"/>
     </service>
<!-- Miscellaneous Ledger-related services --> - <service name="getGlAccountFromAccountType" engine="simple" - location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="getGlAccountFromAccountType" auth="true"> - <description>Look up a GlAccountId first in ProductGlAccount by productId and productGlAccountTypeId, if not found, - then in organizationPartyId and glAccountTypeId </description> + <service name="getGlAccountFromAccountType" engine="simple"
+            location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="getGlAccountFromAccountType" auth="true">
+        <description>Look up a GlAccountId first in ProductGlAccount by 
productId and productGlAccountTypeId, if not found,
+            then in organizationPartyId and glAccountTypeId </description>
         <attribute name="organizationPartyId" type="String" mode="IN" 
optional="false"/>
         <attribute name="glAccountTypeId" type="String" mode="IN" 
optional="false"/>
         <attribute name="productId" type="String" mode="IN" optional="true"/>
         <attribute name="varianceReasonId" type="String" mode="IN" 
optional="true"/>
         <attribute name="glAccountId" type="String" mode="OUT" 
optional="true"/>
     </service>
- <service name="getInventoryItemOwner" default-entity-name="InventoryItem" engine="simple" - location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="getInventoryItemOwner" auth="true"> - <description>get an ownerPartyId from inventoryItemId </description> - <auto-attributes include="pk" mode="IN" optional="false"/> - <attribute name="ownerPartyId" type="String" mode="OUT" optional="false"/> + <service name="getInventoryItemOwner" default-entity-name="InventoryItem" engine="simple"
+        location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="getInventoryItemOwner" auth="true">
+        <description>get an ownerPartyId from inventoryItemId </description>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <attribute name="ownerPartyId" type="String" mode="OUT" 
optional="false"/>
     </service>
<!-- Services for the automatic creation of accounting transactions based on business transactions
@@ -306,13 +307,6 @@
         <attribute name="itemIssuanceId" type="String" mode="IN" 
optional="false"/>
         <attribute name="acctgTransId" type="String" mode="OUT" 
optional="true"/>
     </service>
-    <service name="createAcctgTransForInventoryItemCostChange" engine="simple" 
auth="true"
-        location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="createAcctgTransForInventoryItemCostChange">
-        <description>Create accounting transaction when item cost is changed (D: 
INV_ADJ_VAL, C: INVENTORY_ACCOUNT)</description>
-        <attribute name="inventoryItemId" type="String" mode="IN" 
optional="false"/>
-        <attribute name="inventoryItemDetailSeqId" type="String" mode="IN" 
optional="false"/>
-        <attribute name="acctgTransId" type="String" mode="OUT" 
optional="true"/>
-    </service>
     <!-- DEPRECATED: use createAcctgTransForSalesShipmentIssuance instead -->
     <service name="createAcctgTransForSalesShipment" engine="simple"  
auth="true"
         location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="createAcctgTransForSalesShipment">
@@ -345,7 +339,7 @@
         <description>Delete a FinAccountTypeGlAccount</description>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
- +
     <!-- VarianceReasonGlAccount Services -->
     <service name="createVarianceReasonGlAccount" 
default-entity-name="VarianceReasonGlAccount" engine="simple"
                 location="org/ofbiz/accounting/finaccount/FinAccountServices.xml" 
invoke="createVarianceReasonGlAccount" auth="true">
@@ -364,7 +358,7 @@
         <description>delete a Variance Reason Gl Account</description>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
- +
     <!-- Permission services -->
     <service name="basicGeneralLedgerPermissionCheck" engine="simple"
             
location="component://accounting/script/org/ofbiz/accounting/permissions/PermissionServices.xml"
 invoke="basePermissionCheck">
@@ -375,6 +369,14 @@
             
location="component://accounting/script/org/ofbiz/accounting/permissions/PermissionServices.xml"
 invoke="acctgTransactionPermissionCheck">
         <description>Basic General Ledger Permission Checking 
Logic</description>
         <implements service="permissionInterface"/>
+    </service>
+
+    <!-- Service for the automatic creation of 
AcctgTransForPhysicalInventoryVariance, triggered by SECAs -->
+    <service name="createAcctgTransForPhysicalInventoryVariance" 
engine="simple"
+                location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" 
invoke="createAcctgTransForPhysicalInventoryVariance">
+        <description>Create an AcctgEntry for Physical Inventory 
variance</description>
+        <attribute name="physicalInventoryId" type="String" mode="IN" 
optional="false"/>
+        <attribute name="acctgTransId" type="String" mode="OUT" 
optional="false"/>
     </service>
</services>




Reply via email to