Minor fix discount
This commit is contained in:
parent
ca52dfc105
commit
239c5c1403
|
@ -1271,13 +1271,29 @@ class MainWindow(FrontWindow):
|
||||||
if discount and discount.isdigit():
|
if discount and discount.isdigit():
|
||||||
self.validate_discount(discount)
|
self.validate_discount(discount)
|
||||||
|
|
||||||
def validate_discount(self, record):
|
def validate_discount(self, rec):
|
||||||
if self.model_sale_lines.rowCount() > 0:
|
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]
|
lines = [line['id'] for line in self.model_sale_lines._data]
|
||||||
res = self.set_discount(int(record['discount']), lines)
|
res = self.set_discount(discount, lines)
|
||||||
if not res:
|
|
||||||
self.message_bar.set('discount_not_valid')
|
if not res:
|
||||||
return False
|
self.message_bar.set('discount_not_valid')
|
||||||
|
return False
|
||||||
|
|
||||||
def _print_order(self, sale_id, kind, reversion=False):
|
def _print_order(self, sale_id, kind, reversion=False):
|
||||||
result = False
|
result = False
|
||||||
|
@ -1683,7 +1699,8 @@ class MainWindow(FrontWindow):
|
||||||
def on_selected_discount(self, discount):
|
def on_selected_discount(self, discount):
|
||||||
self.dialog_auth_discount.close()
|
self.dialog_auth_discount.close()
|
||||||
self.dialog_control_panel.close()
|
self.dialog_control_panel.close()
|
||||||
print('Discount/..........', discount)
|
self.dialog_fixed_discount.close()
|
||||||
|
self.dialog_product_edit.close()
|
||||||
if self._state == 'payment':
|
if self._state == 'payment':
|
||||||
dialog = self.dialog('cant_add_discount')
|
dialog = self.dialog('cant_add_discount')
|
||||||
dialog.exec_()
|
dialog.exec_()
|
||||||
|
@ -2289,8 +2306,9 @@ class MainWindow(FrontWindow):
|
||||||
def on_change_line_selected(self, key):
|
def on_change_line_selected(self, key):
|
||||||
self.table_sale_lines.moved_selection(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_fixed_discount.exec_()
|
||||||
|
self.dialog_addition_product.close()
|
||||||
|
|
||||||
def action_addition_line(self):
|
def action_addition_line(self):
|
||||||
if not self._current_line:
|
if not self._current_line:
|
||||||
|
@ -2330,7 +2348,7 @@ class MainWindow(FrontWindow):
|
||||||
if self._config['tip_product']['code'] == removed_item['product.code']:
|
if self._config['tip_product']['code'] == removed_item['product.code']:
|
||||||
self.Sale.write([self._sale['id']], {'tip': None})
|
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
|
res = False
|
||||||
try:
|
try:
|
||||||
value = round(float(str(eval_value)), 6)
|
value = round(float(str(eval_value)), 6)
|
||||||
|
@ -2347,7 +2365,7 @@ class MainWindow(FrontWindow):
|
||||||
|
|
||||||
records = self.SaleLine.faster_set_discount({
|
records = self.SaleLine.faster_set_discount({
|
||||||
'line_ids': target_lines,
|
'line_ids': target_lines,
|
||||||
'value': value
|
'value': value,
|
||||||
})
|
})
|
||||||
for rec in records:
|
for rec in records:
|
||||||
self.model_sale_lines.update_record(rec)
|
self.model_sale_lines.update_record(rec)
|
||||||
|
@ -2618,7 +2636,6 @@ class MainWindow(FrontWindow):
|
||||||
if unit_price:
|
if unit_price:
|
||||||
diff = abs(current_unit_price - float(unit_price))
|
diff = abs(current_unit_price - float(unit_price))
|
||||||
if diff > 1:
|
if diff > 1:
|
||||||
# unit_price = self.state_line.pop('unit_price')
|
|
||||||
self._sign = '/'
|
self._sign = '/'
|
||||||
self._process_price(unit_price)
|
self._process_price(unit_price)
|
||||||
self._sign = None
|
self._sign = None
|
||||||
|
|
Loading…
Reference in New Issue