def payments(request): results = accounting.views.payment.search(request) results = sort_by_date(request, results) return paginate(request, results, 'task/accounting/payment_results.html', max_limit=15)
def bills(request): results = accounting.views.bill.search(request) results = sort_by_date(request, results) return paginate(request, results, 'task/accounting/bill_results.html', max_limit=15)
def expenses(request): results = accounting.views.expense.search(request) results = sort_by_date(request, results) return paginate(request, results, 'task/accounting/expense_results.html', max_limit=15)
def transactions(request): service_id = request.GET['service_id'] service_type = ContentType.objects.get_for_model(Service) results = OrderTransfer.objects.filter( items__order__info_type=service_type, items__order__info_id=service_id, labels__name=OrderTransfer.VALID) results = sort_by_date(request, results) return paginate(request, results, 'catalog/service_transactions.html')
def items(request): offset = int(request.GET.get('year_offset', 0)) primary = request.user.account.company cutoff = primary.account.current_cutoff_date(offset) item_ids = ItemAccount.objects.filter(owner=primary).values_list('id', flat=True) data = YearData.objects.filter(label=YearData.SALES, year=cutoff.year, account_type=ItemAccount.content_type(), account_id__in=item_ids).order_by('-total') return paginate(request, data, 'task/management/items.html')
def suppliers(request): offset = int(request.GET.get('year_offset', 0)) primary = request.user.account.company cutoff = primary.account.current_cutoff_date(offset) supplier_ids = TradeAccount.objects.filter(customer=primary).values_list('id', flat=True) data = YearData.objects.filter(label=YearData.PURCHASES, year=cutoff.year, account_type=TradeAccount.content_type().id, account_id__in=supplier_ids).order_by('-total') return paginate(request, data, 'task/management/suppliers.html')
def transaction_search_results(request, _id): transfers = OrderTransferItem.objects.filter(order__order__labels__name=Order.CANCELABLE) transfers = transfers.filter(Q(order__order__customer__id=_id) | Q(order__order__supplier__id=_id)) item_id = request.GET.get('item_id', None) if item_id == 'None': item_id = None item_type = request.GET.get('item_type', None) if item_type == 'None': item_type = None terms = request.GET.get('terms', None) if item_id and item_type: transfers = transfers.filter(order__info_id=item_id, order__info_type=item_type) elif terms: terms = terms.strip() results = SearchQuerySet().auto_query(terms) results = results.models(Product) item_ids = results.values_list('pk', flat=True) transfers = transfers.filter(order__info_id__in=item_ids) transfers = transfers.distinct().order_by('-transfer__date') return paginate(request, transfers, 'addressbook/contact_transaction_search_results.html')
def receivables_per_customer(request): primary = request.user.account.company age = request.GET.get('age', '120') age_map = { '120': TradeAccount.RECEIVABLES_120, '90': TradeAccount.RECEIVABLES_090, '60': TradeAccount.RECEIVABLES_060, '30': TradeAccount.RECEIVABLES_030 } account_ids = TradeAccount.objects.filter(supplier=primary).values_list( 'id', flat=True) data = AccountData.objects.filter( label=age_map.get(age, TradeAccount.RECEIVABLES_120), date=datetime.min, account_type=TradeAccount.content_type(), account_id__in=account_ids).order_by('-value') return paginate(request, data, 'task/accounting/receivables_customer.html', max_limit=50)
def urgent(request): primary = request.user.account.company # get all sale and purchase items with non-zero balance order_items = OrderItem.objects.pending().filter( info_type=Product.content_type()) products = {} for i in order_items: pid = i.info.id if pid not in products: products[pid] = i.info products[pid].stock = 0 products[pid].incoming = 0 products[pid].outgoing = 0 products[pid].required = 0 if i.order.supplier == primary: products[pid].outgoing = products[pid].outgoing + i.balance elif i.order.customer == primary: products[pid].incoming = products[pid].incoming + i.balance accounts = ItemAccount.objects.filter(owner=primary, item_type=Product.content_type(), item_id__in=products.keys()) for account in accounts: products[account.item_id].stock = account.stock # stocks = Stock.objects.filter(product__id__in=products.keys()) # for s in stocks: # pid = s.product.id # products[pid].stock = products[pid].stock + s.quantity urgent = [] for pid, p in products.items(): p.required = p.outgoing - p.stock - p.incoming if p.required > 0: urgent.append(p) return paginate(request, urgent, 'task/purchasing/urgent_results.html')
def incoming(request): primary = request.user.account.company items = OrderItem.objects.filter(order__customer=primary, balance__gt=0, order__labels__name=Order.OPEN) return paginate(request, items, 'task/purchasing/incoming_result.html')
def payments(request): results = accounting.views.payment.search(request) results = sort_by_date(request, results) return paginate(request, results, 'addressbook/contact_payments.html')
def transfers(request): results = trade.views.ordertransfer.search(request) results = sort_by_date(request, results) return paginate(request, results, 'addressbook/contact_orders.html')
def bills(request): results = accounting.views.bill.search(request) results = sort_by_date(request, results) return paginate(request, results, 'addressbook/contact_bills.html')
def ordertransfers(request): results = trade.views.ordertransferitem.search(request) return paginate(request, results, 'catalog/product_ordertransfers.html')
def transactions(request): results = inventory.views.stocktransaction.search(request) results = sort_by_date(request, results) return paginate(request, results, 'catalog/product_transactions.html')
def stocktransfers(request): results = inventory.views.stocktransferitem.search(request) return paginate(request, results, 'catalog/product_stocktransfers.html')
def adjustments(request): results = adjustment.search(request) results = sort_by_date(request, results) return paginate(request, results, 'inventory/location_adjustment_result.html')
def stocks(request): results = stock.search(request) return paginate(request, results, 'inventory/location_stock_result.html')
def transfers(request): results = stocktransfer.search(request) results = sort_by_date(request, results) return paginate(request, results, 'inventory/location_transfer_result.html')
def pending(request): results = trade.views.order.search(request) results = sort_by_date(request, results) return paginate(request, results, 'task/sales/order_results.html')
def negative(request): company = request.user.account.company stocks = Stock.objects.filter(location__in=company.locations.all(), quantity__lt=0) return paginate(request, stocks, 'task/inventory/negative_results.html', max_limit=5)
def for_physical(request): company = request.user.account.company six_months_ago = datetime.now() - timedelta(days=180) stocks = Stock.objects.filter(location__in=company.locations.all()).filter(Q(last_physical=None) | Q(last_physical__date__lte=six_months_ago)) return paginate(request, stocks, 'task/inventory/for_physical_results.html', max_limit=5)
def costing_items(request): primary = request.user.account.company items = ItemAccount.objects.filter(cost=0, owner=primary) return paginate(request, items, 'task/management/costing_items.html')
def stocks(request): return paginate(request, inventory.views.stock.search(request), 'catalog/product_stocks.html')