deprecate sales and purchase return tool
diff --git a/accounts/__init__.py b/accounts/__init__.py
index 707203f..145ad6b 100644
--- a/accounts/__init__.py
+++ b/accounts/__init__.py
@@ -32,209 +32,3 @@
WHERE name=%s AND docstatus<2""", company)
if res: return res[0][0]
-
-@webnotes.whitelist()
-def get_new_jv_details():
- """
- Get details which will help create new jv on sales/purchase return
- """
- doclist = webnotes.form_dict.get('doclist')
- fiscal_year = webnotes.form_dict.get('fiscal_year')
- if not (isinstance(doclist, basestring) and isinstance(fiscal_year, basestring)): return
-
- import json
- doclist = json.loads(doclist)
- doc, children = doclist[0], doclist[1:]
-
- if doc.get('return_type')=='Sales Return':
- if doc.get('sales_invoice_no'):
- return get_invoice_details(doc, children, fiscal_year)
- elif doc.get('delivery_note_no'):
- return get_delivery_note_details(doc, children, fiscal_year)
-
- elif doc.get('purchase_receipt_no'):
- return get_purchase_receipt_details(doc, children, fiscal_year)
-
-
-def get_invoice_details(doc, children, fiscal_year):
- """
- Gets details from an invoice to make new jv
- Returns [{
- 'account': ,
- 'balance': ,
- 'debit': ,
- 'credit': ,
- 'against_invoice': ,
- 'against_payable':
- }, { ... }, ...]
- """
- if doc.get('return_type')=='Sales Return':
- obj = get_obj('Sales Invoice', doc.get('sales_invoice_no'), with_children=1)
- else:
- obj = get_obj('Purchase Invoice', doc.get('purchase_invoice_no'), with_children=1)
- if not obj.doc.docstatus==1: return
-
- # Build invoice account jv detail record
- invoice_rec = get_invoice_account_jv_record(doc, children, fiscal_year, obj)
-
- # Build item accountwise jv detail records
- item_accountwise_list = get_item_accountwise_jv_record(doc, children, fiscal_year, obj)
-
- return [invoice_rec] + item_accountwise_list
-
-
-def get_invoice_account_jv_record(doc, children, fiscal_year, obj):
- """
- Build customer/supplier account jv detail record
- """
- # Calculate total return amount
- total_amt = sum([(flt(ch.get('rate')) * flt(ch.get('returned_qty'))) for ch in children])
-
- ret = {}
-
- if doc.get('return_type')=='Sales Return':
- account = obj.doc.debit_to
- ret['against_invoice'] = doc.get('sales_invoice_no')
- ret['credit'] = total_amt
- else:
- account = obj.doc.credit_to
- ret['against_voucher'] = doc.get('purchase_invoice_no')
- ret['debit'] = total_amt
-
- ret.update({
- 'account': account,
- 'balance': get_balance_on(account, doc.get("return_date"))
- })
-
- return ret
-
-
-def get_item_accountwise_jv_record(doc, children, fiscal_year, obj):
- """
- Build item accountwise jv detail records
- """
- if doc.get('return_type')=='Sales Return':
- amt_field = 'debit'
- ac_field = 'income_account'
- else:
- amt_field = 'credit'
- ac_field = 'expense_head'
-
- inv_children = dict([[ic.fields.get('item_code'), ic] for ic in obj.doclist if ic.fields.get('item_code')])
-
- accwise_list = []
-
- for ch in children:
- inv_ch = inv_children.get(ch.get('item_code'))
- if not inv_ch: continue
-
- amount = flt(ch.get('rate')) * flt(ch.get('returned_qty'))
-
- accounts = [[jvd['account'], jvd['cost_center']] for jvd in accwise_list]
-
- if [inv_ch.fields.get(ac_field), inv_ch.fields.get('cost_center')] not in accounts:
- rec = {
- 'account': inv_ch.fields.get(ac_field),
- 'cost_center': inv_ch.fields.get('cost_center'),
- 'balance': get_balance_on(inv_ch.fields.get(ac_field),
- doc.get("return_date"))
- }
- rec[amt_field] = amount
- accwise_list.append(rec)
- else:
- rec = accwise_list[accounts.index([inv_ch.fields.get(ac_field), inv_ch.fields.get('cost_center')])]
- rec[amt_field] = rec[amt_field] + amount
-
- return accwise_list
-
-
-def get_jv_details_from_inv_list(doc, children, fiscal_year, inv_list, jv_details_list):
- """
- Get invoice details and make jv detail records
- """
- for inv in inv_list:
- if not inv[0]: continue
-
- if doc.get('return_type')=='Sales Return':
- doc['sales_invoice_no'] = inv[0]
- else:
- doc['purchase_invoice_no'] = inv[0]
-
- jv_details = get_invoice_details(doc, children, fiscal_year)
-
- if jv_details and len(jv_details)>1: jv_details_list.extend(jv_details)
-
- return jv_details_list
-
-
-def get_prev_doc_list(obj, prev_doctype):
- """
- Returns a list of previous doc's names
- """
- prevdoc_list = []
- for ch in obj.doclist:
- if ch.fields.get('prevdoc_docname') and ch.fields.get('prevdoc_doctype')==prev_doctype:
- prevdoc_list.append(ch.fields.get('prevdoc_docname'))
- return prevdoc_list
-
-
-def get_inv_list(table, field, value):
- """
- Returns invoice list
- """
- if isinstance(value, basestring):
- return webnotes.conn.sql("""\
- SELECT DISTINCT parent FROM `%s`
- WHERE %s='%s' AND docstatus=1""" % (table, field, value))
- elif isinstance(value, list):
- return webnotes.conn.sql("""\
- SELECT DISTINCT parent FROM `%s`
- WHERE %s IN ("%s") AND docstatus=1""" % (table, field, '", "'.join(value)))
- else:
- return []
-
-
-def get_delivery_note_details(doc, children, fiscal_year):
- """
- Gets sales invoice numbers from delivery note details
- and returns detail records for jv
- """
- jv_details_list = []
-
- dn_obj = get_obj('Delivery Note', doc['delivery_note_no'], with_children=1)
-
- inv_list = get_inv_list('tabSales Invoice Item', 'delivery_note', doc['delivery_note_no'])
-
- if inv_list:
- jv_details_list = get_jv_details_from_inv_list(doc, children, fiscal_year, inv_list, jv_details_list)
-
- if not (inv_list and jv_details_list):
- so_list = get_prev_doc_list(dn_obj, 'Sales Order')
- inv_list = get_inv_list('tabSales Invoice Item', 'sales_order', so_list)
- if inv_list:
- jv_details_list = get_jv_details_from_inv_list(doc, children, fiscal_year, inv_list, jv_details_list)
-
- return jv_details_list
-
-
-def get_purchase_receipt_details(doc, children, fiscal_year):
- """
- Gets purchase invoice numbers from purchase receipt details
- and returns detail records for jv
- """
- jv_details_list = []
-
- pr_obj = get_obj('Purchase Receipt', doc['purchase_receipt_no'], with_children=1)
-
- inv_list = get_inv_list('tabPurchase Invoice Item', 'purchase_receipt', doc['purchase_receipt_no'])
-
- if inv_list:
- jv_details_list = get_jv_details_from_inv_list(doc, children, fiscal_year, inv_list, jv_details_list)
-
- if not (inv_list and jv_details_list):
- po_list = get_prev_doc_list(pr_obj, 'Purchase Order')
- inv_list = get_inv_list('tabPurchase Invoice Item', 'purchase_order', po_list)
- if inv_list:
- jv_details_list = get_jv_details_from_inv_list(doc, children, fiscal_year, inv_list, jv_details_list)
-
- return jv_details_list