Subversion Repositories SmartDukaan

Rev

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