public int SaveInitialBalance(party_journal partyJournal)
 {
     try
     {
         var objPartyJournal = new party_journal
         {
             transaction_date = DateTime.Now,
             transaction_type = "INITIAL-BALANCE",
             party_id         = partyJournal.party_id,
             opening_balance  = partyJournal.opening_balance,
             dr_amount        = 0,
             cr_amount        = 0,
             closing_balance  = partyJournal.opening_balance,
             remarks          = "Initial Balance",
             created_by       = partyJournal.created_by,
             document_code    = "INITIAL-BALANCE",
             created_date     = DateTime.Now,
             updated_by       = partyJournal.created_by,
             updated_date     = DateTime.Now,
         };
         _entities.party_journal.Add(objPartyJournal);
         _entities.SaveChanges();
         return(1);
     }
     catch (Exception ex)
     {
         return(0);
     }
 }
        public long PartyJournalEntry(string transactionType, long partyId, decimal transactionAmount, string remarks, long userId, string documentCode)
        {
            try
            {
                // GET TRANSACTION CONFIGURATION
                var tranConfig = _entities.transaction_configuration.FirstOrDefault(w => w.transaction_type == transactionType);
                if (tranConfig != null)
                {
                    party_journal partyJournal = new party_journal
                    {
                        transaction_date = DateTime.Now,
                        transaction_type = transactionType,
                        party_id         = partyId,
                        opening_balance  = 0,
                        dr_amount        = 0,
                        cr_amount        = 0,
                        closing_balance  = 0,
                        remarks          = remarks,
                        created_by       = userId,
                        document_code    = documentCode,
                        created_date     = DateTime.Now,
                        updated_by       = userId,
                        updated_date     = DateTime.Now,
                    };

                    // GET OPENNIG BALANCE
                    var partyTransaction =
                        _entities.party_journal.Where(w => w.party_id == partyId)
                        .OrderByDescending(o => o.party_journal_id)
                        .FirstOrDefault();
                    decimal closingBalance = 0;
                    if (partyTransaction != null)
                    {
                        closingBalance = partyTransaction.closing_balance ?? 0;
                    }

                    partyJournal.opening_balance = closingBalance;
                    // DEBIT OR CREDIT
                    if (tranConfig.is_dr ?? false)
                    {
                        partyJournal.dr_amount = transactionAmount;
                    }
                    else if (tranConfig.is_cr ?? false)
                    {
                        partyJournal.cr_amount = transactionAmount;
                    }
                    partyJournal.closing_balance = partyJournal.opening_balance + partyJournal.dr_amount - partyJournal.cr_amount;

                    // INSERT PARTY JOURNAL
                    _entities.party_journal.Add(partyJournal);
                    _entities.SaveChanges();
                    return(partyJournal.party_journal_id);
                }
            }
            catch (Exception)
            {
                return(0);
            }
            return(0);
        }
        public HttpResponseMessage SaveInitialBalance(party_journal partyJournal)
        {
            var saved     = partyjournalRepository.SaveInitialBalance(partyJournal);
            var formatter = RequestFormat.JsonFormaterString();

            if (saved == 1)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                    output = "success", msg = "Information  is saved successfully."
                }, formatter));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                    output = "error", msg = "Cannot save initial balance"
                }, formatter));
            }
        }