Subversion Repositories SmartDukaan

Rev

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

Rev 2764 Rev 2783
Line 24... Line 24...
24
PAGE_HEIGHT=defaultPageSize[1]
24
PAGE_HEIGHT=defaultPageSize[1]
25
PAGE_WIDTH=defaultPageSize[0]
25
PAGE_WIDTH=defaultPageSize[0]
26
 
26
 
27
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
27
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
28
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem,\
28
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem,\
29
    Alerts, Order, BatchNoGenerator
29
    Alerts, Order, BatchNoGenerator, InvoiceIDGenerator
30
from shop2020.thriftpy.model.v1.order.ttypes import Transaction as T_Transaction,\
30
from shop2020.thriftpy.model.v1.order.ttypes import Transaction as T_Transaction,\
31
    TransactionServiceException, TransactionStatus, OrderStatus
31
    TransactionServiceException, TransactionStatus, OrderStatus
32
from shop2020.utils.Utils import to_py_date, to_java_date
32
from shop2020.utils.Utils import to_py_date, to_java_date
33
from shop2020.model.v1 import order
33
from shop2020.model.v1 import order
34
from shop2020.clients.LogisticsClient import LogisticsClient
34
from shop2020.clients.LogisticsClient import LogisticsClient
Line 428... Line 428...
428
    return True
428
    return True
429
 
429
 
430
def add_billing_details(orderId, invoice_number, billed_by):
430
def add_billing_details(orderId, invoice_number, billed_by):
431
    order = Order.get_by(id=orderId)
431
    order = Order.get_by(id=orderId)
432
    if not order:
432
    if not order:
433
        raise TransactionServiceException(101, "No order found for the givem orderid")
433
        raise TransactionServiceException(101, "No order found for the given order id:" + str(orderId))
434
    order.invoice_number = invoice_number
434
    order.invoice_number = invoice_number
435
    order.billed_by = billed_by
435
    order.billed_by = billed_by
436
    session.commit()
436
    session.commit()
437
    return True
437
    return True
438
 
438
 
-
 
439
def add_jacket_number(self, orderId, jacket_number, imei_number, item_number, billed_by):
439
def add_jacket_number(orderId, jacket_number):
440
    if jacket_number is None or jacket_number <= 0:
-
 
441
        raise TransactionServiceException(110, "Invalid jacket number")
-
 
442
    
-
 
443
    if item_number is None or item_number.strip() == "":
-
 
444
        raise TransactionServiceException(110, "Invalid item number")
-
 
445
    
-
 
446
    if billed_by is None or billed_by.strip() == "":
-
 
447
        raise TransactionServiceException(110, "Invalid Biller")
-
 
448
    
440
    order = Order.get_by(id=orderId)
449
    order = Order.get_by(id=orderId)
441
    if not order:
450
    if not order:
442
        raise TransactionServiceException(101, "No order found for the givem orderid")
451
        raise TransactionServiceException(101, "No order found for the given order id" + str(orderId))
-
 
452
    
-
 
453
    lineitem = order.lineitems[0]
-
 
454
    if lineitem.productGroup == "Handsets" and imei_number <= 0:
-
 
455
        raise TransactionServiceException(110, "No IMEI number supplied for a handset.")
-
 
456
    
443
    order.jacket_number = jacket_number 
457
    order.jacket_number = jacket_number
-
 
458
    order.invoice_number = get_next_invoice_number()
-
 
459
    order.billed_by = billed_by
-
 
460
    order.status = OrderStatus.BILLED
-
 
461
    order.statusDescription = "Order Billed"
-
 
462
    order.billing_timestamp = datetime.datetime.now()
-
 
463
    
-
 
464
    lineitem.item_number = item_number
-
 
465
    if imei_number > 0:
-
 
466
        lineitem.imei_number = str(imei_number)
-
 
467
    
444
    session.commit()
468
    session.commit()
445
    return True
469
    return True
446
 
470
 
447
def batch_orders(warehouseId):
471
def batch_orders(warehouseId):
448
    if not warehouseId:
472
    if not warehouseId:
Line 580... Line 604...
580
        query = query.limit(limit)
604
        query = query.limit(limit)
581
    elif limit < 0:
605
    elif limit < 0:
582
        raise TransactionServiceException(101, "Invalid argument limit " + limit)
606
        raise TransactionServiceException(101, "Invalid argument limit " + limit)
583
    return query.all()
607
    return query.all()
584
 
608
 
-
 
609
def get_next_invoice_number():
-
 
610
    entity_id = InvoiceIDGenerator.query.with_lockmode("update").one()
-
 
611
    invoice_number = entity_id.id + 1
-
 
612
    entity_id.id = invoice_number
-
 
613
    session.commit()
-
 
614
    return invoice_number
-
 
615
 
585
def toggle_doa_flag(order_id):
616
def toggle_doa_flag(order_id):
586
    order = get_order(order_id)
617
    order = get_order(order_id)
587
    if(order.doaFlag):
618
    if(order.doaFlag):
588
        order.doaFlag = False
619
        order.doaFlag = False
589
    else:
620
    else:
Line 978... Line 1009...
978
    session.commit()
1009
    session.commit()
979
 
1010
 
980
def close_session():
1011
def close_session():
981
    if session.is_active:
1012
    if session.is_active:
982
        print "session is active. closing it."
1013
        print "session is active. closing it."
983
        session.close()
-
 
984
1014
        session.close()
-
 
1015