public ActionResult AddPurchaseOrder() { var model = new Models.ViewModels.Purchases.AddPurchaseOrder(); var items = _inventoryService.GetAllItems(); var accounts = _financialService.GetAccounts(); var measurements = _inventoryService.GetMeasurements(); //var taxes = _financialService.GetTaxes(); var itemCategories = _inventoryService.GetItemCategories(); var vendors = _purchasingService.GetVendors(); model.Items = Models.ModelViewHelper.Items(); model.Vendors = Models.ModelViewHelper.Vendors(); model.UnitOfMeasurements = Models.ModelViewHelper.Measurements(); return(View(model)); }
// GET: Inventory/Edit/5 public ActionResult EditItem(int id) { var item = _inventoryService.GetItemById(id); var accounts = _financialService.GetAccounts(); var measurements = _inventoryService.GetMeasurements(); //var taxes = _financialService.GetTaxes(); var itemCategories = _inventoryService.GetItemCategories(); var vendors = _purchasingService.GetVendors(); //var itemTaxGroups = _financialService.GetItemTaxGroups(); var model = new Models.ViewModels.Items.EditItem(); model.PrepareEditItemViewModel(item); model.Accounts = ModelViewHelper.Accounts(); model.UnitOfMeasurements = ModelViewHelper.Measurements(); model.Taxes = ModelViewHelper.Taxes(); model.ItemTaxGroups = ModelViewHelper.ItemTaxGroups(); model.Vendors = ModelViewHelper.Vendors(); model.ItemCategories = ModelViewHelper.ItemCategories(); model.ItemTaxGroupId = model.ItemTaxGroupId == null ? -1 : model.ItemTaxGroupId; model.InventoryAccountId = model.InventoryAccountId == null ? -1 : model.InventoryAccountId; model.SellAccountId = model.SellAccountId == null ? -1 : model.SellAccountId; model.InventoryAdjustmentAccountId = model.InventoryAdjustmentAccountId == null ? -1 : model.InventoryAdjustmentAccountId; model.PurchaseMeasurementId = model.PurchaseMeasurementId == null ? -1 : model.PurchaseMeasurementId; model.CostOfGoodsSoldAccountId = model.CostOfGoodsSoldAccountId == null ? -1 : model.CostOfGoodsSoldAccountId; return(View(model)); }
/// <summary> /// [Deprecated] Change to Accounts() /// </summary> /// <param name="accounts"></param> /// <returns></returns> public static ICollection <SelectListItem> Accounts(IEnumerable <Account> accounts) { var selections = new HashSet <SelectListItem>(); selections.Add(new SelectListItem() { Text = string.Empty, Value = "-1", Selected = true }); foreach (var account in _financialService.GetAccounts()) { selections.Add(new SelectListItem() { Text = account.AccountName, Value = account.Id.ToString() }); } return(selections); }
public IActionResult Accounts() { var accounts = _financialService.GetAccounts().ToList(); var accountTree = BuildAccountGrouping(accounts, null); return(new ObjectResult(accountTree)); }
public ActionResult Accounts() { var accounts = _financialService.GetAccounts(); var model = new Models.ViewModels.Financials.Accounts(); foreach (var account in accounts) { model.AccountsListLines.Add(new Models.ViewModels.Financials.AccountsListLine() { Id = account.Id, AccountCode = account.AccountCode, AccountName = account.AccountName, Balance = account.Balance }); } return(View(model)); }
public ActionResult AddOrEditCustomer(int id = 0) { Models.ViewModels.Sales.EditCustomer model = new Models.ViewModels.Sales.EditCustomer(); var accounts = _financialService.GetAccounts(); if (id != 0) { var customer = _salesService.GetCustomerById(id); model.Id = customer.Id; model.Name = customer.Name; model.PrimaryContactId = customer.PrimaryContactId.HasValue ? customer.PrimaryContactId.Value : -1; model.AccountsReceivableAccountId = customer.AccountsReceivableAccountId.HasValue ? customer.AccountsReceivableAccountId : -1; model.SalesAccountId = customer.SalesAccountId.HasValue ? customer.SalesAccountId : -1; model.SalesDiscountAccountId = customer.SalesDiscountAccountId.HasValue ? customer.SalesDiscountAccountId : -1; model.PromptPaymentDiscountAccountId = customer.PromptPaymentDiscountAccountId.HasValue ? customer.PromptPaymentDiscountAccountId : -1; } return(View(model)); }
public IHttpActionResult Accounts() { var accounts = _financialService.GetAccounts(); ICollection <AccountDto> accountsDto = new HashSet <AccountDto>(); foreach (var account in accounts) { accountsDto.Add(new AccountDto() { Id = account.Id, AccountName = account.AccountName }); } return(Ok(accountsDto.AsEnumerable())); }
public IActionResult PostingAccounts() { var accounts = _financialService.GetAccounts() .Where(a => a.ChildAccounts.Count == 0); ICollection <Account> accountsDto = new HashSet <Account>(); foreach (var account in accounts) { accountsDto.Add(new Account() { Id = account.Id, AccountName = account.AccountName }); } return(Ok(accountsDto)); }
public IActionResult Account([FromBody] SearchRequest request) { SearchModel model = new SearchModel { Start = request.Start }; var pagesize = request.Length == 0 ? 10 : request.Length; var searchText = request.Search?.Value; var records = _service.GetAccounts(); //Total Records model.RecordsTotal = records.Count(); //Filter records if (string.IsNullOrEmpty(searchText) == false) { records = records .Where(t => t.AccountCode.Contains(searchText) || t.AccountName.Contains(searchText) || t.AccountClass.Name.Contains(searchText) ); } //filtered records count model.RecordsFiltered = records.Count(); if (request.Order != null) { var columnIndex = request.Order[0].Column; var sortDirection = request.Order[0].Dir; var columnName = request.Columns[columnIndex].Data; records = OrderBy(records, columnName, sortDirection == "desc"); } model.Data = records .Skip(model.Start) .Take(pagesize) .Select(t => t.ToRowModel()).ToList(); return(Json(model)); }
public IActionResult GetAccounts() { var accounts = _financialService.GetAccounts().Select(c => c.ToModel()); return(Ok(accounts)); }
public ActionResult Accounts(string sortOn, string orderBy, string pSortOn, string keyword, int?page) { int recordsPerPage = 3; if (!page.HasValue) { page = 1; // set initial page value if (string.IsNullOrWhiteSpace(orderBy) || orderBy.Equals("asc")) { orderBy = "desc"; } else { orderBy = "asc"; } } if (!string.IsNullOrWhiteSpace(sortOn) && !sortOn.Equals(pSortOn, StringComparison.CurrentCultureIgnoreCase)) { orderBy = "asc"; } ViewBag.OrderBy = orderBy; ViewBag.SortOn = sortOn; ViewBag.Keyword = keyword; var accounts = _financialService.GetAccounts(); //var list = db.PersonalDetails.AsQueryable(); switch (sortOn) { case "Category": if (orderBy.Equals("desc")) { accounts = accounts.OrderByDescending(p => p.AccountName); //list = list.OrderByDescending(p => p.FirstName); } else { accounts = accounts.OrderBy(p => p.AccountName); //list = list.OrderBy(p => p.FirstName); } break; case "AccountName": if (orderBy.Equals("desc")) { accounts = accounts.OrderByDescending(p => p.AccountClass.Name); //list = list.OrderByDescending(p => p.LastName); } else { accounts = accounts.OrderBy(p => p.AccountClass.Name); //list = list.OrderBy(p => p.LastName); } break; case "AccountCode": if (orderBy.Equals("desc")) { accounts = accounts.OrderByDescending(p => p.AccountCode); //list = list.OrderByDescending(p => p.Age); } else { accounts = accounts.OrderBy(p => p.AccountCode); // list = list.OrderBy(p => p.Age); } break; default: //list = list.OrderBy(p => p.AutoId); accounts = accounts.OrderBy(p => p.Id); break; } if (!string.IsNullOrWhiteSpace(keyword)) { accounts = accounts.Where(f => f.AccountClass.Name.StartsWith(keyword)); //list = list.Where(f => f.FirstName.StartsWith(keyword)); } var finalAccounts = accounts.ToPagedList(page.Value, recordsPerPage); //var finalList = list.ToPagedList(page.Value, recordsPerPage); //return View(finalList); return(View(finalAccounts)); }
private void InitializeChartOfAccountsAndAccountClasses() { IList <Core.Domain.Financials.AccountClass> accountClasses = new List <Core.Domain.Financials.AccountClass>(); // If no accounts found just return. if (_financialService.GetAccounts().Any()) { return; } string[,] values; var assembly = Assembly.GetEntryAssembly(); var resourceStream = assembly.GetManifestResourceStream("Api.Data.coa.csv"); using (var reader = new StreamReader(resourceStream, Encoding.UTF8)) { var coa = reader.ReadToEndAsync().GetAwaiter().GetResult(); values = LoadCsv(coa); } List <Core.Domain.Financials.Account> accounts = new List <Core.Domain.Financials.Account>(); for (var i = 1; i < (values.Length / 8); i++) { Core.Domain.Financials.Account account = new Core.Domain.Financials.Account { AccountCode = values[i, 0], AccountName = values[i, 1], AccountClassId = int.Parse(values[i, 3]), IsCash = bool.Parse(values[i, 5]), IsContraAccount = bool.Parse(values[i, 4]) }; switch (values[i, 7]) { case "DR": account.DrOrCrSide = Core.Domain.DrOrCrSide.Dr; break; case "CR": account.DrOrCrSide = Core.Domain.DrOrCrSide.Cr; break; default: account.DrOrCrSide = Core.Domain.DrOrCrSide.NA; break; } account.CompanyId = 1; accounts.Add(account); } for (var i = 1; i < (values.Length / 8); i++) { string accountCode = values[i, 0]; string parentAccountCode = values[i, 2]; var account = accounts.FirstOrDefault(a => a.AccountCode == accountCode); var parentAccount = accounts.FirstOrDefault(a => a.AccountCode == parentAccountCode); if (parentAccount != null) { account.ParentAccount = parentAccount; } } var assetClass = new Core.Domain.Financials.AccountClass { Name = "Assets", NormalBalance = "Dr" }; var liabilitiesClass = new Core.Domain.Financials.AccountClass { Name = "Liabilities", NormalBalance = "Cr" }; var equityClass = new Core.Domain.Financials.AccountClass { Name = "Equity", NormalBalance = "Cr" }; var revenueClass = new Core.Domain.Financials.AccountClass { Name = "Revenue", NormalBalance = "Cr" }; var expenseClass = new Core.Domain.Financials.AccountClass { Name = "Expense", NormalBalance = "Dr" }; var temporaryClass = new Core.Domain.Financials.AccountClass { Name = "Temporary", NormalBalance = "NA" }; accountClasses.Add(assetClass); accountClasses.Add(liabilitiesClass); accountClasses.Add(equityClass); accountClasses.Add(revenueClass); accountClasses.Add(expenseClass); accountClasses.Add(temporaryClass); foreach (var account in accounts) { switch (account.AccountClassId) { case 1: assetClass.Accounts.Add(account); break; case 2: liabilitiesClass.Accounts.Add(account); break; case 3: equityClass.Accounts.Add(account); break; case 4: revenueClass.Accounts.Add(account); break; case 5: expenseClass.Accounts.Add(account); break; case 6: temporaryClass.Accounts.Add(account); break; } } _financialService.SaveAccountClasses(accountClasses); }
private void InitializeChartOfAccountsAndAccountClasses() { IList <Core.Domain.Financials.AccountClass> accountClasses = new List <Core.Domain.Financials.AccountClass>(); // If no accounts found just return. if (_financialService.GetAccounts().Any()) { return; } string[,] values = LoadCsv(Resource.ResourceManager.GetString("coa").Split(';')[0]); List <Core.Domain.Financials.Account> accounts = new List <Core.Domain.Financials.Account>(); for (var i = 1; i < (values.Length / 8); i++) { Core.Domain.Financials.Account account = new Core.Domain.Financials.Account { AccountCode = values[i, 0], AccountName = values[i, 1], AccountClassId = int.Parse(values[i, 3]), IsCash = bool.Parse(values[i, 5]), IsContraAccount = bool.Parse(values[i, 4]) }; switch (values[i, 7]) { case "DR": account.DrOrCrSide = Core.Domain.DrOrCrSide.Dr; break; case "CR": account.DrOrCrSide = Core.Domain.DrOrCrSide.Cr; break; default: account.DrOrCrSide = Core.Domain.DrOrCrSide.NA; break; } account.CompanyId = 1; accounts.Add(account); } for (var i = 1; i < (values.Length / 8); i++) { string accountCode = values[i, 0]; string parentAccountCode = values[i, 2]; var account = accounts.FirstOrDefault(a => a.AccountCode == accountCode); var parentAccount = accounts.FirstOrDefault(a => a.AccountCode == parentAccountCode); if (parentAccount != null) { account.ParentAccount = parentAccount; } } var assetClass = new Core.Domain.Financials.AccountClass { Name = "Assets", NormalBalance = "Dr" }; var liabilitiesClass = new Core.Domain.Financials.AccountClass { Name = "Liabilities", NormalBalance = "Cr" }; var equityClass = new Core.Domain.Financials.AccountClass { Name = "Equity", NormalBalance = "Cr" }; var revenueClass = new Core.Domain.Financials.AccountClass { Name = "Revenue", NormalBalance = "Cr" }; var expenseClass = new Core.Domain.Financials.AccountClass { Name = "Expense", NormalBalance = "Dr" }; var temporaryClass = new Core.Domain.Financials.AccountClass { Name = "Temporary", NormalBalance = "NA" }; accountClasses.Add(assetClass); accountClasses.Add(liabilitiesClass); accountClasses.Add(equityClass); accountClasses.Add(revenueClass); accountClasses.Add(expenseClass); accountClasses.Add(temporaryClass); foreach (var account in accounts) { switch (account.AccountClassId) { case 1: assetClass.Accounts.Add(account); break; case 2: liabilitiesClass.Accounts.Add(account); break; case 3: equityClass.Accounts.Add(account); break; case 4: revenueClass.Accounts.Add(account); break; case 5: expenseClass.Accounts.Add(account); break; case 6: temporaryClass.Accounts.Add(account); break; } } _financialService.SaveAccountClasses(accountClasses); }
private void InitializedData() { /* * 1.Company * 2.Chart of accounts/account classes * 3.Financial year * 4.Payment terms * 5.GL setting * 6.Tax * 7.Vendor * 8.Customer * 9.Items * 10.Banks * 11.Security Roles */ try { // 1.Company Core.Domain.Company company = null; if (_adminService.GetDefaultCompany() == null) { company = new Core.Domain.Company() { Name = "Financial Solutions Inc.", CompanyCode = "100", ShortName = "FSI", }; _adminService.SaveCompany(company); } //2.Chart of accounts/account classes IList <Core.Domain.Financials.AccountClass> accountClasses = new List <Core.Domain.Financials.AccountClass>(); if (_financialService.GetAccounts().Count() < 1) { string[,] values = LoadCsv(Resource.ResourceManager.GetString("coa").Split(';')[0]); List <Core.Domain.Financials.Account> accounts = new List <Core.Domain.Financials.Account>(); for (int i = 1; i < (values.Length / 8); i++) { Core.Domain.Financials.Account account = new Core.Domain.Financials.Account(); account.AccountCode = values[i, 0].ToString(); account.AccountName = values[i, 1].ToString(); account.AccountClassId = int.Parse(values[i, 3].ToString()); account.IsCash = bool.Parse(values[i, 5].ToString()); account.IsContraAccount = bool.Parse(values[i, 4].ToString()); if (values[i, 7].ToString() == "DR") { account.DrOrCrSide = Core.Domain.DrOrCrSide.Dr; } else if (values[i, 7].ToString() == "CR") { account.DrOrCrSide = Core.Domain.DrOrCrSide.Cr; } else { account.DrOrCrSide = Core.Domain.DrOrCrSide.NA; } account.CompanyId = 1; accounts.Add(account); } for (int i = 1; i < (values.Length / 8); i++) { string accountCode = values[i, 0].ToString(); string parentAccountCode = values[i, 2].ToString(); var account = accounts.Where(a => a.AccountCode == accountCode).FirstOrDefault(); var parentAccount = accounts.Where(a => a.AccountCode == parentAccountCode).FirstOrDefault(); if (parentAccount != null) { account.ParentAccount = parentAccount; } } var assetClass = new Core.Domain.Financials.AccountClass() { Name = "Assets", NormalBalance = "Dr" }; var liabilitiesClass = new Core.Domain.Financials.AccountClass() { Name = "Liabilities", NormalBalance = "Cr" }; var equityClass = new Core.Domain.Financials.AccountClass() { Name = "Equity", NormalBalance = "Cr" }; var revenueClass = new Core.Domain.Financials.AccountClass() { Name = "Revenue", NormalBalance = "Cr" }; var expenseClass = new Core.Domain.Financials.AccountClass() { Name = "Expense", NormalBalance = "Dr" }; var temporaryClass = new Core.Domain.Financials.AccountClass() { Name = "Temporary", NormalBalance = "NA" }; accountClasses.Add(assetClass); accountClasses.Add(liabilitiesClass); accountClasses.Add(equityClass); accountClasses.Add(revenueClass); accountClasses.Add(expenseClass); accountClasses.Add(temporaryClass); foreach (var account in accounts) { switch (account.AccountClassId) { case 1: assetClass.Accounts.Add(account); break; case 2: liabilitiesClass.Accounts.Add(account); break; case 3: equityClass.Accounts.Add(account); break; case 4: revenueClass.Accounts.Add(account); break; case 5: expenseClass.Accounts.Add(account); break; case 6: temporaryClass.Accounts.Add(account); break; } } _financialService.SaveAccountClasses(accountClasses); } //3.Financial year Core.Domain.Financials.FinancialYear financialYear = null; if (_adminService.GetFinancialYears().Count < 1) { financialYear = new Core.Domain.Financials.FinancialYear() { FiscalYearCode = "FY1516", FiscalYearName = "FY 2016/2017", StartDate = new DateTime(2016, 01, 01), EndDate = new DateTime(2016, 12, 31), IsActive = true }; _financialService.SaveFinancialYear(financialYear); } //4.Payment terms IList <Core.Domain.PaymentTerm> paymentTerms = new List <Core.Domain.PaymentTerm>(); if (_adminService.GetPaymentTerms().Count < 1) { paymentTerms.Add(new Core.Domain.PaymentTerm() { Description = "Payment due within 10 days", PaymentType = Core.Domain.PaymentTypes.AfterNoOfDays, DueAfterDays = 10, IsActive = true, }); paymentTerms.Add(new Core.Domain.PaymentTerm() { Description = "Due 15th Of the Following Month ", PaymentType = Core.Domain.PaymentTypes.DayInTheFollowingMonth, DueAfterDays = 15, IsActive = true, }); paymentTerms.Add(new Core.Domain.PaymentTerm() { Description = "Cash Only", PaymentType = Core.Domain.PaymentTypes.Cash, IsActive = true, }); foreach (var p in paymentTerms) { _financialService.SavePaymentTerm(p); } } //5.GL setting Core.Domain.Financials.GeneralLedgerSetting glSetting = null; if (_financialService.GetGeneralLedgerSetting() == null) { glSetting = new Core.Domain.Financials.GeneralLedgerSetting() { Company = company, GoodsReceiptNoteClearingAccount = _financialService.GetAccountByAccountCode("10810"), ShippingChargeAccount = _financialService.GetAccountByAccountCode("40500"), SalesDiscountAccount = _financialService.GetAccountByAccountCode("40400"), }; } _financialService.SaveGeneralLedgerSetting(glSetting); //6.Tax IList <Core.Domain.TaxSystem.Tax> taxes = new List <Core.Domain.TaxSystem.Tax>(); if (_financialService.GetTaxes().Count() < 1) { var salesTaxAccount = _financialService.GetAccountByAccountCode("20300"); var purchaseTaxAccount = _financialService.GetAccountByAccountCode("50700"); var vat5 = new Core.Domain.TaxSystem.Tax() { TaxCode = "VAT5%", TaxName = "VAT 5%", Rate = 5, IsActive = true, SalesAccountId = salesTaxAccount.Id, PurchasingAccountId = purchaseTaxAccount.Id, }; var vat10 = new Core.Domain.TaxSystem.Tax() { TaxCode = "VAT10%", TaxName = "VAT 10%", Rate = 10, IsActive = true, SalesAccountId = salesTaxAccount.Id, PurchasingAccountId = purchaseTaxAccount.Id, }; var evat12 = new Core.Domain.TaxSystem.Tax() { TaxCode = "VAT12%", TaxName = "VAT 12%", Rate = 12, IsActive = true, SalesAccountId = salesTaxAccount.Id, PurchasingAccountId = purchaseTaxAccount.Id, }; var exportTax1 = new Core.Domain.TaxSystem.Tax() { TaxCode = "exportTax1%", TaxName = "Export Tax 1%", Rate = 1, IsActive = true, SalesAccountId = salesTaxAccount.Id, PurchasingAccountId = purchaseTaxAccount.Id, }; var taxGroupVAT = new Core.Domain.TaxSystem.TaxGroup() { Description = "VAT", TaxAppliedToShipping = false, IsActive = true, }; var taxGroupExport = new Core.Domain.TaxSystem.TaxGroup() { Description = "Export", TaxAppliedToShipping = false, IsActive = true, }; IList <Core.Domain.TaxSystem.TaxGroup> taxGroups = new List <Core.Domain.TaxSystem.TaxGroup>(); taxGroups.Add(taxGroupVAT); taxGroups.Add(taxGroupExport); var itemTaxGroupRegular = new Core.Domain.TaxSystem.ItemTaxGroup() { Name = "Regular", IsFullyExempt = false, }; var itemTaxGroupRegularPreferenced = new Core.Domain.TaxSystem.ItemTaxGroup() { Name = "Preferenced", IsFullyExempt = false, }; IList <Core.Domain.TaxSystem.ItemTaxGroup> itemtaxGroups = new List <Core.Domain.TaxSystem.ItemTaxGroup>(); itemtaxGroups.Add(itemTaxGroupRegular); itemtaxGroups.Add(itemTaxGroupRegularPreferenced); vat5.TaxGroupTaxes.Add(new Core.Domain.TaxSystem.TaxGroupTax() { TaxGroup = taxGroupVAT, }); evat12.TaxGroupTaxes.Add(new Core.Domain.TaxSystem.TaxGroupTax() { TaxGroup = taxGroupVAT, }); exportTax1.TaxGroupTaxes.Add(new Core.Domain.TaxSystem.TaxGroupTax() { TaxGroup = taxGroupExport, }); vat5.ItemTaxGroupTaxes.Add(new Core.Domain.TaxSystem.ItemTaxGroupTax() { ItemTaxGroup = itemTaxGroupRegularPreferenced, IsExempt = false, }); evat12.ItemTaxGroupTaxes.Add(new Core.Domain.TaxSystem.ItemTaxGroupTax() { ItemTaxGroup = itemTaxGroupRegular, IsExempt = false, }); taxes.Add(vat5); taxes.Add(vat10); taxes.Add(evat12); taxes.Add(exportTax1); foreach (var tax in taxes) { _adminService.AddNewTax(tax); } } Core.Domain.Purchases.Vendor vendor = new Core.Domain.Purchases.Vendor(); if (_purchasingService.GetVendors().Count() < 1) { Core.Domain.Party vendorParty = new Core.Domain.Party(); vendorParty.Name = "ABC Sample Supplier"; vendorParty.PartyType = Core.Domain.PartyTypes.Vendor; vendorParty.IsActive = true; vendor.AccountsPayableAccountId = _financialService.GetAccountByAccountCode("20110").Id; vendor.PurchaseAccountId = _financialService.GetAccountByAccountCode("50200").Id; vendor.PurchaseDiscountAccountId = _financialService.GetAccountByAccountCode("50400").Id; vendor.Party = vendorParty; Core.Domain.Contact primaryContact = new Core.Domain.Contact(); primaryContact.ContactType = Core.Domain.ContactTypes.Vendor; primaryContact.FirstName = "Mary"; primaryContact.LastName = "Walter"; primaryContact.Party = new Core.Domain.Party(); primaryContact.Party.Name = "Mary Walter"; primaryContact.Party.PartyType = Core.Domain.PartyTypes.Contact; vendor.PrimaryContact = primaryContact; _purchasingService.AddVendor(vendor); } //8.Customer Core.Domain.Sales.Customer customer = new Core.Domain.Sales.Customer(); if (_salesService.GetCustomers().Count() < 1) { var accountAR = _financialService.GetAccountByAccountCode("10120"); var accountSales = _financialService.GetAccountByAccountCode("40100"); var accountAdvances = _financialService.GetAccountByAccountCode("20120"); var accountSalesDiscount = _financialService.GetAccountByAccountCode("40400"); Core.Domain.Party customerParty = new Core.Domain.Party(); customerParty.Name = "ABC Customer"; customerParty.PartyType = Core.Domain.PartyTypes.Customer; customerParty.IsActive = true; customer.AccountsReceivableAccountId = accountAR != null ? (int?)accountAR.Id : null; customer.SalesAccountId = accountSales != null ? (int?)accountSales.Id : null; customer.CustomerAdvancesAccountId = accountAdvances != null ? (int?)accountAdvances.Id : null; customer.SalesDiscountAccountId = accountSalesDiscount != null ? (int?)accountSalesDiscount.Id : null; customer.TaxGroupId = _financialService.GetTaxGroups().Where(tg => tg.Description == "VAT").FirstOrDefault().Id; customer.Party = customerParty; Core.Domain.Contact primaryContact = new Core.Domain.Contact(); primaryContact.ContactType = Core.Domain.ContactTypes.Customer; primaryContact.FirstName = "John"; primaryContact.LastName = "Doe"; primaryContact.Party = new Core.Domain.Party(); primaryContact.Party.Name = "John Doe"; primaryContact.Party.PartyType = Core.Domain.PartyTypes.Contact; customer.PrimaryContact = primaryContact; _salesService.AddCustomer(customer); } // 9.Items IList <Core.Domain.Items.Measurement> measurements = new List <Core.Domain.Items.Measurement>(); IList <Core.Domain.Items.ItemCategory> categories = new List <Core.Domain.Items.ItemCategory>(); if (_inventoryService.GetAllItems().Count() < 1) { measurements.Add(new Core.Domain.Items.Measurement() { Code = "EA", Description = "Each" }); measurements.Add(new Core.Domain.Items.Measurement() { Code = "PK", Description = "Pack" }); measurements.Add(new Core.Domain.Items.Measurement() { Code = "MO", Description = "Monthly" }); measurements.Add(new Core.Domain.Items.Measurement() { Code = "HR", Description = "Hour" }); foreach (var m in measurements) { _inventoryService.SaveMeasurement(m); } // Accounts = Sales A/C (40100), Inventory (10800), COGS (50300), Inv Adjustment (50500), Item Assm Cost (10900) var sales = _financialService.GetAccountByAccountCode("40100"); var inventory = _financialService.GetAccountByAccountCode("10800"); var invAdjusment = _financialService.GetAccountByAccountCode("50500"); var cogs = _financialService.GetAccountByAccountCode("50300"); var assemblyCost = _financialService.GetAccountByAccountCode("10900"); var chargesCategory = new Core.Domain.Items.ItemCategory() { Name = "Charges", Measurement = _inventoryService.GetMeasurements().Where(m => m.Code == "EA").FirstOrDefault(), ItemType = Core.Domain.ItemTypes.Charge, SalesAccount = sales, InventoryAccount = inventory, AdjustmentAccount = invAdjusment, CostOfGoodsSoldAccount = cogs, AssemblyAccount = assemblyCost, }; chargesCategory.Items.Add(new Core.Domain.Items.Item() { Description = "HOA Dues", SellDescription = "HOA Dues", PurchaseDescription = "HOA Dues", Price = 350, SmallestMeasurement = _inventoryService.GetMeasurements().Where(m => m.Code == "MO").FirstOrDefault(), SellMeasurement = _inventoryService.GetMeasurements().Where(m => m.Code == "MO").FirstOrDefault(), SalesAccount = _financialService.GetAccountByAccountCode("40200"), No = "0001", Code = "1111" }); categories.Add(chargesCategory); var componentCategory = new Core.Domain.Items.ItemCategory() { Name = "Components", Measurement = _inventoryService.GetMeasurements().Where(m => m.Code == "EA").FirstOrDefault(), ItemType = Core.Domain.ItemTypes.Purchased, SalesAccount = sales, InventoryAccount = inventory, AdjustmentAccount = invAdjusment, CostOfGoodsSoldAccount = cogs, AssemblyAccount = assemblyCost, }; var carStickerItem = new Core.Domain.Items.Item() { Description = "Car Sticker", SellDescription = "Car Sticker", PurchaseDescription = "Car Sticker", Price = 100, Cost = 40, SmallestMeasurement = _inventoryService.GetMeasurements().Where(m => m.Code == "EA").FirstOrDefault(), SellMeasurement = _inventoryService.GetMeasurements().Where(m => m.Code == "EA").FirstOrDefault(), PurchaseMeasurement = _inventoryService.GetMeasurements().Where(m => m.Code == "EA").FirstOrDefault(), SalesAccount = sales, InventoryAccount = inventory, CostOfGoodsSoldAccount = cogs, InventoryAdjustmentAccount = invAdjusment, ItemTaxGroup = _financialService.GetItemTaxGroups().Where(m => m.Name == "Regular").FirstOrDefault(), No = "0002", Code = "2222" }; var otherItem = new Core.Domain.Items.Item() { Description = "Optical Mouse", SellDescription = "Optical Mouse", PurchaseDescription = "Optical Mouse", Price = 80, Cost = 30, SmallestMeasurement = _inventoryService.GetMeasurements().Where(m => m.Code == "EA").FirstOrDefault(), SellMeasurement = _inventoryService.GetMeasurements().Where(m => m.Code == "EA").FirstOrDefault(), PurchaseMeasurement = _inventoryService.GetMeasurements().Where(m => m.Code == "EA").FirstOrDefault(), SalesAccount = sales, InventoryAccount = inventory, CostOfGoodsSoldAccount = cogs, InventoryAdjustmentAccount = invAdjusment, ItemTaxGroup = _financialService.GetItemTaxGroups().Where(m => m.Name == "Regular").FirstOrDefault(), No = "0003", Code = "3333" }; componentCategory.Items.Add(carStickerItem); componentCategory.Items.Add(otherItem); categories.Add(componentCategory); categories.Add(new Core.Domain.Items.ItemCategory() { Name = "Services", Measurement = _inventoryService.GetMeasurements().Where(m => m.Code == "HR").FirstOrDefault(), ItemType = Core.Domain.ItemTypes.Service, SalesAccount = sales, InventoryAccount = inventory, AdjustmentAccount = invAdjusment, CostOfGoodsSoldAccount = cogs, AssemblyAccount = assemblyCost, }); categories.Add(new Core.Domain.Items.ItemCategory() { Name = "Systems", Measurement = _inventoryService.GetMeasurements().Where(m => m.Code == "EA").FirstOrDefault(), ItemType = Core.Domain.ItemTypes.Manufactured, SalesAccount = sales, InventoryAccount = inventory, AdjustmentAccount = invAdjusment, CostOfGoodsSoldAccount = cogs, AssemblyAccount = assemblyCost, }); foreach (var c in categories) { _inventoryService.SaveItemCategory(c); } } //10.Banks IList <Core.Domain.Financials.Bank> banks = new List <Core.Domain.Financials.Bank>(); if (_financialService.GetCashAndBanks().Count() < 1) { var bank = new Core.Domain.Financials.Bank() { AccountId = _financialService.GetAccountByAccountCode("10111").Id, Name = "General Fund", Type = Core.Domain.BankTypes.CheckingAccount, BankName = "GFB", Number = "1234567890", Address = "123 Main St.", IsDefault = true, IsActive = true, }; banks.Add(bank); bank = new Core.Domain.Financials.Bank() { AccountId = _financialService.GetAccountByAccountCode("10113").Id, Name = "Petty Cash Account", Type = Core.Domain.BankTypes.CashAccount, IsDefault = false, IsActive = true, }; banks.Add(bank); foreach (var b in banks) { _financialService.SaveBank(b); } } //11.Security Roles if (_securityService.GetAllSecurityRole().Count() < 1) { _securityService.AddRole("SystemAdministrators"); _securityService.AddRole("GeneralUsers"); } } catch (Exception ex) { throw ex; } System.Diagnostics.Debug.Write("Completed"); }