Subversion Repositories SmartDukaan

Rev

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

Rev 4757 Rev 4763
Line 46... Line 46...
46
import time
46
import time
47
import traceback
47
import traceback
48
logging.basicConfig(level=logging.DEBUG)
48
logging.basicConfig(level=logging.DEBUG)
49
 
49
 
50
 
50
 
51
try:
-
 
52
    config_client = ConfigClient()
-
 
53
    PREPAID_SHIPPING_CUTOFF_TIME = int(config_client.get_property('delivery_cutoff_time'))
-
 
54
except Exception as ex:
-
 
55
    print "[ERROR] Unexpected config error:", sys.exc_info()[0]
-
 
56
    PREPAID_SHIPPING_CUTOFF_TIME = 15
51
PREPAID_SHIPPING_CUTOFF_TIME = 15
57
 
-
 
58
COD_SHIPPING_CUTOFF_TIME = 12
52
COD_SHIPPING_CUTOFF_TIME = 12
59
 
53
 
60
PAGE_HEIGHT=defaultPageSize[1]
54
PAGE_HEIGHT=defaultPageSize[1]
61
PAGE_WIDTH=defaultPageSize[0]
55
PAGE_WIDTH=defaultPageSize[0]
62
 
56
 
-
 
57
billedOrdersColorMap = {}
-
 
58
 
63
ORDER_STATUS_TO_USER_TRUST_LEVEL_DELTA_DICT = {
59
ORDER_STATUS_TO_USER_TRUST_LEVEL_DELTA_DICT = {
64
        OrderStatus.RTO_RESHIPPED     :  3,
60
        OrderStatus.RTO_RESHIPPED     :  3,
65
        OrderStatus.RTO_IN_TRANSIT : -5,
61
        OrderStatus.RTO_IN_TRANSIT : -5,
66
        OrderStatus.DELIVERY_SUCCESS        :  1,
62
        OrderStatus.DELIVERY_SUCCESS        :  1,
67
        OrderStatus.DOA_CERT_INVALID        : -5
63
        OrderStatus.DOA_CERT_INVALID        : -5
Line 609... Line 605...
609
            session.commit()
605
            session.commit()
610
            raise TransactionServiceException(122, "Unable to capture payment due to connection issue.")
606
            raise TransactionServiceException(122, "Unable to capture payment due to connection issue.")
611
        else:
607
        else:
612
            raise TransactionServiceException(115, "Payment capture failed.")
608
            raise TransactionServiceException(115, "Payment capture failed.")
613
 
609
 
614
def add_billing_details(orderId, invoice_number, serialNumber, itemNumber, billedBy, jacketNumber, billingType, vendorId):
610
def add_billing_details(orderId, invoice_number, serialNumber, itemNumber, billedBy, jacketNumber, billingType, vendorId, authorize):
615
    if jacketNumber is None or jacketNumber <= 0:
611
    if jacketNumber is None or jacketNumber <= 0:
616
        raise TransactionServiceException(110, "Invalid jacket number")
612
        raise TransactionServiceException(110, "Invalid jacket number")
617
    
613
    
618
    if billedBy is None or billedBy.strip() == "":
614
    if billedBy is None or billedBy.strip() == "":
619
        raise TransactionServiceException(110, "Invalid Biller")
615
        raise TransactionServiceException(110, "Invalid Biller")
Line 635... Line 631...
635
            lineitem.item_number = itemNumber
631
            lineitem.item_number = itemNumber
636
            if serialNumber:
632
            if serialNumber:
637
                lineitem.serial_number = serialNumber
633
                lineitem.serial_number = serialNumber
638
        else:
634
        else:
639
            order.invoice_number = invoice_number
635
            order.invoice_number = invoice_number
-
 
636
            # In case of hotspot billing, we should try to verify that color billed in ETP is same as color in order.
-
 
637
            if billedOrdersColorMap.has_key(orderId):
-
 
638
                etpColor = billedOrdersColorMap.get(orderId)
-
 
639
                ourColor = order.lineitems[0].color
-
 
640
                if etpColor != ourColor and not authorize:
-
 
641
                    raise TransactionServiceException(777, "ETP color: " + etpColor + " and Order color: " + ourColor)
-
 
642
                else:
-
 
643
                    billedOrdersColorMap.pop(orderId)
640
        
644
        
641
        order.status = OrderStatus.BILLED
645
        order.status = OrderStatus.BILLED
642
        order.statusDescription = "Order Billed"
646
        order.statusDescription = "Order Billed"
643
        order.billing_timestamp = datetime.datetime.now()
647
        order.billing_timestamp = datetime.datetime.now()
644
        order.billed_by = billedBy
648
        order.billed_by = billedBy
Line 694... Line 698...
694
        session.commit()
698
        session.commit()
695
        return True
699
        return True
696
    else:
700
    else:
697
        return False
701
        return False
698
 
702
 
699
def add_invoice_number(orderId, invoiceNumber):
703
def add_invoice_number(orderId, invoiceNumber, color):
700
    order = Order.get_by(id=orderId)
704
    order = Order.get_by(id=orderId)
701
    if not order:
705
    if not order:
702
        raise TransactionServiceException(101, "No order found for the given order id" + str(orderId))
706
        raise TransactionServiceException(101, "No order found for the given order id" + str(orderId))
703
    
707
    
704
    if order.status == OrderStatus.ACCEPTED:
708
    if order.status == OrderStatus.ACCEPTED:
705
        order.invoice_number = invoiceNumber
709
        order.invoice_number = invoiceNumber
-
 
710
        billedOrdersColorMap[orderId] = color;
706
    session.commit()
711
    session.commit()
707
    
712
    
708
def batch_orders(warehouseId):
713
def batch_orders(warehouseId):
709
    if not warehouseId:
714
    if not warehouseId:
710
        raise TransactionServiceException(101, "bad warehouse id")
715
        raise TransactionServiceException(101, "bad warehouse id")