Subversion Repositories SmartDukaan

Rev

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

Rev 12653 Rev 12772
Line 39... Line 39...
39
    BlockedIpRange, DeniedIpAddress, InsuranceDetailForOrder, DocumentStore, \
39
    BlockedIpRange, DeniedIpAddress, InsuranceDetailForOrder, DocumentStore, \
40
    RechargeTransaction, HotspotStore, WalletForCompany, WalletHistoryForCompany, \
40
    RechargeTransaction, HotspotStore, WalletForCompany, WalletHistoryForCompany, \
41
    FRC, OperatorSeries, SourceDetail, Company, EbayOrder, AmazonFbaSalesSnapshot, \
41
    FRC, OperatorSeries, SourceDetail, Company, EbayOrder, AmazonFbaSalesSnapshot, \
42
    AmazonOrder, StoreOrderDetail, EdcBank, StoreOrderCollection, \
42
    AmazonOrder, StoreOrderDetail, EdcBank, StoreOrderCollection, \
43
    HotspotServiceMatrix, SnapdealOrder, FlipkartOrder, DataInsuranceDetailForOrder, \
43
    HotspotServiceMatrix, SnapdealOrder, FlipkartOrder, DataInsuranceDetailForOrder, \
44
    AmazonFbaOrderReturns
44
    AmazonFbaOrderReturns, FlipkartAdvantageOrder, InvoiceCounterGenerator
45
from shop2020.model.v1.order.impl.model.BaseOrder import BaseOrder
45
from shop2020.model.v1.order.impl.model.BaseOrder import BaseOrder
46
from shop2020.model.v1.order.impl.model.DTHRechargeOrder import DTHRechargeOrder
46
from shop2020.model.v1.order.impl.model.DTHRechargeOrder import DTHRechargeOrder
47
from shop2020.model.v1.order.impl.model.MobileRechargeOrder import \
47
from shop2020.model.v1.order.impl.model.MobileRechargeOrder import \
48
    MobileRechargeOrder
48
    MobileRechargeOrder
49
from shop2020.model.v1.order.impl.model.RechargeDenomination import \
49
from shop2020.model.v1.order.impl.model.RechargeDenomination import \
Line 1465... Line 1465...
1465
 
1465
 
1466
def __getOrderTaxType(order):
1466
def __getOrderTaxType(order):
1467
    delhiPincodePrefix = "11";
1467
    delhiPincodePrefix = "11";
1468
    maharashtraPincodePrefix = ["40", "41", "42", "43", "44"];
1468
    maharashtraPincodePrefix = ["40", "41", "42", "43", "44"];
1469
    karnatakaPincodePrefix = ["56", "57", "58", "59"];
1469
    karnatakaPincodePrefix = ["56", "57", "58", "59"];
-
 
1470
    telenganaPincodes = ["500001","500002","500003","500004","500005","500006","500007","500008","500009","500010","500011","500012","500013","500014","500015","500016","500017","500018","500019","500020","500021","500022","500023","500024","500025","500026","500027","500028","500029","500030","500031","500032","500033","500034","500035","500036","500037","500038","500039","500040","500041","500042","500043","500044","500045","500046","500047","500048","500049","500050","500051","500052","500053","500054","500055","500056","500057","500058","500059","500060","500061","500062","500063","500064","500065","500066","500067","500068","500069","500070","500071","500072","500073","500074","500075","500076","500077","500078","500079","500080","500081","500082","500083","500084","500085","500086","500087","500088","500089","500090","500091","500092","500093","500094","500095","500096","500097","500098","500178","500409","501218","501301","501401","501510","501511","501512","502307","502319","517501","517502","517503","517505","517507","520001","520002","520003","520004","520005","520006","520007","520008","520009","520010","520011","520012","520013","520014","520015","521108","521225","522001","522002","522003","522004","522005","522006","522007","522019","522509","530001","530002","530003","530004","530005","530007","530008","530009","530010","530010","530011","530012","530013","530014","530015","530016","530017","530018","530020","530021","530022","530023","530024","530026","530027","530028","530029","530032","530035","530040","530041","530043","530044","530045","530046","531001","533101","533103","533104","533105"]
-
 
1471
    
1470
    
1472
    
1471
    if order.warehouse_id == 7 or order.warehouse_id == 9: 
1473
    if order.warehouse_id == 7 or order.warehouse_id == 9: 
1472
        if order.customer_pincode.startswith(delhiPincodePrefix):
1474
        if order.customer_pincode.startswith(delhiPincodePrefix):
1473
            return 0
1475
            return 0
1474
        else:
1476
        else:
Line 1481... Line 1483...
1481
    if order.warehouse_id == 1765 or order.warehouse_id == 1768:
1483
    if order.warehouse_id == 1765 or order.warehouse_id == 1768:
1482
        for knkPincodePrefix in karnatakaPincodePrefix:
1484
        for knkPincodePrefix in karnatakaPincodePrefix:
1483
            if order.customer_pincode.startswith(knkPincodePrefix):
1485
            if order.customer_pincode.startswith(knkPincodePrefix):
1484
                return 0
1486
                return 0
1485
        return 1
1487
        return 1
-
 
1488
    if order.warehouse_id == 3298:
-
 
1489
        for pincode in telenganaPincodes:
-
 
1490
            if order.customer_pincode == pincode:
-
 
1491
                return 0
-
 
1492
        return 1
1486
    return 0
1493
    return 0
1487
    #raise TransactionServiceException(110, "No Vat/CST logic defined for warehouse " + str(order.warehouse_id)) 
1494
    #raise TransactionServiceException(110, "No Vat/CST logic defined for warehouse " + str(order.warehouse_id)) 
1488
 
1495
 
1489
def add_billing_details(orderId, invoice_number, serialNumbers, itemNumbers, freebieWarehouseId, billedBy, jacketNumber, billingType, fulfilmentWarehouseId, authorize):
1496
def add_billing_details(orderId, invoice_number, serialNumbers, itemNumbers, freebieWarehouseId, billedBy, jacketNumber, billingType, fulfilmentWarehouseId, authorize):
1490
    if billedBy is None or billedBy.strip() == "":
1497
    if billedBy is None or billedBy.strip() == "":
Line 1615... Line 1622...
1615
        order.status = OrderStatus.BILLED
1622
        order.status = OrderStatus.BILLED
1616
        order.statusDescription = "Order Billed"
1623
        order.statusDescription = "Order Billed"
1617
        order.billing_timestamp = datetime.datetime.now()
1624
        order.billing_timestamp = datetime.datetime.now()
1618
        order.billed_by = billedBy
1625
        order.billed_by = billedBy
1619
 
1626
 
-
 
1627
        #Manish Sharma Invoice
-
 
1628
        whStateId = None
1620
        # Letting the billing process fail in cases where we are unable to 
1629
        # Letting the billing process fail in cases where we are unable to 
1621
        # fill in transfer price
1630
        # fill in transfer price
1622
        try:
1631
        try:
1623
            inventory_client = InventoryClient().get_client()
1632
            inventory_client = InventoryClient().get_client()
1624
            warehouse = inventory_client.getWarehouse(fulfilmentWarehouseId)
1633
            warehouse = inventory_client.getWarehouse(fulfilmentWarehouseId)
Line 1631... Line 1640...
1631
                if fetchStateMaster()[warehouse.stateId].vatType==VatType.MRP:
1640
                if fetchStateMaster()[warehouse.stateId].vatType==VatType.MRP:
1632
                    lineitem.vatRate = catalog_client.getVatPercentageForItem(lineitem.item_id, warehouse.stateId, lineitem.mrp)
1641
                    lineitem.vatRate = catalog_client.getVatPercentageForItem(lineitem.item_id, warehouse.stateId, lineitem.mrp)
1633
                else:
1642
                else:
1634
                    lineitem.vatRate = catalog_client.getVatPercentageForItem(lineitem.item_id, warehouse.stateId, lineitem.unit_price)
1643
                    lineitem.vatRate = catalog_client.getVatPercentageForItem(lineitem.item_id, warehouse.stateId, lineitem.unit_price)
1635
            order.vendorId = warehouse.vendor.id
1644
            order.vendorId = warehouse.vendor.id
-
 
1645
            whStateId = warehouse.stateId
1636
        except InventoryServiceException as e:
1646
        except InventoryServiceException as e:
1637
            print sys.exc_info()[0]
1647
            print sys.exc_info()[0]
1638
            print e.message
1648
            print e.message
1639
            raise TransactionServiceException(110, 'Transfer price missing for itemId: ' + str(item_id) + ' and vendor: ' + str(warehouse.vendor.id))
1649
            raise TransactionServiceException(110, 'Transfer price missing for itemId: ' + str(item_id) + ' and vendor: ' + str(warehouse.vendor.id))
1640
 
1650
 
Line 2336... Line 2346...
2336
    entity_id = InvoiceIDGenerator.query.filter(InvoiceIDGenerator.orderType == orderType).with_lockmode("update").one()
2346
    entity_id = InvoiceIDGenerator.query.filter(InvoiceIDGenerator.orderType == orderType).with_lockmode("update").one()
2337
    invoice_number = entity_id.id + 1
2347
    invoice_number = entity_id.id + 1
2338
    entity_id.id = invoice_number
2348
    entity_id.id = invoice_number
2339
    return invoice_number
2349
    return invoice_number
2340
 
2350
 
-
 
2351
def get_next_invoice_counter(orderType, stateId):
-
 
2352
    entity_id = InvoiceCounterGenerator.query.filter(InvoiceCounterGenerator.orderType == orderType).filter(InvoiceCounterGenerator.stateId == stateId).with_lockmode("update").one()
-
 
2353
    invoice_number = entity_id.id + 1
-
 
2354
    entity_id.id = invoice_number
-
 
2355
    return invoice_number, entity_id.prefix
-
 
2356
 
2341
def toggle_doa_flag(order_id):
2357
def toggle_doa_flag(order_id):
2342
    order = get_order(order_id)
2358
    order = get_order(order_id)
2343
    if(order.doaFlag):
2359
    if(order.doaFlag):
2344
        order.doaFlag = False
2360
        order.doaFlag = False
2345
    else:
2361
    else:
Line 6608... Line 6624...
6608
    exists = FlipkartOrder.query.filter_by(flipkartOrderId=orderid,flipkartSubOrderId=suborderid).first()
6624
    exists = FlipkartOrder.query.filter_by(flipkartOrderId=orderid,flipkartSubOrderId=suborderid).first()
6609
    if exists is not None:
6625
    if exists is not None:
6610
        return True
6626
        return True
6611
    else:
6627
    else:
6612
        return False
6628
        return False
-
 
6629
    
6613
def create_flipkart_order(flipkartorder):
6630
def create_flipkart_order(flipkartorder):
6614
    order = FlipkartOrder()
6631
    order = FlipkartOrder()
6615
    order.orderId = flipkartorder.orderId
6632
    order.orderId = flipkartorder.orderId
6616
    order.flipkartSubOrderId = flipkartorder.flipkartSubOrderId
6633
    order.flipkartSubOrderId = flipkartorder.flipkartSubOrderId
6617
    order.flipkartOrderId = flipkartorder.flipkartOrderId
6634
    order.flipkartOrderId = flipkartorder.flipkartOrderId
Line 7124... Line 7141...
7124
    else:
7141
    else:
7125
        invoiceNo = get_next_invoice_number(orders[0].orderType)
7142
        invoiceNo = get_next_invoice_number(orders[0].orderType)
7126
        for order in orders:
7143
        for order in orders:
7127
            order.invoice_number = invoiceNo
7144
            order.invoice_number = invoiceNo
7128
            session.commit()
7145
            session.commit()
-
 
7146
            
-
 
7147
def get_fa_order_by_fk_order_id(fk_OrderId,fk_OrderItemId):
-
 
7148
    faOrder = FlipkartAdvantageOrder.query.filter_by(fkOrderId=fk_OrderId,fkOrderItemId=fk_OrderItemId).first()
-
 
7149
    if not faOrder:
-
 
7150
        print "Not found order for orderId " + str(fk_OrderId)
-
 
7151
        raise TransactionServiceException(108, "no such order")
7129
    
7152
    
-
 
7153
    return faOrder
-
 
7154
 
-
 
7155
def flipkart_fa_order_exists(fk_OrderId,fk_OrderItemId):
-
 
7156
    faOrder = FlipkartAdvantageOrder.query.filter_by(fkOrderId=fk_OrderId,fkOrderItemId=fk_OrderItemId).first()
-
 
7157
    if not faOrder:
-
 
7158
        return False
-
 
7159
    else:
-
 
7160
        return True
-
 
7161
 
-
 
7162
def get_all_fa_orders_list(status):
-
 
7163
    faOrders = None
-
 
7164
    if status == 'all':
-
 
7165
        faOrders = FlipkartAdvantageOrder.query.all()
-
 
7166
    else:
-
 
7167
        faOrders = FlipkartAdvantageOrder.query.filter(FlipkartAdvantageOrder.status==status).all()
-
 
7168
    if not faOrders:
-
 
7169
        faOrders = []   
-
 
7170
    return faOrders
-
 
7171
 
-
 
7172
def add_update_fa_orders_bulk(faOrdersList):
-
 
7173
    for faOrder in faOrdersList:
-
 
7174
        if faOrder.status == 'shipped':
-
 
7175
            fa_Order = FlipkartAdvantageOrder()
-
 
7176
            fa_Order.fkOrderId = faOrder.fkOrderId
-
 
7177
            fa_Order.fkOrderItemId = faOrder.fkOrderItemId
-
 
7178
            fa_Order.sku = faOrder.sku
-
 
7179
            fa_Order.creationTimestamp = to_py_date(faOrder.creationTimestamp)
-
 
7180
            fa_Order.customerName = faOrder.customerName
-
 
7181
            fa_Order.customerAddress = faOrder.customerAddress
-
 
7182
            fa_Order.pincode = faOrder.pincode
-
 
7183
            fa_Order.customerCity = faOrder.customerCity
-
 
7184
            fa_Order.customerState = faOrder.customerState
-
 
7185
            fa_Order.customerPhone = faOrder.customerPhone
-
 
7186
            fa_Order.status = faOrder.status
-
 
7187
            fa_Order.quantity = faOrder.quantity
-
 
7188
            fa_Order.totalPrice = faOrder.totalPrice
-
 
7189
            fa_Order.listPrice = faOrder.listPrice
-
 
7190
            fa_Order.modifiedDate = to_py_date(faOrder.modifiedDate)
-
 
7191
            fa_Order.listingId = faOrder.listingId
-
 
7192
            fa_Order.cancelReason = faOrder.cancelReason
-
 
7193
            fa_Order.returnReason = faOrder.returnReason
-
 
7194
            fa_Order.freebieItemId = faOrder.freebieItemId
-
 
7195
            fa_Order.productTitle = faOrder.productTitle
-
 
7196
        else:
-
 
7197
            fa_Order = FlipkartAdvantageOrder.query.filter_by(fkOrderId=faOrder.fkOrderId,fkOrderItemId=faOrder.fkOrderItemId).first()
-
 
7198
            if fa_Order:
-
 
7199
                if fa_Order.status !=faOrder.status:
-
 
7200
                    fa_Order.status = faOrder.status
-
 
7201
                    fa_Order.cancelReason = faOrder.cancelReason
-
 
7202
                    fa_Order.returnReason = faOrder.returnReason
-
 
7203
                    fa_Order.modifiedDate = to_py_date(faOrder.modifiedDate)
-
 
7204
    session.commit()
-
 
7205
            
-
 
7206
            
7130
if __name__ == '__main__':
7207
if __name__ == '__main__':
7131
    print get_orders_by_mobile_number("9650889334")
7208
    print get_orders_by_mobile_number("9650889334")