|
@@ -2,25 +2,6 @@
|
|
from openerp import http
|
|
from openerp import http
|
|
from openerp.http import request
|
|
from openerp.http import request
|
|
|
|
|
|
-from res_currency import check_base_currency
|
|
|
|
-from res_config import get_pos_config, save_pos_config
|
|
|
|
-from server_datetime import get_datetime, get_date
|
|
|
|
-from res_users import get_current_user
|
|
|
|
-from account_journal import get_journals, get_currencies_from_journals, get_currency
|
|
|
|
-from res_partner import get_customers, create_customer
|
|
|
|
-from product_template import get_products, create_product
|
|
|
|
-from account_payment_term import get_payment_terms
|
|
|
|
-from res_bank import get_banks
|
|
|
|
-from res_bank_payment_type import get_bank_payment_types
|
|
|
|
-from res_bank_cheque_type import get_cheque_types
|
|
|
|
-from sale_order import create_sale_from_cart, confirm_sale_order
|
|
|
|
-from account_invoice import create_invoice, create_invoice_move_lines, number_invoice, close_invoice
|
|
|
|
-from account_move import create_account_move
|
|
|
|
-from account_voucher import create_account_voucher
|
|
|
|
-from account_bank_statement import create_bank_statement
|
|
|
|
-from res_bank_payment import create_bank_payment_statement
|
|
|
|
-from res_store import get_stores
|
|
|
|
-
|
|
|
|
from http_response import make_gzip_response
|
|
from http_response import make_gzip_response
|
|
import logging
|
|
import logging
|
|
|
|
|
|
@@ -45,24 +26,61 @@ class PosSales(http.Controller):
|
|
@http.route('/eiru_sales/init', auth='user', methods=['GET'], cors='*')
|
|
@http.route('/eiru_sales/init', auth='user', methods=['GET'], cors='*')
|
|
def _init_sale(self, **kw):
|
|
def _init_sale(self, **kw):
|
|
self.make_info_log('Sending JSON response')
|
|
self.make_info_log('Sending JSON response')
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ # Imports
|
|
|
|
+ from server_datetime import get_datetime
|
|
|
|
+ from res_currency import check_base_currency
|
|
|
|
+ from res_config import get_pos_config
|
|
|
|
+ from res_users import get_current_user
|
|
|
|
+ from account_journal import get_journals, get_currencies_from_journals
|
|
|
|
+ from res_partner import get_customers
|
|
|
|
+ from product_template import get_products
|
|
|
|
+ from account_payment_term import get_payment_terms
|
|
|
|
+ from res_bank import get_banks
|
|
|
|
+ from res_bank_payment_type import get_bank_payment_types
|
|
|
|
+ from res_bank_cheque_type import get_cheque_types
|
|
|
|
+ from res_store import get_stores
|
|
|
|
+
|
|
|
|
+ # Logic
|
|
check_base_currency()
|
|
check_base_currency()
|
|
config = get_pos_config()
|
|
config = get_pos_config()
|
|
-
|
|
|
|
- data = {
|
|
|
|
- 'settings': config,
|
|
|
|
- 'date': get_datetime(),
|
|
|
|
- 'user': get_current_user(),
|
|
|
|
- 'currencies': get_currencies_from_journals(),
|
|
|
|
- 'journals': get_journals(),
|
|
|
|
- 'customers': get_customers(image_type=config.get('imageType')),
|
|
|
|
- 'products': get_products(image_type=config.get('imageType')),
|
|
|
|
- 'paymentTerms': get_payment_terms(),
|
|
|
|
- 'banks': get_banks(),
|
|
|
|
- 'bankPaymentTypes': get_bank_payment_types(),
|
|
|
|
- 'chequeTypes': get_cheque_types(),
|
|
|
|
- 'stores': get_stores()
|
|
|
|
- }
|
|
|
|
|
|
+ mode = kw.get('mode', 'unknown')
|
|
|
|
+ data = {}
|
|
|
|
+
|
|
|
|
+ # Take all data
|
|
|
|
+ if mode == 'sale':
|
|
|
|
+ data = {
|
|
|
|
+ 'settings': config,
|
|
|
|
+ 'date': get_datetime(),
|
|
|
|
+ 'user': get_current_user(),
|
|
|
|
+ 'currencies': get_currencies_from_journals(),
|
|
|
|
+ 'journals': get_journals(),
|
|
|
|
+ 'customers': get_customers(image_type=config.get('imageType')),
|
|
|
|
+ 'products': get_products(image_type=config.get('imageType')),
|
|
|
|
+ 'paymentTerms': get_payment_terms(),
|
|
|
|
+ 'banks': get_banks(),
|
|
|
|
+ 'bankPaymentTypes': get_bank_payment_types(),
|
|
|
|
+ 'chequeTypes': get_cheque_types(),
|
|
|
|
+ 'stores': get_stores()
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # Take data for picking
|
|
|
|
+ if mode == 'product_picking':
|
|
|
|
+ data = {
|
|
|
|
+ 'settings': config,
|
|
|
|
+ 'date': get_datetime(),
|
|
|
|
+ 'user': get_current_user(),
|
|
|
|
+ 'customers': get_customers(image_type=config.get('imageType')),
|
|
|
|
+ 'products': get_products(image_type=config.get('imageType')),
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # Take data for payment
|
|
|
|
+ if mode == 'payment':
|
|
|
|
+ data = {}
|
|
|
|
+
|
|
|
|
+ # Take data for delivery
|
|
|
|
+ if mode == 'product_delivery':
|
|
|
|
+ data = {}
|
|
|
|
|
|
return make_gzip_response(data)
|
|
return make_gzip_response(data)
|
|
|
|
|
|
@@ -76,6 +94,10 @@ class PosSales(http.Controller):
|
|
def _get_images_only(self, **kw):
|
|
def _get_images_only(self, **kw):
|
|
image_type = str(get_pos_config().get('imageType'))
|
|
image_type = str(get_pos_config().get('imageType'))
|
|
|
|
|
|
|
|
+ # Imports
|
|
|
|
+ from res_partner import get_customers
|
|
|
|
+ from product_template import get_products
|
|
|
|
+
|
|
return make_gzip_response({
|
|
return make_gzip_response({
|
|
'customers': get_customers(image_type=image_type),
|
|
'customers': get_customers(image_type=image_type),
|
|
'products': get_products(image_type=image_type)
|
|
'products': get_products(image_type=image_type)
|
|
@@ -89,6 +111,8 @@ class PosSales(http.Controller):
|
|
#################################################################################################
|
|
#################################################################################################
|
|
@http.route('/eiru_sales/create_customer', type='json', auth='user', methods=['POST'], cors='*')
|
|
@http.route('/eiru_sales/create_customer', type='json', auth='user', methods=['POST'], cors='*')
|
|
def _create_customer(self, **kw):
|
|
def _create_customer(self, **kw):
|
|
|
|
+ from res_partner import create_customer
|
|
|
|
+
|
|
self.make_info_log('Creating customer')
|
|
self.make_info_log('Creating customer')
|
|
return create_customer(kw)
|
|
return create_customer(kw)
|
|
|
|
|
|
@@ -100,6 +124,8 @@ class PosSales(http.Controller):
|
|
#############################################
|
|
#############################################
|
|
@http.route('/eiru_sales/save_settings', type='json', auth='user', methods=['POST'], cors='*')
|
|
@http.route('/eiru_sales/save_settings', type='json', auth='user', methods=['POST'], cors='*')
|
|
def _save_config(self, **kw):
|
|
def _save_config(self, **kw):
|
|
|
|
+ from res_config import save_pos_config
|
|
|
|
+
|
|
self.make_info_log('save settings')
|
|
self.make_info_log('save settings')
|
|
return save_pos_config(kw)
|
|
return save_pos_config(kw)
|
|
|
|
|
|
@@ -111,6 +137,8 @@ class PosSales(http.Controller):
|
|
#############################################################################################
|
|
#############################################################################################
|
|
@http.route('/eiru_sales/create_product', type='json', auth='user', methods=['POST'], cors='*')
|
|
@http.route('/eiru_sales/create_product', type='json', auth='user', methods=['POST'], cors='*')
|
|
def _create_product(self, **kw):
|
|
def _create_product(self, **kw):
|
|
|
|
+ from product_template import create_product
|
|
|
|
+
|
|
return create_product(kw)
|
|
return create_product(kw)
|
|
|
|
|
|
|
|
|
|
@@ -123,6 +151,9 @@ class PosSales(http.Controller):
|
|
def _finish(self, **kw):
|
|
def _finish(self, **kw):
|
|
self.make_info_log('Finishing...')
|
|
self.make_info_log('Finishing...')
|
|
|
|
|
|
|
|
+ # Imports
|
|
|
|
+ from server_datetime import get_date, get_datetime
|
|
|
|
+
|
|
# Parameters
|
|
# Parameters
|
|
date_now = get_date()
|
|
date_now = get_date()
|
|
mode = kw.get('mode', 'sale')
|
|
mode = kw.get('mode', 'sale')
|
|
@@ -139,7 +170,11 @@ class PosSales(http.Controller):
|
|
╠╣ ║║║║║╚═╗╠═╣ ╠╩╗║ ║ ║║║ ╦║╣ ║ ╠═╝║ ║╚═╗ ╠═╝╠╦╝║ ║║ ║╣ ║║║ ║╠╦╝║╣
|
|
╠╣ ║║║║║╚═╗╠═╣ ╠╩╗║ ║ ║║║ ╦║╣ ║ ╠═╝║ ║╚═╗ ╠═╝╠╦╝║ ║║ ║╣ ║║║ ║╠╦╝║╣
|
|
╚ ╩╝╚╝╩╚═╝╩ ╩ ╚═╝╚═╝═╩╝╚═╝╚═╝ ╩ ╩ ╚═╝╚═╝ ╩ ╩╚═╚═╝╚═╝╚═╝═╩╝╚═╝╩╚═╚═╝
|
|
╚ ╩╝╚╝╩╚═╝╩ ╩ ╚═╝╚═╝═╩╝╚═╝╚═╝ ╩ ╩ ╚═╝╚═╝ ╩ ╩╚═╚═╝╚═╝╚═╝═╩╝╚═╝╩╚═╚═╝
|
|
'''
|
|
'''
|
|
- def finish_budget_pos(journal_id, customer_id, cart_items, date_now, currency_id, payment_term_id):
|
|
|
|
|
|
+ def finish_budget_pos(journal_id, customer_id, cart_items, date_now, payment_term_id):
|
|
|
|
+ # Imports
|
|
|
|
+ from account_journal import get_currency
|
|
|
|
+ from sale_order import create_sale_from_cart
|
|
|
|
+
|
|
# Get currency
|
|
# Get currency
|
|
currency_id = get_currency(journal_id)
|
|
currency_id = get_currency(journal_id)
|
|
self.make_info_log('[OK] Getting journal')
|
|
self.make_info_log('[OK] Getting journal')
|
|
@@ -148,7 +183,7 @@ class PosSales(http.Controller):
|
|
sale_order = create_sale_from_cart(customer_id, cart_items, date_now, currency_id, payment_term_id)
|
|
sale_order = create_sale_from_cart(customer_id, cart_items, date_now, currency_id, payment_term_id)
|
|
self.make_info_log('[OK] Creating sale order')
|
|
self.make_info_log('[OK] Creating sale order')
|
|
|
|
|
|
- return sale_order.id
|
|
|
|
|
|
+ return (sale_order.id, currency_id)
|
|
|
|
|
|
'''
|
|
'''
|
|
╔═╗╦╔╗╔╦╔═╗╦ ╦ ╔═╗╔═╗╦ ╔═╗ ╔═╗╔═╗╔═╗ ╔═╗╦═╗╔═╗╔═╗╔═╗╔╦╗╦ ╦╦═╗╔═╗
|
|
╔═╗╦╔╗╔╦╔═╗╦ ╦ ╔═╗╔═╗╦ ╔═╗ ╔═╗╔═╗╔═╗ ╔═╗╦═╗╔═╗╔═╗╔═╗╔╦╗╦ ╦╦═╗╔═╗
|
|
@@ -157,7 +192,20 @@ class PosSales(http.Controller):
|
|
'''
|
|
'''
|
|
def finish_sale_pos(journal_id, customer_id, cart_items, date_now, payment_term_id, payment, payment_method, bank_payment_data):
|
|
def finish_sale_pos(journal_id, customer_id, cart_items, date_now, payment_term_id, payment, payment_method, bank_payment_data):
|
|
# Create budget
|
|
# Create budget
|
|
- sale_order_id = finish_budget_pos(journal_id, customer_id, cart_items, date_now, currency_id, payment_term_id)
|
|
|
|
|
|
+ sale_order_id, currency_id = finish_budget_pos(journal_id, customer_id, cart_items, date_now, payment_term_id)
|
|
|
|
+
|
|
|
|
+ # Imports
|
|
|
|
+ from sale_order import confirm_sale_order
|
|
|
|
+ from account_invoice import (
|
|
|
|
+ create_invoice,
|
|
|
|
+ create_invoice_move_lines,
|
|
|
|
+ number_invoice,
|
|
|
|
+ close_invoice
|
|
|
|
+ )
|
|
|
|
+ from account_move import create_account_move
|
|
|
|
+ from account_voucher import create_account_voucher
|
|
|
|
+ from account_bank_statement import create_bank_statement
|
|
|
|
+ from res_bank_payment import create_bank_payment_statement
|
|
|
|
|
|
# Confirm sale
|
|
# Confirm sale
|
|
confirm_sale_order(sale_order_id)
|
|
confirm_sale_order(sale_order_id)
|
|
@@ -195,8 +243,41 @@ class PosSales(http.Controller):
|
|
if payment_method == 'Banco':
|
|
if payment_method == 'Banco':
|
|
create_bank_payment_statement(bank_payment_data, invoice.id, account_voucher.id)
|
|
create_bank_payment_statement(bank_payment_data, invoice.id, account_voucher.id)
|
|
self.make_info_log('[OK] Creating bank payment statement')
|
|
self.make_info_log('[OK] Creating bank payment statement')
|
|
|
|
+
|
|
|
|
+ '''
|
|
|
|
+ ╔═╗╦╔╗╔╦╔═╗╦ ╦ ╔═╗╦═╗╔═╗╔╦╗╦ ╦╔═╗╔╦╗ ╔═╗╦╔═╗╦╔═╦╔╗╔╔═╗
|
|
|
|
+ ╠╣ ║║║║║╚═╗╠═╣ ╠═╝╠╦╝║ ║ ║║║ ║║ ║ ╠═╝║║ ╠╩╗║║║║║ ╦
|
|
|
|
+ ╚ ╩╝╚╝╩╚═╝╩ ╩ ╩ ╩╚═╚═╝═╩╝╚═╝╚═╝ ╩ ╩ ╩╚═╝╩ ╩╩╝╚╝╚═╝
|
|
|
|
+ '''
|
|
|
|
+ def finish_process_picking(journal_id, customer_id, cart_items, date_now, payment_term_id):
|
|
|
|
+ sale_order_id, _ = finish_budget_pos(journal_id, customer_id, cart_items, date_now, payment_term_id)
|
|
|
|
+
|
|
|
|
+ # Imports
|
|
|
|
+ from sale_order import confirm_sale_order, force_assign_picking
|
|
|
|
+
|
|
|
|
+ # Confirm sale
|
|
|
|
+ confirm_sale_order(sale_order_id)
|
|
|
|
+ self.make_info_log('[OK] Confirm sale order')
|
|
|
|
+
|
|
|
|
+ # Force assign picking
|
|
|
|
+ force_assign_picking(sale_order_id)
|
|
|
|
+ self.make_info_log('[OK] Pick assign')
|
|
|
|
+
|
|
|
|
+ '''
|
|
|
|
+ ╔═╗╦╔╗╔╦╔═╗╦ ╦ ╔═╗╔═╗╦ ╦╔╦╗╔═╗╔╗╔╔╦╗
|
|
|
|
+ ╠╣ ║║║║║╚═╗╠═╣ ╠═╝╠═╣╚╦╝║║║║╣ ║║║ ║
|
|
|
|
+ ╚ ╩╝╚╝╩╚═╝╩ ╩ ╩ ╩ ╩ ╩ ╩ ╩╚═╝╝╚╝ ╩
|
|
|
|
+ '''
|
|
|
|
+ def finish_payment():
|
|
|
|
+ pass
|
|
|
|
|
|
- return True
|
|
|
|
|
|
+ '''
|
|
|
|
+ ╔═╗╦╔╗╔╦╔═╗╦ ╦ ╔═╗╦═╗╔═╗╔╦╗╦ ╦╔═╗╔╦╗ ╔╦╗╔═╗╦ ╦╦ ╦╔═╗╦═╗╦ ╦
|
|
|
|
+ ╠╣ ║║║║║╚═╗╠═╣ ╠═╝╠╦╝║ ║ ║║║ ║║ ║ ║║║╣ ║ ║╚╗╔╝║╣ ╠╦╝╚╦╝
|
|
|
|
+ ╚ ╩╝╚╝╩╚═╝╩ ╩ ╩ ╩╚═╚═╝═╩╝╚═╝╚═╝ ╩ ═╩╝╚═╝╩═╝╩ ╚╝ ╚═╝╩╚═ ╩
|
|
|
|
+ '''
|
|
|
|
+ def finish_product_delivery():
|
|
|
|
+ pass
|
|
|
|
|
|
'''
|
|
'''
|
|
╔═╗╦═╗╔═╗╔═╗╔═╗╔═╗╔═╗ ╔═╗╦╔╗╔╦╔═╗╦ ╦ ╔╦╗╔═╗╔═╗╦╔═╗╦╔═╗╔╗╔
|
|
╔═╗╦═╗╔═╗╔═╗╔═╗╔═╗╔═╗ ╔═╗╦╔╗╔╦╔═╗╦ ╦ ╔╦╗╔═╗╔═╗╦╔═╗╦╔═╗╔╗╔
|
|
@@ -210,13 +291,13 @@ class PosSales(http.Controller):
|
|
finish_sale_pos(journal_id, customer_id, cart_items, date_now, payment_term_id, payment, payment_method, bank_payment_data)
|
|
finish_sale_pos(journal_id, customer_id, cart_items, date_now, payment_term_id, payment, payment_method, bank_payment_data)
|
|
|
|
|
|
if mode == 'product_picking':
|
|
if mode == 'product_picking':
|
|
- pass
|
|
|
|
|
|
+ finish_process_picking(journal_id, customer_id, cart_items, date_now, payment_term_id)
|
|
|
|
|
|
if mode == 'payment':
|
|
if mode == 'payment':
|
|
- pass
|
|
|
|
|
|
+ finish_payment()
|
|
|
|
|
|
if mode == 'product_delivery':
|
|
if mode == 'product_delivery':
|
|
- pass
|
|
|
|
|
|
+ finish_product_delivery()
|
|
|
|
|
|
return {
|
|
return {
|
|
'process': True,
|
|
'process': True,
|