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>