Difference between revisions of "DocType Material Movement"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
Line 42: Line 42:
 
   The main table for the Material Movement (where they are created and kept) is '''M_Movement'''. There are a few auxiliary tables completing its functionality. They are:  
 
   The main table for the Material Movement (where they are created and kept) is '''M_Movement'''. There are a few auxiliary tables completing its functionality. They are:  
 
     * '''M_MovementLine''' is where the lines of the document are kept  
 
     * '''M_MovementLine''' is where the lines of the document are kept  
 +
    * '''M_MovementLineMA''' is a temporary storage for the products to be moved by lots (ASI).
  
 
----
 
----
 
* ''What Java classes and methods define the document's behavior?''
 
* ''What Java classes and methods define the document's behavior?''
 
** The ''model class'' '''MMovement.java''' - this class extends the base model '''X_M_Movement''', implements the '''DocAction'''  interface. The most interesting methods involved in the Material Movement workflow (TBD) are:
 
** The ''model class'' '''MMovement.java''' - this class extends the base model '''X_M_Movement''', implements the '''DocAction'''  interface. The most interesting methods involved in the Material Movement workflow (TBD) are:
*** MPayment.'''prepareIt()''' -  
+
*** MPayment.'''prepareIt()''' - This method is mainly responsible for deciding products from which particular lot (ASI) should be moved. It first checks for each line in the Material Movement document whether lot(ASI) has been specified . If (ASI) has not been  specified it takes the material policy of the product then it gets all products stored in the location specified as (locatoin from) on the Material Movement docuemnt and prepares them (inserts them in M_MovementLineMA) for movement. If the quantity of found products with (ASI) defined is not enough it inserts a line in M_MovementLineMA with (ASI) of zero.
 +
 
 
*** MPayment.'''completeIt()''' -  
 
*** MPayment.'''completeIt()''' -  
 
** The ''posting class'' '''Doc_Payment.java''' - this class extends the abstract class '''Doc''' with concrete implementations of the methods for accounting of documents.
 
** The ''posting class'' '''Doc_Payment.java''' - this class extends the abstract class '''Doc''' with concrete implementations of the methods for accounting of documents.
 
*** Doc_Payment.'''post()''' - respoinsible for performing the posting of the document. It calls Doc_Payment.'''postLogic()'''
 
*** Doc_Payment.'''post()''' - respoinsible for performing the posting of the document. It calls Doc_Payment.'''postLogic()'''
 
*** Doc_Payment.'''postLogic()''' - creates the actual account entries like this:
 
*** Doc_Payment.'''postLogic()''' - creates the actual account entries like this:

Revision as of 02:14, 28 September 2008

Profile for Material Movement

The Material Movement (AP Invoice) is a document of base type Material Movement (DocBaseType MMM). It can be issued from

 Menu -> Material Management -> Inventory Move

window.

Purpose of the Material Movement

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 move inventory from one warehouse to another and from one locater of to another.
 It should be used in cases where you would like to relocate quantity of some stock.

Accounting consequences

  • How is the Material Movement involved in the accounting processes, e.g. what accounts are debited and what accounts are credited through its use (if any)?


Accounts affected by AR Receipt
Posting Type Accounts and their meaning
Debit TBD -
Credit TDB -


Note: If a document generates accounting consequences the date of the transaction (in this case the movement date) has to fall within an open accounting period.


  • 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 AR Receipt generates if any?
  Confirmations ???

Debugging the AR Receipt

  • What database tables hold the document's data?
 The main table for the Material Movement (where they are created and kept) is M_Movement. There are a few auxiliary tables completing its functionality. They are: 
   * M_MovementLine is where the lines of the document are kept 
   * M_MovementLineMA is a temporary storage for the products to be moved by lots (ASI).

  • What Java classes and methods define the document's behavior?
    • The model class MMovement.java - this class extends the base model X_M_Movement, implements the DocAction interface. The most interesting methods involved in the Material Movement workflow (TBD) are:
      • MPayment.prepareIt() - This method is mainly responsible for deciding products from which particular lot (ASI) should be moved. It first checks for each line in the Material Movement document whether lot(ASI) has been specified . If (ASI) has not been specified it takes the material policy of the product then it gets all products stored in the location specified as (locatoin from) on the Material Movement docuemnt and prepares them (inserts them in M_MovementLineMA) for movement. If the quantity of found products with (ASI) defined is not enough it inserts a line in M_MovementLineMA with (ASI) of zero.
      • MPayment.completeIt() -
    • The posting class Doc_Payment.java - this class extends the abstract class Doc with concrete implementations of the methods for accounting of documents.
      • Doc_Payment.post() - respoinsible for performing the posting of the document. It calls Doc_Payment.postLogic()
      • Doc_Payment.postLogic() - creates the actual account entries like this: