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"));
            }
        }
예제 #2
0
        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)));
        }