public TblLedgerHeader UpdateOrInsertTblLedgerHeaders(TblLedgerHeader newRow, bool save, int index, out int outindex, int user, string company, bool validate = false) { outindex = index; using (var entity = new ccnewEntities(GetSqlConnectionString(company))) { return(UpdateOrInsertTblLedgerHeaders(entity, newRow, save, index, out outindex, user, validate)); } }
private void ValidateJournalSetting(ccnewEntities entity, TblLedgerHeader newRow, int user) { var SettingExist = entity.TblAuthUserJournalSettings.Any(w => w.TblAuthUser == user); if (SettingExist) { var journal = newRow.TblJournal; var Settings = entity.TblJournalSettingEntities.Any(w => w.TblJournal == journal && w.TblJournalSetting1.TblAuthUserJournalSettings.Any(e => e.TblAuthUser == user)); if (!Settings) { throw new FaultException("You are not authorized to use this Journal"); } } }
private int DeleteTblLedgerHeader(TblLedgerHeader row, int index, string company) { using (var entity = new ccnewEntities(GetSqlConnectionString(company))) { var query = (from e in entity.TblLedgerHeaders where e.Iserial == row.Iserial select e).SingleOrDefault(); if (query != null) { entity.DeleteObject(query); } entity.SaveChanges(); } return(row.Iserial); }
private TblRecInvHeaderProd PostInv(TblRecInvHeaderProd row, int user, string company) { using (var scope = new TransactionScope()) { short?Lang = 0; using (var entity = new WorkFlowManagerDBEntities()) { var firstOrDefault = entity.TblAuthUsers.FirstOrDefault(x => x.Iserial == user); if (firstOrDefault != null) { Lang = firstOrDefault.CurrLang; } entity.CommandTimeout = 0; var query = entity.TblRecInvHeaderProds.FirstOrDefault(x => x.Iserial == row.Iserial); string desc = "Purchase TransNo " + row.SupplierInv; if (row.TblRecInvHeaderTypeProd == 2) { desc = "Return Purchase TransNo " + row.SupplierInv; } if (Lang == 0) { desc = "فاتورة المشتريات رقم " + row.SupplierInv; if (row.TblRecInvHeaderTypeProd == 2) { desc = " فاتورة مرتجع المشتريات رقم " + row.SupplierInv; } } var markuptrans = entity.TblMarkupTransProds.Include("TblMarkupProd1.TblMarkupGroupProd1") .Where(x => x.TblRecInv == row.Iserial && x.Type == 0); var cost = entity.TblRecInvMainDetailProds.Where(x => x.TblRecInvHeaderProd == row.Iserial).Sum(w => w.Cost * w.Qty); double totalWithItemEffect = 0; double totalWithoutItemEffect = 0; foreach (var variable in markuptrans) { if (variable.TblMarkupProd1.ItemEffect == false) { if (variable.MiscValueType == 0) { totalWithoutItemEffect = (double)(totalWithoutItemEffect + (cost * (variable.MiscValue / 100))); } else { totalWithoutItemEffect = (double)(totalWithoutItemEffect + variable.MiscValue); } } else { if (variable.MiscValueType == 0) { totalWithItemEffect = (double)(totalWithItemEffect + (cost * (variable.MiscValue / 100))); } else { totalWithItemEffect = (double)(totalWithItemEffect + variable.MiscValue); } } } if (query != null) { query.MiscWithoutItemEffect = totalWithoutItemEffect; query.Misc = totalWithItemEffect; if (totalWithItemEffect != 0) { var queryDetail = entity.TblRecInvMainDetailProds.Where(x => x.TblRecInvHeaderProd == row.Iserial).ToList(); foreach (var variable in queryDetail) { variable.Misc = (variable.Cost / cost) * totalWithItemEffect; } } entity.SaveChanges(); if (query != null) { query.Status = 1; query.TblUser = user; query.PostDate = DateTime.Now; using (var db = new ccnewEntities(GetSqlConnectionString(company))) { var journal = db.tblChainSetupTests.FirstOrDefault(x => x.sGlobalSettingCode == "GLPurchaseJournal").sSetupValue; var tablename = db.tblChainSetupTests.FirstOrDefault( x => x.sGlobalSettingCode == "GlItemGroupTableName").sSetupValue; int journalint = db.TblJournals.FirstOrDefault(x => x.Code == journal).Iserial; var newLedgerHeaderProdRow = new TblLedgerHeader { CreatedBy = user, CreationDate = DateTime.Now, Description = desc, DocDate = row.TransDate, TblJournal = journalint, TblTransactionType = 100, TblJournalLink = query.Iserial }; int temp; var glserive = new GlService(); glserive.UpdateOrInsertTblLedgerHeaders(newLedgerHeaderProdRow, true, 0, out temp, user, company); var sqlParam = new List <SqlParameter> { new SqlParameter { ParameterName = "Table_Name", Value = tablename, SqlDbType = SqlDbType.NVarChar }, new SqlParameter { ParameterName = "Iserial", Value = row.Iserial.ToString(CultureInfo.InvariantCulture), SqlDbType = SqlDbType.NVarChar }, }; var list = entity.ExecuteStoreQuery <GlGroupsDtp>("exec GlRecinvPostingToGl @Table_Name, @Iserial", sqlParam.ToArray()).ToList(); #region MarkUp foreach (var rr in markuptrans) { var currencyrow = db.TblCurrencyTests.First(w => w.Iserial == rr.TblCurrency); var glAccount = db.Entities.FirstOrDefault( x => x.Iserial == rr.TblMarkupProd && x.scope == 0 && x.TblJournalAccountType == 9).AccountIserial; var vendorAccountMarkUp = db.Entities.FirstOrDefault( x => x.Iserial == rr.EntityAccount && x.scope == 0 && x.TblJournalAccountType == rr.TblJournalAccountType); var drorCr = true; double?total = 0; if (rr.MiscValueType == 0) { total = (total + cost * (rr.MiscValue / 100)) * rr.TblMarkupProd1.TblMarkupGroupProd1.Direction; } else { total = (total + rr.MiscValue) * rr.TblMarkupProd1.TblMarkupGroupProd1.Direction; } if (total > 0) { drorCr = false; } var markupdes = rr.TblMarkupProd1.Ename + row.SupplierInv; if (Lang == 0) { markupdes = rr.TblMarkupProd1.Aname + row.SupplierInv; } decimal totalModified = (decimal)total; if (total < 0) { totalModified = (decimal)(total * -1); } var markupVendorDiscount = new TblLedgerMainDetail(); markupVendorDiscount = new TblLedgerMainDetail { Amount = totalModified, Description = markupdes, ExchangeRate = rr.ExchangeRate, TblCurrency = rr.TblCurrency, TransDate = row.TransDate, TblJournalAccountType = 0, EntityAccount = glAccount, GlAccount = glAccount, TblLedgerHeader = newLedgerHeaderProdRow.Iserial, PaymentRef = query.SupplierInv, DrOrCr = !drorCr }; if (row.TblRecInvHeaderTypeProd == 2) { markupVendorDiscount.DrOrCr = !markupVendorDiscount.DrOrCr; } glserive.UpdateOrInsertTblLedgerMainDetails(markupVendorDiscount, true, 000, out temp, company, user); if (glAccount != 0) { var markupVendor = new TblLedgerMainDetail { Amount = totalModified, Description = markupdes, ExchangeRate = rr.ExchangeRate, TblCurrency = rr.TblCurrency, TransDate = row.TransDate, TblJournalAccountType = rr.TblJournalAccountType, EntityAccount = vendorAccountMarkUp.Iserial, GlAccount = vendorAccountMarkUp.AccountIserial, TblLedgerHeader = newLedgerHeaderProdRow.Iserial, PaymentRef = query.SupplierInv, DrOrCr = drorCr }; if (row.TblRecInvHeaderTypeProd == 2) { markupVendor.DrOrCr = !markupVendor.DrOrCr; } glserive.UpdateOrInsertTblLedgerMainDetails(markupVendor, true, 000, out temp, company, user); foreach (var variable in list) { var costcenter = new TblGlRuleDetail(); costcenter = glserive.FindCostCenterByType(costcenter, 0, (int)variable.GroupName, company); var markupVendorLedgerCostCenter = new TblLedgerDetailCostCenter { Ratio = 0, TblLedgerMainDetail = markupVendor.Iserial, Amount = (double)(markupVendor.Amount * variable.CostPercentage), TblCostCenter = costcenter.TblCostCenter, TblCostCenterType = costcenter.TblCostCenter1.TblCostCenterType, }; glserive.UpdateOrInsertTblLedgerDetailCostCenters(markupVendorLedgerCostCenter, true, 000, out temp, user, company); } } } #endregion MarkUp foreach (var rr in list.GroupBy(x => x.GroupName)) { glserive.PostInvPurchaseAndTax(query, newLedgerHeaderProdRow, rr, company, user, list, desc); } glserive.CorrectLedgerHeaderRouding(newLedgerHeaderProdRow.Iserial, company, user); } entity.SaveChanges(); scope.Complete(); } return(query); } return(null); } } }
internal void GetDailySalesCommision( int store, DateTime from, DateTime to, int userIserial, string company) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); int transactionType = 10; int journalint = Convert.ToInt32( GetRetailChainSetupByCode("SalesCommissionJournalIserial", company).sSetupValue); // Code = 1 var commissionAccount = GetRetailChainSetupByCode("SalesCommissionAccount", company); var taxAccount = GetRetailChainSetupByCode("EarnTaxAccount", company); Entity salesCommissionEntity, taxEntity; List <TblLedgerHeader> oldLedgers; List <GetSalesDailyCommission_Result> query; using (var context = new ccnewEntities(SharedOperation.GetSqlConnectionString(company))) { context.CommandTimeout = 0; salesCommissionEntity = context.Entities.FirstOrDefault(e => e.scope == 0 && e.Code == commissionAccount.sSetupValue && e.TblJournalAccountType == 15); taxEntity = context.Entities.FirstOrDefault(e => e.scope == 0 && e.Code == taxAccount.sSetupValue && e.TblJournalAccountType == 0); try { query = context.GetSalesDailyCommission(store, from, to).ToList(); } catch (Exception ex) { throw new Exception(ex.Message); } //query = context.tblsalesdailycommisions.Where(r => // r.DocDate >= from && r.DocDate <= to); // var dquery = context.GetSalesDailyCommission(store, from, to).ToList().FirstOrDefault(x => x.tblstore == 173); } //var transactionOptions = new TransactionOptions //{ // IsolationLevel = IsolationLevel.ReadCommitted, // Timeout = TimeSpan.FromSeconds(1200) //assume 10 min is the timeout time //}; //using (var scope = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromSeconds(1200))) { using (var context = new ccnewEntities(SharedOperation.GetSqlConnectionString(company))) { context.CommandTimeout = 0; // Old Ledgers to be deleted oldLedgers = context.TblLedgerHeaders.Where( x => x.TblTransactionType == transactionType && x.DocDate.Value >= from && x.DocDate.Value <= to).ToList(); // Delete old ledgers foreach (var variable in oldLedgers) { context.TblLedgerHeaders.DeleteObject(variable); } context.SaveChanges(); } foreach (var item in query.GroupBy(r => new { r.docdate })) // Parallel.ForEach(query.GroupBy(r => new { r.docdate }), item => { using (var context = new ccnewEntities(SharedOperation.GetSqlConnectionString(company))) { context.CommandTimeout = 0; var description = string.Format("اثبات عمولات بيعية" + " {0}", item.Key.docdate.Value.ToString("dd/MM/yyyy")); int sequence = 25; var seq = context.TblSequences.FirstOrDefault(s => s.Iserial == sequence); var newLedgerHeaderRow = new TblLedgerHeader { CreatedBy = userIserial, CreationDate = DateTime.Now, Description = description, DocDate = item.Key.docdate, TblJournal = journalint, TblTransactionType = transactionType, TblJournalLink = 0//item.Iserial }; newLedgerHeaderRow.Code = SharedOperation.HandelSequence(seq, company, 0, 0, 0); int tmp; newLedgerHeaderRow = UpdateOrInsertTblLedgerHeaders(newLedgerHeaderRow, true, 0, out tmp, userIserial, company);//context, decimal taxTotal = 0; foreach (var innerItem in item) { var storeRec = context.TblStores .Include(nameof(TblStore.TblStoreCommission)) .FirstOrDefault(s => s.iserial == innerItem.tblstore); decimal taxPercent = storeRec.TblStoreCommission.ManagerComm * (innerItem.MaxCommision ?? 0) / 100 * storeRec.TblStoreCommission.ManagerTax + storeRec.TblStoreCommission.AssistantComm * (innerItem.MaxCommision ?? 0) / 100 * storeRec.TblStoreCommission.AssistantTax + storeRec.TblStoreCommission.SalesManComm * (innerItem.MaxCommision ?? 0) / 100 * storeRec.TblStoreCommission.SalesManTax; decimal commissionPercentTotal = storeRec.TblStoreCommission.ManagerComm * (innerItem.MaxCommision ?? 0) / 100 + storeRec.TblStoreCommission.AssistantComm * (innerItem.MaxCommision ?? 0) / 100 + storeRec.TblStoreCommission.SalesManComm * (innerItem.MaxCommision ?? 0) / 100; //decimal taxPercent = // storeRec.TblStoreCommission.ManagerComm / 100 * storeRec.TblStoreCommission.ManagerTax + // storeRec.TblStoreCommission.AssistantComm / 100 * storeRec.TblStoreCommission.AssistantTax + // storeRec.TblStoreCommission.SalesManComm / 100 * storeRec.TblStoreCommission.SalesManTax; //decimal commissionPercentTotal = // storeRec.TblStoreCommission.ManagerComm / 100 + // storeRec.TblStoreCommission.AssistantComm / 100 + // storeRec.TblStoreCommission.SalesManComm / 100; decimal commissionTotal = (innerItem.NetSalesAfterVAT ?? 0) * commissionPercentTotal; if (commissionTotal == 0) { continue; } // Commission Entity var commissionLedgerDetail = new TblLedgerMainDetail { Amount = commissionTotal, Description = description, ExchangeRate = 1, TblCurrency = 1, TransDate = innerItem.docdate, TblJournalAccountType = 15, EntityAccount = salesCommissionEntity.Iserial, //Entity Iserial GlAccount = salesCommissionEntity.AccountIserial, // Account Iserial TblLedgerHeader = newLedgerHeaderRow.Iserial, PaymentRef = "", //innerItem.Iserial.ToString(), DrOrCr = true // true debit or false for credit }; UpdateOrInsertTblLedgerMainDetails(commissionLedgerDetail, true, 0, out tmp, company, userIserial); //context, decimal itemTax = (innerItem.NetSalesAfterVAT ?? 0) * taxPercent; // Store Entity var storeEntity = context.Entities.FirstOrDefault(e => e.scope == 0 && e.Code == storeRec.code && e.TblJournalAccountType == 14); if (storeEntity == null) { throw new Exception("store with code " + storeRec.code + " is not linked to Payable "); } var storeLedgerDetail = new TblLedgerMainDetail { Amount = commissionTotal - itemTax, Description = description, ExchangeRate = 1, TblCurrency = 1, TransDate = innerItem.docdate, TblJournalAccountType = 14, EntityAccount = storeEntity.Iserial, //Entity Iserial GlAccount = storeEntity.AccountIserial, // Account Iserial TblLedgerHeader = newLedgerHeaderRow.Iserial, PaymentRef = "", //innerItem.Iserial.ToString(), DrOrCr = false // true debit or false for credit }; UpdateOrInsertTblLedgerMainDetails(storeLedgerDetail, true, 0, out tmp, company, userIserial); //context, // Cost Center var storeCostcenter = new TblGlRuleDetail(); storeCostcenter = FindCostCenterByType(storeCostcenter, 8, innerItem.tblstore ?? 0, company); //, context CreateTblLedgerDetailCostCenter(company, commissionLedgerDetail.Amount ?? 0, commissionLedgerDetail, storeCostcenter); //, context taxTotal += itemTax; } // Tax Entity var taxLedgerDetail = new TblLedgerMainDetail { Amount = taxTotal,//item.Sum(r => r.Commision) * 0.05M, Description = description, ExchangeRate = 1, TblCurrency = 1, TransDate = item.Key.docdate, TblJournalAccountType = 0, EntityAccount = taxEntity.Iserial, //Entity Iserial GlAccount = taxEntity.AccountIserial, // Account Iserial TblLedgerHeader = newLedgerHeaderRow.Iserial, PaymentRef = "0", //innerItem.Iserial.ToString(), DrOrCr = false // true debit or false for credit }; UpdateOrInsertTblLedgerMainDetails(taxLedgerDetail, true, 0, out tmp, company, userIserial); //context, } }//); } //scope.Complete(); stopwatch.Stop(); Console.Error.WriteLine("Sequential loop time in milliseconds: {0}", stopwatch.ElapsedMilliseconds); }
public TblLedgerHeader UpdateOrInsertTblLedgerHeaders(ccnewEntities entity, TblLedgerHeader newRow, bool save, int index, out int outindex, int user, bool validate = false) { outindex = index; if (validate) { ValidateJournalSetting(entity, newRow, user); } entity.CommandTimeout = 0; if (save) { try { var journal = entity.TblJournals.Include("TblSequence1").Include("TblSequence").FirstOrDefault(x => x.Iserial == newRow.TblJournal); int seq = 0; //newRow.Code = "00011216J"; newRow.Code = HandelSequence(newRow.Code, journal, "TblLedgerHeader", 0, newRow.DocDate.Value.Month, newRow.DocDate.Value.Year, entity, out seq); newRow.balanced = true; newRow.Sequence = seq; newRow.TblSequence = journal.HeaderSequence; newRow.CreatedBy = user; newRow.CreationDate = DateTime.Now; entity.TblLedgerHeaders.AddObject(newRow); } catch (Exception EX) { string MSG = EX.Message; } } else { var oldRow = (from e in entity.TblLedgerHeaders where e.Iserial == newRow.Iserial select e).SingleOrDefault(); if (oldRow != null) { if (newRow.DocDate.Value.Month != oldRow.DocDate.Value.Month && newRow.DocDate.Value.Year != oldRow.DocDate.Value.Year) { var journal = entity.TblJournals.Include("TblSequence1").Include("TblSequence").FirstOrDefault(x => x.Iserial == newRow.TblJournal); int seq = 0; newRow.Code = HandelSequence(newRow.Code, journal, "TblLedgerHeader", 0, newRow.DocDate.Value.Month, newRow.DocDate.Value.Year, entity, out seq); newRow.Sequence = seq; } newRow.CreatedBy = oldRow.CreatedBy; newRow.CreationDate = oldRow.CreationDate; GenericUpdate(oldRow, newRow, entity); } } try { entity.SaveChanges(); } catch (Exception ex) { if (ExceptionContainsErrorCode(ex, 2627)) { //entity.Detach(newRow); // UpdateOrInsertTblLedgerHeaders(newRow, save, index, out outindex, user, company); } else { throw ex; } } return(newRow); }
private void PostTblGlCashTransactionHeader(int iserial, int user, string company, string code) { using (var entity = new ccnewEntities(GetSqlConnectionString(company))) { entity.CommandTimeout = 0; var CashTransactionHeader = entity.TblGlCashTransactionHeaders.Include("TblGlCashTypeSetting1.TblJournal1").Include("TblGlCashTransactionDetails.TblGlCashTransactionDetailCostCenters") .FirstOrDefault(x => x.Iserial == iserial); var journalint = entity.TblJournals.FirstOrDefault( x => x.Iserial == CashTransactionHeader.TblGlCashTypeSetting1.TblJournal); try { var newLedgerHeaderRowss = new TblLedgerHeader { CreatedBy = CashTransactionHeader.CreatedBy, CreationDate = DateTime.Now, Description = CashTransactionHeader.Description, DocDate = CashTransactionHeader.DocDate, TblJournal = journalint.Iserial, TblTransactionType = 11, TblJournalLink = CashTransactionHeader.Iserial }; } catch (Exception ex) { string c = ex.Message; } var newLedgerHeaderRow = new TblLedgerHeader { CreatedBy = CashTransactionHeader.CreatedBy, CreationDate = DateTime.Now, Description = CashTransactionHeader.Description, DocDate = CashTransactionHeader.DocDate, TblJournal = journalint.Iserial, TblTransactionType = 11, TblJournalLink = CashTransactionHeader.Iserial }; var tempheader = 0; UpdateOrInsertTblLedgerHeaders(newLedgerHeaderRow, true, 000, out tempheader, (int)CashTransactionHeader.CreatedBy, company); var drorcr = false; if (CashTransactionHeader.TblGlCashTypeSetting1.Code == "3") { drorcr = true; } foreach (var row in CashTransactionHeader.TblGlCashTransactionDetails) { var accountDetail1 = entity.Entities.FirstOrDefault( x => x.TblJournalAccountType == row.TblJournalAccountType && x.Iserial == row.EntityAccount).AccountIserial; var newledgerDetailrowh1 = new TblLedgerMainDetail { Amount = (decimal?)row.Amount, Description = row.Description, ExchangeRate = CashTransactionHeader.ExchangeRate, TblCurrency = CashTransactionHeader.TblCurrency, TransDate = CashTransactionHeader.DocDate, TblJournalAccountType = row.TblJournalAccountType, EntityAccount = row.EntityAccount, GlAccount = accountDetail1, TblLedgerHeader = newLedgerHeaderRow.Iserial, DrOrCr = drorcr, PaymentRef = CashTransactionHeader.Code }; newledgerDetailrowh1.TblLedgerDetailCostCenters = new System.Data.Objects.DataClasses.EntityCollection <TblLedgerDetailCostCenter>(); foreach (var item in row.TblGlCashTransactionDetailCostCenters) { var newCostCenter = new TblLedgerDetailCostCenter() { Amount = item.Amount, Calculated = false, Ratio = 0, TblCostCenter = item.TblCostCenter, TblCostCenterType = item.TblCostCenterType, }; newledgerDetailrowh1.TblLedgerDetailCostCenters.Add(newCostCenter); } UpdateOrInsertTblLedgerMainDetails(newledgerDetailrowh1, true, 000, out tempheader, company, (int)CashTransactionHeader.CreatedBy); } var accountDetail = entity.Entities.FirstOrDefault( x => x.TblJournalAccountType == CashTransactionHeader.TblJournalAccountType && x.Iserial == CashTransactionHeader.EntityAccount).AccountIserial; var newledgerDetailrowhCash = new TblLedgerMainDetail { Amount = (decimal?)CashTransactionHeader.TblGlCashTransactionDetails.Sum(w => w.Amount), Description = CashTransactionHeader.Description, ExchangeRate = CashTransactionHeader.ExchangeRate, TblCurrency = CashTransactionHeader.TblCurrency, TransDate = CashTransactionHeader.DocDate, TblJournalAccountType = CashTransactionHeader.TblJournalAccountType, EntityAccount = CashTransactionHeader.EntityAccount, GlAccount = accountDetail, TblLedgerHeader = newLedgerHeaderRow.Iserial, DrOrCr = !drorcr, PaymentRef = CashTransactionHeader.Code }; UpdateOrInsertTblLedgerMainDetails(newledgerDetailrowhCash, true, 000, out tempheader, company, (int)CashTransactionHeader.CreatedBy); CashTransactionHeader.ApproveDate = DateTime.Now; CashTransactionHeader.ApprovedBy = user; CashTransactionHeader.Approved = true; entity.SaveChanges(); } }
private void UpdateorInsertClosingAdvanceVendorPayments(DateTime PostDate, List <int> Iserials, int CreatedBy, string company) { using (var entity = new ccnewEntities(GetSqlConnectionString(company))) { var tblChainSetupTest = entity.tblChainSetupTests.FirstOrDefault(x => x.sGlobalSettingCode == "GLAdvanceVendor"); var sequenceIserial = entity.TblJournals.FirstOrDefault(e => e.Code == tblChainSetupTest.sSetupValue).Iserial; entity.CommandTimeout = 0; var items = entity.TblGlChequeTransactionDetails.Include(w => w.TblGlChequeTransactionHeader1).Where(w => Iserials.Contains(w.Iserial)).ToList(); var entityID = items.FirstOrDefault().EntityDetail1; var entityRecord = entity.Entities.FirstOrDefault(w => w.Iserial == entityID && w.TblJournalAccountType == 3); foreach (var item in items) { var newLedgerHeaderRow = new TblLedgerHeader { CreatedBy = CreatedBy, CreationDate = DateTime.Now, Description = " تسوية دفعة مورد" + entityRecord.Code + " " + entityRecord.Ename, DocDate = PostDate, TblJournal = sequenceIserial, TblTransactionType = 7, TblJournalLink = 1 }; var newrow = new TblClosingAdvanceVendorPayment() { TblGlChequeTransactionDetail = item.Iserial }; entity.TblClosingAdvanceVendorPayments.AddObject(newrow); var tempheader = 0; UpdateOrInsertTblLedgerHeaders(newLedgerHeaderRow, true, 000, out tempheader, (int)newLedgerHeaderRow.CreatedBy, company); var newledgerDetailrowh1 = new TblLedgerMainDetail { Amount = (decimal?)item.Amount, Description = " تسوية دفعة مورد" + entityRecord.Ename + " رقم شيك" + item.ChequeNo, ExchangeRate = items.FirstOrDefault().TblGlChequeTransactionHeader1.ExchangeRate, TblCurrency = items.FirstOrDefault().TblGlChequeTransactionHeader1.TblCurrency, TransDate = DateTime.Now, TblJournalAccountType = entityRecord.TblJournalAccountType, EntityAccount = entityRecord.Iserial, GlAccount = entityRecord.AccountIserial, TblLedgerHeader = newLedgerHeaderRow.Iserial, PaymentRef = item.ChequeNo, DrOrCr = false, // TblBankCheque = row.TblBankCheque, }; var vendorRecord = entity.Entities.FirstOrDefault(w => w.Code == entityRecord.Code && w.TblJournalAccountType == 2); var newledgerDetail = new TblLedgerMainDetail { Amount = (decimal?)item.Amount, Description = " تسوية دفعة مورد" + entityRecord.Ename + " رقم شيك" + item.ChequeNo, ExchangeRate = items.FirstOrDefault().TblGlChequeTransactionHeader1.ExchangeRate, TblCurrency = items.FirstOrDefault().TblGlChequeTransactionHeader1.TblCurrency, TransDate = DateTime.Now, TblJournalAccountType = vendorRecord.TblJournalAccountType, EntityAccount = vendorRecord.Iserial, GlAccount = vendorRecord.AccountIserial, TblLedgerHeader = newLedgerHeaderRow.Iserial, PaymentRef = item.ChequeNo, DrOrCr = true, // TblBankCheque = row.TblBankCheque, }; UpdateOrInsertTblLedgerMainDetails(newledgerDetailrowh1, true, 000, out tempheader, company, (int)newLedgerHeaderRow.CreatedBy); UpdateOrInsertTblLedgerMainDetails(newledgerDetail, true, 000, out tempheader, company, (int)newLedgerHeaderRow.CreatedBy); } entity.SaveChanges(); //return query.ToList(); } }