Subversion Repositories SmartDukaan

Rev

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