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); }
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); }