using System; using System.Drawing; using BeWo.Data.Access; using BeWo.Data.Entities; using BS.Shared; using BS.Shared.Core; using BS.Shared.DataContracts; namespace BeWo.Report.ReportObjects { public class KassenbelegRO : AbstractBeWoReportObject { public string Kasse { get; set; } public string Titel { get; set; } public decimal Betrag { get; set; } public DateTime Belegdatum { get; set; } public string Beguenstigter { get; set; } public string Belegnummer { get; set; } public string Notiz { get; set; } public Bitmap SignatureImage { get; set; } public DateTime? SignatureDate { get; set; } public static KassenbelegRO Create(BargeldtransaktionDC transaktion, BeWoEntityBase beguenstigter) { var sqlresult = DAOFactory.SearchDAO.GetSqlResult($"select k.oid from bargeldkasse k join bargeldtransaktion t on t.BargeldkassenOid = k.Oid where t.oid = {transaktion.BargeldtransaktionOid}"); var kasseOid = (long) sqlresult[0]; var kasse = DAOFactory.GenericDAO.LoadByID(kasseOid); var signature = DAOFactory.SearchDAO.LoadSignatureByTransaktionsOid(transaktion.BargeldtransaktionOid.Value); var beleg = new KassenbelegRO { Kasse = kasse.Kassenname, Titel = $"{(transaktion.Zahlungstyp == Zahlungstyp.Einzahlung ? "Ein" : "Aus")}zahlungsbeleg", Betrag = transaktion.Betrag ?? 0m, Belegdatum = transaktion.Zahlungsdatum ?? DateTime.Now, Belegnummer = transaktion.Belegnummer, Notiz = transaktion.Notice }; if(signature != null) { beleg.SignatureImage = ImageUtils.ConvertBase64StringToBitmap(signature.DataBild); beleg.SignatureDate = signature.Zeitstempel; } if (beguenstigter is Customer customer) { beleg.Beguenstigter = customer.Person.FirstNameLastName; } return beleg; } } }