__init__.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. # -*- coding: utf-8 -*-
  2. from account_bank_statement import create_bank_statement, create_bank_statement_lines
  3. from account_invoice import create_invoice, prepare_invoice, validate_invoice, close_invoice
  4. from account_journal import get_journals, get_currencies_from_journal
  5. from account_move import create_invoice_move_lines, create_account_move
  6. from account_payment_term import get_payment_terms
  7. from account_voucher import create_account_voucher
  8. from http_response import make_gzip_response
  9. from product_pricelist import get_pricelist_id
  10. from product_template import get_products
  11. from purchase_order import create_purchase_order, confirm_purchase_order
  12. from res_bank_cheque_type import get_cheque_types
  13. from res_bank_payments_type import get_bank_payment_types
  14. from res_bank import get_banks
  15. from res_currency import check_base_currency, get_currency_id
  16. from res_partner import get_suppliers
  17. from res_users import get_current_user
  18. from server_date import get_date
  19. from stock_picking_type import get_picking_types
  20. from stock_picking import get_pickings
  21. '''
  22. '''
  23. def get_data(mode=None):
  24. data = {}
  25. if mode == 'purchase' or mode == 'expense':
  26. data = {
  27. 'date': get_date(),
  28. 'user': get_current_user(),
  29. 'currencies': get_currencies_from_journal(),
  30. 'journals': get_journals(),
  31. 'suppliers': get_suppliers(),
  32. 'products': get_products(kw.get('mode')),
  33. 'pickingTypes': get_picking_types(),
  34. 'paymentTerms': get_payment_terms(),
  35. 'banks': get_banks(),
  36. 'bankPaymentTypes': get_bank_payment_types(),
  37. 'chequeTypes': get_cheque_types()
  38. }
  39. if mode == 'product_picking':
  40. data = {
  41. 'date': get_date(),
  42. 'user': get_current_user(),
  43. 'currencies': get_currencies_from_journal(),
  44. 'suppliers': get_suppliers(),
  45. 'products': get_products()
  46. }
  47. if mode == 'payment':
  48. data = {
  49. 'currencies': get_currencies_from_journal(),
  50. 'suppliers': get_suppliers(),
  51. 'journals': get_journals(),
  52. 'paymentTerms': get_payment_terms(),
  53. 'banks': get_banks(),
  54. 'bankPaymentTypes': get_bank_payment_types(),
  55. 'chequeTypes': get_cheque_types()
  56. }
  57. if mode == 'product_taking':
  58. data = {
  59. 'stockPickings': get_pickings()
  60. }
  61. return make_gzip_response(data)
  62. '''
  63. '''
  64. def store_data(data=None):
  65. if not data:
  66. return {}
  67. def create_purchase():
  68. pass
  69. def create_expense():
  70. pass
  71. date_now = get_date()
  72. mode = data.get('mode')
  73. journal_id = data.get('journalId')
  74. supplier_id = data.get('supplierId')
  75. supplier_invoice_number = data.get('supplierInvoiceNumber', None)
  76. cart_items = data.get('items')
  77. payment_term_id = data.get('paymentTermId')
  78. payment = float(kw.get('payment'))
  79. currency_id = get_currency_id(journal_id)
  80. pricelist_id = get_pricelist_id(currency_id)
  81. invoice = None
  82. if mode == 'purchase':
  83. purchase_order = create_purchase_order(supplier_id, cart_items, date_now, currency_id, pricelist_id, payment_term_id)
  84. confirm_purchase_order(purchase_order.id)
  85. invoice = purchase_order.invoice_ids
  86. invoice.write({
  87. 'supplier_invoice_number': supplier_invoice_number
  88. })
  89. else:
  90. invoice = create_invoice(supplier_id, cart_items, currency_id, payment_term_id, supplier_invoice_number)
  91. invoice_ids = invoice.mapped(lambda x: x.id)
  92. prepare_invoice(invoice_ids, currency_id, date_now)
  93. move_lines = create_invoice_move_lines(invoice_ids, payment, date_now)
  94. account_move = create_account_move(invoice_ids, move_lines)
  95. validate_invoice(invoice_ids, mode)
  96. account_voucher = create_account_voucher(account_move.id, journal_id, currency_id, payment)
  97. close_invoice(invoice_ids)
  98. statement_lines = create_bank_statement_lines(account_voucher.id)
  99. create_bank_statement(account_voucher.id, statement_lines, date_now)
  100. return {
  101. 'status': 'ok'
  102. }