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); }
private static UgyfelterLogDto Calc(Ugyfelterlog entity) { var result = ObjectUtils.Convert <Ugyfelterlog, UgyfelterLogDto>(entity); result.Ugyfelnev = entity.UgyfelkodNavigation.Nev; result.Ugyfelcim = UgyfelBll.Cim(entity.UgyfelkodNavigation); return(result); }
public static async Task <UgyfelterDto> UgyfelterCheckAsync(ossContext context, IHubContext <OssHub> hubcontext, IConfiguration config, string linkparam) { const string uh = "Ügyféltér hiba {0} - értesítse a GridSolar sales-t!"; UgyfelterParam up; try { up = JsonConvert.DeserializeObject <UgyfelterParam>(StringCipher.Decrypt(linkparam, edKey)); } catch { throw new Exception(string.Format(uh, 1)); } // adott particióban létezi-e az ügyfél a kiküldési kóddal await UgyfelDal.UgyfelterCheckAsync(context, up.Particiokod, up.Ugyfelkod, up.Kikuldesikod); var result = new UgyfelterDto(); try { result.sid = await LogonBll.BejelentkezesAsync(context, hubcontext, config.GetValue <string>("Ugyfelter:user"), Crypt.MD5Hash(config.GetValue <string>("Ugyfelter:password")), "", "", ""); } catch { throw new Exception(string.Format(uh, 2)); } // az Ügyféltér usernek az ügyfél particióját kell tudni választani var csoport = (await LogonBll.SzerepkorokAsync(context, result.sid)).Where(s => s.Particiokod == up.Particiokod).ToList(); if (csoport.Count != 1) { throw new Exception(string.Format(uh, 3)); } await LogonBll.SzerepkorValasztasAsync(context, result.sid, csoport[0].Particiokod, csoport[0].Csoportkod); // ügyféltér log await UgyfelterLogDal.AddAsync(context, new Models.Ugyfelterlog { Ugyfelkod = up.Ugyfelkod }); result.ugyfelDto = await UgyfelBll.GetAsync(context, result.sid, up.Ugyfelkod); result.lstProjektDto = (await ProjektBll.SelectAsync(context, result.sid, 0, int.MaxValue, 0, new List <SzMT> { new SzMT { Szempont = Szempont.UgyfelKod, Minta = up.Ugyfelkod.ToString() } })).Item1; return(result); }
private static ProjektDto Calc(Models.Projekt entity) { var result = ObjectUtils.Convert<Models.Projekt, ProjektDto>(entity); result.Penznem = entity.PenznemkodNavigation.Penznem1; result.Ugyfelnev = entity.UgyfelkodNavigation.Nev; result.Ugyfelcim = UgyfelBll.Cim(entity.UgyfelkodNavigation); result.Ugyfeltelefonszam = entity.UgyfelkodNavigation.Telefon; result.Ugyfelemail = entity.UgyfelkodNavigation.Email; return result; }
private static IratDto Calc(Models.Irat entity) { var result = ObjectUtils.Convert <Models.Irat, IratDto>(entity); result.Irattipus = entity.IrattipuskodNavigation.Irattipus1; if (entity.UgyfelkodNavigation != null) { result.Ugyfelnev = entity.UgyfelkodNavigation.Nev; result.Ugyfelcim = UgyfelBll.Cim(entity.UgyfelkodNavigation); } return(result); }
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); }
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)); }
public static StartupResult Get(ossContext context, string sid) { SessionBll.Check(context, sid); var result = new StartupResult { Afakulcs_Grid = AfakulcsBll.GridColumns(), Afakulcs_Reszletek = AfakulcsBll.ReszletekColumns(), Felhasznalo_Grid = FelhasznaloBll.GridColumns(), Felhasznalo_Reszletek = FelhasznaloBll.ReszletekColumns(), Fizetesimod_Grid = FizetesimodBll.GridColumns(), Fizetesimod_Reszletek = FizetesimodBll.ReszletekColumns(), Helyseg_Grid = HelysegBll.GridColumns(), Helyseg_Reszletek = HelysegBll.ReszletekColumns(), Irattipus_Grid = IrattipusBll.GridColumns(), Irattipus_Reszletek = IrattipusBll.ReszletekColumns(), Me_Grid = MennyisegiegysegBll.GridColumns(), Me_Reszletek = MennyisegiegysegBll.ReszletekColumns(), Penznem_Grid = PenznemBll.GridColumns(), Penznem_Reszletek = PenznemBll.ReszletekColumns(), Termekdij_Grid = TermekdijBll.GridColumns(), Termekdij_Reszletek = TermekdijBll.ReszletekColumns(), Tevekenyseg_Grid = TevekenysegBll.GridColumns(), Tevekenyseg_Reszletek = TevekenysegBll.ReszletekColumns(), Cikk_Grid = CikkBll.GridColumns(), BeszerzesKivet_Grid = CikkBll.BeszerzesKivetGridColumns(), Cikk_Reszletek = CikkBll.ReszletekColumns(), Ugyfel_Grid = UgyfelBll.GridColumns(), Ugyfel_Reszletek = UgyfelBll.ReszletekColumns(), Projekt_Grid = ProjektBll.GridColumns(), Projekt_Reszletek = ProjektBll.ReszletekColumns(), Projektjegyzet_Grid = ProjektJegyzetBll.GridColumns(), Projektjegyzet_Reszletek = ProjektJegyzetBll.ReszletekColumns(), Szamlazasirend_Grid = SzamlazasiRendBll.GridColumns(), Szamlazasirend_Reszletek = SzamlazasiRendBll.ReszletekColumns(), Irat_Grid = IratBll.GridColumns(), Irat_Reszletek = IratBll.ReszletekColumns(), Csoport_Grid = CsoportBll.GridColumns(), Csoport_Reszletek = CsoportBll.ReszletekColumns(), Ajanlatkeres_Grid = AjanlatkeresBll.GridColumns(), Ajanlatkeres_Reszletek = AjanlatkeresBll.ReszletekColumns(), Penztar_Grid = PenztarBll.GridColumns(), Penztar_Reszletek = PenztarBll.ReszletekColumns(), Penztartetel_Grid = PenztarTetelBll.GridColumns(), Penztartetel_Reszletek = PenztarTetelBll.ReszletekColumns(), Kifizetes_Grid = KifizetesBll.GridColumns(), Kifizetes_Reszletek = KifizetesBll.ReszletekColumns(), Dokumentum_Grid = DokumentumBll.GridColumns(), Dokumentum_Reszletek = DokumentumBll.ReszletekColumns(), Volume_Grid = VolumeBll.GridColumns(), Volume_Reszletek = VolumeBll.ReszletekColumns(), Ugyfelterlog_Grid = UgyfelterLogBll.GridColumns(), Ugyfelterlog_Reszletek = UgyfelterLogBll.ReszletekColumns(), }; return(result); }
public async Task <byte[]> ProjektAsync(ossContext context, string sid, int statusz, string nev) { SessionBll.Check(context, sid); await CsoportDal.JogeAsync(context, JogKod.LEKERDEZES); SpreadsheetInfo.SetLicense(licKey); BeginReport("Projektek"); var rowStart = 3; var rowNum = rowStart; Fejlec(rowNum, 0, "No"); Fejlec(rowNum, 1, "Műszaki állapot"); Fejlec(rowNum, 2, "Ügyfél"); Fejlec(rowNum, 3, "Cím"); Fejlec(rowNum, 4, "Telepítési cím"); Fejlec(rowNum, 5, "Telefon"); Fejlec(rowNum, 6, "Email"); Fejlec(rowNum, 7, "A projekt jellege"); Fejlec(rowNum, 8, "Inverter"); Fejlec(rowNum, 9, ""); Fejlec(rowNum, 10, "Napelem"); Fejlec(rowNum, 11, ""); Fejlec(rowNum, 12, "Méret, kW"); ++rowNum; var riporttetelek = await RiportDal.ProjektAsync(context, statusz); foreach (var tetel in riporttetelek) { Mezo(rowNum, 0, tetel.Projektkod); Mezo(rowNum, 1, tetel.Muszakiallapot); Mezo(rowNum, 2, tetel.UgyfelkodNavigation.Nev); Mezo(rowNum, 3, UgyfelBll.Cim(tetel.UgyfelkodNavigation)); Mezo(rowNum, 4, tetel.Telepitesicim); Mezo(rowNum, 5, tetel.UgyfelkodNavigation.Telefon); Mezo(rowNum, 6, tetel.UgyfelkodNavigation.Email); Mezo(rowNum, 7, tetel.Projektjellege); Mezo(rowNum, 8, tetel.Inverter); Mezo(rowNum, 9, tetel.Inverterallapot); Mezo(rowNum, 10, tetel.Napelem); Mezo(rowNum, 11, tetel.Napelemallapot); Mezo(rowNum, 12, tetel.Dckw); ++rowNum; } AutosizeColumns(rowStart); Mezo(0, 0, "Projektek: " + nev); Mezo(1, 0, "Dátum: " + DateTime.Now.Date.ToShortDateString()); return(EndReport()); }