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

            await BizonylatDal.Lock(context, par.dtoAnyagszamla.Bizonylatkod, par.dtoAnyagszamla.Modositva);

            var entityAnyagszamla = await BizonylatDal.GetAsync(context, par.dtoAnyagszamla.Bizonylatkod);

            if (entityAnyagszamla.Bizonylattipuskod != (int)BizonylatTipus.BejovoSzamla)
            {
                throw new Exception($"Ez a bizonylat nem bejövő számla: {entityAnyagszamla.Bizonylatkod}!");
            }
            if (entityAnyagszamla.Bizonylatszam == null)
            {
                throw new Exception($"Ez a bizonylat még módosítható: {entityAnyagszamla.Bizonylatkod}!");
            }

            var entityFuvarszamla = await BizonylatDal.GetAsync(context, par.dtoFuvarszamla.Bizonylatkod);

            if (entityFuvarszamla.Bizonylattipuskod != (int)BizonylatTipus.BejovoSzamla)
            {
                throw new Exception($"Ez a bizonylat nem bejövő számla: {entityFuvarszamla.Bizonylatkod}!");
            }
            if (entityFuvarszamla.Bizonylatszam == null)
            {
                throw new Exception($"Ez a bizonylat még módosítható: {entityFuvarszamla.Bizonylatkod}!");
            }

            entityAnyagszamla.Fuvarszamlakod     = entityFuvarszamla.Bizonylatkod;
            entityAnyagszamla.Fuvarszamla        = entityFuvarszamla.Bizonylatszam;
            entityAnyagszamla.Fuvardij           = par.Fuvardij;
            entityAnyagszamla.Fuvardijpenznemkod = entityFuvarszamla.Penznemkod;
            entityAnyagszamla.Fuvardijpenznem    = entityFuvarszamla.Penznem;
            entityAnyagszamla.Fuvardijarfolyam   = entityFuvarszamla.Arfolyam;

            await BizonylatDal.UpdateAsync(context, entityAnyagszamla);


            var entitesTetel     = BizonylatTetelDal.Select(context, par.dtoAnyagszamla.Bizonylatkod);
            var osszdb           = entitesTetel.Where(s => s.CikkkodNavigation.Keszletetkepez).Sum(s => s.Mennyiseg);
            var fuvardijegysegar = par.Fuvardij / osszdb;

            foreach (var l in entitesTetel)
            {
                if (l.CikkkodNavigation.Keszletetkepez)
                {
                    l.Fuvardijegysegar = fuvardijegysegar;
                    l.Fuvardij         = l.Mennyiseg * fuvardijegysegar;

                    await BizonylatTetelDal.UpdateAsync(context, l);
                }
            }

            return(entityAnyagszamla.Bizonylatkod);
        }
Пример #2
0
        public static async Task <int> FuvardijTorles(ossContext context, string sid, BizonylatDto dto)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD);

            await BizonylatDal.Lock(context, dto.Bizonylatkod, dto.Modositva);

            var entity = await BizonylatDal.GetAsync(context, dto.Bizonylatkod);

            if (entity.Bizonylattipuskod != (int)BizonylatTipus.BejovoSzamla)
            {
                throw new Exception($"Ez a bizonylat nem bejövő számla: {entity.Bizonylatkod}!");
            }
            if (entity.Bizonylatszam == null)
            {
                throw new Exception($"Ez a bizonylat még módosítható: {entity.Bizonylatkod}!");
            }

            entity.Fuvarszamlakod     = null;
            entity.Fuvarszamla        = null;
            entity.Fuvardij           = null;
            entity.Fuvardijpenznemkod = null;
            entity.Fuvardijpenznem    = null;
            entity.Fuvardijarfolyam   = null;

            await BizonylatDal.UpdateAsync(context, entity);

            var entitesTetel = BizonylatTetelDal.Select(context, dto.Bizonylatkod);

            foreach (var l in entitesTetel)
            {
                l.Fuvardijegysegar = null;
                l.Fuvardij         = null;

                await BizonylatTetelDal.UpdateAsync(context, l);
            }

            return(entity.Bizonylatkod);
        }