Minor fix discount

This commit is contained in:
Oscar Alvarez 2021-01-24 16:22:40 -05:00
parent ca52dfc105
commit 239c5c1403
1 changed files with 28 additions and 11 deletions

View File

@ -1271,13 +1271,29 @@ class MainWindow(FrontWindow):
if discount and discount.isdigit():
self.validate_discount(discount)
def validate_discount(self, record):
if self.model_sale_lines.rowCount() > 0:
def validate_discount(self, rec):
if self.model_sale_lines.rowCount() == 0:
return
type_ = rec['type_discount']
discount = int(rec['discount'])
if type_ == 'fixed':
sale_line, = self.SaleLine.find([
('id', '=', self._current_line_id)
])
price_w_tax = sale_line['product']['sale_price_w_tax']
price = price_w_tax - discount
if price < 0:
price = 0
res = self.set_unit_price(price)
else:
# If type is percentage will apply to all lines
lines = [line['id'] for line in self.model_sale_lines._data]
res = self.set_discount(int(record['discount']), lines)
if not res:
self.message_bar.set('discount_not_valid')
return False
res = self.set_discount(discount, lines)
if not res:
self.message_bar.set('discount_not_valid')
return False
def _print_order(self, sale_id, kind, reversion=False):
result = False
@ -1683,7 +1699,8 @@ class MainWindow(FrontWindow):
def on_selected_discount(self, discount):
self.dialog_auth_discount.close()
self.dialog_control_panel.close()
print('Discount/..........', discount)
self.dialog_fixed_discount.close()
self.dialog_product_edit.close()
if self._state == 'payment':
dialog = self.dialog('cant_add_discount')
dialog.exec_()
@ -2289,8 +2306,9 @@ class MainWindow(FrontWindow):
def on_change_line_selected(self, key):
self.table_sale_lines.moved_selection(key)
def action_discount_line(self):
def action_discount_line(self, record):
self.dialog_fixed_discount.exec_()
self.dialog_addition_product.close()
def action_addition_line(self):
if not self._current_line:
@ -2330,7 +2348,7 @@ class MainWindow(FrontWindow):
if self._config['tip_product']['code'] == removed_item['product.code']:
self.Sale.write([self._sale['id']], {'tip': None})
def set_discount(self, eval_value, lines_ids=[]):
def set_discount(self, eval_value, lines_ids=[], type_='percentage'):
res = False
try:
value = round(float(str(eval_value)), 6)
@ -2347,7 +2365,7 @@ class MainWindow(FrontWindow):
records = self.SaleLine.faster_set_discount({
'line_ids': target_lines,
'value': value
'value': value,
})
for rec in records:
self.model_sale_lines.update_record(rec)
@ -2618,7 +2636,6 @@ class MainWindow(FrontWindow):
if unit_price:
diff = abs(current_unit_price - float(unit_price))
if diff > 1:
# unit_price = self.state_line.pop('unit_price')
self._sign = '/'
self._process_price(unit_price)
self._sign = None