public static IList<IGeneralOperationsBooking> GetBookings(IDalSession session, GeneralOperationsBookingReturnClass bookingType, int accountId, DateTime beginDate, DateTime endDate, bool includeStornos)
        {
            Hashtable parameters = new Hashtable();
            parameters.Add("accountId", accountId);
            parameters.Add("beginDate", beginDate);
            parameters.Add("endDate", endDate);
            parameters.Add("bookTypeId", (int)bookingType);
            if (!includeStornos)
                parameters.Add("hideStornos", 1);

            return session.GetTypedListByNamedQuery<IGeneralOperationsBooking>(
                "B4F.TotalGiro.GeneralLedger.Journal.Bookings.GetGeneralOperationsBookings",
                parameters);
        }
        public static int[] GetNotarizableBookingIds(
            IDalSession session, GeneralOperationsBookingReturnClass bookingType,
            int managementCompanyId, int accountId)
        {
            Hashtable parameters = new Hashtable();

            if (bookingType != GeneralOperationsBookingReturnClass.All)
                parameters.Add("bookingType", (int)bookingType);

            if (managementCompanyId != 0)
                parameters.Add("managementCompanyId", managementCompanyId);

            if (accountId != 0)
                parameters.Add("accountId", accountId);

            IList<int> bookingIds = session.GetTypedListByNamedQuery<int>(
                "B4F.TotalGiro.GeneralLedger.Journal.Bookings.GetNotarizableBookingIds",
                parameters);
            return bookingIds.ToArray();
        }
Esempio n. 3
0
        public static void CreateNotasFromBookings(BatchExecutionResults results, GeneralOperationsBookingReturnClass bookingType, int managementCompanyId, int accountId)
        {
            IDalSession session = NHSessionFactory.CreateSession();
            int[] notarizableBookingIds = null;

            try
            {
                notarizableBookingIds = GeneralOperationsBookingMapper.GetNotarizableBookingIds(session, bookingType, managementCompanyId, accountId);
            }
            catch (Exception ex)
            {
                results.MarkError(
                    new ApplicationException(string.Format("Error retrieving notarizable bookings ({0}s).", bookingType), ex));
            }
            finally
            {
                session.Close();
            }

            foreach (int bookingId in notarizableBookingIds)
                createNotaFromBooking(results, bookingId, bookingType);
        }
Esempio n. 4
0
        private static void createNotaFromBooking(BatchExecutionResults results, int bookingId, GeneralOperationsBookingReturnClass bookingType)
        {
            IDalSession session = NHSessionFactory.CreateSession();

            try
            {
                IGeneralOperationsBooking booking = GeneralOperationsBookingMapper.GetBooking(session, bookingId);
                if (booking != null)
                {
                    INota nota = booking.CreateNota();
                    if (nota != null)
                    {
                        NotaMapper.Update(session, nota);
                        results.MarkSuccess();
                    }
                    else
                        // in case NotaMigrated was set to 'true' (e.g. for a storno of a Monetary Order booking)
                        GeneralOperationsBookingMapper.Update(session, booking);
                }
                else
                    results.MarkError(new ApplicationException(string.Format("Booking {0} not found.", bookingId)));
            }
            catch (Exception ex)
            {
                results.MarkError(new ApplicationException(string.Format("Error creating nota for booking {0} ({1}).",
                                                                                       bookingId, bookingType), ex));
            }
            finally
            {
                session.Close();
            }
        }
Esempio n. 5
0
        public static void CreateNotas(BatchExecutionResults results, int managementCompanyId, int accountId)
        {
            checkCompanyAndAccount(managementCompanyId, accountId);

            CreateNotasFromOrders(results, managementCompanyId, accountId);

            // Which transaction types should be processed, and in what order
            TransactionTypes[] transactionTypes = new TransactionTypes[] {
                    TransactionTypes.NTM,   // NotaTransfer
                    TransactionTypes.InstrumentConversion     // NotaCorporateAction
                };

            foreach (TransactionTypes transactionType in transactionTypes)
                CreateNotasFromTransactions(results, transactionType, managementCompanyId, accountId);

            // Which booking types should be processed, and in what order
            GeneralOperationsBookingReturnClass[] bookingTypes = new GeneralOperationsBookingReturnClass[] {
                    GeneralOperationsBookingReturnClass.ManagementFee,  // NotaFees
                    GeneralOperationsBookingReturnClass.CashDividend,    // NotaDividend
                    GeneralOperationsBookingReturnClass.CashTransfer    // NotaDeposit
                };

            foreach (GeneralOperationsBookingReturnClass bookingType in bookingTypes)
                CreateNotasFromBookings(results, bookingType, managementCompanyId, accountId);
        }