def _get_filters(filters): branches = split_to_list(filters.branches) join_clauses = compose(" AND ".join, concatv) si_clauses = join_clauses( ["si.docstatus = 1"], ["si.os_branch IN %(branches)s"] if branches else [], ) dn_clauses = join_clauses( [ "dn.docstatus = 1", "dn.posting_date BETWEEN %(from_date)s AND %(to_date)s", "so.workflow_state = 'Collected'", ], ["dn.os_branch IN %(branches)s"] if branches else [], ) values = merge( filters, {"branches": branches} if branches else {}, { "selling_pl": "Standard Selling", "min_selling_pl1": "Minimum Selling", "min_selling_pl2": "Minimum Selling 2", }, ) return ( {"si_clauses": si_clauses, "dn_clauses": dn_clauses}, values, )
def _get_filters(filters): branches = split_to_list(filters.branches) join_clauses = compose(lambda x: " AND ".join(x), concatv) clauses = join_clauses( ["TRUE"], ["branch.name IN %(branches)s"] if branches else [], ["i.brand = %(brand)s"] if filters.brand else [], ["i.item_code = %(item_code)s"] if filters.item_code else [], ["i.item_group = %(item_group)s"] if filters.item_group else [], ["INSTR(i.item_name, %(item_name)s) > 0"] if filters.item_name else [], ) si_clauses = join_clauses( ["si.docstatus = 1", "si.posting_date BETWEEN %(from_date)s AND %(to_date)s"], ["si.os_branch IN %(branches)s"] if branches else [], ) values = merge(filters, {"branches": branches} if branches else {}) return ( { "clauses": clauses, "group_by": "bin.item_code, branch.name" if branches else "bin.item_code", "si_clauses": si_clauses, "si_group_by": "sii.item_code, si.os_branch" if branches else "sii.item_code", }, values, )
def _get_filters(filters): branches = split_to_list(filters.branches) clauses = concatv( ["si.docstatus = 1"], ["si.os_branch IN %(branches)s"] if branches else [], [ "(si.update_stock = 1 OR sii.delivered_qty = sii.qty)", """ ( ( si.update_stock = 1 AND si.posting_date BETWEEN %(from_date)s AND %(to_date)s ) OR ( si.update_stock = 0 AND dn.posting_date BETWEEN %(from_date)s AND %(to_date)s ) ) """, ] if filters.report_type == "Collected" else [], [ "(si.update_stock = 0 OR sii.delivered_qty < sii.qty)", "si.posting_date BETWEEN %(from_date)s AND %(to_date)s", ] if filters.report_type == "Achieved" else [], ) values = merge( filters, {"branches": branches} if branches else {}, { "selling_pl": "Standard Selling", "min_selling_pl1": "Minimum Selling", "min_selling_pl2": "Minimum Selling 2", }, ) return " AND ".join(clauses), values
def _get_filters(filters): item_groups = split_to_list(filters.item_groups) brands = split_to_list(filters.brands) item_codes = split_to_list(filters.item_codes) clauses = concatv( ["i.disabled = 0"], ["i.item_group IN %(item_groups)s"] if item_groups else [], ["i.brand IN %(brands)s"] if brands else [], ["i.item_code IN %(item_codes)s"] if item_codes else [], ["INSTR(i.item_name, %(item_name)s) > 0"] if filters.item_name else [], ) values = merge( pick(["item_name"], filters), {"item_groups": item_groups} if item_groups else {}, {"brands": brands} if brands else {}, {"item_codes": item_codes} if item_codes else {}, ) return " AND ".join(clauses), values
def _get_filters(filters): branches = split_to_list(filters.branch) clauses = concatv( ["s.docstatus = 1", "s.posting_date = %(posting_date)s"], ["s.os_branch IN %(branches)s"] if branches else [], ) values = merge(pick(["posting_date"], filters), {"branches": branches} if branches else {}) return " AND ".join(clauses), values
def get_branches(): if any(role in ["Accounts Manager"] for role in frappe.get_roles()): return split_to_list(filters.branches) user_branch = get_user_branch() if (any(role in ["Branch User", "Branch Stock"] for role in frappe.get_roles()) and user_branch): return [user_branch] frappe.throw( _("Manager privilege or Branch User / Branch Stock role required"))
def _get_filters(filters): modes_of_payment = split_to_list(filters.modes_of_payment) branches = split_to_list(filters.branches) si_clauses = concatv( [ "si.docstatus = 1", "si.posting_date BETWEEN %(start_date)s AND %(end_date)s" ], ["si.is_return = 0"] if cint(filters.hide_returns) else [], ["si.os_branch IN %(branches)s"] if branches else [], ["sip.mode_of_payment IN %(modes_of_payment)s"] if modes_of_payment else [], ) pe_clauses = concatv( [ "pe.docstatus = 1", "pe.party_type = 'Customer'", "pe.posting_date BETWEEN %(start_date)s AND %(end_date)s", ], ["pe.payment_type = 'Receive'"] if cint(filters.hide_returns) else [], ["pe.os_branch IN %(branches)s"] if branches else [], ["pe.mode_of_payment IN %(modes_of_payment)s"] if modes_of_payment else [], ) values = merge( pick(["start_date", "end_date"], filters), {"branches": branches} if branches else {}, {"modes_of_payment": modes_of_payment} if modes_of_payment else {}, ) return ( { "si_clauses": " AND ".join(si_clauses), "pe_clauses": " AND ".join(pe_clauses), }, values, )
def _get_filters(filters): branches = split_to_list(filters.branches) branch_clause = concatv(["disabled = 0"], ["branch IN %(branches)s"] if branches else []) customer_clause = concatv( ["os_loyalty_activation_date BETWEEN %(from_date)s AND %(to_date)s"], ["branch IN %(branches)s"] if branches else [], ) values = merge( { "from_date": filters.date_range[0], "to_date": filters.date_range[1] }, {"branches": branches} if branches else {}, ) return ( { "branch_clause": " AND ".join(branch_clause), "customer_clause": " AND ".join(customer_clause), }, values, )