public static byte[] GenerateDailyReport(int associationId, DateTime date) { var stringFormatH1 = "<h1>{0}</h1>"; var stringFormatH2 = "<h2>{0}</h2>"; var nrCrt = 0; decimal rulajIncome = 0; decimal rulajOutcome = 0; var sb = new StringBuilder(); var dailyregistry = RegistriesHomeDailyManager.Get(associationId, date); if (dailyregistry == null) { return(ConverterHelper.ConvertHtMLtoBytes(sb.ToString())); } var soldInitial = dailyregistry.OpeningAmount; var registries = RegistriesHomeManager.GetByRegHomeDaily(dailyregistry.Id); sb.Append(string.Format(stringFormatH1, "Jurnal de casa " + date.ToShortDateString())); sb.Append("<br><br>"); sb.Append("<table border='1'>"); sb.Append("<tr>"); sb.Append("<td>Nr Crt</td><td>Data</td><td>Nr. Document</td><td>Explicatie</td><td>Incasare</td><td>Plati</td><td>Sold</td>"); sb.Append("</tr>"); foreach (var registry in registries) { nrCrt++; var income = (registry.Income.HasValue) ? registry.Income.Value.ToString() : string.Empty; var outcome = (registry.Outcome.HasValue) ? registry.Outcome.Value.ToString() : string.Empty; rulajIncome = rulajIncome + registry.Income ?? rulajIncome; rulajOutcome = rulajOutcome + registry.Outcome ?? rulajOutcome; sb.Append("<tr>"); sb.Append("<td>" + nrCrt + "</td>"); sb.Append("<td>" + date.ToShortDateString() + "</td>"); sb.Append("<td>" + registry.DocumentNr + "</td>"); sb.Append("<td>" + registry.Explanations + "</td>"); sb.Append("<td>" + income + "</td>"); sb.Append("<td>" + outcome + "</td>"); sb.Append("<td>" + (soldInitial + rulajIncome - rulajOutcome) + "</td>"); sb.Append("</tr>"); } var rulaj = rulajIncome - rulajOutcome; sb.Append("</table>"); sb.Append("<br><br>"); sb.Append(string.Format(stringFormatH2, "Sold initial: " + soldInitial)); sb.Append(string.Format(stringFormatH2, "Rulaj: " + rulaj)); sb.Append(string.Format(stringFormatH2, "Sold final: " + (soldInitial + rulaj))); return(ConverterHelper.ConvertHtMLtoBytes(sb.ToString())); }
public static void RegisterPay(decimal sumOfChecked, decimal totalToPay, int apartmentId, List <string> whatToPay, string documentNr, string explanations, string partiallyPay, int associationId, DateTime addedDate) { int?dailyRegId = null; var dailyReg = RegistriesHomeDailyManager.Get(associationId, addedDate); if (dailyReg == null) { dailyRegId = RegistriesHomeDailyManager.Add(new DAL.RegistriesHomeDaily { Id_association = associationId, TransactionDate = addedDate }); } else { dailyRegId = dailyReg.Id; } if (!dailyRegId.HasValue) { return; } //update all RegistriesHomeDaily from that day RegistriesHomeDailyManager.RefreshOpenClosePricesFromDate(dailyRegId.Value); Add(new Administratoro.DAL.RegistriesHome { Id_apartment = apartmentId, Income = totalToPay, DocumentNr = documentNr, Outcome = null, Id_RegHomeDaily = dailyRegId, CreatedDate = DateTime.Now, Explanations = explanations, }); var apDebts = GetAllCheckedApDebts(whatToPay); // mark ApartmentDebts as payed„ if (sumOfChecked < totalToPay) { // advance in avans apDebts.Add(new Tuple <int, int, int, decimal, decimal?>( DateTime.Now.Year, DateTime.Now.Month, (int)DebtType.AdvancePay, totalToPay - sumOfChecked, null)); } else if (sumOfChecked > totalToPay) { // partially pay var items = partiallyPay.Split('!'); int year; int month; int type; decimal value; if (items.Length == 4 && decimal.TryParse(items[3], out value) && int.TryParse(items[0], out year) && int.TryParse(items[1], out month) && int.TryParse(items[2], out type)) { apDebts.Add(new Tuple <int, int, int, decimal, decimal?>(year, month, type, value, sumOfChecked - totalToPay)); } } ApartmentDebtsManager.Pay(apartmentId, apDebts); }