@@ -71,7 +71,10 @@ def get_columns(self, party_naming_by, args):
71
71
"width" : 100
72
72
})
73
73
if args .get ("party_type" ) == "Customer" :
74
- columns += [_ ("Territory" ) + ":Link/Territory:80" ]
74
+ columns += [
75
+ _ ("Territory" ) + ":Link/Territory:80" ,
76
+ _ ("Customer Group" ) + ":Link/Customer Group:120"
77
+ ]
75
78
if args .get ("party_type" ) == "Supplier" :
76
79
columns += [_ ("Supplier Type" ) + ":Link/Supplier Type:80" ]
77
80
@@ -139,7 +142,7 @@ def get_data(self, party_naming_by, args):
139
142
140
143
# customer territory / supplier type
141
144
if args .get ("party_type" ) == "Customer" :
142
- row += [self .get_territory (gle .party )]
145
+ row += [self .get_territory (gle .party ), self . get_customer_group ( gle . party ) ]
143
146
if args .get ("party_type" ) == "Supplier" :
144
147
row += [self .get_supplier_type (gle .party )]
145
148
@@ -186,19 +189,22 @@ def get_party_name(self, party_type, party_name):
186
189
187
190
def get_territory (self , party_name ):
188
191
return self .get_party_map ("Customer" ).get (party_name , {}).get ("territory" ) or ""
192
+
193
+ def get_customer_group (self , party_name ):
194
+ return self .get_party_map ("Customer" ).get (party_name , {}).get ("customer_group" ) or ""
189
195
190
196
def get_supplier_type (self , party_name ):
191
197
return self .get_party_map ("Supplier" ).get (party_name , {}).get ("supplier_type" ) or ""
192
198
193
199
def get_party_map (self , party_type ):
194
200
if not hasattr (self , "party_map" ):
195
201
if party_type == "Customer" :
196
- self .party_map = dict (((r .name , r ) for r in frappe .db .sql ("""select {0}, {1}, {2} from `tab{3}`"""
197
- .format ("name" , "customer_name" , "territory" , party_type ), as_dict = True )))
198
-
202
+ select_fields = "name, customer_name, territory, customer_group"
199
203
elif party_type == "Supplier" :
200
- self .party_map = dict (((r .name , r ) for r in frappe .db .sql ("""select {0}, {1}, {2} from `tab{3}`"""
201
- .format ("name" , "supplier_name" , "supplier_type" , party_type ), as_dict = True )))
204
+ select_fields = "name, supplier_name, supplier_type"
205
+
206
+ self .party_map = dict (((r .name , r ) for r in frappe .db .sql ("select {0} from `tab{1}`"
207
+ .format (select_fields , party_type ), as_dict = True )))
202
208
203
209
return self .party_map
204
210
@@ -251,6 +257,19 @@ def prepare_conditions(self, party_type):
251
257
conditions .append ("party=%s" )
252
258
values .append (self .filters .get (party_type_field ))
253
259
260
+ if party_type_field == "customer" :
261
+ if self .filters .get ("customer_group" ):
262
+ lft , rgt = frappe .db .get_value ("Customer Group" ,
263
+ self .filters .get ("customer_group" ), ["lft" , "rgt" ])
264
+
265
+ conditions .append ("""party in (select name from tabCustomer
266
+ where exists(select name from `tabCustomer Group` where lft >= {0} and rgt <= {1}
267
+ and name=tabCustomer.customer_group))""" .format (lft , rgt ))
268
+
269
+ if self .filters .get ("credit_days_based_on" ):
270
+ conditions .append ("party in (select name from tabCustomer where credit_days_based_on=%s)" )
271
+ values .append (self .filters .get ("credit_days_based_on" ))
272
+
254
273
return " and " .join (conditions ), values
255
274
256
275
def get_gl_entries_for (self , party , party_type , against_voucher_type , against_voucher ):
0 commit comments