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