Subversion Repositories SmartDukaan

Rev

Rev 19912 | Rev 19980 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
104 ashish 1
'''
2
Created on 29-Mar-2010
3
 
4
@author: ashish
5
'''
19973 amit.gupta 6
import datetime
6056 amit.gupta 7
from elixir import session
19973 amit.gupta 8
import json
9
 
11902 amit.gupta 10
from shop2020.helpers.impl.DataAccessor import close_session
11
from shop2020.model.v1.order.impl import DataService, RedExpressUpdateService, \
7363 rajveer 12
    RechargeService
6000 mandeep.dh 13
from shop2020.model.v1.order.impl.Convertors import to_t_transaction, to_t_alert, \
14
    to_t_order, to_t_lineitem, to_t_payment_settlement, to_t_verification_agent, \
11902 amit.gupta 15
    to_t_attribute, to_t_rechargeTransaction, to_t_frc, to_t_hotspot, \
16
    to_t_sourcedetail, to_t_amazonorder, to_t_storeOrderDetail, \
17
    to_t_storeOrderCollection, to_t_hotspotServiceMatrix, to_t_ebayOrder, \
14134 amit.gupta 18
    to_t_amazonFbaSalesSnapshot, to_t_snapdealOrder, to_t_flipkartOrder, \
19836 amit.gupta 19
    to_t_amazonFbaOrderReturn, to_t_flipkartAdvantageOrder, to_t_hsOrder, \
20
    to_t_Creditor, to_t_CreditHistory, to_t_UserSanction, to_t_LoanHistory, \
21
    to_t_PaginatedCreditHistory, to_t_PaginatedLoanHistory, \
22
    to_t_PaginatedUserSanction, to_t_returnOrderInfo, to_t_returnTransaction, \
19889 manas 23
    to_t_rPickupRequest, to_t_OutstandingPayments
6000 mandeep.dh 24
from shop2020.model.v1.order.impl.DataAccessors import create_transaction, \
25
    get_transactions_for_customer, get_transaction_status, get_line_items_for_order, \
26
    get_transaction, get_transactions_for_shopping_cart_id, \
27
    change_transaction_status, get_orders_for_customer, get_orders_for_transaction, \
28
    get_order, get_returnable_orders_for_customer, \
29
    get_cancellable_orders_for_customer, get_orders_by_billing_date, get_all_orders, \
30
    change_order_status, get_alerts, add_alert, add_billing_details, close_session, \
31
    accept_order, mark_orders_as_picked_up, mark_orders_as_delivered, \
32
    mark_orders_as_rto, order_outofstock, batch_orders, update_non_delivery_reason, \
33
    enqueue_transaction_info_email, get_undelivered_orders, get_order_for_customer, \
34
    get_valid_order_count, get_cust_count_with_successful_txn, \
35
    get_valid_orders_amount_range, get_valid_orders, toggle_doa_flag, \
36
    request_pickup_number, authorize_pickup, receive_return, validate_doa, \
37
    reship_order, refund_order, get_return_orders, process_return, get_return_order, \
38
    mark_doas_as_picked_up, verify_order, is_alive, get_orders_by_shipping_date, \
39
    update_weight, change_warehouse, change_product, add_delay_reason, \
40
    reconcile_cod_collection, get_transactions_requiring_extra_processing, \
41
    mark_transaction_as_processed, get_item_wise_risky_orders_count, \
42
    accept_order_for_item, get_orders_in_batch, get_order_count, \
43
    get_ebs_settlement_summaries, mark_order_cancellation_request_received, \
44
    mark_order_cancellation_request_denied, refund_transaction, \
45
    mark_order_cancellation_request_confirmed, \
46
    mark_transaction_as_payment_flag_removed, accept_orders_for_item_id, \
47
    mark_orders_as_po_raised, mark_orders_as_reversal_initiated, \
48
    mark_orders_as_not_available, update_shipment_address, mark_orders_as_timeout, \
49
    get_order_for_awb, mark_orders_as_shipped_from_warehouse, mark_alerts_as_seen, \
50
    mark_order_doa_request_received, mark_order_doa_request_authorized, \
51
    mark_order_return_request_received, mark_order_return_request_authorized, \
52
    add_invoice_number, get_reshipped_order_ids, validate_return_product, \
53
    get_orders_for_provider_for_status, save_ebs_settlement_summary, \
54
    get_ebs_settlement_date, save_payment_settlements, mark_ebs_settlement_uploaded, \
55
    get_billed_orders_for_vendor, get_settlement_for_Prepaid, \
56
    get_settlements_by_date, get_slipped_sipping_date_orders, \
57
    mark_order_as_lost_in_transit, get_cancelled_orders, mark_order_as_delivered, \
58
    mark_return_orders_as_picked_up, update_orders_as_PORaised, \
59
    get_order_distribution_by_status, get_orders_not_met_expected_delivery_date, \
60
    mark_orders_as_local_connected, mark_orders_as_destinationCityReached, \
61
    mark_orders_as_firstDeliveryAttempted, get_non_delivered_orders_by_courier, \
62
    get_orders_not_local_connected, get_doas_not_picked_up, \
63
    get_return_orders_not_picked_up, get_orders_not_picked_up, get_rto_orders, \
64
    get_order_list, get_order_ids_for_status, update_orders_as_paid_to_vendor, \
65
    update_COD_agent, get_refunded_orders_marked_paid, get_settlement_for_Cod, \
66
    get_order_list_for_vendor, update_order_only_as_paid_to_vendor, \
67
    get_all_verification_agents, get_all_attributes_for_order_id, \
68
    set_order_attribute_for_transaction, get_billed_orders, get_all_return_orders, \
69
    mark_order_as_received_at_store, get_receive_pending_orders, \
70
    get_received_at_store_orders, mark_orders_as_returned_from_store, \
6056 amit.gupta 71
    set_order_attributes, get_orders_collection_at_store, get_order_attribute_value, \
72
    change_jacket_number, mark_order_as_rto_in_transit, get_recharge_order, \
73
    get_recharge_orders, update_recharge_order_status, activate_recharge_txn, \
74
    get_user_wallet, get_user_wallet_history, get_service_providers, \
6396 amit.gupta 75
    get_service_provider_for_device, get_recharge_orders_for_transaction, \
76
    update_amount_in_wallet, get_recharge_orders_for_device, \
77
    get_recharge_orders_for_status, get_plans_for_operator, get_recharge_statistics, \
78
    validate_recharge, get_recharge_denominations, update_availability_status, \
6821 amar.kumar 79
    get_misc_charges, get_available_emi_schemes, refund_recharge_order, \
7073 anupam.sin 80
    create_recharge_transaction, get_physical_orders, get_document, retrieve_invoice, \
7125 amit.gupta 81
    change_shipping_address, get_recharge_transactions, get_recharge_transaction, \
7151 amit.gupta 82
    get_frcs, get_hotspot_store, get_circle, retrieve_hotspot_recharge_invoice, \
7190 amar.kumar 83
    get_recharge_trans, split_freebie_order, get_recharge_transactions_by_number, \
11902 amit.gupta 84
    update_hotspot_store_password, get_source_detail, get_all_circles, delete_frcs, \
85
    topup_company_wallet, get_wallet_balance_for_company, add_amazon_order, \
86
    update_amazon_order_status, get_amazon_order, get_amazon_orders_shipped, \
87
    get_amazon_orders_cancelled, get_orders_for_store, \
88
    get_store_order_advance_invoice, add_frc, add_series, get_store_order_detail, \
89
    save_store_order_detail, get_all_edc_banks, save_refund_amounts_for_store_order, \
90
    get_collections_for_store, get_amazon_orders_to_acknowledge, \
91
    change_amazon_order_status, update_timestamp_for_amazon_order, \
92
    update_source_detail_timestamp, get_amazon_order_by_amazonorderid, \
93
    get_orders_by_mobile_number, get_orders_by_amazon_id, change_courier_provider, \
94
    convert_store_to_normal, update_freebie_item, update_order_AWB, \
8182 amar.kumar 95
    get_hotspot_service_matrices, get_orders_by_vendor, create_ebay_order, \
96
    get_ebay_order_by_sales_rec_number, get_ebay_order_by_orderId, update_ebay_order, \
8488 amar.kumar 97
    ebay_order_exists, update_order_for_ebay, get_ebay_order, split_ebay_order, \
98
    add_or_update_amazon_fba_sales_snapshot, get_amazon_fba_sales_snapshot_for_days, \
99
    get_amazon_fba_sales_latest_snapshot_for_item, create_snapdeal_order, \
11902 amit.gupta 100
    get_snapdeal_order, snapdeal_order_exists, update_latest_fba_prices_for_item, \
101
    flipkart_order_exists, create_flipkart_order, get_flipkart_order, \
102
    get_flipkart_order_by_subOrderId, update_flipkart_order_dates_and_awb, \
103
    get_order_for_airwayBillNo, get_orders_count_created_after_timestamp_for_source, \
104
    get_min_created_timestamp_undelivered_orders_for_source, \
105
    update_snapdeal_orders_status, update_flipkart_orders_status, \
106
    bulk_add_or_update_amazon_fba_sales_snapshot, get_created_orders_for_flipkart, \
12103 manish.sha 107
    is_private_deal_transaction, change_easyship_mfn_order_txn_status, \
108
    update_amazon_fba_order_returns, get_all_amazon_fba_order_returns, \
13941 amit.gupta 109
    get_total_sale_returns_fba_skus_curent_time, \
110
    get_amazon_fba_sales_latest_snapshot_for_item_location_wise, \
111
    get_verification_pending_orders_fk, add_invoice_details_to_orders, \
112
    get_fa_order_by_fk_order_id, get_all_fa_orders_list, add_update_fa_orders_bulk, \
113
    flipkart_fa_order_exists, get_recharge_order_status, \
114
    get_recharge_transaction_status, accept_package_orders, \
115
    get_group_orders_by_logistics_txn_id, add_billing_details_for_groupped_orders, \
116
    get_invoice_format_logistics_txn_id, homeshop_order_exists, \
19836 amit.gupta 117
    create_homeshop_order, get_homeshop_order, split_bulk_order, \
118
    move_orders_to_correct_warehouse, verify_orders_for_transaction, \
119
    get_creditor_info, update_creditor_info, get_user_sanction_details, \
18634 manish.sha 120
    update_user_sanction, get_credit_history_records, process_credit_transaction, \
121
    get_loan_payable_for_user_to_creditor, get_loan_history_records, \
19836 amit.gupta 122
    process_loan_transaction, get_credit_history_records_paginated, \
123
    get_loan_history_records_paginated, get_user_sanction_details_paginated, \
124
    get_orders_in_batch_as_promised_shipping, \
125
    set_order_attribute_for_master_order_id, update_master_order_awb, \
126
    add_or_update_shipment_logistics_cost_details, get_return_order_info, \
127
    get_return_orders_info_map, update_return_order_info, \
128
    bulk_update_return_order_info, get_return_orders_as_per_warehouse, \
129
    create_return_transaction, get_return_transactions_for_customer, \
130
    get_return_transaction, change_return_transaction_status, \
131
    create_return_pickup_request, update_return_pickup_request, \
132
    get_return_orders_for_return_transaction, receive_return_pickup, \
133
    validate_return_pickup, process_return_pickup, mark_return_transaction_complete, \
134
    refund_return_transaction_payment, get_eligible_orders_for_return, \
135
    get_eligible_return_orders_for_pickup, validate_return_transaction, \
136
    get_return_pickup_request, mark_return_not_required_orders_as_processed, \
19973 amit.gupta 137
    get_all_return_orders_for_return_pickup_request, unaccept_order, \
138
    get_outstanding_payments, mark_payment_settled, get_seller_info
14134 amit.gupta 139
from shop2020.model.v1.order.impl.DataService import DtrBatchCreditTracker
6000 mandeep.dh 140
from shop2020.model.v1.order.impl.model.DTHRechargeOrder import DTHRechargeOrder
6056 amit.gupta 141
from shop2020.model.v1.order.impl.model.DigitalTransaction import \
142
    DigitalTransaction
6000 mandeep.dh 143
from shop2020.model.v1.order.impl.model.MobileRechargeOrder import \
144
    MobileRechargeOrder
14134 amit.gupta 145
from shop2020.model.v1.order.impl.model.UserWalletHistory import \
146
    UserWalletHistory
11902 amit.gupta 147
from shop2020.model.v1.user.impl.Converters import to_t_address
6000 mandeep.dh 148
from shop2020.thriftpy.model.v1.order.ttypes import TransactionServiceException, \
11902 amit.gupta 149
    RechargeType, AmazonOrdersToAcknowledge
6000 mandeep.dh 150
from shop2020.utils.Utils import to_py_date, get_fdate_tdate, to_java_date
1405 ankur.sing 151
 
5527 anupam.sin 152
 
104 ashish 153
class OrderServiceHandler:
154
 
3187 rajveer 155
    def __init__(self, dbname='transaction', db_hostname='localhost'):
483 rajveer 156
        """
104 ashish 157
        Constructor
483 rajveer 158
        """
3187 rajveer 159
        DataService.initialize(dbname, db_hostname)
104 ashish 160
 
161
    def createTransaction(self, transaction):
162
        """
163
        Parameters:
164
         - transaction
165
        """
766 rajveer 166
        try:
167
            return create_transaction(transaction)
168
        finally:
169
            close_session()
170
 
104 ashish 171
    def getTransaction(self, id):
172
        """
173
            Get transaction methods.
174
 
175
        Parameters:
176
         - id
177
        """
766 rajveer 178
        try:
179
            transaction = get_transaction(id)
180
            return to_t_transaction(transaction)
181
        finally:
182
            close_session()
183
 
483 rajveer 184
    def getTransactionsForCustomer(self, customerId, from_date, to_date, status):
104 ashish 185
        """
186
        Parameters:
483 rajveer 187
         - customerId
104 ashish 188
         - from_date
189
         - to_date
483 rajveer 190
         - status
104 ashish 191
        """
766 rajveer 192
        try:
193
            current_from_date, current_to_date = get_fdate_tdate(from_date, to_date)
194
 
195
            transactions = get_transactions_for_customer(customerId, current_from_date, current_to_date, status)
196
            t_transaction = []
197
            for transaction in transactions:
198
                t_transaction.append(to_t_transaction(transaction))
199
            return t_transaction
200
        finally:
201
            close_session()
483 rajveer 202
 
203
    def getTransactionsForShoppingCartId(self, shoppingCartId):
204
        """
205
        Parameters:
206
            - shoppingCartId
207
        """
766 rajveer 208
        try:
209
            transactions = get_transactions_for_shopping_cart_id(shoppingCartId)
210
            t_transaction = []
211
            for transaction in transactions:
212
                t_transaction.append(to_t_transaction(transaction))
213
            return t_transaction
214
        finally:
215
            close_session()
104 ashish 216
 
483 rajveer 217
    def getTransactionStatus(self, transactionId):
104 ashish 218
        """
219
        Parameters:
483 rajveer 220
         - transactionId
221
        """
766 rajveer 222
        try:
223
            return get_transaction_status(transactionId)
224
        finally:
225
            close_session()
226
 
7293 anupam.sin 227
    def changeTransactionStatus(self, transactionId, status, description, pickUp, orderType, source):
483 rajveer 228
        """
229
        Parameters:
230
         - transactionId
104 ashish 231
         - status
483 rajveer 232
         - description
5387 rajveer 233
         - selfPickup
483 rajveer 234
        """
766 rajveer 235
        try:
7293 anupam.sin 236
            return change_transaction_status(transactionId, status, description, pickUp, orderType, source)
766 rajveer 237
        finally:
238
            close_session()
239
 
1528 ankur.sing 240
    def getOrdersForTransaction(self, transactionId, customerId):
483 rajveer 241
        """
1528 ankur.sing 242
        Returns list of orders for given transaction Id. Also filters based on customer Id so that
243
        only user who owns the transaction can view its order details.
244
 
483 rajveer 245
        Parameters:
246
         - transactionId
1528 ankur.sing 247
         - customerId
483 rajveer 248
        """
766 rajveer 249
        try:
1528 ankur.sing 250
            orders = get_orders_for_transaction(transactionId, customerId)
766 rajveer 251
            return [to_t_order(order) for order in orders]    
252
        finally:
253
            close_session()
254
 
4801 anupam.sin 255
    def getAllOrders(self, statuses, from_date, to_date, warehouse_id):
483 rajveer 256
        """
257
        Parameters:
258
         - status
104 ashish 259
         - from_date
260
         - to_date
483 rajveer 261
         - warehouse_id
104 ashish 262
        """
766 rajveer 263
        try:
264
            current_from_date, current_to_date = get_fdate_tdate(from_date, to_date)        
4801 anupam.sin 265
            orders = get_all_orders(statuses, current_from_date, current_to_date, warehouse_id)
766 rajveer 266
            return [to_t_order(order) for order in orders]
267
        finally:
268
            close_session()
4133 chandransh 269
 
8303 amar.kumar 270
    def getOrdersInBatch(self, statuses, offset, limit, warehouse_id, source):
4133 chandransh 271
        """
272
        Returns at most 'limit' orders with the given statuses for the given warehouse starting from the given offset.
273
        Pass the status as null and the limit as 0 to ignore them.
274
 
275
        Parameters:
276
         - statuses
277
         - offset
278
         - limit
279
         - warehouse_id
280
        """
281
        try:
8303 amar.kumar 282
            orders = get_orders_in_batch(statuses, offset, limit, warehouse_id, source)
4133 chandransh 283
            return [to_t_order(order) for order in orders]
284
        finally:
285
            close_session()
286
 
8303 amar.kumar 287
    def getOrderCount(self, statuses, warehouseId, source):
4133 chandransh 288
        """
289
        Returns the count of orders with the given statuses assigned to the given warehouse.
290
 
291
        Parameters:
292
         - statuses
293
         - warehouseId
294
        """
295
        try:
8303 amar.kumar 296
            return get_order_count(statuses, warehouseId, source)
4133 chandransh 297
        finally:
298
            close_session()
299
 
995 varun.gupt 300
    def getOrdersByBillingDate(self, status, start_billing_date, end_billing_date, warehouse_id):
301
        """
302
        Parameters:
303
         - status
304
         - start_billing_date
305
         - end_billing_date
306
         - warehouse_id
307
        """
308
        try:
309
            current_start_billing_date, current_end_billing_date = get_fdate_tdate(start_billing_date, end_billing_date)
310
            orders = get_orders_by_billing_date(status, current_start_billing_date, current_end_billing_date, warehouse_id)
311
            return [to_t_order(order) for order in orders]
312
        finally:
313
            close_session()
1382 varun.gupt 314
 
3451 chandransh 315
    def getOrdersByShippingDate(self, fromShippingDate, toShippingDate, providerId, warehouseId, cod):
3427 chandransh 316
        """
317
        Returns orders for a particular provider and warehouse which were shipped between the given dates.
3451 chandransh 318
        Returned orders comprise of COD orders if cod parameter is true. It comprises of prepaid orders otherwise.
319
        Pass providerId and warehouseId as -1 to ignore both these parameters.
3427 chandransh 320
 
321
        Parameters:
322
         - fromShippingDate
323
         - toShippingDate
324
         - providerId
325
         - warehouseId
3451 chandransh 326
         - cod
3427 chandransh 327
        """
328
        try:
329
            from_shipping_date, to_shipping_date = get_fdate_tdate(fromShippingDate, toShippingDate)
3451 chandransh 330
            orders = get_orders_by_shipping_date(from_shipping_date, to_shipping_date, providerId, warehouseId, cod)
3427 chandransh 331
            return [to_t_order(order) for order in orders]
332
        finally:
333
            close_session()
334
 
1382 varun.gupt 335
    def getReturnableOrdersForCustomer(self, customerId, limit = None):
336
        """
337
        Parameters:
338
         - customerId
339
         - limit
340
        """
341
        try:
342
            return get_returnable_orders_for_customer(customerId, limit)
343
        finally:
344
            close_session()
995 varun.gupt 345
 
1382 varun.gupt 346
    def getCancellableOrdersForCustomer(self, customerId, limit = None):
347
        """
348
        Parameters:
349
         - customerId
350
         - limit
351
        """
352
        try:
353
            return get_cancellable_orders_for_customer(customerId, limit)
354
        finally:
355
            close_session()
356
 
483 rajveer 357
    def changeOrderStatus(self, orderId, status, description):
358
        """
359
        Parameters:
360
         - orderId
361
         - status
362
         - description
363
         - 
364
        """
766 rajveer 365
        try:
366
            return change_order_status(self, orderId, status, description)
367
        finally:
368
            close_session()
921 rajveer 369
 
3064 chandransh 370
    def verifyOrder(self, orderId):
371
        """
372
        Marks the given order as SUBMITTED_FOR_PROCESSING and updates the verified
373
        timestamp. It is intended to be used for COD orders but can be harmlessly
374
        used for all other orders as well.
375
        Throws an exception if no such order exists.
376
 
377
        Parameters:
378
         - orderId
379
        """
380
        try:
7391 rajveer 381
            return verify_order(orderId)
3064 chandransh 382
        finally:
383
            close_session()
384
 
921 rajveer 385
    def acceptOrder(self, orderId):
386
        """
3064 chandransh 387
        Marks the given order as ACCEPTED and updates the accepted timestamp. If the
388
        given order is not a COD order, it also captures the payment if the same has
389
        not been captured.
390
        Throws an exception if no such order exists.
391
 
921 rajveer 392
        Parameters:
393
         - orderId
394
        """
395
        try:
4285 rajveer 396
            return accept_order(orderId)
921 rajveer 397
        finally:
398
            close_session()
19832 amit.gupta 399
 
400
    def unacceptOrder(self, orderId):
401
        """
402
        Rollsback to Processing State
403
 
404
        Parameters:
405
         - orderId
406
        """
407
        try:
19836 amit.gupta 408
            return unaccept_order(orderId)
19832 amit.gupta 409
        finally:
410
            close_session()
921 rajveer 411
 
3014 chandransh 412
    def getOrdersForCustomer(self, customerId, from_date, to_date, statuses):
104 ashish 413
        """
3014 chandransh 414
        Returns list of orders for the given customer created between the given dates and having the given statuses.
415
        Pass and empty list to ignore filtering on statuses.
416
 
104 ashish 417
        Parameters:
418
         - customerId
419
         - from_date
420
         - to_date
3014 chandransh 421
         - statuses
104 ashish 422
        """
766 rajveer 423
        try:
424
            current_from_date, current_to_date = get_fdate_tdate(from_date, to_date)
425
 
3014 chandransh 426
            orders = get_orders_for_customer(customerId, current_from_date, current_to_date, statuses)
766 rajveer 427
            return [to_t_order(order) for order in orders]
428
        finally:
429
            close_session()
1528 ankur.sing 430
 
431
    def getOrderForCustomer(self, orderId, customerId):
432
        """
433
        Returns an order for the order Id. Also checks if the order belongs to the customer whose Id is passed.
434
        Throws exception if either order Id is invalid or order does not below to the customer whose Id is passed.
435
 
436
        Parameters:
437
         - customerId
438
         - orderId
439
        """
440
        try:
441
            return to_t_order(get_order_for_customer(orderId, customerId))
442
        finally:
443
            close_session()
766 rajveer 444
 
483 rajveer 445
    def getOrder(self, id):
446
        """
447
        Parameters:
448
         - id
449
        """
766 rajveer 450
        try:
451
            return to_t_order(get_order(id))
452
        finally:
453
            close_session()
4999 phani.kuma 454
 
455
    def getOrderList(self, order_ids):
456
        """
457
        Parameters:
458
         - order_ids
459
        """
460
        try:
461
            orders = get_order_list(order_ids)
462
            return [to_t_order(order) for order in orders]
463
        finally:
464
            close_session()
465
 
5386 phani.kuma 466
    def getOrderListForVendor(self, order_ids, vendorId):
467
        """
468
        Parameters:
469
         - order_ids
470
         - vendorId
471
        """
472
        try:
473
            orders = get_order_list_for_vendor(order_ids, vendorId)
474
            return [to_t_order(order) for order in orders]
475
        finally:
476
            close_session()
477
 
483 rajveer 478
    def getLineItemsForOrder(self, orderId):
479
        """
480
        Parameters:
481
         - orderId
482
        """
766 rajveer 483
        try:
484
            lineitems = get_line_items_for_order(orderId)
485
            t_lineitems = []
486
            for lineitem in lineitems:
487
                t_lineitems.append(to_t_lineitem(lineitem))
488
            return t_lineitems
489
        finally:
490
            close_session()
1149 chandransh 491
 
7190 amar.kumar 492
    def addBillingDetails(self, orderId, invoice_number, serialNumber, itemNumber, freebieWarehouseId, billedBy, jacketNumber, billingType, vendorId, authorize):
494 rajveer 493
        """
4658 mandeep.dh 494
        Adds jacket number and serial no. to the order. Doesn't update the serial no. if a -1 is supplied.
2783 chandransh 495
        Also marks the order as billed and sets the billing timestamp.
496
        Return false if it doesn't find the order with the given ID.
1149 chandransh 497
 
498
        Parameters:
499
         - orderId
500
         - jacketNumber
4658 mandeep.dh 501
         - serialNumber
2783 chandransh 502
         - itemNumber
7190 amar.kumar 503
         - freebieWarehouseId
2783 chandransh 504
         - billedBy
1149 chandransh 505
        """
506
        try:
7190 amar.kumar 507
            return add_billing_details(orderId, invoice_number, serialNumber, itemNumber, freebieWarehouseId, billedBy, jacketNumber, billingType, vendorId, authorize)
1149 chandransh 508
        finally:
509
            close_session()
1220 chandransh 510
 
6751 amar.kumar 511
    def addInvoiceNumber(self, orderId, invoiceNumber, color, serialNumber, itemNumber):
4579 rajveer 512
        """
513
        Add the invoice number to the order.
514
 
515
        Parameters:
516
         - orderId
517
         - invoice_number
518
        """
519
        try:
6751 amar.kumar 520
            add_invoice_number(orderId, invoiceNumber, color, serialNumber, itemNumber)
4579 rajveer 521
        finally:
522
            close_session()
523
 
1220 chandransh 524
    def batchOrders(self, warehouseId):
525
        """
526
        Create a batch of all the pending orders for the given warehouse.
527
        The returned list is orderd by created_timestamp.
528
        If there are no pending orders, an empty list is returned.
1208 chandransh 529
 
1220 chandransh 530
        Parameters:
531
         - warehouseId
532
        """
533
        try:
534
            pending_orders = batch_orders(warehouseId)
535
            return [to_t_order(order) for order in pending_orders]
536
        finally:
537
            close_session()
538
 
1208 chandransh 539
    def markOrderAsOutOfStock(self, orderId):
540
        """
541
        Mark the given order as out of stock. Throws an exception if the order with the given Id couldn't be found.
542
 
543
 
544
        Parameters:
545
         - orderId
546
        """
547
        try:
548
            return order_outofstock(orderId)
549
        finally:
550
            close_session()
551
 
4910 phani.kuma 552
    def markOrdersAsShippedFromWarehouse(self, warehouseId, providerId, cod, orderIds):
759 chandransh 553
        """
3064 chandransh 554
        Depending on the third parameter, marks either all prepaid or all cod orders BILLED by the
4910 phani.kuma 555
        given warehouse and were picked up by the given provider as SHIPPED_FROM_WH.
759 chandransh 556
 
557
        Parameters:
558
         - warehouseId
559
         - providerId
3064 chandransh 560
         - cod
759 chandransh 561
        """
766 rajveer 562
        try:
4910 phani.kuma 563
            return mark_orders_as_shipped_from_warehouse(warehouseId, providerId, cod, orderIds)
766 rajveer 564
        finally:
565
            close_session()
1113 chandransh 566
 
5713 rajveer 567
    def markOrdersAsReturnedFromStore(self, providerId, orderIds, awbs):
5676 rajveer 568
        """
569
        Parameters:
570
         - providerId
571
         - orderIds
5713 rajveer 572
         - awbs
5676 rajveer 573
        """
574
        try:
5713 rajveer 575
            return mark_orders_as_returned_from_store(providerId, orderIds, awbs)
5676 rajveer 576
        finally:
577
            close_session()
578
 
579
    def setOrderAttributes(self, orderId, attributes):
580
        """
581
        sets attributes for an order
582
 
583
        Parameters:
584
         - orderId
585
         - attributes
586
        """
587
        try:
588
            return set_order_attributes(orderId, attributes)
589
        finally:
590
            close_session()
591
 
592
 
4910 phani.kuma 593
    def markOrdersAsPickedUp(self, providerId, pickupDetails):
4410 rajveer 594
        """
4910 phani.kuma 595
        Marks all SHIPPED_FROM_WH orders of the previous day for a provider as SHIPPED_TO_LOGISTICS.
596
        Raises an exception if we encounter report for an AWB number that we did not ship.
4410 rajveer 597
 
598
        Parameters:
599
         - providerId
4910 phani.kuma 600
         - pickupDetails
4410 rajveer 601
        """
602
        try:
4910 phani.kuma 603
            mark_orders_as_picked_up(providerId, pickupDetails)
4410 rajveer 604
        finally:
605
            close_session()
606
 
4910 phani.kuma 607
    def getOrdersNotPickedUp(self, providerId):
1113 chandransh 608
        """
609
        Returns a list of orders that were shipped from warehouse but did not appear in the pick-up report.
610
 
611
        Parameters:
612
         - providerId
613
        """
614
        try:
4910 phani.kuma 615
            orders_not_picked_up = get_orders_not_picked_up(providerId)
1113 chandransh 616
            return [to_t_order(order) for order in orders_not_picked_up]
617
        finally:
618
            close_session()
1132 chandransh 619
 
620
    def markOrdersAsDelivered(self, providerId, deliveredOrders):
621
        """
622
        Marks all orders with AWBs in the given map as delivered. Also sets the delivery timestamp and
623
        the name of the receiver.
624
        Raises an exception if we encounter report for an AWB number that we did not ship.
625
 
626
        Parameters:
627
         - providerId
628
         - deliveredOrders
629
        """
630
        try:
631
            mark_orders_as_delivered(providerId, deliveredOrders)
632
        finally:
633
            close_session()
1135 chandransh 634
 
4712 rajveer 635
    def markOrderAsDelivered(self, orderId, deliveryTimestamp, receiver):
636
        """
637
        Attributes:
638
         - orderId
639
         - deliveryTimestamp
640
         - receiver
641
        """
642
        try:
643
            mark_order_as_delivered(orderId, to_py_date(deliveryTimestamp), receiver)
644
        finally:
645
            close_session()
646
 
647
 
5555 rajveer 648
    def markOrderAsReceivedAtStore(self, orderId, deliveryTimestamp):
649
        """
650
        Attributes:
651
         - orderId
652
         - deliveryTimestamp
653
        """
654
        try:
655
            mark_order_as_received_at_store(orderId, to_py_date(deliveryTimestamp))
656
        finally:
657
            close_session()
658
 
659
    def getReceivePendingOrders(self, storeId):
660
        """
661
        Attributes:
662
         - storeId
663
        """
664
        try:
665
            orders = get_receive_pending_orders(storeId)
666
            return [to_t_order(order) for order in orders]
667
        finally:
668
            close_session()
669
 
670
    def getReceivedAtStoreOrders(self, storeId):
671
        """
672
        Attributes:
673
         - storeId
674
        """
675
        try:
676
            orders = get_received_at_store_orders(storeId)
677
            return [to_t_order(order) for order in orders]
678
        finally:
679
            close_session()
5713 rajveer 680
 
681
    def getOrdersCollectionAtStore(self, storeId, fromDate, toDate, onlyCod):
682
        """
683
        Parameters:
684
         - storeId
685
         - fromDate
686
         - toDate
687
         - onlyCod
688
        """
689
        try:
690
            orders = get_orders_collection_at_store(storeId, to_py_date(fromDate), to_py_date(toDate), onlyCod)
691
            return [to_t_order(order) for order in orders]
692
        finally:
693
            close_session()
694
 
4910 phani.kuma 695
    def markAsRTOrders(self, providerId, returnedOrders):
1135 chandransh 696
        """
4910 phani.kuma 697
        Mark all orders with AWBs in the given map as RTO. Also sets the delivery timestamp.
1135 chandransh 698
        Raises an exception if we encounter report for an AWB number that we did not ship.
699
 
700
        Parameters:
701
         - providerId
702
         - returnedOrders
703
        """
704
        try:
4910 phani.kuma 705
            mark_orders_as_rto(providerId, returnedOrders)
1135 chandransh 706
        finally:
707
            close_session()
1246 chandransh 708
 
4910 phani.kuma 709
    def getRTOrders(self, providerId):
710
        """
711
        Returns a list of orders that were returned by courier.
712
 
713
        Parameters:
714
         - providerId
715
        """
716
        try:
717
            rto_orders = get_rto_orders(providerId)
718
            return [to_t_order(order) for order in rto_orders]
719
        finally:
720
            close_session()
721
 
1246 chandransh 722
    def updateNonDeliveryReason(self, providerId, undeliveredOrders):
723
        """
724
        Update the status description of orders whose AWB numbers are keys of the Map.
725
 
726
        Parameters:
727
         - providerId
728
         - undelivered_orders
729
        """
730
        try:
4910 phani.kuma 731
            update_non_delivery_reason(providerId, undeliveredOrders)
732
        finally:
733
            close_session()
734
 
735
    def getNonDeliveredOrdersbyCourier(self, providerId):
736
        """
737
        Returns a list of orders that were picked up or shipped four days ago but did not get delivered.
738
 
739
        Parameters:
740
         - providerId
741
        """
742
        try:
743
            orders_not_delivered = get_non_delivered_orders_by_courier(providerId)
4581 phani.kuma 744
            return [to_t_order(order) for order in orders_not_delivered]
1246 chandransh 745
        finally:
746
            close_session()
1405 ankur.sing 747
 
4910 phani.kuma 748
    def markOrdersAsLocalConnected(self, providerId, local_connected_orders):
749
        """
750
        Mark all orders with AWBs in the given map as local connected. Also sets the local connected timestamp.
751
 
752
        Parameters:
753
         - providerId
754
         - local_connected_orders
755
        """
756
        try:
757
            mark_orders_as_local_connected(providerId, local_connected_orders)
758
        finally:
759
            close_session()
760
 
761
    def getOrdersNotLocalConnected(self, providerId):
762
        """
763
        Returns a list of orders that were picked up or shipped but pending local connection.
764
 
765
        Parameters:
766
         - providerId
767
        """
768
        try:
769
            orders_pending_local_connection = get_orders_not_local_connected(providerId)
770
            return [to_t_order(order) for order in orders_pending_local_connection]
771
        finally:
772
            close_session()
773
 
774
    def markOrdersAsDestinationCityReached(self, providerId, destination_city_reached_orders):
775
        """
776
        Mark all orders with AWBs in the given map as reached destination city. Also sets the reached destination timestamp.
777
 
778
        Parameters:
779
         - providerId
780
         - destination_city_reached_orders
781
        """
782
        try:
783
            mark_orders_as_destinationCityReached(providerId, destination_city_reached_orders)
784
        finally:
785
            close_session()
786
 
787
    def markOrdersAsFirstDeliveryAttempted(self, providerId, first_atdl_orders):
788
        """
789
        Mark all orders with AWBs in the given map as first delivery attempt made. Also sets the first delivery attempted timestamp.
790
 
791
        Parameters:
792
         - providerId
793
         - first_atdl_orders
794
        """
795
        try:
796
            mark_orders_as_firstDeliveryAttempted(providerId, first_atdl_orders)
797
        finally:
798
            close_session()
799
 
4783 phani.kuma 800
    def getUndeliveredOrdersExpectedDeliveryDateNotMet(self):
801
        """
802
        Returns the list of orders whose expected delivery date has passed but have not been
803
        delivered yet.
804
        Returns an empty list if no such orders exist.
805
        """
806
        try:
807
            orders_not_delivered = get_orders_not_met_expected_delivery_date()
808
            return [to_t_order(order) for order in orders_not_delivered]
809
        finally:
810
            close_session()
811
 
1405 ankur.sing 812
    def getUndeliveredOrders(self, providerId, warehouseId):
813
        """
814
        Returns the list of orders whose delivery time has passed but have not been
815
        delivered yet for the given provider and warehouse. To get a complete list of
816
        undelivered orders, pass them as -1.
817
        Returns an empty list if no such orders exist.
818
 
819
        Parameters:
820
         - providerId
821
         - warehouseId
822
        """
823
        try:
824
            undelivered_orders = get_undelivered_orders(providerId, warehouseId)
825
            return [to_t_order(order) for order in undelivered_orders]
826
        finally:
827
            close_session()
1351 varun.gupt 828
 
1398 varun.gupt 829
    def enqueueTransactionInfoEmail(self, transactionId):
1351 varun.gupt 830
        """
1398 varun.gupt 831
        Save the email containing order details to be sent to customer later by batch job
1351 varun.gupt 832
 
833
        Parameters:
834
         - transactionId
835
        """
836
        try:
1398 varun.gupt 837
            return enqueue_transaction_info_email(transactionId)
1351 varun.gupt 838
        finally:
839
            close_session()
840
 
4444 rajveer 841
    def getAlerts(self, type, warehouseId, status, timestamp):
483 rajveer 842
        """
843
        Parameters:
4394 rajveer 844
         - type
4444 rajveer 845
         - warehouseId
4394 rajveer 846
         - status
847
         - timestamp
483 rajveer 848
        """
766 rajveer 849
        try:
4444 rajveer 850
            alerts = get_alerts(type, warehouseId, status, timestamp)
766 rajveer 851
 
852
            t_alerts = []
853
            for alert in alerts:
854
                t_alerts.append(to_t_alert(alert)) 
855
 
856
            return t_alerts
857
        finally:
858
            close_session()
4394 rajveer 859
 
4447 rajveer 860
    def addAlert(self, type, warehouseId, description):
483 rajveer 861
        """
862
        Parameters:
863
         - type
4394 rajveer 864
         - description
4447 rajveer 865
         - warehouseId
483 rajveer 866
        """
766 rajveer 867
        try:
4447 rajveer 868
            add_alert(type, warehouseId, description)
766 rajveer 869
        finally:
870
            close_session()
1596 ankur.sing 871
 
4444 rajveer 872
    def markAlertsAsSeen(self, warehouseId):
873
        """
874
        Parameters:
875
         - warehouseId
876
        """
877
        try:
878
            mark_alerts_as_seen(warehouseId)
879
        finally:
880
            close_session()
881
        pass
882
 
1596 ankur.sing 883
    def getValidOrderCount(self, ):
884
        """
885
        Return the number of valid orders. (OrderStatus >= OrderStatus.SUBMITTED_FOR_PROCESSING)
886
        """
1731 ankur.sing 887
        try:
888
            return get_valid_order_count()
889
        finally:
890
            close_session()
1627 ankur.sing 891
 
892
    def getNoOfCustomersWithSuccessfulTransaction(self, ):
893
        """
894
        Returns the number of distinct customers who have done successful transactions
895
        """
1731 ankur.sing 896
        try:
897
            return get_cust_count_with_successful_txn()
898
        finally:
899
            close_session()
1627 ankur.sing 900
 
1731 ankur.sing 901
 
902
    def getValidOrdersAmountRange(self, ):
1627 ankur.sing 903
        """
1731 ankur.sing 904
        Returns the minimum and maximum amounts of a valid order. (OrderStatus >= OrderStatus.SUBMITTED_FOR_PROCESSING)
905
        List contains two values, first minimum amount and second maximum amount.
1627 ankur.sing 906
        """
1731 ankur.sing 907
        try:
908
            return get_valid_orders_amount_range()
909
        finally:
910
            close_session()
1627 ankur.sing 911
 
5874 rajveer 912
    def getValidOrders(self, limit, onlyStore):
1886 ankur.sing 913
        """
914
        Returns list of Orders in descending order by Order creation date. List is restricted to limit Orders.
915
        If limit is passed as 0, then all valid Orders are returned.
916
 
917
        Parameters:
918
         - limit
5874 rajveer 919
         - onlyStore
1886 ankur.sing 920
        """
921
        try:
5874 rajveer 922
            return [to_t_order(order) for order in get_valid_orders(limit, onlyStore)]
1886 ankur.sing 923
        finally:
924
            close_session()
104 ashish 925
 
2536 chandransh 926
    def toggleDOAFlag(self, orderId):
104 ashish 927
        """
2536 chandransh 928
        Toggle the DOA flag of an order. This should be used to flag an order for follow-up and unflag it when the follow-up is complete.
929
        Returns the final flag status.
930
        Throws an exception if the order with the given id couldn't be found or if the order status is not DELVIERY_SUCCESS.
483 rajveer 931
 
132 ashish 932
        Parameters:
2536 chandransh 933
         - orderId
132 ashish 934
        """
2536 chandransh 935
        try:
936
            return toggle_doa_flag(orderId)
937
        finally:
938
            close_session()
483 rajveer 939
 
4454 rajveer 940
    def markOrderDoaRequestReceived(self, orderId):
941
        """
942
        Once user raise the request for a DOA, order status will be changed from DELVIERY_SUCCESS to DOA_REQUEST_RECEIVED
943
 
944
        Parameters:
945
         - orderId
946
        """
947
        try:
948
            return mark_order_doa_request_received(orderId)
949
        finally:
950
            close_session()
951
 
7645 anupam.sin 952
    def markOrderDoaRequestAuthorized(self, orderId, isAuthorized,  fromStore, isReship):
4454 rajveer 953
        """
954
        CRM person can authorize or deny the request reised by customer. If he authorizes order will change from DOA_REQUEST_RECEIVED
955
        to DOA_REQUEST_AUTHORIZED. If he denies, status will be changed back to DELVIERY_SUCCESS.
956
 
957
        Parameters:
958
         - orderId
959
         - isAuthorized
960
        """
961
        try:
7645 anupam.sin 962
            return mark_order_doa_request_authorized(orderId, isAuthorized, fromStore, isReship)
4454 rajveer 963
        finally:
964
            close_session()
965
 
4488 rajveer 966
    def markOrderReturnRequestReceived(self, orderId):
967
        """
968
        Once user raise the request for a DOA, order status will be changed from DELVIERY_SUCCESS to RET_REQUEST_RECEIVED
969
 
970
        Parameters:
971
         - orderId
972
        """
973
        try:
974
            return mark_order_return_request_received(orderId)
975
        finally:
976
            close_session()
977
 
7645 anupam.sin 978
    def markOrderReturnRequestAuthorized(self, orderId, isAuthorized, fromStore, isReship):
4488 rajveer 979
        """
980
        CRM person can authorize or deny the request reised by customer. If he authorizes order will change from RET_REQUEST_RECEIVED
981
        to RET_REQUEST_AUTHORIZED. If he denies, status will be changed back to DELVIERY_SUCCESS.
982
 
983
        Parameters:
984
         - orderId
985
         - isAuthorized
986
        """
987
        try:
7645 anupam.sin 988
            return mark_order_return_request_authorized(orderId, isAuthorized, fromStore, isReship)
4488 rajveer 989
        finally:
990
            close_session()
991
 
4579 rajveer 992
    def requestPickupNumber(self, orderId, providerId):
104 ashish 993
        """
2536 chandransh 994
        Sends out an email to the account manager of the original courier provider used to ship the order.
4452 rajveer 995
        If the order status was DELIVERY_SUCCESS, it is changed to be DOA_PICKUP_REQUEST_RAISED.
996
        If the order status was DOA_PICKUP_REQUEST_RAISED, it is left unchanged.
2536 chandransh 997
        For any other status, it returns false.
998
        Throws an exception if the order with the given id couldn't be found.
104 ashish 999
 
1000
        Parameters:
2536 chandransh 1001
         - orderId
104 ashish 1002
        """
2536 chandransh 1003
        try:
4579 rajveer 1004
            return request_pickup_number(orderId, providerId)
2536 chandransh 1005
        finally:
1006
            close_session()
483 rajveer 1007
 
4602 rajveer 1008
    def authorizePickup(self, orderId, pickupNumber, providerId):
304 ashish 1009
        """
4452 rajveer 1010
        If the order status is DOA_PICKUP_REQUEST_RAISED, it does the following
2536 chandransh 1011
            1. Sends out an email to the customer with the dispatch advice that he has to print as an attachment.
1012
            2. Changes order status to be DOA_PICKUP_AUTHORIZED.
1013
            3. Returns true
1014
        If the order is any other status, it returns false.
1015
        Throws an exception if the order with the given id couldn't be found.
304 ashish 1016
 
1017
        Parameters:
2536 chandransh 1018
         - orderId
1019
         - pickupNumber
304 ashish 1020
        """
2536 chandransh 1021
        try:
4602 rajveer 1022
            return authorize_pickup(orderId, pickupNumber, providerId)
2536 chandransh 1023
        finally:
1024
            close_session()    
2764 chandransh 1025
 
1026
    def markDoasAsPickedUp(self, providerId, pickupDetails):
1027
        """
1028
        Marks all DOA_PICKUP_AUTHORIZED orders of the previous day for a provider as DOA_RETURN_IN_TRANSIT.
1029
 
1030
        Parameters:
1031
         - providerId
1032
         - pickupDetails
1033
        """
1034
        try:
4910 phani.kuma 1035
            mark_doas_as_picked_up(providerId, pickupDetails)
1036
        finally:
1037
            close_session()
1038
 
1039
    def getDoasNotPickedUp(self, providerId):
1040
        """
1041
        Returns a list of orders that were authorized for pickup but did not appear in the pick-up report.
1042
 
1043
        Parameters:
1044
         - providerId
1045
        """
1046
        try:
1047
            orders_not_picked_up = get_doas_not_picked_up(providerId)
2764 chandransh 1048
            return [to_t_order(order) for order in orders_not_picked_up]
1049
        finally:
1050
            close_session()
4910 phani.kuma 1051
 
4741 phani.kuma 1052
    def markReturnOrdersAsPickedUp(self, providerId, pickupDetails):
1053
        """
1054
        Marks all RET_PICKUP_CONFIRMED orders of the previous day for a provider as RET_RETURN_IN_TRANSIT.
1055
 
1056
        Parameters:
1057
         - providerId
1058
         - pickupDetails
1059
        """
1060
        try:
4910 phani.kuma 1061
            mark_return_orders_as_picked_up(providerId, pickupDetails)
1062
        finally:
1063
            close_session()
1064
 
1065
    def getReturnOrdersNotPickedUp(self, providerId):
1066
        """
1067
        Returns a list of orders that were authorized for pickup but did not appear in the pick-up report.
1068
 
1069
        Parameters:
1070
         - providerId
1071
        """
1072
        try:
1073
            orders_not_picked_up = get_return_orders_not_picked_up(providerId)
4741 phani.kuma 1074
            return [to_t_order(order) for order in orders_not_picked_up]
1075
        finally:
1076
            close_session()
4910 phani.kuma 1077
 
13276 manish.sha 1078
    def receiveReturn(self, orderId, receiveCondition, receiveFreebie, serialNumbers):
2591 chandransh 1079
        """
4452 rajveer 1080
        If the order status is DOA_PICKUP_CONFIRMED or DOA_RETURN_IN_TRANSIT, marks the order status as DOA_RECEIVED_PRESTINE and returns true.
2591 chandransh 1081
        If the order is in any other state, it returns false.
1082
        Throws an exception if the order with the given id couldn't be found.
1083
 
1084
        Parameters:
1085
         - orderId
1086
        """
1087
        try:
13276 manish.sha 1088
            return receive_return(orderId, receiveCondition, receiveFreebie, serialNumbers)
2591 chandransh 1089
        finally:
1090
            close_session()
1091
 
1092
    def validateDoa(self, orderId, isValid):
1093
        """
4452 rajveer 1094
        Used to validate the DOA certificate for an order in the DOA_RECEIVED_PRESTINE state. If the certificate is valid,
2609 chandransh 1095
        the order state is changed to DOA_CERT_PENDING.
2591 chandransh 1096
        If the certificate is invalid, the order state is changed to DOA_CERT_INVALID.
1097
        If the order is in any other state, it returns false.
1098
        Throws an exception if the order with the given id couldn't be found.
1099
 
1100
        Parameters:
1101
         - orderId
1102
         - isValid
1103
        """
1104
        try:
1105
            return validate_doa(orderId, isValid)
1106
        finally:
1107
            close_session()
2628 chandransh 1108
 
4495 rajveer 1109
    def validateReturnProduct(self, orderId, isUsable):
1110
        """
1111
        Parameters:
1112
         - orderId
1113
         - isUsable
1114
        """
1115
        try:
1116
            return validate_return_product(orderId, isUsable)
1117
        finally:
1118
            close_session()
1119
 
2628 chandransh 1120
    def reshipOrder(self, orderId):
1121
        """
4484 rajveer 1122
        If the order is in RTO_RECEIVED_PRESTINE or DOA_CERT_INVALID state, it does the following:
2628 chandransh 1123
            1. Creates a new order for processing in the BILLED state. All billing information is saved.
4484 rajveer 1124
            2. Marks the current order as one of the final states RTO_RESHIPPED and DOA_INVALID_RESHIPPED depending on what state the order started in.
2628 chandransh 1125
 
1126
        If the order is in DOA_CERT_VALID state, it does the following:
1127
            1. Creates a new order for processing in the SUBMITTED_FOR_PROCESSING state.
1128
            2. Creates a return order for the warehouse executive to return the DOA material.
4452 rajveer 1129
            3. Marks the current order as the final DOA_VALID_RESHIPPED state.
2628 chandransh 1130
 
1131
        Returns the id of the newly created order.
1132
 
1133
        Throws an exception if the order with the given id couldn't be found.
1134
 
1135
        Parameters:
1136
         - orderId
1137
        """
1138
        try:
1139
            return reship_order(orderId)
1140
        finally:
1141
            close_session()
1142
 
3226 chandransh 1143
    def refundOrder(self, orderId, refundedBy, reason):
2628 chandransh 1144
        """
4484 rajveer 1145
        If the order is in RTO_RECEIVED_PRESTINE, DOA_CERT_VALID or DOA_CERT_INVALID state, it does the following:
2628 chandransh 1146
            1. Creates a refund request for batch processing.
1147
            2. Creates a return order for the warehouse executive to return the shipped material.
4484 rajveer 1148
            3. Marks the current order as RTO_REFUNDED, DOA_VALID_REFUNDED or DOA_INVALID_REFUNDED final states.
2628 chandransh 1149
 
1150
        If the order is in SUBMITTED_FOR_PROCESSING or INVENTORY_LOW state, it does the following:
1151
            1. Creates a refund request for batch processing.
3226 chandransh 1152
            2. Cancels the reservation of the item in the warehouse.
1153
            3. Marks the current order as the REFUNDED final state.
2628 chandransh 1154
 
3226 chandransh 1155
        For all COD orders, if the order is in INIT, SUBMITTED_FOR_PROCESSING or INVENTORY_LOW state, it does the following:
1156
            1. Cancels the reservation of the item in the warehouse.
1157
            2. Marks the current order as CANCELED.
1158
 
1159
        In all cases, it updates the reason for cancellation or refund and the person who performed the action.
1160
 
2628 chandransh 1161
        Returns True if it is successful, False otherwise.
1162
 
1163
        Throws an exception if the order with the given id couldn't be found.
1164
 
1165
        Parameters:
1166
         - orderId
3226 chandransh 1167
         - refundedBy
1168
         - reason
2628 chandransh 1169
        """
1170
        try:
3226 chandransh 1171
            return refund_order(orderId, refundedBy, reason)
2628 chandransh 1172
        finally:
1173
            close_session()
1174
 
2697 chandransh 1175
    def getReturnOrders(self, warehouseId, fromDate, toDate):
1176
        """
1177
        Get all return orders created between the from and to dates for the given warehouse.
1178
        Ignores the warehouse if it is passed as -1.
1179
 
1180
        Parameters:
1181
         - warehouseId
1182
         - fromDate
1183
         - toDate
1184
        """
1185
        try:
1186
            from_date, to_date = get_fdate_tdate(fromDate, toDate)
1187
            return get_return_orders(warehouseId, from_date, to_date)
1188
        finally:
1189
            close_session()
1190
 
5481 phani.kuma 1191
    def getAllReturnOrders(self, onlyNotProcessed, fromDate, toDate):
1192
        """
1193
        Get all return orders created between the from and to dates for the given warehouse.
1194
        Ignores the warehouse if it is passed as -1.
1195
 
1196
        Parameters:
1197
         - warehouseId
1198
         - fromDate
1199
         - toDate
1200
        """
1201
        try:
1202
            from_date, to_date = get_fdate_tdate(fromDate, toDate)
1203
            return get_all_return_orders(onlyNotProcessed, from_date, to_date)
1204
        finally:
1205
            close_session()
1206
 
2700 chandransh 1207
    def getReturnOrder(self, id):
1208
        """
1209
        Returns the ReturnOrder corresponding to the given id.
1210
        Throws an exception if the return order with the given id couldn't be found.
1211
 
1212
        Parameters:
1213
         - id
1214
        """
1215
        try:
1216
            return get_return_order(id)
1217
        finally:
1218
            close_session()
1219
 
2697 chandransh 1220
    def processReturn(self, returnOrderId):
1221
        """
1222
        Marks the return order with the given id as processed. Raises an exception if no such return order exists.
1223
 
1224
        Parameters:
1225
         - returnOrderId
1226
        """
1227
        try:
1228
            process_return(returnOrderId)
1229
        finally:
1230
            close_session()
4757 mandeep.dh 1231
 
1232
    def updateOrdersAsPORaised(self, itemIdQuantityMap, purchaseOrderId, warehouseId):
2819 chandransh 1233
        """
4757 mandeep.dh 1234
        Updates orders as PO raised. Also updates purchase order id in orders. Pass a map of items mapped to
1235
        the quantities for which the PO is raised.
1236
 
2819 chandransh 1237
        Parameters:
4757 mandeep.dh 1238
         - itemIdQuantityMap
1239
         - purchaseOrderId
2819 chandransh 1240
         - warehouseId
1241
        """
1242
        try:
4757 mandeep.dh 1243
            update_orders_as_PORaised(itemIdQuantityMap, purchaseOrderId, warehouseId)
2819 chandransh 1244
        finally:
1245
            close_session()
4757 mandeep.dh 1246
 
3451 chandransh 1247
    def updateWeight(self, orderId, weight):
1248
        """
1249
        Set the weight of the given order to the provided value. Will attempt to update the weight of the item in the catalog as well.
1250
 
1251
        Parameters:
1252
         - orderId
1253
         - weight
1254
        """
1255
        try:
1256
            order = update_weight(orderId, weight)
1257
            return to_t_order(order)
1258
        finally:
1259
            close_session()
1260
 
3469 chandransh 1261
    def changeItem(self, orderId, itemId):
1262
        """
1263
        Change the item to be shipped for this order. Also adjusts the reservation in the inventory accordingly.
1264
        Currently, it also ensures that only a different color of the given item is shipped.
1265
 
1266
        Parameters:
1267
         - orderId
1268
         - itemId
1269
        """
1270
        try:
1271
            order = change_product(orderId, itemId)
1272
            return to_t_order(order)
1273
        finally:
1274
            close_session()
7560 rajveer 1275
 
1276
    def changeCourierProvider(self, orderId, providerId):
1277
        try:
1278
            order = change_courier_provider(orderId, providerId)
1279
            return to_t_order(order)
1280
        finally:
1281
            close_session()
1282
 
3469 chandransh 1283
 
1284
    def shiftToWarehouse(self, orderId, warehouseId):
1285
        """
1286
        Moves the given order to the given warehouse. Also adjusts the inventory reservations accordingly.
1287
 
1288
        Parameters:
1289
         - orderId
1290
         - warehouseId
1291
        """
1292
        try:
1293
            order = change_warehouse(orderId, warehouseId)
1294
            return to_t_order(order)
1295
        finally:
1296
            close_session()
3553 chandransh 1297
 
4647 rajveer 1298
    def addDelayReason(self, orderId, delayReason, furtherDelay, delayReasonText):
3553 chandransh 1299
        """
1300
        Adds the given delay reason to the given order.
3986 chandransh 1301
        Increases the expected delivery time of the given order by the given no. of days.
3553 chandransh 1302
        Raises an exception if no order with the given id can be found.
3469 chandransh 1303
 
3553 chandransh 1304
        Parameters:
1305
         - orderId
1306
         - delayReason
1307
        """
1308
        try:
4647 rajveer 1309
            return add_delay_reason(orderId, delayReason, furtherDelay, delayReasonText)
3553 chandransh 1310
        finally:
1311
            close_session()
1312
 
3956 chandransh 1313
    def reconcileCodCollection(self, collectedAmountMap, xferBy, xferTxnId, xferDate):
1314
        """
1315
        Marks the COD orders with given AWB nos. as having been processed.
1316
        Updates the captured amount for the corresponding payment.
1317
 
1318
        Returns a map of AWBs which were not processed and the associated reason. An AWB is not processed if:
1319
        1. There is no order corresponding to an AWB number.
1320
        2. The captured amount for a payment exceeds the total payment.
1321
        3. The order corresponding to an AWB no. is in a state prior to DELIVERY_SUCCESS.
1322
 
1323
        Parameters:
1324
         - collectedAmountMap
1325
         - xferBy
1326
         - xferTxnId
1327
         - xferDate
1328
        """
1329
        try:
1330
            return reconcile_cod_collection(collectedAmountMap, xferBy, xferTxnId, xferDate)
1331
        finally:
1332
            close_session()
4008 mandeep.dh 1333
 
1334
    def getTransactionsRequiringExtraProcessing(self, category):
1335
        """
1336
        Returns the list of transactions that require some extra processing and
1337
        which belong to a particular category. This is currently used by CRM
1338
        application.
1339
        """
1340
        try:
1341
            return get_transactions_requiring_extra_processing(category)
1342
        finally:
1343
            close_session()
1344
 
1345
    def markTransactionAsProcessed(self, transactionId, category):
1346
        """
1347
        Marks a particular transaction as processed for a particular category.
1348
        It essentially deletes the transaction if it is processed for a particular
1349
        category. This is currently used by CRM application.
1350
        """
1351
        try:
1352
            return mark_transaction_as_processed(transactionId, category)
1353
        finally:
1354
            close_session()
4018 chandransh 1355
 
1356
    def getItemWiseRiskyOrdersCount(self, ):
1357
        """
1358
        Returns a map containing the number of risky orders keyed by item id. A risky order
1359
        is defined as one whose shipping date is about to expire.
1360
        """
1361
        try:
1362
            return get_item_wise_risky_orders_count()
1363
        finally:
1364
            close_session()
3956 chandransh 1365
 
4247 rajveer 1366
    def markOrderCancellationRequestReceived(self, orderId):
1367
        """
1368
        Mark order as cancellation request received. If customer sends request of cancellation of
1369
        a particular order, this method will be called. It will just change status of the order
1370
        depending on its current status. It also records the previous status, so that we can move
1371
        back to that status if cancellation request is denied.
1372
 
1373
        Parameters:
1374
         - orderId
1375
        """
1376
        try:
1377
            return mark_order_cancellation_request_received(orderId)
1378
        finally:
1379
            close_session()
1380
 
1381
 
4662 rajveer 1382
    def markOrderAsLostInTransit(self, orderId):
1383
        """
1384
        Parameters:
1385
         - orderId
1386
        """
1387
        try:
1388
            return mark_order_as_lost_in_transit(orderId)
1389
        finally:
1390
            close_session()
1391
 
4258 rajveer 1392
    def markTransactionAsPaymentFlagRemoved(self, transactionId):
4247 rajveer 1393
        """
4258 rajveer 1394
        If we and/or payment gateway has decided to accept the payment, this method needs to be called.
1395
        Changed transaction and all orders status to payment accepted.
4247 rajveer 1396
 
1397
        Parameters:
4258 rajveer 1398
         - transactionId
4247 rajveer 1399
        """
1400
        try:
4259 anupam.sin 1401
            return mark_transaction_as_payment_flag_removed(transactionId)
4247 rajveer 1402
        finally:
1403
            close_session()
4259 anupam.sin 1404
 
1405
    def refundTransaction(self, transactionId, refundedBy, reason):
1406
        """
1407
        This method is called when a flagged payment is deemed unserviceable and the corresponding orders
1408
        need to be cancelled
1409
 
1410
        Parameters:
1411
         - transactionId
1412
        """
1413
        try:
1414
            return refund_transaction(transactionId, refundedBy, reason)
1415
        finally:
1416
            close_session()
4247 rajveer 1417
 
1418
    def markOrderCancellationRequestDenied(self, orderId):
1419
        """
1420
        If we decide to not to cancel order, we will move the order ro previous status.
1421
 
1422
        Parameters:
1423
         - orderId
1424
        """
1425
        try:
1426
            return mark_order_cancellation_request_denied(orderId)
1427
        finally:
1428
            close_session()
1429
 
1430
    def markOrderCancellationRequestConfirmed(self, orderId):
1431
        """
1432
        If we decide to to cancel order, CRM will call this method to move the status of order to
1433
        cancellation request confirmed. After this OM will be able to cancel the order.
1434
 
1435
        Parameters:
1436
         - orderId
1437
        """
1438
        try:
1439
            return mark_order_cancellation_request_confirmed(orderId)
1440
        finally:
1441
            close_session()
1442
 
4324 mandeep.dh 1443
    def updateShipmentAddress(self, orderId, addressId):
1444
        """
1445
        Updates shipment address of an order. Delivery and shipping date estimates
1446
        etc. are also updated here.
1447
 
1448
        Throws TransactionServiceException in case address change is not
1449
        possible due to certain reasons such as new pincode in address is
1450
        not serviceable etc.
1451
 
1452
        Parameters:
1453
         - orderId
1454
         - addressId
1455
        """
1456
        try:
1457
            update_shipment_address(orderId, addressId)
1458
        finally:
1459
            close_session()
1460
 
4285 rajveer 1461
    def acceptOrdersForItemId(self, itemId, inventory):
1462
        """
1463
        Marks the orders as ACCEPTED for the given itemId and inventory. It also updates the accepted timestamp. If the
1464
        given order is not a COD order, it also captures the payment if the same has not been captured.
1465
 
1466
        Parameters:
1467
         - itemId
1468
         - inventory
1469
        """
1470
        try:
1471
            return accept_orders_for_item_id(itemId, inventory)
1472
        finally:
1473
            close_session()
1474
 
4303 rajveer 1475
 
1476
 
4369 rajveer 1477
    def markOrdersAsPORaised(self, vendorId, itemId, quantity, estimate, isReminder):
4303 rajveer 1478
        """
1479
        Parameters:
1480
         - vendorId
1481
         - itemId
1482
         - quantity
1483
         - estimate
4369 rajveer 1484
         - isReminder
4303 rajveer 1485
        """
1486
        try:
4369 rajveer 1487
            return mark_orders_as_po_raised(vendorId, itemId, quantity, estimate, isReminder)
4303 rajveer 1488
        finally:
1489
            close_session()
1490
 
4369 rajveer 1491
    def markOrdersAsReversalInitiated(self, vendorId, itemId, quantity, estimate, isReminder):
4303 rajveer 1492
        """
1493
        Parameters:
1494
         - vendorId
1495
         - itemId
1496
         - quantity
1497
         - estimate
4369 rajveer 1498
         - isReminder
4303 rajveer 1499
        """
1500
        try:
4369 rajveer 1501
            return mark_orders_as_reversal_initiated(vendorId, itemId, quantity, estimate, isReminder)
4303 rajveer 1502
        finally:
1503
            close_session()
1504
 
4369 rajveer 1505
    def markOrdersAsNotAvailabke(self, vendorId, itemId, quantity, estimate, isReminder):
4303 rajveer 1506
        """
1507
        Parameters:
1508
         - vendorId
1509
         - itemId
1510
         - quantity
1511
         - estimate
4369 rajveer 1512
         - isReminder
4303 rajveer 1513
        """
1514
        try:
4369 rajveer 1515
            return mark_orders_as_not_available(vendorId, itemId, quantity, estimate, isReminder)
4303 rajveer 1516
        finally:
1517
            close_session()
1518
 
1519
 
4369 rajveer 1520
    def markOrdersAsTimeout(self, vendorId):
1521
        """
1522
        Parameters:
1523
         - vendorId
1524
        """
1525
        try:
1526
            return mark_orders_as_timeout(vendorId)
1527
        finally:
1528
            close_session()
4386 anupam.sin 1529
 
1530
    def getOrderForAwb(self, awb):
1531
        """
1532
        Parameters:
1533
         - AirwayBill Number
1534
        """
13276 manish.sha 1535
        ret_Orders =[]
1536
 
4386 anupam.sin 1537
        try:
13276 manish.sha 1538
            orderList = get_order_for_awb(awb)
1539
            for order in orderList:
1540
                ret_Orders.append(to_t_order(order))
1541
            return ret_Orders
4386 anupam.sin 1542
        finally:
1543
            close_session()
4369 rajveer 1544
 
4910 phani.kuma 1545
    def getOrdersForProviderForStatus(self, provider_id, order_status_list):
4506 phani.kuma 1546
        """
1547
        Parameters:
1548
         - provider id
1549
         - order status
1550
        """
1551
        try:
4910 phani.kuma 1552
            orders_of_provider_by_status = get_orders_for_provider_for_status(provider_id, order_status_list)
4506 phani.kuma 1553
            return [to_t_order(order) for order in orders_of_provider_by_status if order != None]
1554
        finally:
1555
            close_session()
4600 varun.gupt 1556
 
1557
    def getBilledOrdersForVendor(self, vendorId, billingDateFrom, billingDateTo):
1558
        '''
1559
        Parameters:
1560
         - vendorId
1561
         - billingDateFrom
1562
         - billingDateTo
1563
        '''
1564
        try:
1565
            return [to_t_order(order) for order in get_billed_orders_for_vendor(vendorId, to_py_date(billingDateFrom), to_py_date(billingDateTo))]
1566
        finally:
1567
            close_session()
1568
 
4607 rajveer 1569
    def getSlippedSippingDateOrders(self):
1570
        try:
1571
            return [to_t_order(order) for order in get_slipped_sipping_date_orders()]
1572
        finally:
1573
            close_session()
1574
 
4709 rajveer 1575
    def getCancelledOrders(self, cancelDateFrom, cancelDateTo):
1576
        try:
1577
            return [to_t_order(order) for order in get_cancelled_orders(to_py_date(cancelDateFrom), to_py_date(cancelDateTo))]
1578
        finally:
1579
            close_session()
1580
 
4600 varun.gupt 1581
    def getEBSSettlementSummaries(self):
1582
        try:
1583
            return get_ebs_settlement_summaries()
1584
        finally:
1585
            close_session()
4369 rajveer 1586
 
4600 varun.gupt 1587
    def saveEBSSettlementSummary(self, settlementId, settlementDate, transactionDateFrom, transactionDateTo, amount):
1588
        try:
1589
            save_ebs_settlement_summary(settlementId, to_py_date(settlementDate), to_py_date(transactionDateFrom), to_py_date(transactionDateTo), amount)
1590
        finally:
1591
            close_session()
1592
 
5386 phani.kuma 1593
    def getSettlementForPrepaid(self, referenceId, isRefund):
4600 varun.gupt 1594
        '''
1595
        Parameters:
5189 varun.gupt 1596
         - referenceId
1597
         - isRefund
4600 varun.gupt 1598
        '''
1599
        try:
5386 phani.kuma 1600
            return to_t_payment_settlement(get_settlement_for_Prepaid(referenceId, isRefund))
4600 varun.gupt 1601
        finally:
1602
            close_session()
5386 phani.kuma 1603
 
1604
    def getSettlementForCod(self, orderId, isRefund):
1605
        '''
1606
        Parameters:
1607
         - orderId
1608
         - isRefund
1609
        '''
1610
        try:
1611
            return to_t_payment_settlement(get_settlement_for_Cod(orderId, isRefund))
1612
        finally:
1613
            close_session()
1614
 
4600 varun.gupt 1615
    def getEBSSettlementDate(self, settlementId):
1616
        try:
1617
            return to_java_date(get_ebs_settlement_date(settlementId))
1618
        finally:
1619
            close_session()
1620
 
4905 varun.gupt 1621
    def savePaymentSettlements(self, settlementDate, paymentGatewayId, referenceId, serviceTax, otherCharges, netCollection):
4600 varun.gupt 1622
        try:
4905 varun.gupt 1623
            save_payment_settlements(to_py_date(settlementDate), paymentGatewayId, referenceId, serviceTax, otherCharges, netCollection)
4600 varun.gupt 1624
        finally:
1625
            close_session()
1626
 
1627
    def markEBSSettlementUploaded(self, settlementId):
1628
        try:
1629
            mark_ebs_settlement_uploaded(settlementId)
1630
        finally:
1631
            close_session()
1632
 
4715 varun.gupt 1633
    def getSettlementsByDate(self, settlementDateFrom, settlementDateTo, isRefund):
1634
        try:
1635
            settlements = get_settlements_by_date(to_py_date(settlementDateFrom), to_py_date(settlementDateTo), isRefund)
1636
            return [to_t_payment_settlement(settlement) for settlement in settlements]
1637
        finally:
1638
            close_session()
1639
 
1640
    def getReshippedOrderIds(self, orderIds):
1641
        try:
1642
            return get_reshipped_order_ids(orderIds)
1643
        finally:
1644
            close_session()
1645
 
5481 phani.kuma 1646
    def getBilledOrders(self, vendorId, onlyVendorNotPaid, billingDateFrom, billingDateTo):
4875 varun.gupt 1647
        try:
5481 phani.kuma 1648
            from_date, to_date = get_fdate_tdate(billingDateFrom, billingDateTo)
1649
            return [to_t_order(order) for order in get_billed_orders(vendorId, onlyVendorNotPaid, from_date, to_date)]
4875 varun.gupt 1650
        finally:
1651
            close_session()
1652
 
5062 varun.gupt 1653
    def getStatusDistributionOfOrders(self, startDate, endDate):
1654
        try:
5067 varun.gupt 1655
            distribution = {}
1656
 
1657
            for status, count in get_order_distribution_by_status(to_py_date(startDate), to_py_date(endDate)):
1658
                distribution[status] = count
1659
 
1660
            return distribution
5062 varun.gupt 1661
        finally:
1662
            close_session()
1663
 
5067 varun.gupt 1664
    def getOrderIdsForStatus(self, status, startDatetime, endDatetime):
1665
        try:
1666
            orders = get_order_ids_for_status(status, to_py_date(startDatetime), to_py_date(endDatetime))
1667
            return [order.id for order in orders]
1668
        finally:
1669
            close_session()
1670
 
5099 varun.gupt 1671
    def updateOrderAsPaidToVendor(self, orderId):
1672
        try:
1673
            update_orders_as_paid_to_vendor(orderId)
1674
        finally:
1675
            close_session()
1676
 
5348 anupam.sin 1677
    def updateCODAgent(self, agentEmailId, orderId):
1678
        try:
1679
            update_COD_agent(agentEmailId, orderId)
1680
        finally:
1681
            close_session()
1682
 
5386 phani.kuma 1683
    def updateOrderOnlyAsPaidToVendor(self, orderId):
1684
        try:
1685
            update_order_only_as_paid_to_vendor(orderId)
1686
        finally:
1687
            close_session()
1688
 
5208 varun.gupt 1689
    def getRefundedOrdersMarkedPaid(self):
1690
        try:
1691
            return [to_t_order(order) for order in get_refunded_orders_marked_paid()]
1692
        finally:
1693
            close_session()
5447 anupam.sin 1694
 
1695
    def getAllVerificationAgents(self, minOrderId, maxOrderId):
1696
        try:
1697
            return [to_t_verification_agent(codAgent) for codAgent in get_all_verification_agents(minOrderId, maxOrderId)]
1698
        finally:
5527 anupam.sin 1699
            close_session()
1700
 
1701
    def getAllAttributesForOrderId(self, orderId):
1702
        try:
1703
            return [to_t_attribute(attribute) for attribute in get_all_attributes_for_order_id(orderId)]
1704
        finally:
1705
            close_session()
1706
 
1707
    def setOrderAttributeForTransaction(self, transactionId, attribute):
1708
        try:
1709
            set_order_attribute_for_transaction(transactionId, attribute)                    
1710
        finally:
1711
            close_session()
5593 mandeep.dh 1712
 
1713
    def acceptOrderForItem(self, itemId, quantity, fulfilmentWarehouseId, billingWarehouseId):
1714
        """
1715
        Accepts appropriate order for an item in a given billingWarehouse. Usually
1716
        invoked while scanning IN of items.
1717
 
1718
        Parameters:
1719
         - itemId
1720
         - quantity
1721
         - fulfilmentWarehouseId
1722
         - billingWarehouseId
1723
        """
1724
        try:
1725
            accept_order_for_item(itemId, quantity, fulfilmentWarehouseId, billingWarehouseId)
1726
        finally:
1727
            close_session()
1728
 
5833 rajveer 1729
    def getOrderAttributeValue(self, orderId, attributeName):
1730
        """
1731
        Parameters:
1732
         - orderId
1733
         - attributeName
1734
        """
1735
        try:
6019 rajveer 1736
            return get_order_attribute_value(orderId, attributeName)
5833 rajveer 1737
        finally:
1738
            close_session()
1739
 
6019 rajveer 1740
    def changeJacketNumber(self, orderId, jacketNumber):
1741
        """
1742
        Parameters:
1743
         - orderId
1744
         - jacketNumber
1745
        """
1746
        try:
1747
            return change_jacket_number(orderId, jacketNumber)
1748
        finally:
1749
            close_session()
1750
 
1751
    def markOrderAsRtoInTransit(self, orderId):
1752
        """
1753
        Parameters:
1754
         - orderId
1755
        """
1756
        try:
1757
            return mark_order_as_rto_in_transit(orderId)
1758
        finally:
1759
            close_session()        
1760
 
6000 mandeep.dh 1761
    def createRechargeOrder(self, thriftRechargeOrder):
1762
        """
1763
        Parameters:
1764
         - thriftRechargeOrder
1765
        """
6031 rajveer 1766
        try:
1767
            if thriftRechargeOrder is None or thriftRechargeOrder.rechargeType is None:
1768
                raise TransactionServiceException(102, 'Order or the type is Null')
1769
 
1770
            rechargeOrder = None
1771
            if thriftRechargeOrder.rechargeType == RechargeType.MOBILE:
1772
                rechargeOrder = MobileRechargeOrder()
1773
            elif thriftRechargeOrder.rechargeType == RechargeType.DTH:
1774
                rechargeOrder = DTHRechargeOrder()
1775
 
1776
            if rechargeOrder is None:
1777
                raise TransactionServiceException(102, 'Unsupported recharge type')
6000 mandeep.dh 1778
 
6031 rajveer 1779
            transaction = DigitalTransaction()
1780
            transaction.createdOn = datetime.datetime.now()
6056 amit.gupta 1781
            transaction.userId = thriftRechargeOrder.userId
6031 rajveer 1782
            transaction.orders = [rechargeOrder]
1783
 
6000 mandeep.dh 1784
            rechargeOrder.from_thrift_object(thriftRechargeOrder)
1785
            session.commit()
6031 rajveer 1786
            return rechargeOrder.to_thrift_object()
6000 mandeep.dh 1787
        except:
1788
            raise TransactionServiceException(103, 'Invalid values passed')
1789
        finally:
1790
            self.closeSession()
1791
 
6031 rajveer 1792
    def getRechargeOrder(self, rechargeOrderId):
1793
        """
1794
        Parameters:
1795
         - rechargeOrderId
1796
        """
1797
        try:
6048 rajveer 1798
            return get_recharge_order(rechargeOrderId).to_thrift_object()
6031 rajveer 1799
        finally:
1800
            self.closeSession()
1801
 
1802
    def getRechargeOrders(self, userId):
1803
        """
1804
        Parameters:
1805
         - userId
1806
        """
1807
        try:
1808
            return [order.to_thrift_object() for order in get_recharge_orders(userId)]
1809
        finally:
1810
            self.closeSession()
1811
 
6000 mandeep.dh 1812
    def updateRechargeOrderStatus(self, rechargeOrderId, rechargeOrderStatus):
1813
        """
1814
        Parameters:
1815
         - rechargeOrderId
1816
         - rechargeOrderStatus
1817
        """
6031 rajveer 1818
        try:
1819
            return update_recharge_order_status(rechargeOrderId, rechargeOrderStatus)
1820
        finally:
1821
            self.closeSession()
1822
 
1823
    def activateRechargeTxn(self, rechargeOrderId):
6000 mandeep.dh 1824
        """
1825
        Parameters:
6031 rajveer 1826
         - rechargeOrderId
6000 mandeep.dh 1827
        """
6031 rajveer 1828
        try:
1829
            return True
1830
            activate_recharge_txn(rechargeOrderId)
1831
        finally:
1832
            self.closeSession()
6000 mandeep.dh 1833
 
6031 rajveer 1834
    def getUserWallet(self, userId):
6000 mandeep.dh 1835
        """
1836
        Parameters:
6031 rajveer 1837
         - userId
6000 mandeep.dh 1838
        """
6031 rajveer 1839
        try:
1840
            return get_user_wallet(userId).to_thrift_object()
1841
        finally:
1842
            self.closeSession()
6000 mandeep.dh 1843
 
6031 rajveer 1844
    def getUserWalletHistory(self, userId):
6000 mandeep.dh 1845
        """
1846
        Parameters:
6031 rajveer 1847
         - userId
6000 mandeep.dh 1848
        """
6031 rajveer 1849
        try:
1850
            return [wallet.to_thrift_object() for wallet in get_user_wallet_history(userId)]
1851
        finally:
1852
            self.closeSession()
6000 mandeep.dh 1853
 
6206 rajveer 1854
    def getServiceProviders(self, rechargeType, onlyActive):
6048 rajveer 1855
        """
1856
        Parameters:
1857
         - rechargeType
6206 rajveer 1858
         - onlyActive
6048 rajveer 1859
        """
6077 anupam.sin 1860
 
6048 rajveer 1861
        try:
6206 rajveer 1862
            return get_service_providers(rechargeType, onlyActive)
6048 rajveer 1863
        finally:
1864
            self.closeSession()
1865
 
6049 rajveer 1866
    def getServiceProviderForDevice(self, rechargeType, deviceNumber):
6048 rajveer 1867
        """
1868
        Parameters:
1869
         - deviceNumber
1870
        """
1871
        try:
6049 rajveer 1872
            return get_service_provider_for_device(rechargeType, deviceNumber)
6048 rajveer 1873
        finally:
1874
            self.closeSession()
6056 amit.gupta 1875
 
6591 anupam.sin 1876
    def validateRecharge(self, rechargeType, deviceNumber, userSelectedProviderId, clientAddress):
6269 rajveer 1877
        """
1878
        Parameters:
1879
         - deviceNumber
1880
        """
1881
        try:
6591 anupam.sin 1882
            return validate_recharge(rechargeType, deviceNumber, userSelectedProviderId, clientAddress)
6269 rajveer 1883
        finally:
1884
            self.closeSession()
1885
 
6056 amit.gupta 1886
    def getRechargeOrdersForTransaction(self, txId):
1887
        """
1888
        Parameters:
1889
         - transactionId
1890
        """
1891
        try:
1892
            return get_recharge_orders_for_transaction(txId).to_thrift_object()
1893
        finally:
1894
            self.closeSession()
6048 rajveer 1895
 
6094 rajveer 1896
    def getRechargeOrdersForDevice(self, deviceNumber):
1897
        """
1898
        Parameters:
1899
        - deviceNumber
1900
        """
1901
        try:
1902
            return [order.to_thrift_object() for order in get_recharge_orders_for_device(deviceNumber)]
1903
        finally:
1904
            self.closeSession()
1905
 
6154 rajveer 1906
    def getRechargeOrdersForStatus(self, status):
1907
        """
1908
        Parameters:
1909
        - status
1910
        """
1911
        try:
1912
            return [order.to_thrift_object() for order in get_recharge_orders_for_status(status)]
1913
        finally:
1914
            self.closeSession()
1915
 
6159 rajveer 1916
    def getPlansForOperator(self, operatorId):
1917
        """
1918
        Parameters:
1919
        - operatorId
1920
        """
1921
        try:
1922
            return [plan.to_thrift_object() for plan in get_plans_for_operator(operatorId)]
1923
        finally:
1924
            self.closeSession()
1925
 
1926
 
6094 rajveer 1927
    def addAmountToWallet(self, userId, orderId, amount):
1928
        """
1929
        Parameters:
1930
        - userId
1931
        - orderId
1932
        - amount
1933
        """
1934
        try:
8729 anupam.sin 1935
            update_amount_in_wallet(userId, amount, orderId, 0)
6094 rajveer 1936
        finally:
1937
            self.closeSession()
1938
 
6188 rajveer 1939
    def getRechargeStatistics(self):
1940
        """
1941
        Parameters:
1942
        """
1943
        try:
1944
            return get_recharge_statistics()
1945
        finally:
1946
            self.closeSession()
1947
 
6307 anupam.sin 1948
    def getRechargeDenominations(self, operatorId, circleCode, denominationType):
6289 anupam.sin 1949
        try:
1950
            returnList = []
6307 anupam.sin 1951
            rechargeDenominations = get_recharge_denominations(operatorId, circleCode, denominationType)
6289 anupam.sin 1952
            for rechargeDenomination in rechargeDenominations:
1953
                returnList.append(rechargeDenomination.to_thrift_object())
1954
            return returnList
1955
        finally:
1956
            self.closeSession() 
6188 rajveer 1957
 
6371 rajveer 1958
    def updateAvailabilityStatus(self, operatorId, circleId, isAvailable):
1959
        try:
1960
            update_availability_status(operatorId, circleId, isAvailable)
1961
        finally:
1962
            self.closeSession() 
1963
 
6396 amit.gupta 1964
    def getAvailableEmiSchemes(self):
1965
        try:
1966
            return get_available_emi_schemes()
1967
        finally:
1968
            self.closeSession()
1969
 
6389 rajveer 1970
    def getMiscCharges(self, transactionId):
1971
        try:
1972
            return get_misc_charges(transactionId)
1973
        finally:
1974
            self.closeSession()
1975
 
6507 anupam.sin 1976
    def refundRechargeOrder (self, rechargeOrderId):
1977
        try:
1978
            return refund_recharge_order(rechargeOrderId)
1979
        finally:
1980
            self.closeSession()
6821 amar.kumar 1981
 
1982
    def getPhysicalOrders(self, start_date, end_date):
1983
        try:
6832 amar.kumar 1984
            return [to_t_order(order) for order in get_physical_orders(to_py_date(start_date), to_py_date(end_date))]
6821 amar.kumar 1985
        finally:
1986
            self.closeSession()
6507 anupam.sin 1987
 
6906 rajveer 1988
    def getDocument(self, docType, docSource):
1989
        try:
1990
            return get_document(docType, docSource)
1991
        finally:
1992
            self.closeSession()
6988 rajveer 1993
 
7075 rajveer 1994
    def retrieveInvoice(self, orderId, userId):
6988 rajveer 1995
        try:
7075 rajveer 1996
            return retrieve_invoice(orderId,userId)
6988 rajveer 1997
        finally:
1998
            self.closeSession()
6906 rajveer 1999
 
7027 rajveer 2000
    def receiveUpdatesForRedExpress(self, awbNumber):
2001
        try:
7032 rajveer 2002
            return RedExpressUpdateService.get_updates_for_user(awbNumber)
7027 rajveer 2003
        finally:
2004
            self.closeSession()
2005
 
6985 anupam.sin 2006
    def changeShippingAddress(self, orderId, line1, line2, city, state, pin):
2007
        try:
2008
            return change_shipping_address(orderId, line1, line2, city, state, pin)
2009
        finally:
2010
            self.closeSession()
2011
 
7073 anupam.sin 2012
    def createRechargeTransaction(self, t_rechargeTransaction):
2013
        try:
2014
            return to_t_rechargeTransaction(create_recharge_transaction(t_rechargeTransaction))
2015
        finally:
2016
            self.closeSession()
7084 rajveer 2017
 
2018
    def getRechargeTransactions(self, storeId):
2019
        try:
2020
            return [to_t_rechargeTransaction(txn) for txn in get_recharge_transactions(storeId)]
2021
        finally:
2022
            self.closeSession()
2023
 
7151 amit.gupta 2024
    def getRechargeTrans(self, storeId, startdate, enddate, status):
2025
        try:
2026
            return [to_t_rechargeTransaction(txn) for txn in get_recharge_trans(storeId,startdate, enddate, status)]
2027
        finally:
2028
            self.closeSession()
7084 rajveer 2029
 
7080 anupam.sin 2030
    def getRechargeTransaction(self, rechargeId):
2031
        try:
2032
            return to_t_rechargeTransaction(get_recharge_transaction(rechargeId))
2033
        finally:
2034
            self.closeSession()
2035
 
2036
    def getFRCs(self, circleId, operatorId):
2037
        try:
2038
            return [to_t_frc(frc) for frc in get_frcs(circleId, operatorId)]
2039
        finally:
2040
            self.closeSession()
2041
 
7096 anupam.sin 2042
    def getHotspotStore(self, id, hotspotid):
2043
        try:
2044
            return to_t_hotspot(get_hotspot_store(id, hotspotid))
2045
        finally:
2046
            self.closeSession()
2047
 
2048
    def getTelecomCircle(self, id, code):
2049
        try:
2050
            return get_circle(id, code).to_thrift_object()
2051
        finally:
2052
            self.closeSession()
2053
 
7109 anupam.sin 2054
    def retrieveHotspotRechargeInvoice(self, rechargeId):
2055
        try:
2056
            return retrieve_hotspot_recharge_invoice(rechargeId)
2057
        finally:
2058
            self.closeSession()
7190 amar.kumar 2059
 
2060
    def splitFreebieOrder(self, orderId, splitReason, shippingDate):
2061
        try:
2062
            return split_freebie_order(orderId, splitReason, shippingDate)
2063
        finally:
2064
            self.closeSession()
7109 anupam.sin 2065
 
7172 anupam.sin 2066
    def getRechargeTransactionsByNumber(self, number, storeId):
7169 anupam.sin 2067
        try:
7172 anupam.sin 2068
            return [to_t_rechargeTransaction(txn) for txn in get_recharge_transactions_by_number(number, storeId)]
7169 anupam.sin 2069
        finally:
2070
            self.closeSession()
2071
 
2072
    def updateHotspotStorePassword(self, storeId, password):
2073
        try:
2074
            return update_hotspot_store_password(storeId, password)
2075
        finally:
2076
            self.closeSession()
2077
 
7263 anupam.sin 2078
    def getSourceDetail(self, source):
2079
        try:
2080
            return to_t_sourcedetail(get_source_detail(source))
2081
        finally:
2082
            self.closeSession()
2083
 
7267 anupam.sin 2084
    def getAllCircles(self):
2085
        try:
2086
            return [circle.to_thrift_object() for circle in get_all_circles()]
2087
        finally:
2088
            self.closeSession()
7263 anupam.sin 2089
 
7267 anupam.sin 2090
    def deleteFrcs(self, frcIdsToDelete):
2091
        try:
2092
            return delete_frcs(frcIdsToDelete)
2093
        finally:
2094
            self.closeSession()
7285 rajveer 2095
 
2096
    def topupCompanyWallet(self, companyId, amount):
2097
        try:
2098
            return topup_company_wallet(companyId, amount)
2099
        finally:
2100
            self.closeSession()
2101
 
2102
    def getWalletBalanceForCompany(self, companyId):
2103
        try:
2104
            return get_wallet_balance_for_company(companyId)
2105
        finally:
2106
            self.closeSession()
7311 kshitij.so 2107
 
2108
    def addAmazonOrder(self,amazonOrder):
2109
        try:
2110
            add_amazon_order(amazonOrder)
2111
        except:
2112
            self.closeSession()
2113
 
7322 vikram.rag 2114
    def updateAmazonOrderStatus(self,orderId,status):
7311 kshitij.so 2115
        try:
7577 rajveer 2116
            return update_amazon_order_status(orderId,status)
7311 kshitij.so 2117
        finally:
2118
            self.closeSession()
7322 vikram.rag 2119
 
7683 vikram.rag 2120
    def getAmazonOrdersShipped(self):
7311 kshitij.so 2121
        try:
7683 vikram.rag 2122
            ordersShipped = get_amazon_orders_shipped()
7311 kshitij.so 2123
        finally:
2124
            self.closeSession()
2125
            return ordersShipped
2126
 
2127
    def getAmazonOrdersCancelled(self,interval):
2128
        ordersCancelled=None
2129
        try:
2130
            ordersCancelled = get_amazon_orders_cancelled(interval)
2131
        except:
2132
            ordersCancelled=None
2133
        finally:
2134
            self.closeSession()
2135
            return ordersCancelled
2136
 
7322 vikram.rag 2137
    def getAmazonOrder(self,orderId):
2138
        result = None
2139
        try:
7343 anupam.sin 2140
            result = to_t_amazonorder(get_amazon_order(orderId))
7322 vikram.rag 2141
        finally:
2142
            self.closeSession()
7542 vikram.rag 2143
            return result
2144
 
2145
    def getAmazonOrderByAmazonOrderId(self,amazonOrderId):
2146
        result = []
2147
        try:
2148
            for amazonOrder in get_amazon_order_by_amazonorderid(amazonOrderId): 
2149
                result.append(to_t_amazonorder(amazonOrder))
2150
        except:
2151
            return None
2152
        finally:
2153
            self.closeSession()
2154
            return result
7343 anupam.sin 2155
 
2156
    def getOrdersForStore(self, id, storeId, startDate, endDate, statuses):
2157
        try:
2158
            return [to_t_order(order) for order in get_orders_for_store(id, storeId, to_py_date(startDate), to_py_date(endDate), statuses)]
2159
        finally:
2160
            self.closeSession()
2161
 
7386 anupam.sin 2162
    def getStoreOrderAdvanceInvoice(self, orderId, storeId):
7343 anupam.sin 2163
        try:
7386 anupam.sin 2164
            return get_store_order_advance_invoice(orderId, storeId)
7343 anupam.sin 2165
        finally:
2166
            self.closeSession()
7363 rajveer 2167
 
2168
    def getSaholicRechargeBalance(self):
2169
        try:
2170
            return RechargeService.getBalance()
2171
        finally:
2172
            self.closeSession()
2173
 
7370 anupam.sin 2174
    def addFrc(self, circle, operatorId, denomination, maxDiscount):
2175
        try:
2176
            return add_frc(circle, operatorId, denomination, maxDiscount)
2177
        except:
2178
            return False
2179
        finally:
2180
            self.closeSession()
2181
 
7371 anupam.sin 2182
    def addSeries(self, circle, operatorId, series):
2183
        try:
2184
            return add_series(circle, operatorId, series)
2185
        except:
2186
            return "Error Occured. Try Again."
2187
        finally:
2188
            self.closeSession()
2189
 
7386 anupam.sin 2190
    def saveStoreOrderDetail(self, storeOrderDetail):
2191
        try:
2192
            return save_store_order_detail(storeOrderDetail)
2193
        except:
2194
            return False
2195
        finally:
2196
            self.closeSession()
2197
 
2198
 
2199
    def getStoreOrderDetail(self, orderId, storeId):
2200
        try:
2201
            return to_t_storeOrderDetail(get_store_order_detail(orderId, storeId))
2202
        finally:
2203
            self.closeSession()
2204
 
2205
    def getAllEdcBanks(self):
2206
        try:
2207
            return get_all_edc_banks()
2208
        finally:
2209
            self.closeSession()
7393 anupam.sin 2210
 
2211
    def saveRefundAmountsForStoreOrder(self, orderId, storeId, cashRefundAmount, cardRefundAmount):
2212
        try:
7399 anupam.sin 2213
            return save_refund_amounts_for_store_order(orderId, storeId, cashRefundAmount, cardRefundAmount)
7393 anupam.sin 2214
        finally:
2215
            self.closeSession()
7386 anupam.sin 2216
 
7427 anupam.sin 2217
    def getCollectionsForStore(self, storeId, startDate, endDate):
2218
        try:
2219
            return [to_t_storeOrderCollection(collection) for collection in get_collections_for_store(storeId, startDate, endDate)]
2220
        finally:
2221
            self.closeSession()
7442 vikram.rag 2222
 
12614 amit.gupta 2223
    def getAmazonOrdersToAcknowledge(self, source):
7442 vikram.rag 2224
        try:
2225
            ordersack = []
12614 amit.gupta 2226
            for amazonOrderId,amazonOrderCode,status,txnid,count in get_amazon_orders_to_acknowledge(source):
7442 vikram.rag 2227
                orderack = AmazonOrdersToAcknowledge()
2228
                orderack.amazonOrderId = amazonOrderId
2229
                orderack.amazonOrderItemId = amazonOrderCode
2230
                orderack.status = status
2231
                orderack.transaction_id = txnid
2232
                orderack.count = count
2233
                ordersack.append(orderack)
2234
            return ordersack    
2235
        except:
2236
            return None
2237
        finally:
2238
            self.closeSession()   
2239
 
2240
    def changeAmazonOrderStatus(self,amazonOrderCode,status):
2241
        try:
2242
            change_amazon_order_status(amazonOrderCode,status) 
2243
        finally:
7460 kshitij.so 2244
            self.closeSession()
2245
 
7741 kshitij.so 2246
    def updateTimestampForAmazonOrder(self,orderDeliveryMap):
7460 kshitij.so 2247
        try:
7741 kshitij.so 2248
            return update_timestamp_for_amazon_order(orderDeliveryMap)
7530 kshitij.so 2249
        except:
2250
            return False
7460 kshitij.so 2251
        finally:
7530 kshitij.so 2252
            self.closeSession()
2253
 
2254
    def updateSourceDetailTimestamp(self,id,lastUpdatedOn):
2255
        try:
2256
            return update_source_detail_timestamp(id,lastUpdatedOn)
2257
        except:
2258
            return False
2259
        finally:
7442 vikram.rag 2260
            self.closeSession()   
7607 anupam.sin 2261
 
2262
    def getOrdersByMobileNumber(self, mobileNumber):
2263
        try:
2264
            orders = get_orders_by_mobile_number(mobileNumber)
2265
            return [to_t_order(order) for order in orders]
2266
        finally:
2267
            self.closeSession()
7427 anupam.sin 2268
 
7645 anupam.sin 2269
    def getOrdersByAmazonOrderCode(self, amazonId):
7607 anupam.sin 2270
        try:
2271
            orders = get_orders_by_amazon_id(amazonId)
2272
            return [to_t_order(order) for order in orders]
2273
        finally:
2274
            self.closeSession()
7730 anupam.sin 2275
 
2276
    def convertStoreToNormal(self, orderId):
2277
        try:
2278
            return convert_store_to_normal(orderId)
2279
        except:
2280
            return False
2281
        finally:
2282
            self.closeSession()
7822 amar.kumar 2283
 
2284
    def updateFreebieItem(self, orderId, newFreebieItemId):
2285
        try:
2286
            return to_t_order(update_freebie_item(orderId, newFreebieItemId))
2287
        finally:
2288
            self.closeSession()
7938 manish.sha 2289
 
7967 anupam.sin 2290
    def getHotspotServiceMatrices(self):
2291
        try:
2292
            return [to_t_hotspotServiceMatrix(hotpotServiceMatrix) for hotpotServiceMatrix in get_hotspot_service_matrices()]
2293
        finally:
2294
            self.closeSession()
2295
 
7938 manish.sha 2296
    def updateOrderAWB(self, orderId, airwayBillNo):
2297
        try:
7985 manish.sha 2298
            return to_t_order(update_order_AWB(orderId, airwayBillNo))
7938 manish.sha 2299
        finally:
2300
            close_session()
8182 amar.kumar 2301
    def getOrdersByVendor(self, vendors, statuses):
2302
        try:
2303
            return [to_t_order(order) for order in get_orders_by_vendor(vendors, statuses)]
2304
        finally:
2305
            close_session()
7607 anupam.sin 2306
 
8182 amar.kumar 2307
    def createEbayOrder(self, ebayOrder):
2308
        try:
2309
            create_ebay_order(ebayOrder)
2310
        finally:
2311
            close_session()
2312
    def getEbayOrderByOrderId(self, orderId):
2313
        try:
2314
            return to_t_ebayOrder(get_ebay_order_by_orderId(orderId))
2315
        finally:
2316
            close_session()
2317
 
2318
    def getEbayOrderBySalesRecNumber(self, salesRecordNumber):
2319
        try:
2320
            return to_t_ebayOrder(get_ebay_order_by_sales_rec_number(salesRecordNumber))
2321
        finally:
2322
            close_session()
2323
 
8241 amar.kumar 2324
    def getEbayOrder(self, salesRecordNumber, listingId, paisaPayId):
8182 amar.kumar 2325
        try:
8253 amar.kumar 2326
            return [to_t_ebayOrder(order) for order in get_ebay_order(salesRecordNumber, listingId, paisaPayId)]
8182 amar.kumar 2327
        finally:
2328
            close_session()
2329
 
2330
    def updateEbayOrder(self, ebayOrder):
2331
        try:
2332
            update_ebay_order(ebayOrder)
2333
        finally:
2334
            close_session()
2335
 
2336
    def ebayOrderExists(self, salesRecNumber, ebayListingId):
2337
        try:
2338
            return ebay_order_exists(salesRecNumber, ebayListingId)
2339
        finally:
2340
            close_session()
2341
 
2342
    def updateOrderForEbay(self, order):
2343
        try:
2344
            update_order_for_ebay(order)
2345
        finally:
2346
            close_session()
2347
 
2348
    def splitEbayOrder(self, orderId, splitOrderQty, splitOrderItemId, usePowerShip):
2349
        try:
2350
            return to_t_order(split_ebay_order(orderId, splitOrderQty, splitOrderItemId, usePowerShip))
2351
        finally:
2352
            close_session()
8282 kshitij.so 2353
 
2354
    def addOrUpdateAmazonFbaSalesSnapshot(self,amazonfbasalessnapshot):
2355
        try:
2356
            add_or_update_amazon_fba_sales_snapshot(amazonfbasalessnapshot)
2357
        finally:
2358
            close_session()
2359
 
2360
    def getAmazonFbaSalesSnapshotForDays(self,days):
2361
        fbasalessnapshot = []
2362
        try:
2363
            snapshots = get_amazon_fba_sales_snapshot_for_days(days)
2364
            for snapshot in snapshots:
2365
                fbasalessnapshot.append(to_t_amazonFbaSalesSnapshot(snapshot)) 
2366
            return fbasalessnapshot
2367
        except:
2368
            return None
2369
        finally:
2370
            close_session()
2371
 
2372
    def getAmazonFbaSalesLatestSnapshotForItem(self,item_id):
2373
        try:
8363 vikram.rag 2374
            return to_t_amazonFbaSalesSnapshot(get_amazon_fba_sales_latest_snapshot_for_item(item_id))
8282 kshitij.so 2375
        except:
2376
            return None
2377
        finally:
2378
            close_session()
8532 vikram.rag 2379
 
8488 amar.kumar 2380
    def createSnapdealOrder(self, snapdeal_order):
2381
        try:
2382
            create_snapdeal_order(snapdeal_order)
2383
        finally:
2384
            close_session()
2385
 
2386
    def getSnapdealOrder(self, orderId, reference_code, suborder_id):
2387
        try:
11424 kshitij.so 2388
            return [to_t_snapdealOrder(snapdealOrder) for snapdealOrder in get_snapdeal_order(orderId, reference_code, suborder_id)]
2389
            #return to_t_snapdealOrder(get_snapdeal_order(orderId, reference_code, suborder_id))
8488 amar.kumar 2390
        finally:
2391
            close_session()
2392
 
8802 amar.kumar 2393
    def snapdealOrderExists(self, suborder_id, referenceCode):
8488 amar.kumar 2394
        try:
8802 amar.kumar 2395
            return snapdeal_order_exists(suborder_id, referenceCode)
8488 amar.kumar 2396
        finally:
2397
            close_session()   
8532 vikram.rag 2398
 
2399
    def updateLatestFbaPricesForItem(self,fbaitemprices):
2400
        try:        
2401
            update_latest_fba_prices_for_item(fbaitemprices)
2402
        finally:
8961 vikram.rag 2403
            close_session()
2404
 
2405
    def flipkartOrderExists(self,flipkartOrderId,flipkartSubOrderId):
2406
        try:
2407
            return flipkart_order_exists(flipkartOrderId,flipkartSubOrderId)
2408
        finally:
2409
            self.closeSession()
8532 vikram.rag 2410
 
8961 vikram.rag 2411
    def createFlipkartOrder(self,flipkartOrder):
2412
        try:
2413
            create_flipkart_order(flipkartOrder)
2414
        finally:           
8990 vikram.rag 2415
            self.closeSession()
2416
 
2417
    def getFlipkartOrder(self,orderId):
2418
        try:
2419
            return to_t_flipkartOrder(get_flipkart_order(orderId))
2420
        finally:
9159 amar.kumar 2421
            self.closeSession()    
2422
 
2423
    def getFlipkartOrderByOrderItemId(self, flipkartOrderItemId):
2424
        try:
2425
            return to_t_flipkartOrder(get_flipkart_order_by_subOrderId(flipkartOrderItemId))
2426
        finally:
2427
            close_session()    
9107 vikram.rag 2428
            self.closeSession()
2429
 
2430
    def updateFlipkartOrderDatesAndAWB(self,flipkartOrderId,flipkartSubOrderId,date,awb):
2431
        try:
2432
            return update_flipkart_order_dates_and_awb(flipkartOrderId,flipkartSubOrderId,date,awb)
2433
        finally:
2434
            self.closeSession()
9338 manish.sha 2435
 
9571 vikram.rag 2436
    def getOrdersCreatedAfterTimestampForSource(self,timestamp,source):
9404 vikram.rag 2437
        try:
9571 vikram.rag 2438
            return get_orders_count_created_after_timestamp_for_source(timestamp,source)
9404 vikram.rag 2439
        finally:
2440
            self.closeSession()
2441
 
2442
 
9338 manish.sha 2443
    def getOrderForAirwayBillNo(self, airwaybillNo):
13276 manish.sha 2444
        ret_Orders =[]
9338 manish.sha 2445
        try:
13276 manish.sha 2446
            orderList = get_order_for_awb(airwaybillNo)
2447
            for order in orderList:
2448
                ret_Orders.append(to_t_order(order))
2449
            return ret_Orders
9338 manish.sha 2450
        finally:
2451
            close_session()
2452
 
9651 manish.sha 2453
    def getMinCreatedTimeStampUndeliveredOrdersForSource(self, source): 
2454
        try:
2455
            return get_min_created_timestamp_undelivered_orders_for_source(source)
2456
        finally:
2457
            close_session()
2458
 
9882 manish.sha 2459
    def updateSnapdealOrdersStatus(self, orders):
9651 manish.sha 2460
        try:
9882 manish.sha 2461
            update_snapdeal_orders_status(orders)
9651 manish.sha 2462
        finally:
2463
            close_session()
2464
 
2465
    def updateFlipkartOrdersStatus(self, delivered_orders):
2466
        try:
2467
            update_flipkart_orders_status(delivered_orders)
2468
        finally:
2469
            close_session()
9801 manish.sha 2470
 
2471
    def bulkAddOrUpdateAmazonFbaSalesSnapshot(self, amazonfbasalessnapshotlist):  
2472
        try:
2473
            bulk_add_or_update_amazon_fba_sales_snapshot(amazonfbasalessnapshotlist)
2474
        finally:
9945 vikram.rag 2475
            close_session()
2476
 
2477
    def getCreatedOrdersForFlipkart(self,flipkartorderids):
2478
        try:
2479
            return get_created_orders_for_flipkart(flipkartorderids)
2480
        finally:
11896 amit.gupta 2481
            close_session()
2482
 
2483
    def isPrivateDealTransaction(self, transactionId):
2484
        try:
11903 amit.gupta 2485
            return is_private_deal_transaction(transactionId)
11896 amit.gupta 2486
        except:
2487
            return False
2488
        finally:
9945 vikram.rag 2489
            close_session()    
9651 manish.sha 2490
 
12103 manish.sha 2491
    def changeEasyshipMfnOrderTxnStatus(self, transactionId, status, description, pickUp, orderType, source, shipTimestamp, deliveryTimeStamp):
2492
        try:
2493
            return change_easyship_mfn_order_txn_status(transactionId, status, description, pickUp, orderType, source, shipTimestamp, deliveryTimeStamp)
2494
        finally:
2495
            close_session() 
2496
 
2497
    def updateAmazonFbaOrdersReturns(self, fbaOrderReturns):
2498
        try:
2499
            update_amazon_fba_order_returns(fbaOrderReturns)
2500
        finally:
2501
            close_session()
2502
 
2503
    def getAllAmazonFbaOrderReturnsByCurrentTime(self, insertionTimestamp):
2504
        try:
2505
            ret_order_returns= []
2506
            returns = get_all_amazon_fba_order_returns(insertionTimestamp)
2507
            for order_return in returns:
2508
                ret_order_returns.append(to_t_amazonFbaOrderReturn(order_return))
2509
            return ret_order_returns
2510
        finally:
2511
            close_session()
2512
 
2513
    def getTotalSaleReturnsFbaSkusCurentTime(self, insertionTimestamp):
2514
        try:
2515
            return get_total_sale_returns_fba_skus_curent_time(insertionTimestamp)
2516
        finally:
2517
            close_session()
12398 kshitij.so 2518
 
2519
    def getAmazonFbaSalesLatestSnapshotForItemLocationWise(self,item_id,location):
2520
        try:
2521
            return to_t_amazonFbaSalesSnapshot(get_amazon_fba_sales_latest_snapshot_for_item_location_wise(item_id,location))
2522
        except:
2523
            return None
2524
        finally:
2525
            close_session()
12103 manish.sha 2526
 
12589 manish.sha 2527
    def getVerificationPendingOrdersFK(self):
2528
        ret_Orders = []
2529
        try:
2530
            fk_Orders = get_verification_pending_orders_fk()
2531
            for fk_order in fk_Orders:
2532
                ret_Orders.append(to_t_flipkartOrder(fk_order))
2533
            return ret_Orders
2534
        finally:
2535
            close_session()
2536
 
12653 manish.sha 2537
    def addInvoiceDetailsToOrders(self, transactionId, customerId):
2538
        try:
2539
            add_invoice_details_to_orders(transactionId, customerId)
2540
        finally:
2541
            close_session()
2542
 
12772 manish.sha 2543
    def getFAOrderByFkOrderId(self, fkOrderId, fkOrderItemId):
2544
        try: 
2545
            return to_t_flipkartAdvantageOrder(get_fa_order_by_fk_order_id(fkOrderId, fkOrderItemId))
2546
        finally:
2547
            close_session()
2548
 
2549
    def getAllFAOrdersList(self, status):
2550
        ret_fa_Orders =[]
2551
        try:
2552
            faOrders = get_all_fa_orders_list(status)
2553
            for faOrder in faOrders:
2554
                ret_fa_Orders.append(to_t_flipkartAdvantageOrder(faOrder))
2555
            return ret_fa_Orders
2556
        finally:
2557
            close_session()
2558
 
2559
    def addUpdateFaOrdersBulk(self, faOrdersList):
2560
        try:
2561
            add_update_fa_orders_bulk(faOrdersList)
2562
        finally:
2563
            close_session()
2564
 
2565
    def flipkartFaOrderExists(self, fkOrderId, fkOrderItemId):
2566
        try:
2567
            return flipkart_fa_order_exists(fkOrderId, fkOrderItemId)
2568
        finally:
2569
            close_session()
2570
 
12979 kshitij.so 2571
    def getRcgOrderStatus(self,rechargeOrderId,isFinal):
2572
        try:
2573
            return get_recharge_order_status(rechargeOrderId,isFinal).to_thrift_object()
2574
        finally:
2575
            self.closeSession()
2576
 
2577
    def getRcgTransactionStatus(self,rechargeTransactionId,isFinal):
2578
        try:
2579
            return to_t_rechargeTransaction(get_recharge_transaction_status(rechargeTransactionId,isFinal))
2580
        finally:
2581
            self.closeSession()
2582
 
13146 manish.sha 2583
    def acceptPackageOrders(self, orders):
2584
        try:
2585
            return accept_package_orders(orders)
2586
        finally:
2587
            self.closeSession()
12979 kshitij.so 2588
 
13146 manish.sha 2589
    def getGroupOrdersByLogisticsTxnId(self, logisticsTxnId):
2590
        ret_Orders =[]
2591
        try:
2592
            ordersList = get_group_orders_by_logistics_txn_id(logisticsTxnId)
2593
            for order in ordersList:
2594
                ret_Orders.append(to_t_order(order))
2595
            return ret_Orders
2596
        finally:
2597
            self.closeSession()
2598
 
13276 manish.sha 2599
    def addBillingDetailsForGrouppedOrders(self, order_ids, invoice_number, itemNumbersMap, serialNumbersMap, freebieWarehouseIdMap, billed_by, jacketNumber, billingType, authorize, invoiceType):
13146 manish.sha 2600
        try:
13276 manish.sha 2601
            return add_billing_details_for_groupped_orders(order_ids, invoice_number, itemNumbersMap, serialNumbersMap, freebieWarehouseIdMap, billed_by, jacketNumber, billingType, authorize, invoiceType)
13146 manish.sha 2602
        finally:
2603
            self.closeSession()
13276 manish.sha 2604
 
2605
    def getInvoiceFormatLogisticsTxnId(self, transactionId, shipementSeq):
2606
        try:
2607
            return get_invoice_format_logistics_txn_id(transactionId, shipementSeq)
2608
        finally:
2609
            self.closeSession()
13584 manish.sha 2610
 
13691 manish.sha 2611
    def createHomeShopOrder(self, hsOrder):
2612
        try:
2613
            create_homeshop_order(hsOrder)
2614
        finally:
2615
            close_session()
2616
 
2617
    def getHomeShopOrder(self, orderId, hsOrderNo, hsSubOrderNo):
2618
        try:
2619
            return [to_t_hsOrder(hsOrder) for hsOrder in get_homeshop_order(orderId, hsOrderNo, hsSubOrderNo)]
2620
            #return to_t_snapdealOrder(get_snapdeal_order(orderId, reference_code, suborder_id))
2621
        finally:
2622
            close_session()
2623
 
2624
    def homeShopOrderExists(self, hsOrderNo, hsSubOrderNo):
2625
        try:
2626
            return homeshop_order_exists(hsOrderNo, hsSubOrderNo)
2627
        finally:
2628
            close_session()   
2629
 
2536 chandransh 2630
    def closeSession(self, ):
2631
        close_session()
3376 rajveer 2632
 
2633
    def isAlive(self, ):
2634
        """
5447 anupam.sin 2635
        For checking whether service is alive or not. It also checks connectivity with database
3376 rajveer 2636
        """
2637
        try:
2638
            return is_alive()
2639
        finally:
6988 rajveer 2640
            close_session()
13941 amit.gupta 2641
 
2642
    def creditBatch(self, batchId, userAmount):
14134 amit.gupta 2643
        try:
2644
            now = datetime.datetime.now()
2645
            sum = 0
2646
            for key, amount in json.loads(userAmount).iteritems():
2647
                userId = int(key)
2648
                wallet = get_user_wallet(userId)
2649
                wallet.amount = wallet.amount + amount
2650
                history = UserWalletHistory()
2651
                history.amount = amount
2652
                history.orderId = batchId
2653
                history.wallet = wallet
2654
                history.timestamp = now
2655
                sum += amount
2656
 
2657
            batchCreditTracker = DtrBatchCreditTracker()
2658
            batchCreditTracker.id = batchId
2659
            batchCreditTracker.amount = sum
2660
            batchCreditTracker.creditedOn = now
2661
 
2662
            session.commit()
2663
        finally:
2664
            close_session()
17470 manish.sha 2665
 
2666
    def splitBulkOrder(self, orderId, splitOrderQty):
2667
        try:
2668
            return to_t_order(split_bulk_order(orderId, splitOrderQty))
2669
        finally:
2670
            close_session()
18041 manish.sha 2671
 
2672
    def moveOrdersToCorrectWarehouse(self):
2673
        try:
2674
            return move_orders_to_correct_warehouse()
18046 manish.sha 2675
        except:
2676
            return "Error"
18041 manish.sha 2677
        finally:
2678
            close_session()
18046 manish.sha 2679
 
18590 manish.sha 2680
    def verifyOrderForTransaction(self, transactionId):
2681
        try:
2682
            return verify_orders_for_transaction(transactionId)
2683
        finally:
2684
            close_session()
2685
 
18634 manish.sha 2686
    def getCreditorInfo(self, creditorId, name):
2687
        try:
2688
            return to_t_Creditor(get_creditor_info(creditorId, name))
2689
        except:
2690
            return None
2691
        finally:
2692
            close_session()
2693
 
2694
    def updateCreditorInfo(self, creditor):
2695
        try:
2696
            return update_creditor_info(creditor)
2697
        finally:
2698
            close_session()
2699
 
2700
    def getUserSanctionDetails(self, userId):
2701
        try:
18677 manish.sha 2702
            returnMap = get_user_sanction_details(userId, None)
2703
            sanctionsList = []
18700 manish.sha 2704
            for creditorMap in returnMap.values():
18677 manish.sha 2705
                for sanction in creditorMap.get('Sanctions'):
2706
                    sanctionsList.append(to_t_UserSanction(sanction, creditorMap.get('TicketSize')))
2707
            return sanctionsList
18634 manish.sha 2708
        finally:
2709
            close_session()
2710
 
2711
    def getUserSanctionDetailsForCreditor(self, userId, creditorId):
2712
        try:
18703 manish.sha 2713
            returnMap = get_user_sanction_details(userId, creditorId)
2714
            sanctionsList = []
2715
            for creditorMap in returnMap.values():
2716
                for sanction in creditorMap.get('Sanctions'):
2717
                    sanctionsList.append(to_t_UserSanction(sanction, creditorMap.get('TicketSize')))
2718
            return sanctionsList[0]
18634 manish.sha 2719
        except:
2720
            return None
2721
        finally:
2722
            close_session()
2723
 
2724
    def updateUserSanction(self, userSanaction):
2725
        try:
2726
            return update_user_sanction(userSanaction)
2727
        finally:
2728
            close_session()
2729
 
2730
    def getCreditHistoryRecordsForTransaction(self, paymentId, creditTxnType):
2731
        try:
2732
            return [to_t_CreditHistory(creditHistory) for creditHistory in get_credit_history_records(paymentId, None, None, creditTxnType)]
2733
        finally:
2734
            close_session()
2735
 
2736
    def getCreditHistoryRecordsForUserAndCreditor(self, userId, creditorId, creditTxnType):
2737
        try:
2738
            return [to_t_CreditHistory(creditHistory) for creditHistory in get_credit_history_records(None, userId, creditorId, creditTxnType)]
2739
        finally:
2740
            close_session()
2741
 
2742
    def processCreditTransaction(self, paymentId, userId, creditorId, creditTxns):
2743
        try:
2744
            return process_credit_transaction(paymentId, userId, creditorId, creditTxns)
2745
        finally:
2746
            close_session()
2747
 
2748
    def getLoanPayableForUserToCreditor(self, userId, creditorId, dueDate):
2749
        try:
2750
            return get_loan_payable_for_user_to_creditor(userId, creditorId, dueDate)
2751
        finally:
2752
            close_session()
2753
 
2754
    def getLoanHistoryRecordsForTransaction(self, paymentId, creditTxnType):
2755
        try:
2756
            return [to_t_LoanHistory(loanHistory) for loanHistory in get_loan_history_records(paymentId, None, None, creditTxnType)]
2757
        finally:
2758
            close_session()
2759
 
2760
    def getLoanHistoryRecordsForUserAndCreditor(self, userId, creditorId, creditTxnType):
2761
        try:
2762
            return [to_t_LoanHistory(loanHistory) for loanHistory in get_loan_history_records(None, userId, creditorId, creditTxnType)]
2763
        finally:
2764
            close_session()
2765
 
2766
    def processLoanTransaction(self, paymentId, userId, creditorId, creditTxns):
2767
        try:
2768
            return process_loan_transaction(paymentId, creditTxns)
2769
        finally:
18769 manish.sha 2770
            close_session()
2771
 
2772
    def getLimitedCreditHistoryRecords(self, paymentId, userId, creditorId, limit, offset):
2773
        try:
18805 manish.sha 2774
            hasMore, totalCount, creditHistoryList = get_credit_history_records_paginated(paymentId, userId, creditorId, None, limit, offset)
2775
            return to_t_PaginatedCreditHistory(hasMore, totalCount, creditHistoryList)
18769 manish.sha 2776
        finally:
2777
            close_session()
2778
 
2779
    def getLimitedLoanHistoryRecords(self, paymentId, userId, creditorId, limit, offset):
2780
        try:
18805 manish.sha 2781
            hasMore, totalCount, loanHistoryList = get_loan_history_records_paginated(paymentId, userId, creditorId, None, limit, offset)
2782
            return to_t_PaginatedLoanHistory(hasMore, totalCount, loanHistoryList)
18769 manish.sha 2783
        finally:
2784
            close_session()
18794 manish.sha 2785
 
19868 manas 2786
    def getUserSanctionsDetailsAsPerLimit(self, userId, creditorId, limit, offset,sort):
18794 manish.sha 2787
        try:
19868 manas 2788
            hasMore, totalCount, returnMap = get_user_sanction_details_paginated(userId, creditorId, limit, offset,sort)
18794 manish.sha 2789
            sanctionsList = []
2790
            for creditorMap in returnMap.values():
2791
                for sanction in creditorMap.get('Sanctions'):
2792
                    sanctionsList.append(to_t_UserSanction(sanction, creditorMap.get('TicketSize')))
2793
            return to_t_PaginatedUserSanction(hasMore, totalCount, sanctionsList)
2794
        finally:
2795
            close_session()
19004 manish.sha 2796
 
19889 manas 2797
    def getOutstandingPayments(self,fetchType,userId,limit):
2798
        try:
2799
            userCounterMap, outstandingResults = get_outstanding_payments(fetchType,userId,limit)
2800
            return [to_t_OutstandingPayments(outstandingResult,userCounterMap.get(outstandingResult.user_id)) for outstandingResult in outstandingResults]
2801
        finally:
2802
            close_session()
2803
 
19912 manas 2804
    def markPaymentSettled(self,userId,paymentId,totalAmount,repaymentDate):
2805
        returnMap = {}
2806
        try:
2807
            flag, message = mark_payment_settled(userId,paymentId,totalAmount,repaymentDate)
2808
            returnMap[flag] = message
2809
            return returnMap
2810
        finally:
2811
            close_session()
2812
 
19004 manish.sha 2813
    def getOrdersInBatchAsPromisedShipping(self, statuses, offset, limit, warehouse_id, source):
2814
        """
2815
        Returns at most 'limit' orders with the given statuses for the given warehouse starting from the given offset.
2816
        These orders should be in order of promised shipping time. 
2817
        Pass the status as null and the limit as 0 to ignore them.
2818
 
2819
        Parameters:
2820
         - statuses
2821
         - offset
2822
         - limit
2823
         - warehouse_id
2824
        """
2825
        try:
2826
            orders = get_orders_in_batch_as_promised_shipping(statuses, offset, limit, warehouse_id, source)
2827
            return [to_t_order(order) for order in orders]
2828
        finally:
2829
            close_session()
18794 manish.sha 2830
 
19421 manish.sha 2831
    def setOrderAttributeForMasterOrderId(self, logisticsTransactionId, attributes):
2832
        try:
2833
            set_order_attribute_for_master_order_id(logisticsTransactionId, attributes)
2834
        finally:
2835
            close_session()
2836
 
2837
    def updateMasterOrderAWB(self, logisticsTransactionId, airwaybill_no):
2838
        try:
2839
            return update_master_order_awb(logisticsTransactionId, airwaybill_no)
2840
        finally:
2841
            close_session()
2842
 
19474 manish.sha 2843
    def addOrUpdateShipmentLogisticsCostDetails(self, shipmentLogisticsCostDetails):
2844
        try:
2845
            return add_or_update_shipment_logistics_cost_details(shipmentLogisticsCostDetails)
2846
        finally:
2847
            close_session()
19691 manish.sha 2848
 
2849
    def getReturnOrderInfo(self, id):
2850
        try:
2851
            returnOrderInfo = get_return_order_info(id)
19814 kshitij.so 2852
            return to_t_returnOrderInfo(returnOrderInfo)
19691 manish.sha 2853
        finally:
2854
            close_session()
2855
 
2856
    def getReturnOrderInfoList(self, order_ids):
2857
        try:
2858
            returnOrdersInfoMap = get_return_orders_info_map(order_ids)
2859
            mapToReturn = {}
2860
            for orderId, returnOrdersList in returnOrdersInfoMap.items():
2861
                returnList = []
2862
                for returnOrder in returnOrdersList:
2863
                    returnList.append(to_t_returnOrderInfo(returnOrder))
2864
                mapToReturn[orderId] = returnList
2865
            return mapToReturn
2866
        finally:
2867
            close_session()
19474 manish.sha 2868
 
19691 manish.sha 2869
    def getReturnOrderInfoListAsByStatus(self, order_ids, statuses):
2870
        try:
2871
            returnOrdersInfoMap = get_return_orders_info_map(order_ids, statuses)
2872
            mapToReturn = {}
2873
            for orderId, returnOrdersList in returnOrdersInfoMap.items():
2874
                returnList = []
2875
                for returnOrder in returnOrdersList:
2876
                    returnList.append(to_t_returnOrderInfo(returnOrder))
2877
                mapToReturn[orderId] = returnList
2878
            return mapToReturn
2879
        finally:
2880
            close_session()
2881
 
2882
    def updateReturnOrderInfo(self, returnInfo):
2883
        try:
2884
            return update_return_order_info(returnInfo)
2885
        finally:
2886
            close_session()
2887
 
2888
    def bulkUpdateReturnOrderInfo(self, orderReturnInfosMap):
2889
        try:
2890
            return bulk_update_return_order_info(orderReturnInfosMap)
2891
        finally:
2892
            close_session()
2893
 
2894
    def getReturnOrdersAsPerWarehouseId(self, warehouseId):
2895
        """
2896
        Returns all return orders list as per warehouse
2897
 
2898
        Parameters:
2899
         - warehouseId
2900
        """
2901
        try:
2902
            all_returns_orders = get_return_orders_as_per_warehouse(warehouseId)
2903
            return [to_t_returnOrderInfo(order) for order in all_returns_orders]
2904
        finally:
2905
            close_session()
2906
 
19735 manish.sha 2907
    def createReturnTransaction(self, returnTransaction, itemCondition, overrideWarranty):
19691 manish.sha 2908
        """
2909
        Create Return Ticket or Transaction for all Returns
2910
 
2911
        Parameters:
2912
         - returnTransaction Thrift Object
19735 manish.sha 2913
         - itemCondition
2914
         - overrideWarranty
19691 manish.sha 2915
        """
2916
        try:
19814 kshitij.so 2917
            return to_t_returnTransaction(create_return_transaction(returnTransaction, itemCondition, overrideWarranty))
19691 manish.sha 2918
        finally:
2919
            close_session()
2920
 
2921
    def getReturnTransactionsForCustomer(self, statusList, customerMobile, customerEmail, returnTransactionId, customerId):
2922
        """
2923
        Get all return transactions as per customer and status for sepcific time interval
2924
 
2925
        Parameters:
2926
         - statusList
2927
         - customerMobile
2928
         - customerEmail
2929
         - returnTransactionId
2930
        """
2931
 
2932
        try:
2933
            transactions = get_return_transactions_for_customer(statusList, customerMobile, customerEmail, returnTransactionId, customerId)
2934
            if transactions is None:
2935
                return []
2936
            else:
2937
                return [to_t_returnTransaction(transaction) for transaction in transactions]
2938
        finally:
2939
            close_session()
2940
 
2941
    def getReturnTransaction(self, id):
2942
        """
2943
        Get Return Transaction as per given id 
2944
 
2945
        Parameters:
2946
         - id
2947
        """
2948
        try:
2949
            return to_t_returnTransaction(get_return_transaction(id))
2950
        finally:
2951
            close_session()
2952
 
2953
    def getReturnOrdersForReturnTransaction(self, returnTransactionId):
2954
        """
2955
        Get Return Orders for given return transaction
2956
 
2957
        Parameters:
2958
         - returnTransactionId
2959
        """
2960
        try:
2961
            returnorders = get_return_orders_for_return_transaction(returnTransactionId)
2962
            return [to_t_returnOrderInfo(returnorder) for returnorder in returnorders]    
2963
        finally:
2964
            close_session()
2965
 
2966
    def changeReturnTransactionStatus(self, returnTransactionId, new_status, returnOrdersIds):
2967
        """
2968
        Change Return Transaction Status 
2969
 
2970
        Parameters:
2971
         - returnTransactionId
2972
         - new_status        
2973
        """  
2974
        try:
2975
            return change_return_transaction_status(returnTransactionId, new_status, returnOrdersIds)
2976
        finally:
2977
            close_session()
2978
 
2979
    def createReturnPickupRequest(self, returnOrderIds, providerId):
2980
        """
2981
        Create Return Pickup Request
2982
 
2983
        Parameters
2984
         - returnOrderIds
2985
         - providerId
2986
        """    
2987
        try:
2988
            return create_return_pickup_request(returnOrderIds, providerId)
2989
        finally:
2990
            close_session()
2991
 
2992
    def updateReturnPickupRequest(self, returnPickupRequest):
2993
        """
2994
        Update Return Pickup Request
2995
 
2996
        Parameters
2997
         - ReturnPickupRequest Object
2998
        """
2999
        try:
3000
            return update_return_pickup_request(returnPickupRequest)
3001
        finally:
3002
            close_session()
3003
 
3004
    def receiveReturnPickup(self, returnOrdersMap, id):
3005
        """
3006
        Receive Return Pickup
3007
 
3008
        Parameters:
3009
         - returnOrdersMap
3010
         - id
3011
 
3012
        """
3013
        try:
3014
            return receive_return_pickup(returnOrdersMap, id)
3015
        finally:
3016
            close_session()
3017
 
3018
    def validateReturnPickup(self, returnPickupId, returnOrdersMap):
3019
        """
3020
        Validate Return Pickup 
3021
 
3022
        Parameters:
3023
         - returnPickupId 
3024
         - returnOrdersMap
3025
        """
3026
        try:
3027
            return validate_return_pickup(returnPickupId, returnOrdersMap)
3028
        finally:
3029
            close_session()
3030
 
3031
    def processReturnPickup(self, returnPickupId, returnOrdersMap):
3032
        """
3033
        Process Return Pickup
3034
 
3035
        Parameters:
3036
         - returnPickupId
3037
         - returnOrdersMap
3038
        """
3039
        try:
3040
            return process_return_pickup(returnPickupId, returnOrdersMap)
3041
        finally:
3042
            close_session()
3043
 
3044
    def markReturnTransactionComplete(self, returnTransactionId):
3045
        """
3046
        Mark Return Transaction Complete based upon the orders processed.
3047
 
3048
        Parameters:
3049
         - returnTransactionId
3050
        """
3051
        try:
3052
            return mark_return_transaction_complete(returnTransactionId)
3053
        finally:
3054
            close_session()
3055
 
3056
    def refundReturnTransactionPayment(self, returnOrdersMap, returnTransactionId):
3057
        """
3058
        Refund Return Transaction Payment
3059
 
3060
        Parameters
3061
         - returnOrdersMap
3062
         - returnTransactionId
3063
        """
3064
 
3065
        try:
3066
            return refund_return_transaction_payment(returnOrdersMap, returnTransactionId)
3067
        finally:
3068
            close_session()
3069
 
19714 manish.sha 3070
    def getEligibleOrdersForReturn(self, customerId, itemCondition, overrideWarranty):
3071
        """
3072
        Return Eligible Orders for Return Process
3073
 
3074
        Parameters 
3075
         - customerId
3076
         - itemCondition - (Damaged for return and Defective for DOA)
3077
         - overrideWarranty for Admin so that he can return any order without any warranty.
3078
 
3079
        """
3080
        try:
3081
            orders = []
3082
            eligibleOrders = get_eligible_orders_for_return(customerId, itemCondition, overrideWarranty)
3083
            for order in eligibleOrders:
3084
                orders.append(to_t_order(order))
3085
            return orders
3086
        finally:
3087
            close_session()
3088
 
3089
    def getEligibleReturnOrdersForPickup(self, customerId):
3090
        """
3091
        Return All Eligible Return Orders awaiting pickup
3092
 
3093
        Parameters 
3094
         - customerId
3095
 
3096
        """
3097
        try:
3098
            returnOrders = []
3099
            eligibleReturnOrders = get_eligible_return_orders_for_pickup(customerId)
3100
            for returnOrder in eligibleReturnOrders:
3101
                returnOrders.append(to_t_returnOrderInfo(returnOrder))
3102
            return returnOrders
3103
        finally:
3104
            close_session()
19735 manish.sha 3105
 
3106
    def validateReturnTransaction(self, customerId, returnOrdersMap, itemCondition, overrideWarranty):
3107
        """
3108
        To Validate return transaction data
19714 manish.sha 3109
 
19735 manish.sha 3110
        Parameters
3111
         - customerId
3112
         - returnOrdersMap
3113
         - itemCondition
3114
         - overrideWarranty
3115
        """
3116
        try:
3117
            return validate_return_transaction(customerId, returnOrdersMap, itemCondition, overrideWarranty)
3118
        finally:
3119
            close_session()
19817 manish.sha 3120
 
3121
    def markReturnNotRequiredOrdersProcessed(self, returnTransactionId):
3122
        """
3123
        Mark Return Not Required Orders as Processed
19735 manish.sha 3124
 
19817 manish.sha 3125
        Parameters
3126
         - returnTransactionId
3127
        """
3128
        try:
3129
            return mark_return_not_required_orders_as_processed(returnTransactionId) 
3130
        finally:
3131
            close_session()
3132
 
3133
    def getReturnPickupRequest(self, returnPickupId):
3134
        """
3135
        Get Particular Return Pickup Id
3136
        Parameters
3137
         - returnPickupId
3138
        """
3139
        try:
3140
            return to_t_rPickupRequest(get_return_pickup_request(returnPickupId))
3141
        finally:
3142
            close_session()
3143
 
19820 manish.sha 3144
    def getAllReturnOrdersForReturnPickupRequest(self, logisticsRequestId):
3145
        try:
3146
            returnOrders = []
3147
            eligibleReturnOrders = get_all_return_orders_for_return_pickup_request(logisticsRequestId)
3148
            for returnOrder in eligibleReturnOrders:
3149
                returnOrders.append(to_t_returnOrderInfo(returnOrder))
3150
            return returnOrders
3151
        finally:
3152
            close_session()
3153
 
19973 amit.gupta 3154
    def getSellerInfo(self, sellerId):
3155
        try:
3156
            return get_seller_info(sellerId)
3157
        finally:
3158
            close_session()
3159
 
19817 manish.sha 3160
 
14134 amit.gupta 3161
def main():
3162
    OrderServiceHandler().creditBatch(2, '{"483649":100.0, "8021773":23, "123213":10}')
3163
 
3164
if __name__ == '__main__':
3165
    main()