Beispiel #1
0
        public static async Task <BizonylatTetelDto> BizonylattetelCalcAsync(ossContext context, string sid,
                                                                             BizonylatTetelDto dto)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD);

            BizonylatUtils.BizonylattetelCalc(dto);
            return(dto);
        }
Beispiel #2
0
        public static async Task <int> SaveAsync(ossContext context, string sid, BizonylatComplexDto complexDto)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD);

            if (!string.IsNullOrEmpty(complexDto.Dto.Bizonylatszam))
            {
                throw new Exception($"Ez a bizonylat már nem módosítható: {complexDto.Dto.Bizonylatszam}!");
            }

            foreach (var l in complexDto.LstTetelDto)
            {
                BizonylatUtils.BizonylattetelCalc(l);
            }
            BizonylatUtils.SumEsAfaEsTermekdij(complexDto.Dto, complexDto.LstTetelDto, complexDto.LstAfaDto, complexDto.LstTermekdijDto);

            Models.Bizonylat entity;

            int bizonylatKod;

            if (complexDto.Dto.Bizonylatkod == 0)
            {
                //a fej még nem volt soha kiírva
                entity       = ObjectUtils.Convert <BizonylatDto, Models.Bizonylat>(complexDto.Dto);
                bizonylatKod = await BizonylatDal.AddAsync(context, entity);
            }
            else
            {
                //updateelni a fejet
                bizonylatKod = complexDto.Dto.Bizonylatkod;
                await BizonylatDal.Lock(context, bizonylatKod, complexDto.Dto.Modositva);

                entity = await BizonylatDal.GetAsync(context, bizonylatKod);

                ObjectUtils.Update(complexDto.Dto, entity);
                await BizonylatDal.UpdateAsync(context, entity);

                //törölni az esetleges létező tételt-áfát-
                var entitesTetel = BizonylatTetelDal.Select(context, bizonylatKod);
                foreach (var l in entitesTetel)
                {
                    await BizonylatTetelDal.DeleteAsync(context, l);
                }

                var entitesAfa = BizonylatAfaDal.Select(context, bizonylatKod);
                foreach (var l in entitesAfa)
                {
                    await BizonylatAfaDal.DeleteAsync(context, l);
                }

                var entitesTermekdij = BizonylatTermekdijDal.Select(context, bizonylatKod);
                foreach (var l in entitesTermekdij)
                {
                    await BizonylatTermekdijDal.DeleteAsync(context, l);
                }
            }

            //beírni a bizonylatkódot a tételbe-áfába-termékdíjba
            foreach (var l in complexDto.LstTetelDto)
            {
                l.Bizonylattetelkod = 0;
                l.Bizonylatkod      = bizonylatKod;

                var entityTetel = ObjectUtils.Convert <BizonylatTetelDto, Models.Bizonylattetel>(l);
                await BizonylatTetelDal.AddAsync(context, entityTetel);
            }
            foreach (var l in complexDto.LstAfaDto)
            {
                l.Bizonylatafakod = 0;
                l.Bizonylatkod    = bizonylatKod;

                var entityAfa = ObjectUtils.Convert <BizonylatAfaDto, Models.Bizonylatafa>(l);
                await BizonylatAfaDal.AddAsync(context, entityAfa);
            }
            foreach (var l in complexDto.LstTermekdijDto)
            {
                l.Bizonylattermekdijkod = 0;
                l.Bizonylatkod          = bizonylatKod;

                var entityTermekdij = ObjectUtils.Convert <BizonylatTermekdijDto, Models.Bizonylattermekdij>(l);
                await BizonylatTermekdijDal.AddAsync(context, entityTermekdij);
            }

            return(bizonylatKod);
        }