trex-model 1.6.4__tar.gz → 1.6.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of trex-model might be problematic. Click here for more details.

Files changed (66) hide show
  1. {trex_model-1.6.4 → trex_model-1.6.6}/PKG-INFO +1 -1
  2. {trex_model-1.6.4 → trex_model-1.6.6}/setup.py +1 -1
  3. {trex_model-1.6.4 → trex_model-1.6.6}/trex_model.egg-info/PKG-INFO +1 -1
  4. {trex_model-1.6.4 → trex_model-1.6.6}/trex_model.egg-info/SOURCES.txt +1 -0
  5. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/customer_models.py +4 -0
  6. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/helper/reward_transaction_helper.py +15 -22
  7. trex_model-1.6.6/trexmodel/models/datastore/helper/sales_transaction_helpers.py +33 -0
  8. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/transaction_models.py +34 -149
  9. {trex_model-1.6.4 → trex_model-1.6.6}/LICENSE +0 -0
  10. {trex_model-1.6.4 → trex_model-1.6.6}/MANIFEST.in +0 -0
  11. {trex_model-1.6.4 → trex_model-1.6.6}/README.md +0 -0
  12. {trex_model-1.6.4 → trex_model-1.6.6}/setup.cfg +0 -0
  13. {trex_model-1.6.4 → trex_model-1.6.6}/trex_model.egg-info/dependency_links.txt +0 -0
  14. {trex_model-1.6.4 → trex_model-1.6.6}/trex_model.egg-info/requires.txt +0 -0
  15. {trex_model-1.6.4 → trex_model-1.6.6}/trex_model.egg-info/top_level.txt +0 -0
  16. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/__init__.py +0 -0
  17. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/conf.py +0 -0
  18. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/__init__.py +0 -0
  19. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/__init__.py +0 -0
  20. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/admin_models.py +0 -0
  21. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/analytic_models.py +0 -0
  22. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/app_models.py +0 -0
  23. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/coporate_models.py +0 -0
  24. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/customer_model_helpers.py +0 -0
  25. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/fb_subsriber_models.py +0 -0
  26. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/helper/__init__.py +0 -0
  27. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/helper/reward_model_helpers.py +0 -0
  28. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/import_models.py +0 -0
  29. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/inventory_model.py +0 -0
  30. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/loyalty_models.py +0 -0
  31. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/lucky_draw_models.py +0 -0
  32. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/marketing_models.py +0 -0
  33. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/membership_models.py +0 -0
  34. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/merchant_models.py +0 -0
  35. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/merchant_promotion_models.py +0 -0
  36. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/message_model_helper.py +0 -0
  37. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/message_models.py +0 -0
  38. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/model_decorators.py +0 -0
  39. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/ndb_models.py +0 -0
  40. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/partnership_models.py +0 -0
  41. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/pos_models.py +0 -0
  42. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/prepaid_models.py +0 -0
  43. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/product_models.py +0 -0
  44. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/program_models.py +0 -0
  45. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/rating_models.py +0 -0
  46. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/recruit_models.py +0 -0
  47. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/redeem_models.py +0 -0
  48. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/redemption_catalogue_models.py +0 -0
  49. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/referral_program_model.py +0 -0
  50. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/reward_models.py +0 -0
  51. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/spending_base_program_model.py +0 -0
  52. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/system_models.py +0 -0
  53. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/task_models.py +0 -0
  54. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/test_models.py +0 -0
  55. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/user_models.py +0 -0
  56. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/datastore/voucher_models.py +0 -0
  57. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/merchant_helpers.py +0 -0
  58. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/model_decorator.py +0 -0
  59. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/models/prepaid_helpers.py +0 -0
  60. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/pos_conf.py +0 -0
  61. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/program_conf.py +0 -0
  62. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/utils/__init__.py +0 -0
  63. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/utils/gcloud/__init__.py +0 -0
  64. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/utils/gcloud/datastore_util.py +0 -0
  65. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/utils/model/__init__.py +0 -0
  66. {trex_model-1.6.4 → trex_model-1.6.6}/trexmodel/utils/model/model_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: trex_model
3
- Version: 1.6.4
3
+ Version: 1.6.6
4
4
  Summary: TRex database module package
5
5
  Home-page: https://bitbucket.org/lokjac/trex-model
6
6
  Author: Jack Lok
@@ -3,7 +3,7 @@ with open("README.md", "r") as fh:
3
3
  long_description = fh.read()
4
4
  setuptools.setup(
5
5
  name='trex_model',
6
- version='1.6.4',
6
+ version='1.6.6',
7
7
  author="Jack Lok",
8
8
  author_email="sglok77@gmail.com",
9
9
  description="TRex database module package",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: trex-model
3
- Version: 1.6.4
3
+ Version: 1.6.6
4
4
  Summary: TRex database module package
5
5
  Home-page: https://bitbucket.org/lokjac/trex-model
6
6
  Author: Jack Lok
@@ -57,6 +57,7 @@ trexmodel/models/datastore/voucher_models.py
57
57
  trexmodel/models/datastore/helper/__init__.py
58
58
  trexmodel/models/datastore/helper/reward_model_helpers.py
59
59
  trexmodel/models/datastore/helper/reward_transaction_helper.py
60
+ trexmodel/models/datastore/helper/sales_transaction_helpers.py
60
61
  trexmodel/utils/__init__.py
61
62
  trexmodel/utils/gcloud/__init__.py
62
63
  trexmodel/utils/gcloud/datastore_util.py
@@ -87,6 +87,10 @@ class Customer(BaseNModel, DictModel, FullTextSearchable):
87
87
 
88
88
  ]
89
89
 
90
+ @property
91
+ def customer_key(self):
92
+ return self.key_in_str
93
+
90
94
  @property
91
95
  def is_any_entitled_voucher_active(self):
92
96
 
@@ -19,14 +19,14 @@ from trexmodel.models.datastore.customer_model_helpers import update_customer_en
19
19
  update_customer_entiteld_voucher_summary_with_customer_new_voucher,\
20
20
  update_prepaid_summary_with_reverted_prepaid,\
21
21
  update_reward_summary_with_reverted_reward
22
- from trexanalytics.bigquery_upstream_data_config import create_merchant_customer_reward_reverted_upstream_for_merchant,\
23
- create_merchant_customer_transaction_upstream_for_merchant,\
22
+ from trexanalytics.bigquery_upstream_data_config import create_merchant_customer_transaction_upstream_for_merchant,\
24
23
  create_merchant_customer_redemption_upstream_for_merchant,\
25
24
  create_merchant_customer_prepaid_upstream_for_merchant,\
26
25
  create_merchant_customer_redemption_reverted_upstream_for_merchant,\
27
26
  create_revert_entitled_customer_voucher_upstream_for_merchant,\
28
27
  create_redeemed_customer_voucher_to_upstream_for_merchant,\
29
- create_merchant_sales_transaction_upstream_for_merchant
28
+ create_merchant_sales_transaction_upstream_for_merchant,\
29
+ create_merchant_customer_reward_upstream_for_merchant
30
30
  from trexmodel.models.datastore.membership_models import MerchantTierMembership
31
31
  from trexmodel.models.datastore.transaction_models import CustomerTransaction,\
32
32
  SalesTransaction
@@ -152,11 +152,10 @@ def create_sales_transaction(transact_outlet=None, sales_amount=.0, tax_amount=.
152
152
  transact_by = transact_by,
153
153
 
154
154
  transact_datetime = transact_datetime,
155
- promotion_code = promotion_code,
156
155
 
157
156
  )
158
157
 
159
- create_merchant_sales_transaction_upstream_for_merchant(sales_transaction, streamed_datetime=transact_datetime)
158
+ create_merchant_sales_transaction_upstream_for_merchant(sales_transaction,)
160
159
 
161
160
  return sales_transaction
162
161
 
@@ -772,7 +771,7 @@ def prepaid_payment_transaction(customer, redeem_outlet=None, reward_format=None
772
771
 
773
772
  if customer_redemption:
774
773
  create_payment_message(customer_redemption)
775
- create_merchant_customer_redemption_upstream_for_merchant(customer_redemption, streamed_datetime=redeemed_datetime)
774
+ create_merchant_customer_redemption_upstream_for_merchant(customer_redemption, )
776
775
 
777
776
  return customer_redemption
778
777
 
@@ -832,7 +831,8 @@ def revert_transaction(transaction_details, reverted_by, reverted_datetime=None,
832
831
  merchant_acct = transaction_details.transact_merchant_acct
833
832
  transaction_id = transaction_details.transaction_id
834
833
  customer_acct = transaction_details.transact_customer_acct
835
-
834
+ is_from_instant_transaction = transaction_details.is_from_instant_transaction
835
+
836
836
  if transaction_details.is_membership_purchase:
837
837
  #remove membership
838
838
 
@@ -942,18 +942,12 @@ def revert_transaction(transaction_details, reverted_by, reverted_datetime=None,
942
942
 
943
943
  create_merchant_customer_transaction_upstream_for_merchant(transaction_details, Reverted=True)
944
944
 
945
- if transaction_details.is_sales_transaction:
945
+ if transaction_details.is_from_instant_transaction:
946
946
  sales_transaction = SalesTransaction.get_by_transaction_id(transaction_id)
947
947
 
948
948
  if sales_transaction:
949
- sales_transaction.is_revert = True
950
- sales_transaction.reverted_datetime = reverted_datetime
951
- sales_transaction.reverted_by = reverted_by_key
952
- sales_transaction.reverted_by_username = reverted_by.username
949
+ sales_transaction.used = False
953
950
  sales_transaction.put()
954
-
955
- create_merchant_sales_transaction_upstream_for_merchant(sales_transaction, Reverted=True)
956
-
957
951
 
958
952
  if is_stamp_entitled_in_transaction or is_point_entitled_in_transaction or is_voucher_entitled_in_transaction or is_prepaid_entitled_in_transaction:
959
953
  for p in reverting_point_details_list:
@@ -966,7 +960,7 @@ def revert_transaction(transaction_details, reverted_by, reverted_datetime=None,
966
960
 
967
961
  customer_reward_summary = update_reward_summary_with_reverted_reward(customer_reward_summary, p.to_reward_summary())
968
962
  if create_upstream:
969
- create_merchant_customer_reward_reverted_upstream_for_merchant(transaction_details, p, reverted_datetime)
963
+ create_merchant_customer_reward_upstream_for_merchant(transaction_details, p, Reverted=True)
970
964
 
971
965
 
972
966
  for p in reverting_stamp_details_list:
@@ -979,7 +973,7 @@ def revert_transaction(transaction_details, reverted_by, reverted_datetime=None,
979
973
 
980
974
  customer_reward_summary = update_reward_summary_with_reverted_reward(customer_reward_summary, p.to_reward_summary())
981
975
  if create_upstream:
982
- create_merchant_customer_reward_reverted_upstream_for_merchant(transaction_details, p, reverted_datetime)
976
+ create_merchant_customer_reward_upstream_for_merchant(transaction_details, p, Reverted=True)
983
977
 
984
978
  for p in reverting_vouchers_list:
985
979
  if p.is_valid:
@@ -999,7 +993,7 @@ def revert_transaction(transaction_details, reverted_by, reverted_datetime=None,
999
993
 
1000
994
  voucher_reward_brief = VoucherRewardDetailsForUpstreamData(voucher_key, 1, expiry_date, rewarded_datetime)
1001
995
  if create_upstream:
1002
- create_merchant_customer_reward_reverted_upstream_for_merchant(transaction_details, voucher_reward_brief, reverted_datetime)
996
+ create_merchant_customer_reward_upstream_for_merchant(transaction_details, voucher_reward_brief, Reverted=True)
1003
997
 
1004
998
  for p in reverting_prepaid_list:
1005
999
  if p.is_valid:
@@ -1011,8 +1005,7 @@ def revert_transaction(transaction_details, reverted_by, reverted_datetime=None,
1011
1005
 
1012
1006
  customer_prepaid_summary = update_prepaid_summary_with_reverted_prepaid(customer_prepaid_summary, p.to_prepaid_summary())
1013
1007
  if create_upstream:
1014
- #create_merchant_customer_prepaid_reverted_upstream_for_merchant(transaction_details, p, reverted_datetime)
1015
- create_merchant_customer_reward_reverted_upstream_for_merchant(transaction_details, p, reverted_datetime)
1008
+ create_merchant_customer_prepaid_upstream_for_merchant(transaction_details, p, Reverted=True)
1016
1009
 
1017
1010
 
1018
1011
 
@@ -1198,8 +1191,8 @@ def create_topup_prepaid_transaction(customer, prepaid_program, topup_outlet=Non
1198
1191
  update_customer_kpi_summary_and_transact_summary(customer, customer_transaction)
1199
1192
 
1200
1193
  create_transaction_message(customer_transaction)
1201
- create_merchant_customer_prepaid_upstream_for_merchant(customer_transaction, prepaid_topup_reward, streamed_datetime=transact_datetime)
1202
- create_merchant_customer_transaction_upstream_for_merchant(customer_transaction, streamed_datetime=transact_datetime)
1194
+ create_merchant_customer_prepaid_upstream_for_merchant(customer_transaction, prepaid_topup_reward, )
1195
+ create_merchant_customer_transaction_upstream_for_merchant(customer_transaction, )
1203
1196
 
1204
1197
  return (customer_transaction, prepaid_summary)
1205
1198
 
@@ -0,0 +1,33 @@
1
+ '''
2
+ Created on 23 Jun 2025
3
+
4
+ @author: jacklok
5
+ '''
6
+ import logging
7
+ from datetime import datetime
8
+ from trexanalytics.bigquery_upstream_data_config import create_merchant_sales_transaction_upstream_for_merchant
9
+
10
+ #logger = logging.getLogger('helper')
11
+ logger = logging.getLogger('target_debug')
12
+
13
+ def revert_sales_transaction(transaction_details, reverted_by, reverted_datetime=None):
14
+
15
+ if transaction_details.is_revert==False and transaction_details.allow_to_revert and transaction_details.used==False:
16
+ logger.info('going to check for sales transaction revert')
17
+
18
+ if reverted_datetime is None:
19
+ reverted_datetime = datetime.utcnow()
20
+
21
+ if reverted_by:
22
+ transaction_details.reverted_by = reverted_by.create_ndb_key()
23
+ transaction_details.reverted_by_username = reverted_by.username
24
+
25
+ transaction_details.reverted_datetime = reverted_datetime
26
+ transaction_details.is_revert = True
27
+ transaction_details.put()
28
+
29
+ create_merchant_sales_transaction_upstream_for_merchant(transaction_details, Reverted=True)
30
+
31
+ else:
32
+ logger.error('Sales transaction is either reverted or not allow to revert or it has been claimed by customer')
33
+ raise Exception('Sales transaction is either reverted or not allow to revert or it has been claimed by customer')
@@ -185,29 +185,45 @@ class SalesTransaction(BaseNModel, DictModel):
185
185
 
186
186
  return customer_transaction
187
187
 
188
- @staticmethod
189
- def list_merchant_transaction(transact_merchant, offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False, reverse_order=True):
188
+ @classmethod
189
+ def list_outlet_transaction(cls, transact_outlet, offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False, reverse_order=True):
190
190
  if reverse_order:
191
- query = SalesTransaction.query(ndb.AND(SalesTransaction.transact_merchant==transact_merchant.create_ndb_key()))
191
+ query = cls.query(ndb.AND(cls.transact_outlet==transact_outlet.create_ndb_key())).order(-cls.transact_datetime)
192
192
  else:
193
- query = SalesTransaction.query(ndb.AND(SalesTransaction.transact_merchant==transact_merchant.create_ndb_key()))
193
+ query = cls.query(ndb.AND(cls.transact_outlet==transact_outlet.create_ndb_key())).order(cls.transact_datetime)
194
194
 
195
- return SalesTransaction.list_all_with_condition_query(query, offset=offset, limit=limit, start_cursor=start_cursor, return_with_cursor=return_with_cursor)
195
+ return cls.list_all_with_condition_query(query, offset=offset, limit=limit, start_cursor=start_cursor, return_with_cursor=return_with_cursor)
196
196
 
197
- @staticmethod
198
- def count_by_merchant(transact_merchant, limit=conf.MAX_FETCH_RECORD):
199
- query = SalesTransaction.query(ndb.AND(SalesTransaction.transact_merchant==transact_merchant.create_ndb_key()))
197
+ @classmethod
198
+ def count_outlet_transaction(cls, transact_outlet, limit=conf.MAX_FETCH_RECORD):
199
+ query = cls.query(ndb.AND(cls.transact_outlet==transact_outlet.create_ndb_key()))
200
200
 
201
- return SalesTransaction.count_with_condition_query(query, limit)
201
+ return cls.count_with_condition_query(query, limit=limit)
202
202
 
203
- @staticmethod
204
- def list(offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False, reverse_order=True):
203
+
204
+ @classmethod
205
+ def list_merchant_transaction(cls, transact_merchant, offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False, reverse_order=True):
206
+ if reverse_order:
207
+ query = cls.query(ndb.AND(cls.transact_merchant==transact_merchant.create_ndb_key()))
208
+ else:
209
+ query = cls.query(ndb.AND(cls.transact_merchant==transact_merchant.create_ndb_key()))
210
+
211
+ return cls.list_all_with_condition_query(query, offset=offset, limit=limit, start_cursor=start_cursor, return_with_cursor=return_with_cursor)
212
+
213
+ @classmethod
214
+ def count_by_merchant(cls, transact_merchant, limit=conf.MAX_FETCH_RECORD):
215
+ query = cls.query(ndb.AND(cls.transact_merchant==transact_merchant.create_ndb_key()))
216
+
217
+ return cls.count_with_condition_query(query, limit)
218
+
219
+ @classmethod
220
+ def list(cls, offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False, reverse_order=True):
205
221
  if reverse_order:
206
- query = SalesTransaction.query().order(-SalesTransaction.transact_datetime)
222
+ query = cls.query().order(-cls.transact_datetime)
207
223
  else:
208
- query = SalesTransaction.query().order(SalesTransaction.transact_datetime)
224
+ query = cls.query().order(cls.transact_datetime)
209
225
 
210
- return SalesTransaction.list_all_with_condition_query(query, offset=offset, limit=limit, start_cursor=start_cursor, return_with_cursor=return_with_cursor)
226
+ return cls.list_all_with_condition_query(query, offset=offset, limit=limit, start_cursor=start_cursor, return_with_cursor=return_with_cursor)
211
227
 
212
228
  @classmethod
213
229
  def list_transaction_by_date(cls, transact_date, transact_outlet=None, including_reverted_transaction=True, offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False):
@@ -332,7 +348,7 @@ class CustomerTransaction(SalesTransaction):
332
348
  'transact_datetime', 'created_datetime', 'transact_outlet_key', 'is_revert', 'reverted_datetime', 'reverted_by_username',
333
349
  'transact_by', 'transact_by_username', 'is_reward_redeemed', 'is_sales_transaction', 'allow_to_revert',
334
350
  'is_membership_purchase', 'purchased_merchant_membership_key', 'is_tier_membership_upgraded', 'upgraded_merchant_tier_membership_key',
335
- 'is_rating_review_enabled', 'promotion_code', 'is_partner_transaction',
351
+ 'is_rating_review_enabled', 'promotion_code', 'is_partner_transaction', 'is_from_instant_transaction',
336
352
  ]
337
353
 
338
354
  def to_transaction_details_json(self):
@@ -511,9 +527,9 @@ class CustomerTransaction(SalesTransaction):
511
527
 
512
528
  transact_datetime = sales_transaction.transact_datetime,
513
529
  is_from_instant_transaction = True,
514
- is_rating_review_enabled = is_rating_review_enabled
530
+ is_rating_review_enabled = is_rating_review_enabled,
515
531
  #is_sales_transaction = True,
516
- #allow_to_revert = True,
532
+ allow_to_revert = False,
517
533
  #is_membership_purchase = False,
518
534
  #is_membership_renew = False,
519
535
  #purchased_merchant_membership = False,
@@ -589,105 +605,7 @@ class CustomerTransaction(SalesTransaction):
589
605
  #customer.put()
590
606
 
591
607
  return customer_transaction
592
- '''
593
- def revert(self, customer_acct, reverted_by):
594
- transaction_id = self.transaction_id
595
-
596
- entitled_point_details_list = CustomerPointReward.list_by_transaction_id(transaction_id)
597
-
598
- entitled_stamp_details_list = CustomerStampReward.list_by_transaction_id(transaction_id)
599
-
600
- entiteld_vouchers_list = CustomerEntitledVoucher.list_by_transaction_id(transaction_id)
601
-
602
- entitled_prepaid_list = CustomerPrepaidReward.list_by_transaction_id(transaction_id)
603
-
604
- is_transaction_reward_used = False
605
-
606
- customer_reward_summary = customer_acct.reward_summary or {}
607
- entitled_voucher_summary = customer_acct.entitled_voucher_summary or {}
608
-
609
- logger.debug('revert: transaction_id=%s', transaction_id)
610
- logger.debug('revert: entitled_point_details_list count=%s', len(entitled_point_details_list))
611
- logger.debug('revert: entitled_stamp_details_list count=%s', len(entitled_stamp_details_list))
612
- logger.debug('revert: entiteld_vouchers_list count=%s', len(entiteld_vouchers_list))
613
-
614
- for p in entitled_point_details_list:
615
- if p.is_used:
616
- is_transaction_reward_used = True
617
- break
618
-
619
- if is_transaction_reward_used is False:
620
- for p in entitled_stamp_details_list:
621
- if p.is_used:
622
- is_transaction_reward_used = True
623
- break
624
-
625
- if is_transaction_reward_used is False:
626
- for p in entiteld_vouchers_list:
627
- if p.is_used:
628
- is_transaction_reward_used = True
629
- break
630
-
631
- logger.debug('revert: is_transaction_reward_used=%s', is_transaction_reward_used)
632
-
633
- if is_transaction_reward_used is False:
634
-
635
- logger.debug('Going to revert transqction')
636
- reverted_by_key = reverted_by.create_ndb_key()
637
-
638
- reverted_datetime = datetime.now()
639
- self.is_revert = True
640
- self.reverted_datetime = reverted_datetime
641
- self.reverted_by = reverted_by_key
642
- self.reverted_by_username = reverted_by.username
643
- self.put()
644
-
645
- for p in entitled_point_details_list:
646
- if p.is_valid:
647
- customer_reward_summary = update_reward_summary_with_reverted_reward(customer_reward_summary, p.to_reward_summary())
648
- p.status = program_conf.REWARD_STATUS_REVERTED
649
- p.reverted_datetime = reverted_datetime
650
- p.reverted_by = reverted_by_key
651
- p.reverted_by_username = reverted_by.username
652
- p.put()
653
-
654
-
655
- for p in entitled_stamp_details_list:
656
- if p.is_valid:
657
- customer_reward_summary = update_reward_summary_with_reverted_reward(customer_reward_summary, p.to_reward_summary())
658
- p.status = program_conf.REWARD_STATUS_REVERTED
659
- p.reverted_datetime = reverted_datetime
660
- p.reverted_by = reverted_by_key
661
- p.reverted_by_username = reverted_by.username
662
- p.put()
663
-
664
- for p in entiteld_vouchers_list:
665
- if p.is_valid:
666
- p.status = program_conf.REWARD_STATUS_REVERTED
667
- p.reverted_datetime = reverted_datetime
668
- p.reverted_by = reverted_by_key
669
- p.reverted_by_username = reverted_by.username
670
- p.put()
671
-
672
- entitled_voucher_summary = update_customer_entiteld_voucher_summary_after_reverted_voucher(entitled_voucher_summary, p)
673
-
674
- updated_voucher_summary = {}
675
-
676
- logger.debug('revert transaction debug: entitled_voucher_summary=%s', entitled_voucher_summary)
677
-
678
- for voucher_key, details in entitled_voucher_summary.items():
679
- if len(details.get('redeem_info_list'))>0:
680
- updated_voucher_summary[voucher_key] = details
681
-
682
- customer_acct.reward_summary = customer_reward_summary
683
- customer_acct.entitled_voucher_summary = updated_voucher_summary or {}
684
- customer_acct.put()
685
-
686
- return True
687
-
688
- else:
689
- raise Exception('Transaction reward have been used')
690
- '''
608
+
691
609
  @staticmethod
692
610
  def list_customer_transaction(customer_acct, offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False, reverse_order=True, keys_only=False):
693
611
  if keys_only:
@@ -706,45 +624,12 @@ class CustomerTransaction(SalesTransaction):
706
624
  query = CustomerTransaction.query(ancestor = customer_acct.create_ndb_key())
707
625
  CustomerTransaction.delete_multiples(query)
708
626
 
709
- @staticmethod
710
- def list(offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False, reverse_order=True):
711
- if reverse_order:
712
- query = CustomerTransaction.query().order(-CustomerTransaction.transact_datetime)
713
- else:
714
- query = CustomerTransaction.query().order(CustomerTransaction.transact_datetime)
715
-
716
- return CustomerTransaction.list_all_with_condition_query(query, offset=offset, limit=limit, start_cursor=start_cursor, return_with_cursor=return_with_cursor)
717
-
718
- @staticmethod
719
- def list_outlet_transaction(transact_outlet, offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False, reverse_order=True):
720
- if reverse_order:
721
- query = CustomerTransaction.query(ndb.AND(CustomerTransaction.transact_outlet==transact_outlet.create_ndb_key())).order(-CustomerTransaction.transact_datetime)
722
- else:
723
- query = CustomerTransaction.query(ndb.AND(CustomerTransaction.transact_outlet==transact_outlet.create_ndb_key())).order(CustomerTransaction.transact_datetime)
724
-
725
- return CustomerTransaction.list_all_with_condition_query(query, offset=offset, limit=limit, start_cursor=start_cursor, return_with_cursor=return_with_cursor)
726
-
727
- @staticmethod
728
- def list_merchant_transaction(transact_merchant, offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False, reverse_order=True):
729
- if reverse_order:
730
- query = CustomerTransaction.query(ndb.AND(CustomerTransaction.transact_merchant==transact_merchant.create_ndb_key()))
731
- else:
732
- query = CustomerTransaction.query(ndb.AND(CustomerTransaction.transact_merchant==transact_merchant.create_ndb_key()))
733
-
734
- return CustomerTransaction.list_all_with_condition_query(query, offset=offset, limit=limit, start_cursor=start_cursor, return_with_cursor=return_with_cursor)
735
-
736
627
  @staticmethod
737
628
  def count_valid_customer_transaction(customer_acct, limit=conf.MAX_FETCH_RECORD):
738
629
  query = CustomerTransaction.query(ndb.AND(CustomerTransaction.is_revert==False), ancestor = customer_acct.create_ndb_key())
739
630
 
740
631
  return CustomerTransaction.count_with_condition_query(query, limit=limit)
741
632
 
742
- @staticmethod
743
- def count_outlet_transaction(transact_outlet, limit=conf.MAX_FETCH_RECORD):
744
- query = CustomerTransaction.query(ndb.AND(CustomerTransaction.transact_outlet==transact_outlet.create_ndb_key()))
745
-
746
- return CustomerTransaction.count_with_condition_query(query, limit=limit)
747
-
748
633
  @staticmethod
749
634
  def list_valid_customer_transaction(customer_acct, offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False):
750
635
 
File without changes
File without changes
File without changes
File without changes
File without changes