Skip to content

Comments

fix: posting date format error#929

Merged
Hrishabh17 merged 1 commit intomasterfrom
fix-je-posting-date-2
Feb 19, 2026
Merged

fix: posting date format error#929
Hrishabh17 merged 1 commit intomasterfrom
fix-je-posting-date-2

Conversation

@Hrishabh17
Copy link
Member

No description provided.

@Hrishabh17 Hrishabh17 deployed to CI Environment February 19, 2026 05:10 — with GitHub Actions Active
@github-actions github-actions bot added the size/XS Extra Small PR label Feb 19, 2026
@github-actions
Copy link

Coverage

Coverage Report
FileStmtsMissCoverMissing
apps
   exceptions.py471177%27, 33, 39–44, 50, 56–61, 67, 73, 79–80
apps/fyle
   actions.py124794%214, 263, 319–323
   constants.py10100% 
   helpers.py2351494%50–57, 66, 376, 470, 477–480, 483–484
   models.py3392194%321–323, 327–329, 333–335, 339–341, 345–347, 351–353, 414, 543–564, 587, 604
   queue.py500100% 
   serializers.py410100% 
   signals.py35683%22, 55–56, 69–71
   tasks.py5468784%132, 143–144, 147–148, 151–152, 174–175, 231–251, 263–268, 311–314, 339–343, 353–361, 400–410, 525–585, 906–910, 1048, 1059–1060, 1085–1086
   views.py1721591%84–91, 145, 245–246, 290–291, 316–320, 413–417
apps/internal
   actions.py39295%31–32
   helpers.py361364%18–35
   serializers.py300100% 
   tasks.py943266%36–40, 67–72, 117, 131–182
   views.py83199%39
apps/internal/services
   e2e_setup.py590100% 
   fixture_factory.py59395%218–220
apps/mappings
   constants.py20100% 
   exceptions.py71692%69–71, 79–81
   helpers.py86298%93, 163
   models.py500100% 
   schedules.py150100% 
   serializers.py100100% 
   signals.py1111487%90–92, 127, 179–184, 190–194, 200–203, 209–210
   tasks.py1792984%118–119, 142–143, 146, 210–227, 255, 258, 261, 267, 270, 276, 316–318, 329, 407
   utils.py340100% 
   views.py46491%34–35, 114–115
apps/sage_intacct
   actions.py29486%21–22, 49–50
   connector.py8471998%142, 318, 330, 336, 412, 1489, 1788, 1916–1917, 1984–1985, 2021–2022, 2052–2053, 2120–2121, 2156–2157
   dependent_fields.py2933987%348, 384–387, 416–425, 427–428, 430–432, 434–435, 437–438, 440–441, 491, 511, 551–553, 599–601, 649–655, 659–660
   enums.py250100% 
   helpers.py74396%61, 99, 153
   models.py9886793%78–79, 264–275, 405, 412, 456, 477–494, 567, 579, 629, 635, 670, 720–722, 736–749, 760, 796, 848–849, 949, 990, 1219, 1314–1317, 1361, 1363, 1455, 1559–1602, 1700, 1727, 1838, 2213–2215, 2277
   queue.py1711691%45, 53, 58, 105, 130–133, 173, 187, 205–208, 243, 267–270, 305, 330–333
   serializers.py350100% 
   tasks.py144014490%100, 114, 147, 185–186, 190–193, 195, 198, 248, 283–284, 404–405, 411, 414, 457–458, 499–504, 572, 578, 586, 765–766, 786–789, 860–861, 884, 899, 904, 909, 916, 922, 925–927, 930–933, 936–938, 966, 1019–1020, 1101–1102, 1106, 1127, 1161, 1261–1262, 1338–1339, 1341, 1496–1497, 1586–1587, 1590, 1611, 1626, 1632, 1638, 1645, 1651, 1654–1656, 1659–1662, 1665–1667, 1694, 1839, 1851–1860, 1902, 1905–1910, 1913–1917, 2086–2090, 2189–2190, 2396–2406, 2409, 2418–2423, 2457–2459, 2493–2496, 2564–2568, 2577, 2666–2671, 2684, 2699, 2714
   utils.py9103396%742–746, 891, 1210, 1226–1232, 1241–1242, 1983–1987, 2030–2034, 2077–2081, 2125–2129, 2199–2203, 2224, 2233, 2242, 2251–2252
   views.py1453377%127–129, 134–135, 141–142, 185–188, 258–288, 299–314, 327–331
apps/sage_intacct/errors
   errors.py20100% 
   helpers.py47198%80
apps/sage_intacct/exports
   ap_payments.py130100% 
   bills.py280100% 
   charge_card_transactions.py220100% 
   expense_reports.py280100% 
   helpers.py56296%68, 141
   journal_entries.py75889%180–183, 319–322
   reimbursements.py130100% 
apps/tasks
   models.py700100% 
   serializers.py60100% 
   views.py370100% 
apps/users
   helpers.py120100% 
   models.py530100% 
   views.py170100% 
apps/workspaces
   actions.py46980%65, 84–85, 103, 122–133, 147
   enums.py920100% 
   helpers.py80100% 
   models.py1760100% 
   permissions.py34974%33, 59–67
   serializers.py43198%54
   signals.py310100% 
   system_comments.py190100% 
   tasks.py175995%53–59, 187–194, 235, 267–268, 379
   utils.py90100% 
   views.py329997%110–112, 139–142, 702–703
apps/workspaces/apis/advanced_settings
   serializers.py80396%260, 263, 266
   triggers.py100100% 
   views.py110100% 
apps/workspaces/apis/errors
   serializers.py200100% 
   views.py150100% 
apps/workspaces/apis/export_settings
   helpers.py730100% 
   serializers.py103397%267, 270, 273
   triggers.py56296%33–34
   views.py110100% 
apps/workspaces/apis/import_settings
   serializers.py1411887%232–238, 243–249, 257–265, 283, 286, 314, 317–318, 326
   triggers.py47198%31
   views.py330100% 
fyle_integrations_imports
   dataclasses.py310100% 
   models.py230100% 
   queues.py34585%24, 99, 136, 148–149
   signals.py100100% 
   tasks.py1278136%69–111, 120–126, 139–208, 212–227, 252–255, 257, 259, 264
fyle_integrations_imports/modules
   base.py1881095%75, 91–92, 95, 126, 230–231, 237–238, 351
   categories.py1773381%80, 96, 99–100, 103–104, 272–273, 283, 296, 298, 342, 351–355, 364–410
   cost_centers.py961288%132–133, 152–153, 162, 178, 180, 226, 235–239
   expense_custom_fields.py121794%83–88, 247, 263, 265, 294
   merchants.py1062576%80–83, 111–129, 155–162, 179–180, 190, 203, 205, 235, 238–242
   projects.py1304764%88–91, 106–182, 202–203, 213, 237, 284, 298–302
   tax_groups.py180100% 
   webhook_attributes.py130695%98, 100–102, 213–214
workers
   actions.py210100% 
   helpers.py430100% 
   worker.py58395%79–80, 127
TOTAL1090592991% 

Tests Skipped Failures Errors Time
841 0 💤 0 ❌ 0 🔥 1m 12s ⏱️

@github-actions
Copy link


Diff Coverage
Diff: origin/master..HEAD, staged and unstaged changes

apps/sage_intacct/exports/journal_entries.py (100%)

Total: 1 line
Missing: 0 lines
Coverage: 100%

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 19, 2026

📝 Walkthrough

Walkthrough

The pull request modifies the journal entries export module to improve date handling. It introduces formatting of the journal entry date using a format_transaction_date function and applies this formatting to the postingDate field in the journal entry payload. The transaction date is computed earlier within the construct_journal_entry_payload function and reused for the postingDate assignment. Import statements are reorganized to include the new formatting function while maintaining existing helper imports. No changes are made to public API signatures.

Poem

📅 A date takes shape with format's grace,
Posting fields find their rightful place,
Imports align in harmonious code,
Transaction dates on a smoother road,
Five lines added, two fade away,
Journal entries brighter today ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request description is completely missing. The required template sections (Description and Clickup link) are not filled out. Add a description explaining what the posting date format issue was and how it was fixed. Include a Clickup link if available.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: fixing a posting date format error in journal entries.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/sage_intacct/exports/journal_entries.py`:
- Line 50: format_transaction_date will raise when passed None because it calls
.strftime; update the call site and/or the formatter to safely handle nullable
JournalEntry.transaction_date: check JournalEntry.transaction_date for None
before calling format_transaction_date (or modify format_transaction_date to
accept Optional[datetime] and return None/empty string when input is None), then
assign transaction_date accordingly so exports do not crash; reference symbols:
JournalEntry.transaction_date, format_transaction_date, and the local variable
transaction_date.

general_mappings=general_mappings
)

transaction_date = format_transaction_date(journal_entry.transaction_date)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find the JournalEntry model definition
fd -e py -x rg -l "class JournalEntry" {} \;

Repository: fylein/fyle-intacct-api

Length of output: 96


🏁 Script executed:

#!/bin/bash
# Search for transaction_date field definition in models
rg -n "transaction_date" --type py -B5 -A5

Repository: fylein/fyle-intacct-api

Length of output: 50379


🏁 Script executed:

#!/bin/bash
# Check the format_transaction_date function in helpers.py
cat -n apps/sage_intacct/exports/helpers.py

Repository: fylein/fyle-intacct-api

Length of output: 7234


format_transaction_date will crash if transaction_date is None.

The function has no guard against None input — it will raise AttributeError on None.strftime(...). Since JournalEntry.transaction_date is defined as nullable (DateTimeField(null=True)), this is a runtime crash waiting to happen on any export with a null transaction date.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/sage_intacct/exports/journal_entries.py` at line 50,
format_transaction_date will raise when passed None because it calls .strftime;
update the call site and/or the formatter to safely handle nullable
JournalEntry.transaction_date: check JournalEntry.transaction_date for None
before calling format_transaction_date (or modify format_transaction_date to
accept Optional[datetime] and return None/empty string when input is None), then
assign transaction_date accordingly so exports do not crash; reference symbols:
JournalEntry.transaction_date, format_transaction_date, and the local variable
transaction_date.

@Hrishabh17 Hrishabh17 merged commit a0067f4 into master Feb 19, 2026
7 checks passed
Hrishabh17 added a commit that referenced this pull request Feb 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XS Extra Small PR

Development

Successfully merging this pull request may close these issues.

2 participants