Skip to content

Commit

Permalink
fix: Subcontracting Receipt GL Entries
Browse files Browse the repository at this point in the history
  • Loading branch information
s-aga-r committed Apr 2, 2024
1 parent a17d54a commit 407e483
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 79 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,6 @@ def get_gl_entries(self, warehouse_account=None):

def make_item_gl_entries(self, gl_entries, warehouse_account=None):
warehouse_with_no_account = []
stock_rbnb = self.get_company_default("stock_received_but_not_billed")

for item in self.items:
if flt(item.rate) and flt(item.qty):
Expand Down Expand Up @@ -530,131 +529,79 @@ def make_item_gl_entries(self, gl_entries, warehouse_account=None):
debit=stock_value_diff,
credit=0.0,
remarks=remarks,
against_account=stock_rbnb,
against_account=item.expense_account,
account_currency=get_account_currency(accepted_warehouse_account),
project=item.project,
item=item,
)
# Expense Account (Credit)
self.add_gl_entry(
gl_entries=gl_entries,
account=stock_rbnb,
account=item.expense_account,
cost_center=item.cost_center,
debit=-1 * stock_value_diff,
credit=0.0,
debit=0.0,
credit=stock_value_diff,
remarks=remarks,
against_account=accepted_warehouse_account,
account_currency=get_account_currency(stock_rbnb),
account_currency=get_account_currency(item.expense_account),
project=item.project,
item=item,
)

# Supplier Warehouse Account (Credit)
if flt(item.rm_supp_cost) and supplier_warehouse_account:
# Supplier Warehouse Account (Credit)
self.add_gl_entry(
gl_entries=gl_entries,
account=supplier_warehouse_account,
cost_center=item.cost_center,
debit=0.0,
credit=flt(item.rm_supp_cost),
remarks=remarks,
against_account=accepted_warehouse_account,
account_currency=get_account_currency(supplier_warehouse_account),
project=item.project,
item=item,
)
self.add_gl_entry(
gl_entries=gl_entries,
account=accepted_warehouse_account,
cost_center=item.cost_center,
debit=0.0,
credit=-1 * flt(item.rm_supp_cost),
remarks=remarks,
against_account=supplier_warehouse_account,
account_currency=get_account_currency(accepted_warehouse_account),
project=item.project,
item=item,
)

# Expense Account [Service Cost] (Credit)
if flt(item.service_cost_per_qty):
self.add_gl_entry(
gl_entries=gl_entries,
account=item.expense_account,
cost_center=item.cost_center,
debit=0.0,
credit=flt(item.service_cost_per_qty) * flt(item.qty),
remarks=remarks,
against_account=accepted_warehouse_account,
account_currency=get_account_currency(item.expense_account),
project=item.project,
item=item,
)
self.add_gl_entry(
gl_entries=gl_entries,
account=accepted_warehouse_account,
cost_center=item.cost_center,
debit=0.0,
credit=-1 * (flt(item.service_cost_per_qty) * flt(item.qty)),
remarks=remarks,
against_account=item.expense_account,
account_currency=get_account_currency(accepted_warehouse_account),
account_currency=get_account_currency(supplier_warehouse_account),
project=item.project,
item=item,
)

# Loss Account (Credit)
if divisional_loss := flt(item.amount - stock_value_diff, item.precision("amount")):
# Expense Account (Debit)
self.add_gl_entry(
gl_entries=gl_entries,
account=item.expense_account,
cost_center=item.cost_center,
debit=divisional_loss,
debit=flt(item.rm_supp_cost),
credit=0.0,
remarks=remarks,
against_account=accepted_warehouse_account,
against_account=supplier_warehouse_account,
account_currency=get_account_currency(item.expense_account),
project=item.project,
item=item,
)
self.add_gl_entry(
gl_entries=gl_entries,
account=accepted_warehouse_account,
cost_center=item.cost_center,
debit=-1 * divisional_loss,
credit=0.0,
remarks=remarks,
against_account=item.expense_account,
account_currency=get_account_currency(accepted_warehouse_account),
project=item.project,
item=item,
)

# Additional Costs (Credit)
# Expense Account (Debit)
if item.additional_cost_per_qty:
self.add_gl_entry(
gl_entries=gl_entries,
account=accepted_warehouse_account,
account=item.expense_account,
cost_center=self.cost_center or self.get_company_default("cost_center"),
debit=0.0,
credit=-1 * item.qty * item.additional_cost_per_qty,
debit=item.qty * item.additional_cost_per_qty,
credit=0.0,
remarks=remarks,
against_account=None,
account_currency=get_account_currency(accepted_warehouse_account),
account_currency=get_account_currency(item.expense_account),
)
elif (
item.warehouse not in warehouse_with_no_account
or item.rejected_warehouse not in warehouse_with_no_account
):
warehouse_with_no_account.append(item.warehouse)

# Additional Costs Expense Accounts (Credit)
for row in self.additional_costs:
credit_amount = (
flt(row.base_amount)
if (row.base_amount or row.account_currency != self.company_currency)
else flt(row.amount)
)

# Additional Cost Expense Account (Credit)
self.add_gl_entry(
gl_entries=gl_entries,
account=row.expense_account,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,17 +352,13 @@ def test_subcontracting_receipt_gl_entry(self):
self.assertEqual(cint(erpnext.is_perpetual_inventory_enabled(scr.company)), 1)

gl_entries = get_gl_entries("Subcontracting Receipt", scr.name)

self.assertTrue(gl_entries)

fg_warehouse_ac = get_inventory_account(scr.company, scr.items[0].warehouse)
expense_account = scr.items[0].expense_account

stock_rbnb = get_company_default(scr.company, "stock_received_but_not_billed")
expected_values = {
fg_warehouse_ac: [3200.0, 0.0],
stock_rbnb: [0.0, 2100.0],
expense_account: [0.0, 1000.0],
fg_warehouse_ac: [2100.0, 1000],
expense_account: [1100, 2100],
additional_costs_expense_account: [0.0, 100.0],
}

Expand Down Expand Up @@ -409,10 +405,10 @@ def test_subcontracting_receipt_with_zero_service_cost(self):
self.assertTrue(gl_entries)

fg_warehouse_ac = get_inventory_account(scr.company, scr.items[0].warehouse)
stock_rbnb = get_company_default(scr.company, "stock_received_but_not_billed")
expense_account = scr.items[0].expense_account
expected_values = {
fg_warehouse_ac: [1000, 0.0],
stock_rbnb: [0.0, 1000],
fg_warehouse_ac: [1000, 1000],
expense_account: [1000, 1000],
}

for gle in gl_entries:
Expand Down

0 comments on commit 407e483

Please sign in to comment.