1import{C as r,P as s}from"./polyfazer-app-DumDTOPg.js";import"./diamond-listing-2-CZxxStx-.js";import{L as l}from"./lang-helper-behavior-D3p_DZHb.js";import{b as d}from"./bank-account-services-DJ_eiVaj.js";import{P as c}from"./PolyfazerFilter-G6wDdeD6.js";import{v as n,a5 as m,H as p,A as u,Y as g}from"./main-BEpca-0G.js";import"./select-region-input-CrDRgh49.js";import"./date-period-input-Bhj26AcT.js";import{billingListingStyles as v}from"./billing-listing-pICKrrZb.js";import{a as f}from"./billing-services-B8qK7uPA.js";import{parasiteInvoicesListingStyles as y}from"./parasite-invoice-listing-DFTeNDcD.js";import{a as b}from"./parasite-services-B_DDr0WG.js";import"./session-statistics-report-details-DM5hdYcX.js";import"./dom-variable-4vxcuSj0.js";import{h as o}from"./polymer-utils-B8xivS0d.js";import{m as i}from"./diamond-table-DiX_YLmS.js";import"./question-tag-C9ym_uv9.js";import"./PolyfazerFiltersManager-B20DzVOd.js";import"./ExtendedDate-BLMVein7.js";import"./dialog-input-behavior-DcN20D9O.js";import"./input-mixin-CrUPo4TG.js";import"./date-range-input-Box24sRP.js";import"./vaadin-date-picker-C0nM5XdO.js";import"./typography-WuKe67Dy.js";import"./vaadin-button-styles-BwN-jsYe.js";import"./BetterHTML-BN6nzApa.js";import"./BetterTemplateHandling-CTXk4mRb.js";import"./theme-mixin-UzPGm89E.js";import"./stamp-repeat-CtgpozQL.js";import"./filters-behavior-BUO4aVrX.js";import"./diamond-section-overlay-D3ZGchRP.js";class P extends r(l(s)){static get unpaidPartnerInvoices(){return o` 2 <paper-material> 3 <diamond-table as="billing" unique-id="account-unpaid-partner-invoices" headers="[[unpaidPartnerInvoicesTableHeaders]]" items="[[statistics.unpaidPartnerInvoices]]" can-modify> 4 <template> 5 <a class="diamond-row" billing-id$="[[billing.id]]" href$="/billing/[[billing.id]]/details" state$="[[billing.state]]"> 6 ${v} 7 8 <diamond-item name="icon"> 9 <template is="dom-if" if="[[isEqual(billing.state, 'PENDING')]]"> 10 <question-tag class="state-icon" icon="schedule">[[_lang('waitingToBeApproved')]]</question-tag> 11 </template> 12 <template is="dom-if" if="[[isEqual(billing.state, 'APPROVED')]]"> 13 <question-tag class="state-icon" icon="check">[[_lang('approved')]]</question-tag> 14 </template> 15 <template is="dom-if" if="[[isEqual(billing.state, 'DECLINED')]]"> 16 <question-tag class="state-icon" icon="close">[[_lang('declined')]]</question-tag> 17 </template> 18 </diamond-item> 19 <diamond-item text="#[[billing.id]]" name="id"></diamond-item> 20 <diamond-item text="[[millisecondsToDate(billing.createdOn, 0, 0)]]" name="createdOn"></diamond-item> 21 <diamond-item name="partner"> 22 <redirect-item item="[[billing.partner]]" href="/partners/[[billing.partner.id]]"></redirect-item> 23 </diamond-item> 24 <diamond-item name="period"> 25 <div class="inner"> 26 [[millisecondsToDate(billing.periodFrom, 0, 0, 1, billing.invoiceData.serviceLocationTimezone)]] 27 <br> 28 [[millisecondsToDate(billing.periodTo, 0, 0, 1, billing.invoiceData.serviceLocationTimezone)]] 29 </div> 30 </diamond-item> 31 <diamond-item text="[[millisecondsToDate(billing.periodFrom, 0, 0, 1, billing.invoiceData.serviceLocationTimezone)]]" name="periodFrom"></diamond-item> 32 <diamond-item text="[[millisecondsToDate(billing.periodTo, 0, 0, 1, billing.invoiceData.serviceLocationTimezone)]]" name="periodTo"></diamond-item> 33 <diamond-item name="total"> 34 <price-display price="[[billing.totalCost]]" currency="[[billing.invoiceData.currency]]"></price-display> 35 </diamond-item> 36 <diamond-item name="paymentAmountLeft"> 37 <price-display price="[[billing.paymentAmountLeft]]" currency="[[billing.invoiceData.currency]]"></price-display> 38 </diamond-item> 39 <diamond-item name="totalStylized"> 40 <div class="inner" billing-type$="[[billing.type]]" not-null$="[[!isEqual(billing.totalCost, 0)]]"> 41 <span class="price"> 42 <template is="dom-if" if="[[!isEqual(billing.totalCost, 0, NULL)]]"> 43 <template is="dom-if" if="[[isEqual(billing.type, 'POLYFAZER_PAYS_PARTNER')]]"> 44 <iron-icon class="unify" icon="arrow-drop-down"></iron-icon> 45 </template> 46 <template is="dom-if" if="[[isEqual(billing.type, 'PARTNER_PAYS_POLYFAZER')]]"> 47 <iron-icon class="unify" icon="arrow-drop-up"></iron-icon> 48 </template> 49 </template> 50 <span>[[billing.totalCost]] [[_lang(billing.currency)]]</span> 51 </span> 52 </div> 53 </diamond-item> 54 <diamond-item text="[[_lang(billing.type)]]" name="type"></diamond-item> 55 <diamond-item text="[[millisecondsToDate(billing.sentToPartnerOn, 0, 0)]]" fallback="-" name="sentToPartnerOn"></diamond-item> 56 <diamond-item text="[[billing.entryNumberString]]" name="entryNumberString" fallback="-"></diamond-item> 57 <diamond-item name="invoice"> 58 <div class="inner flex-row center"> 59 <template is="dom-if" if="[[billing.invoiceAvailable]]"> 60 <paper-icon-button class="action-button" icon="picture-as-pdf" on-click="preventDefault" on-mouseup="_downloadPartnerInvoice"></paper-icon-button> 61 </template> 62 <template is="dom-if" if="[[!billing.invoiceAvailable]]">-</template> 63 </div> 64 </diamond-item> 65 </a> 66 </template>
67 </diamond-table> 68 </paper-material> 69 `}static get unpaidParasiteInvoices(){return o` 70 <paper-material> 71 <diamond-table as="invoice" unique-id="account-unpaid-parasite-invoices" headers="[[unpaidParasiteInvoicesTableHeaders]]" items="[[statistics.unpaidParasiteInvoices]]" can-modify> 72 <template> 73 <a class="diamond-row" invoice-id$="[[invoice.id]]" href$="/provisions/[[invoice.id]]/details" state$="[[invoice.state]]"> 74 ${y} 75 76 <diamond-item name="icon"> 77 <template is="dom-if" if="[[isEqual(invoice.state, 'PENDING_APPROVAL')]]"> 78 <question-tag class="state-icon" icon="schedule">[[_lang('waitingToBeApproved')]]</question-tag> 79 </template> 80 <template is="dom-if" if="[[isEqual(invoice.state, 'APPROVED')]]"> 81 <question-tag class="state-icon" icon="check">[[_lang('approved')]]</question-tag> 82 </template> 83 <template is="dom-if" if="[[isEqual(invoice.state, 'DECLINED')]]"> 84 <question-tag class="state-icon" icon="close">[[_lang('declined')]]</question-tag> 85 </template> 86 </diamond-item> 87 <diamond-item text="#[[invoice.id]]" name="id"></diamond-item> 88 <diamond-item text="[[millisecondsToDate(invoice.createdOn, 0, 0)]]" name="createdOn"></diamond-item> 89 <diamond-item name="partner"> 90 <redirect-item item="[[invoice.partner]]" href="/partners/[[invoice.partner.id]]"></redirect-item> 91 </diamond-item> 92 <diamond-item name="period"> 93 [[millisecondsToDate(invoice.periodFrom, 0, 0, 1, invoice.invoiceData.serviceLocationTimezone)]] 94 <br> 95 [[millisecondsToDate(invoice.periodTo, 0, 0, 1, invoice.invoiceData.serviceLocationTimezone)]] 96 </diamond-item> 97 <diamond-item text="[[millisecondsToDate(invoice.periodFrom, 0, 0, 1, invoice.invoiceData.serviceLocationTimezone)]]" name="periodFrom"></diamond-item> 98 <diamond-item text="[[millisecondsToDate(invoice.periodTo, 0, 0, 1, invoice.invoiceData.serviceLocationTimezone)]]" name="periodTo"></diamond-item> 99 <diamond-item name="total"> 100 <price-display price="[[invoice.totalCost]]" currency="[[invoice.currency]]"></price-display> 101 </diamond-item> 102 <diamond-item name="paymentAmountLeft"> 103 <price-display price="[[invoice.paymentAmountLeft]]" currency="[[invoice.currency]]"></price-display> 104 </diamond-item> 105 <diamond-item text="[[millisecondsToDate(invoice.sentToPartnerOn, 0, 0)]]" fallback="-" name="sentToPartnerOn"></diamond-item> 106 <diamond-item name="invoice"> 107 <div class="inner flex-row center"> 108 <template is="dom-if" if="[[invoice.invoiceAvailable]]"> 109 <paper-icon-button class="action-button" icon="picture-as-pdf" on-click="preventDefault" on-mouseup="_downloadParasiteInvoice"></paper-icon-button> 110 </template> 111 <template is="dom-if" if="[[!invoice.invoiceAvailable]]">-</template> 112 </div> 113 </diamond-item> 114 </a> 115 </template>
116 </diamond-table> 117 </paper-material> 118 `}static get transactionUnknownPaymentTemplate(){return o` 119 <template is="dom-if" if="[[isEqual(transaction.key, '${n.UNKNOWN}')]]"> 120 <iron-icon icon="warning" class="unify unknown-payment" style="fill: var(--error-color)"></iron-icon> 121 </template> 122 <template is="dom-if" if="[[!isEqual(transaction.key, '${n.UNKNOWN}')]]"> 123 <div></div> 124 </template> 125 `}static get transactionListItemTemplate(){return o` 126 <label> 127 [[translateBankAccountTransactionType(transaction.key)]] 128 129 <template is="dom-if" if="[[transaction.info]]"> 130 <question-tag>[[transaction.info]]</question-tag> 131 </template> 132 </label> 133 134 <template is="dom-if" if="[[transaction.incoming]]"> 135 <div class="price"> 136 +<price-display price="[[transaction.incoming]]" currency="[[currency]]"></price-display> 137 </div> 138 139 <div> 140 <template is="dom-if" if="[[isEqual(transaction.key, '${n.POLYFAZER_PARTNER}')]]"> 141 <question-tag class="direction-help">[[_lang('bankAccountStatisticsTransactionIncomingHelp')]]</question-tag> 142 </template> 143 144 ${this.transactionUnknownPaymentTemplate} 145 </div> 146 </template> 147 148 <template is="dom-if" if="[[transaction.outgoing]]"> 149 <template is="dom-if" if="[[transaction.incoming]]"> 150 <label></label> 151 </template> 152 153 <div class="price"> 154 -<price-display price="[[transaction.outgoing]]" currency="[[currency]]"></price-display> 155 </div> 156 157 <div> 158 <template is="dom-if" if="[[isEqual(transaction.key, '${n.POLYFAZER_PARTNER}')]]"> 159 <question-tag class="direction-help">[[_lang('bankAccountStatisticsTransactionOutgoingHelp')]]</question-tag> 160 </template> 161 162 ${this.transactionUnknownPaymentTemplate} 163 </div> 164 </template> 165 `}static get template(){return o` 166 ${super.template} 167 <style> 168 :host { 169 width: 100%; 170 display: block; 171 } 172 173 paper-material > paper-material { 174 border-radius: var(--block-border-radius) var(--block-border-radius) 0 0; 175 } 176 177 .options { 178 display: grid; 179 grid-template-columns: repeat(2, 1fr) auto; 180 grid-gap: 1em; 181 background: var(--primary-background-color); 182 padding: 20px 20px 10px; 183 } 184 185 .details[has-statistics], 186 .statistics { 187 padding: 20px; 188 } 189 190 diamond-table { 191 --loading-overlay-color: var(--surface-color); 192 --on-loading-overlay-color: var(--on-surface-color); 193 min-height: 200px; 194 } 195 196 .details { 197 position: relative; 198 min-height: 250px; 199 display: grid; 200 grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); 201 } 202 203 .details h2 { 204 margin-bottom: 1rem; 205 margin-top: 2rem; 206 } 207 208 .details .grid-table label question-tag { 209 margin: 0 0.2em; 210 } 211 212 .details .grid-table label question-tag { 213 margin-top: -3px; 214 } 215 216 .transactions { 217 grid-template-columns: auto auto 1fr; 218 grid-gap: 0.2rem 0; 219 } 220 221 .no-unknown-transactions-message, 222 .transactions .price { 223 display: flex; 224 justify-content: flex-end; 225 margin: 0 1rem; 226 } 227 228 .transactions .direction-help { 229 font-size: 1.2em; 230 } 231 232 .total-profit { 233 grid-column: span 2; 234 } 235 236 .no-unknown-transactions-message { 237 grid-column: span 2; 238 display: flex; 239 justify-content: flex-end; 240 } 241 242 @media screen and (max-width: 500px) { 243 .details, 244 .options { 245 grid-template-columns: 1fr; 246 } 247 } 248 </style> 249 250 <paper-material class="root"> 251 <paper-material class="options"> 252 <date-period-input value="{{requestData.period}}" required></date-period-input> 253 <select-region-input value="{{requestData.region}}"></select-region-input> 254 255 <paper-button on-click="refresh" disabled="[[!_canRefresh(requestData.period.from, requestData.period.to, loading)]]">[[_lang('refresh')]]</paper-button> 256 </paper-material> 257 258 <div class="details" has-statistics$="[[isset(statistics)]]"> 259 <diamond-section-overlay loading="[[loading]]" error="[[error]]" on-retry="refresh"></diamond-section-overlay> 260 261 <template is="dom-if" if="[[statistics]]"> 262 <dom-variable currency="[[statistics.currency]]" variables="currency"> 263 <template> 264 <div> 265 <h2>[[_lang('issuedInvoicesInPeriod')]]</h2> 266 <div class="grid-table"> 267 <label> 268 [[_lang('totalAmountIssued')]] 269 <question-tag>[[_lang('totalAmountIssuedPartnerPaysPolyfazerHelp')]]</question-tag> 270 </label> 271 <price-display price="[[statistics.partnerPaysPolyfazer.total]]" currency="[[currency]]"></price-display> 272 273 <label> 274 [[_lang('totalPaid')]] 275 <question-tag>[[_lang('totalPaidHelp')]]</question-tag> 276 277 </label> 278 <price-display price="[[statistics.partnerPaysPolyfazer.totalResolved]]" currency="[[currency]]"></price-display> 279 280 <label> 281 [[_lang('paidInPeriod')]] 282 <question-tag>[[_lang('paidInPeriodHelp')]]</question-tag> 283 </label> 284 <price-display price="[[statistics.partnerPaysPolyfazer.resolvedInPeriod]]" currency="[[currency]]"></price-display> 285 </div> 286 </div> 287 288 <div> 289 <h2>[[_lang('provisionPayments')]]</h2> 290 <div class="grid-table"> 291 <label> 292 [[_lang('totalAmountIssued')]] 293 <question-tag>[[_lang('totalAmountIssuedHelp')]]</question-tag> 294 </label> 295 <price-display price="[[statistics.parasites.total]]" currency="[[currency]]"></price-display> 296 297 <label> 298 [[_lang('totalPaid')]] 299 <question-tag>[[_lang('totalPaidHelp')]]</question-tag> 300 </label> 301 <price-display price="[[statistics.parasites.totalResolved]]" currency="[[currency]]"></price-display> 302 303 <label> 304 [[_lang('paidInPeriod')]] 305 <question-tag>[[_lang('paidInPeriodHelp')]]</question-tag> 306 </label> 307 <price-display price="[[statistics.parasites.resolvedInPeriod]]" currency="[[currency]]"></price-display> 308 </div> 309 </div> 310 311 <div> 312 <h2>[[_lang('paymentsToPartnersInPeriod')]]</h2> 313 <div class="grid-table"> 314 <label> 315 [[_lang('totalAmountIssued')]] 316 <question-tag>[[_lang('totalAmountIssuedHelp')]]</question-tag> 317 </label> 318 <price-display price="[[statistics.polyfazerPaysPartner.total]]" currency="[[currency]]"></price-display> 319 320 <label> 321 [[_lang('totalPaid')]] 322 <question-tag>[[_lang('totalPaidHelp')]]</question-tag> 323 </label> 324 <price-display price="[[statistics.polyfazerPaysPartner.totalResolved]]" currency="[[currency]]"></price-display> 325 326 <label> 327 [[_lang('paidInPeriod')]] 328 <question-tag>[[_lang('paidInPeriodHelp')]]</question-tag> 329 </label> 330 <price-display price="[[statistics.polyfazerPaysPartner.resolvedInPeriod]]" currency="[[currency]]"></price-display> 331 </div> 332 </div> 333 334 <div> 335 <h2 style="margin-bottom: 0">[[_lang('availableProfitInPeriod')]]</h2> 336 337 <div class="flex-row" style="justify-content: flex-start"> 338 <div class="grid-table transactions"> 339 <h1 class="total-profit price"> 340 <price-display price="[[statistics.availableFunds.total]]" currency="[[currency]]"></price-display> 341 </h1> 342 <div></div> 343 344 <template is="dom-repeat" items="[[_mapTransactions(statistics.availableFunds.breakdown)]]" as="transaction"> 345 ${this.transactionListItemTemplate} 346 </template> 347 </div> 348 </div> 349 </div> 350 351 <div> 352 <template is="dom-if" if="[[statistics.transactions]]"> 353 <h2>[[_lang('transactionsInPeriod')]]</h2> 354 </template> 355 <div class="grid-table transactions"> 356 <template is="dom-repeat" items="[[relevantTransactions]]" as="transaction"> 357 ${this.transactionListItemTemplate} 358 </template> 359 <template is="dom-if" if="[[_isUnknownTransactionTypeMissing(relevantTransactions)]]"> 360 <label class="no-unknown-transactions-message">[[_lang('allTransactionsIdentified')]]</label> 361 </template> 362 </div> 363 </div> 364 </template> 365 </dom-variable> 366 </template>
367 </div> 368 </paper-material> 369 `}static get properties(){return{accountID:Number,requestData:Object,statistics:Object,relevantTransactions:{type:Array,computed:"_mapTransactions(statistics.transactions)"},unpaidPartnerInvoicesTableHeaders:{type:Object,value:{icon:{...i.icon,hideStripe:!0,visible:!1},id:i.id,createdOn:{...i.date,visible:!1},partner:{...i.partner,width:5},period:{...i.date,visible:!1,horizontalAlign:"flex-end",field:"periodFrom"},periodFrom:i.date,periodTo:i.date,total:{label:"totalCost",field:"totalCost",horizontalAlign:"flex-end"},paymentAmountLeft:{horizontalAlign:"flex-end"},type:{filter:!1,horizontalAlign:"center",visible:!1},sentToPartnerOn:{filter:!1},entryNumberString:{field:"orderSeriesEntry.entryNumberString"},invoice:{...i.actionButton,label:"downloadInvoice",visible:!1}}},unpaidParasiteInvoicesTableHeaders:{type:Object,value:{icon:{...i.icon,hideStripe:!0,visible:!1},id:i.id,createdOn:{...i.date,width:1,visible:!1},partner:{...i.partner,width:5},period:{...i.date,width:1,field:"periodFrom",visible:!1},periodFrom:{...i.date,width:1},periodTo:{...i.date,width:1},total:{label:"totalCost",field:"totalCost",width:2,horizontalAlign:"flex-end"},paymentAmountLeft:{horizontalAlign:"flex-end"},sentToPartnerOn:{filter:!1},invoice:{...i.actionButton,label:"downloadInvoice",visible:!1}}}}}init(e){window.bankAccountStatistics=this,this.accountID!=e&&this.setProperties({accountID:e,requestData:{period:c.getValueFromRange(m.THIS_MONTH),region:null},statistics:null})}refresh(){let{period:e,region:t}=this.requestData;this.set("loading",!0),this.clearErrorFromResponse(),d.getStatistics(this.accountID,{...e,regionID:p(t,"id")||void 0}).then(a=>this.set("statistics",a),a=>this.setErrorFromResponse(a)).finally(()=>{this.set("loading",!1)})}_downloadPartnerInvoice(e){let t=this.getAttr(e,"billing-id");this.downloadFile(()=>f(t).downloadPartnerInvoice())}_downloadParasiteInvoice(e){let t=this.getAttr(e,"invoice-id");this.downloadFile(()=>b(t).downloadInvoice())}_canRefresh(e,t,a){return a?!1:e&&t}_mapTransactions(e){return u.sortWithOrder(g.mapValid(e,(t,a)=>{if(!(!a.incoming&&!a.outgoing))return{key:t,...a}}),Object.values(n),({item1:t,item2:a})=>t.key==a)}_isUnknownTransactionTypeMissing(e){return!e.some(t=>t.key==n.UNKNOWN)}}window.customElements.define("bank-account-statistics",P); 370//# sourceMappingURL=bank-account-statistics-DewreIu9.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.