Subversion Repositories SmartDukaan

Rev

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

Rev 4535 Rev 4541
Line 20... Line 20...
20
from shop2020.model.v1 import order
20
from shop2020.model.v1 import order
21
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem, \
21
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem, \
22
    Order, BatchNoGenerator, InvoiceIDGenerator, TransactionRequiringExtraProcessing, \
22
    Order, BatchNoGenerator, InvoiceIDGenerator, TransactionRequiringExtraProcessing, \
23
    OrderInventory, Alert
23
    OrderInventory, Alert
24
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
24
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
-
 
25
from shop2020.thriftpy.generic.ttypes import ExceptionType
25
from shop2020.thriftpy.logistics.ttypes import DeliveryType
26
from shop2020.thriftpy.logistics.ttypes import DeliveryType
26
from shop2020.thriftpy.model.v1.catalog.ttypes import BillingType, \
27
from shop2020.thriftpy.model.v1.catalog.ttypes import BillingType, \
27
    InventoryServiceException
28
    InventoryServiceException
28
from shop2020.thriftpy.model.v1.order.ttypes import TransactionServiceException, \
29
from shop2020.thriftpy.model.v1.order.ttypes import TransactionServiceException, \
29
    TransactionStatus, OrderStatus, DelayReason, ExtraTransactionProcessingType, \
30
    TransactionStatus, OrderStatus, DelayReason, ExtraTransactionProcessingType, \
30
    HotspotAction, TimeoutSummary
31
    HotspotAction, TimeoutSummary
31
from shop2020.thriftpy.payments.ttypes import PaymentException
32
from shop2020.thriftpy.payments.ttypes import PaymentException
32
from shop2020.thriftpy.purchase.ttypes import PurchaseOrder, LineItem as POLineItem
33
from shop2020.thriftpy.purchase.ttypes import PurchaseOrder, \
-
 
34
    LineItem as POLineItem
33
from shop2020.thriftpy.warehouse.ttypes import ScanType
35
from shop2020.thriftpy.warehouse.ttypes import ScanType, \
-
 
36
    WarehouseServiceException
34
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part
37
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part
35
from shop2020.utils.Utils import to_py_date, to_java_date
38
from shop2020.utils.Utils import to_py_date, to_java_date
36
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
39
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
37
from sqlalchemy.sql import func
40
from sqlalchemy.sql import func
38
from sqlalchemy.sql.expression import and_, or_, desc, not_, distinct
41
from sqlalchemy.sql.expression import and_, or_, desc, not_, distinct
Line 658... Line 661...
658
        lineitems = order.lineitems
661
        lineitems = order.lineitems
659
        for lineitem in lineitems:
662
        for lineitem in lineitems:
660
            catalog_client.reduceReservationCount(item_id, order.warehouse_id, lineitem.quantity)
663
            catalog_client.reduceReservationCount(item_id, order.warehouse_id, lineitem.quantity)
661
 
664
 
662
        # Putting NULL as transfer price for cases where its missing
665
        # Putting NULL as transfer price for cases where its missing
663
        if item_pricing is not None:        
666
        if item_pricing is not None:
664
            order.lineitems[0].transfer_price = item_pricing.transferPrice
667
            order.lineitems[0].transfer_price = item_pricing.transferPrice
665
        session.commit()
-
 
666
 
668
 
667
        # For Mahipal warehouse, we need to scan out items for every billed order
669
        # For Mahipal warehouse, we need to scan out items for every billed order
668
        if order.warehouse_id == 7:
670
        if order.warehouse_id == 7:
669
            try:
671
            try:
670
                warehouse_client = WarehouseClient().get_client()
672
                warehouse_client = WarehouseClient().get_client()
671
                inventoryItem = warehouse_client.getInventoryItem(str(imeiNumber))
673
                inventoryItem = warehouse_client.getInventoryItem(str(imeiNumber))
-
 
674
                if (inventoryItem.itemId != item_id):
-
 
675
                    item = catalog_client.getItem(inventoryItem.itemId)
-
 
676
                    lineitem = order.lineitems[0]
-
 
677
                    scanItemString = " ".join([item.brand, item.modelName, item.modelNumber, item.color])
-
 
678
                    lineItemString = " ".join([lineitem.brand, lineitem.model_name, lineitem.model_number, lineitem.color])
-
 
679
                    raise TransactionServiceException(110, 'Trying to scan ' + scanItemString + ' instead of ' + lineItemString)
672
                transferPrice = warehouse_client.scanSerializedItemForOrder(inventoryItem.id, ScanType.SALE, orderId)
680
                transferPrice = warehouse_client.scanSerializedItemForOrder(inventoryItem.id, ScanType.SALE, orderId)
673
                # order.transfer_price = transferPrice
681
                order.transfer_price = transferPrice
674
            except:
682
            except WarehouseServiceException as e:
675
                print sys.exc_info()[0]
683
                print sys.exc_info()[0]
676
                print 'Could not scan out orders'
684
                print 'Could not scan out orders due to: ' + e.message
-
 
685
                if e.exceptionType == ExceptionType.ILLEGAL_ARGUMENTS:
-
 
686
                    raise TransactionServiceException(110, e.message)
677
 
687
 
-
 
688
        session.commit()
678
        return True
689
        return True
679
    else:
690
    else:
680
        return False
691
        return False
681
 
692
 
682
def batch_orders(warehouseId):
693
def batch_orders(warehouseId):