示例#1
0
        public void Setup(string sid, List <SzMT> szmt)
        {
            _sid = sid;

            _bizonylatkod   = SzMTUtils.GetInt(szmt, Szempont.BizonylatKod);
            _nyomtatasTipus = SzMTUtils.GetBizonylatNyomtatasTipus(szmt, Szempont.NyomtatasTipus);
        }
        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));
        }