def get_data(self, customer_naming_by): from accounts.utils import get_currency_precision currency_precision = get_currency_precision() or 2 data = [] future_vouchers = self.get_entries_after(self.filters.report_date) for gle in self.get_entries_till(self.filters.report_date): if self.is_receivable(gle, future_vouchers): outstanding_amount = self.get_outstanding_amount( gle, self.filters.report_date) if abs(outstanding_amount) > 0.1 / 10**currency_precision: due_date = self.get_due_date(gle) invoiced_amount = gle.debit if (gle.debit > 0) else 0 payment_received = invoiced_amount - outstanding_amount row = [ gle.posting_date, gle.account, gle.voucher_type, gle.voucher_no, due_date, invoiced_amount, payment_received, outstanding_amount ] entry_date = due_date if self.filters.ageing_based_on == "Due Date" \ else gle.posting_date row += get_ageing_data(self.age_as_on, entry_date, outstanding_amount) + \ [self.get_customer(gle.account)] if customer_naming_by == "Naming Series": row += [self.get_customer_name(gle.account)] row += [self.get_territory(gle.account), gle.remarks] data.append(row) for i in range(0, len(data)): data[i].insert(4, """<a href="%s"><i class="icon icon-share" style="cursor: pointer;"></i></a>""" \ % ("/".join(["#Form", data[i][2], data[i][3]]),)) return data
def execute(filters=None): if not filters: filters = {} columns = get_columns(filters) item_map = get_item_details() pl = get_price_list() last_purchase_rate = get_last_purchase_rate() bom_rate = get_item_bom_rate() val_rate_map = get_valuation_rate() from accounts.utils import get_currency_precision precision = get_currency_precision() or 2 data = [] for item in sorted(item_map): data.append([ item, item_map[item]["item_name"], item_map[item]["description"], item_map[item]["stock_uom"], flt(last_purchase_rate.get(item, 0), precision), flt(val_rate_map.get(item, 0), precision), pl.get(item, {}).get("Selling"), pl.get(item, {}).get("Buying"), flt(bom_rate.get(item, 0), precision), flt(item_map[item]["standard_rate"], precision) ]) return columns, data
def execute(filters=None): if not filters: filters = {} columns = get_columns(filters) item_map = get_item_details() pl = get_price_list() last_purchase_rate = get_last_purchase_rate() bom_rate = get_item_bom_rate() val_rate_map = get_valuation_rate() from accounts.utils import get_currency_precision precision = get_currency_precision() or 2 data = [] for item in sorted(item_map): data.append([item, item_map[item]["item_name"], item_map[item]["description"], item_map[item]["stock_uom"], flt(last_purchase_rate.get(item, 0), precision), flt(val_rate_map.get(item, 0), precision), pl.get(item, {}).get("Selling"), pl.get(item, {}).get("Buying"), flt(bom_rate.get(item, 0), precision), flt(item_map[item]["standard_rate"], precision) ]) return columns, data
def get_data(self, customer_naming_by): from accounts.utils import get_currency_precision currency_precision = get_currency_precision() or 2 data = [] future_vouchers = self.get_entries_after(self.filters.report_date) for gle in self.get_entries_till(self.filters.report_date): if self.is_receivable(gle, future_vouchers): outstanding_amount = self.get_outstanding_amount(gle, self.filters.report_date) if abs(outstanding_amount) > 0.1/10**currency_precision: due_date = self.get_due_date(gle) invoiced_amount = gle.debit if (gle.debit > 0) else 0 payment_received = invoiced_amount - outstanding_amount row = [gle.posting_date, gle.account, gle.voucher_type, gle.voucher_no, due_date, invoiced_amount, payment_received, outstanding_amount] entry_date = due_date if self.filters.ageing_based_on == "Due Date" \ else gle.posting_date row += get_ageing_data(self.age_as_on, entry_date, outstanding_amount) + \ [self.get_customer(gle.account)] if customer_naming_by == "Naming Series": row += [self.get_customer_name(gle.account)] row += [self.get_territory(gle.account), gle.remarks] data.append(row) for i in range(0, len(data)): data[i].insert(4, """<a href="%s"><i class="icon icon-share" style="cursor: pointer;"></i></a>""" \ % ("/".join(["#Form", data[i][2], data[i][3]]),)) return data