Таблица НДС EF Расчет ставки НДС на определенную дату - PullRequest
0 голосов
/ 04 августа 2011


Я занимаюсь разработкой приложения MVC3 на C # с использованием Entity Framework.У меня есть таблица ставок НДС, в которой есть поля ставки НДС, даты начала, даты окончания.Дата начала и дата окончания могут быть нулевыми, чтобы указать, что это либо исторический курс, либо текущий курс.То, что я пытаюсь выяснить, - это как создать один запрос, который учитывает эти нули, чтобы дать мне ставку НДС, когда я передаю одну дату.(Например, в Великобритании показан формат даты дд / мм / гггг

+--------------+-------------+----------+
| Start Date   | End Date    | Vat rate |
+--------------+-------------+----------+
| Null         | 01/01/2011  | 19       |
+--------------+-------------+----------+
| 02/01/2011   | 08/08/2011  | 20       |
+--------------+-------------+----------+
| 09/08/2011   | Null        | 21       |
+--------------+-------------+----------+

Спасибо за ваше время

Ответы [ 2 ]

0 голосов
/ 04 августа 2011

Если вы используете EF, вы можете сделать что-то вроде этого:

DateTime first = DateTime.Parse("01-01-1900");
DateTime last = DateTime.Parse("01-01-2100");
var rate = db.VatRates.Where(
    vr => input > (vr.StartDate ?? first) && input < (vr.EndDate ?? last)).First().Rate;

Согласно комментарию ниже, без столбца EndDate попробуйте это:

DateTime start = DateTime.Parse("01-01-1900");
var rate = db.VatRates.Where(vr => input > (vr.StartDate ?? start))
    .OrderByDescending(vr => vr.StartDate).First().Rate;

Работает для меня :)

0 голосов
/ 04 августа 2011

Если вы передадите @ Date

SELECT      VATRate 
FROM        VATRateTable
WHERE       @Date
BETWEEN     ISNULL(StartDate, '1900-01-01') AND ISNULL(EndDate, '2100-01-01') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...