public static void Rollback(MovementRegisterItem doc) { using (var db = DB.PosConnect()) { var transaction = db.BeginTransaction(); try { db.Execute(doc.RollbackCommand, new { doc.DocId }, transaction: transaction); ReCommitAllFollowingDocs(db, transaction, doc); transaction.Commit(); } catch (Exception) { transaction.Rollback(); } } }
private static void ReCommitAllFollowingDocs(SqlConnection db,SqlTransaction transaction, MovementRegisterItem doc) { var docs = GetDocuments(db, transaction,doc.DocDate, doc.StoreId).Where(x=> x.DocId!=doc.DocId).ToList(); ReCommit(db, transaction, docs); }