Minor fix discount
This commit is contained in:
parent
ca52dfc105
commit
239c5c1403
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue