Merge branch 'develop' into hr-separation
This commit is contained in:
commit
ef63c61ebd
16
.github/workflows/linters.yml
vendored
16
.github/workflows/linters.yml
vendored
@ -11,10 +11,10 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Set up Python 3.8
|
- name: Set up Python 3.10
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v2
|
||||||
with:
|
with:
|
||||||
python-version: 3.8
|
python-version: '3.10'
|
||||||
|
|
||||||
- name: Install and Run Pre-commit
|
- name: Install and Run Pre-commit
|
||||||
uses: pre-commit/action@v2.0.3
|
uses: pre-commit/action@v2.0.3
|
||||||
@ -22,10 +22,8 @@ jobs:
|
|||||||
- name: Download Semgrep rules
|
- name: Download Semgrep rules
|
||||||
run: git clone --depth 1 https://github.com/frappe/semgrep-rules.git frappe-semgrep-rules
|
run: git clone --depth 1 https://github.com/frappe/semgrep-rules.git frappe-semgrep-rules
|
||||||
|
|
||||||
- uses: returntocorp/semgrep-action@v1
|
- name: Download semgrep
|
||||||
env:
|
run: pip install semgrep==0.97.0
|
||||||
SEMGREP_TIMEOUT: 120
|
|
||||||
with:
|
- name: Run Semgrep rules
|
||||||
config: >-
|
run: semgrep ci --config ./frappe-semgrep-rules/rules --config r/python.lang.correctness
|
||||||
r/python.lang.correctness
|
|
||||||
./frappe-semgrep-rules/rules
|
|
||||||
|
|||||||
@ -128,6 +128,7 @@ class ReceivablePayableReport(object):
|
|||||||
credit_note_in_account_currency=0.0,
|
credit_note_in_account_currency=0.0,
|
||||||
outstanding_in_account_currency=0.0,
|
outstanding_in_account_currency=0.0,
|
||||||
)
|
)
|
||||||
|
self.get_invoices(ple)
|
||||||
|
|
||||||
if self.filters.get("group_by_party"):
|
if self.filters.get("group_by_party"):
|
||||||
self.init_subtotal_row(ple.party)
|
self.init_subtotal_row(ple.party)
|
||||||
|
|||||||
@ -401,6 +401,14 @@ scheduler_events = {
|
|||||||
"0/30 * * * *": [
|
"0/30 * * * *": [
|
||||||
"erpnext.utilities.doctype.video.video.update_youtube_data",
|
"erpnext.utilities.doctype.video.video.update_youtube_data",
|
||||||
],
|
],
|
||||||
|
# Hourly but offset by 30 minutes
|
||||||
|
"30 * * * *": [
|
||||||
|
"erpnext.accounts.doctype.gl_entry.gl_entry.rename_gle_sle_docs",
|
||||||
|
],
|
||||||
|
# Daily but offset by 45 minutes
|
||||||
|
"45 0 * * *": [
|
||||||
|
"erpnext.stock.reorder_item.reorder_item",
|
||||||
|
],
|
||||||
},
|
},
|
||||||
"all": [
|
"all": [
|
||||||
"erpnext.projects.doctype.project.project.project_status_update_reminder",
|
"erpnext.projects.doctype.project.project.project_status_update_reminder",
|
||||||
@ -408,7 +416,6 @@ scheduler_events = {
|
|||||||
],
|
],
|
||||||
"hourly": [
|
"hourly": [
|
||||||
"erpnext.accounts.doctype.subscription.subscription.process_all",
|
"erpnext.accounts.doctype.subscription.subscription.process_all",
|
||||||
"erpnext.accounts.doctype.gl_entry.gl_entry.rename_gle_sle_docs",
|
|
||||||
"erpnext.erpnext_integrations.doctype.plaid_settings.plaid_settings.automatic_synchronization",
|
"erpnext.erpnext_integrations.doctype.plaid_settings.plaid_settings.automatic_synchronization",
|
||||||
"erpnext.projects.doctype.project.project.hourly_reminder",
|
"erpnext.projects.doctype.project.project.hourly_reminder",
|
||||||
"erpnext.projects.doctype.project.project.collect_project_status",
|
"erpnext.projects.doctype.project.project.collect_project_status",
|
||||||
@ -418,7 +425,6 @@ scheduler_events = {
|
|||||||
"erpnext.bulk_transaction.doctype.bulk_transaction_log.bulk_transaction_log.retry_failing_transaction",
|
"erpnext.bulk_transaction.doctype.bulk_transaction_log.bulk_transaction_log.retry_failing_transaction",
|
||||||
],
|
],
|
||||||
"daily": [
|
"daily": [
|
||||||
"erpnext.stock.reorder_item.reorder_item",
|
|
||||||
"erpnext.support.doctype.issue.issue.auto_close_tickets",
|
"erpnext.support.doctype.issue.issue.auto_close_tickets",
|
||||||
"erpnext.crm.doctype.opportunity.opportunity.auto_close_opportunity",
|
"erpnext.crm.doctype.opportunity.opportunity.auto_close_opportunity",
|
||||||
"erpnext.controllers.accounts_controller.update_invoice_status",
|
"erpnext.controllers.accounts_controller.update_invoice_status",
|
||||||
|
|||||||
@ -260,6 +260,16 @@ erpnext.stock.move_item = function (item, source, target, actual_qty, rate, call
|
|||||||
}
|
}
|
||||||
|
|
||||||
dialog.set_primary_action(__('Create Stock Entry'), function () {
|
dialog.set_primary_action(__('Create Stock Entry'), function () {
|
||||||
|
if (source && (dialog.get_value("qty") == 0 || dialog.get_value("qty") > actual_qty)) {
|
||||||
|
frappe.msgprint(__("Quantity must be greater than zero, and less or equal to {0}", [actual_qty]));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dialog.get_value("source") === dialog.get_value("target")) {
|
||||||
|
frappe.msgprint(__("Source and target warehouse must be different"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
frappe.model.with_doctype('Stock Entry', function () {
|
frappe.model.with_doctype('Stock Entry', function () {
|
||||||
let doc = frappe.model.get_new_doc('Stock Entry');
|
let doc = frappe.model.get_new_doc('Stock Entry');
|
||||||
doc.from_warehouse = dialog.get_value('source');
|
doc.from_warehouse = dialog.get_value('source');
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user