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"); }
private static void AddAgentToTransTable(string agentAccId, AgentNoteVm agentNoteVm) { AccTransactionVm accTrans = new AccTransactionVm() { CreateDate = DateTime.Now, CreateBy = EasyFreight.DAL.AdminHelper.GetCurrentUserId(), TransactionName = "Agent Note Number " + agentNoteVm.AgentNoteCode, TransactionNameAr = "فاتورة agent رقم " + agentNoteVm.AgentNoteCode }; AccTransactionDetailVm accTransDetDebit; AccTransactionDetailVm accTransDetCredit; if (agentNoteVm.AgentNoteType == 1) // Debit .. A/R deb-- SoldServices cr .. same like invoice { accTransDetDebit = new AccTransactionDetailVm() { AccountId = agentAccId, CreditAmount = 0, CurrencyId = agentNoteVm.CurrencyId, DebitAmount = agentNoteVm.TotalAmount }; accTrans.AccTransactionDetails.Add(accTransDetDebit); accTransDetCredit = new AccTransactionDetailVm() { AccountId = ((int)AccountingChartEnum.SoldServices).ToString(), CreditAmount = agentNoteVm.TotalAmount, CurrencyId = agentNoteVm.CurrencyId, DebitAmount = 0 }; accTrans.AccTransactionDetails.Add(accTransDetCredit); } else //Credit not .. CarrierCostOfSales deb -- A/P cr { accTransDetDebit = new AccTransactionDetailVm() { AccountId = ((int)AccountingChartEnum.CarrierCostOfSales).ToString(), CreditAmount = 0, CurrencyId = agentNoteVm.CurrencyId, DebitAmount = agentNoteVm.TotalAmount }; accTrans.AccTransactionDetails.Add(accTransDetDebit); accTransDetCredit = new AccTransactionDetailVm() { AccountId = agentAccId, CreditAmount = agentNoteVm.TotalAmount, CurrencyId = agentNoteVm.CurrencyId, DebitAmount = 0 }; accTrans.AccTransactionDetails.Add(accTransDetCredit); } int transId = AccountingHelper.AddTransaction(accTrans); //Update TransId in invoice table AccountingChartHelper.AddTransIdToObj(transId, "AgentNote", agentNoteVm.AgentNoteId, "AgentNoteId"); }
private static void AddAPInvToTransTable(string creditAccountId, InvoiceVm invoiceVm) { string debitAccId = ""; byte invFor = invoiceVm.InvoiceType; if (invFor == 1) //carrier { debitAccId = ((int)AccountingChartEnum.CarrierCostOfSales).ToString(); } else if (invFor == 2) //Contractor { debitAccId = ((int)AccountingChartEnum.TruckingCostOfSales).ToString(); } else if (invFor == 3) //Custom Clearance { debitAccId = ((int)AccountingChartEnum.CCCostOfSales).ToString(); } AccTransactionVm accTrans = new AccTransactionVm() { CreateDate = DateTime.Now, CreateBy = EasyFreight.DAL.AdminHelper.GetCurrentUserId(), TransactionName = "Invoice Number " + invoiceVm.InvoiceCode, TransactionNameAr = "فاتورة رقم " + invoiceVm.InvoiceCode }; AccTransactionDetailVm accTransDetDebit = new AccTransactionDetailVm() { AccountId = debitAccId, CreditAmount = 0, CurrencyId = invoiceVm.InvCurrencyId, DebitAmount = invoiceVm.InvoiceTotals.FirstOrDefault().TotalAmount }; accTrans.AccTransactionDetails.Add(accTransDetDebit); AccTransactionDetailVm accTransDetCredit = new AccTransactionDetailVm() { AccountId = creditAccountId, CreditAmount = invoiceVm.InvoiceTotals.FirstOrDefault().TotalAmount, CurrencyId = invoiceVm.InvCurrencyId, DebitAmount = 0 }; accTrans.AccTransactionDetails.Add(accTransDetCredit); int transId = AccountingHelper.AddTransaction(accTrans); //Update TransId in invoice table AccountingChartHelper.AddTransIdToObj(transId, "InvoiceAP", invoiceVm.InvoiceId, "InvoiceId"); }
private static void AddReceiptToTransTableTransfer(CashBankTransferVm currVm, int cashInReceiptId, int cashOutReceiptId) { string creditAccId, debitAccId; creditAccId = currVm.IsCashToBank ? AccountingChartHelper.GetAccountIdByPkAndTbName(currVm.CurrentCurrencyId, "Currency", "CurrencyId") : currVm.AccountId; debitAccId = currVm.IsCashToBank ? currVm.AccountId : AccountingChartHelper.GetAccountIdByPkAndTbName(currVm.CurrentCurrencyId, "Currency", "CurrencyId"); decimal amount = currVm.CurrentAmount; AccTransactionVm accTrans = new AccTransactionVm() { CreateDate = DateTime.Now, CreateBy = CurrentUserId, TransactionName = currVm.IsCashToBank ? "Cash to bank transfer" : "Bank to cash transfer", TransactionNameAr = currVm.IsCashToBank ? "تحويل من الخزينة الى البنك" : "تحويل من البنك للخزينة" }; AccTransactionDetailVm accTransDetDebit = new AccTransactionDetailVm() { AccountId = debitAccId, CreditAmount = 0, CurrencyId = currVm.CurrentCurrencyId, DebitAmount = amount }; accTrans.AccTransactionDetails.Add(accTransDetDebit); AccTransactionDetailVm accTransDetCredit = new AccTransactionDetailVm() { AccountId = creditAccId, CreditAmount = currVm.CurrentAmount, CurrencyId = currVm.CurrentCurrencyId, DebitAmount = 0 }; accTrans.AccTransactionDetails.Add(accTransDetCredit); int transId = AccountingHelper.AddTransaction(accTrans); //Update TransId in invoice table AccountingChartHelper.AddTransIdToObj(transId, "CashInReceipt", cashInReceiptId, "ReceiptId"); AccountingChartHelper.AddTransIdToObj(transId, "CashOutReceipt", cashOutReceiptId, "ReceiptId"); }
private static void AddReceiptToTransTable(CurrencyExchangeVm currVm, int cashInReceiptId, int cashOutReceiptId) { string creditAccId = AccountingChartHelper.GetAccountIdByPkAndTbName(currVm.CurrentCurrencyId, "Currency", "CurrencyId"); string debitAccId = AccountingChartHelper.GetAccountIdByPkAndTbName(currVm.NewCurrencyId, "Currency", "CurrencyId"); decimal creditAmount = currVm.CurrentAmount; decimal debitAmount = currVm.NewAmount; AccTransactionVm accTrans = new AccTransactionVm() { CreateDate = DateTime.Now, CreateBy = CurrentUserId, TransactionName = "Currency Exchange", TransactionNameAr = "تحويل عملة" }; AccTransactionDetailVm accTransDetDebit = new AccTransactionDetailVm() { AccountId = debitAccId, CreditAmount = 0, CurrencyId = currVm.NewCurrencyId, DebitAmount = debitAmount }; accTrans.AccTransactionDetails.Add(accTransDetDebit); AccTransactionDetailVm accTransDetCredit = new AccTransactionDetailVm() { AccountId = creditAccId, CreditAmount = currVm.CurrentAmount, CurrencyId = currVm.CurrentCurrencyId, DebitAmount = 0 }; accTrans.AccTransactionDetails.Add(accTransDetCredit); int transId = AccountingHelper.AddTransaction(accTrans); //Update TransId in invoice table AccountingChartHelper.AddTransIdToObj(transId, "CashInReceipt", cashInReceiptId, "ReceiptId"); AccountingChartHelper.AddTransIdToObj(transId, "CashOutReceipt", cashOutReceiptId, "ReceiptId"); }
private static void AddCheckActionToTransTable(string debitAccId, string creditAccId, decimal amount, int currencyId, string comment, string commentAr, int receiptId, string tbName) { AccTransactionVm accTrans = new AccTransactionVm() { CreateDate = DateTime.Now, CreateBy = AdminHelper.GetCurrentUserId(), TransactionName = comment, TransactionNameAr = commentAr }; AccTransactionDetailVm accTransDetDebit = new AccTransactionDetailVm() { AccountId = debitAccId, CreditAmount = 0, CurrencyId = currencyId, DebitAmount = amount }; accTrans.AccTransactionDetails.Add(accTransDetDebit); AccTransactionDetailVm accTransDetCredit = new AccTransactionDetailVm() { AccountId = creditAccId, CreditAmount = amount, CurrencyId = currencyId, DebitAmount = 0 }; accTrans.AccTransactionDetails.Add(accTransDetCredit); int transId = AccountingHelper.AddTransaction(accTrans); //Update TransId in invoice table AccountingChartHelper.AddTransIdToObj(transId, tbName, receiptId, "ReceiptId"); }
/// <summary> /// Add Invoice amounts to the accounting transactions table /// </summary> /// <param name="clientAccId">shipeer/ consignee account Id</param> /// <param name="invVm">Invoice Vm obj</param> private static void AddInvToTransTable(string clientAccId, InvoiceVm invoiceVm) { AccTransactionVm accTrans = new AccTransactionVm() { CreateDate = DateTime.Now, CreateBy = EasyFreight.DAL.AdminHelper.GetCurrentUserId(), TransactionName = "Invoice Number " + invoiceVm.InvoiceCode, TransactionNameAr = "فاتورة رقم " + invoiceVm.InvoiceCode }; //Get Cost list // var operCostObj = AccountingHelper.GetOperationCost(invoiceVm.OperationId, invoiceVm.HouseBillId); var operCostList = invoiceVm.InvoiceDetails; var operCostTotalList = invoiceVm.InvoiceTotals; //GetHbInvTotal(invoiceVm.InvoiceType, ref operCostList, ref operCostTotalList); //Tax Deposit AccountId string taxDepositAccId = ""; if (operCostTotalList.FirstOrDefault().TaxDepositAmount != 0) { taxDepositAccId = GetTaxDepositAccountId(invoiceVm.OrderFrom, invoiceVm.ShipperId, invoiceVm.ConsigneeId); } AccTransactionDetailVm accTransDetDebit; AccTransactionDetailVm accTransDetCredit; AccTransactionDetailVm accTransDetVAT; foreach (var item in operCostTotalList) { accTransDetDebit = new AccTransactionDetailVm(); accTransDetDebit.AccountId = clientAccId; accTransDetDebit.DebitAmount = item.TotalAmount; accTransDetDebit.CurrencyId = item.CurrencyId; accTransDetCredit = new AccTransactionDetailVm(); accTransDetCredit.AccountId = ((int)AccountingChartEnum.SoldServices).ToString(); accTransDetCredit.CreditAmount = item.TotalBeforeTax; accTransDetCredit.CurrencyId = item.CurrencyId; accTrans.AccTransactionDetails.Add(accTransDetDebit); accTrans.AccTransactionDetails.Add(accTransDetCredit); if (item.VatTaxAmount != 0) { accTransDetVAT = new AccTransactionDetailVm(); accTransDetVAT.AccountId = ((int)AccountingChartEnum.VAT).ToString(); accTransDetVAT.CreditAmount = item.VatTaxAmount; accTransDetVAT.CurrencyId = item.CurrencyId; accTrans.AccTransactionDetails.Add(accTransDetVAT); } if (!string.IsNullOrEmpty(taxDepositAccId)) { AccTransactionDetailVm accTransTaxDepDebit = new AccTransactionDetailVm(); accTransTaxDepDebit.AccountId = taxDepositAccId; accTransTaxDepDebit.DebitAmount = item.TaxDepositAmount; accTransTaxDepDebit.CurrencyId = item.CurrencyId; accTrans.AccTransactionDetails.Add(accTransTaxDepDebit); } } int transId = AccountingHelper.AddTransaction(accTrans); //Update TransId in invoice table AccountingChartHelper.AddTransIdToObj(transId, "Invoice", invoiceVm.InvoiceId, "InvoiceId"); }
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"); }