fix: fixing Item-wise sales register #41373

This commit is contained in:
Poorvi-R-Bhat
2024-05-22 12:39:22 +05:30
parent 76073ae228
commit eafa88b8e9
4 changed files with 61 additions and 43 deletions

View File

@@ -320,7 +320,6 @@ def get_items(filters, additional_query_columns):
frappe.qb.from_(pi) frappe.qb.from_(pi)
.join(pii) .join(pii)
.on(pi.name == pii.parent) .on(pi.name == pii.parent)
# added left join
.left_join(Item) .left_join(Item)
.on(pii.item_code == Item.name) .on(pii.item_code == Item.name)
.select( .select(

View File

@@ -402,46 +402,65 @@ def get_group_by_conditions(filters, doctype):
return "ORDER BY `tab{}`.{}".format(doctype, frappe.scrub(filters.get("group_by"))) return "ORDER BY `tab{}`.{}".format(doctype, frappe.scrub(filters.get("group_by")))
def get_items(filters, additional_query_columns,additional_conditions=None): def get_items(filters, additional_query_columns, additional_conditions=None):
si = frappe.qb.DocType('Sales Invoice') si = frappe.qb.DocType("Sales Invoice")
sii = frappe.qb.DocType('Sales Invoice Item') sii = frappe.qb.DocType("Sales Invoice Item")
Item = frappe.qb.DocType('Item') Item = frappe.qb.DocType("Item")
query = ( query = (
frappe.qb.from_(si) frappe.qb.from_(si)
.join(sii).on(si.name == sii.parent) .join(sii)
.left_join(Item).on(sii.item_code == Item.name) .on(si.name == sii.parent)
.select( # added left join
sii.name, sii.parent, .left_join(Item)
si.posting_date, si.debit_to, .on(sii.item_code == Item.name)
si.unrealized_profit_loss_account, .select(
si.is_internal_customer, sii.name,
si.customer, si.remarks, sii.parent,
si.territory, si.company, si.base_net_total, si.posting_date,
sii.project, si.debit_to,
sii.item_code, sii.description, si.unrealized_profit_loss_account,
sii.item_name, sii.item_group, si.is_internal_customer,
sii.item_name.as_('si_item_name'), sii.item_group.as_('si_item_group'), si.customer,
Item.item_name.as_('i_item_name'), Item.item_group.as_('i_item_group'), si.remarks,
sii.sales_order, sii.delivery_note, si.territory,
sii.income_account, sii.cost_center, si.company,
sii.enable_deferred_revenue, sii.deferred_revenue_account, si.base_net_total,
sii.stock_qty, sii.stock_uom, sii.project,
sii.base_net_rate, sii.base_net_amount, sii.item_code,
si.customer_name, si.customer_group, sii.so_detail, sii.description,
si.update_stock, sii.uom, sii.qty sii.item_name,
) sii.item_group,
.where(si.docstatus == 1) sii.item_name.as_("si_item_name"),
) sii.item_group.as_("si_item_group"),
if filters.get("customer"): Item.item_name.as_("i_item_name"),
query = query.where(si.customer == filters['customer']) Item.item_group.as_("i_item_group"),
sii.sales_order,
if filters.get("customer_group"): sii.delivery_note,
query = query.where(si.customer_group == filters['customer_group']) sii.income_account,
sii.cost_center,
return query.run(as_dict=True) sii.enable_deferred_revenue,
sii.deferred_revenue_account,
sii.stock_qty,
sii.stock_uom,
sii.base_net_rate,
sii.base_net_amount,
si.customer_name,
si.customer_group,
sii.so_detail,
si.update_stock,
sii.uom,
sii.qty,
)
.where(si.docstatus == 1)
)
if filters.get("customer"):
query = query.where(si.customer == filters["customer"])
if filters.get("customer_group"):
query = query.where(si.customer_group == filters["customer_group"])
return query.run(as_dict=True)
def get_delivery_notes_against_sales_order(item_list): def get_delivery_notes_against_sales_order(item_list):

View File

@@ -377,7 +377,7 @@ def get_account_columns(invoice_list, include_payments):
def get_invoices(filters, additional_query_columns): def get_invoices(filters, additional_query_columns):
pi = frappe.qb.DocType("Purchase Invoice") pi = frappe.qb.DocType("Purchase Invoice")
query = ( query = (
frappe.qb.from_(pi) frappe.qb.from_(pi) # qb
.select( .select(
ConstantColumn("Purchase Invoice").as_("doctype"), ConstantColumn("Purchase Invoice").as_("doctype"),
pi.name, pi.name,
@@ -395,7 +395,7 @@ def get_invoices(filters, additional_query_columns):
pi.outstanding_amount, pi.outstanding_amount,
pi.mode_of_payment, pi.mode_of_payment,
) )
.where((pi.docstatus == 1)) .where(pi.docstatus == 1)
.orderby(pi.posting_date, pi.name, order=Order.desc) .orderby(pi.posting_date, pi.name, order=Order.desc)
) )

View File

@@ -415,7 +415,7 @@ def get_account_columns(invoice_list, include_payments):
def get_invoices(filters, additional_query_columns): def get_invoices(filters, additional_query_columns):
si = frappe.qb.DocType("Sales Invoice") si = frappe.qb.DocType("Sales Invoice")
query = ( query = (
frappe.qb.from_(si) frappe.qb.from_(si) # qb
.select( .select(
ConstantColumn("Sales Invoice").as_("doctype"), ConstantColumn("Sales Invoice").as_("doctype"),
si.name, si.name,
@@ -437,7 +437,7 @@ def get_invoices(filters, additional_query_columns):
si.represents_company, si.represents_company,
si.company, si.company,
) )
.where((si.docstatus == 1)) .where(si.docstatus == 1)
.orderby(si.posting_date, si.name, order=Order.desc) .orderby(si.posting_date, si.name, order=Order.desc)
) )