lakani / opencore Goto Github PK
View Code? Open in Web Editor NEWOpenCore , an accounting system
OpenCore , an accounting system
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
Link Account to another Account
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
This Screen allows user to list / filter all CIF
is Part of this Epic GUI
Future Transactions
(SP_AddGL) should not add the same Ledger with different Nature
fixed in Code and also in the SP
Add Hold & Release Transaction
@
TBD
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)
Sperate All DB related code from BL into DL
Test : BL Layer doesn't reference any Context assemblies
Success when Web API only reference Model and BL (no direct Access to DAL or any Linq Code)
Web API -- > BL -- > DAL -- > Linq
EPIC for different screens Use Cases
More than CIF is using the Same CIF
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
Backdated transactions
fn_GetGLInfo does not get all accounts
we need to check the parse the GL , also the GL Generation
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
Account Type
Account Class (Totalling GL,
Create Accounts
introducing webapi
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
Data Migration/import from CVS file, to mention not to list
user can submit a Recurring Transaction that executes every day for a number of occurs
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
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
Channel could Pass Reference number to Post Tran so that it uses instead of generating a new One
TBD
this Feature will handle the Limit , Limit Tree, Limit Group
group of CIFs
while adding a new CIF or editing an existing CIF,
populate DEF_CIF_Company
Separate DL from BL in (CifClass) class
Needs More investigation
TBD
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
there must be an end of day process that marks the end of day so that Core can process effective transactions on that date
At Least (ciF_NO) should be number or empty
#22 integration of business Rules Engine
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.