Esempio n. 1
0
def stockbill_list_data(request, bill_type_id=None):
    request_param = GridRequestParam(request)
    bill_query = get_stockbill_query_objects().all()
    """
    bill_query = bill_query.annotate( total_amount = Sum('stockbillentry__amount'),total_qty = Sum('stockbillentry__qty'))
    bill_query = bill_query.values('supplier__k3_name', 'department__k3_name',
                                   'customer__k3_name', 'customer__desc',
                                   'total_amount', 'total_qty',
                                   *field_names(StockBill))
    """
    bill_query = bill_query.values('supplier__k3_name', 'department__k3_name',
                                   'customer__k3_name', 'customer__desc',
                                   *field_names(StockBill))
    bill_query = bill_query.filter(request_param.get_filter())
    if bill_type_id is not None:
        bill_type = BillType.objects.get(id=bill_type_id)
        bill_query = bill_query.filter(bur_type=bill_type.type_text)
    bill_query = bill_query.filter(Q(is_b__gte=0) | Q(is_b__isnull=True))
    begin_date = request.POST.get('begin_date')
    end_date = request.POST.get('end_date')
    if begin_date:
        bill_query = bill_query.filter(bill_date__gte=begin_date)
    if end_date:
        bill_query = bill_query.filter(bill_date__lte=end_date)
    bill_query = bill_query.order_by(*request_param.get_order())
    total_count = bill_query.count()
    start, finish = request_param.get_data_start_finish()
    stockbill_list = list(bill_query[start: finish])
    return GridResponse(data=stockbill_list, total=total_count)
Esempio n. 2
0
def purseentry_list_data(request, purse_id=None):
    request_param = GridRequestParam(request)
    entry_query = PurseEntry.objects.all()
    entry_query = entry_query.values(
        'purse__inter_id', 'purse__bur_type', 'purse__k3_type', 'purse__bill_no',
        'purse__bill_date', 'purse__supplier__k3_name', 'material__bur_id', 'material__bur_num', 'material__k3_name',
        *field_names(PurseEntry))
    entry_query = entry_query.filter(request_param.get_filter())
    if purse_id is not None:
        entry_query = entry_query.filter(purse__inter_id=purse_id)
    entry_query = entry_query.filter(Q(is_b__gte=0) | Q(is_b__isnull=True))

    begin_date = request.POST.get('begin_date')
    end_date = request.POST.get('end_date')
    if begin_date:
        entry_query = entry_query.filter(purse__bill_date__gte=begin_date)
    if end_date:
        entry_query = entry_query.filter(purse__bill_date__lte=end_date)

    entry_query = entry_query.order_by(*request_param.get_order())
    total_count = entry_query.count()
    start, finish = request_param.get_data_start_finish()
    purseentry_list = list(entry_query[start: finish])
    for bill_entry in purseentry_list:
        round_bill_entry_decimal(bill_entry)

    return GridResponse(data=purseentry_list, total=total_count)
Esempio n. 3
0
def warehouse_detail_data(request):
    warehouse_id_data = request.POST.get('id')
    if warehouse_id_data is None:
        warehouse = Warehouse()
    else:
        warehouse_id = int(warehouse_id_data)
        warehouse = Warehouse.objects.filter(pk=warehouse_id).values(*field_names(Warehouse))[0]
    return JsonResponse(warehouse)
Esempio n. 4
0
def app_detail_data(request):
    app_id_data = request.POST.get("id")
    if app_id_data is None:
        app = App()
    else:
        app_id = int(app_id_data)
        app = App.objects.filter(pk=app_id).values(*field_names(App))[0]
    return JsonResponse(app)
Esempio n. 5
0
def admin_detail_data(request):
    admin_id_data = request.POST.get('id')
    if admin_id_data is None:
        admin = Admin()
    else:
        admin_id = int(admin_id_data)
        admin = Admin.objects.filter(pk=admin_id).values('user__nick_name', *field_names(Admin))[0]
    return JsonResponse(admin)
Esempio n. 6
0
def group_detail_data(request):
    group_id = request.POST.get("id")
    if group_id is None:
        group = Group()
    else:
        group_id = int(group_id)
        group = Group.objects.filter(pk=group_id).values("app_id", "app__app_name", *field_names(Group))[0]
    return JsonResponse(group)
Esempio n. 7
0
def user_detail_data(request):
    user_id_data = request.POST.get('id')
    if user_id_data is None:
        user = User()
    else:
        user_id = int(user_id_data)
        user = User.objects.filter(pk=user_id).values(*field_names(User))[0]
        user['new_password'] = ''
    return JsonResponse(user)
Esempio n. 8
0
def materiel_list_data(request):
    request_param = GridRequestParam(request)
    materiel_query = Materiel.objects.all()
    materiel_query = materiel_query.values(*field_names(Materiel))
    materiel_query = materiel_query.filter(request_param.get_filter())
    materiel_query = materiel_query.order_by(*request_param.get_order())
    total_count = materiel_query.count()
    start, finish = request_param.get_data_start_finish()
    materiel_list = list(materiel_query[start: finish])
    return GridResponse(data=materiel_list, total=total_count)
Esempio n. 9
0
def stock_list_data(request):
    request_param = GridRequestParam(request)
    stock_query = Stock.objects.all()
    stock_query = stock_query.values(*field_names(Stock))
    stock_query = stock_query.filter(request_param.get_filter())
    stock_query = stock_query.order_by(*request_param.get_order())
    total_count = stock_query.count()
    start, finish = request_param.get_data_start_finish()
    stock_list = list(stock_query[start: finish])
    return GridResponse(data=stock_list, total=total_count)
Esempio n. 10
0
def department_list_data(request):
    request_param = GridRequestParam(request)
    department_query = Department.objects.all()
    department_query = department_query.values(*field_names(Department))
    department_query = department_query.filter(request_param.get_filter())
    department_query = department_query.order_by(*request_param.get_order())
    total_count = department_query.count()
    start, finish = request_param.get_data_start_finish()
    department_list = list(department_query[start: finish])
    return GridResponse(data=department_list, total=total_count)
Esempio n. 11
0
def customer_list_data(request):
    request_param = GridRequestParam(request)
    customer_query = Customer.objects.all()
    customer_query = customer_query.values(*field_names(Customer))
    customer_query = customer_query.filter(request_param.get_filter())
    customer_query = customer_query.order_by(*request_param.get_order())
    total_count = customer_query.count()
    start, finish = request_param.get_data_start_finish()
    customer_list = list(customer_query[start: finish])
    return GridResponse(data=customer_list, total=total_count)
Esempio n. 12
0
def unit_list_data(request):
    request_param = GridRequestParam(request)
    unit_query = Unit.objects.all()
    unit_query = unit_query.values(*field_names(Unit))
    unit_query = unit_query.filter(request_param.get_filter())
    unit_query = unit_query.order_by(*request_param.get_order())
    total_count = unit_query.count()
    start, finish = request_param.get_data_start_finish()
    unit_list = list(unit_query[start: finish])
    return GridResponse(data=unit_list, total=total_count)
Esempio n. 13
0
def purse_select_supplier_list_data(request):
    request_param = GridRequestParam(request)
    supplier_query = Supplier.objects.all()
    supplier_query = supplier_query.values(*field_names(Supplier))
    supplier_query = supplier_query.filter(request_param.get_filter())
    supplier_query = supplier_query.order_by(*request_param.get_order())
    total_count = supplier_query.count()
    start, finish = request_param.get_data_start_finish()
    supplier_list = list(supplier_query[start: finish])
    return GridResponse(data=supplier_list, total=total_count)
Esempio n. 14
0
def billtype_list_data(request):
    request_param = GridRequestParam(request)
    billtype_query = BillType.objects.all()
    billtype_query = billtype_query.values(*field_names(BillType))
    billtype_query = billtype_query.filter(request_param.get_filter())
    billtype_query = billtype_query.order_by(*request_param.get_order())
    total_count = billtype_query.count()
    start, finish = request_param.get_data_start_finish()
    billtype_list = list(billtype_query[start: finish])
    return GridResponse(data=billtype_list, total=total_count)
Esempio n. 15
0
def deptuser_select_user_list_data(request):
    try:
        dept_id = request.POST.get('dept_id')
        # user_id_list = DepartmentUser.objects.filter(department=dept_id).values_list('user_id', flat=True)
        # 下面一句的写法更为简洁,最终会和再下面的语句会生成一个单独的SQL, 前一个查询很变成后一个查询的子查询
        user_id_list = DepartmentUser.objects.filter(department=dept_id).values('user_id')
        user_query = User.objects.exclude(id__in=user_id_list).values(*field_names(User))
        total_count = user_query.count()
        user_list = list(user_query)
        return JsonResponse({'total': total_count, 'rows': user_list})
    except Exception as exp:
        logger.exception(exp)
        return JsonResponse({'success': False, 'message': '加载数据失败!详细:%s' % exp})
Esempio n. 16
0
def app_list_data(request):
    try:
        search_form = GridSearchForm(request.POST)
        start, limit, sort_property, sort_direction = search_form.get_search_data()
        app_query = App.objects.all()
        app_query = app_query.values(*field_names(App))
        if sort_property is not None:
            app_query = app_query.order_by(sort_direction + sort_property)
        total_count = app_query.count()
        app_list = list(app_query[start : start + limit])
        return JsonResponse({"total": total_count, "rows": app_list})
    except Exception as exp:
        logger.exception(exp)
        return JsonResponse({"success": False, "message": "加载数据失败!详细:%s" % exp})
Esempio n. 17
0
def user_list_data(request):
    try:
        search_form = GridSearchForm(request.POST)
        start, limit, sort_property, sort_direction = search_form.get_search_data()
        user_query = User.objects.all()
        user_query = user_query.values(*field_names(User))
        if sort_property is not None:
            user_query = user_query.order_by(sort_direction + sort_property)
        total_count = user_query.count()
        user_list = list(user_query[start: start + limit])
        return JsonResponse({'total': total_count, 'rows': user_list})
    except Exception as exp:
        logger.exception(exp)
        return JsonResponse({'success': False, 'message': '加载数据失败!详细:%s' % exp})
Esempio n. 18
0
def admin_list_data(request):
    try:
        search_form = GridSearchForm(request.POST)
        start, limit, sort_property, sort_direction = search_form.get_search_data()
        admin_query = Admin.objects.all()
        # extra filters here
        admin_query = admin_query.values('user__login_name', 'user__nick_name', *field_names(Admin))
        if sort_property is not None:
            admin_query = admin_query.order_by(sort_direction + sort_property)
        total_count = admin_query.count()
        admin_list = list(admin_query[start: start + limit])
        return JsonResponse({'total': total_count, 'rows': admin_list})
    except Exception as exp:
        logger.exception(exp)
        return JsonResponse({'success': False, 'message': '加载数据失败!详细:%s' % exp})
Esempio n. 19
0
def group_list_data(request):
    try:
        search_form = GridSearchForm(request.POST)
        start, limit, sort_property, sort_direction = search_form.get_search_data()
        group_query = Group.objects.all()
        group_query = group_query.annotate(user_count=Count("users")).values(
            "app__app_name", "user_count", *field_names(Group)
        )
        if sort_property is not None:
            group_query = group_query.order_by(sort_direction + sort_property)
        total_count = group_query.count()
        group_list = list(group_query[start : start + limit])
        return JsonResponse({"total": total_count, "rows": group_list})
    except Exception as exp:
        logger.exception(exp)
        return JsonResponse({"success": False, "message": "加载数据失败!详细:%s" % exp})
Esempio n. 20
0
def retailbillentry_list_data(request, stock_bill_id=None):
    request_param = GridRequestParam(request)
    entry_query = get_retailbillentry_query_objects()
    entry_query = entry_query.values(
        'stock_bill__bur_type', 'stock_bill__k3_type', 'stock_bill__bill_no', 'stock_bill__bill_date',
        'stock_bill__supplier__k3_name','stock_bill__customer__bur_num', 'stock_bill__customer__k3_name',
        'stock_bill__biller_name', 'stock_bill__checker_name', 'stock_bill__db_name',
        'material__bur_num', 'material__k3_name',
        'sc_stock__bur_num', 'sc_stock__k3_name', 'dc_stock__k3_name',
        *field_names(RetailBillEntry))
    entry_query = entry_query.filter(request_param.get_filter())
    if stock_bill_id is not None:
        entry_query = entry_query.filter(stock_bill__fid=stock_bill_id)
    entry_query = entry_query.filter(Q(is_b__gte=0) | Q(is_b__isnull=True))

    entry_query = filter_retailbill_entry_query(request, entry_query)

    summary_data = entry_query.aggregate(consign_amount=Sum('consign_amount'), amount=Sum('amount'), all_amount=Sum('all_amount'), qty=Sum('qty'), stock_qty=Sum('stock_qty'), real_qty=Sum('real_qty'))

    entry_query = entry_query.order_by(*request_param.get_order())
    total_count = entry_query.count()
    start, finish = request_param.get_data_start_finish()
    retailbillentry_list = list(entry_query[start: finish])
    for bill_entry in retailbillentry_list:
        round_retail_bill_entry_decimal(bill_entry)

    # return GridResponse(data=retailbillentry_list, total=total_count)
    return JsonResponse({
        'grid_data': {
            'aaData': retailbillentry_list,
            'iTotalDisplayRecords': total_count,
            'iTotalRecords': total_count,
        },
        'summary_data': {
            'consign_amount': round(summary_data['consign_amount'], 2) if summary_data['consign_amount'] else 0,
            'amount': round(summary_data['amount'], 2) if summary_data['amount'] else 0,
            'all_amount': round(summary_data['all_amount'], 2) if summary_data['all_amount'] else 0,
            'qty': round(summary_data['qty'], 0) if summary_data['qty'] else 0,
            'stock_qty': round(summary_data['stock_qty'], 0) if summary_data['stock_qty'] else 0,
            'real_qty': round(summary_data['real_qty'], 0) if summary_data['real_qty'] else 0,
        },
    })
Esempio n. 21
0
def dept_list_data(request):
    try:
        search_form = GridSearchForm(request.POST)
        start, limit, sort_property, sort_direction = search_form.get_search_data()
        dept_query = Department.objects.all()
        parent_id = request.POST.get('parentId')
        if parent_id is None or parent_id == '' or parent_id == '0':
            parent_id = None
        else:
            parent_id = int(parent_id)
        dept_query = dept_query.filter(parent=parent_id)
        dept_query = dept_query.values(*field_names(Department))
        if sort_property is not None:
            dept_query = dept_query.order_by(sort_direction + sort_property)
        total_count = dept_query.count()
        dept_list = list(dept_query[start: start + limit])
        return JsonResponse({'total': total_count, 'rows': dept_list})
    except Exception as exp:
        logger.exception(exp)
        return JsonResponse({'success': False, 'message': '加载数据失败!详细:%s' % exp})
Esempio n. 22
0
def resource_list_data(request):
    try:
        search_form = GridSearchForm(request.POST)
        start, limit, sort_property, sort_direction = search_form.get_search_data()
        resource_query = Resource.objects.all()
        app_id = request.POST.get('app_id')
        if app_id is not None and app_id.strip() != '' and app_id != '0':
            resource_query = resource_query.filter(app=app_id)
        if sort_property is not None:
            resource_query = resource_query.order_by(sort_direction + sort_property)
        resource_query = resource_query \
            .annotate(user_count=Count('users', distinct=True)) \
            .annotate(group_count=Count('groups', distinct=True)) \
            .values('app__app_name', 'user_count', 'group_count', *field_names(Resource))
        total_count = resource_query.count()
        resource_list = list(resource_query[start: start + limit])
        return JsonResponse({'total': total_count, 'rows': resource_list})
    except Exception as exp:
        logger.exception(exp)
        return JsonResponse({'success': False, 'message': '加载数据失败!详细:%s' % exp})
Esempio n. 23
0
def purse_list_data(request, bill_type_id=None):
    request_param = GridRequestParam(request)
    bill_query = Purse.objects.all()

    bill_query = bill_query.values('supplier__k3_name', 'department__k3_name',
                                   *field_names(Purse))
    bill_query = bill_query.filter(request_param.get_filter())
    if bill_type_id is not None:
        bill_type = BillType.objects.get(id=bill_type_id)
        bill_query = bill_query.filter(bur_type__contains=bill_type.type_text)  # contains, 单据类型,在类型表里面和采购单存储的类型名称不完全对上
    bill_query = bill_query.filter(Q(is_b__gte=0) | Q(is_b__isnull=True))
    begin_date = request.POST.get('begin_date')
    end_date = request.POST.get('end_date')
    if begin_date:
        bill_query = bill_query.filter(bill_date__gte=begin_date)
    if end_date:
        bill_query = bill_query.filter(bill_date__lte=end_date)
    bill_query = bill_query.order_by(*request_param.get_order())
    total_count = bill_query.count()
    start, finish = request_param.get_data_start_finish()
    purse_list = list(bill_query[start: finish])
    return GridResponse(data=purse_list, total=total_count)
Esempio n. 24
0
def resource_auth_group_select_list_data(request):
    try:
        if request.POST.get('res_id_list') is None:
            return JsonResponse({'total': 0, 'rows': []})
        res_id_list_form = ResourceIdListForm(request.POST)
        res_id_list = res_id_list_form.data.getlist('res_id_list')
        search_form = GridSearchForm(request.POST)
        start, limit, sort_property, sort_direction = search_form.get_search_data()
        group_query = Group.objects.all()
        res_id_count = len(res_id_list)
        auth_group_id_query = GroupResource.objects.all() \
            .values('group_id').annotate(res_count=Count('resource')) \
            .filter(resource__in=res_id_list, res_count=res_id_count) \
            .values('group_id')
        group_query = group_query.exclude(id__in=auth_group_id_query)
        group_query = group_query.values('app__app_name', *field_names(Group))
        if sort_property is not None:
            group_query = group_query.order_by(sort_direction + sort_property)
        total_count = group_query.count()
        group_list = list(group_query[start: start + limit])
        return JsonResponse({'total': total_count, 'rows': group_list})
    except Exception as exp:
        logger.exception(exp)
        return JsonResponse({'success': False, 'message': '加载数据失败!详细:%s' % exp})
Esempio n. 25
0
def deptuser_user_list_data(request):
    try:
        search_form = GridSearchForm(request.POST)
        start, limit, sort_property, sort_direction = search_form.get_search_data(
        )
        deptuser_query = DepartmentUser.objects.all()
        dept_id = request.POST.get('dept_id')
        if dept_id is not None and dept_id.strip() != '' and dept_id != '0':
            deptuser_query = deptuser_query.filter(department=dept_id)
        deptuser_query = deptuser_query.values(
            'department__dept_name', 'user__login_name', 'user__nick_name',
            *field_names(DepartmentUser))
        if sort_property is not None:
            deptuser_query = deptuser_query.order_by(sort_direction +
                                                     sort_property)
        total_count = deptuser_query.count()
        user_list = list(deptuser_query[start:start + limit])
        return JsonResponse({'total': total_count, 'rows': user_list})
    except Exception as exp:
        logger.exception(exp)
        return JsonResponse({
            'success': False,
            'message': '加载数据失败!详细:%s' % exp
        })
Esempio n. 26
0
def groupuser_user_list_data(request):
    try:
        search_form = GridSearchForm(request.POST)
        start, limit, sort_property, sort_direction = search_form.get_search_data()
        groupuser_query = GroupUser.objects.all()
        node_id = request.POST.get('node_id')
        if node_id is None or node_id == '0' or node_id.startswith('app_'):
            return JsonResponse(({'total': 0, 'rows': []}))
        else:  # node_id.startswith('group_'):
            group_id = int(node_id.split('_')[1])
            groupuser_query = groupuser_query.filter(group=group_id)
            groupuser_query = groupuser_query.values('group__group_name', 'user__login_name', 'user__nick_name', *field_names(GroupUser))
            if sort_property is not None:
                groupuser_query = groupuser_query.order_by(sort_direction + sort_property)
            total_count = groupuser_query.count()
            user_list = list(groupuser_query[start: start + limit])
            return JsonResponse({'total': total_count, 'rows': user_list})
    except Exception as exp:
        logger.exception(exp)
        return JsonResponse({'success': False, 'message': '加载数据失败!详细:%s' % exp})
Esempio n. 27
0
def profile_user_detail_data(request):
    user_id = login_service.get_login_user(request).user_id
    user = User.objects.filter(pk=user_id).values(*field_names(User))[0]
    user['new_password'] = ''
    return JsonResponse(user)
Esempio n. 28
0
def resource_detail_data(request):
    resource_id = request.POST.get('id')
    if resource_id is None:
        resource = Resource()
    else:
        resource_id = int(resource_id)
        resource = Resource.objects.filter(pk=resource_id).values('app', 'app__app_name', *field_names(Resource))[0]
    return JsonResponse(resource)
Esempio n. 29
0
def dept_detail_data(request):
    dept_id_data = request.POST.get('id')
    if dept_list_data is None:
        dept = Department()
    else:
        dept_id = int(dept_id_data)
        dept = Department.objects.filter(pk=dept_id).values('parent__id', 'parent__dept_name', *field_names(Department))[0]
    return JsonResponse(dept)