public static async Task DeleteAsync(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); await BizonylatDal.DeleteAsync(context, entity); }
public static async Task <int> KibocsatasAsync(ossContext context, string sid, BizonylatDto dto, string bizonylatszam) { 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.Bizonylatszam != null) { throw new Exception("Ez a bizonylat már ki van bocsátva!"); } if (string.IsNullOrEmpty(dto.Ugyfelnev) || string.IsNullOrEmpty(dto.Ugyfeliranyitoszam) || string.IsNullOrEmpty(dto.Ugyfelhelysegnev) || string.IsNullOrEmpty(dto.Ugyfelkozterulet) || string.IsNullOrEmpty(dto.Ugyfelkozterulettipus) || string.IsNullOrEmpty(dto.Ugyfelhazszam)) { throw new Exception("Hiányzó ügyféladatok!"); } if (dto.Penznem != "HUF" & dto.Arfolyam == 1) { throw new Exception("Hibás az árfolyam!"); } if (Bl[dto.Bizonylattipuskod].FizetesiModIs & string.IsNullOrEmpty(dto.Fizetesimod)) { throw new Exception("Hiányzó fizetési mód!"); } if (Bl[entity.Bizonylattipuskod].GenBizonylatszam) { entity.Bizonylatszam = GenerateBizonylatszam(context, entity.Bizonylattipuskod); } else { entity.Bizonylatszam = bizonylatszam ?? throw new Exception("A bizonylatszám nem lehet üres!"); } var result = await BizonylatDal.UpdateAsync(context, entity); return(result); }
public async Task <Int32Result> FuvardijTorles([FromQuery] string sid, [FromBody] BizonylatDto par) { var result = new Int32Result(); using (var tr = await _context.Database.BeginTransactionAsync()) try { result.Result = await BizonylatBll.FuvardijTorles(_context, sid, par); tr.Commit(); } catch (Exception ex) { tr.Rollback(); result.Error = ex.InmostMessage(); } return(result); }
public async Task <BaseResults.EmptyResult> Delete([FromQuery] string sid, [FromBody] BizonylatDto dto) { var result = new BaseResults.EmptyResult(); using (var tr = await _context.Database.BeginTransactionAsync()) try { await BizonylatBll.DeleteAsync(_context, sid, dto); tr.Commit(); } catch (Exception ex) { tr.Rollback(); result.Error = ex.InmostMessage(); } return(result); }
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); }
public static async Task <int> KiszallitvaAsync(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.Kiszallitva == true) //null miatt { entity.Kiszallitva = false; } else { entity.Kiszallitva = true; } return(await BizonylatDal.UpdateAsync(context, entity)); }
public static async Task <int> StornoAsync(ossContext context, string sid, BizonylatDto dto) { SessionBll.Check(context, sid); await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD); await BizonylatDal.Lock(context, dto.Bizonylatkod, dto.Modositva); //a fej/tételek/áfa lekérése/módosítása/hozzáadása lépésenként var stornozando = await BizonylatDal.GetAsync(context, dto.Bizonylatkod); if (stornozando.Bizonylatszam == null) { throw new Exception("Lezáratlan bizonylatot nem lehet stornozni!"); } if (stornozando.Ezstornozott) { throw new Exception("A bizonylat már stornozott!"); } //ha díjbekérő -> nem jön létre másik bizonylat if (stornozando.Bizonylattipuskod == (int)BizonylatTipus.DijBekero) { stornozando.Ezstornozott = true; await BizonylatDal.UpdateAsync(context, stornozando); return(0); } var stornozo = ObjectUtils.Clone(stornozando); stornozo.Bizonylatszam = GenerateBizonylatszam(context, stornozo.Bizonylattipuskod); stornozo.Megjegyzesfej = $"A(z) {stornozando.Bizonylatszam} számú bizonylat stornója."; stornozo.Netto = -stornozo.Netto; stornozo.Afa = -stornozo.Afa; stornozo.Brutto = -stornozo.Brutto; stornozo.Termekdij = -stornozo.Termekdij; stornozo.Ezstornozo = true; stornozo.Stornozottbizonylatkod = stornozando.Bizonylatkod; stornozo.Bizonylatkelte = DateTime.Today; // Stornónál a teljesítés kelte és a fizetési határidő ugyanaz kell hogy maradjon! stornozo.Azaz = Azaz.Szovegge(stornozo.Brutto); await BizonylatDal.AddAsync(context, stornozo); //a tételek lekérése/másolása/módosítása/hozzáadása lépésenként var stornozoTetel = BizonylatTetelDal.Select(context, dto.Bizonylatkod); foreach (var t in stornozoTetel) { var tetel = ObjectUtils.Clone(t); tetel.Bizonylatkod = stornozo.Bizonylatkod; tetel.Mennyiseg = -tetel.Mennyiseg; tetel.Netto = -tetel.Netto; tetel.Afa = -tetel.Afa; tetel.Brutto = -tetel.Brutto; tetel.Ossztomegkg = -tetel.Ossztomegkg; tetel.Termekdij = -tetel.Termekdij; await BizonylatTetelDal.AddAsync(context, tetel); } //az áfa lekérése/másolása/módosítása/hozzáadása lépésenként var stornozoAfa = BizonylatAfaDal.Select(context, dto.Bizonylatkod); foreach (var t in stornozoAfa) { var afa = ObjectUtils.Clone(t); afa.Bizonylatkod = stornozo.Bizonylatkod; afa.Netto = -afa.Netto; afa.Afa = -afa.Afa; afa.Brutto = -afa.Brutto; await BizonylatAfaDal.AddAsync(context, afa); } //termékdíj másolása var stornozotermekdij = BizonylatTermekdijDal.Select(context, dto.Bizonylatkod); foreach (var t in stornozotermekdij) { var termekdij = ObjectUtils.Clone(t); termekdij.Bizonylatkod = stornozo.Bizonylatkod; termekdij.Ossztomegkg = -termekdij.Ossztomegkg; termekdij.Termekdij = -termekdij.Termekdij; await BizonylatTermekdijDal.AddAsync(context, termekdij); } //az eredetiben ennyi módosítás stornozando.Ezstornozott = true; stornozando.Stornozobizonylatkod = stornozo.Bizonylatkod; await BizonylatDal.UpdateAsync(context, stornozando); return(stornozo.Bizonylatkod); }
private static BizonylatDto CalcCim(BizonylatDto dto) { dto.Ugyfelcim = $"{dto.Ugyfeliranyitoszam} {dto.Ugyfelhelysegnev}, {dto.Ugyfelkozterulet} {dto.Ugyfelkozterulettipus} {dto.Ugyfelhazszam}"; return(dto); }
public static void SumEsAfaEsTermekdij(BizonylatDto bizonylatDto, List <BizonylatTetelDto> lstBizonylatTetelDto, List <BizonylatAfaDto> lstBizonylatAfaDto, List <BizonylatTermekdijDto> lstBizonylatTermekdijDto) { lstBizonylatAfaDto.Clear(); lstBizonylatTermekdijDto.Clear(); var mire = bizonylatDto.Penznem == "HUF" ? 1m : 0.01m; var afaBontas = lstBizonylatTetelDto.GroupBy(s => new { s.Afakulcskod, s.Afakulcs, s.Afamerteke }) .Select(t => new { t.Key.Afakulcskod, t.Key.Afakulcs, t.Key.Afamerteke, NETTO = t.Sum(k => k.Netto), AFA = t.Sum(k => k.Afa) }); foreach (var ab in afaBontas.OrderBy(s => s.Afakulcs)) { var bizonylatAfaDto = new BizonylatAfaDto { Afakulcskod = ab.Afakulcskod, Afakulcs = ab.Afakulcs, Afamerteke = ab.Afamerteke, Netto = Calc.RealRound(ab.NETTO, mire), Afa = Calc.RealRound(ab.AFA, mire) }; bizonylatAfaDto.Brutto = bizonylatAfaDto.Netto + bizonylatAfaDto.Afa; lstBizonylatAfaDto.Add(bizonylatAfaDto); } var termekdijBontas = lstBizonylatTetelDto .Where(s => s.Termekdijas) .GroupBy(s => new { s.Termekdijkod, s.Termekdijkt, s.Termekdijmegnevezes, s.Termekdijegysegar }) .Select(t => new { OSSZTOMEGKG = t.Sum(k => k.Ossztomegkg), t.Key.Termekdijkod, t.Key.Termekdijkt, t.Key.Termekdijmegnevezes, t.Key.Termekdijegysegar, TERMEKDIJ = t.Sum(k => k.Termekdij) }); foreach (var tb in termekdijBontas.OrderBy(s => s.Termekdijkt)) { lstBizonylatTermekdijDto.Add(new BizonylatTermekdijDto { Ossztomegkg = tb.OSSZTOMEGKG, Termekdijkod = (int)tb.Termekdijkod, Termekdijkt = tb.Termekdijkt, Termekdijmegnevezes = tb.Termekdijmegnevezes, Termekdijegysegar = (decimal)tb.Termekdijegysegar, //TERMEKDIJ = Calc.RealRound((decimal) tb.TERMEKDIJ, mire) //navfeltöltés miatt Termekdij = (decimal)tb.TERMEKDIJ }); } bizonylatDto.Netto = lstBizonylatAfaDto.Sum(s => s.Netto); bizonylatDto.Afa = lstBizonylatAfaDto.Sum(s => s.Afa); bizonylatDto.Brutto = lstBizonylatAfaDto.Sum(s => s.Brutto); bizonylatDto.Termekdij = lstBizonylatTermekdijDto.Sum(s => s.Termekdij); bizonylatDto.Azaz = Azaz.Szovegge(bizonylatDto.Brutto); }