私は、売り上げ以上の手数料の異なる種類の異なるスキーマを持っています。 0から10.000€までの手数料は2%、手数料は10.001から20.000、手数料は2.5%、20.001から30.000は3%の手数料です。手数料が5%以上になるまで。閾値額と手数料は、リストのデータベースから取られます。問題は、特定の基準を達成するために年初から販売を考慮に入れなければならないが、今月の販売のための手数料を計算することだけである。たとえば、ある月の売上が30.000で、累計売上が8.000である場合、計算は:2.000で2,000、10.000で2.5%、10.000で3%、8.000で3.5%となります。これは私が持っているコードですが、うまく動作しません。どんな助けもありがとう。前もって感謝します。手数料の金額を計算してください
foreach (var bound in fxCollection)
{
if (antAmount < bound.FinalAmount)
{
if (antAmount >= bound.InitialAmount && antAmount <= bound.FinalAmount)
{
if (totalAmount > bound.FinalAmount)
{
totalAmountCardSchema = totalPeriod - (bound.FinalAmount.Value - antAmount);
totalCommission += (bound.FinalAmount.Value - antAmount) * (bound.Commission/100);
}
else
{
totalCommission += totalPeriod * (bound.Commission/100);
totalCommission = 0;
}
}
else
{
if ((bound.FinalAmount - bound.InitialAmount) < totalAmountCardSchema)
{
if (index == count) //last loop
{
totalCommission += totalAmountCardSchema * (bound.Commission/100);
totalAmountCardSchema = 0;
}
else
{
totalCommission += (bound.FinalAmount.Value - bound.InitialAmount.Value) * (bound.Commission/100);
totalAmountCardSchema = totalAmountCardSchema - (bound.FinalAmount.Value - bound.InitialAmount.Value);
}
}
else if (totalAmountCardSchema > 0)
{
totalCommission += totalAmountCardSchema * (bound.Commission/100);
totalAmountCardSchema = 0;
}
}
}
index++;
var valueInvoiceLine = totalCommission;
明確にする: はい、これがポイントです。この例では問題ありません。明確にするために、1月1日から5月31日までの売上高は8.000で、1ヶ月の売上高は30.000でした。今月の手数料を計算するためにいくつかのバンドにループを入れたいが、この月の最初のバンドを計算する最初のバンドを達成するためには、今年の最初の日以降の売上を追加する必要があるので、この例を置く。この例では、最初のバンドは0から10.000ですが、年の最初の日(8.000)に売上を加え、次に月の売上(30.000)を追加する必要があります。最初のバンド2番目のバンドでは10.000を、3番目のバンドでは10.000を、4番目のバンドでは残りのバンド(8.000)を取らなければなりません。申し訳ありませんが、それは非常に明確ではない場合。あなたが理解することを願っています。ありがとうございます。今では、ルールが適用されたときにしなければならないかを理解するのは難しいされるよう
のようなものを試してみてください。あなたはそれを明確にしてください。 – Fabjan
合意。あなたのサンプルでは、年の累計(累計)は8、その月は30未満です。これは、毎月がまだ累積に追加されていない限り理にかなっていません。手数料の論理を明記してください。コーディングの手助けができます。 –
私は明確にしようとしました。 FabjanとShannonに感謝します。 – TibyDublin