123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- # -*- coding: utf-8 -*-
- from openerp import http
- from openerp.http import request
- from werkzeug.wrappers import Response
- from werkzeug.datastructures import Headers
- from dateutil.relativedelta import relativedelta as rd
- from dateutil.parser import parse
- from gzip import GzipFile
- from StringIO import StringIO as IO
- import simplejson as json
- import gzip
- # import logging
- from eiru_logging import make_info_log
- # LOGGER = logging.getLogger(__name__)
- GZIP_COMPRESSION_LEVEL = 9
- class Statement(http.Controller):
- ''' Make JSON response to send '''
- def make_response(self, data=None, status=200):
- return Response(json.dumps(data), status=status, content_type='application/json')
- ''' Make GZIP to JSON response '''
- def make_gzip_response(self, data=None, status=200):
- gzip_buffer = IO()
- with GzipFile(mode='wb', compresslevel=GZIP_COMPRESSION_LEVEL, fileobj=gzip_buffer) as gzip_file:
- gzip_file.write(json.dumps(data))
- contents = gzip_buffer.getvalue()
- gzip_buffer.close()
- headers = Headers()
- headers.add('Content-Encoding', 'gzip')
- headers.add('Vary', 'Accept-Encoding')
- headers.add('Content-Length', len(contents))
- return Response(contents, status=status, headers=headers, content_type='application/json')
- # ''' Logger info '''
- # def make_info_log(self, log):
- # LOGGER.info('\033[1;34m[INFO] --> \033[m{}'.format(log))
- '''
- ██ ███ ██ ██ ████████
- ██ ████ ██ ██ ██
- ██ ██ ██ ██ ██ ██
- ██ ██ ██ ██ ██ ██
- ██ ██ ████ ██ ██
- '''
- @http.route('/eiru_bank_statement/init', auth='user', methods=['GET'], cors='*')
- def init_bank_statement(self,**kw):
- from account_bank_statement_type import get_account_bank_statement_type
- from res_store import get_res_store
- from res_users import get_res_users, get_user
- from server_datetime import get_date
- from res_partner import get_res_partner
- from account_bank_statement_config import get_account_bank_statement_config
- from account_journal import get_currencies_from_journal, get_journals
- from account_bank_statement import get_account_bank_statement
- make_info_log('Preparing data to {}'.format(kw.get('mode')))
- # self.make_info_log('Preparing data to {}'.format(kw.get('mode')))
- store = get_res_store(kw.get('mode'))
- # from eiru_logging import make_info_log
- # make_info_log('GET Timezone')
- return self.make_gzip_response({
- 'date': get_date(),
- 'user': get_user(),
- 'resUsers': get_res_users(store['userIds']),
- 'statementType': get_account_bank_statement_type(),
- 'resPartners': get_res_partner(),
- 'statementConfig': get_account_bank_statement_config(),
- 'currencies': get_currencies_from_journal(),
- 'journals': get_journals([kw.get('mode')]),
- 'statement': get_account_bank_statement(store['journalIds']),
- })
- '''
- ██████ █████ ███████ ██ ██ ██████ ██████ ██ ██ ███ ███ ██████ ██ ██ ███████
- ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ████ ██ ██ ██ ██ ██
- ██ ███████ ███████ ███████ ██████ ██ ██ ███ ██ ████ ██ ██ ██ ██ ██ █████
- ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
- ██████ ██ ██ ███████ ██ ██ ██████ ██████ ██ ██ ██ ██ ██████ ████ ███████
- * Transfer.
- * Input.
- * Output.
- '''
- @http.route('/eiru_bank_statement/create_cashbox_move', type='json', auth='user', methods=['POST'],cors='*')
- def _create_cashbox_move(self, **kw):
- from account_bank_statement_line import create_statement_line
- from cashbox_transfer import create_cashbox_transfer
- from cashbox_input import create_cashbox_input
- from cashbox_output import create_cashbox_output
- data = kw.get('data')
- ''' Transferencia '''
- if (data['transfer']):
- return create_cashbox_transfer(data)
- ''' Entrada de Dinero '''
- if (data['input']):
- return create_cashbox_input(data)
- ''' Salida de Dinero '''
- if (data['output']):
- return create_cashbox_output(data)
- '''
- ██████ ██████ ███████ █████ ████████ ███████
- ██ ██ ██ ██ ██ ██ ██ ██
- ██ ██████ █████ ███████ ██ █████
- ██ ██ ██ ██ ██ ██ ██ ██
- ██████ ██ ██ ███████ ██ ██ ██ ███████ Statement
- '''
- @http.route('/eiru_bank_statement/create_account_bank_statement', type='json', auth='user', methods=['POST'],cors='*')
- def _create_account_bank_statement(self, **kw):
- from account_bank_statement import create_account_bank_statement
- return create_account_bank_statement(kw.get('data'))
- '''
- ██████ ██ ██████ ███████ ██ ███ ██ ██████
- ██ ██ ██ ██ ██ ██ ████ ██ ██
- ██ ██ ██ ██ ███████ ██ ██ ██ ██ ██ ███
- ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
- ██████ ███████ ██████ ███████ ██ ██ ████ ██████ STATEMENT
- '''
- @http.route('/eiru_bank_statement/process_closing_statement', type='json', auth='user', methods=['POST'],cors='*')
- def _process_closing_statement(self, **kw):
- from account_bank_statement import closing_statement
- return closing_statement(kw.get('data'))
- '''
- WRITE / UNLINK
- '''
- @http.route('/eiru_bank_statement/process_modify_statement_line', type='json', auth='user', methods=['POST'],cors='*')
- def _process_modify_statement(self, **kw):
- from account_bank_statement_line import modify_statement_line
- return modify_statement_line(kw.get('data'))
|