Skip to content

Commit bfaf50c

Browse files
author
lorddeveloper
committed
1 parent d5de7e1 commit bfaf50c

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

src/masoniteorm/query/QueryBuilder.py

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1487,19 +1487,31 @@ def increment(self, column, value=1):
14871487

14881488
if model and model.is_loaded():
14891489
self.where(model.get_primary_key(), model.get_primary_key_value())
1490-
additional.update({model.get_primary_key(): model.get_primary_key_value()})
1490+
additional.update({
1491+
model.get_primary_key(): model.get_primary_key_value(),
1492+
column: int(model.__original_attributes__.get(column, 0)) + abs(value)
1493+
})
14911494

1495+
model.fill(additional)
14921496
self.observe_events(model, "updating")
14931497

14941498
self._updates += (
14951499
UpdateQueryExpression(column, value, update_type="increment"),
14961500
)
1497-
14981501
self.set_action("update")
1499-
results = self.new_connection().query(self.to_qmark(), self._bindings)
1502+
1503+
if self.dry:
1504+
return self
1505+
1506+
result = self.new_connection().query(self.to_qmark(), self._bindings)
15001507
processed_results = self.get_processor().get_column_value(
1501-
self, column, results, id_key, id_value
1508+
self, column, result, id_key, id_value
15021509
)
1510+
if model:
1511+
additional[column] = processed_results
1512+
model.fill_original(additional)
1513+
self.observe_events(model, "updated")
1514+
15031515
return processed_results
15041516

15051517
def decrement(self, column, value=1):
@@ -1526,19 +1538,32 @@ def decrement(self, column, value=1):
15261538

15271539
if model and model.is_loaded():
15281540
self.where(model.get_primary_key(), model.get_primary_key_value())
1529-
additional.update({model.get_primary_key(): model.get_primary_key_value()})
1541+
additional.update({
1542+
model.get_primary_key(): model.get_primary_key_value(),
1543+
column: int(model.__original_attributes__.get(column, 0)) - abs(value)
1544+
})
15301545

1546+
model.fill(additional)
15311547
self.observe_events(model, "updating")
15321548

15331549
self._updates += (
15341550
UpdateQueryExpression(column, value, update_type="decrement"),
15351551
)
15361552

15371553
self.set_action("update")
1554+
1555+
if self.dry:
1556+
return self
1557+
15381558
result = self.new_connection().query(self.to_qmark(), self._bindings)
15391559
processed_results = self.get_processor().get_column_value(
15401560
self, column, result, id_key, id_value
15411561
)
1562+
1563+
if model:
1564+
additional[column] = processed_results
1565+
model.fill_original(additional)
1566+
self.observe_events(model, "updated")
15421567
return processed_results
15431568

15441569
def sum(self, column):

0 commit comments

Comments
 (0)