Ejemplo n.º 1
0
def edit(request, **kwargs):
    """
    Edit a stock Item
    """
    controller = StockController()
    stock = controller.getStockItem(kwargs.get('stock_item_id'))
    existing = True
    save_error_name = None
    if request.method == "POST":
        form = StockForm(request.POST, existing_flag=existing)
        if form.is_valid():
            try:
                form.save(stock)
                return redirect('/stock/index/?msg=Successfully updated')
            except:
                save_error_name = "The name selected is an existing stock item, please try again."

    else:

        if stock:
            form = StockForm(instance=stock)
        else:
            form = StockForm()

    return render_to_response(
        'stock/add.html',
        {
         'existing':True,
         'form':form,
         'message':save_error_name,
        },
        context_instance=RequestContext(request)
    )
Ejemplo n.º 2
0
def linkStockLevel(request, **kwargs):
    """
    Link a level with facility and stock
    """
    form = StockLevelForm()
    save_error_name = ''

    controller = StockController()
    facility = controller.getFacility(kwargs.get('facility_id'))
    if request.method == "POST":
        form = StockLevelForm(request.POST)
        if form.is_valid():
            try:
                controller = StockController()
                stock_item = controller.getStockItem(request.POST.get('stock_item'))
                form.save(stock_item, facility)
                return redirect('/stock/stock_level/facility/levels/%s/' % facility.id)
            except IntegrityError:
                save_error_name = "The combination selected already exists. View facility profile to adjust levels."
            except:
                save_error_name = "The name selected is an existing stock item, please try again."
    return render_to_response(
        'stock_level/link_stock.html',
        {
         'form':form,
         'save_error_name':save_error_name,
         'facility':facility,
        },
        context_instance=RequestContext(request)
    )
Ejemplo n.º 3
0
def remove(request, **kwargs):
    """
    Remove a stock item
    """
    try:
        controller = StockController()
        controller.remove(f_id=kwargs.get('stock_item_id'))

    except:
        return redirect('/stock/index/?msg=No matching stock item found')


    return redirect('/stock/index/?msg=Successfully Removed')
Ejemplo n.º 4
0
def indexStockLevelsStock(request):
    """
    List all stock levels
    """
    controller = StockController()
    stock_levels = controller.getAllStockLevelsPerItem()
    return render_to_response(
        'stock_level/index_per_item.html',
        {
         'stock_levels':stock_levels,
        },
        context_instance=RequestContext(request)
    )
Ejemplo n.º 5
0
def index(request):
    """
    List all stock items
    """
    controller = StockController()
    stock = controller.getAllStock().order_by('name')
    message = request.GET.get('msg')
    return render_to_response(
        'stock/index.html',
        {
         'message':message,
         'stock':stock,
        },
        context_instance=RequestContext(request)
    )
Ejemplo n.º 6
0
def indexFacilityLevels(request, **kwargs):
    """
    List all stock levels for a specific facility
    """
    facility_id = kwargs.get('facility_id')
    controller = StockController()
    stock_levels = controller.getAllStockLevelsPerFacility(facility_id=facility_id)
    facility = controller.getFacility(facility_id)
    return render_to_response(
        'stock_level/index_per_facility.html',
        {
         'stock_levels':stock_levels,
         'facility':facility,
         'facility_true':True,
        },
        context_instance=RequestContext(request)
    )
Ejemplo n.º 7
0
def indexStockLevelsFacility(request, **kwargs):
    """
    List all stock levels per facility
    """
    stock_id = kwargs.get('stock_item_id')
    controller = StockController()
    if stock_id:
        stock_levels = controller.getAllStockLevelsPerStockPerFacility(stock_id)
    else:
        stock_levels = controller.getAllStockLevelsPerFacility()
    return render_to_response(
        'stock_level/index_per_facility.html',
        {
         'stock_levels':stock_levels,
        },
        context_instance=RequestContext(request)
    )
Ejemplo n.º 8
0
def profile(request, **kwargs):
    """
    Profile a stock item
    """
    controller = StockController()

    try:
        stock_item = controller.getStockItem(int(kwargs.get('stock_item_id')))
    except:
        return redirect('/stock/index/?msg=No matching stock item found')

    return render_to_response(
        'stock/stock_profile.html',
        {
         'stock_item':stock_item,
        },
        context_instance=RequestContext(request)
    )
Ejemplo n.º 9
0
def underStocked(request):
    """
    All under stocked facilities
    """
    try:
        stock_levels = request.user.status[0]
    except:
        controller = StockController()
        stock_levels = controller.getAllStockLevelsPerFacility()


    return render_to_response(
        'stock_level/index_per_facility.html',
        {
         'stock_levels':stock_levels,
        },
        context_instance=RequestContext(request)
    )
Ejemplo n.º 10
0
def removeStockLevel(request, **kwargs):
    """
    Zero a specific stock level
    """
    stock_level_id = kwargs.get('stock_level_id')
    controller = StockController()
    if stock_level_id:
        result = controller.getZeroLevel(stock_level_id)
        level = controller.getStockLevel(stock_level_id)
        if not result:
            message = "Could not update stock"
        else:
            message = "Successfully updated"
    else:
        return redirect('/infrastructure/index/?msg=Could not zero stock')


    return redirect('/stock/stock_level/facility/stock_manage/%s/%s/?msg=%s' % (level.facility_id, level.stock_item.id, "Successfully updated"))
Ejemplo n.º 11
0
def allocateStock(request, **kwargs):
    """
    Allocate stock to a facility
    """
    facility_id = kwargs.get('facility_id')
    stock_item_id = kwargs.get('stock_item_id')
    controller = StockController()
    message = request.GET.get('msg')
    if facility_id and stock_item_id:
        facility_stock = controller.getFacilityStock(facility_id, stock_item_id)

        if not facility_stock:
            return redirect('/infrastructure/index/?msg=Facility not found')
    elif facility_id:
        return redirect('/stock/stock_level/link_stock/%s' % facility_id)
    else:
        return redirect('/infrastructure/index/?msg=Facility not found')
    if request:
        if request.method == "POST":
            clean, message = controller.cleanUpdate(request.POST)

            if message and not clean:
                return redirect('/stock/stock_level/facility/stock_manage/%s/%s/?msg=%s' % (facility_stock.facility_id, facility_stock.stock_item.id, message))

            if not controller.updateStock(facility_id, stock_item_id, request.POST):
                message = 'An error has occurred, please try again.'
            else:
                return redirect('/stock/stock_level/facility/stock_manage/%s/%s/?msg=%s' % (facility_stock.facility_id, facility_stock.stock_item.id, "Successfully updated"))

    return render_to_response(
        'stock_level/allocate_stock.html',
        {
         'facility_stock':facility_stock,
         'message':message,
        },
        context_instance=RequestContext(request)
    )
Ejemplo n.º 12
0
    def process_request(self, request):

        controller = StockController()
        setattr(request.user, 'status', controller.getCurrentStatus())

        return None