fix setfocus in payment

This commit is contained in:
Wilson Gomez 2023-01-23 11:05:41 -05:00
parent a93043c7a1
commit 1321d71bcb
4 changed files with 246 additions and 18 deletions

View File

@ -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:

View File

@ -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)

View File

@ -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'

View File

@ -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,