Subversion Repositories SmartDukaan

Rev

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