# -*- coding: utf-8 -*- from account_bank_statement import create_bank_statement, create_bank_statement_lines from account_invoice import create_invoice, prepare_invoice, validate_invoice, close_invoice from account_journal import get_journals, get_currencies_from_journal from account_move import create_invoice_move_lines, create_account_move from account_payment_term import get_payment_terms from account_voucher import create_account_voucher from http_response import make_gzip_response from product_pricelist import get_pricelist_id from product_template import get_products from purchase_order import create_purchase_order, confirm_purchase_order from res_bank_cheque_type import get_cheque_types from res_bank_payments_type import get_bank_payment_types from res_bank import get_banks from res_currency import check_base_currency, get_currency_id from res_partner import get_suppliers from res_users import get_current_user from server_date import get_date from stock_picking_type import get_picking_types from stock_picking import get_pickings ''' ''' def get_data(mode=None): data = {} if mode == 'purchase' or mode == 'expense': data = { 'date': get_date(), 'user': get_current_user(), 'currencies': get_currencies_from_journal(), 'journals': get_journals(), 'suppliers': get_suppliers(), 'products': get_products(kw.get('mode')), 'pickingTypes': get_picking_types(), 'paymentTerms': get_payment_terms(), 'banks': get_banks(), 'bankPaymentTypes': get_bank_payment_types(), 'chequeTypes': get_cheque_types() } if mode == 'product_picking': data = { 'date': get_date(), 'user': get_current_user(), 'currencies': get_currencies_from_journal(), 'suppliers': get_suppliers(), 'products': get_products() } if mode == 'payment': data = { 'currencies': get_currencies_from_journal(), 'suppliers': get_suppliers(), 'journals': get_journals(), 'paymentTerms': get_payment_terms(), 'banks': get_banks(), 'bankPaymentTypes': get_bank_payment_types(), 'chequeTypes': get_cheque_types() } if mode == 'product_taking': data = { 'stockPickings': get_pickings() } return make_gzip_response(data) ''' ''' def store_data(data=None): if not data: return {} def create_purchase(): pass def create_expense(): pass date_now = get_date() mode = data.get('mode') journal_id = data.get('journalId') supplier_id = data.get('supplierId') supplier_invoice_number = data.get('supplierInvoiceNumber', None) cart_items = data.get('items') payment_term_id = data.get('paymentTermId') payment = float(kw.get('payment')) currency_id = get_currency_id(journal_id) pricelist_id = get_pricelist_id(currency_id) invoice = None if mode == 'purchase': purchase_order = create_purchase_order(supplier_id, cart_items, date_now, currency_id, pricelist_id, payment_term_id) confirm_purchase_order(purchase_order.id) invoice = purchase_order.invoice_ids invoice.write({ 'supplier_invoice_number': supplier_invoice_number }) else: invoice = create_invoice(supplier_id, cart_items, currency_id, payment_term_id, supplier_invoice_number) invoice_ids = invoice.mapped(lambda x: x.id) prepare_invoice(invoice_ids, currency_id, date_now) move_lines = create_invoice_move_lines(invoice_ids, payment, date_now) account_move = create_account_move(invoice_ids, move_lines) validate_invoice(invoice_ids, mode) account_voucher = create_account_voucher(account_move.id, journal_id, currency_id, payment) close_invoice(invoice_ids) statement_lines = create_bank_statement_lines(account_voucher.id) create_bank_statement(account_voucher.id, statement_lines, date_now) return { 'status': 'ok' }