private int DeleteTblGlCashTransactionHeader(TblGlCashTransactionHeader row, int index, string company) { using (var entity = new ccnewEntities(GetSqlConnectionString(company))) { var query = (from e in entity.TblGlCashTransactionHeaders where e.Iserial == row.Iserial select e).SingleOrDefault(); if (query != null) { entity.DeleteObject(query); } entity.SaveChanges(); } return(row.Iserial); }
private TblGlCashTransactionHeader UpdateOrInsertTblGlCashTransactionHeader( TblGlCashTransactionHeader newRow, bool save, int index, int user, bool approve, out int outindex, string company) { using (var scope = new TransactionScope()) { #region Code //bool ww = DateTime.Now > DateTime.Now.AddDays(1); outindex = index; using (var entity = new ccnewEntities(GetSqlConnectionString(company))) { var GlCashsetting = entity.TblGlCashTypeSettings.Include(nameof(TblGlCashTypeSetting.TblJournal1)).FirstOrDefault(x => x.Iserial == newRow.TblGlCashTypeSetting); if (save) { try { var firstrow = newRow.TblGlCashTransactionDetails.FirstOrDefault(); var entitySelected = entity.Entities.FirstOrDefault( x => x.TblJournalAccountType == firstrow.TblJournalAccountType && x.Iserial == firstrow.EntityAccount); // newRow.Description = entitySelected.Ename; } catch (Exception) { } newRow.CreationDate = DateTime.Now; newRow.CreatedBy = user; //var setting = // entity.TblGlCashTypeSettings.FirstOrDefault( // x => x.Iserial == newRow.TblGlCashTypeSetting).TblSequence; var journal = entity.TblSequences.FirstOrDefault(x => x.Iserial == GlCashsetting.TblSequence); // var journal = entity.TblSequences.FirstOrDefault(x => x.Iserial == GlCashsetting.TblSequence); int temp = 0; newRow.Code = SharedOperation.HandelSequence(newRow.Code, journal, "TblLedgerHeader", company, 0, newRow.DocDate.Value.Month, newRow.DocDate.Value.Year, out temp); newRow.CreationDate = DateTime.Now; entity.TblGlCashTransactionHeaders.AddObject(newRow); } else { var oldRow = (from e in entity.TblGlCashTransactionHeaders where e.Iserial == newRow.Iserial select e).SingleOrDefault(); if (oldRow != null) { foreach (var newDetailRow in newRow.TblGlCashTransactionDetails.ToList()) { if (newDetailRow.Iserial == 0) { newDetailRow.TblGlCashTransactionHeader1 = null; newDetailRow.TblGlCashTransactionHeader = oldRow.Iserial; entity.TblGlCashTransactionDetails.AddObject(newDetailRow); } else { var oldRowDetail = (from e in entity.TblGlCashTransactionDetails where e.Iserial == newDetailRow.Iserial select e).SingleOrDefault(); if (oldRowDetail != null) { foreach (var item in newDetailRow.TblGlCashTransactionDetailCostCenters.ToList()) { if (item.Iserial == 0) { item.TblGlCashTransactionDetail1 = null; item.TblGlCashTransactionDetail = newDetailRow.Iserial; entity.TblGlCashTransactionDetailCostCenters.AddObject(item); } } GenericUpdate(oldRowDetail, newDetailRow, entity); } } } GenericUpdate(oldRow, newRow, entity); } } entity.SaveChanges(); if (approve) { var ledgerheader = entity.TblLedgerHeaders.Any( x => x.TblJournalLink == newRow.Iserial && x.TblTransactionType == 11); if (!ledgerheader) { try { PostTblGlCashTransactionHeader(newRow.Iserial, user, company, newRow.Code); } catch (Exception) { var ledgerToDelete = entity.TblLedgerHeaders.Where( x => x.TblJournalLink == newRow.Iserial && x.TblTransactionType == 11).ToList(); foreach (var ledgerRow in ledgerToDelete) { entity.TblLedgerHeaders.DeleteObject(ledgerRow); } throw; } newRow.Approved = true; } } try { entity.SaveChanges(); } catch (Exception ex) { if (ExceptionContainsErrorCode(ex, 2627)) { entity.Detach(newRow); UpdateOrInsertTblGlCashTransactionHeader(newRow, save, index, user, approve, out outindex, company); } else { throw ex; } } } #endregion Code scope.Complete(); return(newRow); } }