Skip to content

Commit

Permalink
fix: only update accounting summary when state = 9 (#242)
Browse files Browse the repository at this point in the history
* fix: only update accounting summary when state = 9

* add fixes for direct cost

* Fix test
  • Loading branch information
Hrishabh17 committed Jan 29, 2025
1 parent a674b4d commit 17bebb8
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 25 deletions.
25 changes: 14 additions & 11 deletions apps/sage300/exports/direct_cost/queues.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import logging

from django.db.models import Q
from apps.sage300.exports.direct_cost.models import DirectCost
from django_q.models import Schedule
from django_q.tasks import Chain

Expand Down Expand Up @@ -124,7 +125,7 @@ def poll_operation_status(workspace_id: int, last_export: bool):
# Retrieve Sage 300 errors for the current export

document = sage300_connection.connection.documents.get(accounting_export.export_id)
if document['CurrentState'] != '9':
if str(document['CurrentState']) != '9':
sage300_errors = sage300_connection.connection.event_failures.get(accounting_export.export_id)
# Update the accounting export object with Sage 300 errors and status
accounting_export.sage300_errors = sage300_errors
Expand All @@ -146,18 +147,20 @@ def poll_operation_status(workspace_id: int, last_export: bool):

error.increase_repetition_count_by_one()

# Continue to the next iteration
continue
# delete direct cost from db
direct_cost_instance = DirectCost.objects.filter(workspace_id=workspace_id, accounting_export_id=accounting_export.id)

accounting_export.status = 'COMPLETE'
accounting_export.sage300_errors = None
detail = accounting_export.detail
detail['operation_status'] = operation_status
accounting_export.detail = detail
accounting_export.exported_at = datetime.now()
accounting_export.save()
direct_cost_instance.delete()

resolve_errors_for_exported_accounting_export(accounting_export)
else:
accounting_export.status = 'COMPLETE'
accounting_export.sage300_errors = None
detail = accounting_export.detail
detail['operation_status'] = operation_status
accounting_export.detail = detail
accounting_export.exported_at = datetime.now()
accounting_export.save()
resolve_errors_for_exported_accounting_export(accounting_export)

if last_export:
update_accounting_export_summary(workspace_id=workspace_id)
23 changes: 9 additions & 14 deletions apps/sage300/exports/purchase_invoice/queues.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,27 +155,22 @@ def poll_operation_status(workspace_id: int, last_export: bool):

error.increase_repetition_count_by_one()

# Save the updated accounting export
accounting_export.save()

# delete purchase invoice from db
purchase_invoice_instance = PurchaseInvoice.objects.filter(workspace_id=workspace_id, accounting_export_id=accounting_export.id)
purchase_invoice_lineitems_instance = PurchaseInvoiceLineitems.objects.filter(workspace_id=workspace_id, purchase_invoice_id__in=purchase_invoice_instance.values_list('id', flat=True))

purchase_invoice_lineitems_instance.delete()
purchase_invoice_instance.delete()

# Continue to the next iteration
continue

accounting_export.status = 'COMPLETE'
accounting_export.sage300_errors = None
detail = accounting_export.detail
detail['operation_status'] = operation_status
accounting_export.detail = detail
accounting_export.exported_at = datetime.now()
accounting_export.save()
resolve_errors_for_exported_accounting_export(accounting_export)
else:
accounting_export.status = 'COMPLETE'
accounting_export.sage300_errors = None
detail = accounting_export.detail
detail['operation_status'] = operation_status
accounting_export.detail = detail
accounting_export.exported_at = datetime.now()
accounting_export.save()
resolve_errors_for_exported_accounting_export(accounting_export)

if last_export:
update_accounting_export_summary(workspace_id=workspace_id)

0 comments on commit 17bebb8

Please sign in to comment.