fix setfocus in payment
This commit is contained in:
parent
a93043c7a1
commit
1321d71bcb
|
@ -1610,7 +1610,7 @@ class DialogInfoProduct(QuickDialog):
|
|||
self.input_code.setText(values['code'])
|
||||
self.input_name.setText(values['name'])
|
||||
extra_tax = values['extra_tax'] if values.get('extra_tax') else 0
|
||||
sale_price_w_tax = values['template']['sale_price_w_tax']
|
||||
sale_price_w_tax = values['template.']['sale_price_w_tax']
|
||||
sale_price = "{:,}".format(round(sale_price_w_tax + extra_tax, 0))
|
||||
self.input_price.setText(sale_price)
|
||||
self.input_quantity.setText(str(values['quantity']))
|
||||
|
@ -1643,10 +1643,10 @@ class DialogInfoProduct(QuickDialog):
|
|||
products = self._parent.local_db.find_product_elastic(domain, limit=100)
|
||||
else:
|
||||
products = self._parent.Product.find(domain, ctx=self._parent.stock_context,
|
||||
fields=['name', 'code', 'categories', 'description',
|
||||
'id', 'image', 'image_icon', 'list_price', 'location'
|
||||
'products_mix', 'quantity', 'rec_name', 'template',
|
||||
'extra_tax', 'template.sale_price_w_tax', 'sale_uom',
|
||||
fields=['name', 'code', 'description',
|
||||
'id', 'list_price',
|
||||
'quantity', 'rec_name', 'template',
|
||||
'extra_tax', 'template.sale_price_w_tax',
|
||||
'write_date'])
|
||||
|
||||
if not products:
|
||||
|
|
|
@ -2233,6 +2233,7 @@ class AppWindow(FrontWindow):
|
|||
self.field_journal_id = journal['id']
|
||||
self.dialog_payment.close()
|
||||
self.message_bar.set('enter_payment', journal['name'])
|
||||
self.field_amount.setFocus()
|
||||
|
||||
def on_search_product(self):
|
||||
target = self.dialog_search_products.filter_field.text()
|
||||
|
@ -2271,6 +2272,7 @@ class AppWindow(FrontWindow):
|
|||
# print('ingresa a esta ')
|
||||
# else:
|
||||
fields = self.dialog_search_products.fields_names
|
||||
print('fields', fields)
|
||||
products = self.Product.find(domain, fields=fields,
|
||||
limit=100, ctx=self.stock_context)
|
||||
self.dialog_search_products.set_from_values(products)
|
||||
|
@ -2413,7 +2415,7 @@ class AppWindow(FrontWindow):
|
|||
if self.salesman:
|
||||
to_create.update({'salesman': self.salesman['id']})
|
||||
if self.enviroment != 'restaurant' and self._config.get('use_price_list'):
|
||||
self.field_list_price.set_from_id(self.shop['price_list']['id'])
|
||||
self.field_list_price.set_from_id(self.shop['price_list.']['id'])
|
||||
self._sale = self.Sale.new_sale(to_create)
|
||||
self.store.set(self._sale)
|
||||
|
||||
|
|
233
app/models.py
233
app/models.py
|
@ -1,5 +1,5 @@
|
|||
|
||||
MODELS = {
|
||||
MODELS_RESTAURANT = {
|
||||
'ir.module': {
|
||||
'rec_name': 'name',
|
||||
'fields': [
|
||||
|
@ -86,8 +86,9 @@ MODELS = {
|
|||
},
|
||||
'party.consumer': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': ['id_number', 'rec_name', 'name', 'address',
|
||||
'phone', 'notes', 'delivery']
|
||||
'fields': [
|
||||
'id_number', 'rec_name', 'name', 'address',
|
||||
'phone', 'notes', 'delivery']
|
||||
},
|
||||
'account.invoice.payment_term': {
|
||||
'rec_name': 'name',
|
||||
|
@ -126,19 +127,19 @@ MODELS = {
|
|||
},
|
||||
'sale.shop': {
|
||||
'rec_name': 'name',
|
||||
'fields': ['taxes', 'product_categories', 'party', 'invoice_copies',
|
||||
'warehouse', 'payment_term', 'salesmans', 'delivery_man',
|
||||
'discounts', 'price_list', 'order_copies']
|
||||
'fields': [
|
||||
'taxes', 'product_categories', 'party', 'invoice_copies',
|
||||
'warehouse', 'payment_term', 'salesmans', 'delivery_man',
|
||||
'discounts', 'price_list', 'order_copies']
|
||||
},
|
||||
'product.product': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': [
|
||||
'name', 'code', 'write_date', 'description',
|
||||
'template.sale_price_w_tax', 'template.account_category',
|
||||
'image', 'image_icon', 'quantity', 'list_price',
|
||||
'quantity', 'list_price',
|
||||
'sale_uom.name', 'categories',
|
||||
'products_mix.code', 'products_mix.name'
|
||||
# 'location.name', 'encoded_sale_price',
|
||||
],
|
||||
'binaries': ['image']
|
||||
},
|
||||
|
@ -205,7 +206,221 @@ MODELS = {
|
|||
'name'
|
||||
]
|
||||
},
|
||||
'product.price_list':{
|
||||
'product.price_list': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': [
|
||||
'name'
|
||||
],
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
MODELS_RETAIL = {
|
||||
'ir.module': {
|
||||
'rec_name': 'name',
|
||||
'fields': [
|
||||
'name', 'state'
|
||||
]
|
||||
},
|
||||
'company.company': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': [
|
||||
'party', 'logo'
|
||||
],
|
||||
'binaries': ['logo']
|
||||
},
|
||||
'res.user': {
|
||||
'rec_name': 'name',
|
||||
'fields': ['name', 'sale_device', 'type_pos_user', 'shop']
|
||||
},
|
||||
'product.category': {
|
||||
'rec_name': 'name',
|
||||
'fields': [
|
||||
'name', 'parent', 'childs', 'name_icon', 'accounting'
|
||||
]
|
||||
},
|
||||
'sale.sale': {
|
||||
'rec_name': 'number',
|
||||
'fields': [
|
||||
'number', 'party.rec_name', 'lines', 'sale_date', 'state',
|
||||
'total_amount_cache', 'salesman.rec_name',
|
||||
'payment_term.rec_name', 'payments', 'tip_amount',
|
||||
'total_amount', 'residual_amount', 'paid_amount', 'untaxed_amount',
|
||||
'tax_amount', 'delivery_charge', 'price_list', 'invoice_number',
|
||||
'shipment_address', 'kind', 'shop',
|
||||
'delivery_party', 'reference', 'comment', 'payment_method',
|
||||
'delivery_state', 'invoice_type', 'net_amount',
|
||||
'delivery_amount',
|
||||
'source.rec_name', 'position', 'payment_term.payment_type'
|
||||
]
|
||||
},
|
||||
'sale.line': {
|
||||
'rec_name': 'product',
|
||||
'fields': [
|
||||
'product.template.sale_price_w_tax', 'type',
|
||||
'quantity', 'unit_price_w_tax', 'product.description', 'note',
|
||||
'description', 'qty_fraction', 'amount_w_tax', 'unit.symbol',
|
||||
'product.template.name', 'product.code', 'unit.digits', 'amount',
|
||||
'discount_rate', 'product.sale_price_w_tax', 'product.quantity',
|
||||
'order_sended', 'product.sale_price_taxed', 'sale'
|
||||
]
|
||||
},
|
||||
'account.statement.journal': {
|
||||
'rec_name': 'number',
|
||||
'fields': ['name', 'require_voucher', 'kind']
|
||||
},
|
||||
'company.employee': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': ['party', 'code']
|
||||
},
|
||||
'commission.agent': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': [
|
||||
# 'active',
|
||||
'party.id_number', 'party.rec_name', 'rec_name', 'plan.percentage'
|
||||
]
|
||||
},
|
||||
'sale.delivery_party': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': [
|
||||
'active', 'party', 'party.id_number', 'party.phone', 'rec_name',
|
||||
'number_plate', 'type_vehicle',
|
||||
]
|
||||
},
|
||||
'sale.discount': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': ['active', 'name', 'rec_name', 'discount']
|
||||
},
|
||||
'sale.source': {
|
||||
'rec_name': 'name',
|
||||
'fields': [
|
||||
'id', 'name', 'party', 'party.invoice_address',
|
||||
'party.shipment_address'
|
||||
]
|
||||
},
|
||||
'party.consumer': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': [
|
||||
'id_number', 'rec_name', 'name', 'address',
|
||||
'phone', 'notes', 'delivery']
|
||||
},
|
||||
'account.invoice.payment_term': {
|
||||
'rec_name': 'name',
|
||||
'fields': ['name', 'active', 'payment_type']
|
||||
},
|
||||
'sale.device': {
|
||||
'rec_name': 'name',
|
||||
'fields': [
|
||||
'name', 'shop.company', 'shop.name', 'shop.taxes', 'shop.taxes.name',
|
||||
'shop.party.name', 'journals.name',
|
||||
'shop.product_categories.accounting',
|
||||
'shop.product_categories.name',
|
||||
'shop.product_categories.name_icon',
|
||||
'shop.product_categories.parent',
|
||||
'shop.product_categories.childs.accounting',
|
||||
'shop.product_categories.childs.name_icon',
|
||||
'shop.product_categories.childs.parent',
|
||||
'shop.product_categories.childs.name',
|
||||
'shop.product_categories.childs',
|
||||
'shop.product_categories.products.id',
|
||||
'shop.product_categories.products.name',
|
||||
'shop.product_categories.products.code',
|
||||
'shop.product_categories.childs.products.id',
|
||||
'shop.product_categories.childs.products.name',
|
||||
'shop.product_categories.childs.products.code',
|
||||
'journal.name',
|
||||
'journal.kind',
|
||||
'shop.payment_term.name', 'shop.warehouse', 'shop.discount_pos_method',
|
||||
'shop.salesman_pos_required', 'shop.electronic_authorization',
|
||||
'shop.invoice_copies', 'shop.pos_authorization', 'shop.discounts',
|
||||
'shop.computer_authorization', 'shop.manual_authorization',
|
||||
'shop.credit_note_electronic_authorization', 'shop.salesmans.rec_name',
|
||||
'shop.debit_note_electronic_authorization', 'shop.delivery_man.active',
|
||||
'shop.delivery_man.rec_name', 'shop.price_list.name', 'shop.order_copies'
|
||||
]
|
||||
},
|
||||
'sale.shop': {
|
||||
'rec_name': 'name',
|
||||
'fields': [
|
||||
'taxes', 'product_categories', 'party', 'invoice_copies',
|
||||
'warehouse', 'payment_term', 'salesmans', 'delivery_man',
|
||||
'discounts', 'price_list', 'order_copies']
|
||||
},
|
||||
'product.product': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': [
|
||||
'name', 'code', 'write_date', 'description',
|
||||
'template.sale_price_w_tax', 'template.account_category',
|
||||
'quantity', 'list_price',
|
||||
'sale_uom.name', 'categories',
|
||||
'products_mix.code', 'products_mix.name'
|
||||
],
|
||||
'binaries': ['image']
|
||||
},
|
||||
'party.party': {
|
||||
'rec_name': 'name',
|
||||
'fields': [
|
||||
'name', 'id_number', 'addresses.street', 'phone',
|
||||
'customer_payment_term.name', 'customer_payment_term.payment_type',
|
||||
'credit_limit_amount', 'receivable',
|
||||
'salesman', 'credit_amount', 'street', 'invoice_type'
|
||||
]
|
||||
},
|
||||
'ir.action.report': {
|
||||
'rec_name': 'report_name',
|
||||
'fields': ['action', 'report_name']
|
||||
},
|
||||
'sale.configuration': {
|
||||
'rec_name': 'id',
|
||||
'fields': [
|
||||
'tip_product.code', 'show_description_pos',
|
||||
'show_position_pos', 'show_stock_pos', 'password_force_assign',
|
||||
'tip_rate', 'show_agent_pos', 'discount_pos_method', 'show_brand',
|
||||
'show_location_pos', 'show_delivery_charge', 'use_price_list',
|
||||
'decimals_digits_quantity', 'password_admin_pos', 'show_fractions',
|
||||
'new_sale_automatic', 'show_product_image',
|
||||
'print_invoice_payment', 'encoded_sale_price',
|
||||
'delivery_product.list_price', 'delivery_product.code',
|
||||
'delivery_product.name', 'allow_discount_handle',
|
||||
'cache_products_local', 'show_party_categories',
|
||||
'print_lines_product'
|
||||
]
|
||||
},
|
||||
'party.address': {
|
||||
'rec_name': 'name',
|
||||
'fields': [
|
||||
'name', 'street'
|
||||
]
|
||||
},
|
||||
'sale.shop.table': {
|
||||
'rec_name': 'name',
|
||||
'fields': ['id', 'name', 'state', 'sale']
|
||||
},
|
||||
'account.tax': {
|
||||
'rec_name': 'name',
|
||||
'fields': [
|
||||
'name'
|
||||
]
|
||||
},
|
||||
'account.statement': {
|
||||
'rec_name': 'name',
|
||||
'fields': [
|
||||
'name', 'expenses_daily', 'journal', 'turn',
|
||||
]
|
||||
},
|
||||
'sale_pos.expenses_daily': {
|
||||
'rec_name': 'invoice_number',
|
||||
'fields': [
|
||||
'amount', 'statement', 'invoice_number', 'reference', 'party',
|
||||
]
|
||||
},
|
||||
'commission': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': [
|
||||
'name'
|
||||
]
|
||||
},
|
||||
'product.price_list': {
|
||||
'rec_name': 'rec_name',
|
||||
'fields': [
|
||||
'name'
|
||||
|
|
17
app/proxy.py
17
app/proxy.py
|
@ -8,9 +8,9 @@ import orjson as json
|
|||
# import simplejson as json
|
||||
# import requests
|
||||
try:
|
||||
from app.models import MODELS
|
||||
from app.models import MODELS_RESTAURANT, MODELS_RETAIL
|
||||
except:
|
||||
from models import MODELS
|
||||
from models import MODELS_RESTAURANT, MODELS_RETAIL
|
||||
|
||||
try:
|
||||
from app.commons.common import slugify, file_open
|
||||
|
@ -51,7 +51,12 @@ class Model(object):
|
|||
self.conn = HTTPConnection
|
||||
else:
|
||||
self.conn = HTTPSConnection
|
||||
_model = MODELS.get(model)
|
||||
|
||||
enviroment = ctx['params']['enviroment']
|
||||
if enviroment == 'retail':
|
||||
_model = MODELS_RETAIL.get(model)
|
||||
else:
|
||||
_model = MODELS_RESTAURANT.get(model)
|
||||
self.fields = None
|
||||
if fields:
|
||||
self.fields = fields
|
||||
|
@ -68,6 +73,12 @@ class Model(object):
|
|||
self.ctx.update(ctx)
|
||||
if not fields:
|
||||
fields = self.fields
|
||||
fields_ = self.get_connection('POST', '/fields_get', {
|
||||
'context': self.ctx,
|
||||
'model': self.model,
|
||||
'fields_names': fields,
|
||||
})
|
||||
print(list(fields_.keys()), 'and', fields)
|
||||
args_ = {
|
||||
'model': self.model,
|
||||
'domain': domain,
|
||||
|
|
Loading…
Reference in New Issue