{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
          "shortDescription" : "Started by timer"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/dev" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 747,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "9d56329a3b339ba5496fcdac4a29cea8fff0139b",
            "branch" : [
              {
                "SHA1" : "9d56329a3b339ba5496fcdac4a29cea8fff0139b",
                "name" : "refs/remotes/origin/dev"
              }
            ]
          },
          "revision" : {
            "SHA1" : "9d56329a3b339ba5496fcdac4a29cea8fff0139b",
            "branch" : [
              {
                "SHA1" : "9d56329a3b339ba5496fcdac4a29cea8fff0139b",
                "name" : "refs/remotes/origin/dev"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "9d56329a3b339ba5496fcdac4a29cea8fff0139b",
        "branch" : [
          {
            "SHA1" : "9d56329a3b339ba5496fcdac4a29cea8fff0139b",
            "name" : "refs/remotes/origin/dev"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/younex1/erp-nuxt-frontend.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : false,
  "description" : null,
  "displayName" : "#747",
  "duration" : 64719,
  "estimatedDuration" : 61503,
  "executor" : null,
  "fullDisplayName" : "build-logship-frontend #747",
  "id" : "747",
  "inProgress" : false,
  "keepLog" : false,
  "number" : 747,
  "queueId" : 5775,
  "result" : "SUCCESS",
  "timestamp" : 1790294400765,
  "url" : "https://jenkins.younex.de/job/build-logship-frontend/747/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "server/utils/offers/quotePdf.ts",
          "app/components/offers/QuoteModal.vue",
          "server/utils/offers/contractPdf.ts",
          "app/composables/useOfferQuote.ts",
          "app/components/offers/ContractModal.vue",
          "app/composables/useOfferContract.ts",
          "server/utils/offers/offerConditions.ts",
          "app/assets/langs/shared.js",
          "app/composables/useOfferForecast.ts"
        ],
        "commitId" : "5be26ff14e17d3694679c3009902801f42371b5b",
        "timestamp" : 1790244239000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Quote: shelf S + new shelf prices, optional cut-off time, return rate, sortable requirements\u000a\u000a- Storage: new Fachbodenregal S (30×60×40 cm, 3,50 €); M now 4,50 €, L 6,50 €\u000a  (list prices + floors). Saved pre-S quotes still on the old list prices\u000a  (3,50 / 5,50) are lifted to the new ones; negotiated prices stay.\u000a  S quantity in quote + contract modals, forecast and storage summaries.\u000a- Note under the storage table: one SKU per storage location.\u000a- Optional cut-off time (default off / 14:00): meta-card row + Hinweise\u000a  sentence; persisted in offer_conditions.quote.cutoff.\u000a- Annahmen: shows the return rate; \"Onboarding & Setupkosten\" without \"(IT-Support)\".\u000a- Customer requirements sortable (drag handle + up/down arrows).\u000a- Quote modal: form area fills the space between header and footer via a\u000a  flex chain instead of a fixed calc() height, so the bottom (Freitexte)\u000a  is no longer clipped.\u000a",
        "date" : "2026-09-24 12:03:59 +0200",
        "id" : "5be26ff14e17d3694679c3009902801f42371b5b",
        "msg" : "Quote: shelf S + new shelf prices, optional cut-off time, return rate, sortable requirements",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "server/utils/offers/quotePdf.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/assets/langs/shared.js"
          },
          {
            "editType" : "edit",
            "file" : "server/utils/offers/contractPdf.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/offers/QuoteModal.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/composables/useOfferQuote.ts"
          },
          {
            "editType" : "edit",
            "file" : "server/utils/offers/offerConditions.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/composables/useOfferForecast.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/offers/ContractModal.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/composables/useOfferContract.ts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "server/utils/telephony/cdr.ts"
        ],
        "commitId" : "189daa6d5a7ea9528f555367c392ca1a625889c8",
        "timestamp" : 1790253947000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Telephony: read PBX cdr.calldate as Europe/Berlin wall time (calls showed 2 h late)\u000a\u000aFreePBX/MariaDB (time_zone = SYSTEM = CEST) stores calldate as local wall\u000atime; the mysql2 pool read it with timezone 'Z', shifting every call on the\u000adashboard \"Letzte Anrufe\" card and in the call-recordings list by the Berlin\u000aoffset. DATETIME/TIMESTAMP columns are now converted via typeCast from\u000aBerlin wall time to the real instant (DST-safe; overridable via\u000aruntimeConfig.pbxCdr.timezone).\u000a",
        "date" : "2026-09-24 14:45:47 +0200",
        "id" : "189daa6d5a7ea9528f555367c392ca1a625889c8",
        "msg" : "Telephony: read PBX cdr.calldate as Europe/Berlin wall time (calls showed 2 h late)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "server/utils/telephony/cdr.ts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "server/api/payments/[id]/print/[type].get.ts"
        ],
        "commitId" : "2723fcd08c353fc77f0689ed13ac2bce3e20fc31",
        "timestamp" : 1790254618000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Payment print: expose the Jasper process export as reportFile for the PDF preview\u000a",
        "date" : "2026-09-24 14:56:58 +0200",
        "id" : "2723fcd08c353fc77f0689ed13ac2bce3e20fc31",
        "msg" : "Payment print: expose the Jasper process export as reportFile for the PDF preview",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "server/api/payments/[id]/print/[type].get.ts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/pages/index.vue",
          "app/components/requests/MyTicketDetail.vue"
        ],
        "commitId" : "9d56329a3b339ba5496fcdac4a29cea8fff0139b",
        "timestamp" : 1790259444000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/noreply",
          "fullName" : "noreply"
        },
        "authorEmail" : "noreply@anthropic.com",
        "comment" : "Dashboard/tickets: make the leads column and ticket detail usable on mobile\u000a\u000aThe dashboard's right column (latest leads, non-working-days calendar,\u000areturns, missing products) and the ticket detail's reference column were\u000a<aside> elements. public/css/styles.css styles every bare `aside` as the app\u000asidebar and, at <=991px, turns it into a fixed off-canvas drawer\u000a(translateX(-100%)), so both columns vanished on phones. They are plain\u000a<div>s now.\u000a\u000aDashboard ticket clicks on screens <=1024px open the full-page ticket route\u000adirectly instead of bouncing through the split-view list, and\u000aMyTicketDetail gets a phone layout: stacked toolbar with full-width action\u000abuttons, \"Weitere Aktionen\" as a bottom sheet, viewport-sized chat bubbles,\u000a16px composer font (no iOS focus zoom) and wrapping composer actions.\u000a",
        "date" : "2026-09-24 14:17:24 +0000",
        "id" : "9d56329a3b339ba5496fcdac4a29cea8fff0139b",
        "msg" : "Dashboard/tickets: make the leads column and ticket detail usable on mobile",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/requests/MyTicketDetail.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/index.vue"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.younex.de/user/noreply",
      "fullName" : "noreply"
    },
    {
      "absoluteUrl" : "https://jenkins.younex.de/user/info",
      "fullName" : "info"
    }
  ]
}