угловой расчет с необязательным параметром - PullRequest
0 голосов
/ 26 февраля 2019

Я внедряю инструмент для наших торговых представителей, чтобы они могли договариваться о ценах с клиентами.Я загружаю список продуктов с тарифным планом и тарифами из бэкэнда и показываю его пользователю в таблице во внешнем интерфейсе.1 продукт имеет n тарифных планов (вы могли бы выбрать только один), а один тарифный план имеет n сборов (одноразовые сборы, 0 или n фиксированных сборов, которые выплачиваются ежемесячно, и необязательная 0-2 плата за использование).Торговый представитель может дать скидку на каждый заряд.Существуют также сборы, в которых вы определяете количество.

в последнем столбце каждой строки должна быть показана цена со скидкой для сборов, БЕЗ количеств, которые должны быть рассчитаны по списковой цене (listprice / 100 * скидка).Для сборов с количествами расчет должен быть таким: (listprice- (listprice / 100 * qantity)) * количество

                             <div>
            <span>PRODUCT RATE PLAN</span>
            <mat-divider></mat-divider>
            <div *ngFor="let product of orderIntake; let productIndex = index">
                <br />
                <span class="rightpadding"><b>Product:</b> {{ product.productName }}</span><span class="rightpadding"><b>Rate plan:</b> {{ product.productRatePlans['name'] }}</span>
                <table class="subtable">
                    <tr class="header">
                        <th>CHARGE NAME</th>
                        <th>TYPE</th>
                        <th>MODEL</th>
                        <th>UOM</th>
                        <th>LISTPRICE</th>
                        <th>DISCOUNT AMOUNT</th>
                        <th>DISCOUNT PERCENTAGE</th>
                        <th>QUANTITY</th>
                        <th>PRICE</th>
                    </tr>
                    <tr>
                        <td colspan="11">
                            <mat-divider></mat-divider>
                        </td>
                    </tr>
                    <tr *ngFor="let rateplancharge of product.productRatePlans['productRatePlanCharges']; let ratePlanChargeIndex = index">
                        <td>{{ rateplancharge.name }}</td>
                        <td>{{ rateplancharge.type }}</td>
                        <td>{{ rateplancharge.model }}</td>
                        <td>{{ rateplancharge.uom }}</td>
                        <td>{{ rateplancharge.pricing['0'].price }}<span matSuffix>.00 {{ rateplancharge.pricing['0'].currency }}</span></td>
                        <td>
                            <mat-form-field appearance="outline"><input matInput disabled placeholder="Discount" value="{{ getDiscount(rateplancharge.pricing['0'].price, discountP.value | number : '1.2-2' ) }}" type="number" style="text-align: right"></mat-form-field>
                        </td>
                        <td>
                            <mat-form-field appearance="outline">
                                <input matInput placeholder="Discount %" min="0" max="10" value="0" type="number" style="text-align: right" #discountP>
                                <span matSuffix>.00 %</span>
                            </mat-form-field>
                        </td>
                        <td style="text-align: center"><span *ngIf="!rateplancharge['defaultQuantity']">N.A.</span>
                            <mat-form-field appearance="outline" *ngIf="rateplancharge.defaultQuantity">
                                <input matInput placeholder="Quantity" min="0" value="{{ rateplancharge.defaultQuantity }}" type="number" style="text-align: right" #quantityP id="quantityP{{ratePlanChargeIndex}}">
                            </mat-form-field>
                        </td>

                        <td>{{ total(rateplancharge.pricing['0'].price, discountP.value, ratePlanChargeIndex, quantityP) }}</td>
                    </tr>
                </table><br />
                <mat-divider></mat-divider>
            </div>
        </div>

Я вызываю функцию total () с различными входными параметрами, основанными на том, есть лиЕсли количество применяется или нет

, функция выглядит так:

  total(listprice, discount, index, quantityP?) {
    if (document.getElementById('quantityP' + index) !== null) {
      quantityP = document.getElementById('quantityP' + index).value;
    } else {
      quantityP = 1;
    }
    return (listprice - (listprice / 100) * discount) * quantityP;
  }

, по некоторым причинам количество всегда не определено.Кто-нибудь имеет представление, почему или знает обходной путь (я думал о реализации скрытого поля ввода со значением = "1", так что один передается в итог ... Но я столкнулся с той же проблемой ...)

Ценю вашу поддержку!:)

1 Ответ

0 голосов
/ 26 февраля 2019
total(rateplancharge.pricing['0'].price, discountP.value, quantityP)

должно быть

total(rateplancharge.pricing['0'].price, discountP.value, quantityP.value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...