public InvoiceInfotViewModel GetLimitStartAndEndInvoiceDSelf(int invoiceMonth, int invoiceYear)
        {
            DateTime?startDate = null;
            DateTime?endDate   = null;
            var      result    = new InvoiceInfotViewModel();

            var basic = _basicRepository.GetAllQueryable().FirstOrDefault();

            if (basic != null)
            {
                // set startDate
                if (basic.SettlementDay == 31)
                {
                    startDate = new DateTime(invoiceYear, invoiceMonth, 1);
                }
                else
                {
                    startDate = new DateTime(invoiceYear, invoiceMonth, basic.SettlementDay + 1);
                }

                // set end date
                if (basic.SettlementDay == 31)
                {
                    endDate = new DateTime(invoiceYear, invoiceMonth, DateTime.DaysInMonth(invoiceYear, invoiceMonth));
                }
                else
                {
                    if (invoiceMonth == 12)
                    {
                        endDate = new DateTime(invoiceYear + 1, 1, basic.SettlementDay);
                    }
                    else
                    {
                        endDate = new DateTime(invoiceYear, invoiceMonth + 1, basic.SettlementDay);
                    }
                }
            }

            if (startDate == null)
            {
                startDate = new DateTime(invoiceYear, invoiceMonth, 1);
                endDate   = new DateTime(invoiceYear, invoiceMonth, DateTime.DaysInMonth(invoiceYear, invoiceMonth));
            }

            result.StartDate        = (DateTime)startDate;
            result.EndDate          = (DateTime)endDate;
            result.SettlementD      = 31;
            result.TaxMethodI       = "0";
            result.TaxRate          = 0;
            result.TaxRoundingI     = "0";
            result.RevenueRoundingI = "0";
            if (basic != null)
            {
                result.SettlementD  = basic.SettlementDay;
                result.TaxMethodI   = basic.TaxMethodI;
                result.TaxRate      = (decimal)basic.TaxRate;
                result.TaxRoundingI = basic.TaxRoundingI;
            }

            return(result);
        }