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 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");
        }
Exemple #3
0
        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");
        }
Exemple #6
0
        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");
        }
Exemple #7
0
        /// <summary>
        /// Add accounting transaction the transaction table
        /// </summary>
        /// <param name="transVm">AccTransactionVm</param>
        /// <returns>The Id for the added trans</returns>
        public static int AddTransaction(AccTransactionVm transVm)
        {
            int transId           = 0;
            AccountingEntities db = new AccountingEntities();

            AccTransaction transDb = new AccTransaction();

            Mapper.CreateMap <AccTransactionVm, AccTransaction>().IgnoreAllNonExisting();
            Mapper.CreateMap <AccTransactionDetailVm, AccTransactionDetail>().IgnoreAllNonExisting();
            Mapper.Map(transVm, transDb);

            db.AccTransactions.Add(transDb);

            try
            {
                db.SaveChanges();
                transId = transDb.TransId;
            }
            catch
            {
                throw;
            }
            return(transId);
        }
Exemple #8
0
        /// <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");
        }
Exemple #9
0
        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");
        }