Subversion Repositories SmartDukaan

Rev

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