示例#1
0
        public void ReturnZero_When_ListIsEmpty()
        {
            var emptyList = new List <LogEntry>();

            var count = EntryCounter.Count(emptyList);

            Assert.AreEqual(count, 0);
        }
示例#2
0
        static void Main(string[] args)
        {
            var logFile = new FileInfo("entrylog.txt");

            var log = LogParser.Parse(logFile);

            var count = EntryCounter.Count(log);

            System.Console.WriteLine(count);
        }
        public static void CreateJournalForOnlineAgentCollection(int companyId, List <OnlineAgentDetails> agentlist)
        {
            try
            {
                CRSDAL dal    = null;
                string strErr = "";


                for (int i = 0; i < agentlist.Count; i++)
                {
                    if (strErr == "")
                    {
                        OnlineAgentDetails al = agentlist[i];
                        // string narration = AccountingUtil.GetNarration(al);
                        try
                        {
                            dal = new CRSDAL();
                            dal.AddParameter("p_CompanyID", companyId, ParameterDirection.Input);
                            dal.AddParameter("p_JourneyDate", agentlist[i].JourneyDate, ParameterDirection.Input);
                            dal.AddParameter("p_DebitLedgerId", agentlist[i].DebitLedgerId, ParameterDirection.Input);
                            dal.AddParameter("p_CreditLedgerId", agentlist[i].CreditLedgerId, ParameterDirection.Input);
                            dal.AddParameter("p_ClassID", agentlist[i].ClassID, ParameterDirection.Input);
                            dal.AddParameter("p_TotalAmount", agentlist[i].TotalFare, ParameterDirection.Input);
                            dal.AddParameter("p_docnumber", agentlist[i].Docnumber, 300, ParameterDirection.Input);
                            dal.AddParameter("p_AgentComm", agentlist[i].AgentComm, ParameterDirection.Input);
                            dal.AddParameter("p_NetAmount", agentlist[i].NetAmount, ParameterDirection.Input);
                            dal.AddParameter("p_GST", agentlist[i].GST, ParameterDirection.Input);
                            dal.AddParameter("p_Discount", agentlist[i].Discount, ParameterDirection.Input);


                            int status = dal.ExecuteDML("spKabraTallySet_OnlineAgentCollection_Test", CommandType.StoredProcedure, 0, ref strErr);

                            if (strErr != "")
                            {
                                throw new Exception();
                            }

                            EntryCounter.GetInstance().AddCount(1);
                        }
                        catch (Exception ex)
                        {
                            Logger.WriteLog("OnlineAgentAPI", "CreateJournalForOnlineAgentCollection", " Error for Agent: " + agentlist[i].AgentName + " " + ex.Message);
                            Logger.WriteLogAlert2("OnlineAgentAPI" + "CreateJournalForOnlineAgentCollection" + " Error for Agent: " + agentlist[i].AgentName + " " + ex.Message);
                            PostingAPI.UpdatePostingStatusForException(companyId, agentlist[i].JourneyDate, 9);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLog("OnlineAgentAPI", "CreateJournalForOnlineAgentCollection", ex.Message);
                Logger.WriteLogAlert("OnlineAgentAPI" + "CreateJournalForOnlineAgentCollection" + ex.Message);
            }
        }
示例#4
0
        public void ReturnZero_When_ListIsntEmptyButContainsNoEntryBetween10HAnd16H()
        {
            var entry = new LogEntry(new DateTime(2019, 09, 01, 09, 00, 00), "Abertura da Porta OK");

            var entries = new List <LogEntry> {
                entry
            };

            var count = EntryCounter.Count(entries);

            Assert.AreEqual(count, 0);
        }
        public static void CreateSaleForBusWiseCollection(int companyId, List <BusWise> BusWiseCollectionList)
        {
            try
            {
                CRSDAL dal    = null;
                string strErr = "";

                for (int i = 0; i < BusWiseCollectionList.Count; i++)
                {
                    //BusWise bc = BusWiseCollectionList[i];
                    //string narration = AccountingUtil.GetNarration(bc);

                    decimal totalamount = 0;
                    decimal totalColl   = 0;


                    totalamount = BusWiseCollectionList[i].NetAmount - (BusWiseCollectionList[i].SGST + BusWiseCollectionList[i].CGST + BusWiseCollectionList[i].BusComm);
                    totalColl   = totalamount + BusWiseCollectionList[i].SGST + BusWiseCollectionList[i].CGST + BusWiseCollectionList[i].BusComm + BusWiseCollectionList[i].OfflineAgentComm + BusWiseCollectionList[i].OnlineAgentComm;


                    try
                    {
                        dal = new CRSDAL();
                        dal.AddParameter("p_CompanyID", companyId, ParameterDirection.Input);
                        dal.AddParameter("p_JourneyDate", BusWiseCollectionList[i].JourneyDate, ParameterDirection.Input);
                        dal.AddParameter("p_AccsysledgerId", BusWiseCollectionList[i].AccsysLedgerId, ParameterDirection.Input);
                        dal.AddParameter("p_CommLedgerId", BusWiseCollectionList[i].CommLedgerId, ParameterDirection.Input);
                        dal.AddParameter("p_NetAmount", totalamount, ParameterDirection.Input);
                        dal.AddParameter("p_TotalAmount", totalColl, ParameterDirection.Input);
                        dal.AddParameter("p_Comm", BusWiseCollectionList[i].BusComm, ParameterDirection.Input);
                        dal.AddParameter("p_GST", BusWiseCollectionList[i].CGST, ParameterDirection.Input);
                        dal.AddParameter("p_TotalOfflineAgentComm", BusWiseCollectionList[i].OfflineAgentComm, ParameterDirection.Input);
                        dal.AddParameter("p_TotalOnlineAgentComm", BusWiseCollectionList[i].OnlineAgentComm, ParameterDirection.Input);
                        dal.AddParameter("p_docnumber", BusWiseCollectionList[i].DocNumber, 1000, ParameterDirection.Input);

                        // dal.AddParameter("p_narration", narration, 3000, ParameterDirection.Input);

                        int status = dal.ExecuteDML("spJainTallySet_BusCollection", CommandType.StoredProcedure, 0, ref strErr);


                        EntryCounter.GetInstance().AddCount(1);
                    }
                    catch (Exception ex)
                    {
                        Logger.WriteLog("BusWiseCollection", "CreateSaleForBusWiseCollection", " Error for Bus: " + BusWiseCollectionList[i].BusiD + " " + ex.Message);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLog("BusWiseCollection", "CreateSaleForBusWiseCollection", ex.Message);
            }
        }
        public static void CreateSaleForFranchiseCollection(int companyId, List <Franchise> FranchiseCollectionList)
        {
            try
            {
                CRSDAL dal    = null;
                string strErr = "";

                for (int i = 0; i < FranchiseCollectionList.Count; i++)
                {
                    if (strErr == "")
                    {
                        Franchise fv        = FranchiseCollectionList[i];
                        string    narration = AccountingUtil.GetNarration(fv);
                        try
                        {
                            dal = new CRSDAL();
                            dal.AddParameter("p_CompanyID", companyId, ParameterDirection.Input);
                            dal.AddParameter("p_JourneyDate", FranchiseCollectionList[i].JourneyDate, ParameterDirection.Input);
                            dal.AddParameter("p_DebitLedgerId", FranchiseCollectionList[i].DebitLedgerId, ParameterDirection.Input);
                            dal.AddParameter("p_CreditLedgerId", FranchiseCollectionList[i].CreditLedgerId, ParameterDirection.Input);
                            dal.AddParameter("p_NetAmount", FranchiseCollectionList[i].NetAmount, ParameterDirection.Input);
                            dal.AddParameter("p_TotalAmount", FranchiseCollectionList[i].TotalAmt, ParameterDirection.Input);
                            dal.AddParameter("p_GST", FranchiseCollectionList[i].ServiceTax, ParameterDirection.Input);
                            dal.AddParameter("p_docnumber", FranchiseCollectionList[i].DocNumber, 300, ParameterDirection.Input);
                            dal.AddParameter("p_ClassID", FranchiseCollectionList[i].ClassID, ParameterDirection.Input);
                            dal.AddParameter("p_AgentComm", FranchiseCollectionList[i].AggentComm, ParameterDirection.Input);
                            dal.AddParameter("p_Discount", FranchiseCollectionList[i].Discount, ParameterDirection.Input);

                            int status = dal.ExecuteDML("spKabraTallySet_FranchiseBooking_Test", CommandType.StoredProcedure, 0, ref strErr);
                            if (strErr != "")
                            {
                                throw new Exception();
                            }

                            EntryCounter.GetInstance().AddCount(1);
                        }
                        catch (Exception ex)
                        {
                            Logger.WriteLog("FranchiseCollection", "CreateSaleForFranchiseCollection", " Error for Franchise: " + FranchiseCollectionList[i].FranchiseName + " " + ex.Message);
                            Logger.WriteLogAlert2("FranchiseCollection" + "CreateSaleForFranchiseCollection" + " Error for Franchise: " + FranchiseCollectionList[i].FranchiseName + " " + ex.Message);
                            PostingAPI.UpdatePostingStatusForException(companyId, FranchiseCollectionList[i].JourneyDate, 9);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLog("FranchiseCollection", "CreateSaleForFranchiseCollection", ex.Message);
                Logger.WriteLogAlert("FranchiseCollection" + "CreateSaleForFranchiseCollection" + ex.Message);
            }
        }
示例#7
0
        public static void CreateJournalForUserWiseCollection(int companyId, List <Booking> bookingsList)
        {
            try
            {
                CRSDAL dal    = new CRSDAL();
                string strErr = "";



                for (int i = 0; i < bookingsList.Count; i++)
                {
                    Booking b = bookingsList[i];
                    if (strErr == "")
                    {
                        try
                        {
                            dal = new CRSDAL();
                            dal.AddParameter("p_CompanyID", companyId, ParameterDirection.Input);
                            dal.AddParameter("p_JourneyDate", bookingsList[i].JourneyDate, ParameterDirection.Input);
                            dal.AddParameter("p_DebitLedgerId", bookingsList[i].DebitLedgerId, ParameterDirection.Input);
                            dal.AddParameter("p_CreditLedgerId", bookingsList[i].CreditLedgerId, ParameterDirection.Input);
                            dal.AddParameter("p_ClassID", bookingsList[i].ClassId, ParameterDirection.Input);
                            dal.AddParameter("p_TotalAmount", bookingsList[i].TotalAmount, ParameterDirection.Input);
                            dal.AddParameter("p_NetAmount", bookingsList[i].NetAmount, ParameterDirection.Input);
                            dal.AddParameter("p_GST", bookingsList[i].GST, ParameterDirection.Input);
                            dal.AddParameter("p_docnumber", bookingsList[i].DocNumber, 300, ParameterDirection.Input);

                            int status = dal.ExecuteDML("spKabraTallySet_BranchCollection_Test", CommandType.StoredProcedure, 0, ref strErr);
                            EntryCounter.GetInstance().AddCount(1);
                            if (strErr != "")
                            {
                                throw new Exception();
                            }
                        }
                        catch (Exception ex)
                        {
                            Logger.WriteLog("BookingAPI", "CreateJournalForUserWiseCollection", " Error for Branch: " + bookingsList[i].BranchName + " " + ex.Message);
                            Logger.WriteLogAlert2("BookingAPI " + "Error:CreateJournalForUserWiseCollection For JournalID: " + bookingsList[i].BranchName + " " + ex.Message);
                            PostingAPI.UpdatePostingStatusForException(companyId, bookingsList[i].JourneyDate, 9);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLog("BookingAPI", "CreateJournalForUserWiseCollection", ex.Message);
                Logger.WriteLogAlert("BookingAPI" + "CreateJournalForUserWiseCollection" + ex.Message);
            }
        }
示例#8
0
        public static void CreateSaleForGSTBoookingCollection(int companyId, List <GSTBooking> gstbookingsList)
        {
            try
            {
                CRSDAL dal    = null;
                string strErr = "";

                decimal roundoff = 0;


                for (int i = 0; i < gstbookingsList.Count; i++)
                {
                    dal = new CRSDAL();
                    GSTBooking gb          = gstbookingsList[i];
                    string     narration   = AccountingUtil.GetNarration(gb);
                    string     description = AccountingUtil.GetDescription(gb);
                    roundoff = gstbookingsList[i].TotalFare - gstbookingsList[i].NetFare;

                    dal.AddParameter("p_CompanyID", companyId, ParameterDirection.Input);
                    dal.AddParameter("p_BookingDate", gstbookingsList[i].BookingDate, ParameterDirection.Input);
                    dal.AddParameter("p_debitledgerid", gstbookingsList[i].DebitLedgerId, ParameterDirection.Input);
                    dal.AddParameter("p_creditledgerid", gstbookingsList[i].CreditLedgerId, ParameterDirection.Input);
                    dal.AddParameter("p_basefare", gstbookingsList[i].BaseFare, ParameterDirection.Input);
                    dal.AddParameter("p_totalfare", gstbookingsList[i].NetFare, ParameterDirection.Input);
                    dal.AddParameter("p_GST", gstbookingsList[i].GST, ParameterDirection.Input);
                    dal.AddParameter("p_IGST", gstbookingsList[i].IGST, ParameterDirection.Input);
                    dal.AddParameter("p_comm", gstbookingsList[i].Comm, ParameterDirection.Input);
                    dal.AddParameter("p_narration", narration, 3000, ParameterDirection.Input);
                    dal.AddParameter("p_description", description, 3000, ParameterDirection.Input);
                    dal.AddParameter("p_docnumber", gstbookingsList[i].DocNumber, 3000, ParameterDirection.Input);
                    dal.AddParameter("p_doctype", gstbookingsList[i].DocType, 3000, ParameterDirection.Input);
                    dal.AddParameter("p_roundoff", roundoff, ParameterDirection.Input);

                    int status = dal.ExecuteDML("spTallySet_BranchGSTBooking", CommandType.StoredProcedure, 0, ref strErr);

                    EntryCounter.GetInstance().AddCount(1);
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLog("UserWise", "CreateSaleForUserWiseCollection", ex.Message);
            }
        }
        public static void CreateSaleForFranchiseCollection(int companyId, List <Franchise> FranchiseCollectionList)
        {
            try
            {
                CRSDAL dal    = null;
                string strErr = "";

                for (int i = 0; i < FranchiseCollectionList.Count; i++)
                {
                    Franchise fv        = FranchiseCollectionList[i];
                    string    narration = AccountingUtil.GetNarration(fv);
                    try
                    {
                        dal = new CRSDAL();
                        dal.AddParameter("p_CompanyID", companyId, ParameterDirection.Input);
                        dal.AddParameter("p_BookingDate", FranchiseCollectionList[i].Bookingdate, ParameterDirection.Input);
                        dal.AddParameter("p_DebitLedgerId", FranchiseCollectionList[i].DebitLedgerId, ParameterDirection.Input);
                        dal.AddParameter("p_CreditLedgerId", FranchiseCollectionList[i].CreditLedgerId, ParameterDirection.Input);
                        dal.AddParameter("p_NetAmount", FranchiseCollectionList[i].NetAmount, ParameterDirection.Input);
                        dal.AddParameter("p_TotalAmount", FranchiseCollectionList[i].TotalAmt, ParameterDirection.Input);
                        dal.AddParameter("p_ServiceTax", FranchiseCollectionList[i].ServiceTax, ParameterDirection.Input);
                        dal.AddParameter("p_narration", narration, 3000, ParameterDirection.Input);
                        dal.AddParameter("p_docnumber", FranchiseCollectionList[i].DocNumber, 300, ParameterDirection.Input);

                        int status = dal.ExecuteDML("spTallySet_FranchiseCollectionJain", CommandType.StoredProcedure, 0, ref strErr);


                        EntryCounter.GetInstance().AddCount(1);
                    }
                    catch (Exception ex)
                    {
                        Logger.WriteLog("FranchiseCollection", "CreateSaleForFranchiseCollection", " Error for Branch: " + FranchiseCollectionList[i].FranchiseId + " " + ex.Message);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLog("FranchiseCollection", "CreateSaleForFranchiseCollection", ex.Message);
            }
        }
        public static void CreateCreditForCancellationdata(int companyId, List<Cancellation> CancellationList)
        {
            CRSDAL dal = null;
            try
            {

                string strErr = "";
               

                for (int i = 0; i < CancellationList.Count; i++)
                {
                    if (CancellationList[i].DebitLedgerId > 0 && CancellationList[i].CreditLedgerId > 0)
                    {

                        Cancellation c = CancellationList[i];

                        string description = AccountingUtil.GetDescription(c);
                       
                        try
                        {
                            dal = new CRSDAL();
                            dal.AddParameter("p_CompanyID", companyId, ParameterDirection.Input);
                            dal.AddParameter("p_CancelDate", CancellationList[i].CancelDate, ParameterDirection.Input);
                            dal.AddParameter("p_DebitLedgerId", CancellationList[i].DebitLedgerId, ParameterDirection.Input);
                            dal.AddParameter("p_CreditLedgerId", CancellationList[i].CreditLedgerId, ParameterDirection.Input);
                            dal.AddParameter("p_RefundAmt", CancellationList[i].RefundAmount, ParameterDirection.Input);
                            dal.AddParameter("p_TotalAmount", CancellationList[i].BaseFare, ParameterDirection.Input);
                            dal.AddParameter("p_GST", CancellationList[i].GST, ParameterDirection.Input);
                            dal.AddParameter("p_IGST", CancellationList[i].IGST, ParameterDirection.Input);
                            dal.AddParameter("p_Comm", CancellationList[i].Comm, ParameterDirection.Input);
                            dal.AddParameter("p_BookingId", CancellationList[i].BookingId, ParameterDirection.Input);
                            dal.AddParameter("p_TicketNo", CancellationList[i].TicketNo, 3000, ParameterDirection.Input);
                            dal.AddParameter("p_description", description, 3000, ParameterDirection.Input);
                            dal.AddParameter("p_docnumber", CancellationList[i].Docnumber, 3000, ParameterDirection.Input);
                            dal.AddParameter("p_doctype", CancellationList[i].DocType, 3000, ParameterDirection.Input);

                            int status = dal.ExecuteDML("spTallySet_CancellationJain", CommandType.StoredProcedure, 0, ref strErr);
                            EntryCounter.GetInstance().AddCount(1);
                            //if (strErr != "")
                            //{
                            //    Logger.WriteLogAlert("Cancellation " + " Error for Bookigid: " + CancellationList[i].BookingId );
                            //    break;
                            //}

                        }



                        catch (Exception ex)
                        {
                            Logger.WriteLog("Cancellation", "CreateCreditForCancellationdata", " Error for Bookigid: " + CancellationList[i].BookingId + " " + ex.Message);
                            Logger.WriteLogAlert("Cancellation " + " Error for Bookigid: " + CancellationList[i].BookingId + " " + ex.Message);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLog("Cancellation", "CreateCreditForCancellationdata", ex.Message);
            }
        }
示例#11
0
        public void RaiseException_When_NullList()
        {
            List <LogEntry> nullEntries = null;

            Assert.Throws <NullReferenceException>(() => EntryCounter.Count(nullEntries));
        }
示例#12
0
        public static void PostBranchData(int companyid, DateTime journeyDate)
        {
            // Initialize entry counter to Zero
            EntryCounter.GetInstance().ResetCount();

            Boolean toPostBranchBookings = Convert.ToBoolean(ConfigurationManager.AppSettings["PostBranchBookings"].ToString());

            if (toPostBranchBookings)
            {
                #region Branch  Bookings


                try
                {
                    Logger.WriteLog("Started Branch Booking...");
                    List <Booking> bookingsList = BookingsAPI.GetBranchBookings(companyid, journeyDate);


                    if (bookingsList != null && bookingsList.Count > 0)
                    {
                        Logger.WriteLog("Entry No 1 :  Branch Collection List : 1");
                        BookingsAPI.CreateJournalForUserWiseCollection(companyid, bookingsList);
                    }
                }
                catch (Exception ex)
                {
                    Logger.WriteLog("BranchPosting", "PostBranchBookings", "Exception in Posting Bookings: " + ex.Message);
                }


                #endregion
            }



            Boolean toPostOnlineAgentCollection = Convert.ToBoolean(ConfigurationManager.AppSettings["PostOnlineAgentCollection"].ToString());

            if (toPostOnlineAgentCollection)
            {
                #region Online Agent Collection


                try
                {
                    Logger.WriteLog("Started Online Agent Collection...");
                    List <OnlineAgentDetails> AgentList = OnlineAgentAPI.GetOnlineAgentCollection(companyid, journeyDate);
                    Logger.WriteLog("Entry No 2: Online Agent Collection List: " + AgentList.Count);

                    if (AgentList != null && AgentList.Count > 0)
                    {
                        OnlineAgentAPI.CreateJournalForOnlineAgentCollection(companyid, AgentList);
                    }
                }
                catch (Exception ex)
                {
                    Logger.WriteLog("OnlineAgentPosting", "PostOnlineAgentCollection", "Exception in Posting AgentCollection: " + ex.Message);
                }


                #endregion
            }


            Boolean toPostOfflineAgentCollection = Convert.ToBoolean(ConfigurationManager.AppSettings["PostOfflineAgentCollection"].ToString());

            if (toPostOfflineAgentCollection)
            {
                #region Offline Agent Collection


                try
                {
                    Logger.WriteLog("Started Offline Agent Collection...");
                    List <OfflineAgentDetails> AgentList = OfflineAgentAPI.GetOfflineAgentCollection(companyid, journeyDate);
                    Logger.WriteLog("Entry No 3: Offline Agent Collection List: " + AgentList.Count);

                    if (AgentList != null && AgentList.Count > 0)
                    {
                        OfflineAgentAPI.CreateJournalForOfflineAgentCollection(companyid, AgentList);
                    }
                }
                catch (Exception ex)
                {
                    Logger.WriteLog("OfflineAgentPosting", "PostOfflineAgentCollection", "Exception in Posting AgentCollection: " + ex.Message);
                }


                #endregion
            }



            Boolean toPostJournalEntry = Convert.ToBoolean(ConfigurationManager.AppSettings["PostJournalEntry"].ToString());
            if (toPostJournalEntry)
            {
                Logger.WriteLog("Journal Entry Creation and Posting");
                List <Journal> journalList = AccountingAPI.GetJournals(companyid);
                if (journalList != null && journalList.Count > 0)
                {
                    Logger.WriteLog("Journal list Count: " + journalList.Count);
                    for (int i = 0; i < journalList.Count; i++)
                    {
                        Journal jl = journalList[i];
                        List <JournalDetail> jdList = AccountingAPI.GetJournalDetail(jl.JournalId, jl.Type);
                        TallyResponse        tr     = TallyPostingAPI.PostJournal(jl, jdList);
                        if (tr != null && tr.Status == "1")
                        {
                            //AccountingAPI.UpdateTallyJournalIdInCRS(jl.JournalId, tr.EntityId);
                        }
                        else
                        {
                            Logger.WriteLogAlert("AccountingAPI " + "Error:PostingJournalIdInTally For JournalID: " + jl.JournalId);
                        }
                    }

                    //if (EntryCounter.GetInstance().GetCount() != journalList.Count)
                    //{
                    //    Email.SendMail("Mismatch in No Of Entry Generated Vs. Posted for Journey Date: " + journalList[0].JournalDateTime + " No Of Entry Generated: " + EntryCounter.GetInstance().GetCount() + " No Of Entry Posted: " + journalList.Count);
                    //}
                }
            }
        }
示例#13
0
        public static void PostBranchData(int companyid, DateTime journeyDate)
        {
            // Initialize entry counter to Zero
            EntryCounter.GetInstance().ResetCount();

            Boolean toPostBranchBookings = Convert.ToBoolean(ConfigurationManager.AppSettings["PostBranchBookings"].ToString());

            if (toPostBranchBookings)
            {
                #region Branch  Bookings


                try
                {
                    Logger.WriteLog("Started Branch Booking...");
                    List <Booking> bookingsList = BookingsAPI.GetBranchBookings(companyid, journeyDate);
                    Logger.WriteLog("Entry No 1 :  Branch Collection List : " + bookingsList.Count);

                    if (bookingsList != null && bookingsList.Count > 0)
                    {
                        BookingsAPI.CreateJournalForUserWiseCollection(companyid, bookingsList);
                    }
                }
                catch (Exception ex)
                {
                    Logger.WriteLog("BranchPosting", "PostBranchBookings", "Exception in Posting Bookings: " + ex.Message);
                }


                #endregion
            }

            Boolean toPostOnlineAgentCollection = Convert.ToBoolean(ConfigurationManager.AppSettings["PostOnlineAgentCollection"].ToString());

            if (toPostOnlineAgentCollection)
            {
                #region Online Agent Collection


                try
                {
                    Logger.WriteLog("Started Online Agent Collection...");
                    List <OnlineAgentDetails> AgentList = OnlineAgentAPI.GetOnlineAgentCollection(companyid, journeyDate);
                    Logger.WriteLog("Entry No 2: Online Agent Collection List: " + AgentList.Count);

                    if (AgentList != null && AgentList.Count > 0)
                    {
                        OnlineAgentAPI.CreateJournalForOnlineAgentCollection(companyid, AgentList);
                    }
                }
                catch (Exception ex)
                {
                    Logger.WriteLog("OnlineAgentPosting", "PostOnlineAgentCollection", "Exception in Posting AgentCollection: " + ex.Message);
                }


                #endregion
            }

            Boolean toPostOfflineAgentCollection = Convert.ToBoolean(ConfigurationManager.AppSettings["PostOfflineAgentCollection"].ToString());

            if (toPostOfflineAgentCollection)
            {
                #region Offline Agent Collection


                try
                {
                    Logger.WriteLog("Started Offline Agent Collection...");
                    List <OfflineAgentDetails> AgentList = OfflineAgentAPI.GetOfflineAgentCollection(companyid, journeyDate);
                    Logger.WriteLog("Entry No 3: Offline Agent Collection List: " + AgentList.Count);

                    if (AgentList != null && AgentList.Count > 0)
                    {
                        OfflineAgentAPI.CreateJournalForOfflineAgentCollection(companyid, AgentList);
                    }
                }
                catch (Exception ex)
                {
                    Logger.WriteLog("OfflineAgentPosting", "PostOfflineAgentCollection", "Exception in Posting AgentCollection: " + ex.Message);
                }


                #endregion
            }

            Boolean toFranchiseBookings = Convert.ToBoolean(ConfigurationManager.AppSettings["PostFranchiseCollection"].ToString());

            if (toFranchiseBookings)
            {
                #region Franchise  Bookings


                try
                {
                    Logger.WriteLog("Started Franchise Booking...");
                    List <Franchise> franchiseList = FranchiseAPI.GetFranchiseCollection(companyid, journeyDate);
                    Logger.WriteLog("Entry No 4: Franchise Collection List: " + franchiseList.Count);

                    if (franchiseList != null && franchiseList.Count > 0)
                    {
                        FranchiseAPI.CreateSaleForFranchiseCollection(companyid, franchiseList);
                    }
                }
                catch (Exception ex)
                {
                    Logger.WriteLog("FranchisePosting", "PostFranchiseBookings", "Exception in Posting Franchise Bookings: " + ex.Message);
                }


                #endregion
            }

            Boolean toPostJournalEntry = Convert.ToBoolean(ConfigurationManager.AppSettings["PostJournalEntry"].ToString());
            if (toPostJournalEntry)
            {
                #region PostJournalEntry

                string logpath = ConfigurationManager.AppSettings["LogPath"];
                if (!File.Exists(@logpath + "Alertfile2" + ".txt"))
                {
                    Logger.WriteLog("Journal Entry Creation and Posting");
                    List <Journal> journalList = AccountingAPI.GetJournals(companyid);
                    Logger.WriteLog("Journal list Count: " + journalList.Count);
                    if (journalList != null && journalList.Count > 0)
                    {
                        for (int i = 0; i < journalList.Count; i++)
                        {
                            Logger.WriteLog("Entry Serial Journal : " + i + 1);
                            Journal jl = journalList[i];
                            List <JournalDetail> jdList = AccountingAPI.GetJournalDetail(jl.JournalId, jl.Type);
                            try
                            {
                                TallyResponse tr = TallyPostingAPI.PostJournal(jl, jdList);
                                if (tr != null && tr.Status == "1")
                                {
                                    AccountingAPI.UpdateTallyJournalIdInCRS(jl.JournalId, tr.EntityId);
                                }
                                //else
                                //{
                                //    Logger.WriteLogAlert("AccountingAPI " + "Error:PostingJournalIdInTally For JournalID: " + jl.JournalId);
                                //    //PostingAPI.UpdatePostingStatusForException(companyid, journalList[i].JournalDateTime, 10);
                                //    //throw new Exception();

                                //}
                            }
                            catch (Exception ex)
                            {
                                Logger.WriteLog("Posting Error", "Posting Error", " Posting Error: " + ex.Message);
                                //Logger.WriteLogAlert2("Posting Erro" + " Error for Posting : " + ex.Message);
                                PostingAPI.UpdatePostingStatusForException(companyid, journalList[i].JournalDateTime, 10);
                            }
                        }
                    }


                    //if (EntryCounter.GetInstance().GetCount() != journalList.Count)
                    //{
                    //    Email.SendMail("Mismatch in No Of Entry Generated Vs. Posted for Journey Date: " + journalList[0].JournalDateTime + " No Of Entry Generated: " + EntryCounter.GetInstance().GetCount() + " No Of Entry Posted: " + journalList.Count);
                    //}
                }
                else
                {
                    Logger.WriteLog("Posting not started, because there is generating error already exist. First remove it then continue..");
                }
                #endregion
            }
        }