[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs:api\u002FQuittio\u002FCore\u002FCalculation\u002FEn16931Calculator":3},{"versions":4,"version":26,"nav":28,"path":106,"kind":107,"page":108},[5,10,13,16,18,20,22,24],{"name":6,"label":7,"prefix":8,"channel":9},"0.7","0.7 (latest)","","latest",{"name":11,"label":12,"prefix":11,"channel":11},"next","next (unreleased)",{"name":14,"label":14,"prefix":14,"channel":15},"0.6","old",{"name":17,"label":17,"prefix":17,"channel":15},"0.5",{"name":19,"label":19,"prefix":19,"channel":15},"0.4",{"name":21,"label":21,"prefix":21,"channel":15},"0.3",{"name":23,"label":23,"prefix":23,"channel":15},"0.2",{"name":25,"label":25,"prefix":25,"channel":15},"0.1",{"name":6,"label":7,"prefix":8,"channel":9,"base":27},"\u002Fdocs",[29,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,91,94,97,100,103],{"slug":30,"title":31,"preview":32},"index","Home",false,{"slug":34,"title":35,"preview":32},"getting-started","Getting started",{"slug":37,"title":38,"preview":32},"concepts","E-invoicing basics",{"slug":40,"title":41,"preview":32},"examples","Examples",{"slug":43,"title":44,"preview":32},"building-invoices","Building invoices",{"slug":46,"title":47,"preview":32},"formats","Formats and profiles",{"slug":49,"title":50,"preview":32},"validation","Validation",{"slug":52,"title":53,"preview":32},"templates","Templates and design",{"slug":55,"title":56,"preview":32},"documents","Quotes and other documents",{"slug":58,"title":59,"preview":32},"reading","Reading incoming invoices",{"slug":61,"title":62,"preview":32},"laravel","Laravel integration",{"slug":64,"title":65,"preview":32},"configuration","Configuration",{"slug":67,"title":68,"preview":32},"commands","Artisan commands",{"slug":70,"title":71,"preview":32},"testing","Testing",{"slug":73,"title":74,"preview":32},"country-packs","Country packs",{"slug":76,"title":77,"parent":74,"preview":32},"country-at","Austria",{"slug":79,"title":80,"parent":74,"preview":32},"country-be","Belgium",{"slug":82,"title":83,"parent":74,"preview":32},"country-ch","Switzerland",{"slug":85,"title":86,"parent":74,"preview":32},"country-fr","France",{"slug":88,"title":89,"preview":90},"managed","Managed layer (preview)",true,{"slug":92,"title":93,"preview":32},"troubleshooting","Troubleshooting",{"slug":95,"title":96,"preview":32},"faq","FAQ",{"slug":98,"title":99,"preview":32},"compatibility","Versioning and compatibility",{"slug":101,"title":102,"preview":32},"field-reference","Field reference",{"slug":104,"title":105,"preview":32},"ai","AI assistants","api\u002FQuittio\u002FCore\u002FCalculation\u002FEn16931Calculator","api",{"title":109,"description":110,"html":111,"headings":112},"En16931Calculator","Calculation according to EN 16931.","\u003Cp class=\"q-api-crumbs\">\u003Ca href=\"\u002Fdocs\u002Fapi\">API reference\u003C\u002Fa> \u002F \u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\">Quittio\u003C\u002Fa> \\ \u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\">Core\u003C\u002Fa> \\ \u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\u002FCalculation\">Calculation\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch1>En16931Calculator\u003C\u002Fh1>\n\u003Cp class=\"q-api-facts\">\u003Cspan class=\"q-api-badge q-api-badge-kind\">final class\u003C\u002Fspan> in \u003Cspan class=\"q-api-badge\">quittio\u002Fcore\u003C\u002Fspan> · implements \u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\u002FCalculation\u002FTotalsCalculator\">\u003Ccode>TotalsCalculator\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp class=\"q-api-name\">\u003Ccode>Quittio\\Core\\Calculation\\En16931Calculator\u003C\u002Fcode> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FQuittio\u002Fquittio\u002Fblob\u002Fv0.7.1\u002Fpackages\u002Fcore\u002Fsrc\u002FCalculation\u002FEn16931Calculator.php#L45\">Source\u003C\u002Fa>\u003C\u002Fp>\n\n\u003Cp class=\"q-doc-lead\">Calculation according to EN 16931.\u003C\u002Fp>\n\u003Cp>Amounts are rounded half up to two decimals at the defined points only.\nVAT is calculated per VAT group (category and rate), not per line (BR-CO-17).\u003C\u002Fp>\n\u003Cp>With Meta::FLAG_DECLARED_AMOUNTS (cancellations and unchanged data of InvoiceBuilder::from()\nwhose declared amounts another system rounded differently) and a matching fingerprint of the\namount inputs (DeclaredAmounts), declared line net amounts (BT-131) within 0.02 of quantity ×\nprice ± allowances and charges (PEPPOL-EN16931-R120) and declared VAT category tax amounts\n(BT-117) less than one currency unit from the recalculation (BR-CO-17) are kept; otherwise\nthe recalculated amounts are used and Meta::FLAG_DECLARED_AMOUNTS_RECALCULATED is set\n(QUITTIO-DECLARED-AMOUNTS). Data whose amount inputs changed after the amounts were declared\n(fingerprint mismatch, e.g. a change with with() or in stored JSON) is recalculated completely.\nA declared VAT total in accounting currency (BT-111, Meta::declaredVatInTaxCurrency()) is kept\nwithin 0.01 of round2(BT-110 × exchange rate), e.g. the BT-111 of a partial cancellation\naligned with the earlier ones (Corrections\\CancellationHistory). In gross price mode the rounding amount (BT-114) follows\nthe amounts finally used, so that the amount due stays the gross amount of the lines.\nThe CalculationPolicy decides whether declared amounts are kept, recalculated or rejected.\nThe flags are read and written as DeclaredAmountsState.\u003C\u002Fp>\n\n\u003Ch2 id=\"methods\">Methods\u003Ca class=\"q-doc-anchor\" href=\"#methods\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ctable class=\"q-doc-table q-stack-table q-api-summary\">\u003Cthead>\u003Ctr>\u003Cth>Method\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>\u003Ca href=\"#method-__construct\">\u003Ccode>->__construct()\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ca href=\"#method-calculate\">\u003Ccode>->calculate()\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ca href=\"#method-policy\">\u003Ccode>->policy()\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">The policy of this calculator.\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ca href=\"#method-withPolicy\">\u003Ccode>->withPolicy()\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">The same calculator with another policy.\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Csection class=\"q-api-member\" id=\"method-__construct\">\n\u003Ch3>\u003Ccode>__construct()\u003C\u002Fcode>\u003Ca class=\"q-doc-anchor\" href=\"#method-__construct\" aria-label=\"Link to this method\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cdiv class=\"q-doc-code q-doc-code-plain\">\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan style=\"color:#FF7B72\">public\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> function\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> __construct\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:6ch;text-indent:-6ch\">\u003Cspan style=\"color:#79C0FF\">    LineCalculator\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> $lineCalculator \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> new\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> \\Quittio\\Core\\Calculation\\LineCalculator\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">(),\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:6ch;text-indent:-6ch\">\u003Cspan style=\"color:#79C0FF\">    GrossPriceConverter\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> $grossPriceConverter \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> new\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> \\Quittio\\Core\\Calculation\\GrossPriceConverter\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">(),\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:6ch;text-indent:-6ch\">\u003Cspan style=\"color:#79C0FF\">    CalculationPolicy\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> $policy \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> new\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> \\Quittio\\Core\\Calculation\\CalculationPolicy\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">(),\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan style=\"color:#E6EDF3\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\n\u003Ctable class=\"q-doc-table q-stack-table\">\u003Cthead>\u003Ctr>\u003Cth>Parameter\u003C\u002Fth>\u003Cth>Type\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>\u003Ccode>$lineCalculator\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Type\">\u003Ccode>\u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\u002FCalculation\u002FLineCalculator\">LineCalculator\u003C\u002Fa>\u003C\u002Fcode>\u003Cspan class=\"q-api-default\"> = \u003Ccode>new \\Quittio\\Core\\Calculation\\LineCalculator()\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ccode>$grossPriceConverter\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Type\">\u003Ccode>\u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\u002FCalculation\u002FGrossPriceConverter\">GrossPriceConverter\u003C\u002Fa>\u003C\u002Fcode>\u003Cspan class=\"q-api-default\"> = \u003Ccode>new \\Quittio\\Core\\Calculation\\GrossPriceConverter()\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ccode>$policy\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Type\">\u003Ccode>\u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\u002FCalculation\u002FCalculationPolicy\">CalculationPolicy\u003C\u002Fa>\u003C\u002Fcode>\u003Cspan class=\"q-api-default\"> = \u003Ccode>new \\Quittio\\Core\\Calculation\\CalculationPolicy()\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003C\u002Fsection>\n\u003Csection class=\"q-api-member\" id=\"method-calculate\">\n\u003Ch3>\u003Ccode>calculate()\u003C\u002Fcode>\u003Ca class=\"q-doc-anchor\" href=\"#method-calculate\" aria-label=\"Link to this method\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cdiv class=\"q-doc-code q-doc-code-plain\">\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan style=\"color:#FF7B72\">public\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> function\u003C\u002Fspan>\u003Cspan style=\"color:#D2A8FF\"> calculate\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">(\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">InvoiceData\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> $invoice)\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">:\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> InvoiceData\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\n\u003Ctable class=\"q-doc-table q-stack-table\">\u003Cthead>\u003Ctr>\u003Cth>Parameter\u003C\u002Fth>\u003Cth>Type\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>\u003Ccode>$invoice\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Type\">\u003Ccode>\u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\u002FData\u002FInvoiceData\">InvoiceData\u003C\u002Fa>\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cdl class=\"q-api-dl\">\n\u003Cdt>Returns\u003C\u002Fdt>\u003Cdd>\u003Ccode>\u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\u002FData\u002FInvoiceData\">InvoiceData\u003C\u002Fa>\u003C\u002Fcode>\u003C\u002Fdd>\n\u003C\u002Fdl>\n\u003C\u002Fsection>\n\u003Csection class=\"q-api-member\" id=\"method-policy\">\n\u003Ch3>\u003Ccode>policy()\u003C\u002Fcode>\u003Ca class=\"q-doc-anchor\" href=\"#method-policy\" aria-label=\"Link to this method\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cdiv class=\"q-doc-code q-doc-code-plain\">\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan style=\"color:#FF7B72\">public\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> function\u003C\u002Fspan>\u003Cspan style=\"color:#D2A8FF\"> policy\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">()\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">:\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> CalculationPolicy\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Cp>The policy of this calculator.\u003C\u002Fp>\n\n\u003Cdl class=\"q-api-dl\">\n\u003Cdt>Returns\u003C\u002Fdt>\u003Cdd>\u003Ccode>\u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\u002FCalculation\u002FCalculationPolicy\">CalculationPolicy\u003C\u002Fa>\u003C\u002Fcode>\u003C\u002Fdd>\n\u003C\u002Fdl>\n\u003C\u002Fsection>\n\u003Csection class=\"q-api-member\" id=\"method-withPolicy\">\n\u003Ch3>\u003Ccode>withPolicy()\u003C\u002Fcode>\u003Ca class=\"q-doc-anchor\" href=\"#method-withPolicy\" aria-label=\"Link to this method\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cdiv class=\"q-doc-code q-doc-code-plain\">\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan style=\"color:#FF7B72\">public\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> function\u003C\u002Fspan>\u003Cspan style=\"color:#D2A8FF\"> withPolicy\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">(\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">CalculationPolicy\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> $policy)\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">:\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> self\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Cp>The same calculator with another policy.\u003C\u002Fp>\n\n\u003Ctable class=\"q-doc-table q-stack-table\">\u003Cthead>\u003Ctr>\u003Cth>Parameter\u003C\u002Fth>\u003Cth>Type\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>\u003Ccode>$policy\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Type\">\u003Ccode>\u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\u002FCalculation\u002FCalculationPolicy\">CalculationPolicy\u003C\u002Fa>\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cdl class=\"q-api-dl\">\n\u003Cdt>Returns\u003C\u002Fdt>\u003Cdd>\u003Ccode>self\u003C\u002Fcode>\u003C\u002Fdd>\n\u003C\u002Fdl>\n\u003C\u002Fsection>",[113],{"id":114,"text":115,"level":116},"methods","Methods",2]