private static async Task UpdateNyomtatottPeldanyAsync(ossContext context, int bizonylatKod, int peldanyszam) { // már lockolva van var entity = await BizonylatDal.GetAsync(context, bizonylatKod); entity.Nyomtatottpeldanyokszama = peldanyszam; await BizonylatDal.UpdateAsync(context, entity); }
public static async Task <int> UjBizonylatToProjektAsync(ossContext context, string sid, int projektKod, BizonylatDto dto) { SessionBll.Check(context, sid); await CsoportDal.JogeAsync(context, JogKod.PROJEKT); var entity = ObjectUtils.Convert <BizonylatDto, Models.Bizonylat>(dto); var bizonylatKod = await BizonylatDal.AddAsync(context, entity); return(await AddBizonylatToProjektAsync(context, sid, projektKod, bizonylatKod)); }
public static async Task <string> AdatszolgaltatasAsync(ossContext context, string sid, NGMMode mode, DateTime szamlaKelteTol, DateTime szamlaKelteIg, string szamlaSzamTol, string szamlaSzamIg) { SessionBll.Check(context, sid); await CsoportDal.JogeAsync(context, JogKod.LEKERDEZES); //az xml-hez mind a 4 paraméter szükséges List <Models.Bizonylat> entities; switch (mode) { case NGMMode.SzamlaKelte: entities = await BizonylatDal.Select_SzamlaKelteAsync(context, szamlaKelteTol, szamlaKelteIg); szamlaSzamTol = entities.Select(s => s.Bizonylatszam).Min(); szamlaSzamIg = entities.Select(s => s.Bizonylatszam).Max(); break; case NGMMode.SzamlaSzam: entities = await BizonylatDal.Select_SzamlaSzamAsync(context, szamlaSzamTol, szamlaSzamIg); szamlaKelteTol = entities.Select(s => s.Bizonylatkelte).Min(); szamlaKelteIg = entities.Select(s => s.Bizonylatkelte).Max(); break; default: throw new Exception($"{mode}: ismeretlen NGMMode!"); } if (entities.Count == 0) { throw new Exception("A megadott tartományban nincsenek számlák!"); } var szamlakXml = new Szamlak { EloallitasDatuma = DateTime.Now, KezdoSzamlaSzama = szamlaSzamTol, ZaroSzamlaSzama = szamlaSzamIg, KezdoDatum = szamlaKelteTol, ZaroDatum = szamlaKelteIg }; foreach (var peldany in entities) { var ngmSzamla = new Szamla(); ngmSzamla.Fejlec.SzamlaSorszama = peldany.Bizonylatszam; ngmSzamla.Fejlec.SzamlaTipusa = peldany.Ezstornozo ? SzamlaTipusok.ErvenytelenitoSzamla : SzamlaTipusok.Szamla; ngmSzamla.Fejlec.SzamlaKelte = peldany.Bizonylatkelte; ngmSzamla.Fejlec.TeljesitesDatuma = peldany.Teljesiteskelte; ngmSzamla.SzamlaKibocsato.Adoszam = $"{peldany.Szallitoadotorzsszam}-{peldany.Szallitoadoafakod}-{peldany.Szallitoadomegyekod}"; ngmSzamla.SzamlaKibocsato.Kisadozo = false; ngmSzamla.SzamlaKibocsato.Nev = peldany.Szallitonev; ngmSzamla.SzamlaKibocsato.Cim.Iranyitoszam = peldany.Szallitoiranyitoszam; ngmSzamla.SzamlaKibocsato.Cim.Telepules = peldany.Szallitohelysegnev; // TODO ez több partíció esetén nem jó!! ngmSzamla.SzamlaKibocsato.Cim.KozteruletNeve = "Túzok"; ngmSzamla.SzamlaKibocsato.Cim.KozteruletJellege = "utca"; ngmSzamla.SzamlaKibocsato.Cim.Hazszam = "42."; ngmSzamla.SzamlaKibocsato.EgyeniVallalkozo = false; ngmSzamla.SzamlaBefogado.Adoszam = peldany.Ugyfeladoszam; ngmSzamla.SzamlaBefogado.KozossegiAdoszam = string.Empty; ngmSzamla.SzamlaBefogado.Nev = peldany.Ugyfelnev; ngmSzamla.SzamlaBefogado.Cim.Iranyitoszam = peldany.Ugyfeliranyitoszam; ngmSzamla.SzamlaBefogado.Cim.Telepules = peldany.Ugyfelhelysegnev; ngmSzamla.SzamlaBefogado.Cim.KozteruletNeve = peldany.Ugyfelkozterulet; ngmSzamla.SzamlaBefogado.Cim.KozteruletJellege = peldany.Ugyfelkozterulettipus; ngmSzamla.SzamlaBefogado.Cim.Hazszam = peldany.Ugyfelhazszam; foreach (var tetel in peldany.Bizonylattetel) { var tszt = new TermekSzolgaltatasTetel { Megnevezes = tetel.Megnevezes, BesorolasiSzam = "-", Mennyiseg = tetel.Mennyiseg, Mertekegyseg = tetel.Me, KozvetitettSzolgaltatas = true, NettoAr = tetel.Netto, NettoEgysegar = tetel.Egysegar, AdoKulcs = tetel.Afamerteke, AdoErtek = tetel.Afa, BruttoAr = tetel.Brutto }; ngmSzamla.TermekSzolgaltatasTetelek.Add(tszt); } ngmSzamla.NemKotelezo.FizetesModja = peldany.Fizetesimod; ngmSzamla.NemKotelezo.FizetesiHatarido = peldany.Fizetesihatarido; ngmSzamla.NemKotelezo.SzamlaPenzneme = peldany.Penznem; if (ngmSzamla.Fejlec.SzamlaTipusa != SzamlaTipusok.SzamlavalEgyTekintetAlaEsoOkirat) { foreach (var afabontas in peldany.Bizonylatafa) { ngmSzamla.Osszesites.AfaRovatok.Add(new AfaRovat { NettoAr = afabontas.Netto, Adokulcs = afabontas.Afamerteke, AdoErtek = afabontas.Afa, BruttoAr = afabontas.Brutto }); } ngmSzamla.Osszesites.Vegosszeg.NettoArOsszesen = peldany.Netto; ngmSzamla.Osszesites.Vegosszeg.AfaOsszesen = peldany.Afa; ngmSzamla.Osszesites.Vegosszeg.BruttoOsszesen = peldany.Brutto; } szamlakXml.SzamlakAdatai.Add(ngmSzamla); } var result = ""; using (var sw = new StringWriter()) { var xwsettings = new XmlWriterSettings { CheckCharacters = true, CloseOutput = true, Encoding = Encoding.UTF8, Indent = true, IndentChars = " ", NewLineChars = Environment.NewLine, NewLineOnAttributes = false, NewLineHandling = NewLineHandling.Entitize }; using (var xw = XmlWriter.Create(sw, xwsettings)) szamlakXml.ToXml(xw); result = sw.ToString(); } return(result); }
public static async Task <byte[]> NyomtatasAsync(IConfiguration config, ossContext context, string sid, int bizonylatKod, BizonylatNyomtatasTipus nyomtatasTipus) { const string minta = "!!! MINTA !!!"; SessionBll.Check(context, sid); await CsoportDal.JogeBizonylatAsync(context); var entityBizonylat = await BizonylatDal.GetComplexAsync(context, bizonylatKod); await BizonylatDal.Lock(context, bizonylatKod, entityBizonylat.Modositva); if ((nyomtatasTipus == BizonylatNyomtatasTipus.Eredeti || nyomtatasTipus == BizonylatNyomtatasTipus.Másolat) && entityBizonylat.Bizonylatszam == null) { throw new Exception("Erről a bizonylatról csak MINTA nyomatási kép készülhet!"); } var entityParticio = await ParticioDal.GetAsync(context); var bc = JsonConvert.DeserializeObject <BizonylatConf>(entityParticio.Bizonylat); var iratKod = bc.BizonylatkepIratkod ?? throw new Exception(string.Format(Messages.ParticioHiba, "BizonylatkepIratkod")); var peldanyszam = bc.EredetipeldanyokSzama ?? throw new Exception(string.Format(Messages.ParticioHiba, "EredetipeldanyokSzama")); if (peldanyszam <= 0 || peldanyszam > 3) { throw new Exception($"EredetipeldanyokSzama: Hibás érték, legyen 1, 2 vagy 3, most {peldanyszam} !"); } var masolat = bc.MasolatokSzama ?? throw new Exception(string.Format(Messages.ParticioHiba, "MasolatokSzama")); if (masolat <= 0 || masolat > 3) { throw new Exception($"MasolatokSzama: Hibás érték, legyen 1, 2 vagy 3, most {masolat} !"); } var szamlakep = await IratBll.LetoltesAsync(context, sid, iratKod); var v = await VerzioDal.GetAsync(context); var fejlec = BizonylatBll.Bl[entityBizonylat.Bizonylattipuskod].BizonylatFejlec; if (nyomtatasTipus == BizonylatNyomtatasTipus.Minta) { fejlec = minta + " - " + fejlec; } var printer = new BizonylatPrinter(); printer.Setup(entityBizonylat, szamlakep.b, fejlec, v); switch (nyomtatasTipus) { case BizonylatNyomtatasTipus.Minta: printer.UjPeldany("1", minta); break; case BizonylatNyomtatasTipus.Eredeti: for (var i = 1; i <= peldanyszam; i++) { printer.UjPeldany(i.ToString(), "Eredeti"); } if (entityBizonylat.Nyomtatottpeldanyokszama == 0) { await UpdateNyomtatottPeldanyAsync(context, bizonylatKod, peldanyszam); } break; case BizonylatNyomtatasTipus.Másolat: if (entityBizonylat.Nyomtatottpeldanyokszama == 0) { throw new Exception("Még nem készült eredeti példány!"); } var sorszamTol = entityBizonylat.Nyomtatottpeldanyokszama + 1; var sorszamIg = sorszamTol + masolat - 1; for (var i = sorszamTol; i <= sorszamIg; i++) { printer.UjPeldany(i.ToString(), "Másolat"); } await UpdateNyomtatottPeldanyAsync(context, bizonylatKod, sorszamIg); break; } return(printer.Print(config)); }