{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by younex1"
        }
      ]
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/main" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1540,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "ee00baffb3bdedf429d0fc708443e584b342cc05",
            "branch" : [
              {
                "SHA1" : "ee00baffb3bdedf429d0fc708443e584b342cc05",
                "name" : "refs/remotes/origin/main"
              }
            ]
          },
          "revision" : {
            "SHA1" : "ee00baffb3bdedf429d0fc708443e584b342cc05",
            "branch" : [
              {
                "SHA1" : "ee00baffb3bdedf429d0fc708443e584b342cc05",
                "name" : "refs/remotes/origin/main"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "ee00baffb3bdedf429d0fc708443e584b342cc05",
        "branch" : [
          {
            "SHA1" : "ee00baffb3bdedf429d0fc708443e584b342cc05",
            "name" : "refs/remotes/origin/main"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/younex1/erp-nuxt-frontend.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#1540",
  "duration" : 772121,
  "estimatedDuration" : 769306,
  "executor" : None,
  "fullDisplayName" : "erp-frontend-pipeline-production #1540",
  "id" : "1540",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 1540,
  "queueId" : 5754,
  "result" : "SUCCESS",
  "timestamp" : 1789902451558,
  "url" : "https://jenkins.younex.de/view/all/job/erp-frontend-pipeline-production/1540/",
  "builtOn" : "Application-Node-Production",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "server/utils/banking/camt052Parser.ts",
          ".gitignore",
          "package-lock.json",
          "app/components/accounting/banking/BankFileImportModal.vue",
          "package.json",
          "app/components/accounting/banking/BankImportTab.vue",
          "server/utils/banking/bankFileImport.ts",
          "server/api/accounting/bank-file-import/import.post.ts",
          "app/pages/accounting/banking/index.vue",
          "server/api/accounting/bank-file-import/preview.post.ts",
          "server/api/accounting/bank-reconciliation/statements.get.ts",
          "app/assets/langs/shared.js"
        ],
        "commitId" : "ae5839cc12876467da2bc3b4c76a80a5fdda2f70",
        "timestamp" : 1789902433000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Banking: manual CAMT.052 file import for periods before EBICS\u000a\u000aAdds \"Datei importieren (CAMT.052)\" to the Import tab of /accounting/banking:\u000aupload the online-banking export (ZIP or XML) -> dry-run preview -> chunked\u000aimport with progress. Nuxt-only, no Laravel staging: statements are created\u000aDrafted directly in iDempiere and appear in step 2 (reconcile).\u000a\u000a- camt052Parser: fflate + fast-xml-parser, ISO-8859-1 aware, camt.052/053 in\u000a  any .001.xx version; unpacks ZIPs completely (sub-folders, nested ZIPs,\u000a  extension-less XML, macOS resource forks ignored). The Volksbank export is\u000a  ONE report paginated over the whole period, so entries are split into one\u000a  statement per booking day with a derived balance chain (verified against the\u000a  daily closings of the MT940 export of the same period).\u000a- bankFileImport: duplicate detection by the bank reference (AcctSvcrRef <->\u000a  C_BankStatementLine.EftTrxID, the column the EBICS import fills), fallback\u000a  date+amount+memo multiset; foreign same-day statements are never modified\u000a  (conflict), own Drafted ones are resumed; balance-chain check against existing\u000a  iDempiere statements; plan recomputed live before every write.\u000a- Routes accounting/bank-file-import/{preview,import}; parsed uploads parked in\u000a  data/bank-file-import (git-ignored, 24 h), originals archived on import.\u000a- Reconcile statements list: $top 100 -> 500 (history imports).\u000a- fast-xml-parser declared as a direct dependency (was optional transitive).\u000a- MT940 / CSV / PDF deliberately unsupported (MT940 discontinued by DK 11/2025).\u000a- Translations banking_file_* (en/de/es); sample bank exports git-ignored.\u000a",
        "date" : "2026-09-20 13:07:13 +0200",
        "id" : "ae5839cc12876467da2bc3b4c76a80a5fdda2f70",
        "msg" : "Banking: manual CAMT.052 file import for periods before EBICS",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/pages/accounting/banking/index.vue"
          },
          {
            "editType" : "edit",
            "file" : ".gitignore"
          },
          {
            "editType" : "add",
            "file" : "server/api/accounting/bank-file-import/preview.post.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/accounting/banking/BankFileImportModal.vue"
          },
          {
            "editType" : "add",
            "file" : "server/utils/banking/bankFileImport.ts"
          },
          {
            "editType" : "edit",
            "file" : "package-lock.json"
          },
          {
            "editType" : "add",
            "file" : "server/api/accounting/bank-file-import/import.post.ts"
          },
          {
            "editType" : "edit",
            "file" : "server/api/accounting/bank-reconciliation/statements.get.ts"
          },
          {
            "editType" : "add",
            "file" : "server/utils/banking/camt052Parser.ts"
          },
          {
            "editType" : "edit",
            "file" : "package.json"
          },
          {
            "editType" : "edit",
            "file" : "app/assets/langs/shared.js"
          },
          {
            "editType" : "edit",
            "file" : "app/components/accounting/banking/BankImportTab.vue"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.younex.de/user/info",
      "fullName" : "info"
    }
  ]
}