ErrorController
Request
GET Parameters
No GET parameters
POST Parameters
No POST parameters
Uploaded Files
No files were uploaded
Request Attributes
Key | Value |
---|---|
_controller | "error_controller" |
_links | Fig\Link\GenericLinkProvider {#7402 -links: [ "00000000779c47b1000000000f100361" => Fig\Link\Link {#7378 -href: "https://dev.app.pol-crm.com/api/docs.jsonld" -rel: [ "http://www.w3.org/ns/hydra/core#apiDocumentation" => true ] -attributes: [] } ] } |
_stopwatch_token | "78072d" |
exception | Twig\Error\RuntimeError {#7024 -lineno: 53 -name: "quote_pdf (string template bdbd82de5dd1d12da3fd1b29d6c5cb5e0417e847d1e165bc7afd226de96c353f)" -rawMessage: "An exception has been thrown during the rendering of a template ("HTTP/1.1 500 Internal Server Error returned for "http://dev.pol-api-ged.pol-crm.com/api/customer_resource/download/8181224a818c4943a537b3d883d6746e".")." -sourcePath: "" -sourceCode: """ {% set quoteAddress = '' %}\n {% set quoteCity = '' %}\n {% set quotePostalCode = '' %}\n {% set quoteBuildingName = '' %}\n {% set quoteOfferType = '' %}\n {% set quoteMissionType = '' %}\n {% set quoteAgency = '' %}\n {% set quoteEntity = '' %}\n \n {% for specificField in quote.specificFields|default([]) %}\n {% if specificField.fieldName == "Adresse" %}\n {% set quoteAddress = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Ville" %}\n {% set quoteCity = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Code postal" %}\n {% set quotePostalCode = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Nom du bâtiment" %}\n {% set quoteBuildingName = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Type d'offre" %}\n {% set quoteOfferType = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Type de mission" %}\n {% set quoteMissionType = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Agence" %}\n {% set quoteAgency = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Entite" %}\n {% set quoteEntity = specificField.value|default('') %}\n {% endif %}\n {% endfor %}\n \n {% set agencyCity = '' %}\n \n {% if quoteAgency|upper == "AGA" %}\n {% set agencyCity = "Annecy" %}\n {% elseif quoteAgency|upper == "AGG" or quoteAgency|upper == "RVI" %}\n {% set agencyCity = "Grenoble" %}\n {% elseif quoteAgency|upper == "AGC" or quoteAgency|upper == "AGB" %}\n {% set agencyCity = "Chambéry" %}\n {% elseif quoteAgency|upper == "AGV" %}\n {% set agencyCity = "Vienne" %}\n {% elseif quoteAgency|upper == "AGL" %}\n {% set agencyCity = "Villeurbanne" %}\n {% elseif quoteAgency|upper == "AGS" %}\n {% set agencyCity = "Sallanches" %}\n {% endif %}\n \n {% set logoImg = gedImageByPath('CHARTE GRAPHIQUE/' ~ quoteAgency ~ '/' ~ quoteEntity ~ '/logo.png') %}\n {% set footerImg = gedImageByPath('CHARTE GRAPHIQUE/' ~ quoteAgency ~ '/' ~ quoteEntity ~ '/footer.png') %}\n \n <!DOCTYPE html>\n <html>\n <head>\n <meta charset="UTF-8">\n </head>\n <body>\n {# All styles must be in CSS2 #}\n <style>\n @page {\n margin: 5cm 1cm 2.5cm 1cm;\n }\n \n html {\n font-size: 14px;\n font-family: Arial, sans-serif;\n color: #545454;\n }\n \n p {\n line-height: 1.3;\n margin: unset;\n }\n \n h1,\n h2,\n h3 {\n text-align: center;\n background: #0f243e;\n padding: 0.5rem;\n color: #fff;\n }\n \n h1 {\n font-size: 1.4rem;\n }\n \n h2 {\n font-size: 1.1rem;\n }\n \n h3 {\n padding-top: 0.3rem;\n padding-bottom: 0.3rem;\n font-size: 0.9rem;\n }\n \n .break-before {\n page-break-before: always;\n }\n \n .break-after {\n page-break-after: always;\n }\n \n .underline {\n text-decoration: underline;\n }\n \n .pdf-template__header {\n position: fixed;\n z-index: -2;\n top: -4cm;\n left: 0;\n right: 0;\n height: 4cm;\n }\n \n .pdf-template__header > div {\n display: inline-block;\n vertical-align: middle;\n }\n \n .pdf-template__header > div:first-child {\n width: 35%;\n }\n \n .pdf-template__header > div:last-child {\n width: 64%;\n text-align: right;\n font-size: 0.8rem;\n }\n \n .pdf-template__header img {\n height: 100%;\n object-fit: contain;\n }\n \n .pdf-template__footer {\n position: fixed;\n left: -1cm;\n right: -1cm;\n bottom: -2.5cm;\n height: 2.5cm;\n }\n \n .pdf-template__footer img {\n max-height: 2.5cm;\n width: 100%;\n object-fit: contain;\n }\n \n .pdf-template__footer .page__number {\n position: absolute;\n z-index: 1;\n right: 0.5rem;\n bottom: 0.5rem;\n font-size: 0.7rem;\n }\n \n .pdf-template__footer .page__number:after {\n content: counter(page, decimal);\n }\n \n .pdf-template__body {\n margin-top: 3.5cm;\n }\n \n .block-header-first-page {\n position: absolute;\n top: -5cm;\n padding-top: 1cm;\n left: 0;\n right: 0;\n background: #fff;\n }\n \n .block-header-first-page:after {\n content: "";\n display: table;\n clear: both;\n }\n \n .block-logo-first-page img {\n height: 5cm;\n max-width: 8cm;\n object-fit: contain;\n }\n \n .block-header-first-page .block-logo-first-page,\n .block-header-first-page .block-sender {\n float: left;\n width: 50%;\n }\n \n .block-header-first-page .block-sender {\n margin-top: 3.5cm;\n font-weight: bold;\n }\n \n .block-header-first-page .block-sender p {\n line-height: 1.2;\n }\n \n .block-city-date {\n display: inline-block;\n margin-left: 50%;\n margin-bottom: 2rem;\n }\n \n .block-receiver {\n margin-bottom: 3rem;\n }\n \n .block-receiver p {\n line-height: 1.1;\n }\n \n .block-description p {\n line-height: 3;\n }\n \n .block-signature {\n margin-top: 2rem;\n margin-left: 60%;\n font-size: 0.85rem;\n }\n \n .block-table {\n margin-top: 3rem;\n margin-bottom: 3rem;\n }\n \n .block-table table {\n width: 100%;\n border-collapse: collapse;\n page-break-inside: avoid;\n }\n \n .table__price {\n text-align: right;\n }\n \n .block-table table th,\n .block-table table td {\n border: 1px solid #545454;\n padding: 0.25rem 0.4rem;\n page-break-inside: auto;\n }\n \n .block-table table th {\n font-weight: normal;\n white-space: nowrap;\n }\n \n .block-table table th:first-child {\n border-top: none;\n border-left: none;\n }\n \n .block-table table th:last-child {\n background: #ececec;\n color: #545454;\n width: 25%;\n }\n \n .block-table table td {\n text-align: right;\n font-size: 0.9rem;\n }\n \n .block-table table td:first-child {\n text-align: left;\n }\n \n .block-table-full {\n margin-top: 2rem;\n margin-bottom: 2rem;\n }\n \n .block-table-full table {\n page-break-inside: avoid;\n width: 100%;\n border-collapse: collapse;\n }\n \n .block-table-full table th,\n .block-table-full table td {\n border: 1px solid #545454;\n padding: 0.25rem 0.4rem;\n }\n \n .block-table-full table td {\n text-align: right;\n }\n \n .block-table-full table td:first-child {\n text-align: left;\n }\n \n .block-table-full table tfoot td:first-child {\n text-align: right;\n padding: unset;\n }\n \n .block-table-full table tfoot td:first-child > span {\n background: #d9d9d9;\n padding: 0.25rem 0.4rem;\n }\n \n .block-table-full table th {\n white-space: nowrap;\n }\n \n .block-table-full table tr:first-of-type th:last-child {\n background: #d9d9d9;\n color: #545454;\n }\n \n .raw-render {\n line-height: 1;\n text-align: justify;\n }\n \n .small {\n font-size: 0.85rem;\n }\n \n .linethrough {\n text-decoration: line-through;\n }\n \n .block-two-columns {\n margin-top: 3rem;\n margin-bottom: 3rem;\n }\n \n .block-two-columns > div {\n display: inline-block;\n vertical-align: top;\n word-break: break-all;\n }\n \n .block-two-columns > div:first-child {\n width: 38%;\n }\n \n .block-index-table table {\n width: 100%;\n border-collapse: collapse;\n }\n \n .block-index-table table th,\n .block-index-table table td {\n border: 1px solid #545454;\n padding: 0.25rem 0.4rem;\n text-align: center;\n }\n \n .block-index-table table th:last-child,\n .block-index-table table td:last-child {\n text-align: left;\n }\n \n .block-observations,\n .block-conditions {\n page-break-inside: auto;\n }\n \n .block-conditions {\n margin-top: 3rem;\n }\n \n .block-quote-signature {\n margin-top: 2rem;\n margin-left: 20%;\n }\n \n .block-agreement {\n page-break-inside: avoid;\n margin-top: 3rem;\n border: 2px solid #545454;\n padding: 0 1rem;\n }\n \n .block-agreement > div {\n margin-bottom: 7rem;\n }\n \n .block-agreement .block-two-columns > div:first-child {\n width: 45%;\n }\n \n .block-agreement > p:last-of-type {\n margin-bottom: 8rem;\n }\n \n .row-wrap:empty {\n display: none;\n }\n \n .row-wrap {\n min-height: 6rem;\n padding-top: 1.5rem;\n padding-bottom: 1rem;\n vertical-align: middle;\n font-weight: bold;\n }\n \n .row-wrap .item {\n display: inline-block;\n height: 6rem;\n line-height: 6rem;\n vertical-align: middle;\n width: auto;\n margin-right: 1.5rem;\n margin-bottom: 1.5rem;\n }\n \n .row-wrap .item:last-child {\n margin-right: 0;\n }\n </style>\n \n <header class="pdf-template__header">\n <div>\n <img src="{{ logoImg|default('') }}" alt="logo">\n </div>\n <div>\n <p><b>PROPOSITION D'HONORAIRES</b></p>\n <p>{{ quoteBuildingName|upper }}</p>\n <p><b>{{ quoteMissionType }}</b></p>\n </div>\n </header>\n \n <footer class="pdf-template__footer">\n <img src="{{ footerImg|default('') }}" alt="footer">\n <span class="page__number">Page </span>\n </footer>\n \n <div class="pdf-template__body">\n <div class="block-header-first-page">\n <div class="block-logo-first-page">\n <img src="{{ logoImg|default('') }}" alt="logo">\n </div>\n <div class="block-sender">\n <p>{{ quote.prospect.fullName|default('') }}</p>\n <p>À l'attention de {{ quote.contactIdRealName|default('') }}</p>\n {% if quote.prospect.contact.mainAddress.address is defined or quote.prospect.contact.mainAddress.city is defined or quote.prospect.contact.mainAddress.postalCode is defined %}\n <p>{{ quote.prospect.contact.mainAddress.address|default('') }}</p>\n <p>{{ quote.prospect.contact.mainAddress.postalCode|default('') }} {{ quote.prospect.contact.mainAddress.city|default('') }}</p>\n {% endif %}\n </div>\n </div>\n <div class="block-city-date">\n <p>{{ agencyCity|length > 0 ? agencyCity ~ ', le' : 'Le' }} {{ 'now'|date('d/m/Y') }}</p>\n </div>\n <div class="block-receiver">\n <p>{{ quoteBuildingName|upper }}</p>\n <p>{{ quoteAddress }}</p>\n <p>{{ quotePostalCode }} {{ quoteCity }}</p>\n <p><b>{{ quoteMissionType }}</b></p>\n </div>\n <div class="block-description">\n {% set civility = 'Madame, Monsieur' %}\n {% if contactConcerned is defined %}\n {% set civility = contactConcerned.civility.value|default('Madame, Monsieur') %}\n {% endif %}\n <p>{{ civility }},</p>\n <br>\n <p>Pour faire suite à votre demande, nous avons le plaisir de vous adresser notre proposition d'honoraires.</p>\n <p>Nous restons à votre disposition pour vous apporter toutes précisions utiles.</p>\n <p>Nous vous prions d'agréer, {{ civility }}, nos respectueuses salutations.</p>\n </div>\n <div class="block-signature break-after">\n <div>\n <p><b>{{ managedBy.fullname|default('') }}</b></p>\n <p><em>{{ managedBy.job|default('') }}</em></p>\n </div>\n </div>\n \n {# ---- PAGE BREAK ---- #}\n \n {% set coContractors = [] %}\n {% for sectionName, quoteLines in quoteLinesBySection|default([]) %}\n {% for quoteLine in quoteLines|default([]) %}\n {% if quoteLine.quoteLineInfo.product.categories|length > 0 %}\n {% set isObservationProduct = false %}\n {% for category in quoteLine.quoteLineInfo.product.categories %}\n {% if category.id == "eb31972e5c9a4702877fb7014a26fa6d" %}\n {% set isObservationProduct = true %}\n {% endif %}\n {% endfor %}\n {% if isObservationProduct and quoteLine.description|default('')|length > 0 %}\n <div class="block-observations">\n <div class="raw-render small">\n {{ quoteLine.description|raw }}\n </div>\n </div>\n {% endif %}\n {% endif %}\n {% endfor %}\n \n {% set sectionName = sectionName|split('|') %}\n {% if sectionName[1] is defined %}\n {% set sectionName = sectionName[1] %}\n {% else %}\n {% set sectionName = sectionName[0] %}\n {% endif %}\n \n {% if sectionName|lower != 'default' %}\n {# si la première lettre de sectionName est un a, e, i, o, u, y, h, on met l'apostrophe #}\n {% set elision = sectionName|slice(0, 1)|lower in ['a', 'e', 'i', 'o', 'u', 'y', 'h'] ? "D'" : "DE " %}\n <h2>PHASE {{ elision ~ sectionName|upper }} de votre projet</h2>\n {% endif %}\n \n {% for quoteLine in quoteLines|default([]) %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = false %}\n {% if quoteLine.isOptional and quoteLine.quoteLineInfo.product is defined %}\n {% set isOptionalProduct = true %}\n {% for specificField in quoteLine.quoteLineInfo.product.specificFields %}\n {% if specificField.fieldId == "7100aa47620a4eb29180c4611e71616d" and specificField.value == "1" %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% set isObservationProduct = false %}\n {% if quoteLine.quoteLineInfo.product.categories is defined and quoteLine.quoteLineInfo.product.categories|default([])|length > 0 %}\n {% for category in quoteLine.quoteLineInfo.product.categories %}\n {% if category.id == "eb31972e5c9a4702877fb7014a26fa6d" %}\n {% set isObservationProduct = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% if not isOptionalProduct and not isObservationProduct %}\n {% set splittedName = quoteLine.name|default('')|split('% ') %}\n {% if quoteLine.quoteLineInfo.quoteLineInfoProductAttributes is defined %}\n {% set currentCoContractor = null %}\n {% set currentCoContractorIndex = 0 %}\n {% for productAttribute in quoteLine.quoteLineInfo.quoteLineInfoProductAttributes %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Nombre de jours' and productAttribute.value > 0 and productAttribute.productAttribute.groupCode not in coContractors %}\n {% set coContractors = coContractors|merge([productAttribute.productAttribute.groupCode]) %}\n {% endif %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Nom entreprise' and productAttribute.value is not null and productAttribute.value not in coContractors %}\n {% set currentCoContractor = productAttribute.value %}\n {% set currentCoContractorIndex = productAttribute.productAttributeLabel|split('|')[1] %}\n {% endif %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Co-traitant' and productAttribute.value == 'true' and currentCoContractorIndex == productAttribute.productAttributeLabel|split('|')[1] %}\n {% set coContractors = coContractors|merge([currentCoContractor]) %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n <div class="block-table">\n <table>\n <thead>\n <tr>\n <th></th>\n <th>Montant HT</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <p><b>{{ quoteLine.comment|default('')|raw|nl2br }}</b></p>\n </td>\n <td>\n <div class="table__price">\n {% if isQuotePart and splittedName|length > 1 %}\n {{ splittedName[0] }}% du montant HT des travaux\n {% else %}\n {% if quoteLine.discountAmount > 0 %}\n <p class="small linethrough">\n {{ quoteLine.totalExclDiscountAndVat|default(0)|number_format(2, ',', ' ') }} €\n </p>\n {% endif %}\n {{ quoteLine.totalExclVat|default(0)|number_format(2, ',', ' ') }} €\n {% endif %}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class="raw-render small">\n {{ quoteLine.description|default('')|raw }}\n </div>\n </div>\n {% endif %}\n {% endfor %}\n \n {% set hasOptionalProduct = false %}\n {% for quoteLine in quoteLines|default([]) %}\n {% set rowIsPercentage = false %}\n {% for specificField in quoteLine.quoteLineInfo.product.specificFields|default({}) %}\n {% if specificField.fieldId == "7100aa47620a4eb29180c4611e71616d" and specificField.value == "1" %} {# Article de surcôte (attributs en %) #}\n {% set rowIsPercentage = true %}\n {% endif %}\n {% endfor %}\n \n {% if not rowIsPercentage and quoteLine.isOptional and quoteLine.quoteLineInfo.product is defined %}\n {% set hasOptionalProduct = true %}\n {% endif %}\n {% endfor %}\n \n <div class="block-table-full {{ hasOptionalProduct ? '' : 'break-after' }}">\n <table>\n <thead>\n <tr>\n <th colspan="5">\n {{ sectionName|lower != 'default' ? sectionName ~ ' -' : '' }} Total des honoraires - Options\n non comprises\n </th>\n </tr>\n <tr>\n <th>Mission</th>\n <th>MONTANT HT</th>\n <th>Montant TVA</th>\n <th>Taux TVA</th>\n <th>MONTANT TTC</th>\n </tr>\n </thead>\n <tbody>\n {% set totalExclVat = 0 %}\n {% set totalVat = 0 %}\n {% for quoteLine in quoteLines|default([]) %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = false %}\n {% if quoteLine.isOptional and quoteLine.quoteLineInfo.product is defined %}\n {% set isOptionalProduct = true %}\n {% for specificField in quoteLine.quoteLineInfo.product.specificFields %}\n {% if specificField.fieldId == "7100aa47620a4eb29180c4611e71616d" and specificField.value == "1" %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% set isObservationProduct = false %}\n {% if quoteLine.quoteLineInfo.product.categories is defined and quoteLine.quoteLineInfo.product.categories|default([])|length > 0 %}\n {% for category in quoteLine.quoteLineInfo.product.categories %}\n {% if category.id == "eb31972e5c9a4702877fb7014a26fa6d" %}\n {% set isObservationProduct = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n {% if not isOptionalProduct and not isObservationProduct %}\n {% set totalExclVat = totalExclVat + quoteLine.totalExclVat|default(0) %}\n {% set totalVat = isQuotePart ? totalVat : totalVat + quoteLine.total|default(0) %}\n {% set splittedName = quoteLine.name|default('')|split('% ') %}\n <tr>\n <td>\n {{ quoteLine.comment|default('')|raw|nl2br }}\n </td>\n <td>\n {% if isQuotePart and splittedName|length > 1 %}\n {{ splittedName[0] }}% du montant HT des travaux\n {% else %}\n {{ quoteLine.totalExclVat|default(0)|number_format(2, ',', ' ') }} €\n {% endif %}\n </td>\n <td>\n {% if not isQuotePart %}\n {{ quoteLine.vatAmount|default(0)|number_format(2, ',', ' ') }} €\n {% endif %}\n </td>\n <td>\n {% if not isQuotePart %}\n {{ quoteLine.vatRate|default('') }}\n {% endif %}\n </td>\n <td>\n {% if not isQuotePart %}\n {{ quoteLine.total|default(0)|number_format(2, ',', ' ') }} €\n {% endif %}\n </td>\n </tr>\n {% endif %}\n {% endfor %}\n </tbody>\n {% if totalVat > 0 %}\n <tfoot>\n <tr>\n <td colspan="4">\n <span>TOTAL</span>\n </td>\n <td>{{ totalVat|number_format(2, ',', ' ') }} €</td>\n </tr>\n </tfoot>\n {% endif %}\n </table>\n </div>\n \n {% if hasOptionalProduct %}\n <h3 class="break-before">OPTIONS de votre projet</h3>\n {% for quoteLine in quoteLines|default([]) %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = false %}\n {% if quoteLine.isOptional and quoteLine.quoteLineInfo.product is defined %}\n {% set isOptionalProduct = true %}\n {% for specificField in quoteLine.quoteLineInfo.product.specificFields %}\n {% if specificField.fieldId == "7100aa47620a4eb29180c4611e71616d" and specificField.value == "1" %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% set isObservationProduct = false %}\n {% if quoteLine.quoteLineInfo.product.categories is defined and quoteLine.quoteLineInfo.product.categories|default([])|length > 0 %}\n {% for category in quoteLine.quoteLineInfo.product.categories %}\n {% if category.id == "eb31972e5c9a4702877fb7014a26fa6d" %}\n {% set isObservationProduct = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% if isOptionalProduct and not isObservationProduct %}\n {% set splittedName = quoteLine.name|default('')|split('% ') %}\n {% if quoteLine.quoteLineInfo.quoteLineInfoProductAttributes is defined %}\n {% set currentCoContractor = null %}\n {% set currentCoContractorIndex = 0 %}\n {% for productAttribute in quoteLine.quoteLineInfo.quoteLineInfoProductAttributes %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Nombre de jours' and productAttribute.value > 0 and productAttribute.productAttribute.groupCode not in coContractors %}\n {% set coContractors = coContractors|merge([productAttribute.productAttribute.groupCode]) %}\n {% endif %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Nom entreprise' and productAttribute.value is not null and productAttribute.value not in coContractors %}\n {% set currentCoContractor = productAttribute.value %}\n {% set currentCoContractorIndex = productAttribute.productAttributeLabel|split('|')[1] %}\n {% endif %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Co-traitant' and productAttribute.value == 'true' and currentCoContractorIndex == productAttribute.productAttributeLabel|split('|')[1] %}\n {% set coContractors = coContractors|merge([currentCoContractor]) %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n <div class="block-table">\n <table>\n <thead>\n <tr>\n <th></th>\n <th>Montant HT</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <p><b>{{ quoteLine.comment|default('')|raw|nl2br }}</b></p>\n </td>\n <td>\n <div class="table__price">\n {% if isQuotePart and splittedName|length > 1 %}\n {{ splittedName[0] }}% du montant HT des travaux\n {% else %}\n {% if quoteLine.discountAmount > 0 %}\n <p class="small linethrough">\n {{ quoteLine.totalExclDiscountAndVat|default(0)|number_format(2, ',', ' ') }} €\n </p>\n {% endif %}\n {{ quoteLine.totalExclVat|default(0)|number_format(2, ',', ' ') }} €\n {% endif %}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class="raw-render small">\n {{ quoteLine.description|default('')|raw }}\n </div>\n </div>\n {% endif %}\n {% endfor %}\n \n <div class="block-table-full break-after">\n <table>\n <thead>\n <tr>\n <th colspan="5">\n {{ sectionName|lower != 'default' ? sectionName ~ ' -' : '' }} Total des options\n </th>\n </tr>\n <tr>\n <th>Mission</th>\n <th>MONTANT HT</th>\n <th>Montant TVA</th>\n <th>Taux TVA</th>\n <th>MONTANT TTC</th>\n </tr>\n </thead>\n <tbody>\n {% set totalExclVat = 0 %}\n {% set totalVat = 0 %}\n {% for quoteLine in quoteLines|default([]) %}\n {% set isOptionalProduct = false %}\n {% if quoteLine.isOptional and quoteLine.quoteLineInfo.product is defined %}\n {% set isOptionalProduct = true %}\n {% for specificField in quoteLine.quoteLineInfo.product.specificFields %}\n {% if specificField.fieldId == "7100aa47620a4eb29180c4611e71616d" and specificField.value == "1" %}\n {% set isOptionalProduct = false %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% set isObservationProduct = false %}\n {% if quoteLine.quoteLineInfo.product.categories is defined and quoteLine.quoteLineInfo.product.categories|default([])|length > 0 %}\n {% for category in quoteLine.quoteLineInfo.product.categories %}\n {% if category.id == "eb31972e5c9a4702877fb7014a26fa6d" %}\n {% set isObservationProduct = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n {% if isOptionalProduct and not isObservationProduct %}\n {% set totalExclVat = totalExclVat + quoteLine.totalExclVat|default(0) %}\n {% set totalVat = totalVat + quoteLine.total|default(0) %}\n <tr>\n <td>{{ quoteLine.comment|default('')|raw|nl2br }}</td>\n <td>{{ quoteLine.totalExclVat|default(0)|number_format(2, ',', ' ') }} €</td>\n <td>\n {{ quoteLine.vatAmount|default(0)|number_format(2, ',', ' ') }} €\n </td>\n <td>{{ quoteLine.vatRate|default('') }}</td>\n <td>{{ quoteLine.total|default(0)|number_format(2, ',', ' ') }} €</td>\n </tr>\n {% endif %}\n {% endfor %}\n </tbody>\n {% if totalVat > 0 %}\n <tfoot>\n <tr>\n <td colspan="4">\n <span>TOTAL</span>\n </td>\n <td>{{ totalVat|number_format(2, ',', ' ') }} €</td>\n </tr>\n </tfoot>\n {% endif %}\n </table>\n </div>\n {% endif %}\n {% endfor %}\n \n {# ---- PAGE BREAK ---- #}\n \n <div class="block-quote-signature">\n <p>{{ agencyCity|length > 0 ? agencyCity ~ ', le' : 'Le' }} {{ 'now'|date('d/m/Y') }}</p>\n </div>\n <div class="block-agreement break-after">\n <div class="block-two-columns">\n <div>\n <p><b>BON POUR ACCORD le ........../........../..........</b></p>\n </div>\n <div>\n <p>\n <em>Le Maître d'Ouvrage ou son Représentant</em>\n <br>\n <em>Signature et cachet :</em>\n </p>\n </div>\n </div>\n <p>Décision quant à l'option chiffrée : VALIDÉE / NON VALIDÉE</p>\n <p>Observations éventuelles :</p>\n </div>\n \n {# ---- PAGE BREAK ---- #}\n \n <div class="block-conditions">\n <p class="underline"><b>CONDITIONS :</b></p>\n <br>\n {% if coContractors|length > 0 %}\n <p><b class="underline small">Membres du groupement concernés par cette mission :</b></p>\n <br>\n <div class="row-wrap">{% for coContractor in coContractors %} {# Ne pas mettre for à la ligne pour éviter les espaces interne et que :empty fonctionne #}\n {% set imgCoContractor = gedImageByPath('CHARTE GRAPHIQUE/CO-TRAITANTS/' ~ coContractor ~ '.png')|default('') %}\n {% if imgCoContractor|length > 0 %}\n <img class="item" height="6rem" width="auto" src="{{ imgCoContractor }}"\n alt="logo {{ coContractor }}">\n {% else %}\n <p class="item">{{ coContractor }}</p>\n {% endif %}\n {% endfor %}</div>\n {% endif %}\n <br>\n <div class="raw-render small">\n {{ quote.terms|default('')|raw }}\n </div>\n </div>\n </div>\n </body>\n </html> """ #message: "An exception has been thrown during the rendering of a template ("HTTP/1.1 500 Internal Server Error returned for "http://dev.pol-api-ged.pol-crm.com/api/customer_resource/download/8181224a818c4943a537b3d883d6746e".") in "quote_pdf (string template bdbd82de5dd1d12da3fd1b29d6c5cb5e0417e847d1e165bc7afd226de96c353f)" at line 53." #code: 0 #file: "/var/www/vhosts/app.pol-crm.com/httpdocs/app-pol-crm/dev/releases/20251009101152/application/vendor/twig/twig/src/Template.php" #line: 419 -previous: Symfony\Component\HttpClient\Exception\ServerException {#7673 …} : { { Twig\Template->displayWithErrorHandling(array $context, array $blocks = []) … › |
logger | Symfony\Bridge\Monolog\Logger {#1519 #name: "request" #handlers: [ Monolog\Handler\RotatingFileHandler {#1505 #filename: "/var/www/vhosts/app.pol-crm.com/httpdocs/app-pol-crm/dev/shared/application/var/log/dev.log" #maxFiles: 14 #mustRotate: false #nextRotation: DateTime @1760652000 {#1506 : 2025-10-17 00:00:00.0 Europe/Paris (+02:00) } #filenameFormat: "{filename}-{date}" #dateFormat: "Y-m-d" #stream: stream resource @2436 : false : true : false : "plainfile" : "STDIO" : "a" : 0 : true : "/var/www/vhosts/app.pol-crm.com/httpdocs/app-pol-crm/dev/shared/application/var/log/dev-2025-10-16.log" : [] } #url: "/var/www/vhosts/app.pol-crm.com/httpdocs/app-pol-crm/dev/shared/application/var/log/dev-2025-10-16.log" -errorMessage: null #filePermission: null #useLocking: false -dirCreated: true #level: 100 #bubble: true #formatter: Monolog\Formatter\LineFormatter {#388 …} #processors: [ Monolog\Processor\PsrLogMessageProcessor {#1690} ] } Symfony\Bridge\Monolog\Handler\ConsoleHandler {#1518 -output: null -verbosityLevelMap: [ 16 => 400 32 => 300 64 => 250 128 => 200 256 => 100 ] -consoleFormaterOptions: [] #level: 100 #bubble: true #formatter: null #processors: [] } Monolog\Handler\FingersCrossedHandler {#1696 #handler: Monolog\Handler\BufferHandler {#1687 …} #activationStrategy: Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy {#1650 …} #buffering: false #bufferSize: 0 #buffer: [] #stopBuffering: true #passthruLevel: null #level: 100 #bubble: true #formatter: null #processors: [] } ] #processors: [ App\Service\Monolog\ELKProcessor {#1701 -applicationName: "pol-middleware" -applicationEnvironment: "dev" } Symfony\Bridge\Monolog\Processor\DebugProcessor {#1689 -records: [ "00000000779c5b54000000000f100361" => [ [ "timestamp" => 1760623467 "message" => "Matched route "{route}"." "priority" => 200 "priorityName" => "INFO" "context" => [ "route" => "quote_generate_pdf" "route_parameters" => [ "_route" => "quote_generate_pdf" "_controller" => "App\Controller\Quote\QuoteController::generateQuotePdf" "id" => "753d0f24880b40db9a45aa5fe5f480d0" ] "request_uri" => "https://dev.app.pol-crm.com/api/quote/753d0f24880b40db9a45aa5fe5f480d0/generatepdf" "method" => "POST" ] "channel" => "request" ] [ "timestamp" => 1760623467 "message" => "Checking for guard authentication credentials." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "firewall_key" => "api" "authenticators" => 1 ] "channel" => "security" ] [ "timestamp" => 1760623467 "message" => "Checking support on guard authenticator." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "firewall_key" => "api" "authenticator" => "App\Security\JWTTokenWhitelistAuthenticator" ] "channel" => "security" ] [ "timestamp" => 1760623467 "message" => "Calling getCredentials() on guard authenticator." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "firewall_key" => "api" "authenticator" => "App\Security\JWTTokenWhitelistAuthenticator" ] "channel" => "security" ] [ "timestamp" => 1760623467 "message" => "Passing guard token information to the GuardAuthenticationProvider" "priority" => 100 "priorityName" => "DEBUG" "context" => [ "firewall_key" => "api" "authenticator" => "App\Security\JWTTokenWhitelistAuthenticator" ] "channel" => "security" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "lexik_jwt_authentication.on_jwt_authenticated" "listener" => "App\V4\EventSubscriber\PreventMultipleLoginsEventSubscriber::onJWTAuthenticated" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Guard authentication successful!" "priority" => 200 "priorityName" => "INFO" "context" => [ "token" => Lexik\Bundle\JWTAuthenticationBundle\Security\Authentication\Token\JWTUserToken {#494 #rawToken: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE3NjA2MjM0MDIsImV4cCI6MTc2MDYyNzAwMiwicm9sZXMiOlsiUk9MRV9VU0VSIiwiUk9MRV9TVVBFUkFETUlOIiwiUk9MRV9BRE1JTiIsIlJPTEVfTU9EVUxFX01JQ1JPU09GVF9HUkFQSCIsIlJPTEVfTU9EVUxFX1BST0RVQ1QiLCJST0xFX01PRFVMRV9QUk9EVUNUX0NVU1RPTUlaRSIsIlJPTEVfTU9EVUxFX1FVT1RFX0xJTkUiLCJQUk9TUEVDVF9TSE9XIiwiUFJPU1BFQ1RfQ1VEIiwiQ09OVEFDVF9DVUQiLCJDT05UQUNUX1NIT1ciLCJUQVNLX1NIT1ciLCJUQVNLX0NVRCIsIlFVT1RFX1NIT1ciLCJRVU9URV9DVUQiLCJRVU9URV9SRUdFTkVSQVRFX1BSSUNFUyJdLCJsb2dpbiI6ImRlbW9wbGVuZXR1ZGUiLCJ1c2VyX2lkIjoiMWFlYjFiMDg5ZDE0NDM1NzhmM2QyZWNhMWY2YWJlYWYiLCJ1c2VyX2V4dGVybmFsX2lkIjoiMTY1MTc1NjUwMCIsImVtYWlsIjoiZ2VzdGlvbkFPc2FsbGFuY2hlc0Bncm91cGUtcGxlbmV0dWRlLmZyIiwiY3VzdG9tZXJfaWQiOiJlODkxOWRiYzAxZjM0Zjc5YWIyMmI5YzQzNGYxMTRlYiIsImN1c3RvbWVyX25hbWUiOiJHcm91cGUgUGzDqW7DqXR1ZGUiLCJjdXN0b21lcl9leHRlcm5hbF9pZCI6IjE2NDQ1OTM0OTciLCJjdXN0b21lcl9tYWlsaW5nX2lkIjoiMjU0IiwiZmlyc3RuYW1lIjoiR3VpbGxhdW1lIiwibGFzdG5hbWUiOiJTQVVUUk9OIiwibGl2ZW9Mb2dpbiI6bnVsbCwibGl2ZW9QYXNzd29yZCI6bnVsbCwiaGFzSW50cmFuZXQiOmZhbHNlLCJsYW5ndWFnZSI6IkZSIiwic2VjdGlvbnNfbGVhZGVkIjpbIkFHQiIsIkFHQiAtIFBMRU5FVFVERSIsIkFHQiAtIFBST0xZU0UiLCJBR0IgLSBQRVhJTiIsIkFHQiAtIFBFR0lNRSIsIkFHQiAtIFBSSU9TVVIiLCJEaXJlY3Rpb24gR8OpbsOpcmFsZSIsIkFHRyIsIkFHRyAtIFBST0xZU0UiLCJBR0cgLSBQRUdJTUUiLCJBR0cgLSBQTEVORVRVREUiLCJBR0cgLSBQTEVORVRVREUgLSBDb2xsYWJvcmF0ZXVyIiwiQUdHIC0gUFJJT1NVUiIsIkFHRyAtIFBFWElOIiwiQUdHIC0gUEVYSU4gLSBDb2xsYWJvcmF0ZXVyIiwiQUdDIiwiQUdDIC0gUFJJT1NVUiIsIkFHQyAtIFBST0xZU0UiLCJBR0MgLSBQRUdJTUUiLCJBR0MgLSBQTEVORVRVREUiLCJBR0MgLSBQRVhJTiIsIkFHQyAtIFBFWElOIC0gQ29sbGFib3JhdGV1ciIsIkFHViIsIkFHViAtIFBSSU9TVVIiLCJBR1YgLSBQRUdJTUUiLCJBR1YgLSBQUk9MWVNFIiwiQUdWIC0gUExFTkVUVURFIiwiQUdBIiwiQUdBIC0gUFJPTFlTRSIsIkFHQSAtIFBFWElOIiwiQUdBIC0gUEVHSU1FIiwiQUdBIC0gUFJJT1NVUiIsIkFHQSAtIFBMRU5FVFVERSIsIlJWSSIsIlJWSSAtIENWQyAvIFBMQiIsIlJWSSAtIEVudmlyb25uZW1lbnRhbCIsIlJWSSAtIENGTyAvIENGQSIsIkFHUyIsIkFHUyAtIFBFR0lNRSIsIkFHUyAtIFBMRU5FVFVERSIsIkFHUyAtIFBFWElOIiwiQUdTIC0gUFJPTFlTRSIsIkFHUyAtIFBSSU9TVVIiLCJBR0wiLCJBR0wgLSBQUk9MWVNFIiwiQUdMIC0gUFJJT1NVUiIsIkFHTCAtIFBMRU5FVFVERSIsIkFHTCAtIFBFWElOIiwiQUdMIC0gUEVYSU4gLSBDb2xsYWJvcmF0ZXVyIiwiQUdMIC0gUExFTkVUVURFIC0gMiIsIkFHTCAtIFBFR0lNRSJdLCJzZWN0aW9uc19tZW1iZXJzIjpbIjFhZWIxYjA4OWQxNDQzNTc4ZjNkMmVjYTFmNmFiZWFmIiwiMDY1OWU4Mjk0NDE2NDBhYmI0ZTc2ZTc0MWNmMDQzMTEiLCIwODU1YjIxMDdlODg0ZDU3YTUxNTcwY2QyYTk4YmZhMyIsIjBkMGQ4OTEyOWI4ZjRmODI4NTczN2QzZTJjYzRhMmEwIiwiNDczZDBjOWNjMjQ1NGEwOGJmYjYzZjgyZmNhY2I2NzYiLCI5ZmVkZmUxZWRiYjE0OTIzYWVmM2M2ZjZlZDhjZjJmZCIsImNlMTJhMjI1OTA1ZTQzZTNiZTUwMzk0ODRiNzFlNGViIiwiM2MzZmQ1NWFjYTQyNGUzYzhkYTUwYzdjOTQ2YmE4OWUiLCIyNTIyZGJlMzNjOTA0OTU0ODIxOTVhNjQwZjRiYTk0NiIsIjYyZWRhYjk5OTdkNTQyYTFhODgwNzdlMjFmZjU0NDIzIiwiYTUzY2Q3YWI0OGU0NGNhZmE0YmRjMzc2MDc1NWFiMTUiLCIwNjhkNTI1Y2ZmMjQ0NDlkODE4MjI3ZWFlNDRmZmRhYyIsIjQzZjFhNTM0N2Q2ZjRkODM5MDdkM2QzZDQ2Y2QyY2E0IiwiNTJlYzllNGQ4OTc2NGY5MjgyNDI1ZmU0NmFhN2MzOGYiLCJiZGU5Njk2NDJhNjQ0YjY1ODZmN2NiZGY2YjJmNDg4NiIsImM1OTliNWIwNzFhODQ2NjE4NzhjNGIzODQ5NjhlYjAzIiwiZTFiMzE2MGZlOGExNGJjNDg0ZWJkZDMwZDRkNGRhOTAiLCI2NDdjMDNhYTRjYmI0YmVlYTI2NzE3Yzc2MWZiMTVhNiIsIjliZjUyZDAzMjRhMTQxY2U5YjM3Mzk1ZmQ4NjQyYThhIiwiZjc5MWNhYzkzNTBhNDE4ZmI4YjA2NTI5YWIwNzcxMmUiLCIyMzRjOGJmZGM2MDg0OTljYjcyZmI0NGQwMDYyODNmOSIsIjhmOTkzMmVkNDNhMzRhNjZiYjM5MjA3M2E5OTk3ZWYyIiwiNTQ3MTU2YzI2MDFkNDQ0ZmE5ZjU2MWM3NGU5YmMwMWEiLCJkZWI2NjE3OWZhNTA0MzZmYmNkNjBlZWNiNTQ1NTIzYSIsImY3ZDgwOWQ4NmQ1ZjQ4NWI5NzkzZWIwN2VlNjc4N2ExIiwiODNlODA3ZmIxYTNkNGM4NTg0YWI2ZGE1YmY5YWFhNTYiLCJlZjk1OGVkMTJhNjU0ZDkwYWYzZWIwMmNkNjMxNjBiNyIsIjQ2NTdkYmQzNGY5NDRmMDdiMzA2MjViZmI4MmU5YzY0IiwiNjZkYjFmOWEwMmU5NDY4Zjk0ZDc0YmIzZmU1MWI5MTQiLCI2N2I0ZGI5MGRjYTY0MDg4YTEzYTNjMTBhOGU1NDgzOCIsIjg4YWU2ODM2YzFmMTQ0MTI5ODJiNmY3MTg0ZDY4MzViIiwiYzhhYjAxNDk0OTY4NGJjMWFkNzMzYTFkZGFmZTdjZTgiLCJmNDZhMjM2YTc5MGQ0MDYxODdmZjUxOTVlNGM0ZDdhNSIsImY1MDQ3YWYzMWVjMzRjODg4ZjkxYmVlZTNjOWFmYmQ0IiwiY2U0YzBkZmU4NWM0NDkzYzkwYzMzZGM1Mzk5MTQzOTgiLCJlOGZiYWVkZjNjZDc0ODBhOTY4YjI3OTUwMDZmNzRiNiIsImQ5ZjU1NGVkMjkyMjRhZWNhOTk4OTA4OGUyZmIyM2IwIiwiMWE3NDA3MDYyNTMwNDlhNWFkZGRiOTgxMmY0YzQ4NmUiLCI0ZWM4NDRlMTE1MGQ0ZjRiYTFhNDA4M2U0YmJkY2M4ZiIsIjU1NDY0ZTI0ZWIwMTRhNDlhYTU3NWNhNTcyZGFhYTkzIiwiODA5ZjZkZTQ2YThmNDk4YmI3MmNlZDEzNWI4NDdlNjUiLCJhYjk0YTA5YTM5NTc0NDZmYjkyOTEwNzM5YTcxZDBjMCIsImFmMWE4ZWFiNmFkNjQ1YTk5MzQ4NTBiNDljYmM3YjBkIiwiZDNhNzkyNmI4MzYzNDUxNjkyYjIxYjBiNzdlM2ViNDciLCJmNGU5OWQ3Yjc2OWI0ZjRiYWYxZGFjMDVjMTc1NGE3MCIsIjJkZmY5ZTc3MTA5ZjQ2MTA5MjIyNWU0OWU0YzJjNjBhIiwiMjIxNTZlMTQyYmM5NDgxNTg4MjhiMGQ3OTkwMTYzMGIiLCJhOTk3ZGFhM2IyYTY0ZTQxOTUyZjNkNDMyYTc0YzJiZCIsIjE4N2FmZTJjYTRiOTRmYzU4ZTFhNzJhNmVkNzY4N2JjIiwiN2Q1YWMxMjUxODAzNDQ2MTgyZTllNzkzYzdhOTkzYjciLCJhNTQ5NDhiN2NjM2I0NGNmOTYzNGNjZjRjNjVkYzk4OCIsIjc3ODM1ZDAyNTg5NTRlZjdiMjIxMDNiZjNkODdmY2Q4IiwiNzhkMzgxN2JjOTIzNGFhMDg4Y2FhN2IwZTU0OTU1ODciLCJhZTcyNWMwMDcwZjc0ZmI2YjdkZGRiNWUxOWRlYmI3MyIsImQxZGM0Yzg5MDY0ZDQ2MWY4ODFmOGNiMDljZWI1ZWU2IiwiOGEzZmMzMmQyYTg2NDBmNjgzMzMyZjFiMjhkOTY1YzIiLCJhMTliYmZlOTBhODc0YzIzYWFlNjgxYzUzYjc5OWMyMyIsIjFiYTcwYzQwYjQ1YjRkMGFhNTQxN2UyNTg4YmU3YWI0IiwiYzkwN2NmNWYzMjMxNGU0NjlmMjBhZjNlNTgwZWFkYTAiLCI0MjVlYzEyNjk4NTY0NzQ3YWZiYjg0OTc4M2ZkYTdlYyIsImJlNjE1Y2QzYjM3YjRkZjBiYjc1YjFjYzMzMDQ5ZGMyIiwiZjE0ZmMwZWU2MmFhNGEwNWI4Y2IyMTUxODdkNDVjNGYiLCIwYWYwZDhjMTk1MDM0MDkwOWYyMmZkMDJmOTQxNGYzZSIsImFhYWRmY2NlNzE4ZTQyN2ZiY2E3Y2E3YmQ0MDJmMmMyIiwiOWIyOGM4MTBjMjBiNDJlMjg1NjQ5MTZlNTFmZmZlMmYiLCI5NWQwZDdlMmI5Yzk0ODY5OTJmMTk2NzIyODQzYTc5NCIsIjQ4OWIxOGZkNGRmNTRmOTdiOWU1MTg1ZDFhZjZkMWM3IiwiZjFlODdlMDRkZTExNDk4OGFlMDc4M2ZjNDAzNzUyNjQiLCIyOWRkNmE0ZDY0YTA0NzNiYmUyMTc5ODk2OGI5NDgzNyJdLCJpc19zZWN0aW9uc19hY3RpdmF0ZWQiOnRydWUsInJlZnJlc2hfdG9rZW4iOiIifQ.IbE8X1-18xjSZgPnQ4MIL_u4J_kzfUDmiCFfk0R9yLz7cS6CKkKcJtE-bStAuQkyb0Y2QPRxoioPXJ9UrmPKvg62mGUh_qLkenjZijSLqnhDsGzs76Xwioz81JhMlAIQfOVEa06aRQgYgr668ChLsXrExGzHy_OQKUObr6dWwufF2UbryMI1dg25O8RfY92yZlyNrd9zlnNJx3BWcrq2Lo0BS1ukzXQR5r5wVtyS00fxiCnaRhX99FUrFJPqG2Wv7ZXbwMbNO7OYFn6S1Cw00QpjHKpz6Oem-ZbToOgznXRg1ecPGYKeRCDauDLy_mONuJUOotrtA8Bz_F6hGmtNQtoJtDk6gWwywTzRKMZw5n020g2g-CjlnmjsKjQMP9g_50L8LxuuTKRg9DKZAPC_KEUOnkSBC0LyG83gCRaDxzUkPjH77DlFgKNVXFxmjVWVIg2XUmtrSbO7hE7EcFza4tC3NwGOQn8verQaFrykU8X-fFES54Gvz6NaySiY2N_FBxz6QXYqlbEHsoSeRQRsPYelZ_23Mp64PYmUp7qxQvQ0-4Mp98hppk8mCM9d9kdNZV0KXbCvy4qsQAT5pgydf_fVWTwXrejNKYY6yP_6yGY-76PVgxQiKnObERzoYPfzP2t5pscc0Z_ugwu7j-9La_oFI14nDwRYAyt5CHDG698" #providerKey: "api" -user: App\Security\User {#422 …} -roles: [ Symfony\Component\Security\Core\Role\Role {#757 -role: "ROLE_USER" } Symfony\Component\Security\Core\Role\Role {#759 -role: "ROLE_SUPERADMIN" } Symfony\Component\Security\Core\Role\Role {#758 -role: "ROLE_ADMIN" } Symfony\Component\Security\Core\Role\Role {#472 -role: "ROLE_MODULE_MICROSOFT_GRAPH" } Symfony\Component\Security\Core\Role\Role {#760 -role: "ROLE_MODULE_PRODUCT" } Symfony\Component\Security\Core\Role\Role {#761 -role: "ROLE_MODULE_PRODUCT_CUSTOMIZE" } Symfony\Component\Security\Core\Role\Role {#762 -role: "ROLE_MODULE_QUOTE_LINE" } Symfony\Component\Security\Core\Role\Role {#763 -role: "PROSPECT_SHOW" } Symfony\Component\Security\Core\Role\Role {#764 -role: "PROSPECT_CUD" } Symfony\Component\Security\Core\Role\Role {#765 -role: "CONTACT_CUD" } Symfony\Component\Security\Core\Role\Role {#766 -role: "CONTACT_SHOW" } Symfony\Component\Security\Core\Role\Role {#767 -role: "TASK_SHOW" } Symfony\Component\Security\Core\Role\Role {#768 -role: "TASK_CUD" } Symfony\Component\Security\Core\Role\Role {#769 -role: "QUOTE_SHOW" } Symfony\Component\Security\Core\Role\Role {#770 -role: "QUOTE_CUD" } Symfony\Component\Security\Core\Role\Role {#771 -role: "QUOTE_REGENERATE_PRICES" } ] -roleNames: [ "ROLE_USER" "ROLE_SUPERADMIN" "ROLE_ADMIN" "ROLE_MODULE_MICROSOFT_GRAPH" "ROLE_MODULE_PRODUCT" "ROLE_MODULE_PRODUCT_CUSTOMIZE" "ROLE_MODULE_QUOTE_LINE" "PROSPECT_SHOW" "PROSPECT_CUD" "CONTACT_CUD" "CONTACT_SHOW" "TASK_SHOW" "TASK_CUD" "QUOTE_SHOW" "QUOTE_CUD" "QUOTE_REGENERATE_PRICES" ] -authenticated: true -attributes: [] } "authenticator" => "App\Security\JWTTokenWhitelistAuthenticator" ] "channel" => "security" ] [ "timestamp" => 1760623467 "message" => "Guard authenticator set no success response: request continues." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "authenticator" => "App\Security\JWTTokenWhitelistAuthenticator" ] "channel" => "security" ] [ "timestamp" => 1760623467 "message" => "Remember me skipped: it is not configured for the firewall." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "authenticator" => "App\Security\JWTTokenWhitelistAuthenticator" ] "channel" => "security" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "App\V4\Dev\EventSubscriber\DisableProfilerOnProfilerEventSubscriber::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "App\EventListener\DebugRequestListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "App\EventListener\DebugRequestListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Nelmio\CorsBundle\EventListener\CorsListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "App\EventListener\RequestListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Bundle\FrameworkBundle\EventListener\ResolveControllerNameSubscriber::resolveControllerName" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "ApiPlatform\Core\Filter\QueryParameterValidateListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "ApiPlatform\Core\EventListener\AddFormatListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "App\DoctrineFilter\CustomerFilterEventSubscriber::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Sentry\SentryBundle\EventListener\RequestListener::handleKernelRequestEvent" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "ApiPlatform\Core\EventListener\ReadListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Sentry\SentryBundle\EventListener\TracingRequestListener::handleKernelRequestEvent" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "ApiPlatform\Core\Security\EventListener\DenyAccessListener::onSecurity" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Sentry\SentryBundle\EventListener\SubRequestListener::handleKernelRequestEvent" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "ApiPlatform\Core\EventListener\DeserializeListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Sentry\SentryBundle\EventListener\TracingSubRequestListener::handleKernelRequestEvent" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "ApiPlatform\Core\Security\EventListener\DenyAccessListener::onSecurityPostDenormalize" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "ApiPlatform\Core\Bridge\Symfony\Bundle\EventListener\SwaggerUiListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "App\V4\EventSubscriber\Sentry\RegisterTransactionIdEventSubscriber::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Stof\DoctrineExtensionsBundle\EventListener\BlameListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Sentry\SentryBundle\EventListener\RequestListener::handleKernelControllerEvent" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Sensio\Bundle\FrameworkExtraBundle\EventListener\ControllerListener::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Sensio\Bundle\FrameworkExtraBundle\EventListener\ParamConverterListener::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Sensio\Bundle\FrameworkExtraBundle\EventListener\HttpCacheListener::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller_arguments" "listener" => "Sensio\Bundle\FrameworkExtraBundle\EventListener\SecurityListener::onKernelControllerArguments" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller_arguments" "listener" => "Sensio\Bundle\FrameworkExtraBundle\EventListener\IsGrantedListener::onKernelControllerArguments" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] [ "timestamp" => 1760623467 "message" => "Request: "GET http://dev.pol-api-business.pol-crm.com/api/quotes/753d0f24880b40db9a45aa5fe5f480d0?customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623467 "message" => "Response: "200 http://dev.pol-api-business.pol-crm.com/api/quotes/753d0f24880b40db9a45aa5fe5f480d0?customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623467 "message" => "Request: "GET http://dev.pol-api-param.pol-crm.com/api/templates/0246345ae9e34e0e9bc2bfb20a6e7376"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623468 "message" => "Response: "200 http://dev.pol-api-param.pol-crm.com/api/templates/0246345ae9e34e0e9bc2bfb20a6e7376"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623468 "message" => "Request: "GET http://dev.pol-api-crm.pol-crm.com/api/prospects/9a3373aafe494f949331cb91f53e99fa?customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623468 "message" => "Response: "200 http://dev.pol-api-crm.pol-crm.com/api/prospects/9a3373aafe494f949331cb91f53e99fa?customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623468 "message" => "Request: "GET http://dev.pol-api-user.pol-crm.com/api/users/ce4c0dfe85c4493c90c33dc539914398?customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623468 "message" => "Response: "200 http://dev.pol-api-user.pol-crm.com/api/users/ce4c0dfe85c4493c90c33dc539914398?customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623468 "message" => "Request: "GET http://dev.pol-api-crm.pol-crm.com/api/contacts/858c7f78b77c4dba9ba3db681b99d8ee?customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623469 "message" => "Response: "200 http://dev.pol-api-crm.pol-crm.com/api/contacts/858c7f78b77c4dba9ba3db681b99d8ee?customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623469 "message" => "Request: "GET http://dev.pol-api-user.pol-crm.com/api/users/1aeb1b089d1443578f3d2eca1f6abeaf?customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623469 "message" => "Response: "200 http://dev.pol-api-user.pol-crm.com/api/users/1aeb1b089d1443578f3d2eca1f6abeaf?customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623469 "message" => "Request: "GET http://dev.pol-api-param.pol-crm.com/api/fields?page=1&itemsPerPage=10&pagination=0&entity=Quote&customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623469 "message" => "Response: "200 http://dev.pol-api-param.pol-crm.com/api/fields?page=1&itemsPerPage=10&pagination=0&entity=Quote&customerId=e8919dbc01f34f79ab22b9c434f114eb"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623469 "message" => "Request: "GET http://dev.pol-api-ged.pol-crm.com/api/customer_resource/get_by_path?customerId=e8919dbc01f34f79ab22b9c434f114eb&path=CHARTE+GRAPHIQUE%2FAGL%2FPegime%2Flogo.png"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623470 "message" => "Response: "200 http://dev.pol-api-ged.pol-crm.com/api/customer_resource/get_by_path?customerId=e8919dbc01f34f79ab22b9c434f114eb&path=CHARTE+GRAPHIQUE%2FAGL%2FPegime%2Flogo.png"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623470 "message" => "Request: "GET http://dev.pol-api-ged.pol-crm.com/api/customer_resource/download/8181224a818c4943a537b3d883d6746e"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623470 "message" => "Response: "500 http://dev.pol-api-ged.pol-crm.com/api/customer_resource/download/8181224a818c4943a537b3d883d6746e"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] [ "timestamp" => 1760623470 "message" => "Uncaught PHP Exception Twig\Error\RuntimeError: "An exception has been thrown during the rendering of a template ("HTTP/1.1 500 Internal Server Error returned for "http://dev.pol-api-ged.pol-crm.com/api/customer_resource/download/8181224a818c4943a537b3d883d6746e".") in "quote_pdf (string template bdbd82de5dd1d12da3fd1b29d6c5cb5e0417e847d1e165bc7afd226de96c353f)" at line 53." at /var/www/vhosts/app.pol-crm.com/httpdocs/app-pol-crm/dev/releases/20251009101152/application/vendor/twig/twig/src/Template.php line 419" "priority" => 500 "priorityName" => "CRITICAL" "context" => [ "exception" => Twig\Error\RuntimeError {#7024 -lineno: 53 -name: "quote_pdf (string template bdbd82de5dd1d12da3fd1b29d6c5cb5e0417e847d1e165bc7afd226de96c353f)" -rawMessage: "An exception has been thrown during the rendering of a template ("HTTP/1.1 500 Internal Server Error returned for "http://dev.pol-api-ged.pol-crm.com/api/customer_resource/download/8181224a818c4943a537b3d883d6746e".")." -sourcePath: "" -sourceCode: """ {% set quoteAddress = '' %}\n {% set quoteCity = '' %}\n {% set quotePostalCode = '' %}\n {% set quoteBuildingName = '' %}\n {% set quoteOfferType = '' %}\n {% set quoteMissionType = '' %}\n {% set quoteAgency = '' %}\n {% set quoteEntity = '' %}\n \n {% for specificField in quote.specificFields|default([]) %}\n {% if specificField.fieldName == "Adresse" %}\n {% set quoteAddress = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Ville" %}\n {% set quoteCity = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Code postal" %}\n {% set quotePostalCode = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Nom du bâtiment" %}\n {% set quoteBuildingName = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Type d'offre" %}\n {% set quoteOfferType = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Type de mission" %}\n {% set quoteMissionType = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Agence" %}\n {% set quoteAgency = specificField.value|default('') %}\n {% endif %}\n {% if specificField.fieldName == "Entite" %}\n {% set quoteEntity = specificField.value|default('') %}\n {% endif %}\n {% endfor %}\n \n {% set agencyCity = '' %}\n \n {% if quoteAgency|upper == "AGA" %}\n {% set agencyCity = "Annecy" %}\n {% elseif quoteAgency|upper == "AGG" or quoteAgency|upper == "RVI" %}\n {% set agencyCity = "Grenoble" %}\n {% elseif quoteAgency|upper == "AGC" or quoteAgency|upper == "AGB" %}\n {% set agencyCity = "Chambéry" %}\n {% elseif quoteAgency|upper == "AGV" %}\n {% set agencyCity = "Vienne" %}\n {% elseif quoteAgency|upper == "AGL" %}\n {% set agencyCity = "Villeurbanne" %}\n {% elseif quoteAgency|upper == "AGS" %}\n {% set agencyCity = "Sallanches" %}\n {% endif %}\n \n {% set logoImg = gedImageByPath('CHARTE GRAPHIQUE/' ~ quoteAgency ~ '/' ~ quoteEntity ~ '/logo.png') %}\n {% set footerImg = gedImageByPath('CHARTE GRAPHIQUE/' ~ quoteAgency ~ '/' ~ quoteEntity ~ '/footer.png') %}\n \n <!DOCTYPE html>\n <html>\n <head>\n <meta charset="UTF-8">\n </head>\n <body>\n {# All styles must be in CSS2 #}\n <style>\n @page {\n margin: 5cm 1cm 2.5cm 1cm;\n }\n \n html {\n font-size: 14px;\n font-family: Arial, sans-serif;\n color: #545454;\n }\n \n p {\n line-height: 1.3;\n margin: unset;\n }\n \n h1,\n h2,\n h3 {\n text-align: center;\n background: #0f243e;\n padding: 0.5rem;\n color: #fff;\n }\n \n h1 {\n font-size: 1.4rem;\n }\n \n h2 {\n font-size: 1.1rem;\n }\n \n h3 {\n padding-top: 0.3rem;\n padding-bottom: 0.3rem;\n font-size: 0.9rem;\n }\n \n .break-before {\n page-break-before: always;\n }\n \n .break-after {\n page-break-after: always;\n }\n \n .underline {\n text-decoration: underline;\n }\n \n .pdf-template__header {\n position: fixed;\n z-index: -2;\n top: -4cm;\n left: 0;\n right: 0;\n height: 4cm;\n }\n \n .pdf-template__header > div {\n display: inline-block;\n vertical-align: middle;\n }\n \n .pdf-template__header > div:first-child {\n width: 35%;\n }\n \n .pdf-template__header > div:last-child {\n width: 64%;\n text-align: right;\n font-size: 0.8rem;\n }\n \n .pdf-template__header img {\n height: 100%;\n object-fit: contain;\n }\n \n .pdf-template__footer {\n position: fixed;\n left: -1cm;\n right: -1cm;\n bottom: -2.5cm;\n height: 2.5cm;\n }\n \n .pdf-template__footer img {\n max-height: 2.5cm;\n width: 100%;\n object-fit: contain;\n }\n \n .pdf-template__footer .page__number {\n position: absolute;\n z-index: 1;\n right: 0.5rem;\n bottom: 0.5rem;\n font-size: 0.7rem;\n }\n \n .pdf-template__footer .page__number:after {\n content: counter(page, decimal);\n }\n \n .pdf-template__body {\n margin-top: 3.5cm;\n }\n \n .block-header-first-page {\n position: absolute;\n top: -5cm;\n padding-top: 1cm;\n left: 0;\n right: 0;\n background: #fff;\n }\n \n .block-header-first-page:after {\n content: "";\n display: table;\n clear: both;\n }\n \n .block-logo-first-page img {\n height: 5cm;\n max-width: 8cm;\n object-fit: contain;\n }\n \n .block-header-first-page .block-logo-first-page,\n .block-header-first-page .block-sender {\n float: left;\n width: 50%;\n }\n \n .block-header-first-page .block-sender {\n margin-top: 3.5cm;\n font-weight: bold;\n }\n \n .block-header-first-page .block-sender p {\n line-height: 1.2;\n }\n \n .block-city-date {\n display: inline-block;\n margin-left: 50%;\n margin-bottom: 2rem;\n }\n \n .block-receiver {\n margin-bottom: 3rem;\n }\n \n .block-receiver p {\n line-height: 1.1;\n }\n \n .block-description p {\n line-height: 3;\n }\n \n .block-signature {\n margin-top: 2rem;\n margin-left: 60%;\n font-size: 0.85rem;\n }\n \n .block-table {\n margin-top: 3rem;\n margin-bottom: 3rem;\n }\n \n .block-table table {\n width: 100%;\n border-collapse: collapse;\n page-break-inside: avoid;\n }\n \n .table__price {\n text-align: right;\n }\n \n .block-table table th,\n .block-table table td {\n border: 1px solid #545454;\n padding: 0.25rem 0.4rem;\n page-break-inside: auto;\n }\n \n .block-table table th {\n font-weight: normal;\n white-space: nowrap;\n }\n \n .block-table table th:first-child {\n border-top: none;\n border-left: none;\n }\n \n .block-table table th:last-child {\n background: #ececec;\n color: #545454;\n width: 25%;\n }\n \n .block-table table td {\n text-align: right;\n font-size: 0.9rem;\n }\n \n .block-table table td:first-child {\n text-align: left;\n }\n \n .block-table-full {\n margin-top: 2rem;\n margin-bottom: 2rem;\n }\n \n .block-table-full table {\n page-break-inside: avoid;\n width: 100%;\n border-collapse: collapse;\n }\n \n .block-table-full table th,\n .block-table-full table td {\n border: 1px solid #545454;\n padding: 0.25rem 0.4rem;\n }\n \n .block-table-full table td {\n text-align: right;\n }\n \n .block-table-full table td:first-child {\n text-align: left;\n }\n \n .block-table-full table tfoot td:first-child {\n text-align: right;\n padding: unset;\n }\n \n .block-table-full table tfoot td:first-child > span {\n background: #d9d9d9;\n padding: 0.25rem 0.4rem;\n }\n \n .block-table-full table th {\n white-space: nowrap;\n }\n \n .block-table-full table tr:first-of-type th:last-child {\n background: #d9d9d9;\n color: #545454;\n }\n \n .raw-render {\n line-height: 1;\n text-align: justify;\n }\n \n .small {\n font-size: 0.85rem;\n }\n \n .linethrough {\n text-decoration: line-through;\n }\n \n .block-two-columns {\n margin-top: 3rem;\n margin-bottom: 3rem;\n }\n \n .block-two-columns > div {\n display: inline-block;\n vertical-align: top;\n word-break: break-all;\n }\n \n .block-two-columns > div:first-child {\n width: 38%;\n }\n \n .block-index-table table {\n width: 100%;\n border-collapse: collapse;\n }\n \n .block-index-table table th,\n .block-index-table table td {\n border: 1px solid #545454;\n padding: 0.25rem 0.4rem;\n text-align: center;\n }\n \n .block-index-table table th:last-child,\n .block-index-table table td:last-child {\n text-align: left;\n }\n \n .block-observations,\n .block-conditions {\n page-break-inside: auto;\n }\n \n .block-conditions {\n margin-top: 3rem;\n }\n \n .block-quote-signature {\n margin-top: 2rem;\n margin-left: 20%;\n }\n \n .block-agreement {\n page-break-inside: avoid;\n margin-top: 3rem;\n border: 2px solid #545454;\n padding: 0 1rem;\n }\n \n .block-agreement > div {\n margin-bottom: 7rem;\n }\n \n .block-agreement .block-two-columns > div:first-child {\n width: 45%;\n }\n \n .block-agreement > p:last-of-type {\n margin-bottom: 8rem;\n }\n \n .row-wrap:empty {\n display: none;\n }\n \n .row-wrap {\n min-height: 6rem;\n padding-top: 1.5rem;\n padding-bottom: 1rem;\n vertical-align: middle;\n font-weight: bold;\n }\n \n .row-wrap .item {\n display: inline-block;\n height: 6rem;\n line-height: 6rem;\n vertical-align: middle;\n width: auto;\n margin-right: 1.5rem;\n margin-bottom: 1.5rem;\n }\n \n .row-wrap .item:last-child {\n margin-right: 0;\n }\n </style>\n \n <header class="pdf-template__header">\n <div>\n <img src="{{ logoImg|default('') }}" alt="logo">\n </div>\n <div>\n <p><b>PROPOSITION D'HONORAIRES</b></p>\n <p>{{ quoteBuildingName|upper }}</p>\n <p><b>{{ quoteMissionType }}</b></p>\n </div>\n </header>\n \n <footer class="pdf-template__footer">\n <img src="{{ footerImg|default('') }}" alt="footer">\n <span class="page__number">Page </span>\n </footer>\n \n <div class="pdf-template__body">\n <div class="block-header-first-page">\n <div class="block-logo-first-page">\n <img src="{{ logoImg|default('') }}" alt="logo">\n </div>\n <div class="block-sender">\n <p>{{ quote.prospect.fullName|default('') }}</p>\n <p>À l'attention de {{ quote.contactIdRealName|default('') }}</p>\n {% if quote.prospect.contact.mainAddress.address is defined or quote.prospect.contact.mainAddress.city is defined or quote.prospect.contact.mainAddress.postalCode is defined %}\n <p>{{ quote.prospect.contact.mainAddress.address|default('') }}</p>\n <p>{{ quote.prospect.contact.mainAddress.postalCode|default('') }} {{ quote.prospect.contact.mainAddress.city|default('') }}</p>\n {% endif %}\n </div>\n </div>\n <div class="block-city-date">\n <p>{{ agencyCity|length > 0 ? agencyCity ~ ', le' : 'Le' }} {{ 'now'|date('d/m/Y') }}</p>\n </div>\n <div class="block-receiver">\n <p>{{ quoteBuildingName|upper }}</p>\n <p>{{ quoteAddress }}</p>\n <p>{{ quotePostalCode }} {{ quoteCity }}</p>\n <p><b>{{ quoteMissionType }}</b></p>\n </div>\n <div class="block-description">\n {% set civility = 'Madame, Monsieur' %}\n {% if contactConcerned is defined %}\n {% set civility = contactConcerned.civility.value|default('Madame, Monsieur') %}\n {% endif %}\n <p>{{ civility }},</p>\n <br>\n <p>Pour faire suite à votre demande, nous avons le plaisir de vous adresser notre proposition d'honoraires.</p>\n <p>Nous restons à votre disposition pour vous apporter toutes précisions utiles.</p>\n <p>Nous vous prions d'agréer, {{ civility }}, nos respectueuses salutations.</p>\n </div>\n <div class="block-signature break-after">\n <div>\n <p><b>{{ managedBy.fullname|default('') }}</b></p>\n <p><em>{{ managedBy.job|default('') }}</em></p>\n </div>\n </div>\n \n {# ---- PAGE BREAK ---- #}\n \n {% set coContractors = [] %}\n {% for sectionName, quoteLines in quoteLinesBySection|default([]) %}\n {% for quoteLine in quoteLines|default([]) %}\n {% if quoteLine.quoteLineInfo.product.categories|length > 0 %}\n {% set isObservationProduct = false %}\n {% for category in quoteLine.quoteLineInfo.product.categories %}\n {% if category.id == "eb31972e5c9a4702877fb7014a26fa6d" %}\n {% set isObservationProduct = true %}\n {% endif %}\n {% endfor %}\n {% if isObservationProduct and quoteLine.description|default('')|length > 0 %}\n <div class="block-observations">\n <div class="raw-render small">\n {{ quoteLine.description|raw }}\n </div>\n </div>\n {% endif %}\n {% endif %}\n {% endfor %}\n \n {% set sectionName = sectionName|split('|') %}\n {% if sectionName[1] is defined %}\n {% set sectionName = sectionName[1] %}\n {% else %}\n {% set sectionName = sectionName[0] %}\n {% endif %}\n \n {% if sectionName|lower != 'default' %}\n {# si la première lettre de sectionName est un a, e, i, o, u, y, h, on met l'apostrophe #}\n {% set elision = sectionName|slice(0, 1)|lower in ['a', 'e', 'i', 'o', 'u', 'y', 'h'] ? "D'" : "DE " %}\n <h2>PHASE {{ elision ~ sectionName|upper }} de votre projet</h2>\n {% endif %}\n \n {% for quoteLine in quoteLines|default([]) %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = false %}\n {% if quoteLine.isOptional and quoteLine.quoteLineInfo.product is defined %}\n {% set isOptionalProduct = true %}\n {% for specificField in quoteLine.quoteLineInfo.product.specificFields %}\n {% if specificField.fieldId == "7100aa47620a4eb29180c4611e71616d" and specificField.value == "1" %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% set isObservationProduct = false %}\n {% if quoteLine.quoteLineInfo.product.categories is defined and quoteLine.quoteLineInfo.product.categories|default([])|length > 0 %}\n {% for category in quoteLine.quoteLineInfo.product.categories %}\n {% if category.id == "eb31972e5c9a4702877fb7014a26fa6d" %}\n {% set isObservationProduct = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% if not isOptionalProduct and not isObservationProduct %}\n {% set splittedName = quoteLine.name|default('')|split('% ') %}\n {% if quoteLine.quoteLineInfo.quoteLineInfoProductAttributes is defined %}\n {% set currentCoContractor = null %}\n {% set currentCoContractorIndex = 0 %}\n {% for productAttribute in quoteLine.quoteLineInfo.quoteLineInfoProductAttributes %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Nombre de jours' and productAttribute.value > 0 and productAttribute.productAttribute.groupCode not in coContractors %}\n {% set coContractors = coContractors|merge([productAttribute.productAttribute.groupCode]) %}\n {% endif %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Nom entreprise' and productAttribute.value is not null and productAttribute.value not in coContractors %}\n {% set currentCoContractor = productAttribute.value %}\n {% set currentCoContractorIndex = productAttribute.productAttributeLabel|split('|')[1] %}\n {% endif %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Co-traitant' and productAttribute.value == 'true' and currentCoContractorIndex == productAttribute.productAttributeLabel|split('|')[1] %}\n {% set coContractors = coContractors|merge([currentCoContractor]) %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n <div class="block-table">\n <table>\n <thead>\n <tr>\n <th></th>\n <th>Montant HT</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <p><b>{{ quoteLine.comment|default('')|raw|nl2br }}</b></p>\n </td>\n <td>\n <div class="table__price">\n {% if isQuotePart and splittedName|length > 1 %}\n {{ splittedName[0] }}% du montant HT des travaux\n {% else %}\n {% if quoteLine.discountAmount > 0 %}\n <p class="small linethrough">\n {{ quoteLine.totalExclDiscountAndVat|default(0)|number_format(2, ',', ' ') }} €\n </p>\n {% endif %}\n {{ quoteLine.totalExclVat|default(0)|number_format(2, ',', ' ') }} €\n {% endif %}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class="raw-render small">\n {{ quoteLine.description|default('')|raw }}\n </div>\n </div>\n {% endif %}\n {% endfor %}\n \n {% set hasOptionalProduct = false %}\n {% for quoteLine in quoteLines|default([]) %}\n {% set rowIsPercentage = false %}\n {% for specificField in quoteLine.quoteLineInfo.product.specificFields|default({}) %}\n {% if specificField.fieldId == "7100aa47620a4eb29180c4611e71616d" and specificField.value == "1" %} {# Article de surcôte (attributs en %) #}\n {% set rowIsPercentage = true %}\n {% endif %}\n {% endfor %}\n \n {% if not rowIsPercentage and quoteLine.isOptional and quoteLine.quoteLineInfo.product is defined %}\n {% set hasOptionalProduct = true %}\n {% endif %}\n {% endfor %}\n \n <div class="block-table-full {{ hasOptionalProduct ? '' : 'break-after' }}">\n <table>\n <thead>\n <tr>\n <th colspan="5">\n {{ sectionName|lower != 'default' ? sectionName ~ ' -' : '' }} Total des honoraires - Options\n non comprises\n </th>\n </tr>\n <tr>\n <th>Mission</th>\n <th>MONTANT HT</th>\n <th>Montant TVA</th>\n <th>Taux TVA</th>\n <th>MONTANT TTC</th>\n </tr>\n </thead>\n <tbody>\n {% set totalExclVat = 0 %}\n {% set totalVat = 0 %}\n {% for quoteLine in quoteLines|default([]) %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = false %}\n {% if quoteLine.isOptional and quoteLine.quoteLineInfo.product is defined %}\n {% set isOptionalProduct = true %}\n {% for specificField in quoteLine.quoteLineInfo.product.specificFields %}\n {% if specificField.fieldId == "7100aa47620a4eb29180c4611e71616d" and specificField.value == "1" %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% set isObservationProduct = false %}\n {% if quoteLine.quoteLineInfo.product.categories is defined and quoteLine.quoteLineInfo.product.categories|default([])|length > 0 %}\n {% for category in quoteLine.quoteLineInfo.product.categories %}\n {% if category.id == "eb31972e5c9a4702877fb7014a26fa6d" %}\n {% set isObservationProduct = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n {% if not isOptionalProduct and not isObservationProduct %}\n {% set totalExclVat = totalExclVat + quoteLine.totalExclVat|default(0) %}\n {% set totalVat = isQuotePart ? totalVat : totalVat + quoteLine.total|default(0) %}\n {% set splittedName = quoteLine.name|default('')|split('% ') %}\n <tr>\n <td>\n {{ quoteLine.comment|default('')|raw|nl2br }}\n </td>\n <td>\n {% if isQuotePart and splittedName|length > 1 %}\n {{ splittedName[0] }}% du montant HT des travaux\n {% else %}\n {{ quoteLine.totalExclVat|default(0)|number_format(2, ',', ' ') }} €\n {% endif %}\n </td>\n <td>\n {% if not isQuotePart %}\n {{ quoteLine.vatAmount|default(0)|number_format(2, ',', ' ') }} €\n {% endif %}\n </td>\n <td>\n {% if not isQuotePart %}\n {{ quoteLine.vatRate|default('') }}\n {% endif %}\n </td>\n <td>\n {% if not isQuotePart %}\n {{ quoteLine.total|default(0)|number_format(2, ',', ' ') }} €\n {% endif %}\n </td>\n </tr>\n {% endif %}\n {% endfor %}\n </tbody>\n {% if totalVat > 0 %}\n <tfoot>\n <tr>\n <td colspan="4">\n <span>TOTAL</span>\n </td>\n <td>{{ totalVat|number_format(2, ',', ' ') }} €</td>\n </tr>\n </tfoot>\n {% endif %}\n </table>\n </div>\n \n {% if hasOptionalProduct %}\n <h3 class="break-before">OPTIONS de votre projet</h3>\n {% for quoteLine in quoteLines|default([]) %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = false %}\n {% if quoteLine.isOptional and quoteLine.quoteLineInfo.product is defined %}\n {% set isOptionalProduct = true %}\n {% for specificField in quoteLine.quoteLineInfo.product.specificFields %}\n {% if specificField.fieldId == "7100aa47620a4eb29180c4611e71616d" and specificField.value == "1" %}\n {% set isOptionalProduct = false %}\n {% set isQuotePart = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% set isObservationProduct = false %}\n {% if quoteLine.quoteLineInfo.product.categories is defined and quoteLine.quoteLineInfo.product.categories|default([])|length > 0 %}\n {% for category in quoteLine.quoteLineInfo.product.categories %}\n {% if category.id == "eb31972e5c9a4702877fb7014a26fa6d" %}\n {% set isObservationProduct = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% if isOptionalProduct and not isObservationProduct %}\n {% set splittedName = quoteLine.name|default('')|split('% ') %}\n {% if quoteLine.quoteLineInfo.quoteLineInfoProductAttributes is defined %}\n {% set currentCoContractor = null %}\n {% set currentCoContractorIndex = 0 %}\n {% for productAttribute in quoteLine.quoteLineInfo.quoteLineInfoProductAttributes %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Nombre de jours' and productAttribute.value > 0 and productAttribute.productAttribute.groupCode not in coContractors %}\n {% set coContractors = coContractors|merge([productAttribute.productAttribute.groupCode]) %}\n {% endif %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Nom entreprise' and productAttribute.value is not null and productAttribute.value not in coContractors %}\n {% set currentCoContractor = productAttribute.value %}\n {% set currentCoContractorIndex = productAttribute.productAttributeLabel|split('|')[1] %}\n {% endif %}\n {% if productAttribute.productAttributeLabel|split('|')[0] == 'Co-traitant' and productAttribute.value == 'true' and currentCoContractorIndex == productAttribute.productAttributeLabel|split('|')[1] %}\n {% set coContractors = coContractors|merge([currentCoContractor]) %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n <div class="block-table">\n <table>\n <thead>\n <tr>\n <th></th>\n <th>Montant HT</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <p><b>{{ quoteLine.comment|default('')|raw|nl2br }}</b></p>\n </td>\n <td>\n <div class="table__price">\n {% if isQuotePart and splittedName|length > 1 %}\n {{ splittedName[0] }}% du montant HT des travaux\n {% else %}\n {% if quoteLine.discountAmount > 0 %}\n <p class="small linethrough">\n {{ quoteLine.totalExclDiscountAndVat|default(0)|number_format(2, ',', ' ') }} €\n </p>\n {% endif %}\n {{ quoteLine.totalExclVat|default(0)|number_format(2, ',', ' ') }} €\n {% endif %}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class="raw-render small">\n {{ quoteLine.description|default('')|raw }}\n </div>\n </div>\n {% endif %}\n {% endfor %}\n \n <div class="block-table-full break-after">\n <table>\n <thead>\n <tr>\n <th colspan="5">\n {{ sectionName|lower != 'default' ? sectionName ~ ' -' : '' }} Total des options\n </th>\n </tr>\n <tr>\n <th>Mission</th>\n <th>MONTANT HT</th>\n <th>Montant TVA</th>\n <th>Taux TVA</th>\n <th>MONTANT TTC</th>\n </tr>\n </thead>\n <tbody>\n {% set totalExclVat = 0 %}\n {% set totalVat = 0 %}\n {% for quoteLine in quoteLines|default([]) %}\n {% set isOptionalProduct = false %}\n {% if quoteLine.isOptional and quoteLine.quoteLineInfo.product is defined %}\n {% set isOptionalProduct = true %}\n {% for specificField in quoteLine.quoteLineInfo.product.specificFields %}\n {% if specificField.fieldId == "7100aa47620a4eb29180c4611e71616d" and specificField.value == "1" %}\n {% set isOptionalProduct = false %}\n {% endif %}\n {% endfor %}\n {% endif %}\n \n {% set isObservationProduct = false %}\n {% if quoteLine.quoteLineInfo.product.categories is defined and quoteLine.quoteLineInfo.product.categories|default([])|length > 0 %}\n {% for category in quoteLine.quoteLineInfo.product.categories %}\n {% if category.id == "eb31972e5c9a4702877fb7014a26fa6d" %}\n {% set isObservationProduct = true %}\n {% endif %}\n {% endfor %}\n {% endif %}\n {% if isOptionalProduct and not isObservationProduct %}\n {% set totalExclVat = totalExclVat + quoteLine.totalExclVat|default(0) %}\n {% set totalVat = totalVat + quoteLine.total|default(0) %}\n <tr>\n <td>{{ quoteLine.comment|default('')|raw|nl2br }}</td>\n <td>{{ quoteLine.totalExclVat|default(0)|number_format(2, ',', ' ') }} €</td>\n <td>\n {{ quoteLine.vatAmount|default(0)|number_format(2, ',', ' ') }} €\n </td>\n <td>{{ quoteLine.vatRate|default('') }}</td>\n <td>{{ quoteLine.total|default(0)|number_format(2, ',', ' ') }} €</td>\n </tr>\n {% endif %}\n {% endfor %}\n </tbody>\n {% if totalVat > 0 %}\n <tfoot>\n <tr>\n <td colspan="4">\n <span>TOTAL</span>\n </td>\n <td>{{ totalVat|number_format(2, ',', ' ') }} €</td>\n </tr>\n </tfoot>\n {% endif %}\n </table>\n </div>\n {% endif %}\n {% endfor %}\n \n {# ---- PAGE BREAK ---- #}\n \n <div class="block-quote-signature">\n <p>{{ agencyCity|length > 0 ? agencyCity ~ ', le' : 'Le' }} {{ 'now'|date('d/m/Y') }}</p>\n </div>\n <div class="block-agreement break-after">\n <div class="block-two-columns">\n <div>\n <p><b>BON POUR ACCORD le ........../........../..........</b></p>\n </div>\n <div>\n <p>\n <em>Le Maître d'Ouvrage ou son Représentant</em>\n <br>\n <em>Signature et cachet :</em>\n </p>\n </div>\n </div>\n <p>Décision quant à l'option chiffrée : VALIDÉE / NON VALIDÉE</p>\n <p>Observations éventuelles :</p>\n </div>\n \n {# ---- PAGE BREAK ---- #}\n \n <div class="block-conditions">\n <p class="underline"><b>CONDITIONS :</b></p>\n <br>\n {% if coContractors|length > 0 %}\n <p><b class="underline small">Membres du groupement concernés par cette mission :</b></p>\n <br>\n <div class="row-wrap">{% for coContractor in coContractors %} {# Ne pas mettre for à la ligne pour éviter les espaces interne et que :empty fonctionne #}\n {% set imgCoContractor = gedImageByPath('CHARTE GRAPHIQUE/CO-TRAITANTS/' ~ coContractor ~ '.png')|default('') %}\n {% if imgCoContractor|length > 0 %}\n <img class="item" height="6rem" width="auto" src="{{ imgCoContractor }}"\n alt="logo {{ coContractor }}">\n {% else %}\n <p class="item">{{ coContractor }}</p>\n {% endif %}\n {% endfor %}</div>\n {% endif %}\n <br>\n <div class="raw-render small">\n {{ quote.terms|default('')|raw }}\n </div>\n </div>\n </div>\n </body>\n </html> """ #message: "An exception has been thrown during the rendering of a template ("HTTP/1.1 500 Internal Server Error returned for "http://dev.pol-api-ged.pol-crm.com/api/customer_resource/download/8181224a818c4943a537b3d883d6746e".") in "quote_pdf (string template bdbd82de5dd1d12da3fd1b29d6c5cb5e0417e847d1e165bc7afd226de96c353f)" at line 53." #code: 0 #file: "/var/www/vhosts/app.pol-crm.com/httpdocs/app-pol-crm/dev/releases/20251009101152/application/vendor/twig/twig/src/Template.php" #line: 419 -previous: Symfony\Component\HttpClient\Exception\ServerException {#7673 …} : { { Twig\Template->displayWithErrorHandling(array $context, array $blocks = []) … › |
Request Headers
Header | Value |
---|---|
accept | "application/ld+json" |
accept-encoding | "gzip, deflate, br, zstd" |
accept-language | "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7" |
connection | "close" |
content-length | "128" |
content-type | "application/json" |
host | "dev.app.pol-crm.com" |
origin | "https://dev.pol-crm.com" |
priority | "u=1, i" |
referer | "https://dev.pol-crm.com/" |
sec-ch-ua | ""Google Chrome";v="141", "Not?A_Brand";v="8", "Chromium";v="141"" |
sec-ch-ua-mobile | "?0" |
sec-ch-ua-platform | ""Linux"" |
sec-fetch-dest | "empty" |
sec-fetch-mode | "cors" |
sec-fetch-site | "same-site" |
user-agent | "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36" |
x-accel-internal | "/internal-nginx-static-location" |
x-php-ob-level | "1" |
x-pol-auth | "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE3NjA2MjM0MDIsImV4cCI6MTc2MDYyNzAwMiwicm9sZXMiOlsiUk9MRV9VU0VSIiwiUk9MRV9TVVBFUkFETUlOIiwiUk9MRV9BRE1JTiIsIlJPTEVfTU9EVUxFX01JQ1JPU09GVF9HUkFQSCIsIlJPTEVfTU9EVUxFX1BST0RVQ1QiLCJST0xFX01PRFVMRV9QUk9EVUNUX0NVU1RPTUlaRSIsIlJPTEVfTU9EVUxFX1FVT1RFX0xJTkUiLCJQUk9TUEVDVF9TSE9XIiwiUFJPU1BFQ1RfQ1VEIiwiQ09OVEFDVF9DVUQiLCJDT05UQUNUX1NIT1ciLCJUQVNLX1NIT1ciLCJUQVNLX0NVRCIsIlFVT1RFX1NIT1ciLCJRVU9URV9DVUQiLCJRVU9URV9SRUdFTkVSQVRFX1BSSUNFUyJdLCJsb2dpbiI6ImRlbW9wbGVuZXR1ZGUiLCJ1c2VyX2lkIjoiMWFlYjFiMDg5ZDE0NDM1NzhmM2QyZWNhMWY2YWJlYWYiLCJ1c2VyX2V4dGVybmFsX2lkIjoiMTY1MTc1NjUwMCIsImVtYWlsIjoiZ2VzdGlvbkFPc2FsbGFuY2hlc0Bncm91cGUtcGxlbmV0dWRlLmZyIiwiY3VzdG9tZXJfaWQiOiJlODkxOWRiYzAxZjM0Zjc5YWIyMmI5YzQzNGYxMTRlYiIsImN1c3RvbWVyX25hbWUiOiJHcm91cGUgUGzDqW7DqXR1ZGUiLCJjdXN0b21lcl9leHRlcm5hbF9pZCI6IjE2NDQ1OTM0OTciLCJjdXN0b21lcl9tYWlsaW5nX2lkIjoiMjU0IiwiZmlyc3RuYW1lIjoiR3VpbGxhdW1lIiwibGFzdG5hbWUiOiJTQVVUUk9OIiwibGl2ZW9Mb2dpbiI6bnVsbCwibGl2ZW9QYXNzd29yZCI6bnVsbCwiaGFzSW50cmFuZXQiOmZhbHNlLCJsYW5ndWFnZSI6IkZSIiwic2VjdGlvbnNfbGVhZGVkIjpbIkFHQiIsIkFHQiAtIFBMRU5FVFVERSIsIkFHQiAtIFBST0xZU0UiLCJBR0IgLSBQRVhJTiIsIkFHQiAtIFBFR0lNRSIsIkFHQiAtIFBSSU9TVVIiLCJEaXJlY3Rpb24gR8OpbsOpcmFsZSIsIkFHRyIsIkFHRyAtIFBST0xZU0UiLCJBR0cgLSBQRUdJTUUiLCJBR0cgLSBQTEVORVRVREUiLCJBR0cgLSBQTEVORVRVREUgLSBDb2xsYWJvcmF0ZXVyIiwiQUdHIC0gUFJJT1NVUiIsIkFHRyAtIFBFWElOIiwiQUdHIC0gUEVYSU4gLSBDb2xsYWJvcmF0ZXVyIiwiQUdDIiwiQUdDIC0gUFJJT1NVUiIsIkFHQyAtIFBST0xZU0UiLCJBR0MgLSBQRUdJTUUiLCJBR0MgLSBQTEVORVRVREUiLCJBR0MgLSBQRVhJTiIsIkFHQyAtIFBFWElOIC0gQ29sbGFib3JhdGV1ciIsIkFHViIsIkFHViAtIFBSSU9TVVIiLCJBR1YgLSBQRUdJTUUiLCJBR1YgLSBQUk9MWVNFIiwiQUdWIC0gUExFTkVUVURFIiwiQUdBIiwiQUdBIC0gUFJPTFlTRSIsIkFHQSAtIFBFWElOIiwiQUdBIC0gUEVHSU1FIiwiQUdBIC0gUFJJT1NVUiIsIkFHQSAtIFBMRU5FVFVERSIsIlJWSSIsIlJWSSAtIENWQyAvIFBMQiIsIlJWSSAtIEVudmlyb25uZW1lbnRhbCIsIlJWSSAtIENGTyAvIENGQSIsIkFHUyIsIkFHUyAtIFBFR0lNRSIsIkFHUyAtIFBMRU5FVFVERSIsIkFHUyAtIFBFWElOIiwiQUdTIC0gUFJPTFlTRSIsIkFHUyAtIFBSSU9TVVIiLCJBR0wiLCJBR0wgLSBQUk9MWVNFIiwiQUdMIC0gUFJJT1NVUiIsIkFHTCAtIFBMRU5FVFVERSIsIkFHTCAtIFBFWElOIiwiQUdMIC0gUEVYSU4gLSBDb2xsYWJvcmF0ZXVyIiwiQUdMIC0gUExFTkVUVURFIC0gMiIsIkFHTCAtIFBFR0lNRSJdLCJzZWN0aW9uc19tZW1iZXJzIjpbIjFhZWIxYjA4OWQxNDQzNTc4ZjNkMmVjYTFmNmFiZWFmIiwiMDY1OWU4Mjk0NDE2NDBhYmI0ZTc2ZTc0MWNmMDQzMTEiLCIwODU1YjIxMDdlODg0ZDU3YTUxNTcwY2QyYTk4YmZhMyIsIjBkMGQ4OTEyOWI4ZjRmODI4NTczN2QzZTJjYzRhMmEwIiwiNDczZDBjOWNjMjQ1NGEwOGJmYjYzZjgyZmNhY2I2NzYiLCI5ZmVkZmUxZWRiYjE0OTIzYWVmM2M2ZjZlZDhjZjJmZCIsImNlMTJhMjI1OTA1ZTQzZTNiZTUwMzk0ODRiNzFlNGViIiwiM2MzZmQ1NWFjYTQyNGUzYzhkYTUwYzdjOTQ2YmE4OWUiLCIyNTIyZGJlMzNjOTA0OTU0ODIxOTVhNjQwZjRiYTk0NiIsIjYyZWRhYjk5OTdkNTQyYTFhODgwNzdlMjFmZjU0NDIzIiwiYTUzY2Q3YWI0OGU0NGNhZmE0YmRjMzc2MDc1NWFiMTUiLCIwNjhkNTI1Y2ZmMjQ0NDlkODE4MjI3ZWFlNDRmZmRhYyIsIjQzZjFhNTM0N2Q2ZjRkODM5MDdkM2QzZDQ2Y2QyY2E0IiwiNTJlYzllNGQ4OTc2NGY5MjgyNDI1ZmU0NmFhN2MzOGYiLCJiZGU5Njk2NDJhNjQ0YjY1ODZmN2NiZGY2YjJmNDg4NiIsImM1OTliNWIwNzFhODQ2NjE4NzhjNGIzODQ5NjhlYjAzIiwiZTFiMzE2MGZlOGExNGJjNDg0ZWJkZDMwZDRkNGRhOTAiLCI2NDdjMDNhYTRjYmI0YmVlYTI2NzE3Yzc2MWZiMTVhNiIsIjliZjUyZDAzMjRhMTQxY2U5YjM3Mzk1ZmQ4NjQyYThhIiwiZjc5MWNhYzkzNTBhNDE4ZmI4YjA2NTI5YWIwNzcxMmUiLCIyMzRjOGJmZGM2MDg0OTljYjcyZmI0NGQwMDYyODNmOSIsIjhmOTkzMmVkNDNhMzRhNjZiYjM5MjA3M2E5OTk3ZWYyIiwiNTQ3MTU2YzI2MDFkNDQ0ZmE5ZjU2MWM3NGU5YmMwMWEiLCJkZWI2NjE3OWZhNTA0MzZmYmNkNjBlZWNiNTQ1NTIzYSIsImY3ZDgwOWQ4NmQ1ZjQ4NWI5NzkzZWIwN2VlNjc4N2ExIiwiODNlODA3ZmIxYTNkNGM4NTg0YWI2ZGE1YmY5YWFhNTYiLCJlZjk1OGVkMTJhNjU0ZDkwYWYzZWIwMmNkNjMxNjBiNyIsIjQ2NTdkYmQzNGY5NDRmMDdiMzA2MjViZmI4MmU5YzY0IiwiNjZkYjFmOWEwMmU5NDY4Zjk0ZDc0YmIzZmU1MWI5MTQiLCI2N2I0ZGI5MGRjYTY0MDg4YTEzYTNjMTBhOGU1NDgzOCIsIjg4YWU2ODM2YzFmMTQ0MTI5ODJiNmY3MTg0ZDY4MzViIiwiYzhhYjAxNDk0OTY4NGJjMWFkNzMzYTFkZGFmZTdjZTgiLCJmNDZhMjM2YTc5MGQ0MDYxODdmZjUxOTVlNGM0ZDdhNSIsImY1MDQ3YWYzMWVjMzRjODg4ZjkxYmVlZTNjOWFmYmQ0IiwiY2U0YzBkZmU4NWM0NDkzYzkwYzMzZGM1Mzk5MTQzOTgiLCJlOGZiYWVkZjNjZDc0ODBhOTY4YjI3OTUwMDZmNzRiNiIsImQ5ZjU1NGVkMjkyMjRhZWNhOTk4OTA4OGUyZmIyM2IwIiwiMWE3NDA3MDYyNTMwNDlhNWFkZGRiOTgxMmY0YzQ4NmUiLCI0ZWM4NDRlMTE1MGQ0ZjRiYTFhNDA4M2U0YmJkY2M4ZiIsIjU1NDY0ZTI0ZWIwMTRhNDlhYTU3NWNhNTcyZGFhYTkzIiwiODA5ZjZkZTQ2YThmNDk4YmI3MmNlZDEzNWI4NDdlNjUiLCJhYjk0YTA5YTM5NTc0NDZmYjkyOTEwNzM5YTcxZDBjMCIsImFmMWE4ZWFiNmFkNjQ1YTk5MzQ4NTBiNDljYmM3YjBkIiwiZDNhNzkyNmI4MzYzNDUxNjkyYjIxYjBiNzdlM2ViNDciLCJmNGU5OWQ3Yjc2OWI0ZjRiYWYxZGFjMDVjMTc1NGE3MCIsIjJkZmY5ZTc3MTA5ZjQ2MTA5MjIyNWU0OWU0YzJjNjBhIiwiMjIxNTZlMTQyYmM5NDgxNTg4MjhiMGQ3OTkwMTYzMGIiLCJhOTk3ZGFhM2IyYTY0ZTQxOTUyZjNkNDMyYTc0YzJiZCIsIjE4N2FmZTJjYTRiOTRmYzU4ZTFhNzJhNmVkNzY4N2JjIiwiN2Q1YWMxMjUxODAzNDQ2MTgyZTllNzkzYzdhOTkzYjciLCJhNTQ5NDhiN2NjM2I0NGNmOTYzNGNjZjRjNjVkYzk4OCIsIjc3ODM1ZDAyNTg5NTRlZjdiMjIxMDNiZjNkODdmY2Q4IiwiNzhkMzgxN2JjOTIzNGFhMDg4Y2FhN2IwZTU0OTU1ODciLCJhZTcyNWMwMDcwZjc0ZmI2YjdkZGRiNWUxOWRlYmI3MyIsImQxZGM0Yzg5MDY0ZDQ2MWY4ODFmOGNiMDljZWI1ZWU2IiwiOGEzZmMzMmQyYTg2NDBmNjgzMzMyZjFiMjhkOTY1YzIiLCJhMTliYmZlOTBhODc0YzIzYWFlNjgxYzUzYjc5OWMyMyIsIjFiYTcwYzQwYjQ1YjRkMGFhNTQxN2UyNTg4YmU3YWI0IiwiYzkwN2NmNWYzMjMxNGU0NjlmMjBhZjNlNTgwZWFkYTAiLCI0MjVlYzEyNjk4NTY0NzQ3YWZiYjg0OTc4M2ZkYTdlYyIsImJlNjE1Y2QzYjM3YjRkZjBiYjc1YjFjYzMzMDQ5ZGMyIiwiZjE0ZmMwZWU2MmFhNGEwNWI4Y2IyMTUxODdkNDVjNGYiLCIwYWYwZDhjMTk1MDM0MDkwOWYyMmZkMDJmOTQxNGYzZSIsImFhYWRmY2NlNzE4ZTQyN2ZiY2E3Y2E3YmQ0MDJmMmMyIiwiOWIyOGM4MTBjMjBiNDJlMjg1NjQ5MTZlNTFmZmZlMmYiLCI5NWQwZDdlMmI5Yzk0ODY5OTJmMTk2NzIyODQzYTc5NCIsIjQ4OWIxOGZkNGRmNTRmOTdiOWU1MTg1ZDFhZjZkMWM3IiwiZjFlODdlMDRkZTExNDk4OGFlMDc4M2ZjNDAzNzUyNjQiLCIyOWRkNmE0ZDY0YTA0NzNiYmUyMTc5ODk2OGI5NDgzNyJdLCJpc19zZWN0aW9uc19hY3RpdmF0ZWQiOnRydWUsInJlZnJlc2hfdG9rZW4iOiIifQ.IbE8X1-18xjSZgPnQ4MIL_u4J_kzfUDmiCFfk0R9yLz7cS6CKkKcJtE-bStAuQkyb0Y2QPRxoioPXJ9UrmPKvg62mGUh_qLkenjZijSLqnhDsGzs76Xwioz81JhMlAIQfOVEa06aRQgYgr668ChLsXrExGzHy_OQKUObr6dWwufF2UbryMI1dg25O8RfY92yZlyNrd9zlnNJx3BWcrq2Lo0BS1ukzXQR5r5wVtyS00fxiCnaRhX99FUrFJPqG2Wv7ZXbwMbNO7OYFn6S1Cw00QpjHKpz6Oem-ZbToOgznXRg1ecPGYKeRCDauDLy_mONuJUOotrtA8Bz_F6hGmtNQtoJtDk6gWwywTzRKMZw5n020g2g-CjlnmjsKjQMP9g_50L8LxuuTKRg9DKZAPC_KEUOnkSBC0LyG83gCRaDxzUkPjH77DlFgKNVXFxmjVWVIg2XUmtrSbO7hE7EcFza4tC3NwGOQn8verQaFrykU8X-fFES54Gvz6NaySiY2N_FBxz6QXYqlbEHsoSeRQRsPYelZ_23Mp64PYmUp7qxQvQ0-4Mp98hppk8mCM9d9kdNZV0KXbCvy4qsQAT5pgydf_fVWTwXrejNKYY6yP_6yGY-76PVgxQiKnObERzoYPfzP2t5pscc0Z_ugwu7j-9La_oFI14nDwRYAyt5CHDG698" |
x-real-ip | "37.58.179.19" |
x-transaction-id | "front:ifptmy4e7uo" |
Request Content
Pretty
{ "templateId": "0246345ae9e34e0e9bc2bfb20a6e7376", "showPrices": false, "customerId": "e8919dbc01f34f79ab22b9c434f114eb", "mode": null }
Raw
{"templateId":"0246345ae9e34e0e9bc2bfb20a6e7376","showPrices":false,"customerId":"e8919dbc01f34f79ab22b9c434f114eb","mode":null}
Response
Response Headers
Header | Value |
---|---|
cache-control | "no-cache, private" |
content-type | "application/ld+json" |
date | "Thu, 16 Oct 2025 14:04:30 GMT" |
vary | "Accept" |
x-debug-token | "b9c76d" |
Cookies
Request Cookies
No request cookies
Response Cookies
No response cookies
Session
Session Metadata
No session metadata
Session Attributes
No session attributes
Flashes
Flashes
No flash messages were created.
Server Parameters
Server Parameters
Defined in .env
Key | Value |
---|---|
API_BUSINESS_HOST | "http://dev.pol-api-business.pol-crm.com" |
API_CRM_HOST | "http://dev.pol-api-crm.pol-crm.com" |
API_GED_HOST | "http://dev.pol-api-ged.pol-crm.com" |
API_LIVEO | "https://webservice.centrex.liveo.fr/ws/" |
API_MIDDLEWARE_HOST | "https://pol-middleware" |
API_NOTIFY_HOST | "http://dev.pol-api-notify.pol-crm.com" |
API_PARAM_HOST | "http://dev.pol-api-param.pol-crm.com" |
API_POL_MAILING | "http://mailing.sfi.fr/webservices" |
API_POL_MAILING_V2 | "https://dev.mailing.pol-crm.com/webservices" |
API_SEARCH_HOST | "http://dev.pol-api-search.pol-crm.com" |
API_SERVICE_PLENETUDE_HOST | "http://dev.plenetude.pol-crm.com" |
API_USER_HOST | "http://dev.pol-api-user.pol-crm.com" |
APP_ENV | "dev" |
APP_SECRET | "61ff627c8e96e9ac55fc1926e4878f2e" |
BDD_API_BUSINESS | "dev_pol_core" |
BDD_API_CRM | "dev_pol_core" |
BDD_API_GED | "dev_pol_core" |
BDD_API_NOTIFY | "dev_pol_core" |
BDD_API_PARAM | "dev_pol_core" |
BDD_API_SEARCH | "dev_pol_core" |
BDD_API_USER | "dev_pol_core" |
BDD_MIDDLEWARE | "dev_pol_core" |
BDD_SERVICE_PLENETUDE | "dev_pol_core" |
BEGIN_DATE | "2024-01-01" |
CORS_ALLOW_ORIGIN | "^https?://pol-(crm|prospect).localhost(:[0-9]+)?$" |
DATABASE_URL | "mysql://dev_pol_core:VTgooWkhcjebxLPy8E2ycoTjytrULgNQ@127.0.0.1:3306/dev_pol_core" |
END_DATE | "2025-01-31" |
FRONT_URL | "https://pol-crm.localhost" |
FTP_INTRANET_SFI_HOST | "preprod.intranet.sfimultimedia.com" |
FTP_INTRANET_SFI_PASSWORD | "iAw453e?iAw453e?" |
FTP_INTRANET_SFI_USER | "intranetpreprod" |
GED_ABSOLUTE_DIRECTORY_PATH | "/var/www/pol-api-ged/application/data/ged" |
GEONAME_API_TOKEN | "ceciestuntestpourSfi/0000" |
IMPORT_ONDUPACK_PATH_FILE | "/httpdocs/app-pol-crm/dev/current/application/data/import_ondupack" |
INSEE_API_SIRENE_KEY | "09afd2bf-050b-465e-afd2-bf050b865e20" |
IS_MAINTENANCE | "false" |
JWT_PASSPHRASE | "7de1072d7a8fcab69679c1892deb39a7" |
JWT_PUBLIC_KEY | "%kernel.project_dir%/config/jwt/public.pem" |
JWT_SECRET_KEY | "%kernel.project_dir%/config/jwt/private.pem" |
JWT_WHITELIST_PATH | "%kernel.project_dir%/var/tokens" |
MAILER_URL | "smtp://127.0.0.1:1025" |
MAILING_ENV_USER | "depot_mailing_dev-xv42" |
MESSENGER_TRANSPORT_DSN_MIDDLEWARE | "amqp://sfiweb:sfiwweb0000@127.0.0.1:5672/%2f/dev_middleware_messages" |
MESSENGER_TRANSPORT_DSN_NOTIFY | "amqp://sfiweb:sfiwweb0000@127.0.0.1:5672/%2f/dev_notify_messages" |
MESSENGER_TRANSPORT_DSN_SEARCH | "amqp://sfiweb:sfiwweb0000@127.0.0.1:5672/%2f/dev_messages" |
MICROSOFT_GRAPH_API_CLIENT_ID | "3b7f02c4-aa14-4e54-a2b9-2ee1d5d17f8a" |
MICROSOFT_GRAPH_API_CLIENT_SECRET | "FID8Q~zfFRP~Gw-85LpaCj0VqrrRr__HMGpI-drP" |
MICROSOFT_GRAPH_API_NOTIFICATION_URL | "https://dev.app.pol-crm.com/api/microsoft-graph/outlook-subscription-configuration" |
MICROSOFT_GRAPH_API_REDIRECT_URI | "https://dev.pol-crm.com/microsoft-graph" |
MICROSOFT_GRAPH_API_SUBSCRIPTION_EXPIRED_AT | "+2 days" |
MICROSOFT_GRAPH_API_TOKEN_LIFETIME | "+2 days" |
MODULE_MICROSOFT_GRAPH_SECRET | "jqsFP7MjEx1FBe1138D3" |
MONOLOG_APPLICATION_ENVIRONMENT | "dev" |
MONOLOG_APPLICATION_NAME | "pol-middleware" |
MONOLOG_SUBJECT | "[DEV][%level_name%] POL-MIDDLEWARE - %message%" |
MONOLOG_TO_EMAIL | "polv3.log@sfi.fr" |
MYSQL_DATABASE | "dev_pol_core" |
MYSQL_HOST | "127.0.0.1" |
MYSQL_PASSWORD | "VTgooWkhcjebxLPy8E2ycoTjytrULgNQ" |
MYSQL_PORT | "3306" |
MYSQL_USER | "dev_pol_core" |
PREFIX_CUSTOMER_NAME_MAILING | "[DEV]" |
REDIS_ENABLE_V4 | "true" |
REDIS_PREFIX | "dev" |
REDIS_URL | "redis://127.0.0.1:6379" |
SECURITY_ENABLE_TOKEN_WHITELIST | "0" |
SENTRY_DSN | "https://99729cc06c8241e3b07e3f6ae9b6feec@sentry.sfimultimedia.com/9" |
SENTRY_ENVIRONMENT | "dev" |
SENTRY_PERFORMANCE_SAMPLE_RATE | "1.0" |
SFI_MAILING_URL | "https://mailing.sfi.fr/webservices/recupererContactPol.php" |
SFI_SSO_FORCE_CREDENTIALS | "87;707" |
SFI_SSO_MAILING_HOST | "https://mailing.sfi.fr/webservices/sso.php" |
SYSTEMUSER_0662705af65c48908b017d8fb0724bac_PASSWORD | "7G4k4WhQZDkkB5IGLRPcdfik5s58gf58f2g5s6W6T6BXfbYj2H_customer_newco" |
SYSTEMUSER_0662705af65c48908b017d8fb0724bac_USERNAME | "system_0662705af65c48908b017d8fb0724bac" |
SYSTEMUSER_customer_124_PASSWORD | "A6uraa5HQ87hY*unfx3$mr158!d7i*TX_customer_124" |
SYSTEMUSER_customer_124_USERNAME | "system_customer_124" |
SYSTEMUSER_customer_65_PASSWORD | "uBRJV4pUKP1wRk4iULwMnty93MPr4qr3Sod8jFlfJwZdURZB_customer_65" |
SYSTEMUSER_customer_65_USERNAME | "system_customer_65" |
SYSTEMUSER_customer_66_PASSWORD | "7G4k4WhQZDkkB5IGLRPcdfik3tOZfL4PVfs6W6T6BXfbYj2H_customer_66" |
SYSTEMUSER_customer_66_USERNAME | "system_customer_66" |
SYSTEMUSER_customer_98_PASSWORD | "wWZJwEgYjqLdPx77B1o9GR7r6r4Fvug82fmALJLvQCBjWD4G_customer_98" |
SYSTEMUSER_customer_98_USERNAME | "system_customer_98" |
SYSTEMUSER_e8919dbc01f34f79ab22b9c434f114eb_PASSWORD | "TPB5ccJCl4ZL5jurkpedelfwdEiYRt4g30xYM82" |
SYSTEMUSER_e8919dbc01f34f79ab22b9c434f114eb_USERNAME | "system_e8919dbc01f34f79ab22b9c434f114eb" |
Defined as regular env variables
Key | Value |
---|---|
APP_DEBUG | "1" |
CONTENT_LENGTH | "128" |
CONTENT_TYPE | "application/json" |
CONTEXT_DOCUMENT_ROOT | "/var/www/vhosts/app.pol-crm.com/httpdocs/app-pol-crm/dev/current/application/public" |
CONTEXT_PREFIX | "" |
DOCUMENT_ROOT | "/var/www/vhosts/app.pol-crm.com/httpdocs/app-pol-crm/dev/current/application/public" |
FCGI_ROLE | "RESPONDER" |
GATEWAY_INTERFACE | "CGI/1.1" |
HOME | "/var/www/vhosts/app.pol-crm.com" |
HTTPS | "on" |
HTTP_ACCEPT | "application/ld+json" |
HTTP_ACCEPT_ENCODING | "gzip, deflate, br, zstd" |
HTTP_ACCEPT_LANGUAGE | "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7" |
HTTP_CONNECTION | "close" |
HTTP_HOST | "dev.app.pol-crm.com" |
HTTP_ORIGIN | "https://dev.pol-crm.com" |
HTTP_PRIORITY | "u=1, i" |
HTTP_REFERER | "https://dev.pol-crm.com/" |
HTTP_SEC_CH_UA | ""Google Chrome";v="141", "Not?A_Brand";v="8", "Chromium";v="141"" |
HTTP_SEC_CH_UA_MOBILE | "?0" |
HTTP_SEC_CH_UA_PLATFORM | ""Linux"" |
HTTP_SEC_FETCH_DEST | "empty" |
HTTP_SEC_FETCH_MODE | "cors" |
HTTP_SEC_FETCH_SITE | "same-site" |
HTTP_USER_AGENT | "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36" |
HTTP_X_ACCEL_INTERNAL | "/internal-nginx-static-location" |
HTTP_X_POL_AUTH | "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE3NjA2MjM0MDIsImV4cCI6MTc2MDYyNzAwMiwicm9sZXMiOlsiUk9MRV9VU0VSIiwiUk9MRV9TVVBFUkFETUlOIiwiUk9MRV9BRE1JTiIsIlJPTEVfTU9EVUxFX01JQ1JPU09GVF9HUkFQSCIsIlJPTEVfTU9EVUxFX1BST0RVQ1QiLCJST0xFX01PRFVMRV9QUk9EVUNUX0NVU1RPTUlaRSIsIlJPTEVfTU9EVUxFX1FVT1RFX0xJTkUiLCJQUk9TUEVDVF9TSE9XIiwiUFJPU1BFQ1RfQ1VEIiwiQ09OVEFDVF9DVUQiLCJDT05UQUNUX1NIT1ciLCJUQVNLX1NIT1ciLCJUQVNLX0NVRCIsIlFVT1RFX1NIT1ciLCJRVU9URV9DVUQiLCJRVU9URV9SRUdFTkVSQVRFX1BSSUNFUyJdLCJsb2dpbiI6ImRlbW9wbGVuZXR1ZGUiLCJ1c2VyX2lkIjoiMWFlYjFiMDg5ZDE0NDM1NzhmM2QyZWNhMWY2YWJlYWYiLCJ1c2VyX2V4dGVybmFsX2lkIjoiMTY1MTc1NjUwMCIsImVtYWlsIjoiZ2VzdGlvbkFPc2FsbGFuY2hlc0Bncm91cGUtcGxlbmV0dWRlLmZyIiwiY3VzdG9tZXJfaWQiOiJlODkxOWRiYzAxZjM0Zjc5YWIyMmI5YzQzNGYxMTRlYiIsImN1c3RvbWVyX25hbWUiOiJHcm91cGUgUGzDqW7DqXR1ZGUiLCJjdXN0b21lcl9leHRlcm5hbF9pZCI6IjE2NDQ1OTM0OTciLCJjdXN0b21lcl9tYWlsaW5nX2lkIjoiMjU0IiwiZmlyc3RuYW1lIjoiR3VpbGxhdW1lIiwibGFzdG5hbWUiOiJTQVVUUk9OIiwibGl2ZW9Mb2dpbiI6bnVsbCwibGl2ZW9QYXNzd29yZCI6bnVsbCwiaGFzSW50cmFuZXQiOmZhbHNlLCJsYW5ndWFnZSI6IkZSIiwic2VjdGlvbnNfbGVhZGVkIjpbIkFHQiIsIkFHQiAtIFBMRU5FVFVERSIsIkFHQiAtIFBST0xZU0UiLCJBR0IgLSBQRVhJTiIsIkFHQiAtIFBFR0lNRSIsIkFHQiAtIFBSSU9TVVIiLCJEaXJlY3Rpb24gR8OpbsOpcmFsZSIsIkFHRyIsIkFHRyAtIFBST0xZU0UiLCJBR0cgLSBQRUdJTUUiLCJBR0cgLSBQTEVORVRVREUiLCJBR0cgLSBQTEVORVRVREUgLSBDb2xsYWJvcmF0ZXVyIiwiQUdHIC0gUFJJT1NVUiIsIkFHRyAtIFBFWElOIiwiQUdHIC0gUEVYSU4gLSBDb2xsYWJvcmF0ZXVyIiwiQUdDIiwiQUdDIC0gUFJJT1NVUiIsIkFHQyAtIFBST0xZU0UiLCJBR0MgLSBQRUdJTUUiLCJBR0MgLSBQTEVORVRVREUiLCJBR0MgLSBQRVhJTiIsIkFHQyAtIFBFWElOIC0gQ29sbGFib3JhdGV1ciIsIkFHViIsIkFHViAtIFBSSU9TVVIiLCJBR1YgLSBQRUdJTUUiLCJBR1YgLSBQUk9MWVNFIiwiQUdWIC0gUExFTkVUVURFIiwiQUdBIiwiQUdBIC0gUFJPTFlTRSIsIkFHQSAtIFBFWElOIiwiQUdBIC0gUEVHSU1FIiwiQUdBIC0gUFJJT1NVUiIsIkFHQSAtIFBMRU5FVFVERSIsIlJWSSIsIlJWSSAtIENWQyAvIFBMQiIsIlJWSSAtIEVudmlyb25uZW1lbnRhbCIsIlJWSSAtIENGTyAvIENGQSIsIkFHUyIsIkFHUyAtIFBFR0lNRSIsIkFHUyAtIFBMRU5FVFVERSIsIkFHUyAtIFBFWElOIiwiQUdTIC0gUFJPTFlTRSIsIkFHUyAtIFBSSU9TVVIiLCJBR0wiLCJBR0wgLSBQUk9MWVNFIiwiQUdMIC0gUFJJT1NVUiIsIkFHTCAtIFBMRU5FVFVERSIsIkFHTCAtIFBFWElOIiwiQUdMIC0gUEVYSU4gLSBDb2xsYWJvcmF0ZXVyIiwiQUdMIC0gUExFTkVUVURFIC0gMiIsIkFHTCAtIFBFR0lNRSJdLCJzZWN0aW9uc19tZW1iZXJzIjpbIjFhZWIxYjA4OWQxNDQzNTc4ZjNkMmVjYTFmNmFiZWFmIiwiMDY1OWU4Mjk0NDE2NDBhYmI0ZTc2ZTc0MWNmMDQzMTEiLCIwODU1YjIxMDdlODg0ZDU3YTUxNTcwY2QyYTk4YmZhMyIsIjBkMGQ4OTEyOWI4ZjRmODI4NTczN2QzZTJjYzRhMmEwIiwiNDczZDBjOWNjMjQ1NGEwOGJmYjYzZjgyZmNhY2I2NzYiLCI5ZmVkZmUxZWRiYjE0OTIzYWVmM2M2ZjZlZDhjZjJmZCIsImNlMTJhMjI1OTA1ZTQzZTNiZTUwMzk0ODRiNzFlNGViIiwiM2MzZmQ1NWFjYTQyNGUzYzhkYTUwYzdjOTQ2YmE4OWUiLCIyNTIyZGJlMzNjOTA0OTU0ODIxOTVhNjQwZjRiYTk0NiIsIjYyZWRhYjk5OTdkNTQyYTFhODgwNzdlMjFmZjU0NDIzIiwiYTUzY2Q3YWI0OGU0NGNhZmE0YmRjMzc2MDc1NWFiMTUiLCIwNjhkNTI1Y2ZmMjQ0NDlkODE4MjI3ZWFlNDRmZmRhYyIsIjQzZjFhNTM0N2Q2ZjRkODM5MDdkM2QzZDQ2Y2QyY2E0IiwiNTJlYzllNGQ4OTc2NGY5MjgyNDI1ZmU0NmFhN2MzOGYiLCJiZGU5Njk2NDJhNjQ0YjY1ODZmN2NiZGY2YjJmNDg4NiIsImM1OTliNWIwNzFhODQ2NjE4NzhjNGIzODQ5NjhlYjAzIiwiZTFiMzE2MGZlOGExNGJjNDg0ZWJkZDMwZDRkNGRhOTAiLCI2NDdjMDNhYTRjYmI0YmVlYTI2NzE3Yzc2MWZiMTVhNiIsIjliZjUyZDAzMjRhMTQxY2U5YjM3Mzk1ZmQ4NjQyYThhIiwiZjc5MWNhYzkzNTBhNDE4ZmI4YjA2NTI5YWIwNzcxMmUiLCIyMzRjOGJmZGM2MDg0OTljYjcyZmI0NGQwMDYyODNmOSIsIjhmOTkzMmVkNDNhMzRhNjZiYjM5MjA3M2E5OTk3ZWYyIiwiNTQ3MTU2YzI2MDFkNDQ0ZmE5ZjU2MWM3NGU5YmMwMWEiLCJkZWI2NjE3OWZhNTA0MzZmYmNkNjBlZWNiNTQ1NTIzYSIsImY3ZDgwOWQ4NmQ1ZjQ4NWI5NzkzZWIwN2VlNjc4N2ExIiwiODNlODA3ZmIxYTNkNGM4NTg0YWI2ZGE1YmY5YWFhNTYiLCJlZjk1OGVkMTJhNjU0ZDkwYWYzZWIwMmNkNjMxNjBiNyIsIjQ2NTdkYmQzNGY5NDRmMDdiMzA2MjViZmI4MmU5YzY0IiwiNjZkYjFmOWEwMmU5NDY4Zjk0ZDc0YmIzZmU1MWI5MTQiLCI2N2I0ZGI5MGRjYTY0MDg4YTEzYTNjMTBhOGU1NDgzOCIsIjg4YWU2ODM2YzFmMTQ0MTI5ODJiNmY3MTg0ZDY4MzViIiwiYzhhYjAxNDk0OTY4NGJjMWFkNzMzYTFkZGFmZTdjZTgiLCJmNDZhMjM2YTc5MGQ0MDYxODdmZjUxOTVlNGM0ZDdhNSIsImY1MDQ3YWYzMWVjMzRjODg4ZjkxYmVlZTNjOWFmYmQ0IiwiY2U0YzBkZmU4NWM0NDkzYzkwYzMzZGM1Mzk5MTQzOTgiLCJlOGZiYWVkZjNjZDc0ODBhOTY4YjI3OTUwMDZmNzRiNiIsImQ5ZjU1NGVkMjkyMjRhZWNhOTk4OTA4OGUyZmIyM2IwIiwiMWE3NDA3MDYyNTMwNDlhNWFkZGRiOTgxMmY0YzQ4NmUiLCI0ZWM4NDRlMTE1MGQ0ZjRiYTFhNDA4M2U0YmJkY2M4ZiIsIjU1NDY0ZTI0ZWIwMTRhNDlhYTU3NWNhNTcyZGFhYTkzIiwiODA5ZjZkZTQ2YThmNDk4YmI3MmNlZDEzNWI4NDdlNjUiLCJhYjk0YTA5YTM5NTc0NDZmYjkyOTEwNzM5YTcxZDBjMCIsImFmMWE4ZWFiNmFkNjQ1YTk5MzQ4NTBiNDljYmM3YjBkIiwiZDNhNzkyNmI4MzYzNDUxNjkyYjIxYjBiNzdlM2ViNDciLCJmNGU5OWQ3Yjc2OWI0ZjRiYWYxZGFjMDVjMTc1NGE3MCIsIjJkZmY5ZTc3MTA5ZjQ2MTA5MjIyNWU0OWU0YzJjNjBhIiwiMjIxNTZlMTQyYmM5NDgxNTg4MjhiMGQ3OTkwMTYzMGIiLCJhOTk3ZGFhM2IyYTY0ZTQxOTUyZjNkNDMyYTc0YzJiZCIsIjE4N2FmZTJjYTRiOTRmYzU4ZTFhNzJhNmVkNzY4N2JjIiwiN2Q1YWMxMjUxODAzNDQ2MTgyZTllNzkzYzdhOTkzYjciLCJhNTQ5NDhiN2NjM2I0NGNmOTYzNGNjZjRjNjVkYzk4OCIsIjc3ODM1ZDAyNTg5NTRlZjdiMjIxMDNiZjNkODdmY2Q4IiwiNzhkMzgxN2JjOTIzNGFhMDg4Y2FhN2IwZTU0OTU1ODciLCJhZTcyNWMwMDcwZjc0ZmI2YjdkZGRiNWUxOWRlYmI3MyIsImQxZGM0Yzg5MDY0ZDQ2MWY4ODFmOGNiMDljZWI1ZWU2IiwiOGEzZmMzMmQyYTg2NDBmNjgzMzMyZjFiMjhkOTY1YzIiLCJhMTliYmZlOTBhODc0YzIzYWFlNjgxYzUzYjc5OWMyMyIsIjFiYTcwYzQwYjQ1YjRkMGFhNTQxN2UyNTg4YmU3YWI0IiwiYzkwN2NmNWYzMjMxNGU0NjlmMjBhZjNlNTgwZWFkYTAiLCI0MjVlYzEyNjk4NTY0NzQ3YWZiYjg0OTc4M2ZkYTdlYyIsImJlNjE1Y2QzYjM3YjRkZjBiYjc1YjFjYzMzMDQ5ZGMyIiwiZjE0ZmMwZWU2MmFhNGEwNWI4Y2IyMTUxODdkNDVjNGYiLCIwYWYwZDhjMTk1MDM0MDkwOWYyMmZkMDJmOTQxNGYzZSIsImFhYWRmY2NlNzE4ZTQyN2ZiY2E3Y2E3YmQ0MDJmMmMyIiwiOWIyOGM4MTBjMjBiNDJlMjg1NjQ5MTZlNTFmZmZlMmYiLCI5NWQwZDdlMmI5Yzk0ODY5OTJmMTk2NzIyODQzYTc5NCIsIjQ4OWIxOGZkNGRmNTRmOTdiOWU1MTg1ZDFhZjZkMWM3IiwiZjFlODdlMDRkZTExNDk4OGFlMDc4M2ZjNDAzNzUyNjQiLCIyOWRkNmE0ZDY0YTA0NzNiYmUyMTc5ODk2OGI5NDgzNyJdLCJpc19zZWN0aW9uc19hY3RpdmF0ZWQiOnRydWUsInJlZnJlc2hfdG9rZW4iOiIifQ.IbE8X1-18xjSZgPnQ4MIL_u4J_kzfUDmiCFfk0R9yLz7cS6CKkKcJtE-bStAuQkyb0Y2QPRxoioPXJ9UrmPKvg62mGUh_qLkenjZijSLqnhDsGzs76Xwioz81JhMlAIQfOVEa06aRQgYgr668ChLsXrExGzHy_OQKUObr6dWwufF2UbryMI1dg25O8RfY92yZlyNrd9zlnNJx3BWcrq2Lo0BS1ukzXQR5r5wVtyS00fxiCnaRhX99FUrFJPqG2Wv7ZXbwMbNO7OYFn6S1Cw00QpjHKpz6Oem-ZbToOgznXRg1ecPGYKeRCDauDLy_mONuJUOotrtA8Bz_F6hGmtNQtoJtDk6gWwywTzRKMZw5n020g2g-CjlnmjsKjQMP9g_50L8LxuuTKRg9DKZAPC_KEUOnkSBC0LyG83gCRaDxzUkPjH77DlFgKNVXFxmjVWVIg2XUmtrSbO7hE7EcFza4tC3NwGOQn8verQaFrykU8X-fFES54Gvz6NaySiY2N_FBxz6QXYqlbEHsoSeRQRsPYelZ_23Mp64PYmUp7qxQvQ0-4Mp98hppk8mCM9d9kdNZV0KXbCvy4qsQAT5pgydf_fVWTwXrejNKYY6yP_6yGY-76PVgxQiKnObERzoYPfzP2t5pscc0Z_ugwu7j-9La_oFI14nDwRYAyt5CHDG698" |
HTTP_X_REAL_IP | "37.58.179.19" |
HTTP_X_TRANSACTION_ID | "front:ifptmy4e7uo" |
PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY | "0" |
PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY | "0" |
PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" |
PHP_SELF | "/index.php" |
QUERY_STRING | "" |
REDIRECT_HTTPS | "on" |
REDIRECT_PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY | "0" |
REDIRECT_PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY | "0" |
REDIRECT_SSL_TLS_SNI | "dev.app.pol-crm.com" |
REDIRECT_STATUS | "200" |
REDIRECT_URL | "/api/quote/753d0f24880b40db9a45aa5fe5f480d0/generatepdf" |
REMOTE_ADDR | "37.58.179.19" |
REMOTE_PORT | "39730" |
REQUEST_METHOD | "GET" |
REQUEST_SCHEME | "https" |
REQUEST_TIME | 1760623467 |
REQUEST_TIME_FLOAT | 1760623467.1336 |
REQUEST_URI | "/api/quote/753d0f24880b40db9a45aa5fe5f480d0/generatepdf" |
SCRIPT_FILENAME | "/var/www/vhosts/app.pol-crm.com/httpdocs/app-pol-crm/dev/current/application/public/index.php" |
SCRIPT_NAME | "/index.php" |
SERVER_ADDR | "185.18.171.8" |
SERVER_ADMIN | "[no address given]" |
SERVER_NAME | "dev.app.pol-crm.com" |
SERVER_PORT | "443" |
SERVER_PROTOCOL | "HTTP/1.0" |
SERVER_SIGNATURE | "<address>Apache Server at dev.app.pol-crm.com Port 443</address>\n" |
SERVER_SOFTWARE | "Apache" |
SSL_TLS_SNI | "dev.app.pol-crm.com" |
SYMFONY_DOTENV_VARS | "APP_ENV,APP_SECRET,BDD_API_BUSINESS,BDD_API_CRM,BDD_API_GED,BDD_API_NOTIFY,BDD_API_PARAM,BDD_API_SEARCH,BDD_API_USER,BDD_MIDDLEWARE,BDD_SERVICE_PLENETUDE,MYSQL_HOST,MYSQL_PORT,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DATABASE,DATABASE_URL,MAILER_URL,CORS_ALLOW_ORIGIN,JWT_SECRET_KEY,JWT_PUBLIC_KEY,JWT_PASSPHRASE,JWT_WHITELIST_PATH,MONOLOG_SUBJECT,MONOLOG_TO_EMAIL,MONOLOG_APPLICATION_NAME,MONOLOG_APPLICATION_ENVIRONMENT,MESSENGER_TRANSPORT_DSN_SEARCH,MESSENGER_TRANSPORT_DSN_NOTIFY,MESSENGER_TRANSPORT_DSN_MIDDLEWARE,SENTRY_DSN,SENTRY_ENVIRONMENT,SENTRY_PERFORMANCE_SAMPLE_RATE,IS_MAINTENANCE,SECURITY_ENABLE_TOKEN_WHITELIST,REDIS_ENABLE_V4,REDIS_URL,API_BUSINESS_HOST,API_CRM_HOST,API_GED_HOST,API_NOTIFY_HOST,API_PARAM_HOST,API_SEARCH_HOST,API_USER_HOST,API_MIDDLEWARE_HOST,API_SERVICE_PLENETUDE_HOST,API_POL_MAILING,API_POL_MAILING_V2,API_LIVEO,MAILING_ENV_USER,FTP_INTRANET_SFI_HOST,FTP_INTRANET_SFI_USER,FTP_INTRANET_SFI_PASSWORD,SFI_SSO_FORCE_CREDENTIALS,MICROSOFT_GRAPH_API_REDIRECT_URI,MICROSOFT_GRAPH_API_CLIENT_ID,MICROSOFT_GRAPH_API_NOTIFICATION_URL,MICROSOFT_GRAPH_API_CLIENT_SECRET,MICROSOFT_GRAPH_API_SUBSCRIPTION_EXPIRED_AT,MODULE_MICROSOFT_GRAPH_SECRET,INSEE_API_SIRENE_KEY,GEONAME_API_TOKEN,GED_ABSOLUTE_DIRECTORY_PATH,IMPORT_ONDUPACK_PATH_FILE,FRONT_URL,REDIS_PREFIX,SFI_SSO_MAILING_HOST,SFI_MAILING_URL,PREFIX_CUSTOMER_NAME_MAILING,MICROSOFT_GRAPH_API_TOKEN_LIFETIME,SYSTEMUSER_e8919dbc01f34f79ab22b9c434f114eb_USERNAME,SYSTEMUSER_e8919dbc01f34f79ab22b9c434f114eb_PASSWORD,SYSTEMUSER_customer_65_USERNAME,SYSTEMUSER_customer_65_PASSWORD,SYSTEMUSER_customer_66_USERNAME,SYSTEMUSER_customer_66_PASSWORD,SYSTEMUSER_customer_124_USERNAME,SYSTEMUSER_customer_124_PASSWORD,SYSTEMUSER_0662705af65c48908b017d8fb0724bac_USERNAME,SYSTEMUSER_0662705af65c48908b017d8fb0724bac_PASSWORD,SYSTEMUSER_customer_98_USERNAME,SYSTEMUSER_customer_98_PASSWORD,BEGIN_DATE,END_DATE" |
USER | "app-pol-crm" |
proxy-nokeepalive | "1" |
Parent Request
Return to parent request (token = eafe35)
Key | Value |
---|---|
_controller | "App\Controller\Quote\QuoteController::generateQuotePdf" |
_firewall_context | "security.firewall.map.context.api" |
_links | Fig\Link\GenericLinkProvider {#7079 -links: [ "00000000779c40cb000000000f100361" => Fig\Link\Link {#7080 -href: "https://dev.app.pol-crm.com/api/docs.jsonld" -rel: [ "http://www.w3.org/ns/hydra/core#apiDocumentation" => true ] -attributes: [] } ] } |
_route | "quote_generate_pdf" |
_route_params | [ "id" => "753d0f24880b40db9a45aa5fe5f480d0" ] |
_stopwatch_token | "415cbb" |
id | "753d0f24880b40db9a45aa5fe5f480d0" |