/// <summary> /// Add Agent To The Accounting chart .. /// If note type = 1 "Debit" add under A/R .. else 2 "Credit" addd under A/P /// </summary> /// <param name="agentId">Agent Id</param> /// <param name="agentType">Agent Note Type</param> /// <returns></returns> public static string AddAgentToChart(int agentId, byte agentType) { string parentAccountId = "", accountId; if (agentType == 1) //Debit Note .. A/R { parentAccountId = ((int)AccountingChartEnum.Agents).ToString(); } else { parentAccountId = ((int)AccountingChartEnum.Agents).ToString(); } AgentVm agentObj = AgentHelper.GetAgentInfo(agentId); string accNameEn = agentObj.AgentNameEn; string accNameAr = string.IsNullOrEmpty(agentObj.AgentNameAr) ? agentObj.AgentNameEn : agentObj.AgentNameAr; //Add new accountId to the chart accountId = AccountingChartHelper .AddAccountToChart(accNameEn, accNameEn, parentAccountId); AccountingChartHelper.AddAccountIdToObj(accountId, "Agent", agentId, "AgentId"); return(accountId); }
private static void AddExpenseReceiptToTrans(CashInVm cashInVmObj) { string creditAccId = AccountingChartHelper.GetAccountIdByPkAndTbName(cashInVmObj.CurrencyId, "Currency", "CurrencyId"); if (string.IsNullOrEmpty(creditAccId)) { string parentAccountId = ((int)AccountingChartEnum.Cash).ToString(); //Add new accountId to the chart creditAccId = AccountingChartHelper .AddAccountToChart(cashInVmObj.CurrencySign, cashInVmObj.CurrencySign, parentAccountId); AccountingChartHelper.AddAccountIdToObj(creditAccId, "Currency", cashInVmObj.CurrencyId, "CurrencyId"); } AccTransactionVm accTrans = new AccTransactionVm() { CreateDate = DateTime.Now, CreateBy = EasyFreight.DAL.AdminHelper.GetCurrentUserId(), TransactionName = "Cash Out Receipt Number " + cashInVmObj.ReceiptCode, TransactionNameAr = "ايصال صرف نقدية رقم " + cashInVmObj.ReceiptCode }; AccountingEntities db = new AccountingEntities(); var expensesLibList = db.ExpenseLibs.Select(x => new { x.ExpenseId, x.AccountId }).ToList(); AccTransactionDetailVm accTransDetDebit; //Loop through expenses for debit accounts foreach (var item in cashInVmObj.CashOutReceiptExpenses) { string debitAccId = expensesLibList.Where(x => x.ExpenseId == item.ExpenseId).FirstOrDefault().AccountId; accTransDetDebit = new AccTransactionDetailVm() { AccountId = debitAccId, DebitAmount = item.PaidAmount.Value, CurrencyId = cashInVmObj.CurrencyId, CreditAmount = 0 }; accTrans.AccTransactionDetails.Add(accTransDetDebit); } // Add Cash as credit AccTransactionDetailVm accTransDetCredit = new AccTransactionDetailVm() { AccountId = creditAccId, CreditAmount = cashInVmObj.ReceiptAmount.Value, CurrencyId = cashInVmObj.CurrencyId, DebitAmount = 0 }; accTrans.AccTransactionDetails.Add(accTransDetCredit); int transId = AccountingHelper.AddTransaction(accTrans); //Update TransId in invoice table AccountingChartHelper.AddTransIdToObj(transId, "CashOutReceipt", cashInVmObj.ReceiptId, "ReceiptId"); }
public static string AddEditExpense(int expenseId, string expenseNameEn, string expenseNameAr) { string isSaved = ""; AccountingEntities db = new AccountingEntities(); ExpenseLib expenseLibDb; if (expenseId != 0) { expenseLibDb = db.ExpenseLibs.Where(x => x.ExpenseId == expenseId).FirstOrDefault(); } else { expenseLibDb = new ExpenseLib(); } expenseLibDb.ExpenseNameEn = expenseNameEn; expenseLibDb.ExpenseNameAr = expenseNameAr; if (expenseId == 0) { db.ExpenseLibs.Add(expenseLibDb); } using (TransactionScope transaction = new TransactionScope()) { try { db.SaveChanges(); if (expenseId == 0) { expenseId = expenseLibDb.ExpenseId; string parentAccountId = ((int)AccountingChartEnum.GeneralAndAdministrativeExpenses).ToString(); string accountId = AccountingChartHelper.AddAccountToChart(expenseNameEn, expenseNameAr, parentAccountId); AccountingChartHelper.AddAccountIdToObj(accountId, "ExpenseLib", expenseId, "ExpenseId"); isSaved = expenseId.ToString(); } transaction.Complete(); } catch (DbEntityValidationException e) { isSaved = "false " + e.Message; } catch (Exception e) { isSaved = "false " + e.Message; } } return(isSaved); }
public static string AddCashToChart(int currencyId) { string parentAccountId = "", accountId; AccountingEntities db = new AccountingEntities(); var currObj = db.CurrencyAccs.Where(x => x.CurrencyId == currencyId).FirstOrDefault(); parentAccountId = ((int)AccountingChartEnum.Cash).ToString(); //Add new accountId to the chart accountId = AccountingChartHelper .AddAccountToChart(currObj.CurrencySign, currObj.CurrencySign, parentAccountId); AccountingChartHelper.AddAccountIdToObj(accountId, "Currency", currObj.CurrencyId, "CurrencyId"); return(accountId); }
public static string AddConsigneeToChart(int consigneeId) { string parentAccountId = "", accountId; parentAccountId = ((int)AccountingChartEnum.AccountsRecievable).ToString(); var carrVm = ConsigneeHelper.GetConsigneeInfo(consigneeId); string accNameEn = carrVm.ConsigneeNameEn; string accNameAr = string.IsNullOrEmpty(carrVm.ConsigneeNameAr) ? carrVm.ConsigneeNameEn : carrVm.ConsigneeNameAr; //Add new accountId to the chart accountId = AccountingChartHelper .AddAccountToChart(accNameEn, accNameEn, parentAccountId); AccountingChartHelper.AddAccountIdToObj(accountId, "Consignee", consigneeId, "ConsigneeId"); return(accountId); }
public static string AddShipperToChart(int shipeprId) { string parentAccountId = "", accountId; parentAccountId = ((int)AccountingChartEnum.AccountsRecievable).ToString(); var carrVm = ShipperHelper.GetShipperInfo(shipeprId); string accNameEn = carrVm.ShipperNameEn; string accNameAr = string.IsNullOrEmpty(carrVm.ShipperNameAr) ? carrVm.ShipperNameAr : carrVm.ShipperNameEn; //Add new accountId to the chart accountId = AccountingChartHelper .AddAccountToChart(accNameEn, accNameEn, parentAccountId); AccountingChartHelper.AddAccountIdToObj(accountId, "Shipper", shipeprId, "ShipperId"); return(accountId); }
public static string AddContractorToChart(int contrId) { string parentAccountId = "", accountId; parentAccountId = ((int)AccountingChartEnum.APContractors).ToString(); var carrVm = ContractorHelper.GetContractorInfo(contrId); string accNameEn = carrVm.ContractorNameEn; string accNameAr = string.IsNullOrEmpty(carrVm.ContractorNameAr) ? carrVm.ContractorNameEn : carrVm.ContractorNameAr; //Add new accountId to the chart accountId = AccountingChartHelper .AddAccountToChart(accNameEn, accNameEn, parentAccountId); AccountingChartHelper.AddAccountIdToObj(accountId, "Contractor", contrId, "ContractorId"); return(accountId); }
/// <summary> /// Add Bank Account to The Accounting chart /// </summary> /// <param name="bankId">Bank Id .. optional .. if 0 .. will get it in code</param> /// <param name="bankAccountId">Bank Account Id</param> /// <returns>The Accounting chart Account Number</returns> public static string AddBankAccountToChart(int bankId, int bankAccountId) { string debitAccId; string parentAccountId = ((int)AccountingChartEnum.CashInBanks).ToString(); if (bankId == 0) { AccountingEntities db = new AccountingEntities(); bankId = db.BankAccounts.Where(x => x.BankAccId == bankAccountId).FirstOrDefault().BankId; } BankVm bankInfo = BankHelper.GetBankInfo(bankId); BankAccountVm bankAccount = bankInfo.BankAccounts.Where(x => x.BankAccId == bankAccountId).FirstOrDefault(); string accNameEn = bankAccount.AccountName + " (" + bankAccount.AccountNumber + ")"; //Add new accountId to the chart debitAccId = AccountingChartHelper .AddAccountToChart(accNameEn, accNameEn, parentAccountId); AccountingChartHelper.AddAccountIdToObj(debitAccId, "BankAccount", bankAccountId, "BankAccId"); return(debitAccId); }
internal static string GetTaxDepositAccountId(byte orderFrom, int?shipperId, int?consigneeId) { string accountNameEn = "", accountNameAr = "", accountId = ""; if (orderFrom == 1) //export { var shipper = ShipperHelper.GetShipperInfo(shipperId.Value); accountId = shipper.TaxDepositAccountId; if (string.IsNullOrEmpty(accountId)) { accountNameEn = shipper.ShipperNameEn + " Tax Deposit"; accountNameAr = string.IsNullOrEmpty(shipper.ShipperNameAr) ? accountNameEn : shipper.ShipperNameAr + " ضريبة الخصم "; string parentAccountId = ((int)AccountingChartEnum.TaxDepositDebit).ToString(); //Add new accountId to the chart accountId = AccountingChartHelper.AddAccountToChart(accountNameEn, accountNameAr, parentAccountId); //update AccountId column shipper table AccountingChartHelper.AddAccountIdToObj(accountId, "shipper", shipper.ShipperId, "ShipperId", "TaxDepositAccountId"); } } else if (orderFrom == 2) //import { var consignee = ConsigneeHelper.GetConsigneeInfo(consigneeId.Value); accountId = consignee.TaxDepositAccountId; if (string.IsNullOrEmpty(accountId)) { accountNameEn = consignee.ConsigneeNameEn + " Tax Deposit"; accountNameAr = string.IsNullOrEmpty(consignee.ConsigneeNameAr) ? accountNameEn + " Tax Deposit" : consignee.ConsigneeNameAr + " ضريبة الخصم "; string parentAccountId = ((int)AccountingChartEnum.TaxDepositDebit).ToString(); //Add new accountId to the chart accountId = AccountingChartHelper.AddAccountToChart(accountNameEn, accountNameAr, parentAccountId); //update AccountId column shipper table AccountingChartHelper.AddAccountIdToObj(accountId, "consignee", consignee.ConsigneeId, "ConsigneeId", "TaxDepositAccountId"); } } return(accountId); }
internal static void AddReceiptToTransTable(string debitAccountId, CashInVm cashInVmObj, bool IsOpenBalancePayment = false) { //Check Payment type string creditAccId = ""; byte paymentType = cashInVmObj.PaymentTermId; switch (paymentType) { case 1: //cash creditAccId = AccountingChartHelper.GetAccountIdByPkAndTbName(cashInVmObj.CurrencyId, "Currency", "CurrencyId"); if (string.IsNullOrEmpty(creditAccId)) { string parentAccountId = ((int)AccountingChartEnum.Cash).ToString(); //Add new accountId to the chart creditAccId = AccountingChartHelper .AddAccountToChart(cashInVmObj.CurrencySign, cashInVmObj.CurrencySign, parentAccountId); AccountingChartHelper.AddAccountIdToObj(creditAccId, "Currency", cashInVmObj.CurrencyId, "CurrencyId"); } break; case 3: // Bank Cash Deposit int bankAccountId = cashInVmObj.BankAccId.Value; int bankId = cashInVmObj.BankId.Value; creditAccId = AccountingChartHelper.GetAccountIdByPkAndTbName(bankAccountId, "BankAccount", "BankAccId"); if (string.IsNullOrEmpty(creditAccId)) { creditAccId = AccountingChartHelper.AddBankAccountToChart(bankId, bankAccountId); } break; case 4: //Check creditAccId = ((int)AccountingChartEnum.NotesPayable).ToString(); break; default: break; } AccTransactionVm accTrans = new AccTransactionVm() { CreateDate = DateTime.Now, CreateBy = EasyFreight.DAL.AdminHelper.GetCurrentUserId(), TransactionName = "Cash Out Receipt Number " + cashInVmObj.ReceiptCode + (IsOpenBalancePayment ? " pay open balance " : ""), TransactionNameAr = "ايصال صرف نقدية رقم " + cashInVmObj.ReceiptCode }; AccTransactionDetailVm accTransDetDebit = new AccTransactionDetailVm() { AccountId = debitAccountId, CreditAmount = 0, CurrencyId = cashInVmObj.CurrencyId, DebitAmount = cashInVmObj.ReceiptAmount.Value }; accTrans.AccTransactionDetails.Add(accTransDetDebit); AccTransactionDetailVm accTransDetCredit = new AccTransactionDetailVm() { AccountId = creditAccId, CreditAmount = cashInVmObj.ReceiptAmount.Value, CurrencyId = cashInVmObj.CurrencyId, DebitAmount = 0 }; accTrans.AccTransactionDetails.Add(accTransDetCredit); int transId = AccountingHelper.AddTransaction(accTrans); //Update TransId in invoice table AccountingChartHelper.AddTransIdToObj(transId, "CashOutReceipt", cashInVmObj.ReceiptId, "ReceiptId"); }
//public static OpenBalanceVm GetOpenBalanceForCash() //{ // OpenBalanceVm balanceVm = new OpenBalanceVm(); // balanceVm.TbName = "Currency"; // balanceVm.LibItemId = 0; // balanceVm.CreateDate = DateTime.Now; // balanceVm.IsCreditAgent = false; // AccountingEntities db = new AccountingEntities(); // //Get Currency List // var currList = db.CurrencyAccs.ToList(); // OpenBalanceDetailVm openBalanceDet; // foreach (var item in currList) // { // string accountId = AccountingChartHelper.GetAccountIdByPkAndTbName(item.CurrencyId, "Currency", "CurrencyId"); // //Get Transaction details for open balance // var accTanDet = db.AccTransactionDetails.Include("AccTransaction") // .Where(x => x.AccountId == accountId && x.AccTransaction.TransactionName == "open balance").ToList(); // openBalanceDet = new OpenBalanceDetailVm(); // openBalanceDet.CurrencyId = item.CurrencyId; // openBalanceDet.CurrencySign = item.CurrencySign; // openBalanceDet.CurrencyAccountId = item.AccountId; // //check if has open balance for this currency // var openAccTran = accTanDet.Where(x => x.CurrencyId == item.CurrencyId).FirstOrDefault(); // if (openAccTran != null) // { // openBalanceDet.TransDetailId = openAccTran.TransDetailId; // openBalanceDet.CreditAmount = openAccTran.CreditAmount; // openBalanceDet.DebitAmount = openAccTran.DebitAmount; // } // balanceVm.OpenBalanceDetails.Add(openBalanceDet); // } // return balanceVm; //} public static string AddEditOpenBalance(OpenBalanceVm openBalanceVm) { string isSaved = "true"; string accountId = ""; string tbName, pkName; int libId; bool isCreditAgent = false; libId = openBalanceVm.LibItemId; tbName = openBalanceVm.TbName; pkName = openBalanceVm.PkName; if (openBalanceVm.IsCreditAgent != null) { isCreditAgent = openBalanceVm.IsCreditAgent.Value; } //Get AccountId accountId = AccountingChartHelper.GetAccountIdByPkAndTbName(libId, tbName, pkName); if (string.IsNullOrEmpty(accountId)) { switch (tbName) { case "Agent": byte agentType; if (isCreditAgent == false) { agentType = 1; //debit note A/R } else { agentType = 2; //Credit note A/P } accountId = AccountingChartHelper.AddAgentToChart(libId, agentType); break; case "Carrier": accountId = AccountingChartHelper.AddCarrierToChart(libId); break; case "Contractor": accountId = AccountingChartHelper.AddContractorToChart(libId); break; case "Shipper": accountId = AccountingChartHelper.AddShipperToChart(libId); break; case "Consignee": accountId = AccountingChartHelper.AddConsigneeToChart(libId); break; case "Currency": accountId = AccountingChartHelper.AddCashToChart(libId); break; case "BankAccount": accountId = AccountingChartHelper.AddBankAccountToChart(0, libId); break; case "AccountingChart": accountId = AccountingChartHelper.AddBankAccountToChart(0, libId); break; } AccountingChartHelper.AddAccountIdToObj(accountId, tbName, libId, pkName); } openBalanceVm.AccountId = accountId; int transId = openBalanceVm.TransId; AccTransaction accTran; AccountingEntities db = new AccountingEntities(); if (transId != 0) { accTran = db.AccTransactions.Include("AccTransactionDetails").Where(x => x.TransId == transId).FirstOrDefault(); //delete all tran details and add it later foreach (var item in accTran.AccTransactionDetails.ToList()) { db.AccTransactionDetails.Remove(item); } } else { accTran = new AccTransaction() { CreateBy = AdminHelper.GetCurrentUserId(), CreateDate = DateTime.Now, TransactionName = "open balance" }; } Mapper.CreateMap <OpenBalanceDetailVm, AccTransactionDetail>(); AccTransactionDetail accTranDetail; foreach (var item in openBalanceVm.OpenBalanceDetails.Where(x => x.DebitAmount != null || x.CreditAmount != null)) { accTranDetail = new AccTransactionDetail(); item.AccountId = accountId; Mapper.Map(item, accTranDetail); accTran.AccTransactionDetails.Add(accTranDetail); } if (transId == 0) { db.AccTransactions.Add(accTran); } try { db.SaveChanges(); } catch (DbEntityValidationException e) { isSaved = "false " + e.Message; } catch (Exception e) { isSaved = "false " + e.Message; } return(isSaved); }