@@ -1487,19 +1487,31 @@ def increment(self, column, value=1):
1487
1487
1488
1488
if model and model .is_loaded ():
1489
1489
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
+ })
1491
1494
1495
+ model .fill (additional )
1492
1496
self .observe_events (model , "updating" )
1493
1497
1494
1498
self ._updates += (
1495
1499
UpdateQueryExpression (column , value , update_type = "increment" ),
1496
1500
)
1497
-
1498
1501
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 )
1500
1507
processed_results = self .get_processor ().get_column_value (
1501
- self , column , results , id_key , id_value
1508
+ self , column , result , id_key , id_value
1502
1509
)
1510
+ if model :
1511
+ additional [column ] = processed_results
1512
+ model .fill_original (additional )
1513
+ self .observe_events (model , "updated" )
1514
+
1503
1515
return processed_results
1504
1516
1505
1517
def decrement (self , column , value = 1 ):
@@ -1526,19 +1538,32 @@ def decrement(self, column, value=1):
1526
1538
1527
1539
if model and model .is_loaded ():
1528
1540
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
+ })
1530
1545
1546
+ model .fill (additional )
1531
1547
self .observe_events (model , "updating" )
1532
1548
1533
1549
self ._updates += (
1534
1550
UpdateQueryExpression (column , value , update_type = "decrement" ),
1535
1551
)
1536
1552
1537
1553
self .set_action ("update" )
1554
+
1555
+ if self .dry :
1556
+ return self
1557
+
1538
1558
result = self .new_connection ().query (self .to_qmark (), self ._bindings )
1539
1559
processed_results = self .get_processor ().get_column_value (
1540
1560
self , column , result , id_key , id_value
1541
1561
)
1562
+
1563
+ if model :
1564
+ additional [column ] = processed_results
1565
+ model .fill_original (additional )
1566
+ self .observe_events (model , "updated" )
1542
1567
return processed_results
1543
1568
1544
1569
def sum (self , column ):
0 commit comments