endi.views.accounting package¶
Submodules¶
endi.views.accounting.balance_sheet_measures module¶
- class endi.views.accounting.balance_sheet_measures.BalanceSheetGridCompute(grid)¶
Bases :
objectComputation grid collecting the rows of the Balance Sheet and providing an easy to use interface used for html rendering
Collect static database stored datas Compute dynamically computed rows
- compile_rows(active)¶
Compile values for Treasury presentation
- class endi.views.accounting.balance_sheet_measures.CompanyBalanceSheetMeasuresListView(*args, **kwargs)¶
Bases :
BaseListView- add_template_vars = ('info_msg', 'current_grid', 'last_grid')¶
- current_grid¶
- dbsession: DBSESSION¶
- filter_button_css = 'btn btn-primary'¶
- filter_button_icon = False¶
- filter_button_label = 'Changer'¶
- filter_year(query, appstruct)¶
- get_company_id()¶
- property info_msg¶
- last_grid¶
- query()¶
The main query, should be overrided by a subclass
- request: Request¶
- schema = <endi.forms.lists.BaseListsSchema object at 140624200568208 (named )>¶
- session: ISession¶
- title = 'Bilan'¶
- use_paginate = False¶
- year = None¶
- endi.views.accounting.balance_sheet_measures.includeme(config)¶
endi.views.accounting.bank_remittances module¶
Bank remittances views
- class endi.views.accounting.bank_remittances.BankRemittanceCloseView(context, request=None)¶
Bases :
BaseViewView to close bank remittance
- endi.views.accounting.bank_remittances.BankRemittanceCsvView(context, request)¶
Return a csv output of the bank remittance
- class endi.views.accounting.bank_remittances.BankRemittanceListView(*args, **kwargs)¶
Bases :
BaseListViewBank Remittances listing view
- dbsession: DBSESSION¶
- default_direction = 'desc'¶
- default_sort = 'created_at'¶
- filter_bank(query, appstruct)¶
- filter_closed(query, appstruct)¶
- filter_payment_mode(query, appstruct)¶
- filter_remittance_id(query, appstruct)¶
- query()¶
The main query, should be overrided by a subclass
- request: Request¶
- schema = <endi.forms.lists.BaseListsSchema object at 140624199856336 (named )>¶
- session: ISession¶
- sort_columns = {'created_at': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'remittance_date': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}¶
- title = 'Liste des remises en banque'¶
- class endi.views.accounting.bank_remittances.BankRemittanceOpenView(context, request=None)¶
Bases :
BaseViewView to reopen bank remittance
- endi.views.accounting.bank_remittances.BankRemittancePdfView(context, request)¶
Return a pdf output of the bank remittance
- class endi.views.accounting.bank_remittances.BankRemittanceView(*args, **kwargs)¶
Bases :
BaseListViewBank Remittance detail view
- add_template_vars = ('stream_main_actions',)¶
- dbsession: DBSESSION¶
- default_direction = 'desc'¶
- default_sort = 'created_at'¶
Used to populate an actionmenu (if there’s one in the page) actionmenu is a request attribute used to automate the integration of actionmenus in pages
- query()¶
The main query, should be overrided by a subclass
- request: Request¶
- session: ISession¶
- stream_main_actions()¶
- property title¶
- endi.views.accounting.bank_remittances.includeme(config)¶
Add module’s views
endi.views.accounting.company_general_ledger module¶
General ledger vizualisation per company
- class endi.views.accounting.company_general_ledger.CompanyGeneralLedgerOperationsListTools¶
Bases :
objectTools for general legder uploads for the current company
- default_direction = 'desc'¶
- default_sort = 'date'¶
- filter_cae_config_general_account(query, appstruct)¶
Filter general_account from cae configuration :param query: :param appstruct: :return: query
- filter_credit(query, appstruct)¶
- filter_date(query, appstruct)¶
- filter_debit(query, appstruct)¶
- filter_general_account(query, appstruct)¶
Filter general_account from filter form :param query: :param appstruct: :return: query
- get_wording_dict()¶
- query()¶
- schema = <endi.forms.lists.BaseListsSchema object at 140624199277712 (named )>¶
- sort_columns = {'date': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'general_account': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}¶
- title = 'Liste des écritures extraites du Grand livre'¶
- class endi.views.accounting.company_general_ledger.CompanyGeneralLedgerOperationsListView(*args, **kwargs)¶
Bases :
CompanyGeneralLedgerOperationsListTools,BaseListViewView for listing general ledger operations of a company
- add_template_vars = ('title', 'get_wording_dict')¶
- endi.views.accounting.company_general_ledger.includeme(config)¶
endi.views.accounting.income_statement_measures module¶
endi.views.accounting.operations module¶
endi.views.accounting.rest_api module¶
Accounting rest api
Used to populate the accounting database from desktop tools
- class endi.views.accounting.rest_api.AccountingOperationRestView(*args, **kwargs)¶
Bases :
BaseRestView- bulk_post()¶
Handle bulk insertion of AccountingOperation entries
expect json body with {“datas”: [list of AccountingOperation]}
Respond to a Http POST request
E.g:
Setting:
endi.accounting_api_key=06dda91136f6ad4688cdf6c8fd991696
in the development.ini
import requests from hashlib import md5 import time
- params = {“datas”: [{
“analytical_account”: « ANALYTICAL », « general_account »: « GENERAL », « date »: « 2018-01-01 », “label”: « LABEL », « debit »: « 15 », « credit »: « 15 », « balance »: « 25 »
}]
}
- def send_post_request(params, api_key):
timestamp = str(time.time()) secret = « %s-%s » % (timestamp, api_key) encoded = md5(secret.encode(“utf-8”)).hexdigest() url = « http://127.0.0.1:8080/api/v1/accounting/operations » headers = {
« Authorization » : « HMAC-MD5 %s » % encoded, « Timestamp »: timestamp
} resp = requests.post(url, json=params, headers=headers) return resp
- resp = send_post_request(
params, « 06dda91136f6ad4688cdf6c8fd991696 »
)
- Renvoie:
The inserted entries
- collection_delete()¶
Handle bulk AccountingOperation deletion
Respond to a Http DELETE request
expects json body with filters on the AccountingOperation attributes Filters follow a format used in statistics
e.g:
import requests import time params = {“filters”: [{“key”: “date”, “type”: “date”, “method”:
“dr”, “search1”: “2018-01-01”, “search2”: “2018-02-01”}]}
- def send_del_request(params, api_key):
timestamp = str(time.time()) secret = « %s-%s » % (timestamp, api_key) encoded = md5(secret.encode(“utf-8”)).hexdigest() url = « http://127.0.0.1:8080/api/v1/accounting/operations » headers = {
« Authorization »: « HMAC-MD5 %s » % encoded, « Timestamp »: timestamp
} resp = requests.delete(url, json=params, headers=headers)
- send_del_request(
params, « 06dda91136f6ad4688cdf6c8fd991696 »
)
- collection_get()¶
- dbsession: DBSESSION¶
- encodings = ('cp1252', 'iso8859-1', 'iso8859-16', 'utf16', 'utf32')¶
- post_format(entry, edit, attributes)¶
Set company id if possible after datas validation and model creation
- request: Request¶
- schema = <colanderalchemy.schema.SQLAlchemySchemaNode object at 140624197300688 (named )>¶
- session: ISession¶
- endi.views.accounting.rest_api.authentification_check_view(context, request)¶
Allows to chek if the accounting authentication is valid without firing any additionnal action
- Paramètres:
context (obj) – The View’s context
request (obj) – The Pyramid Request object
- endi.views.accounting.rest_api.includeme(config)¶
endi.views.accounting.routes module¶
- endi.views.accounting.routes.includeme(config)¶
endi.views.accounting.treasury_measures module¶
- class endi.views.accounting.treasury_measures.CompanyTreasuryMeasuresListView(*args, **kwargs)¶
Bases :
BaseListView- add_template_vars = ('info_msg', 'current_grid', 'stream_actions', 'last_grid', 'highlight_entry')¶
- current_grid¶
- dbsession: DBSESSION¶
- default_direction = 'desc'¶
- default_sort = 'date'¶
- filter_year(query, appstruct)¶
- get_company_id()¶
- property highlight_entry¶
- property info_msg¶
- last_grid¶
- query()¶
The main query, should be overrided by a subclass
- request: Request¶
- schema = <endi.forms.lists.BaseListsSchema object at 140624197538000 (named )>¶
- session: ISession¶
- sort_columns = {'date': 'date'}¶
- stream_actions(item)¶
- title = 'État de trésorerie'¶
- class endi.views.accounting.treasury_measures.TreasuryGridCompute(grid)¶
Bases :
objectComputation grid collecting the rows of the Treasury and providing an easy to use interface used for html rendering
Collect static database stored datas Compute dynamically computed rows
- compile_rows()¶
Compile values for Treasury presentation
- class endi.views.accounting.treasury_measures.TreasuryGridListView(*args, **kwargs)¶
Bases :
BaseListView- add_template_vars = ('stream_actions', 'highlight_entry')¶
- dbsession: DBSESSION¶
- default_direction = 'asc'¶
- default_sort = 'company'¶
- filter_company_id(query, appstruct)¶
- property highlight_entry¶
Used to populate an actionmenu (if there’s one in the page) actionmenu is a request attribute used to automate the integration of actionmenus in pages
- query()¶
The main query, should be overrided by a subclass
- request: Request¶
- schema = <endi.forms.lists.BaseListsSchema object at 140624197426640 (named )>¶
- session: ISession¶
- sort_by_company(query, appstruct)¶
- sort_columns = {'company': 'Custom'}¶
- stream_actions(item)¶
- title = 'Liste des états de trésorerie'¶
- endi.views.accounting.treasury_measures.includeme(config)¶
Module contents¶
- endi.views.accounting.includeme(config)¶