Пример #1
0
        public static async Task <int> UjBizonylatMintaAlapjanAsync(ossContext context, string sid,
                                                                    int bizonylatKod, BizonylatTipus bizonylatTipus)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD);

            var entity = await BizonylatDal.GetComplexAsync(context, bizonylatKod);

            var complexDto = new BizonylatComplexDto
            {
                Dto             = ObjectUtils.Convert <Models.Bizonylat, BizonylatDto>(entity),
                LstTetelDto     = new List <BizonylatTetelDto>(),
                LstAfaDto       = new List <BizonylatAfaDto>(),
                LstTermekdijDto = new List <BizonylatTermekdijDto>()
            };

            complexDto.Dto.Bizonylatkod             = 0;
            complexDto.Dto.Bizonylattipuskod        = bizonylatTipus.GetHashCode();
            complexDto.Dto.Bizonylatszam            = null;
            complexDto.Dto.Nyomtatottpeldanyokszama = 0;

            foreach (var le in entity.Bizonylattetel)
            {
                var l = ObjectUtils.Convert <Models.Bizonylattetel, BizonylatTetelDto>(le);
                l.Bizonylatkod = 0;

                complexDto.LstTetelDto.Add(l);
            }

            //Save: az Áfa tételek törlődnek és újraszámítódnak
            return(await SaveAsync(context, sid, complexDto));
        }
Пример #2
0
        public static async Task <BizonylatComplexDto> GetComplexAsync(ossContext context, string sid, int bizonylatKod)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeBizonylatAsync(context);

            var entitycomplex = await BizonylatDal.GetComplexAsync(context, bizonylatKod);

            var dto = ObjectUtils.Convert <Models.Bizonylat, BizonylatDto>(entitycomplex);

            var result = new BizonylatComplexDto
            {
                Dto             = CalcCim(dto),
                LstTetelDto     = new List <BizonylatTetelDto>(),
                LstAfaDto       = new List <BizonylatAfaDto>(),
                LstTermekdijDto = new List <BizonylatTermekdijDto>()
            };

            foreach (var bt in entitycomplex.Bizonylattetel.OrderBy(s => s.Bizonylattetelkod))
            {
                result.LstTetelDto.Add(ObjectUtils.Convert <Models.Bizonylattetel, BizonylatTetelDto>(bt));
            }
            foreach (var ba in entitycomplex.Bizonylatafa.OrderBy(s => s.Afakulcs))
            {
                result.LstAfaDto.Add(ObjectUtils.Convert <Models.Bizonylatafa, BizonylatAfaDto>(ba));
            }
            foreach (var btd in entitycomplex.Bizonylattermekdij.OrderBy(s => s.Termekdijkt))
            {
                result.LstTermekdijDto.Add(ObjectUtils.Convert <Models.Bizonylattermekdij, BizonylatTermekdijDto>(btd));
            }

            return(result);
        }
Пример #3
0
        public static async Task <BizonylatComplexDto> CreateNewComplexAsync(ossContext context, string sid)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD);

            var entityParticio = await ParticioDal.GetAsync(context);

            var szc = JsonConvert.DeserializeObject <SzallitoConf>(entityParticio.Szallito);

            var result = new BizonylatComplexDto
            {
                Dto = new BizonylatDto
                {
                    Szallitonev          = szc.Nev,
                    Szallitoiranyitoszam = szc.Iranyitoszam,
                    Szallitohelysegnev   = szc.Helysegnev,
                    Szallitoutcahazszam  = szc.Utcahazszam,
                    Szallitobankszamla1  = szc.Bankszamla1,
                    Szallitobankszamla2  = szc.Bankszamla2,
                    Szallitoadotorzsszam = szc.Adotorzsszam,
                    Szallitoadoafakod    = szc.Adoafakod,
                    Szallitoadomegyekod  = szc.Adomegyekod,

                    Bizonylatkelte     = DateTime.Today,
                    Teljesiteskelte    = DateTime.Today,
                    Fizetesihatarido   = DateTime.Today,
                    Szallitasihatarido = DateTime.Today,
                    Kifizetesrendben   = false,
                    Kiszallitva        = false,
                    Arfolyam           = 1,
                    Ezstornozott       = false,
                    Ezstornozo         = false,

                    Netto  = 0,
                    Afa    = 0,
                    Brutto = 0,

                    Termekdij = 0,

                    Nyomtatottpeldanyokszama = 0
                }
            };

            const string penznem    = "HUF";
            var          lstPenznem = await PenznemDal.ReadAsync(context, penznem);

            if (lstPenznem.Count == 1)
            {
                result.Dto.Penznemkod = lstPenznem[0].Penznemkod;
                result.Dto.Penznem    = penznem;
            }

            result.LstTetelDto     = new List <BizonylatTetelDto>();
            result.LstAfaDto       = new List <BizonylatAfaDto>();
            result.LstTermekdijDto = new List <BizonylatTermekdijDto>();

            return(result);
        }
Пример #4
0
        public static async Task <BizonylatComplexDto> SumEsAfaEsTermekdijAsync(ossContext context, string sid,
                                                                                BizonylatComplexDto dto)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD);

            BizonylatUtils.SumEsAfaEsTermekdij(dto.Dto, dto.LstTetelDto, dto.LstAfaDto, dto.LstTermekdijDto);
            return(dto);
        }
Пример #5
0
        public async Task <Int32Result> Save([FromQuery] string sid, [FromBody] BizonylatComplexDto par)
        {
            var result = new Int32Result();

            using (var tr = await _context.Database.BeginTransactionAsync())
                try
                {
                    result.Result = await BizonylatBll.SaveAsync(_context, sid, par);

                    tr.Commit();
                }
                catch (Exception ex)
                {
                    tr.Rollback();
                    result.Error = ex.InmostMessage();
                }

            return(result);
        }
Пример #6
0
        public async Task <BizonylatComplexResult> SumEsAfaEsTermekdij([FromQuery] string sid,
                                                                       [FromBody] BizonylatComplexDto dto)
        {
            var result = new BizonylatComplexResult();

            using (var tr = await _context.Database.BeginTransactionAsync())
                try
                {
                    result.Result = new List <BizonylatComplexDto> {
                        await BizonylatBll.SumEsAfaEsTermekdijAsync(_context, sid, dto)
                    };

                    tr.Commit();
                }
                catch (Exception ex)
                {
                    tr.Rollback();
                    result.Error = ex.InmostMessage();
                }

            return(result);
        }
Пример #7
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);
        }