109 lines
4.5 KiB
C#
109 lines
4.5 KiB
C#
using BeWo.Data.Entities;
|
|
using BeWo.Service.Plugins;
|
|
using BS.Shared;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.DataContracts;
|
|
using BS.Shared.DataContracts.GkvAbrechnung;
|
|
using BS.Shared.Extensions;
|
|
using BS.Shared.Models;
|
|
using DevExpress.XtraPrinting.Drawing;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace BeWo.Report.ReportObjects
|
|
{
|
|
public class GkvAbrechnungRO : AbstractBeWoReportObject<GkvAbrechnungRO>
|
|
{
|
|
public string SenderOrganisationName { get; set; }
|
|
public string SenderStreet { get; set; }
|
|
public string SenderPostCodeAndTown { get; set; }
|
|
public string SenderPhone { get; set; }
|
|
public string SenderFax { get; set; }
|
|
public string SenderMail { get; set; }
|
|
public string SenderWebsite { get; set; }
|
|
public string SenderContactPerson { get; set; }
|
|
public string SenderBankName { get; set; }
|
|
public string SenderBankIBAN { get; set; }
|
|
public string SenderBankBIC { get; set; }
|
|
|
|
public string ReceiverDatenannahmestelle { get; set; }
|
|
public string ReceiverContactPerson { get; set; }
|
|
public string ReceiverDivision { get; set; }
|
|
public string ReceiverStreet { get; set; }
|
|
public string ReceiverPostCodeAndTown { get; set; }
|
|
|
|
public string KrankenkasseIK { get; set; }
|
|
public string KrankenkasseName { get; set; }
|
|
public string SenderIK { get; set; }
|
|
public string Rechnungsnummer { get; set; }
|
|
public string Rechnungsdatum { get; set; }
|
|
|
|
public string AnzahlDerUrbelege { get; set; }
|
|
|
|
public InvoiceBaseDC InvoiceBase { get; set; }
|
|
|
|
public ImageSource Logo { get; set; }
|
|
|
|
public static GkvAbrechnungRO Create(GkvAbrechnungDC abrechnung, Mandator mandator, Employee employee, AddressInformation addressInformation)
|
|
{
|
|
var protokoll = (GkvTransferProtokollDC)abrechnung.LastTransferProtokoll;
|
|
var organisation = abrechnung.Organisation;
|
|
var invoicebase = abrechnung.InvoiceBases.First();
|
|
|
|
var result = new GkvAbrechnungRO();
|
|
|
|
result.SenderOrganisationName = addressInformation.OrganisationName;
|
|
result.SenderStreet = addressInformation.Street;
|
|
result.SenderPostCodeAndTown = $"{addressInformation.PostCode} {addressInformation.Town}";
|
|
result.SenderWebsite = addressInformation.Website;
|
|
result.SenderBankName = mandator.BankAccount.BankName;
|
|
result.SenderBankIBAN = mandator.BankAccount.IBAN;
|
|
result.SenderBankBIC = mandator.BankAccount.Bic;
|
|
|
|
var person = mandator.SoziotherapieAnsprechpartner?.Person ?? employee.Person;
|
|
|
|
result.SenderContactPerson = person.FirstNameLastName;
|
|
result.SenderPhone = addressInformation.Phone;
|
|
result.SenderFax = addressInformation.Fax;
|
|
result.SenderMail = addressInformation.Mail;
|
|
|
|
var receiver_first = invoicebase.RecipientPersonFirstName;
|
|
var receiver_last = invoicebase.RecipientPersonLastName;
|
|
var receiver_first_last = receiver_first.ToFormatFollows(receiver_last);
|
|
|
|
//result.ReceiverDatenannahmestelle = invoicebase.RecipientOrganisation.ToNullIfEmpty();
|
|
result.ReceiverDatenannahmestelle = organisation.BezDatenannahmestelle.ToNullIfEmpty();
|
|
//result.ReceiverContactPerson = receiver_first_last;
|
|
|
|
var datenannahmestelle = organisation.GetDatenannahmestelleAddress();
|
|
|
|
var datenannahme_postcode = datenannahmestelle.PostalCode;
|
|
var datenannahme_town = datenannahmestelle.Town;
|
|
var datenannahme_postcode_town = datenannahme_postcode.ToFormatFollows(datenannahme_town);
|
|
|
|
//result.ReceiverDivision = datenannahmestelle.AddressLine1.ToNullIfEmpty();
|
|
result.ReceiverStreet = datenannahmestelle.Street.ToNullIfEmpty();
|
|
result.ReceiverPostCodeAndTown = datenannahme_postcode_town;
|
|
|
|
result.KrankenkasseIK = organisation.IKKostentrager;
|
|
result.KrankenkasseName = organisation.Name;
|
|
result.SenderIK = addressInformation.IKLeistungserbringer;
|
|
result.Rechnungsnummer = protokoll.Rechnungsnummer;
|
|
result.Rechnungsdatum = protokoll.ErstelltAm.Value.ToString("dd.MM.yyyy");
|
|
|
|
result.AnzahlDerUrbelege = string.Empty;
|
|
|
|
result.InvoiceBase = invoicebase;
|
|
|
|
if(mandator.Logo?.Original is object)
|
|
result.Logo = new ImageSource(false, mandator.Logo.Original);
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|