Subversion Repositories SmartDukaan

Rev

Rev 6371 | Rev 6396 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6371 Rev 6389
Line 21... Line 21...
21
from shop2020.model.v1 import order
21
from shop2020.model.v1 import order
22
from shop2020.model.v1.order.impl import DataService, RechargeService
22
from shop2020.model.v1.order.impl import DataService, RechargeService
23
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem, \
23
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem, \
24
    Order, BatchNoGenerator, InvoiceIDGenerator, TransactionRequiringExtraProcessing, \
24
    Order, BatchNoGenerator, InvoiceIDGenerator, TransactionRequiringExtraProcessing, \
25
    OrderInventory, Alert, PaymentSettlement, EBSSettlementSummary, \
25
    OrderInventory, Alert, PaymentSettlement, EBSSettlementSummary, \
26
    CodVerificationAgent, Attribute, RechargeVoucherTracker
26
    CodVerificationAgent, Attribute, RechargeVoucherTracker, EmiScheme,\
-
 
27
    MiscCharges
27
from shop2020.model.v1.order.impl.model.MobileRechargeOrder import \
28
from shop2020.model.v1.order.impl.model.MobileRechargeOrder import \
28
    MobileRechargeOrder
29
    MobileRechargeOrder
29
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
30
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
30
from shop2020.thriftpy.alert.ttypes import MonitoredEntity, EntityType
31
from shop2020.thriftpy.alert.ttypes import MonitoredEntity, EntityType
31
from shop2020.thriftpy.logistics.ttypes import DeliveryType, PickUpType
32
from shop2020.thriftpy.logistics.ttypes import DeliveryType, PickUpType
Line 33... Line 34...
33
from shop2020.thriftpy.model.v1.inventory.ttypes import BillingType, \
34
from shop2020.thriftpy.model.v1.inventory.ttypes import BillingType, \
34
    InventoryServiceException, WarehouseType, InventoryType
35
    InventoryServiceException, WarehouseType, InventoryType
35
from shop2020.thriftpy.model.v1.order.ttypes import TransactionServiceException, \
36
from shop2020.thriftpy.model.v1.order.ttypes import TransactionServiceException, \
36
    TransactionStatus, OrderStatus, DelayReason, ExtraTransactionProcessingType, \
37
    TransactionStatus, OrderStatus, DelayReason, ExtraTransactionProcessingType, \
37
    HotspotAction, TimeoutSummary, OrderStatusGroups, OrderType,\
38
    HotspotAction, TimeoutSummary, OrderStatusGroups, OrderType,\
38
    RechargeOrderStatus, RechargeType, RechargeStatistics, DeviceNumberInfo
39
    RechargeOrderStatus, RechargeType, RechargeStatistics, DeviceNumberInfo,\
-
 
40
    EmiChargeType
39
from shop2020.thriftpy.model.v1.user.ttypes import VoucherType
41
from shop2020.thriftpy.model.v1.user.ttypes import VoucherType
40
from shop2020.thriftpy.payments.ttypes import PaymentException
42
from shop2020.thriftpy.payments.ttypes import PaymentException
41
from shop2020.thriftpy.warehouse.ttypes import ScanType, \
43
from shop2020.thriftpy.warehouse.ttypes import ScanType, \
42
    WarehouseServiceException
44
    WarehouseServiceException
43
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part
45
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part
Line 163... Line 165...
163
    transaction.session_source = t_transaction.sessionSource
165
    transaction.session_source = t_transaction.sessionSource
164
    transaction.session_start_time = to_py_date(t_transaction.sessionStartTime)
166
    transaction.session_start_time = to_py_date(t_transaction.sessionStartTime)
165
    transaction.first_source = t_transaction.firstSource
167
    transaction.first_source = t_transaction.firstSource
166
    transaction.first_source_start_time = to_py_date(t_transaction.firstSourceTime)
168
    transaction.first_source_start_time = to_py_date(t_transaction.firstSourceTime)
167
 
169
 
-
 
170
    totalAmount = 0
168
    for t_order in t_orders:
171
    for t_order in t_orders:
169
        order = create_order(t_order)
172
        order = create_order(t_order)
-
 
173
        totalAmount = totalAmount + order.total_amount
170
        order.transaction = transaction 
174
        order.transaction = transaction 
171
        for line_item in t_order.lineitems:
175
        for line_item in t_order.lineitems:
172
            litem = LineItem()
176
            litem = LineItem()
173
            litem.item_id = line_item.item_id
177
            litem.item_id = line_item.item_id
174
            litem.productGroup = line_item.productGroup
178
            litem.productGroup = line_item.productGroup
Line 196... Line 200...
196
            else:
200
            else:
197
                litem.added_on = datetime.datetime.now()
201
                litem.added_on = datetime.datetime.now()
198
            """
202
            """
199
            litem.order = order
203
            litem.order = order
200
    session.commit()
204
    session.commit()
-
 
205
    
-
 
206
    generateOtherCharges(transaction, t_transaction.emiSchemeId, totalAmount)
-
 
207
    
201
    return transaction.id
208
    return transaction.id
202
 
209
 
-
 
210
def generateOtherCharges(transaction, emiSchemeId, totalAmount):
-
 
211
    emiScheme = EmiScheme.get_by(id=emiSchemeId)
-
 
212
    if not emiScheme:
-
 
213
        return
-
 
214
    
-
 
215
    if totalAmount < emiScheme.minAmount:
-
 
216
        return
-
 
217
    
-
 
218
    emiCharge = 0
-
 
219
    if emiScheme.chargeType == EmiChargeType.FIXED:
-
 
220
        emiCharge = emiScheme.chargeValue
-
 
221
    if emiScheme.chargeType == EmiChargeType.PERCENTAGE:
-
 
222
        emiCharge = totalAmount*(emiScheme.chargeValue)/100
-
 
223
        
-
 
224
    miscCharge = MiscCharges()
-
 
225
    miscCharge.transaction = transaction
-
 
226
    miscCharge.chargeType = 1 ##EMI charges
-
 
227
    miscCharge.chargeAmount = emiCharge
-
 
228
    session.commit()
-
 
229
    
203
def get_transaction(transaction_id):
230
def get_transaction(transaction_id):
204
    transaction = Transaction.get_by(id=transaction_id)
231
    transaction = Transaction.get_by(id=transaction_id)
205
    if not transaction:
232
    if not transaction:
206
        raise TransactionServiceException(108, "no such transaction")
233
        raise TransactionServiceException(108, "no such transaction")
207
    
234
    
Line 3760... Line 3787...
3760
def update_availability_status(operatorId, circleId, isAvailable):
3787
def update_availability_status(operatorId, circleId, isAvailable):
3761
    serviceAvailability = ServiceAvailability.query.filter_by(circleId = circleId).filter_by(operatorId = operatorId).first()
3788
    serviceAvailability = ServiceAvailability.query.filter_by(circleId = circleId).filter_by(operatorId = operatorId).first()
3762
    serviceAvailability.isServiceAvailable = isAvailable
3789
    serviceAvailability.isServiceAvailable = isAvailable
3763
    session.commit()
3790
    session.commit()
3764
    
3791
    
-
 
3792
def get_misc_charges(transactionId):
-
 
3793
    retCharges = {}
-
 
3794
    miscCharges = MiscCharges.get_by(transaction_id = transactionId)
-
 
3795
    if miscCharges:
-
 
3796
        retCharges[1] = miscCharges.chargeValue 
-
 
3797
    return retCharges
-
 
3798
 
3765
def close_session():
3799
def close_session():
3766
    if session.is_active:
3800
    if session.is_active:
3767
        print "session is active. closing it."
3801
        print "session is active. closing it."
3768
        session.close()
3802
        session.close()
3769
 
3803