fix: Add order data

This commit is contained in:
Deepesh Garg 2023-08-10 21:46:34 +05:30
parent 000de4eddf
commit 567f4c37fc
4 changed files with 106 additions and 99 deletions

View File

@ -79,9 +79,8 @@ demo_master_doctypes = [
"supplier",
]
demo_transaction_doctypes = [
"purchase_invoice",
"sales_invoice",
"payment_entry",
"purchase_order",
"sales_order",
]
jinja = {

View File

@ -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

View File

@ -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,

View File

@ -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,