Skip to content

Commit

Permalink
fix: incorrect gl entries for standalone debit note with update stock
Browse files Browse the repository at this point in the history
(cherry picked from commit 6e19818)

# Conflicts:
#	erpnext/controllers/buying_controller.py
  • Loading branch information
rohitwaghchaure authored and mergify[bot] committed Jun 15, 2023
1 parent 77b0c5f commit 3355dc2
Showing 1 changed file with 57 additions and 0 deletions.
57 changes: 57 additions & 0 deletions erpnext/controllers/buying_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ def get_feed(self):
return _("From {0} | {1} {2}").format(self.supplier_name, self.currency, self.grand_total)

def validate(self):
self.set_rate_for_standalone_debit_note()

super(BuyingController, self).validate()
if getattr(self, "supplier", None) and not self.supplier_name:
self.supplier_name = frappe.db.get_value("Supplier", self.supplier, "supplier_name")
Expand Down Expand Up @@ -72,6 +74,61 @@ def onload(self):
),
)

<<<<<<< HEAD
=======
def create_package_for_transfer(self) -> None:
"""Create serial and batch package for Sourece Warehouse in case of inter transfer."""

if self.is_internal_transfer() and (
self.doctype == "Purchase Receipt" or (self.doctype == "Purchase Invoice" and self.update_stock)
):
field = "delivery_note_item" if self.doctype == "Purchase Receipt" else "sales_invoice_item"

doctype = "Delivery Note Item" if self.doctype == "Purchase Receipt" else "Sales Invoice Item"

ids = [d.get(field) for d in self.get("items") if d.get(field)]
bundle_ids = {}
if ids:
for bundle in frappe.get_all(
doctype, filters={"name": ("in", ids)}, fields=["serial_and_batch_bundle", "name"]
):
bundle_ids[bundle.name] = bundle.serial_and_batch_bundle

if not bundle_ids:
return

for item in self.get("items"):
if item.get(field) and not item.serial_and_batch_bundle and bundle_ids.get(item.get(field)):
item.serial_and_batch_bundle = self.make_package_for_transfer(
bundle_ids.get(item.get(field)),
item.from_warehouse,
type_of_transaction="Outward",
do_not_submit=True,
)

def set_rate_for_standalone_debit_note(self):
if self.get("is_return") and self.get("update_stock") and not self.return_against:
for row in self.items:
row.rate = get_incoming_rate(
{
"item_code": row.item_code,
"warehouse": row.warehouse,
"posting_date": self.get("posting_date"),
"posting_time": self.get("posting_time"),
"qty": row.qty,
"serial_and_batch_bundle": row.get("serial_and_batch_bundle"),
"company": self.company,
"voucher_type": self.doctype,
"voucher_no": self.name,
},
raise_error_if_no_rate=False,
)

row.discount_percentage = 0.0
row.discount_amount = 0.0
row.margin_rate_or_amount = 0.0

>>>>>>> 6e198188ff (fix: incorrect gl entries for standalone debit note with update stock)
def set_missing_values(self, for_validate=False):
super(BuyingController, self).set_missing_values(for_validate)

Expand Down

0 comments on commit 3355dc2

Please sign in to comment.