Subversion Repositories SmartDukaan

Rev

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