Example #1
0
        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()));
        }
Example #2
0
        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);
        }