Exemple #1
0
        /// <summary>
        /// Gemmer data for en bogføringslinje i det lokale datalager.
        /// </summary>
        /// <param name="bogføringslinjeModel">Model for bogføringslinjen.</param>
        /// <param name="localeDataDocument">XML dokument, hvori data skal gemmes.</param>
        /// <param name="isStoringSynchronizedData">Angivelse af, om det er synkroniserede data, der gemmes.</param>
        public static void StoreInDocument(this IBogføringslinjeModel bogføringslinjeModel, XDocument localeDataDocument, bool isStoringSynchronizedData)
        {
            if (bogføringslinjeModel == null)
            {
                throw new ArgumentNullException("bogføringslinjeModel");
            }
            if (localeDataDocument == null)
            {
                throw new ArgumentNullException("localeDataDocument");
            }

            XElement accountingElement = localeDataDocument.GetRegnskabElement(bogføringslinjeModel.Regnskabsnummer);

            if (accountingElement == null)
            {
                return;
            }

            XElement postingLineElement = accountingElement.Elements(XName.Get("Bogfoeringslinje", accountingElement.Name.NamespaceName)).SingleOrDefault(m => m.Attribute(XName.Get("loebenummer", string.Empty)) != null && string.Compare(m.Attribute(XName.Get("loebenummer", string.Empty)).Value, bogføringslinjeModel.Løbenummer.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal) == 0);

            if (postingLineElement == null)
            {
                postingLineElement = new XElement(XName.Get("Bogfoeringslinje", accountingElement.Name.NamespaceName));
                postingLineElement.UpdateAttribute(XName.Get("loebenummer", string.Empty), bogføringslinjeModel.Løbenummer.ToString(CultureInfo.InvariantCulture));
                postingLineElement.UpdateAttribute(XName.Get("dato", string.Empty), GetHistorikDato(bogføringslinjeModel.Dato));
                postingLineElement.UpdateAttribute(XName.Get("bilag", string.Empty), string.IsNullOrWhiteSpace(bogføringslinjeModel.Bilag) ? null : bogføringslinjeModel.Bilag, false);
                postingLineElement.UpdateAttribute(XName.Get("kontonummer", string.Empty), bogføringslinjeModel.Kontonummer);
                postingLineElement.UpdateAttribute(XName.Get("tekst", string.Empty), bogføringslinjeModel.Tekst);
                postingLineElement.UpdateAttribute(XName.Get("budgetkontonummer", string.Empty), string.IsNullOrWhiteSpace(bogføringslinjeModel.Budgetkontonummer) ? null : bogføringslinjeModel.Budgetkontonummer, false);
                postingLineElement.UpdateAttribute(XName.Get("debit", string.Empty), bogføringslinjeModel.Debit == 0M ? null : bogføringslinjeModel.Debit.ToString(CurrencyFormat, CultureInfo.InvariantCulture), false);
                postingLineElement.UpdateAttribute(XName.Get("kredit", string.Empty), bogføringslinjeModel.Kredit == 0M ? null : bogføringslinjeModel.Kredit.ToString(CurrencyFormat, CultureInfo.InvariantCulture), false);
                postingLineElement.UpdateAttribute(XName.Get("adressekonto", string.Empty), bogføringslinjeModel.Adressekonto == 0 ? null : bogføringslinjeModel.Adressekonto.ToString(CultureInfo.InvariantCulture), false);
                postingLineElement.UpdateAttribute(XName.Get("synkroniseret", string.Empty), isStoringSynchronizedData ? "true" : "false");
                accountingElement.Add(postingLineElement);
                return;
            }

            XAttribute pendingAttribute = postingLineElement.Attribute(XName.Get("verserende", string.Empty));

            if (pendingAttribute != null && string.IsNullOrWhiteSpace(pendingAttribute.Value) == false && Convert.ToBoolean(pendingAttribute.Value))
            {
                return;
            }

            postingLineElement.UpdateAttribute(XName.Get("dato", string.Empty), GetHistorikDato(bogføringslinjeModel.Dato));
            postingLineElement.UpdateAttribute(XName.Get("bilag", string.Empty), string.IsNullOrWhiteSpace(bogføringslinjeModel.Bilag) ? null : bogføringslinjeModel.Bilag, false);
            postingLineElement.UpdateAttribute(XName.Get("kontonummer", string.Empty), bogføringslinjeModel.Kontonummer);
            postingLineElement.UpdateAttribute(XName.Get("tekst", string.Empty), bogføringslinjeModel.Tekst);
            postingLineElement.UpdateAttribute(XName.Get("budgetkontonummer", string.Empty), string.IsNullOrWhiteSpace(bogføringslinjeModel.Budgetkontonummer) ? null : bogføringslinjeModel.Budgetkontonummer, false);
            postingLineElement.UpdateAttribute(XName.Get("debit", string.Empty), bogføringslinjeModel.Debit == 0M ? null : bogføringslinjeModel.Debit.ToString(CurrencyFormat, CultureInfo.InvariantCulture), false);
            postingLineElement.UpdateAttribute(XName.Get("kredit", string.Empty), bogføringslinjeModel.Kredit == 0M ? null : bogføringslinjeModel.Kredit.ToString(CurrencyFormat, CultureInfo.InvariantCulture), false);
            postingLineElement.UpdateAttribute(XName.Get("adressekonto", string.Empty), bogføringslinjeModel.Adressekonto == 0 ? null : bogføringslinjeModel.Adressekonto.ToString(CultureInfo.InvariantCulture), false);
            postingLineElement.UpdateAttribute(XName.Get("synkroniseret", string.Empty), isStoringSynchronizedData ? "true" : "false");
        }
 /// <summary>
 /// Danner en model, der indeholder resultatet af en bogføring.
 /// </summary>
 /// <param name="bogføringslinje">Bogført linje.</param>
 /// <param name="bogføringsadvarsler">Bogføringsadvarsler, som den bogførte linje har medført.</param>
 public BogføringsresultatModel(IBogføringslinjeModel bogføringslinje, IEnumerable <IBogføringsadvarselModel> bogføringsadvarsler)
 {
     if (bogføringslinje == null)
     {
         throw new ArgumentNullException("bogføringslinje");
     }
     if (bogføringsadvarsler == null)
     {
         throw new ArgumentNullException("bogføringsadvarsler");
     }
     _bogføringslinjeModel     = bogføringslinje;
     _bogføringsadvarselModels = bogføringsadvarsler;
 }
Exemple #3
0
 /// <summary>
 /// Danner ViewModel for en bogføringslinje.
 /// </summary>
 /// <param name="regnskabViewModel">ViewModel for regnskabet, som bogføringslinjen skal være tilknyttet.</param>
 /// <param name="bogføringslinjeModel">Model for bogføringslinjen.</param>
 public BogføringslinjeViewModel(IRegnskabViewModel regnskabViewModel, IBogføringslinjeModel bogføringslinjeModel)
 {
     if (regnskabViewModel == null)
     {
         throw new ArgumentNullException("regnskabViewModel");
     }
     if (bogføringslinjeModel == null)
     {
         throw new ArgumentNullException("bogføringslinjeModel");
     }
     _regnskabViewModel    = regnskabViewModel;
     _bogføringslinjeModel = bogføringslinjeModel;
     _bogføringslinjeModel.PropertyChanged += PropertyChangedOnBogføringslinjeModelEventHandler;
 }
 /// <summary>
 /// Initierer en ny ViewModel til bogføring på et givent regnskab.
 /// </summary>
 /// <param name="regnskabViewModel">ViewModel for regnskabet, hvor en ny ViewModel til bogføring skal initieres.</param>
 /// <param name="bogføringslinjeModel">Model for en ny bogføringslinje, der efterfølgende kan bogføres.</param>
 /// <param name="argument">Argument til initiering af en ny ViewModel til bogføring.</param>
 private void HandleResult(IRegnskabViewModel regnskabViewModel, IBogføringslinjeModel bogføringslinjeModel, object argument)
 {
     if (regnskabViewModel == null)
     {
         throw new ArgumentNullException("regnskabViewModel");
     }
     if (bogføringslinjeModel == null)
     {
         throw new ArgumentNullException("bogføringslinjeModel");
     }
     if (argument == null)
     {
         throw new ArgumentNullException("argument");
     }
     regnskabViewModel.BogføringSet(new BogføringViewModel(regnskabViewModel, bogføringslinjeModel, _finansstyringRepository, ExceptionHandler, _runRefreshTasks));
 }