public void ErstelleKundenrechnung(int tpNr, int saNr) { Check.Argument(tpNr > 0, "TpNr > 0"); Check.Argument(saNr > 0, "saNr > 0"); Check.OperationCondition(!transactionService.IsTransactionActive, "Keine aktive Transaktion erlaubt."); Kundenrechnung kr = new Kundenrechnung(); kr.RechnungBezahlt = false; TransportplanDTO tpDTO = transportplanServiceFuerBuchhaltung.FindeTransportplanUeberTpNr(tpNr); kr.Sendungsanfrage = saNr; IList<TransportplanSchrittDTO> tpSchritte = tpDTO.TransportplanSchritte; decimal kostenSumme = 0; foreach (TransportplanSchrittDTO tpsDTO in tpSchritte) { kostenSumme += tpsDTO.Kosten; } kr.Rechnungsbetrag = new WaehrungsType(kostenSumme); kr.Sendungsanfrage = saNr; SendungsanfrageDTO saDTO = auftragServiceFuerBuchhaltung.FindeSendungsanfrageUeberSaNr(saNr); GeschaeftspartnerDTO gpDTO = geschaeftspartnerService.FindGeschaeftspartner(saDTO.Auftraggeber); kr.Rechnungsadresse = gpDTO.Adressen.First<AdresseDTO>().Id; transactionService.ExecuteTransactional( () => { bh_REPO.SpeichereKundenrechnung(kr); }); KundenrechnungDTO krDTO = kr.ToDTO(); pDFErzeugungsServiceFuerBuchhaltung.ErstelleKundenrechnungPDF(ref krDTO, tpSchritte); }
public void SpeichereKundenrechnung(Kundenrechnung kr) { persistenceService.Save(kr); }