public async Task <IActionResult> PostSaisieEcritureSimple(DtoTGC003InpDC31EcritureCollectiveJournalForWriteEcritureSimple dto) { if (dto.NoCompteDebit == dto.NoCompteCredit) { return(BadRequest("Compte identique interdit")); } var noUser = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier)); var noClient = await _authRepo.NoClient(noUser); var item = await _repo.SaisieEcritureSimple(noClient, noUser, dto); if (item != null) { return(Ok()); } else { return(BadRequest("Impossible de créer l'écriture dans le journal")); } }
public async Task <DC31EcritureCollectiveJournal> SaisieEcritureSimple(int noClient, int noUtilisateur, DtoTGC003InpDC31EcritureCollectiveJournalForWriteEcritureSimple dto) { var recordDC31 = new DC31EcritureCollectiveJournal() { NoClient = noClient, NoUtilisateur = noUtilisateur }; var lastDC31 = _context.DC31EcritureCollectiveJournal .Where(x => x.NoClient == noClient && x.NoUtilisateur == noUtilisateur) .OrderByDescending(X => X.NoEcritureCollectiveJournal) .ToList(); var nextDC31 = 0; foreach (var i in lastDC31) { nextDC31 = i.NoEcritureCollectiveJournal; break; } nextDC31++; recordDC31 = new DC31EcritureCollectiveJournal() { NoClient = noClient, NoUtilisateur = noUtilisateur, NoEcritureCollectiveJournal = nextDC31, DateEcriture = dto.DateEcriture }; Add <DC31EcritureCollectiveJournal>(recordDC31); //if (!await SaveAll()) // pas besoin de rollback, c'est pas une suite d'écritures // return null; var recordDC30 = new DC30EcritureJournal() { NoClient = noClient, NoUtilisateur = noUtilisateur, NoEcritureCollectiveJournal = nextDC31, NoEcritureJournal = 1, NoCompteDebit = dto.NoCompteDebit, NoCompteCredit = dto.NoCompteCredit, NoPiece = dto.NoPiece, // DatePiece A FAIRE ISSUE 31 Libelle1 = dto.Libelle1Debit, Libelle2 = dto.Libelle2Debit, // Libellé crédit A FAIRE ISSUE 31 Montant = dto.Montant, SwAutomatique = false, }; Add <DC30EcritureJournal>(recordDC30); if (!await SaveAll()) { return(null); } return(await _context.DC31EcritureCollectiveJournal .FirstOrDefaultAsync(x => (x.NoClient == noClient) && (x.NoUtilisateur == noUtilisateur) && (x.NoEcritureCollectiveJournal == nextDC31))); }