Example #1
0
        public void sendAccountingMail(String sendTo, HospitalAccounting account)
        {
            MailAddress to = new MailAddress(sendTo, "");
            MailMessage message = new MailMessage(accountingMail, to);
            message.IsBodyHtml = true;
            message.Subject = "Rechnung";

            StringBuilder MyString = new StringBuilder("<html> \n <head>");
            MyString.Append("<meta content=\"text/html;charset=utf-8\" http-equiv=\"Content-Type\"/>");
            MyString.Append("</head> \n <body> \n"); //head an body

            //table head with clinic name
            MyString.Append("<table style=\"width:500px;border:1px solid black;\" cellpadding=\"0\" cellspacing=\"0\">\n");
            MyString.Append("<thead style=\"background-color:#4f7cb7;color:#FFF;\">\n");
                MyString.Append("<tr><td colspan=\"2\" height=\"30px\" style=\"border-bottom:1px solid black;\">Rechnung für Krankenhaus ").Append(account.Name).Append("</td></tr>\n");
            MyString.Append("</thead>\n<tbody>\n");

            foreach (PatientAccounting patient in account.Items)
            {
                //patient name and cost
                MyString.Append("<tr style=\"background-color:#e8e8e8;\">\n");
                    MyString.Append("<td style=\"width:60%;font-weight:bold;\">").Append(patient.Firstname).Append(" ").Append(patient.Lastname).Append("</td>\n");
                    MyString.Append("<td style=\"width:40%;font-weight:bold;\" align=\"right\">Ges. ").Append((double)patient.Cost / 100).Append(",00 Euro </td>\n</tr>\n");

                foreach (SampleAccounting sample in patient.Items)
                {
                    //sample name,date and cost
                    MyString.Append("<tr>\n");
                        MyString.Append("<td style=\"padding-left:50px;\">").Append(sample.Name).Append(" (").Append(sample.Date.ToShortDateString()).AppendFormat(")</td>\n");
                        MyString.Append("<td align=\"right\">").Append((double)sample.Cost / 100).AppendFormat(",00 Euro </td>\n");
                    MyString.Append("</tr>\n");

                }

            }

            MyString.Append("<tr style=\"background-color:#e8e8e8;\">\n");
            MyString.Append("<td style=\"width:60%;font-weight:bold;\">").Append("Gesamtbetrag dieser Rechnung").Append("</td>\n");
            MyString.Append("<td style=\"width:40%;font-weight:bold;\" align=\"right\">Ges. ").Append((double)account.Cost / 100).Append(",00 Euro </td>\n</tr>\n");

            MyString.AppendFormat("</tbody>\n</table>\n</body>\n</html>\n");

            message.Body = MyString.ToString();
            mailClient.Send(message);
        }
Example #2
0
        public static Dictionary<int, HospitalAccounting> calculateAccounting(SampleData[] samples)
        {
            Dictionary<int, HospitalAccounting> set = new Dictionary<int, HospitalAccounting>();

            foreach (SampleData sample in samples)
            {
                Hospital hos = sample.Patient.Hospital;
                HospitalAccounting hosAcc;
                if (set.TryGetValue(hos.ID, out hosAcc) == false)
                {
                    hosAcc = new HospitalAccounting(hos.ID, hos.Name);
                    set.Add(hos.ID, hosAcc);
                }

                Patient pat = sample.Patient;
                PatientAccounting patAcc;
                if (hosAcc.dictionary.TryGetValue(pat.ID, out patAcc) == false)
                {
                    patAcc = new PatientAccounting(pat.ID, pat.Firstname, pat.Lastname);
                    hosAcc.dictionary.Add(pat.ID, patAcc);
                }

                DateTime date = sample.LastStateChange;
                if (sample.State == SampleStateEnum.Closed)
                {
                    date = date.Subtract(new TimeSpan(2, 0, 0, 0));     //Subtract 2 Days if Sample already closed
                }
                patAcc.Items.Add(new SampleAccounting(sample.Analysis.Name, sample.Analysis.Cost, date));

                sample.beginEdit();
                sample.IsAccounted = true;
                sample.endEdit();
            }

            return set;
        }