Example #1
0
def make_order(request, template_name='product_order/make_order.html'):
    order_id = request.GET.get('order_id')
    role = request.GET.get('role')
    action = request.GET.get('action')
    if not role:
        return render_to_response(
            template_name, {
                'order': None,
                'role_actions': Order_State_Machine.get_initial_role_actions(),
                'current_state': Order_State_Machine.get_initial_state()
            },
            context_instance=RequestContext(request))
    else:
        if role == 'B' and action == 'create order':
            order_id = Order.create_order()
            order = get_object_or_404(Order, id=order_id)
        else:
            order = get_object_or_404(Order, id=order_id)
            order.goto_next(role, action)

    return render_to_response(
        template_name, {
            'order': order.product_order,
            'role_actions': order.product_order.get_role_actions(),
            'current_state': order.state
        },
        context_instance=RequestContext(request))
Example #2
0
    def create_order(cls, order_id=None, buyer_id='877673433', item_list=['56899023', '83768385'],  **kwargs):
        return Order.create_order(order_id, buyer_id, item_list, **kwargs)


    




    
          
            
Example #3
0
    def goto_next(cls, order_id, role, order_action, item_action, item_id, **kwargs):
        if order_action:
            #if there is no order yet, and the action is from Buyer 'create order', then create the order
            if not order_id and role == 'B' and order_action == 'create order': 
                #TODO: remove below?
                order_id = Order.create_order() 
                order =  get_object_or_404(Order, id=order_id)
            else:
                order =  get_object_or_404(Order, id=order_id)
                order.goto_next(role, order_action)  
        if item_action:
            #if item_action, this will only affect the item that is acted on
            order =  get_object_or_404(Order, id=order_id)            
            ocr = order.order_item_rel_set.get(item_id=item_id)
            ocr.goto_next(role, item_action)

            if not Refund_Sheet.objects.filter(item_id=ocr.id).exists():#not ocr.refund_sheet:
                if ocr.state == 'WR':
                    rs_type = ''
                    if item_action == 'request refund':
                        rs_type = 'RO'
                    if item_action == 'request refund with return':
                        rs_type = 'RR'    
                    rs = Refund_Sheet.create_refund_sheet(ocr.id, rs_type) 
                    rl = Refund_Log(refund_sheet_id=rs.id, refund_type=rs.refund_type, action=item_action, 
                        reason=kwargs.get('reason',''), memo=kwargs.get('memo', ''), operator=kwargs.get('operator',''),
                        refund_fee=kwargs.get('refund_fee', None))
                    rl.save()                    
            else:
                rs = get_object_or_404(Refund_Sheet, item_id=ocr.id)
                next_state, post_action = rs.goto_next(role, item_action)  
                #TODO:make below into post_action
                if item_action == "ship back":
                    rs.express_company = kwargs.get("express_company", "")
                    rs.express_tracking_no = kwargs.get("express_tracking_no", "")
                    rs.save()
                if item_action == "change refund request":
                    rs_type = kwargs.get('refund_type', '') 
                    if rs_type: 
                        rs.refund_type = rs_type   
                        rs.save()
                if next_state:
                    rl = Refund_Log(refund_sheet_id=rs.id, refund_type=kwargs.get('refund_type', ''), action=item_action, 
                            reason=kwargs.get('reason', ''), memo=kwargs.get('memo', ''), operator=kwargs.get('operator', ''),
                            refund_fee=kwargs.get('refund_fee', None))
                    rl.save()
                
      
        return {'order': order, 'admin_actions':admin_actions, 'input_actions':input_actions}        
Example #4
0
def make_order(request, template_name='product_order/make_order.html'):
    order_id = request.GET.get('order_id')
    role = request.GET.get('role')
    action = request.GET.get('action')
    if not role:        
        return render_to_response(template_name, {'order': None, 'role_actions':Order_State_Machine.get_initial_role_actions(),
           'current_state':Order_State_Machine.get_initial_state()},
            context_instance=RequestContext(request))
    else:
        if role == 'B' and action == 'create order': 
            order_id = Order.create_order()  
            order = get_object_or_404(Order, id=order_id)        
        else:
            order = get_object_or_404(Order, id=order_id)
            order.goto_next(role, action)           

    return render_to_response(template_name, {'order': order.product_order, 'role_actions':order.product_order.get_role_actions(), 'current_state':order.state},
        context_instance=RequestContext(request))
Example #5
0
    def goto_next(cls, order_id, role, order_action, item_action, item_id,
                  **kwargs):
        if order_action:
            #if there is no order yet, and the action is from Buyer 'create order', then create the order
            if not order_id and role == 'B' and order_action == 'create order':
                #TODO: remove below?
                order_id = Order.create_order()
                order = get_object_or_404(Order, id=order_id)
            else:
                order = get_object_or_404(Order, id=order_id)
                order.goto_next(role, order_action)
        if item_action:
            #if item_action, this will only affect the item that is acted on
            order = get_object_or_404(Order, id=order_id)
            ocr = order.order_item_rel_set.get(item_id=item_id)
            ocr.goto_next(role, item_action)

            if not Refund_Sheet.objects.filter(
                    item_id=ocr.id).exists():  #not ocr.refund_sheet:
                if ocr.state == 'WR':
                    rs_type = ''
                    if item_action == 'request refund':
                        rs_type = 'RO'
                    if item_action == 'request refund with return':
                        rs_type = 'RR'
                    rs = Refund_Sheet.create_refund_sheet(ocr.id, rs_type)
                    rl = Refund_Log(refund_sheet_id=rs.id,
                                    refund_type=rs.refund_type,
                                    action=item_action,
                                    reason=kwargs.get('reason', ''),
                                    memo=kwargs.get('memo', ''),
                                    operator=kwargs.get('operator', ''),
                                    refund_fee=kwargs.get('refund_fee', None))
                    rl.save()
            else:
                rs = get_object_or_404(Refund_Sheet, item_id=ocr.id)
                next_state, post_action = rs.goto_next(role, item_action)
                #TODO:make below into post_action
                if item_action == "ship back":
                    rs.express_company = kwargs.get("express_company", "")
                    rs.express_tracking_no = kwargs.get(
                        "express_tracking_no", "")
                    rs.save()
                if item_action == "change refund request":
                    rs_type = kwargs.get('refund_type', '')
                    if rs_type:
                        rs.refund_type = rs_type
                        rs.save()
                if next_state:
                    rl = Refund_Log(refund_sheet_id=rs.id,
                                    refund_type=kwargs.get('refund_type', ''),
                                    action=item_action,
                                    reason=kwargs.get('reason', ''),
                                    memo=kwargs.get('memo', ''),
                                    operator=kwargs.get('operator', ''),
                                    refund_fee=kwargs.get('refund_fee', None))
                    rl.save()

        return {
            'order': order,
            'admin_actions': admin_actions,
            'input_actions': input_actions
        }
Example #6
0
 def create_order(cls,
                  order_id=None,
                  buyer_id='877673433',
                  item_list=['56899023', '83768385'],
                  **kwargs):
     return Order.create_order(order_id, buyer_id, item_list, **kwargs)