Difference between pages "DocType Material Receipt" and "Sales Management (CRM):"

From ADempiere
(Difference between pages)
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
 
(Created page with '== Status == == Contributors == == Overview == == Purpose == == References == == Design Considerations == === Assumptions=== === Dependencies=== === Constraints===')
 
Line 1: Line 1:
== Profile for Material Receipt==
+
== Status  ==
The '''Material Receipt''' (MM Receipt) is a document of base type ''Material Receipt'' (DocBaseType MMR). It can be issued from 
+
  
  '''Menu -> Requisition to Invoice -> Material Receipt'''
 
  
window.
+
== Contributors ==
  
=== Purpose of Material Receipt ===
 
''When in the whole business process it should be used and in what cases its use is specifically not appropriate?''
 
  
  This functionality is used to receive products from a vendor.
+
== Overview ==
  It should be used by the warehouse stuff at the point of receival of goods from vendor.
+
  
=== Accounting consequences ===
+
== Purpose ==
* ''How is the Material Receipt involved in the accounting processes, e.g. what accounts are ''debited'' and what accounts are ''credited'' through its use ('''if any''')?''
+
<br/>
+
{| border="1" align="center"
+
|+ Accounts affected by Material Receipt
+
! Posting Type !! Accounts and their meaning
+
|-
+
! Debit
+
| '''TBD''' -
+
|-
+
! Credit
+
| '''TDB'''  -
+
|}
+
<br/>
+
Note: If a document generates accounting consequences the date of the transaction (in this case the Account date) has to fall within an open accounting period.
+
  
----
+
== References ==
* ''How and where in the ADempiere's Client App those accounts can be changed (switched to another or complementary meanings)?''
+
  
=== Place in the Documents Processing Chain ===
 
* ''What other documents the Material Receipt generates if any?''
 
  NONE
 
  
=== Debugging the Material Movement document ===
+
== Design Considerations ==
* ''What database tables hold the document's data?''
+
  
  The main table for the Material Receipt (where they are created and kept) is '''M_InOut'''. There are a few auxiliary tables completing its functionality. They are:
 
    * '''M_InOutLine''' is where the lines of the document are kept
 
    * '''M_InOutLineMA''' is where the materials to be accepted are recorded by lot (ASI).
 
  Please note that the tables are also used to store the Shipment documents. You may recognize whether something is a Shipment or a Material Receipt by looking at issotrx. If it is a Material receipt the value should be 'N'.
 
  
----
+
=== Assumptions===
* ''What Java classes and methods define the document's behavior?''
+
** The ''model class'' '''MInOut.java''' - this class extends the base model '''X_M_InOut''', implements the '''DocAction'''  interface. The most interesting methods involved in the Material Receipt workflow are:
+
*** MInOut.'''prepareIt()''' - It does a number of checks like whether the accounting period is open whether (ASI) is specified if it is mandatory for a product (is selling products with serial number let say). Finally it sets the total volume and weight by summing up the volume and wight of all products received.
+
*** MInOut.'''completeIt()''' - Processes the document. It does the following things: Checks whether there are unprocessed confirmations for this document. If there are it exits. Checks the document's movement type. If it is Vendor Return it negates the quantity. Now it associates each product to be received with (ASI) i.e. assigns a lot number for the products to be received unless a lot number was not explicitly defined.
+
*** MInOut.'''voidIt()''' - This method voids already created document. If the document was not completed then it simply sets the quantities to zero.
+
*** MInOut.'''reverseCorrectIt()''' - This method creates a reversal document. This is done by making a copy of the current document and negating the quantity. Finally it completes the reversal document and closes both the original and reversal documents.
+
  
** The ''posting class'' '''Doc_InOut.java''' - this class extends the abstract class '''Doc''' with concrete implementations of the methods for accounting of documents.
+
===  Dependencies===
*** Doc_InOut.'''post()''' - respoinsible for performing the posting of the document. It calls Doc_InOut.'''postLogic()'''
+
 
*** Doc_InOut.'''postLogic()''' - creates the actual account entries.
+
=== Constraints===

Revision as of 01:37, 4 June 2013

Status

Contributors

Overview

Purpose

References

Design Considerations

Assumptions

Dependencies

Constraints