示例#1
0
        /// <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");
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }
示例#7
0
        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);
        }
示例#8
0
        public static string AddCCCashDepositToChart(int operationId)
        {
            string             parentAccountId = "", accountId;
            OperationsEntities db = new OperationsEntities();
            var    operationObj = db.Operations.Where(x => x.OperationId == operationId).FirstOrDefault();
            string operationCode = operationObj.OperationCode;
            string accNameEn = "CC Cash Deposit For Operation " + operationCode;
            string accNameAr = "عهدة تخليص جمركى للعملية " + operationCode;

            parentAccountId = ((int)AccountingChartEnum.CashDepositTemp).ToString();

            //Add new accountId to the chart
            accountId = AccountingChartHelper
                        .AddAccountToChart(accNameEn, accNameAr, parentAccountId);
            operationObj.CCCashDepAccountId = accountId;
            db.SaveChanges();

            return(accountId);
        }
示例#9
0
        /// <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);
        }
示例#10
0
        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);
        }
示例#11
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");
        }