OFBiz
  1. OFBiz
  2. OFBIZ-1434 General Ledger
  3. OFBIZ-1542

Implement service to help user to verify/complete the GL setup of an organization

    Details

    • Type: Sub-task Sub-task
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Won't Fix
    • Affects Version/s: SVN trunk
    • Fix Version/s: None
    • Component/s: accounting
    • Labels:
      None

      Activity

      Hide
      BJ Freeman added a comment -

      as a larger overview
      https://issues.apache.org/jira/browse/OFBIZ-3852
      where the business plan drives the GL seup
      to add to Jacapo:
      1) based company (corporate, sole proprethership) and the business model (internet,education) supply a GL template.
      2) provide an edit function to align GL accounts to the Book keeper of accountants specs.

      Show
      BJ Freeman added a comment - as a larger overview https://issues.apache.org/jira/browse/OFBIZ-3852 where the business plan drives the GL seup to add to Jacapo: 1) based company (corporate, sole proprethership) and the business model (internet,education) supply a GL template. 2) provide an edit function to align GL accounts to the Book keeper of accountants specs.
      Hide
      BJ Freeman added a comment -

      you may have other Ideas but I would like to suggest the setup scheme in
      https://issues.apache.org/jira/browse/OFBIZ-635
      it would handle the complexities and allow updates with out a lot of recoding.

      Show
      BJ Freeman added a comment - you may have other Ideas but I would like to suggest the setup scheme in https://issues.apache.org/jira/browse/OFBIZ-635 it would handle the complexities and allow updates with out a lot of recoding.
      Hide
      Jacopo Cappellato added a comment -

      Mridul, Ashish,

      I'm sorry but I will need more time to (re-)think this process: the service could easily become very complex and I'm having an hard time to imagine how we should implement it in order to effectively help to simplify the accounting setup; I guess we will need to gather some experiance from real life deployments.
      I'd suggest to postpone the development of this task, unless you or someone else have some good ideas about how to do this.

      Jacopo

      Show
      Jacopo Cappellato added a comment - Mridul, Ashish, I'm sorry but I will need more time to (re-)think this process: the service could easily become very complex and I'm having an hard time to imagine how we should implement it in order to effectively help to simplify the accounting setup; I guess we will need to gather some experiance from real life deployments. I'd suggest to postpone the development of this task, unless you or someone else have some good ideas about how to do this. Jacopo
      Hide
      Mridul Pathak added a comment -

      Jacopo,
      From the above description given by you I have understood the task as following:
      We have to prepare two lists in the service which will be returned as Output Parameters:
      1) A list of glAccountId's that needs to be associated with the organizationPartyId in GlAccountOrganization Entity. Following is the step to do that:
      a) Get a list of global glAccountId's from the following entities (which has "overrideGlAccountId" attribute): (InvoiceItem, Payment, PaymentApplication, OrderAdjustment, OrderItem, QuoteAdjustment, ReturnAdjustment).
      b) Iterate the list and for each global glAccountId:
      i) Get a list of organization specific mappings with different accounts and for each of them verify the corresponding entry in GlAccountOrganization
      ii) Verify the corresponding entry in the GlAccointOrganization.
      iii) Add the global glAccountId and all the related glAccountId's with organization specific mappings, for which entry is not found in the GlAccountOrganization to the returnable list.

      2) A list of glAccountTypeId's that needs to be associated with organizationPartyId in GlAccountTypeDefault Entity. Following is the step to do that:
      a) Get a list of mapped glAccountId's for the organizationPartyId from the entities specified by you above like InvoiceItemTypeGlAccount, etc. and others if needed.
      b) For each glAccountId and corresponding glAccountTypeId, verify if there is corresponding entry in GlAccountTypeDefault.
      c) Add the glAccountId and corresponding glAccountTypeId, for which entry is not found in GlAccountTypeDefault to the returnable list.

      Am I on the right track? Please suggest if any improvements are needed in this part of the task.
      And I have one question related to this part which is: How to find organization specific mappings to different accounts for a globalGlAccount?

      Please help us with some more info if needed and the above question to proceed further.

      Show
      Mridul Pathak added a comment - Jacopo, From the above description given by you I have understood the task as following: We have to prepare two lists in the service which will be returned as Output Parameters: 1) A list of glAccountId's that needs to be associated with the organizationPartyId in GlAccountOrganization Entity. Following is the step to do that: a) Get a list of global glAccountId's from the following entities (which has "overrideGlAccountId" attribute): (InvoiceItem, Payment, PaymentApplication, OrderAdjustment, OrderItem, QuoteAdjustment, ReturnAdjustment). b) Iterate the list and for each global glAccountId: i) Get a list of organization specific mappings with different accounts and for each of them verify the corresponding entry in GlAccountOrganization ii) Verify the corresponding entry in the GlAccointOrganization. iii) Add the global glAccountId and all the related glAccountId's with organization specific mappings, for which entry is not found in the GlAccountOrganization to the returnable list. 2) A list of glAccountTypeId's that needs to be associated with organizationPartyId in GlAccountTypeDefault Entity. Following is the step to do that: a) Get a list of mapped glAccountId's for the organizationPartyId from the entities specified by you above like InvoiceItemTypeGlAccount, etc. and others if needed. b) For each glAccountId and corresponding glAccountTypeId, verify if there is corresponding entry in GlAccountTypeDefault. c) Add the glAccountId and corresponding glAccountTypeId, for which entry is not found in GlAccountTypeDefault to the returnable list. Am I on the right track? Please suggest if any improvements are needed in this part of the task. And I have one question related to this part which is: How to find organization specific mappings to different accounts for a globalGlAccount? Please help us with some more info if needed and the above question to proceed further.
      Hide
      Jacopo Cappellato added a comment -

      The idea is to implement a service that takes as input "organizationPartyId" and returns as output:

      • a List of glAccountId that must be added to the GlAccountOrganization entity
      • other lists for glAccountTypeId that should be added (together with the mapped glAccountId) to the GlAccountTypeDefault, InvoiceItemTypeGlAccount, PaymentMethodTypeGlAccount, VarianceReasonGlAccount, CreditCardTypeGlAccount, FinAccountTypeGlAccount, TaxAuthorityGlAccount...

      The logic is the following:

      1) verify if for each of the global glAccountId (for example the ones in the InvoiceItem, CostComponentCalc etc... entities) we have:
      1a) an organization specific mapping to a different account (and the corresponding entry in the GlAccountOrganization entity) OR
      1b) the corresponding entry in the GlAccountOrganization entity for the global glAccountId
      2) for each of the organization specific mapping, verify if there is the corresponding entry in the GlAccountOrganization entity

      The service will be triggered by a link in the main organization's setup screen (PartyAccountingPreferences?) and once invoked, should return the lists to a screen that will render them in "multi" form widgets, so that the user can check the values and create the corresponding entries in the GlAccountOrganization entity.

      Does it make sense?

      Show
      Jacopo Cappellato added a comment - The idea is to implement a service that takes as input "organizationPartyId" and returns as output: a List of glAccountId that must be added to the GlAccountOrganization entity other lists for glAccountTypeId that should be added (together with the mapped glAccountId) to the GlAccountTypeDefault, InvoiceItemTypeGlAccount, PaymentMethodTypeGlAccount, VarianceReasonGlAccount, CreditCardTypeGlAccount, FinAccountTypeGlAccount, TaxAuthorityGlAccount... The logic is the following: 1) verify if for each of the global glAccountId (for example the ones in the InvoiceItem, CostComponentCalc etc... entities) we have: 1a) an organization specific mapping to a different account (and the corresponding entry in the GlAccountOrganization entity) OR 1b) the corresponding entry in the GlAccountOrganization entity for the global glAccountId 2) for each of the organization specific mapping, verify if there is the corresponding entry in the GlAccountOrganization entity The service will be triggered by a link in the main organization's setup screen (PartyAccountingPreferences?) and once invoked, should return the lists to a screen that will render them in "multi" form widgets, so that the user can check the values and create the corresponding entries in the GlAccountOrganization entity. Does it make sense?
      Hide
      Ashish Vijaywargiya added a comment -

      Jacapo,

      I guess you might be adding some comments in this issue(I am not in hurry ) ?
      If no then please let me know.


      Ashish

      Show
      Ashish Vijaywargiya added a comment - Jacapo, I guess you might be adding some comments in this issue(I am not in hurry ) ? If no then please let me know. – Ashish

        People

        • Assignee:
          Ashish Vijaywargiya
          Reporter:
          Jacopo Cappellato
        • Votes:
          0 Vote for this issue
          Watchers:
          1 Start watching this issue

          Dates

          • Created:
            Updated:
            Resolved:

            Development