Skip to content

Latest commit

 

History

History
120 lines (74 loc) · 6.75 KB

LOG0206.md

File metadata and controls

120 lines (74 loc) · 6.75 KB
erp.entity erp.type
Logistics.Inventory.StoreTransactions
generation

LOG0206 Create Excise Administrative Documents

Basic Information

Module Logistics.Inventory
Code LOG0206
Parent Document StoreTransaction
Sub-document ExciseAdministrativeDocument
Full Name Create Excise Administrative Documents
Status NEW
Deterministic NO
Supports Transitional Documents NO
Supports Single Execution YES
Replaces -
Orphan Rows Ignore
Introduced In Version 2022
Date of Suspension -

Business Logic

This Generation is used to create Excise Administrative Documents for the products of the current Store Transactions that have value for the field ExciseProductsType.
It is activated only if the store in the current Store Transaction has a value for the field TaxWarehouse.
The Excise Administrative Document's header is created based on the Store Transaction's header as follows:

ExciseAdministrativeDocument.TaxWarehouse = StoreTransaction.Store.TaxWarehouse

ExciseAdministrativeDocument.OtherParty = StoreTransaction.ToParty

ExciseAdministrativeDocument.CurrencyDirectory = StoreTransaction.CurrencyDirectory

Note

The attributes which are not specified here are filled in as described in Standard Document Attributes

Note

The new Excise Administrative Document is saved then and only when there is at least one line in it.

Fulfillments

Name StoreTransactionLineToExciseAdministrativeDocumentLine
Parent Entity StoreTransactionLine
Child Entity ExciseAdministrativeDocumentLine
Parent / Child Relationship ExciseAdministrativeDocumentLine.ParentDocument = StoreTransaction; ExciseAdministrativeDocumentLineParentLineNo = StoreTransactionLine.LineNo
Fulfillment Name Metric Name Measurement Unit Parent Value Child Value New Record
StoreTransactionLineToExciseAdministrativeDocumentLine MQuantityBase StoreTransactionLine.Product.BaseMeasurementUnit StoreTransactionLine.QuantityBase ExciseAdministrativeDocumentLine.QuantityBase YES
StoreTransactionLineToExciseAdministrativeDocumentLine MQuantity StoreTransactionLine.QuantityUnit StoreTransactionLine.Quantity ExciseAdministrativeDocumentLine.Quantity NO

The lines of the new document are created based on the data for the Fulfilled Part of quantities by ExciseAdministrativeDocument that are already created (for more information, see topic Discrepancy System). The new ExciseAdministrativeDocument is created as follows:

ExciseAdministrativeDocumentLine.LineNo = Autonumber

ExciseAdministrativeDocumentLine.ParentLineNo = StoreTransactionLine.LineNo

ExciseAdministrativeDocumentLine.ParentDocument = StoreTransactionLine.TransactionObj

ExciseAdministrativeDocumentLine.Product = StoreTransactionLine.Product

ExciseAdministrativeDocumentLine.Quantity = StoreTransactionLine.REMAINING(MQuantity)

ExciseAdministrativeDocumentLine.QuantityUnit = StoreTransactionLine.QuantityUnit

ExciseAdministrativeDocumentLine.QuantityBase = StoreTransactionLine.REMAINING(MQuantityBase)

ExciseAdministrativeDocumentLine.ExciseQuantityUnit = StoreTransactionLine.Product.ExciseProductType.MeasurementUnit

ExciseAdministrativeDocumentLine.ExciseQuantity = Convert(QuantityBase, ExciseQuantityUnit)

ExciseAdministrativeDocumentLine.MeasuringTransaction = StoreTransactionLine.Lot.ExciseMeasuringTransaction

ExciseAdministrativeDocumentLine.Lot = StoreTransactionLine.Lot


ExciseAdministrativeDocumentLine.ExciseAlcoholicStrength = 
IF MeasuringTransaction is not Null THEN MeasuringTransaction.AlcoholDegree
IF MeasuringTransaction is Null THEN Product.ExciseProductType.AlcoholicStrength

ExciseAdministrativeDocumentLine.ExciseProduct = StoreTransactionLine.Product.ExciseProductsType.ExciseProduct

ExciseAdministrativeDocumentLine.ExcisePurposeCode = DefaultExcisePurposeCode

ExciseAdministrativeDocumentLine.ExciseDutyRate = DetermineExciseDutyRate(ExciseProduct, ExcisePurposeCode, ExciseAdministrativeDocument.EnterpriseCompany.BaseCurrency)

ExciseAdministrativeDocumentLine.ExciseDutyRateValue = ExciseDutyRate.ExciseDutyRateField

ExciseAdministrativeDocumentLine.ExciseAmountBase = CalculateExciseAmountBase(ExciseProduct, ExciseQuantity, ExciseAlcoholicStrength)

ExciseAdministrativeDocumentLine.ExciseAmount = ExciseAmountBase * ExciseDutyRateValue
Functions:

DefaultExcisePurposeCode - return this ExcisePurposeCode which has check "Is Default" in ExcisePurposeCodes table.

https://docs.erp.net/model/entities/Finance.Excise.ExcisePurposeCodes.html

DetermineExciseDutyRate (ExciseProduct, ExcisePurposeCode, Currency) - return this ExciseDutyRate which has match with the two parameters ExciseProduct and ExcisePurposeCode in ExciseDutyRates table.

https://docs.erp.net/model/entities/Finance.Excise.ExciseDutyRates.html

CalculateExciseAmountBase(ExciseProduct, QuantityBase, ExciseAlcoholicStrength) - calculate ExciseAmountBase with ExciseProduct.ExciseProductCategory.CalculationAlgorithm and parameters Quantity и ExciseAlcoholicStrength.

https://docs.erp.net/model/entities/Finance.Excise.ExciseProductCategories.html#calculationalgorithm