Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge branch develop into staging #1376

Merged
merged 63 commits into from
Jun 9, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
92108ea
fix: applying validation while storing debit_acc_no in salary slip (#…
harshmule-epi May 24, 2021
9b8b1e9
feat: procument tracker report batch_no and package tag info added (#…
vishdha May 26, 2021
2d7bbea
fix: Added Batch-Wise Balance History option into report for Batch Do…
meshramsaroj May 28, 2021
4a45755
fix: don't display source package tag in package tag and package tag …
MyuddinKhatri May 28, 2021
279612f
chore: Parent task display subject (#1309)
shantanu-kadam-epi May 28, 2021
355ed08
feat: added insight-engine dashboard to erpnext app (#1194)
MyuddinKhatri May 28, 2021
87d7555
Merge pull request #1325 from Bloomstack/bs-may-sprint-2
sahil28297 May 28, 2021
9c8abef
fix: contact_display shows wrong info issue fixed (#1326)
vishdha May 28, 2021
c7d97dd
Merge pull request #1328 from Bloomstack/hotfix
sahil28297 May 28, 2021
6d849a1
Merge branch 'production' into hotfix
sahil28297 May 28, 2021
9d753b4
Merge pull request #1330 from Bloomstack/hotfix
sahil28297 May 28, 2021
7e3d7ad
Fix: prevent overriding of the existing customer during new signups (…
sahil28297 May 28, 2021
8fb74d5
Merge branch 'production' into hotfix
sahil28297 May 28, 2021
36bb15b
Merge pull request #1332 from Bloomstack/hotfix
sahil28297 May 28, 2021
fe49e9d
fix: set contact title in contact_display (#1333)
sahil28297 May 28, 2021
8d344b4
Merge branch 'production' into hotfix
sahil28297 May 28, 2021
afdcd81
Merge pull request #1334 from Bloomstack/hotfix
sahil28297 May 28, 2021
ddc96eb
Update cart.py
sahil28297 May 28, 2021
38b2324
Merge branch 'production' into hotfix
sahil28297 May 28, 2021
11ed712
Merge pull request #1335 from Bloomstack/hotfix
sahil28297 May 28, 2021
4dbede4
chore: Display of Employee Name instead of Employee Code (#1310)
Mayur-Bheda-epi May 31, 2021
4ba55bc
Merge pull request #1336 from Bloomstack/bs-may-sprint-2
sahil28297 May 31, 2021
3a98370
Merge branch 'pre-release' into hotfix
sahil28297 May 31, 2021
8086847
Merge pull request #1337 from Bloomstack/hotfix
sahil28297 May 31, 2021
740a900
fix: fixed the license field data in sales invoice format (#1339)
nehasacher143 Jun 1, 2021
80dd366
feat: add reports to desk, create reports page (#1317)
rvpasari Jun 1, 2021
80b29c8
Merge branch 'pre-release' into bs-may-sprint-2
sahil28297 Jun 1, 2021
c1b41fd
Merge pull request #1340 from Bloomstack/bs-may-sprint-2
sahil28297 Jun 1, 2021
72eb741
fix: contract cancel trigger gives server error issue fixed (#1342)
vishdha Jun 1, 2021
f722651
Merge branch 'production' into hotfix
sahil28297 Jun 1, 2021
c4d1ac3
Merge pull request #1343 from Bloomstack/hotfix
sahil28297 Jun 1, 2021
dafe39e
fix: add validation to emp_names for getting ifsc code (#1345)
harshmule-epi Jun 2, 2021
8570de6
feat: added produced qty field in material request plan item (#1341)
MyuddinKhatri Jun 2, 2021
4a96477
fix: rename charts and add a new module (#1348)
hrwX Jun 2, 2021
adb7379
chore: Removed the function of create material req for frappe confirm…
shruti2323 Jun 2, 2021
0bf1a18
refactor: Authorizenet Integration (#1344)
DeveloperMetal Jun 2, 2021
d80c73e
Merge pull request #1350 from Bloomstack/bs-may-sprint-2
sahil28297 Jun 2, 2021
bcf8214
chore: item validation added in the Pick list (#1346)
shantanu-kadam-epi Jun 3, 2021
9f6f492
feat: Product Recall (#1329)
MyuddinKhatri Jun 3, 2021
b8127ab
feat: Quoting Sheet (#1327)
sahilk25 Jun 3, 2021
c219146
Merge pull request #1351 from Bloomstack/bs-may-sprint-2
sahil28297 Jun 3, 2021
0b338fc
fix: order for contact display issue fixed (#1352)
vishdha Jun 3, 2021
acedc42
Merge pull request #1353 from Bloomstack/hotfix
sahil28297 Jun 3, 2021
7d4b3af
Merge branch 'production' into hotfix
sahil28297 Jun 3, 2021
cded519
fix: patch outstanding payment entries (#1277)
hrwX Jun 4, 2021
3257650
Merge pull request #1356 from Bloomstack/bs-may-sprint-2
sahil28297 Jun 4, 2021
00eb72c
Revert "chore: item validation added in the Pick list (#1346)" (#1357)
hrwX Jun 4, 2021
8b10a71
Merge pull request #1358 from Bloomstack/bs-may-sprint-2
sahil28297 Jun 4, 2021
a2861d1
feat: improve card details handling in authorizenet (#1359)
DeveloperMetal Jun 7, 2021
d024f35
Merge pull request #1360 from Bloomstack/bs-may-sprint-2
sahil28297 Jun 7, 2021
78bee8e
fix: applied filter for batch_no, batch_qty > 0 in product recall (#1…
MyuddinKhatri Jun 8, 2021
be0b4f7
Merge pull request #1362 from Bloomstack/bs-may-sprint-2
sahil28297 Jun 8, 2021
f9ce281
fix: Added missing date and enabled validations (#1363)
DeveloperMetal Jun 8, 2021
98911ee
Merge branch 'pre-release' into pre-release-into-hotfix
sahil28297 Jun 8, 2021
d668c59
Merge pull request #1365 from Bloomstack/pre-release-into-hotfix
sahil28297 Jun 8, 2021
9f6ee14
fix: Adds default network error text to message box (#1366)
DeveloperMetal Jun 8, 2021
b0595c6
Merge pull request #1367 from Bloomstack/bs-may-sprint-2
sahil28297 Jun 8, 2021
a0f076f
fix: Separate date validation and allow unlimited max use if 0 (#1368)
DeveloperMetal Jun 8, 2021
542055b
Merge pull request #1369 from Bloomstack/hotfix
sahil28297 Jun 8, 2021
fd56763
fix(AuthorizeNet): Fixes issue where payment data was incorrectly enc…
DeveloperMetal Jun 9, 2021
0b4566c
Merge pull request #1371 from Bloomstack/bs-may-sprint-2
sahil28297 Jun 9, 2021
d92df2e
fix: add insights engine module in module def (#1373)
hrwX Jun 9, 2021
0adb924
Merge pull request #1375 from Bloomstack/pre-release
sahil28297 Jun 9, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion erpnext/accounts/doctype/coupon_code/coupon_code.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"enabled",
"coupon_name",
"coupon_type",
"customer",
Expand Down Expand Up @@ -136,9 +137,16 @@
"fieldtype": "Link",
"label": "Customer Group",
"options": "Customer Group"
},
{
"default": "1",
"fieldname": "enabled",
"fieldtype": "Check",
"in_list_view": 1,
"label": "Enabled"
}
],
"modified": "2020-12-17 00:02:05.148366",
"modified": "2021-06-08 09:44:21.974315",
"modified_by": "[email protected]",
"module": "Accounts",
"name": "Coupon Code",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
"doctype": "Print Format",
"font": "Default",
"format_data": "[{\"fieldname\": \"print_heading_template\", \"fieldtype\": \"Custom HTML\", \"options\": \"\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}]",
"html": "{% if doc.license %}\n{% set type = frappe.db.get_value('Compliance Info' ,doc.license, 'license_for' )%}\n{% endif %}\n<div class=\"row\">\n <div class=\"col-md-6\">\n <h2>{{doc.company}}</h2>\n <div class=\"company-address\">\n {% set links = frappe.get_all(\"Dynamic Link\", filters={\"link_doctype\": \"Company\", \"link_name\": doc.company, \"parenttype\": \"Address\"}, fields=[\"parent\"]) %}\n {% if links %}\n <p>{{ frappe.db.get_value(\"Address\", links[0].parent, \"address_line1\")}}, \n {{ frappe.db.get_value(\"Address\", links[0].parent, \"address_line2\") or \" \" }}</p>\n <p>{{ frappe.db.get_value(\"Address\", links[0].parent, \"city\") or \" \" }},\n {{ frappe.db.get_value(\"Address\", links[0].parent, \"state\") or \" \" }},\n {{ frappe.db.get_value(\"Address\", links[0].parent, \"country\") or \" \" }},\n {{ frappe.db.get_value(\"Address\", links[0].parent, \"pincode\") or \" \" }}.\n {% endif %}\n </div>\n <p class=\"license\">License: {{ frappe.db.get_value(\"Company\",doc.company , \"license\") or \" \" }}</p>\n <p class=\"phone\">Phone: {{ frappe.db.get_value(\"Address\", links[0].parent, \"phone\") or \" \" }}.</p>\n </div>\n <div class=\"col-md-6\">\n <h2 class=\"text-right\">Invoice</h2>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <h3>Invoice Number</h3>\n </div>\n <div class=\"col-md-6\">\n <p>{{doc.name}}</p>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <h3>Date</h3>\n </div>\n <div class=\"col-md-6\">\n <p>{{doc.posting_date}}</p>\n </div>\n </div>\n {% if type != \"Retailer\" %}\n <div class=\"row\">\n <div class=\"col-md-6\">\n <h3>Payment Terms</h3>\n </div>\n <div class=\"col-md-6\">\n <p>{{doc.payment_terms_template}}</p>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <h3>Due Date</h3>\n </div>\n <div class=\"col-md-6\">\n <p>{{doc.due_date}}</p>\n </div>\n </div>\n {% endif %}\n </div>\n</div>\n {% if type != \"Retailer\" %}\n<div class=\"row billing_shipping_info\">\n <div class=\"col-md-6\">\n <h3 class=\"bill_to\">Bill To:</h3>\n <p class=\"customer\">{{doc.customer}}</p>\n <p class=\"company_address\">{{doc.address_display or ''}}</p>\n <p class=\"license\">License: {{doc.license or \"\"}}</p>\n <p class=\"license\">A/R Contact: {{doc.contact_person or \"\"}}</p>\n </div>\n <div class=\"col-md-6\">\n <h3>Ship To:</h3>\n <p class=\"customer\">{{doc.customer}}</p>\n <p class=\"comapany_address\">{{doc.shipping_address or \"\"}}</p>\n </div>\n</div>\n{% endif %}\n<div class=\"row\">\n <table>\n <thead>\n <tr>\n <th width=\"50%\">Item Name</th>\n <th>Quantity</th>\n <th>Unit Price</th>\n <th>Amount</th>\n </tr>\n </thead>\n <tbody>\n {% for item in doc.items %}\n <tr>\n <td>{{item.item_name or \"\"}}</td>\n <td>{{item.qty or \"0\"}}</td>\n <td>{{item.rate or \"0\"}}</td>\n <td>{{item.amount or \"0\"}}</td>\n </tr>\n {% endfor %}\n </tbody>\n </table>\n</div>\n<div class=\"row\">\n <table>\n <thead>\n <tr>\n <th width=\"50%\">Account Head</th>\n <th>Tax</th>\n <th>Rate</th>\n <th>Tax Amount</th>\n </tr>\n </thead>\n <tbody>\n {% for tax in doc.taxes %}\n <tr>\n <td>{{tax.account_head or ''}}</td>\n <td>{{tax.description or ''}}</td>\n <td>{{tax.rate or ''}}</td>\n <td>{{tax.tax_amount or ''}}</td>\n </tr>\n {% endfor %}\n </tbody>\n </table>\n</div>\n<div class=\"row\">\n <table>\n <tbody>\n <tr>\n <td colspan=\"3\" class=\"text-right\">Subtotal</td>\n <td class=\"text-right\">{{doc.total}}</td>\n </tr>\n <tr>\n <td colspan=\"3\" class=\"text-right\">Discount</td>\n <td class=\"text-right\">-{{doc.discount_amount}}</td>\n </tr>\n {% if type != \"Retailer\" %}\n <tr>\n <td colspan=\"3\" class=\"text-right\">Net Total</td>\n <td class=\"text-right\">{{doc.net_total}}</td>\n </tr>\n {% endif %}\n <tr>\n <td colspan=\"3\" class=\"text-right\">Taxes Charged</td>\n <td class=\"text-right\">{{doc.total_taxes_and_charges}}</td>\n </tr>\n <tr>\n <td colspan=\"3\" class=\"text-right\">Grand Total</td>\n <td class=\"text-right\">{{doc.grand_total}}</td>\n </tr>\n <tr>\n <td colspan=\"3\" class=\"text-right\">Mode of Payment</td>\n {% set mode_of_payment = frappe.get_all(\"Payment Entry\",{\"reference_name\": doc.name},\"mode_of_payment\") %}\n <td class=\"text-right\">\n {% for m in mode_of_payment %}\n {{m.mode_of_payment}}\n {% endfor%}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n",
"html": "{% if doc.license %}\n{% set type = frappe.db.get_value('Compliance Info' ,doc.license, 'license_for' )%}\n{% endif %}\n<div class=\"row\">\n <div class=\"col-md-6\">\n <h2>{{doc.company}}</h2>\n <div class=\"company-address\">\n {% set links = frappe.get_all(\"Dynamic Link\", filters={\"link_doctype\": \"Company\", \"link_name\": doc.company, \"parenttype\": \"Address\"}, fields=[\"parent\"]) %}\n {% if links %}\n <p>{{ frappe.db.get_value(\"Address\", links[0].parent, \"address_line1\")}}, \n {{ frappe.db.get_value(\"Address\", links[0].parent, \"address_line2\") or \" \" }}</p>\n <p>{{ frappe.db.get_value(\"Address\", links[0].parent, \"city\") or \" \" }},\n {{ frappe.db.get_value(\"Address\", links[0].parent, \"state\") or \" \" }},\n {{ frappe.db.get_value(\"Address\", links[0].parent, \"country\") or \" \" }},\n {{ frappe.db.get_value(\"Address\", links[0].parent, \"pincode\") or \" \" }}.\n {% endif %}\n </div>\n <p class=\"license\">License: {{ doc.license or \" \" }}</p>\n <p class=\"phone\">Phone: {{ frappe.db.get_value(\"Address\", links[0].parent, \"phone\") or \" \" }}.</p>\n </div>\n <div class=\"col-md-6\">\n <h2 class=\"text-right\">Invoice</h2>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <h3>Invoice Number</h3>\n </div>\n <div class=\"col-md-6\">\n <p>{{doc.name}}</p>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <h3>Date</h3>\n </div>\n <div class=\"col-md-6\">\n <p>{{doc.posting_date}}</p>\n </div>\n </div>\n {% if type != \"Retailer\" %}\n <div class=\"row\">\n <div class=\"col-md-6\">\n <h3>Payment Terms</h3>\n </div>\n <div class=\"col-md-6\">\n <p>{{doc.payment_terms_template}}</p>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <h3>Due Date</h3>\n </div>\n <div class=\"col-md-6\">\n <p>{{doc.due_date}}</p>\n </div>\n </div>\n {% endif %}\n </div>\n</div>\n {% if type != \"Retailer\" %}\n<div class=\"row billing_shipping_info\">\n <div class=\"col-md-6\">\n <h3 class=\"bill_to\">Bill To:</h3>\n <p class=\"customer\">{{doc.customer}}</p>\n <p class=\"company_address\">{{doc.address_display or ''}}</p>\n <p class=\"license\">License: {{doc.license or \"\"}}</p>\n <p class=\"license\">A/R Contact: {{doc.contact_person or \"\"}}</p>\n </div>\n <div class=\"col-md-6\">\n <h3>Ship To:</h3>\n <p class=\"customer\">{{doc.customer}}</p>\n <p class=\"company_address\">{{doc.shipping_address or \"\"}}</p>\n </div>\n</div>\n{% endif %}\n<div class=\"row\">\n <table>\n <thead>\n <tr>\n <th width=\"50%\">Item Name</th>\n <th>Quantity</th>\n <th>Unit Price</th>\n <th>Amount</th>\n </tr>\n </thead>\n <tbody>\n {% for item in doc.items %}\n <tr>\n <td>{{item.item_name or \"\"}}</td>\n <td>{{item.qty or \"0\"}}</td>\n <td>{{item.rate or \"0\"}}</td>\n <td>{{item.amount or \"0\"}}</td>\n </tr>\n {% endfor %}\n </tbody>\n </table>\n</div>\n<div class=\"row\">\n <table>\n <thead>\n <tr>\n <th width=\"50%\">Account Head</th>\n <th>Tax</th>\n <th>Rate</th>\n <th>Tax Amount</th>\n </tr>\n </thead>\n <tbody>\n {% for tax in doc.taxes %}\n <tr>\n <td>{{tax.account_head or ''}}</td>\n <td>{{tax.description or ''}}</td>\n <td>{{tax.rate or ''}}</td>\n <td>{{tax.tax_amount or ''}}</td>\n </tr>\n {% endfor %}\n </tbody>\n </table>\n</div>\n<div class=\"row\">\n <table>\n <tbody>\n <tr>\n <td colspan=\"3\" class=\"text-right\">Subtotal</td>\n <td class=\"text-right\">{{doc.total}}</td>\n </tr>\n <tr>\n <td colspan=\"3\" class=\"text-right\">Discount</td>\n <td class=\"text-right\">-{{doc.discount_amount}}</td>\n </tr>\n {% if type != \"Retailer\" %}\n <tr>\n <td colspan=\"3\" class=\"text-right\">Net Total</td>\n <td class=\"text-right\">{{doc.net_total}}</td>\n </tr>\n {% endif %}\n <tr>\n <td colspan=\"3\" class=\"text-right\">Taxes Charged</td>\n <td class=\"text-right\">{{doc.total_taxes_and_charges}}</td>\n </tr>\n <tr>\n <td colspan=\"3\" class=\"text-right\">Grand Total</td>\n <td class=\"text-right\">{{doc.grand_total}}</td>\n </tr>\n <tr>\n <td colspan=\"3\" class=\"text-right\">Mode of Payment</td>\n {% set mode_of_payment = frappe.get_all(\"Payment Entry\",{\"reference_name\": doc.name},\"mode_of_payment\") %}\n <td class=\"text-right\">\n {% for m in mode_of_payment %}\n {{m.mode_of_payment}}\n {% endfor%}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n",
"idx": 0,
"line_breaks": 0,
"modified": "2021-05-20 05:25:16.166402",
"modified": "2021-05-31 23:25:03.224988",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Sales Invoice",
Expand Down
35 changes: 31 additions & 4 deletions erpnext/buying/report/procurement_tracker/procurement_tracker.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,20 @@ def get_columns(filters):
"fieldtype": "Date",
"width": 140
},
{
"label": _("Batch No"),
"fieldname": "batch_no",
"fieldtype": "Link",
"options": "Batch",
"width": 140
},
{
"label": _("Package Tag"),
"fieldname": "package_tag",
"fieldtype": "Link",
"options": "Package Tag",
"width": 140
}
]
return columns

Expand Down Expand Up @@ -168,6 +182,13 @@ def get_data(filters):
if procurement_record_against_mr:
procurement_record += procurement_record_against_mr
for po in purchase_order_entry:
# get batch and package tag related information form purchase receipt.
posting_date, batch_no, package_tag = None, None, None
if pr_records.get(po.name):
posting_date = pr_records.get(po.name).get('posting_date')
batch_no = pr_records.get(po.name).get('batch_no')
package_tag = pr_records.get(po.name).get('package_tag')

# fetch material records linked to the purchase order item
mr_record = mr_records.get(po.material_request_item, [{}])[0]
procurement_detail = {
Expand All @@ -189,7 +210,9 @@ def get_data(filters):
"purchase_order_amt": flt(po.amount),
"purchase_order_amt_in_company_currency": flt(po.base_amount),
"expected_delivery_date": po.schedule_date,
"actual_delivery_date": pr_records.get(po.name)
"actual_delivery_date": posting_date,
"batch_no": batch_no,
"package_tag": package_tag
}
procurement_record.append(procurement_detail)
return procurement_record
Expand Down Expand Up @@ -252,17 +275,21 @@ def get_mapped_pi_records():
"""))

def get_mapped_pr_records():
return frappe._dict(frappe.db.sql("""
pr_records = frappe.db.sql("""
SELECT
pr_item.purchase_order_item,
pr.posting_date
pr.posting_date,
pr_item.batch_no,
pr_item.package_tag
FROM `tabPurchase Receipt` pr, `tabPurchase Receipt Item` pr_item
WHERE
pr.docstatus=1
AND pr.name=pr_item.parent
AND pr_item.purchase_order_item IS NOT NULL
AND pr.status not in ("Closed","Completed","Cancelled")
"""))
""", as_dict=1)
pr_records_dict = {item['purchase_order_item']:item for item in pr_records}
return pr_records_dict

def get_po_entries(conditions):
return frappe.db.sql("""
Expand Down
9 changes: 9 additions & 0 deletions erpnext/config/desktop.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,4 +208,13 @@ def get_data():
'standard': 1,
"description": "Publish items to other ERPNext users."
},
{
"module_name": "Reports",
"category": "Modules",
"label": _("Reports"),
"color": "#3498db",
"icon": "octicon octicon-repo",
"type": "module",
"description": "Accounts, billing, payments, cost center and budgeting."
}
]
Loading