Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
        public async Task <Int32Result> Fuvardij([FromQuery] string sid, [FromBody] FuvardijParam par)
        {
            var result = new Int32Result();

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

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

            return(result);
        }