Ejemplo n.º 1
0
        public static async Task <byte[]> FeltetelesSzerzodesAsync(ossContext context, string sid, int projektKod)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.PROJEKT);

            var entityProjekt = await ProjektDal.GetAsync(context, projektKod);

            var entityParticio = await ParticioDal.GetAsync(context);

            var pc      = JsonConvert.DeserializeObject <ProjektConf>(entityParticio.Projekt);
            var iratKod = pc.FeltetelesSzerzodesIratkod != null ? (int)pc.FeltetelesSzerzodesIratkod :
                          throw new Exception(string.Format(Messages.ParticioHiba, "FeltetelesSzerzodesIratkod"));

            var original = await IratBll.LetoltesAsync(context, sid, iratKod);

            NumberFormatInfo nfi = new CultureInfo("hu-HU", false).NumberFormat;

            nfi.NumberGroupSeparator = ".";

            var arNetto     = entityProjekt.Vallalasiarnetto;
            var elolegNetto = (int)(arNetto * (decimal)0.7) / 1000 * 1000;

            ComponentInfo.SetLicense(serialKey);

            DocumentModel document;

            using (var msDocx = new MemoryStream())
            {
                msDocx.Write(original.b, 0, original.b.Count());
                document = DocumentModel.Load(msDocx, GemBox.Document.LoadOptions.DocxDefault);
            }

            var mezoertekek = new
            {
                UGYFELNEV            = entityProjekt.UgyfelkodNavigation.Nev,
                UGYFELCIM            = UgyfelBll.Cim(entityProjekt.UgyfelkodNavigation),
                TELEFONSZAM          = entityProjekt.UgyfelkodNavigation.Telefon,
                DC                   = entityProjekt.Dckw.ToString(CultureInfo.CurrentCulture),
                NAPELEM              = entityProjekt.Napelem,
                INVERTER             = entityProjekt.Inverter,
                TELEPITESICIM        = entityProjekt.Telepitesicim,
                KIVITELEZESIHATARIDO = entityProjekt.Kivitelezesihatarido.Value.ToShortDateString(),
                MUNKATERULETATADASA  = DateTime.Now.Date.AddDays(1).ToShortDateString(),
                ARNETTO              = (arNetto - 75000).ToString("#,#", nfi),
                ARBRUTTO             = Calc.RealRound((arNetto - 75000) * (decimal)1.27, 1m).ToString("#,#", nfi),
                DATUM                = DateTime.Now.Date.ToShortDateString()
            };

            document.MailMerge.Execute(mezoertekek);

            byte[] result;

            using (var msDocx = new MemoryStream())
            {
                document.Save(msDocx, GemBox.Document.SaveOptions.DocxDefault);
                result = msDocx.ToArray();
            }

            return(result);
        }
Ejemplo n.º 2
0
        public static async Task <byte[]> MunkalapAsync(ossContext context, string sid, int projektKod)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.PROJEKT);

            var entityProjekt = await ProjektDal.GetAsync(context, projektKod);

            var entityParticio = await ParticioDal.GetAsync(context);

            var pc      = JsonConvert.DeserializeObject <ProjektConf>(entityParticio.Projekt);
            var iratKod = pc.MunkalapIratkod != null ? (int)pc.MunkalapIratkod :
                          throw new Exception(string.Format(Messages.ParticioHiba, "MunkalapIratkod"));

            if (entityProjekt.Munkalapszam == null)
            {
                entityProjekt.Munkalapszam = context.KodGen(KodNev.Munkalapszam) + "/" + DateTime.Now.Year;
                await ProjektDal.UpdateAsync(context, entityProjekt);

                await ProjektDal.GetAsync(context, projektKod);
            }
            var original = await IratBll.LetoltesAsync(context, sid, iratKod);

            ComponentInfo.SetLicense(serialKey);

            DocumentModel document;

            using (var msDocx = new MemoryStream())
            {
                msDocx.Write(original.b, 0, original.b.Count());
                document = DocumentModel.Load(msDocx, GemBox.Document.LoadOptions.DocxDefault);
            }

            var mezoertekek = new
            {
                PROJEKTKOD     = entityProjekt.Projektkod.ToString(),
                UGYFELNEV      = entityProjekt.UgyfelkodNavigation.Nev,
                TELEPITESICIM  = entityProjekt.Telepitesicim,
                PROJEKTJELLEGE = entityProjekt.Projektjellege,
                MUNKALAPSZAM   = entityProjekt.Munkalapszam,
                DC             = entityProjekt.Dckw.ToString(CultureInfo.CurrentCulture),
                AC             = entityProjekt.Ackva.ToString(CultureInfo.CurrentCulture),
                TELEFONSZAM    = entityProjekt.UgyfelkodNavigation.Telefon,
                NAPELEM        = entityProjekt.Napelem,
                INVERTER       = entityProjekt.Inverter
            };

            document.MailMerge.Execute(mezoertekek);

            byte[] result;

            using (var msDocx = new MemoryStream())
            {
                document.Save(msDocx, GemBox.Document.SaveOptions.DocxDefault);
                result = msDocx.ToArray();
            }

            return(result);
        }
Ejemplo n.º 3
0
        public static async Task <byte[]> KeszrejelentesMvmemaszAsync(ossContext context, string sid, int projektKod)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.PROJEKT);

            var entityProjekt = await ProjektDal.GetAsync(context, projektKod);

            var entityParticio = await ParticioDal.GetAsync(context);

            var pc      = JsonConvert.DeserializeObject <ProjektConf>(entityParticio.Projekt);
            var iratKod = pc.KeszrejelentesMvmemaszIratkod != null ? (int)pc.KeszrejelentesMvmemaszIratkod :
                          throw new Exception(string.Format(Messages.ParticioHiba, "KeszrejelentesMvmemaszIratkod"));

            var original = await IratBll.LetoltesAsync(context, sid, iratKod);

            ComponentInfo.SetLicense(serialKey);

            DocumentModel document;

            using (var msDocx = new MemoryStream())
            {
                msDocx.Write(original.b, 0, original.b.Count());
                document = DocumentModel.Load(msDocx, GemBox.Document.LoadOptions.DocxDefault);
            }

            var mezoertekek = new
            {
                UGYFELNEV     = entityProjekt.UgyfelkodNavigation.Nev,
                UGYFELCIM     = UgyfelBll.Cim(entityProjekt.UgyfelkodNavigation),
                TELEPITESICIM = entityProjekt.Telepitesicim,
                INVERTER      = entityProjekt.Inverter,
                TELEFONSZAM   = entityProjekt.UgyfelkodNavigation.Telefon,
                EMAIL         = entityProjekt.UgyfelkodNavigation.Email,
                AC            = entityProjekt.Ackva.ToString(CultureInfo.CurrentCulture),
                DATUM         = DateTime.Now.Date.ToShortDateString()
            };

            document.MailMerge.Execute(mezoertekek);

            byte[] result;

            using (var msDocx = new MemoryStream())
            {
                document.Save(msDocx, GemBox.Document.SaveOptions.DocxDefault);
                result = msDocx.ToArray();
            }

            return(result);
        }
Ejemplo n.º 4
0
        public static async Task <byte[]> HMKEtulajdonoshozzajarulas(ossContext context, string sid, int projektKod)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.PROJEKT);

            var entityProjekt = await ProjektDal.GetAsync(context, projektKod);

            var entityParticio = await ParticioDal.GetAsync(context);

            var pc      = JsonConvert.DeserializeObject <ProjektConf>(entityParticio.Projekt);
            var iratKod = pc.HMKEtulajdonoshozzajarulasIratkod != null ? (int)pc.HMKEtulajdonoshozzajarulasIratkod :
                          throw new Exception(string.Format(Messages.ParticioHiba, "HMKEtulajdonoshozzajarulasIratkod"));

            var original = await IratBll.LetoltesAsync(context, sid, iratKod);

            NumberFormatInfo nfi = new CultureInfo("hu-HU", false).NumberFormat;

            nfi.NumberGroupSeparator = ".";

            ComponentInfo.SetLicense(serialKey);

            DocumentModel document;

            using (var msDocx = new MemoryStream())
            {
                msDocx.Write(original.b, 0, original.b.Count());
                document = DocumentModel.Load(msDocx, GemBox.Document.LoadOptions.DocxDefault);
            }

            var mezoertekek = new
            {
                UGYFELNEV     = entityProjekt.UgyfelkodNavigation.Nev,
                TELEPITESICIM = entityProjekt.Telepitesicim,
                MEGRENDELVE   = entityProjekt.Megrendelve.Value.ToShortDateString(),
            };

            document.MailMerge.Execute(mezoertekek);

            byte[] result;

            using (var msDocx = new MemoryStream())
            {
                document.Save(msDocx, GemBox.Document.SaveOptions.DocxDefault);
                result = msDocx.ToArray();
            }

            return(result);
        }
Ejemplo n.º 5
0
        public static async Task <byte[]> ElegedettsegAsync(ossContext context, string sid, int projektKod)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.PROJEKT);

            var entityProjekt = await ProjektDal.GetAsync(context, projektKod);

            var entityParticio = await ParticioDal.GetAsync(context);

            var pc      = JsonConvert.DeserializeObject <ProjektConf>(entityParticio.Projekt);
            var iratKod = pc.ElegedettsegiFelmeresIratkod != null ? (int)pc.ElegedettsegiFelmeresIratkod :
                          throw new Exception(string.Format(Messages.ParticioHiba, "ElegedettsegiFelmeresIratkod"));

            var original = await IratBll.LetoltesAsync(context, sid, iratKod);

            ComponentInfo.SetLicense(serialKey);

            DocumentModel document;

            using (var msDocx = new MemoryStream())
            {
                msDocx.Write(original.b, 0, original.b.Count());
                document = DocumentModel.Load(msDocx, GemBox.Document.LoadOptions.DocxDefault);
            }

            var mezoertekek = new
            {
                PROJEKTKOD    = entityProjekt.Projektkod.ToString(),
                UGYFELNEV     = entityProjekt.UgyfelkodNavigation.Nev,
                TELEPITESICIM = entityProjekt.Telepitesicim
            };

            document.MailMerge.Execute(mezoertekek);

            byte[] result;

            using (var msDocx = new MemoryStream())
            {
                document.Save(msDocx, GemBox.Document.SaveOptions.DocxDefault);
                result = msDocx.ToArray();
            }

            return(result);
        }
Ejemplo n.º 6
0
        public static async Task <int> AjanlatKesztitesAsync(ossContext context, string sid,
                                                             int projektKod, List <AjanlatBuf> ajanlatBuf, List <SzMT> fi)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.AJANLATKESZITES);

            ExcelFile      _excel;
            ExcelWorksheet _sheet;

            SpreadsheetInfo.SetLicense("ERDD-TN5J-YKX9-H1KX");

            var ervenyes             = SzMTUtils.GetDate(fi, Szempont.Ervenyes);
            var tajolas              = SzMTUtils.GetString(fi, Szempont.Tajolas);
            var termeles             = SzMTUtils.GetInt(fi, Szempont.Termeles);
            var megjegyzes           = SzMTUtils.GetString(fi, Szempont.Megjegyzes);
            var szuksegesAramerosseg = SzMTUtils.GetString(fi, Szempont.SzuksegesAramerosseg);

            var entityProjekt = await ProjektDal.GetAsync(context, projektKod);

            var entityParticio = await ParticioDal.GetAsync(context);

            var pc      = JsonConvert.DeserializeObject <ProjektConf>(entityParticio.Projekt);
            var iratKod = pc.AjanlatIratkod != null ? (int)pc.AjanlatIratkod :
                          throw new Exception(string.Format(Messages.ParticioHiba, "AjanlatIratkod"));

            var fb = await IratBll.LetoltesAsync(context, sid, iratKod);

            using (var msExcel = new MemoryStream())
            {
                msExcel.Write(fb.b, 0, fb.b.Count());
                msExcel.Position = 0;
                _excel           = ExcelFile.Load(msExcel, GemBox.Spreadsheet.LoadOptions.XlsDefault);
            }
            if (_excel.Worksheets.Count != 1)
            {
                throw new Exception("Az alapbizonylat nincs előkészítve!");
            }
            _sheet = _excel.Worksheets[0];

            XlsUtils.Mezo(_sheet, 7, 3, entityProjekt.UgyfelkodNavigation.Nev);
            XlsUtils.Mezo(_sheet, 7, 8, DateTime.Now.Date.ToShortDateString());
            XlsUtils.Mezo(_sheet, 8, 8, ervenyes.Date.ToShortDateString());
            var ugyfelCim = UgyfelBll.Cim(entityProjekt.UgyfelkodNavigation).Trim(' ', ',');

            XlsUtils.Mezo(_sheet, 10, 3, ugyfelCim);

            var napelem              = ajanlatBuf.First(s => s.AjanlatTetelTipus == AjanlatTetelTipus.Napelem);
            var inverter             = ajanlatBuf.First(s => s.AjanlatTetelTipus == AjanlatTetelTipus.Inverter);
            var mechanikaiSzerelveny =
                ajanlatBuf.First(s => s.AjanlatTetelTipus == AjanlatTetelTipus.MechanikaiSzerelveny);
            var villamosSzerelveny = ajanlatBuf.First(s => s.AjanlatTetelTipus == AjanlatTetelTipus.VillamosSzerelveny);
            var ugyintezes         = ajanlatBuf.First(s => s.AjanlatTetelTipus == AjanlatTetelTipus.Ugyintezes);
            var munkadij           = ajanlatBuf.First(s => s.AjanlatTetelTipus == AjanlatTetelTipus.Munkadij);
            var tuzesetiKapcsolo   = ajanlatBuf.First(s => s.AjanlatTetelTipus == AjanlatTetelTipus.TuzesetiKapcsolo);

            var dckW  = Calc.RealRound(napelem.OsszTeljesitmeny / 1000, 0.01m);
            var ackVa = Calc.RealRound(inverter.OsszTeljesitmeny / 1000, 0.01m);

            XlsUtils.Mezo(_sheet, 13, 3, dckW);
            XlsUtils.Mezo(_sheet, 14, 3, ackVa);
            XlsUtils.Mezo(_sheet, 15, 3, szuksegesAramerosseg);

            XlsUtils.Mezo(_sheet, 13, 5, tajolas);
            XlsUtils.Mezo(_sheet, 14, 5, "min. " + (dckW * termeles).ToString("#0.") +
                          " kWh, azaz " + (dckW * termeles * 40).ToString("#0.") + " Ft");

            XlsUtils.Mezo(_sheet, 18, 3, napelem.CikkNev);
            XlsUtils.Mezo(_sheet, 18, 5, napelem.Mennyiseg);
            XlsUtils.Mezo(_sheet, 18, 6, napelem.EgysegAr);

            XlsUtils.Mezo(_sheet, 19, 3, inverter.CikkNev);
            XlsUtils.Mezo(_sheet, 19, 5, inverter.Mennyiseg);
            XlsUtils.Mezo(_sheet, 19, 6, inverter.EgysegAr);

            XlsUtils.Mezo(_sheet, 20, 3, mechanikaiSzerelveny.CikkNev);
            XlsUtils.Mezo(_sheet, 20, 5, mechanikaiSzerelveny.Mennyiseg);
            XlsUtils.Mezo(_sheet, 20, 6, mechanikaiSzerelveny.EgysegAr);

            XlsUtils.Mezo(_sheet, 21, 3, villamosSzerelveny.CikkNev);
            XlsUtils.Mezo(_sheet, 21, 5, villamosSzerelveny.Mennyiseg);
            XlsUtils.Mezo(_sheet, 21, 6, villamosSzerelveny.EgysegAr);

            XlsUtils.Mezo(_sheet, 22, 7, ugyintezes.EgysegAr);

            XlsUtils.Mezo(_sheet, 23, 7, munkadij.EgysegAr);

            XlsUtils.Mezo(_sheet, 26, 7, tuzesetiKapcsolo.EgysegAr);

            var gar =
                "A napelemekre {0} év gyári, az inverterre {1} év gyári, mechanikai szerelvényre {2} év, villamos szerelvényre {3} év, kivitelezésre {4} év garancia érvényes.";

            XlsUtils.Mezo(_sheet, 33, 3,
                          string.Format(gar, napelem.Garancia, inverter.Garancia, mechanikaiSzerelveny.Garancia,
                                        villamosSzerelveny.Garancia, munkadij.Garancia));

            var felhasznalo = await FelhasznaloDal.GetAsync(context, context.CurrentSession.Felhasznalokod);

            XlsUtils.Mezo(_sheet, 8, 3, $"{felhasznalo.Nev}, {felhasznalo.Telefon}, {felhasznalo.Email}");

            //az excel mezőkkiértékelése
            _sheet.Calculate();

            const string irattipus    = "Ajánlat";
            var          lstIrattipus = (await IrattipusDal.ReadAsync(context, irattipus)).Where(s => s.Irattipus1 == irattipus).ToList();

            if (lstIrattipus.Count != 1)
            {
                throw new Exception($"Hiányzó irattipus: {irattipus}!");
            }

            var ujIrat = new Models.Irat
            {
                Irany        = "Ki",
                Keletkezett  = DateTime.Now.Date,
                Irattipuskod = lstIrattipus[0].Irattipuskod,
                Ugyfelkod    = entityProjekt.Ugyfelkod,
                Targy        = megjegyzes
            };

            var ujIratKod = await IratDal.AddAsync(context, ujIrat);

            using (var stream = new MemoryStream())
            {
                _excel.Save(stream, SaveOptions.XlsDefault);

                stream.Position = 0;
                var fajlBuf = new FajlBuf
                {
                    Meret      = (int)stream.Length,
                    Ext        = fb.Ext,
                    Hash       = Crypt.MD5Hash(stream),
                    IratKod    = ujIratKod,
                    Megjegyzes = megjegyzes,
                    b          = stream.ToArray()
                };

                await DokumentumBll.FeltoltesAsync(context, sid, fajlBuf);
            }

            return(await ProjektKapcsolatBll.AddIratToProjektAsync(context, sid, projektKod, ujIratKod));
        }
Ejemplo n.º 7
0
        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));
        }