private IInvoiceFormGenerationContext PrepareContext(int formTypeId, int year, int month)
        {
            var existingCollection = m_invoiceFormsRepository.FindCollection(formTypeId, year, month);

            if (existingCollection?.ApproveUserId != null)
            {
                throw new InvalidOperationException("J*z bylo vygenerovano");
            }

            var preapprovedMessages = new HashSet <string>();

            if (existingCollection != null)
            {
                foreach (var m in existingCollection.Log.Where(l =>
                                                               l.IsWarning && (l.ApproveUserId == m_session.User.Id)))
                {
                    preapprovedMessages.Add(m.Message);
                }

                m_invoiceFormsRepository.DeleteCollection(existingCollection.Id);
            }

            var context = m_invoiceFormsRepository.StartGeneration($"{month.ToString().PadLeft(2, '0')}/{year}",
                                                                   year,
                                                                   month,
                                                                   formTypeId);

            context.AutoApproveWarnings(preapprovedMessages);
            return(context);
        }
Пример #2
0
 public void DeleteCollection(int id)
 {
     m_invoiceFormsRepository.DeleteCollection(id);
 }