Giter Club home page Giter Club logo

opencore's People

Contributors

lakani avatar

Stargazers

 avatar

Watchers

 avatar  avatar

opencore's Issues

GenerateNewACCT_NO

The generation of Account number should be revisited as it should be dynamic and standard for all account types without the need to implement it by each new account type

Totaling GL

Totaling is a concept in modern accounting techniques that facilities grouping and more advanced setup for Accounts as it enables the accountant to hit more than one account in a single Accounting Leg

For example for the below accounting entry
CR 11110 150 USD
DR 11120 150 USD

If for the case, the parent GL for (11110) GL is (10110) and
parent GL for (11120) GL is (10120) then the above AE will translated into
CR 11110 150 USD
DR 11120 150 USD
CR 10110 150 USD
DR 10120 150 USD

However there is some constrains
1- The Parent GL should be the same type of the GL, for example if the (11110) is Income, then (10110) should be Income account also.
2- A Balanced Totaling is required also, for example a CR leg is a corresponding for DR leg, also the Sum of Total CR should equal the total DR
3- Number of affected Parent GL should be equal unless this is for Account, for example the below AE is not accepted

CR 11110 150 USD has Parent GL
DR 11120 150 USD doesn’t has Parent GL

But the below AE is accepted

After meeting with Mr Magdy, its more related to the Setup of the GL

CIF List Screen

This Screen allows user to list / filter all CIF
is Part of this Epic GUI

Accounting structure

The idea of this Enhancement is to develop a mechanism to associate accounts with an object, for example the Account Class could has Asset GL to be associated with the Account, so that the new account will be defined beneath this Asset GL, an Income GL to define its Fees, another asset GL to define its Overdraft facility.

Later on, this accounting structure should act like the back bone to link any object with its associated accounts, an example of objects could be (Portfolios and Shares for Treasury and investment module, assets and fees for Wallet module, Liabilities and Assets for Loan Products module).

This structure should allow the financial administrator to link any object type with account category to be used later on while posting Accounting Entries,
for example : the following CIF number (0001) got Account of Class (001) with its accounting structure contains the following definition :
GL : 01-01-01-10000005 of Category (Liability) and sub category (Funds)

Separate DL from BL - EPIC

Sperate All DB related code from BL into DL

Test : BL Layer doesn't reference any Context assemblies

  • #63 Separate DL from BL - CifClass in SIS.OpenCore.BL.Objects

Separate DAL from Business Code

Success when Web API only reference Model and BL (no direct Access to DAL or any Linq Code)

Web API -- > BL -- > DAL -- > Linq

GUI

EPIC for different screens Use Cases

Joint CIF

More than CIF is using the Same CIF

Segments of GL

For M1 Release it will be fixed as below, for later releases it will be dynamic

It should be something like this, the admin should be able to setup something like this
Nature-Zone-CompanyNo-BranchNo-SectorNo-DepNo-UnitNo-ProductNo-PostingLevel-LedgerNo
#-##-##-####-##-##-##-####-#-######

Any GL should contains the following segments

Serial Segment Name Mandatory Segment Description
1 Nature Mandatory # Nature of the GL, it could be wither (1=Asset, 2=Liability, 3=Income, 4=Expense, 5=Capital)
2 Zone Not Mandatory ## Zone, it’s up to 99
3 CompanyNo Not Mandatory ## The Company Number it’s up to 99 Company
4 BranchNo Not Mandatory #### Branch number, its up to 9999 branches
5 SectorNo Not Mandatory ## Sector number, its up to 99
6 DepNo Not Mandatory ## Department number , its up to 99
7 UnitNo Not Mandatory ## Unit Number , it’s up to 99
8 ProductNo Not Mandatory #### Product number, its up to 9999 Products , for example 0001 is the number for Car Loans, 0002 is the number for Personal Loans
9 PostingLevel Mandatory # Posting Level , 1 for on Balance , 0 for Off Balance
10 LedgerNo Mandatory ###### Ledger number, it’s up to 999999, this is the end leaf as it incremental if not supplied

However, while creating a new GL, the (nature, Posting Level and optionally Ledger number) should be provided and in this case the other segments will defaulted by 0

Examples
(1-00-00-0000-00-00-00-0000-1-000001) is an on Balance asset GL
(2-00-00-0000-00-00-00-0000-1-000001) is an on Balance liability GL

TODO 1

Channel could Pass Reference number to Post Tran so that it uses instead of generating a new One

Create CIF

CIF Types -> (Personal , Non Personal)
CIF Classes 
CIF Groups


Create Account 
	Account Type
	Account Class (Totalling GL, 
	Create Accounts 

Totalling GL
Validation on (Totalling GL, Parent GL)
Same Company, Currency , Nature , Posting Level
Database Structure
While Creating
Balance Retrieval
GL Info Retrieval
Posting
Should check if there is a corresponding Totalling GL , the Legs should balance
CR = DR of the totalling

The Size of GL ??? -> MAX is 35 Digit

Reversal

Cash Box / Cash Teller / Cash Drawler

Create Account

Create Account 
	Account Type
	Account Class (Totalling GL, 
	Create Accounts 

Automatic Generation of Account while CIF Generation

This should be an option based on CIF Class, whether or not to automatic generate account while generating CIF, this option should be TRUE/FALSE and in Case of true , the user should setup the Account class to generated based on

Import Different Objects

Data Migration/import from CVS file, to mention not to list

  • CIF
  • CIF Accounts
  • General Ledgers
  • Account/Accounts transactions

Recurring Post AE

user can submit a Recurring Transaction that executes every day for a number of occurs

#9

Totalling GL

Validation on (Totalling GL, Parent GL)
	Same Company, Currency , Nature , Posting Level 
Database Structure 
While Creating
Balance Retrieval 
GL Info Retrieval 
Posting
	Should check if there is a corresponding Totalling GL , the Legs should balance 
	CR = DR of the totalling 

AE Category

This is a categorization of the Posted AE, it’s not related to the Transaction as it doesn’t have any financial impact
This should a leaf relationship, and the AE Categories could be a tree

TODO

Milestone I

  • Localization of Resources, at least English for now

  • CIF Types -> (Personal , Non Personal)

  • CIF

  • CIF Class

  • CIF Class Companies

  • (SP_AddGL) should not add the same Ledger with different Nature

  • Channel could Pass Reference number to Post Tran so that it uses instead of generating a new One

Totalling GL :

  • Totalling GL : Validation on (Totalling GL, Parent GL)
    Same Company, Currency , Nature , Posting Level

  • Totalling GL : Database Structure

  • Totalling GL : While Creating

  • Totalling GL : Balance Retrieval

  • Totalling GL : GL Info Retrieval

  • Totalling GL : Posting
    Should check if there is a corresponding Totalling GL , the Legs should balance
    CR = DR of the totalling

  • GL : The Size of GL ??? -> MAX is 35 Digit

  • POST TRAN :

  • POST TRAN : POST TRAN

  • POST TRAN : Reversal

  • Cash Box / Cash Teller / Cash Drawler

  • make Company, Branch integer not Smaller than that

Convert SQL to LINQ

  • Procedure : SP_AddAccount.sql
  • Procedure : SP_AddCIF_EXT1.sql
  • Procedure : SP_AddCIF.sql
  • Procedure : SP_AddCIF_Class.sql
  • Procedure : SP_POST_TRAN.sql
  • Functions : fn_NUM_ACT_CR_DR.sql
  • Functions : fn_ACT_GL_GetLastBalance.sql
  • Types : TYPE_POST_TRAN_PARAM.sql
  • Functions : fn_String_BuildGL.sql
  • Procedure : SP_AddEditCurrency.sql
  • Procedure : SP_AddEdit_Branch.sql
  • Procedure : SP_ADD_LedgerNature.sql
  • Procedure : SP_ADD_LedgerPostingLevel.sql
  • Functions : fn_OPT_GetBaseCurrency.sql
  • Functions : fn_OPT_GetCIFFormatDigits.sql
  • Functions : fn_OPT_GetCIFFormatDigitsNum.sql
  • Functions : fn_OPT_GetGLFormatDigits.sql
  • Functions : fn_OPT_GetGLFormatDigitsNum.sql
  • Functions : fn_String_ParseGL.sql
  • Functions : RANDBETWEEN.sql
  • Procedure : SP_AddGL.sql
  • Functions : fn_GetCurrentBusinessDate.sql
  • Functions : fn_GetGLInfo.sql
  • Functions : fn_GetSettings.sql
  • Functions : fn_Get_MAX_TABLE_CODE.sql
  • Functions : FN_GL_GetLast_LEDGERNO.sql

End of day Process

there must be an end of day process that marks the end of day so that Core can process effective transactions on that date

  • there must be an ability to run two days in one shot

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.