public static async Task <string> BejelentkezesAsync(ossContext context, IHubContext <OssHub> hubcontext, string azonosito, string jelszo, string ip, string winHost, string winUser) { var felhasznalo = await FelhasznaloDal.GetAsync(context, azonosito, jelszo); var sid = SessionBll.CreateNew(context, ip, winHost, winUser, felhasznalo.Felhasznalokod, felhasznalo.Nev, azonosito, felhasznalo.Logonlog); if (context.CurrentSession.Logol) { await EsemenynaploBll.BejegyzesAsync(context, EsemenynaploBejegyzesek.Bejelentkezes); HubUtils.Uzenet(hubcontext, context.CurrentSession.Felhasznalo, EsemenynaploBejegyzesek.Bejelentkezes); } return(sid); }
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)); }