fix: Add order data
This commit is contained in:
parent
000de4eddf
commit
567f4c37fc
@ -79,9 +79,8 @@ demo_master_doctypes = [
|
||||
"supplier",
|
||||
]
|
||||
demo_transaction_doctypes = [
|
||||
"purchase_invoice",
|
||||
"sales_invoice",
|
||||
"payment_entry",
|
||||
"purchase_order",
|
||||
"sales_order",
|
||||
]
|
||||
|
||||
jinja = {
|
||||
|
@ -9,8 +9,10 @@ import frappe
|
||||
from frappe import _
|
||||
from frappe.utils import add_days, getdate
|
||||
|
||||
import erpnext
|
||||
from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry
|
||||
from erpnext.accounts.utils import get_fiscal_year
|
||||
from erpnext.buying.doctype.purchase_order.purchase_order import make_purchase_invoice
|
||||
from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
|
||||
from erpnext.setup.setup_wizard.operations.install_fixtures import create_bank_account
|
||||
|
||||
|
||||
@ -88,8 +90,8 @@ def create_demo_record(doctype):
|
||||
|
||||
|
||||
def make_transactions(company):
|
||||
start_date = get_fiscal_year(date=getdate())[1]
|
||||
frappe.db.set_single_value("Stock Settings", "allow_negative_stock", 1)
|
||||
start_date = get_fiscal_year(date=getdate())[1]
|
||||
|
||||
for doctype in frappe.get_hooks("demo_transaction_doctypes"):
|
||||
data = read_data_file_using_hooks(doctype)
|
||||
@ -97,55 +99,63 @@ def make_transactions(company):
|
||||
for item in json.loads(data):
|
||||
create_transaction(item, company, start_date)
|
||||
|
||||
convert_order_to_invoices()
|
||||
frappe.db.set_single_value("Stock Settings", "allow_negative_stock", 0)
|
||||
|
||||
|
||||
def create_transaction(doctype, company, start_date):
|
||||
document_type = doctype.get("doctype")
|
||||
warehouse = get_warehouse(company)
|
||||
posting_date = (
|
||||
start_date if doctype.get("doctype") == "Purchase Invoice" else get_random_date(start_date)
|
||||
)
|
||||
bank_account, default_receivable_account = frappe.db.get_value(
|
||||
"Company", company, ["default_bank_account", "default_receivable_account"]
|
||||
)
|
||||
bank_field = "paid_to" if doctype.get("party_type") == "Customer" else "paid_from"
|
||||
|
||||
if document_type == "Purchase Order":
|
||||
posting_date = get_random_date(start_date, 1, 30)
|
||||
else:
|
||||
posting_date = get_random_date(start_date, 31, 365)
|
||||
|
||||
doctype.update(
|
||||
{
|
||||
"company": company,
|
||||
"set_posting_time": 1,
|
||||
"posting_date": posting_date,
|
||||
"transaction_date": posting_date,
|
||||
"schedule_date": posting_date,
|
||||
"delivery_date": posting_date,
|
||||
"set_warehouse": warehouse,
|
||||
bank_field: bank_account,
|
||||
"reference_date": posting_date,
|
||||
}
|
||||
)
|
||||
|
||||
income_account, expense_account = frappe.db.get_value(
|
||||
"Company", company, ["default_income_account", "default_expense_account"]
|
||||
)
|
||||
|
||||
if doctype in ("Purchase Invoice", "Sales Invoice"):
|
||||
for item in doctype.get("items") or []:
|
||||
item.update(
|
||||
{
|
||||
"cost_center": erpnext.get_default_cost_center(company),
|
||||
"income_account": income_account,
|
||||
"expense_account": expense_account,
|
||||
}
|
||||
)
|
||||
elif doctype == "Journal Entry":
|
||||
pass
|
||||
# update_accounts(doctype, bank_account, default_receivable_account)
|
||||
|
||||
doc = frappe.get_doc(doctype)
|
||||
doc.save(ignore_permissions=True)
|
||||
doc.submit()
|
||||
|
||||
|
||||
# def update_accounts(doctype, company, bank_account):
|
||||
def convert_order_to_invoices():
|
||||
for document in ["Purchase Order", "Sales Order"]:
|
||||
# Keep some orders intentionally unbilled/unpaid
|
||||
for i, order in enumerate(
|
||||
frappe.db.get_all(
|
||||
document, filters={"docstatus": 1}, fields=["name", "transaction_date"], limit=6
|
||||
)
|
||||
):
|
||||
|
||||
if document == "Purchase Order":
|
||||
invoice = make_purchase_invoice(order.name)
|
||||
elif document == "Sales Order":
|
||||
invoice = make_sales_invoice(order.name)
|
||||
|
||||
invoice.set_posting_time = 1
|
||||
invoice.posting_date = order.transaction_date
|
||||
invoice.due_date = order.transaction_date
|
||||
invoice.update_stock = 1
|
||||
invoice.submit()
|
||||
|
||||
if i % 2 != 0:
|
||||
payment = get_payment_entry(invoice.doctype, invoice.name)
|
||||
payment.reference_no = invoice.name
|
||||
payment.submit()
|
||||
|
||||
|
||||
def get_random_date(start_date):
|
||||
return add_days(start_date, randint(1, 365))
|
||||
def get_random_date(start_date, start_range, end_range):
|
||||
return add_days(start_date, randint(start_range, end_range))
|
||||
|
||||
|
||||
def create_transaction_deletion_record(company):
|
||||
@ -164,9 +174,9 @@ def clear_masters():
|
||||
|
||||
|
||||
def clear_demo_record(document):
|
||||
doc_type = document.get("doctype")
|
||||
document_type = document.get("doctype")
|
||||
del document["doctype"]
|
||||
doc = frappe.get_doc(doc_type, document)
|
||||
doc = frappe.get_doc(document_type, document)
|
||||
frappe.delete_doc(doc.doctype, doc.name, ignore_permissions=True)
|
||||
|
||||
|
||||
@ -184,7 +194,5 @@ def read_data_file_using_hooks(doctype):
|
||||
|
||||
|
||||
def get_warehouse(company):
|
||||
abbr = frappe.db.get_value("Company", company, "abbr")
|
||||
warehouse = "Stores - {0}".format(abbr)
|
||||
|
||||
return warehouse
|
||||
warehouses = frappe.db.get_all("Warehouse", {"company": company, "is_group": 0})
|
||||
return warehouses[randint(0, 3)].name
|
||||
|
@ -1,12 +1,12 @@
|
||||
[
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"supplier": "DQ Industries",
|
||||
"doctype": "Purchase Invoice",
|
||||
"supplier": "Zuckerman Security Ltd.",
|
||||
"doctype": "Purchase Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Purchase Invoice Item",
|
||||
"doctype": "Purchase Order Item",
|
||||
"item_code": "SKU001",
|
||||
"parentfield": "items",
|
||||
"qty": 100.0,
|
||||
@ -18,11 +18,11 @@
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"supplier": "MA Inc.",
|
||||
"doctype": "Purchase Invoice",
|
||||
"doctype": "Purchase Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Purchase Invoice Item",
|
||||
"doctype": "Purchase Order Item",
|
||||
"item_code": "SKU002",
|
||||
"parentfield": "items",
|
||||
"qty": 50.0,
|
||||
@ -33,15 +33,15 @@
|
||||
},
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"supplier": "KC Corp.",
|
||||
"doctype": "Purchase Invoice",
|
||||
"supplier": "Summit Traders Ltd.",
|
||||
"doctype": "Purchase Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Purchase Invoice Item",
|
||||
"doctype": "Purchase Order Item",
|
||||
"item_code": "SKU003",
|
||||
"parentfield": "items",
|
||||
"qty": 75.0,
|
||||
"qty": 200.0,
|
||||
"rate": 523.0,
|
||||
"conversion_factor": 1
|
||||
}
|
||||
@ -49,12 +49,12 @@
|
||||
},
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"supplier": "DQ Industries",
|
||||
"doctype": "Purchase Invoice",
|
||||
"supplier": "Zuckerman Security Ltd.",
|
||||
"doctype": "Purchase Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Purchase Invoice Item",
|
||||
"doctype": "Purchase Order Item",
|
||||
"item_code": "SKU004",
|
||||
"parentfield": "items",
|
||||
"qty": 60.0,
|
||||
@ -66,14 +66,14 @@
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"supplier": "MA Inc.",
|
||||
"doctype": "Purchase Invoice",
|
||||
"doctype": "Purchase Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Purchase Invoice Item",
|
||||
"doctype": "Purchase Order Item",
|
||||
"item_code": "SKU005",
|
||||
"parentfield": "items",
|
||||
"qty": 82.0,
|
||||
"qty": 182.0,
|
||||
"rate": 222.0,
|
||||
"conversion_factor": 1
|
||||
}
|
||||
@ -81,15 +81,15 @@
|
||||
},
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"supplier": "KC Corp.",
|
||||
"doctype": "Purchase Invoice",
|
||||
"supplier": "Summit Traders Ltd.",
|
||||
"doctype": "Purchase Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Purchase Invoice Item",
|
||||
"doctype": "Purchase Order Item",
|
||||
"item_code": "SKU006",
|
||||
"parentfield": "items",
|
||||
"qty": 50.0,
|
||||
"qty": 250.0,
|
||||
"rate": 420.0,
|
||||
"conversion_factor": 1
|
||||
}
|
||||
@ -97,15 +97,15 @@
|
||||
},
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"supplier": "DQ Industries",
|
||||
"doctype": "Purchase Invoice",
|
||||
"supplier": "Zuckerman Security Ltd.",
|
||||
"doctype": "Purchase Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Purchase Invoice Item",
|
||||
"doctype": "Purchase Order Item",
|
||||
"item_code": "SKU007",
|
||||
"parentfield": "items",
|
||||
"qty": 90.0,
|
||||
"qty": 190.0,
|
||||
"rate": 375.0,
|
||||
"conversion_factor": 1
|
||||
}
|
||||
@ -114,11 +114,11 @@
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"supplier": "MA Inc.",
|
||||
"doctype": "Purchase Invoice",
|
||||
"doctype": "Purchase Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Purchase Invoice Item",
|
||||
"doctype": "Purchase Order Item",
|
||||
"item_code": "SKU008",
|
||||
"parentfield": "items",
|
||||
"qty": 121.0,
|
||||
@ -129,12 +129,12 @@
|
||||
},
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"supplier": "KC Corp.",
|
||||
"doctype": "Purchase Invoice",
|
||||
"supplier": "Summit Traders Ltd.",
|
||||
"doctype": "Purchase Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Purchase Invoice Item",
|
||||
"doctype": "Purchase Order Item",
|
||||
"item_code": "SKU009",
|
||||
"parentfield": "items",
|
||||
"qty": 76.0,
|
||||
@ -145,12 +145,12 @@
|
||||
},
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"supplier": "DQ Industries",
|
||||
"doctype": "Purchase Invoice",
|
||||
"supplier": "Zuckerman Security Ltd.",
|
||||
"doctype": "Purchase Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Purchase Invoice Item",
|
||||
"doctype": "Purchase Order Item",
|
||||
"item_code": "SKU010",
|
||||
"parentfield": "items",
|
||||
"qty": 78.0,
|
@ -1,87 +1,87 @@
|
||||
[
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"customer": "ABC Enterprises",
|
||||
"doctype": "Sales Invoice",
|
||||
"customer": "Grant Plastics Ltd.",
|
||||
"doctype": "Sales Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Sales Invoice Item",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "SKU004",
|
||||
"parentfield": "items",
|
||||
"qty": 20.0,
|
||||
"rate": 500.0,
|
||||
"rate": 1000.0,
|
||||
"conversion_factor": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"customer": "XYZ Corporation",
|
||||
"doctype": "Sales Invoice",
|
||||
"customer": "West View Software Ltd.",
|
||||
"doctype": "Sales Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Sales Invoice Item",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "SKU001",
|
||||
"parentfield": "items",
|
||||
"qty": 25.0,
|
||||
"rate": 600.0,
|
||||
"rate": 800.0,
|
||||
"conversion_factor": 1
|
||||
},
|
||||
{
|
||||
"doctype": "Sales Invoice Item",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "SKU002",
|
||||
"parentfield": "items",
|
||||
"qty": 15.0,
|
||||
"rate": 300.0,
|
||||
"rate": 800.0,
|
||||
"conversion_factor": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"customer": "XYZ Corporation",
|
||||
"doctype": "Sales Invoice",
|
||||
"customer": "West View Software Ltd.",
|
||||
"doctype": "Sales Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Sales Invoice Item",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "SKU003",
|
||||
"parentfield": "items",
|
||||
"qty": 100,
|
||||
"rate": 300.0,
|
||||
"rate": 500.0,
|
||||
"conversion_factor": 1
|
||||
},
|
||||
{
|
||||
"doctype": "Sales Invoice Item",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "SKU006",
|
||||
"parentfield": "items",
|
||||
"qty": 100,
|
||||
"rate": 300.0,
|
||||
"rate": 890.0,
|
||||
"conversion_factor": 1
|
||||
},
|
||||
{
|
||||
"doctype": "Sales Invoice Item",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "SKU007",
|
||||
"parentfield": "items",
|
||||
"qty": 100,
|
||||
"rate": 300.0,
|
||||
"rate": 900.0,
|
||||
"conversion_factor": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"customer": "KJPR Pvt. Ltd.",
|
||||
"doctype": "Sales Invoice",
|
||||
"customer": "Palmer Productions Ltd.",
|
||||
"doctype": "Sales Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Sales Invoice Item",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "SKU005",
|
||||
"parentfield": "items",
|
||||
"qty": 200.0,
|
||||
"qty": 150.0,
|
||||
"rate": 100.0,
|
||||
"conversion_factor": 1
|
||||
}
|
||||
@ -89,12 +89,12 @@
|
||||
},
|
||||
{
|
||||
"conversion_rate": 1.0,
|
||||
"customer": "ABC Enterprises",
|
||||
"doctype": "Sales Invoice",
|
||||
"customer": "Grant Plastics Ltd.",
|
||||
"doctype": "Sales Order",
|
||||
"update_stock": 1,
|
||||
"items": [
|
||||
{
|
||||
"doctype": "Sales Invoice Item",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "SKU008",
|
||||
"parentfield": "items",
|
||||
"qty": 20.0,
|
||||
@ -102,7 +102,7 @@
|
||||
"conversion_factor": 1
|
||||
},
|
||||
{
|
||||
"doctype": "Sales Invoice Item",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "SKU009",
|
||||
"parentfield": "items",
|
||||
"qty": 40.0,
|
||||
@ -110,7 +110,7 @@
|
||||
"conversion_factor": 1
|
||||
},
|
||||
{
|
||||
"doctype": "Sales Invoice Item",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "SKU010",
|
||||
"parentfield": "items",
|
||||
"qty": 50.0,
|
Loading…
x
Reference in New Issue
Block a user