Merge pull request #22205 from deepeshgarg007/fiscal_year_travis

fix: Travis(develop)
This commit is contained in:
rohitwaghchaure 2020-06-15 16:12:10 +05:30 committed by GitHub
commit d8683d381b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 107 additions and 131 deletions

View File

@ -5,7 +5,22 @@ import frappe
import json import json
from frappe.utils import nowdate, add_months, get_date_str from frappe.utils import nowdate, add_months, get_date_str
from frappe import _ from frappe import _
from erpnext.accounts.utils import get_fiscal_year, get_account_name from erpnext.accounts.utils import get_fiscal_year, get_account_name, FiscalYearError
def _get_fiscal_year(date=None):
try:
fiscal_year = get_fiscal_year(date=nowdate(), as_dict=True)
return fiscal_year
except FiscalYearError:
#if no fiscal year for current date then get default fiscal year
try:
fiscal_year = get_fiscal_year(as_dict=True)
return fiscal_year
except FiscalYearError:
#if still no fiscal year found then no accounting data created, return
return None
def get_company_for_dashboards(): def get_company_for_dashboards():
company = frappe.defaults.get_defaults().company company = frappe.defaults.get_defaults().company
@ -18,10 +33,16 @@ def get_company_for_dashboards():
return None return None
def get_data(): def get_data():
fiscal_year = _get_fiscal_year(nowdate())
if not fiscal_year:
return frappe._dict()
return frappe._dict({ return frappe._dict({
"dashboards": get_dashboards(), "dashboards": get_dashboards(),
"charts": get_charts(), "charts": get_charts(fiscal_year),
"number_cards": get_number_cards() "number_cards": get_number_cards(fiscal_year)
}) })
def get_dashboards(): def get_dashboards():
@ -46,10 +67,9 @@ def get_dashboards():
] ]
}] }]
def get_charts(): def get_charts(fiscal_year):
company = frappe.get_doc("Company", get_company_for_dashboards()) company = frappe.get_doc("Company", get_company_for_dashboards())
bank_account = company.default_bank_account or get_account_name("Bank", company=company.name) bank_account = company.default_bank_account or get_account_name("Bank", company=company.name)
fiscal_year = get_fiscal_year(date=nowdate())
default_cost_center = company.cost_center default_cost_center = company.cost_center
return [ return [
@ -61,8 +81,8 @@ def get_charts():
"filters_json": json.dumps({ "filters_json": json.dumps({
"company": company.name, "company": company.name,
"filter_based_on": "Fiscal Year", "filter_based_on": "Fiscal Year",
"from_fiscal_year": fiscal_year[0], "from_fiscal_year": fiscal_year.get('name'),
"to_fiscal_year": fiscal_year[0], "to_fiscal_year": fiscal_year.get('name'),
"periodicity": "Monthly", "periodicity": "Monthly",
"include_default_book_entries": 1 "include_default_book_entries": 1
}), }),
@ -158,8 +178,8 @@ def get_charts():
"report_name": "Budget Variance Report", "report_name": "Budget Variance Report",
"filters_json": json.dumps({ "filters_json": json.dumps({
"company": company.name, "company": company.name,
"from_fiscal_year": fiscal_year[0], "from_fiscal_year": fiscal_year.get('name'),
"to_fiscal_year": fiscal_year[0], "to_fiscal_year": fiscal_year.get('name'),
"period": "Monthly", "period": "Monthly",
"budget_against": "Cost Center" "budget_against": "Cost Center"
}), }),
@ -190,10 +210,10 @@ def get_charts():
}, },
] ]
def get_number_cards(): def get_number_cards(fiscal_year):
fiscal_year = get_fiscal_year(date=nowdate())
year_start_date = get_date_str(fiscal_year[1]) year_start_date = get_date_str(fiscal_year.get("year_start_date"))
year_end_date = get_date_str(fiscal_year[2]) year_end_date = get_date_str(fiscal_year.get("year_end_date"))
return [ return [
{ {
"doctype": "Number Card", "doctype": "Number Card",

View File

@ -72,6 +72,10 @@ def make_dimension_in_accounting_doctypes(doc):
if doctype == "Budget": if doctype == "Budget":
add_dimension_to_budget_doctype(df, doc) add_dimension_to_budget_doctype(df, doc)
else: else:
meta = frappe.get_meta(doctype, cached=False)
fieldnames = [d.fieldname for d in meta.get("fields")]
if df['fieldname'] not in fieldnames:
create_custom_field(doctype, df) create_custom_field(doctype, df)
count += 1 count += 1

View File

@ -1745,53 +1745,6 @@ class TestSalesInvoice(unittest.TestCase):
check_gl_entries(self, si.name, expected_gle, "2019-01-30") check_gl_entries(self, si.name, expected_gle, "2019-01-30")
def test_deferred_error_email(self):
deferred_account = create_account(account_name="Deferred Revenue",
parent_account="Current Liabilities - _TC", company="_Test Company")
item = create_item("_Test Item for Deferred Accounting")
item.enable_deferred_revenue = 1
item.deferred_revenue_account = deferred_account
item.no_of_months = 12
item.save()
si = create_sales_invoice(item=item.name, posting_date="2019-01-10", do_not_submit=True)
si.items[0].enable_deferred_revenue = 1
si.items[0].service_start_date = "2019-01-10"
si.items[0].service_end_date = "2019-03-15"
si.items[0].deferred_revenue_account = deferred_account
si.save()
si.submit()
from erpnext.accounts.deferred_revenue import convert_deferred_revenue_to_income
acc_settings = frappe.get_doc('Accounts Settings', 'Accounts Settings')
acc_settings.acc_frozen_upto = '2019-01-31'
acc_settings.save()
pda = frappe.get_doc(dict(
doctype='Process Deferred Accounting',
posting_date=nowdate(),
start_date="2019-01-01",
end_date="2019-03-31",
type="Income",
company="_Test Company"
))
pda.insert()
pda.submit()
email = frappe.db.sql(""" select name from `tabEmail Queue`
where message like %(txt)s """, {
'txt': "%%%s%%" % "Error while processing deferred accounting for {0}".format(pda.name)
})
self.assertTrue(email)
acc_settings.load_from_db()
acc_settings.acc_frozen_upto = None
acc_settings.save()
def test_inter_company_transaction(self): def test_inter_company_transaction(self):
if not frappe.db.exists("Customer", "_Test Internal Customer"): if not frappe.db.exists("Customer", "_Test Internal Customer"):

View File

@ -5,14 +5,23 @@ import frappe
import json import json
from frappe.utils import nowdate, add_months, get_date_str from frappe.utils import nowdate, add_months, get_date_str
from frappe import _ from frappe import _
from erpnext.accounts.utils import get_fiscal_year from erpnext.accounts.dashboard_fixtures import _get_fiscal_year
from erpnext.buying.dashboard_fixtures import get_company_for_dashboards
def get_data(): def get_data():
fiscal_year = _get_fiscal_year(nowdate())
if not fiscal_year:
return frappe._dict()
year_start_date = get_date_str(fiscal_year.get('year_start_date'))
year_end_date = get_date_str(fiscal_year.get('year_end_date'))
return frappe._dict({ return frappe._dict({
"dashboards": get_dashboards(), "dashboards": get_dashboards(),
"charts": get_charts(), "charts": get_charts(fiscal_year, year_start_date, year_end_date),
"number_cards": get_number_cards(), "number_cards": get_number_cards(fiscal_year, year_start_date, year_end_date),
}) })
def get_dashboards(): def get_dashboards():
@ -31,12 +40,7 @@ def get_dashboards():
] ]
}] }]
fiscal_year = get_fiscal_year(date=nowdate()) def get_charts(fiscal_year, year_start_date, year_end_date):
year_start_date = get_date_str(fiscal_year[1])
year_end_date = get_date_str(fiscal_year[2])
def get_charts():
company = get_company_for_dashboards() company = get_company_for_dashboards()
return [ return [
{ {
@ -55,8 +59,8 @@ def get_charts():
"company": company, "company": company,
"status": "In Location", "status": "In Location",
"filter_based_on": "Fiscal Year", "filter_based_on": "Fiscal Year",
"from_fiscal_year": fiscal_year[0], "from_fiscal_year": fiscal_year.get('name'),
"to_fiscal_year": fiscal_year[0], "to_fiscal_year": fiscal_year.get('name'),
"period_start_date": year_start_date, "period_start_date": year_start_date,
"period_end_date": year_end_date, "period_end_date": year_end_date,
"date_based_on": "Purchase Date", "date_based_on": "Purchase Date",
@ -134,7 +138,7 @@ def get_charts():
} }
] ]
def get_number_cards(): def get_number_cards(fiscal_year, year_start_date, year_end_date):
return [ return [
{ {
"name": "Total Assets", "name": "Total Assets",
@ -173,13 +177,3 @@ def get_number_cards():
"doctype": "Number Card" "doctype": "Number Card"
} }
] ]
def get_company_for_dashboards():
company = frappe.defaults.get_defaults().company
if company:
return company
else:
company_list = frappe.get_list("Company")
if company_list:
return company_list[0].name
return None

View File

@ -41,7 +41,7 @@ def assign_tasks(asset_maintenance_name, assign_to_member, maintenance_task, nex
team_member = frappe.db.get_value('User', assign_to_member, "email") team_member = frappe.db.get_value('User', assign_to_member, "email")
args = { args = {
'doctype' : 'Asset Maintenance', 'doctype' : 'Asset Maintenance',
'assign_to' : team_member, 'assign_to' : [team_member],
'name' : asset_maintenance_name, 'name' : asset_maintenance_name,
'description' : maintenance_task, 'description' : maintenance_task,
'date' : next_due_date 'date' : next_due_date

View File

@ -5,13 +5,24 @@ import frappe
import json import json
from frappe import _ from frappe import _
from frappe.utils import nowdate from frappe.utils import nowdate
from erpnext.accounts.utils import get_fiscal_year from erpnext.accounts.dashboard_fixtures import _get_fiscal_year
def get_data(): def get_data():
fiscal_year = _get_fiscal_year(nowdate())
if not fiscal_year:
return frappe._dict()
company = frappe.get_doc("Company", get_company_for_dashboards())
fiscal_year_name = fiscal_year.get("name")
start_date = str(fiscal_year.get("year_start_date"))
end_date = str(fiscal_year.get("year_end_date"))
return frappe._dict({ return frappe._dict({
"dashboards": get_dashboards(), "dashboards": get_dashboards(),
"charts": get_charts(), "charts": get_charts(company, fiscal_year_name, start_date, end_date),
"number_cards": get_number_cards(), "number_cards": get_number_cards(company, fiscal_year_name, start_date, end_date),
}) })
def get_company_for_dashboards(): def get_company_for_dashboards():
@ -24,12 +35,6 @@ def get_company_for_dashboards():
return company_list[0].name return company_list[0].name
return None return None
company = frappe.get_doc("Company", get_company_for_dashboards())
fiscal_year = get_fiscal_year(nowdate(), as_dict=1)
fiscal_year_name = fiscal_year.get("name")
start_date = str(fiscal_year.get("year_start_date"))
end_date = str(fiscal_year.get("year_end_date"))
def get_dashboards(): def get_dashboards():
return [{ return [{
"name": "Buying", "name": "Buying",
@ -48,7 +53,7 @@ def get_dashboards():
] ]
}] }]
def get_charts(): def get_charts(company, fiscal_year_name, start_date, end_date):
return [ return [
{ {
"name": "Purchase Order Analysis", "name": "Purchase Order Analysis",
@ -139,7 +144,7 @@ def get_charts():
} }
] ]
def get_number_cards(): def get_number_cards(company, fiscal_year_name, start_date, end_date):
return [ return [
{ {
"name": "Annual Purchase", "name": "Annual Purchase",

View File

@ -15,7 +15,7 @@ class TestProcurementTracker(unittest.TestCase):
def test_result_for_procurement_tracker(self): def test_result_for_procurement_tracker(self):
filters = { filters = {
'company': '_Test Procurement Company', 'company': '_Test Procurement Company',
'cost_center': '_Test Cost Center - _TC' 'cost_center': 'Main - _TPC'
} }
expected_data = self.generate_expected_data() expected_data = self.generate_expected_data()
report = execute(filters) report = execute(filters)
@ -33,24 +33,27 @@ class TestProcurementTracker(unittest.TestCase):
country="Pakistan" country="Pakistan"
)).insert() )).insert()
warehouse = create_warehouse("_Test Procurement Warehouse", company="_Test Procurement Company") warehouse = create_warehouse("_Test Procurement Warehouse", company="_Test Procurement Company")
mr = make_material_request(company="_Test Procurement Company", warehouse=warehouse) mr = make_material_request(company="_Test Procurement Company", warehouse=warehouse, cost_center="Main - _TPC")
po = make_purchase_order(mr.name) po = make_purchase_order(mr.name)
po.supplier = "_Test Supplier" po.supplier = "_Test Supplier"
po.get("items")[0].cost_center = "_Test Cost Center - _TC" po.get("items")[0].cost_center = "Main - _TPC"
po.submit() po.submit()
pr = make_purchase_receipt(po.name) pr = make_purchase_receipt(po.name)
pr.get("items")[0].cost_center = "Main - _TPC"
pr.submit() pr.submit()
frappe.db.commit() frappe.db.commit()
date_obj = datetime.date(datetime.now()) date_obj = datetime.date(datetime.now())
po.load_from_db()
expected_data = { expected_data = {
"material_request_date": date_obj, "material_request_date": date_obj,
"cost_center": "_Test Cost Center - _TC", "cost_center": "Main - _TPC",
"project": None, "project": None,
"requesting_site": "_Test Procurement Warehouse - _TPC", "requesting_site": "_Test Procurement Warehouse - _TPC",
"requestor": "Administrator", "requestor": "Administrator",
"material_request_no": mr.name, "material_request_no": mr.name,
"description": '_Test Item 1', "item_code": '_Test Item',
"quantity": 10.0, "quantity": 10.0,
"unit_of_measurement": "_Test UOM", "unit_of_measurement": "_Test UOM",
"status": "To Bill", "status": "To Bill",
@ -58,9 +61,9 @@ class TestProcurementTracker(unittest.TestCase):
"purchase_order": po.name, "purchase_order": po.name,
"supplier": "_Test Supplier", "supplier": "_Test Supplier",
"estimated_cost": 0.0, "estimated_cost": 0.0,
"actual_cost": None, "actual_cost": 0.0,
"purchase_order_amt": 5000.0, "purchase_order_amt": po.net_total,
"purchase_order_amt_in_company_currency": 300000.0, "purchase_order_amt_in_company_currency": po.base_net_total,
"expected_delivery_date": date_obj, "expected_delivery_date": date_obj,
"actual_delivery_date": date_obj "actual_delivery_date": date_obj
} }

View File

@ -15,6 +15,7 @@ class TestInpatientRecord(unittest.TestCase):
patient = create_patient() patient = create_patient()
# Schedule Admission # Schedule Admission
ip_record = create_inpatient(patient) ip_record = create_inpatient(patient)
ip_record.expected_length_of_stay = 0
ip_record.save(ignore_permissions = True) ip_record.save(ignore_permissions = True)
self.assertEqual(ip_record.name, frappe.db.get_value("Patient", patient, "inpatient_record")) self.assertEqual(ip_record.name, frappe.db.get_value("Patient", patient, "inpatient_record"))
self.assertEqual(ip_record.status, frappe.db.get_value("Patient", patient, "inpatient_status")) self.assertEqual(ip_record.status, frappe.db.get_value("Patient", patient, "inpatient_status"))
@ -26,7 +27,7 @@ class TestInpatientRecord(unittest.TestCase):
self.assertEqual("Occupied", frappe.db.get_value("Healthcare Service Unit", service_unit, "occupancy_status")) self.assertEqual("Occupied", frappe.db.get_value("Healthcare Service Unit", service_unit, "occupancy_status"))
# Discharge # Discharge
schedule_discharge(patient=patient) schedule_discharge(frappe.as_json({'patient': patient}))
self.assertEqual("Vacant", frappe.db.get_value("Healthcare Service Unit", service_unit, "occupancy_status")) self.assertEqual("Vacant", frappe.db.get_value("Healthcare Service Unit", service_unit, "occupancy_status"))
ip_record1 = frappe.get_doc("Inpatient Record", ip_record.name) ip_record1 = frappe.get_doc("Inpatient Record", ip_record.name)
@ -44,8 +45,10 @@ class TestInpatientRecord(unittest.TestCase):
patient = create_patient() patient = create_patient()
ip_record = create_inpatient(patient) ip_record = create_inpatient(patient)
ip_record.expected_length_of_stay = 0
ip_record.save(ignore_permissions = True) ip_record.save(ignore_permissions = True)
ip_record_new = create_inpatient(patient) ip_record_new = create_inpatient(patient)
ip_record_new.expected_length_of_stay = 0
self.assertRaises(frappe.ValidationError, ip_record_new.save) self.assertRaises(frappe.ValidationError, ip_record_new.save)
service_unit = get_healthcare_service_unit() service_unit = get_healthcare_service_unit()

View File

@ -4,7 +4,6 @@
import frappe, erpnext, json import frappe, erpnext, json
from frappe import _ from frappe import _
from frappe.utils import nowdate, get_first_day, get_last_day, add_months from frappe.utils import nowdate, get_first_day, get_last_day, add_months
from erpnext.accounts.utils import get_fiscal_year
def get_data(): def get_data():
return frappe._dict({ return frappe._dict({

View File

@ -64,7 +64,7 @@ class TestTask(unittest.TestCase):
def assign(): def assign():
from frappe.desk.form import assign_to from frappe.desk.form import assign_to
assign_to.add({ assign_to.add({
"assign_to": "test@example.com", "assign_to": ["test@example.com"],
"doctype": task.doctype, "doctype": task.doctype,
"name": task.name, "name": task.name,
"description": "Close this task" "description": "Close this task"

View File

@ -9,14 +9,14 @@ def setup(company=None, patch=True):
make_custom_fields() make_custom_fields()
add_print_formats() add_print_formats()
def make_custom_fields(): def make_custom_fields(update=True):
custom_fields = { custom_fields = {
'Supplier': [ 'Supplier': [
dict(fieldname='irs_1099', fieldtype='Check', insert_after='tax_id', dict(fieldname='irs_1099', fieldtype='Check', insert_after='tax_id',
label='Is IRS 1099 reporting required for supplier?') label='Is IRS 1099 reporting required for supplier?')
] ]
} }
create_custom_fields(custom_fields) create_custom_fields(custom_fields, update=update)
def add_print_formats(): def add_print_formats():
frappe.reload_doc("regional", "print_format", "irs_1099_form") frappe.reload_doc("regional", "print_format", "irs_1099_form")

View File

@ -5,31 +5,26 @@ import frappe
import json import json
from frappe import _ from frappe import _
from frappe.utils import nowdate from frappe.utils import nowdate
from erpnext.accounts.utils import get_fiscal_year from erpnext.accounts.dashboard_fixtures import _get_fiscal_year
from erpnext.buying.dashboard_fixtures import get_company_for_dashboards
def get_data(): def get_data():
fiscal_year = _get_fiscal_year(nowdate())
if not fiscal_year:
return frappe._dict()
company = frappe.get_doc("Company", get_company_for_dashboards())
fiscal_year_name = fiscal_year.get("name")
start_date = str(fiscal_year.get("year_start_date"))
end_date = str(fiscal_year.get("year_end_date"))
return frappe._dict({ return frappe._dict({
"dashboards": get_dashboards(), "dashboards": get_dashboards(),
"charts": get_charts(), "charts": get_charts(company, fiscal_year_name, start_date, end_date),
"number_cards": get_number_cards(), "number_cards": get_number_cards(company, fiscal_year_name, start_date, end_date),
}) })
def get_company_for_dashboards():
company = frappe.defaults.get_defaults().company
if company:
return company
else:
company_list = frappe.get_list("Company")
if company_list:
return company_list[0].name
return None
company = frappe.get_doc("Company", get_company_for_dashboards())
fiscal_year = get_fiscal_year(nowdate(), as_dict=1)
fiscal_year_name = fiscal_year.get("name")
start_date = str(fiscal_year.get("year_start_date"))
end_date = str(fiscal_year.get("year_end_date"))
def get_dashboards(): def get_dashboards():
return [{ return [{
"name": "Stock", "name": "Stock",
@ -48,7 +43,7 @@ def get_dashboards():
] ]
}] }]
def get_charts(): def get_charts(company, fiscal_year_name, start_date, end_date):
return [ return [
{ {
"doctype": "Dashboard Chart", "doctype": "Dashboard Chart",
@ -133,7 +128,7 @@ def get_charts():
} }
] ]
def get_number_cards(): def get_number_cards(company, fiscal_year_name, start_date, end_date):
return [ return [
{ {
"name": "Total Active Items", "name": "Total Active Items",