public struRendszer(struRendszer rRendszer) { this.sRendszerTipus = rRendszer.sRendszerTipus; this.sBeepitesiMod = rRendszer.sBeepitesiMod; this.sSin = rRendszer.sSin; this.sTok = rRendszer.sTok; this.nNyilasMagassag = rRendszer.nNyilasMagassag; this.nNyilasSzelesseg = rRendszer.nNyilasSzelesseg; this.nFalVastagsag = rRendszer.nFalVastagsag; this.nSinekSzama = rRendszer.nSinekSzama; this.nSinHossz = rRendszer.nSinHossz; this.nAjtokSzama = rRendszer.nAjtokSzama; this.sNyitasIranyID = rRendszer.sNyitasIranyID; this.nDarab = rRendszer.nDarab; this.dSuly = rRendszer.dSuly; this.dAr = rRendszer.dAr; this.bShowBontas = rRendszer.bShowBontas; this.bShowCalc = rRendszer.bShowCalc; this.rAjto = new struAjto[rRendszer.rAjto.Length]; rRendszer.rAjto.CopyTo(this.rAjto, 0); }
public struSiteVariables(string sMode = "default") { sHiba = null; sCalcID = "AT"; rFej = new struRendfej(); rRendszer = new struRendszer(sMode); rKosar = new struTetel[0]; rBontas = new struTetel[0]; }
public struSiteVariables(struSiteVariables rSV) { this.sHiba = rSV.sHiba; this.sCalcID = rSV.sCalcID; this.rFej = rSV.rFej; this.rRendszer = new struRendszer(rSV.rRendszer); this.rKosar = new struTetel[rSV.rBontas.Length]; this.rBontas = new struTetel[rSV.rBontas.Length]; rSV.rBontas.CopyTo(this.rBontas, 0); }
public static string calculate(ref struSiteVariables rSV) { string sResult = ""; struRendszer rRendszer = rSV.rRendszer; struTetel[] rKosar = new struTetel[0]; if (rRendszer.sRendszerTipus == "sliding_door_external" || rRendszer.sRendszerTipus == "sliding_door_internal" || rRendszer.sRendszerTipus == "swing_door_only_normal" || rRendszer.sRendszerTipus == "swing_door_only_fix" || rRendszer.sRendszerTipus == "screen") { if (rRendszer.sRendszerTipus == "sliding_door_external") { if (rSV.rRendszer.sBeepitesiMod == "P1") { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "110.160.00"; rTetel.dMennyiseg = rRendszer.nSinHossz / 1000 * rRendszer.nSinekSzama; AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = "110.110.00"; rTetel.dMennyiseg = rRendszer.nSinHossz / 1000 * 2; AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = "110.112.00"; rTetel.dMennyiseg = rRendszer.nSinHossz / 1000 * (rRendszer.nSinekSzama - 1); AddTetel(rTetel, ref rKosar); } if (rSV.rRendszer.sBeepitesiMod == "P2") { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "110.160.00"; rTetel.dMennyiseg = rRendszer.nSinHossz / 1000 * rRendszer.nSinekSzama; AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = "110.161.00"; rTetel.dMennyiseg = rRendszer.nSinHossz / 1000 * 2; AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = "6116"; rTetel.dMennyiseg = rRendszer.nSinHossz / 1000 * rRendszer.nSinekSzama; AddTetel(rTetel, ref rKosar); } if (rSV.rRendszer.sBeepitesiMod == "F1") { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "110.160.00"; rTetel.dMennyiseg = rRendszer.nSinHossz / 1000; AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = "110.100.00"; rTetel.dMennyiseg = rRendszer.nSinHossz / 1000; AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = "110.110.00"; rTetel.dMennyiseg = rRendszer.nSinHossz / 1000; AddTetel(rTetel, ref rKosar); } if (rSV.rRendszer.sBeepitesiMod.StartsWith("P")) //sín végzáró elem { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "140.180.00"; rTetel.dMennyiseg = rRendszer.nSinekSzama * 2; AddTetel(rTetel, ref rKosar); } int nFekezok = 0; for (int nAjto = 1; nAjto <= rRendszer.nAjtokSzama; nAjto++) { short nFekezo = 0; Int16.TryParse(rRendszer.rAjto[nAjto].sVasalatID, out nFekezo); nFekezok += nFekezo; } int nFekezosVasalat = nFekezok; int nFekezoNelkuliVasalat = rRendszer.nAjtokSzama * 2 - nFekezosVasalat; if (nFekezosVasalat > 0) { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "430.101.00"; rTetel.dMennyiseg = nFekezosVasalat; AddTetel(rTetel, ref rKosar); } if (nFekezoNelkuliVasalat > 0) { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "430.111.00"; rTetel.dMennyiseg = nFekezoNelkuliVasalat; AddTetel(rTetel, ref rKosar); } if (rSV.rRendszer.sBeepitesiMod.StartsWith("P")) //sín rögzítő csavar szett { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "650.020.11"; rTetel.dMennyiseg = rRendszer.nSinekSzama * Math.Round((decimal)(2 + (rRendszer.nSinHossz / 1000) * 3)); AddTetel(rTetel, ref rKosar); } if (rSV.rRendszer.sBeepitesiMod == "F1") { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "150.000.11"; rTetel.dMennyiseg = rRendszer.nSinekSzama * Math.Round((decimal)(2 + (rRendszer.nSinHossz / 1000) * 3)); AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = "150.010.11"; rTetel.dMennyiseg = rRendszer.nSinekSzama * Math.Round((decimal)(2 + (rRendszer.nSinHossz / 1000) * 3)); AddTetel(rTetel, ref rKosar); } } for (int nAjto = 1; nAjto <= rSV.rRendszer.nAjtokSzama; nAjto++) { struAjto rAjto = rSV.rRendszer.rAjto[nAjto]; if (rSV.rRendszer.sRendszerTipus == "swing_door_only_normal" || rSV.rRendszer.sRendszerTipus == "swing_door_only_fix") { //nyitásirány } struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "ATL-200"; rTetel.dMennyiseg = (rAjto.nSzelesseg + rAjto.nMagassag) / 1000 * 2; AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = "ATL-210"; rTetel.dMennyiseg = (rAjto.nMagassag) / 1000 * 2; AddTetel(rTetel, ref rKosar); if (rSV.rRendszer.sRendszerTipus == "sliding_door_in_wall") //extra profil az ajtó oldalára { rTetel = new struTetel(); rTetel.sCikkszamKalk = "ATL-161"; rTetel.dMennyiseg = (rAjto.nSzelesseg + rAjto.nMagassag) / 1000 * 2; AddTetel(rTetel, ref rKosar); //itt van még valami jobb/bal cucc } //betét rTetel = new struTetel(); rTetel.sCikkszamKalk = rAjto.sBetetID; rTetel.dMennyiseg = (rAjto.nMagassag * rAjto.nSzelesseg) / 1000; //betét felülete AddTetel(rTetel, ref rKosar); //osztó if (rAjto.nOsztokSzama > 0) { rTetel = new struTetel(); rTetel.sCikkszamKalk = "510.331.00"; rTetel.nDarab = rAjto.nOsztokSzama; rTetel.nHosszusag = rAjto.nSzelesseg - 62; rTetel.dMennyiseg = (rTetel.nHosszusag) / 1000 * rTetel.nDarab; AddTetel(rTetel, ref rKosar); } if (!string.IsNullOrEmpty(rAjto.sBetetID)) { rTetel = new struTetel(); rTetel.sCikkszamKalk = rAjto.sBetetID.StartsWith("B5") ? "PUXV5" : "U7X4M"; rTetel.dMennyiseg = (rAjto.nMagassag + rAjto.nSzelesseg) / 1000 * 2; AddTetel(rTetel, ref rKosar); } rTetel = new struTetel(); rTetel.sCikkszamKalk = "U2P"; rTetel.dMennyiseg = rAjto.nMagassag / 1000 * 2; AddTetel(rTetel, ref rKosar); if (rSV.rRendszer.sRendszerTipus == "sliding_door_external" || rSV.rRendszer.sRendszerTipus == "sliding_door_in_wall") { rTetel = new struTetel(); switch (rAjto.sOpciokToloAjtoID) { case "one_side_handle_on_right": rTetel.sCikkszamKalk = "ATL-H1"; rTetel.sMegjegyzes = "jobb"; break; case "one_side_handle_on_left": rTetel.sCikkszamKalk = "ATL-H1"; rTetel.sMegjegyzes = "bal"; break; case "two_side_handle_on_right": rTetel.sCikkszamKalk = "ATL-H2"; rTetel.sMegjegyzes = "jobb"; break; case "two_side_handle_on_left": rTetel.sCikkszamKalk = "ATL-H2"; rTetel.sMegjegyzes = "bal"; break; case "slide_door_lock_on_right": rTetel.sCikkszamKalk = "ATL-H3"; rTetel.sMegjegyzes = "jobb"; break; case "slide_door_lock_on_left": rTetel.sCikkszamKalk = "ATL-H3"; rTetel.sMegjegyzes = "bal"; break; } rTetel.dMennyiseg = 1; AddTetel(rTetel, ref rKosar); } if (rSV.rRendszer.sRendszerTipus == "swing_door_only_normal") { rTetel = new struTetel(); switch (rAjto.sOpciokNyiloAjtoID) { case "0": rTetel.sCikkszamKalk = "ATL-KS"; break; case "1": rTetel.sCikkszamKalk = "ATL-KK"; break; case "2": rTetel.sCikkszamKalk = "ATL-KWC"; break; } rTetel.dMennyiseg = 1; AddTetel(rTetel, ref rKosar); } if (rSV.rRendszer.sRendszerTipus == "sliding_door_external") { rTetel = new struTetel(); switch (rAjto.sOpciokNyiloAjtoID) { case "0": rTetel.sCikkszamKalk = "ATL-SL"; break; case "1": rTetel.sCikkszamKalk = "ATL-FF"; break; case "2": rTetel.sCikkszamKalk = "ATL-SW"; break; case "3": rTetel.sCikkszamKalk = "ATL-SWF"; break; case "4": rTetel.sCikkszamKalk = "ATL-SC"; break; } rTetel.dMennyiseg = 1; AddTetel(rTetel, ref rKosar); } } } //tolóajtó vége //tok if (rSV.rRendszer.sRendszerTipus == "swing_door_with_slim_alu_case" || rSV.rRendszer.sRendszerTipus == "swing_door_with_thin_alu_case") { struAjto rAjto = rRendszer.rAjto[1]; struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "ATL-801"; rTetel.dMennyiseg = ((rRendszer.nNyilasMagassag + 27) * 2 + (rRendszer.nNyilasSzelesseg + 54)) / 1000; AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = "ATL-802"; rTetel.dMennyiseg = ((rRendszer.nNyilasMagassag + 40) * 2 + (rRendszer.nNyilasSzelesseg + 80)) / 1000; AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = rRendszer.sRendszerTipus == "swing_door_with_slim_alu_case" ? "ATL-804" : "ATL-803"; rTetel.dMennyiseg = ((rRendszer.nNyilasMagassag + 40) * 2 + (rRendszer.nNyilasSzelesseg + 80)) / 1000; AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = "ATL-SWJ"; rTetel.dMennyiseg = 1; AddTetel(rTetel, ref rKosar); } //tok vége //gyártási és csomagolási költség if (rRendszer.sRendszerTipus == "sliding_door_external") { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "SERV-SLT"; rTetel.dMennyiseg = 1; AddTetel(rTetel, ref rKosar); rTetel = new struTetel(); rTetel.sCikkszamKalk = "SERV-SL"; rTetel.dMennyiseg = rRendszer.nAjtokSzama; AddTetel(rTetel, ref rKosar); } if (rRendszer.sRendszerTipus == "sliding_door_internal") { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "SERV-FF"; rTetel.dMennyiseg = 1; AddTetel(rTetel, ref rKosar); } if (rRendszer.sRendszerTipus == "swing_door_only_normal") { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "SERV-SW"; rTetel.dMennyiseg = 1; AddTetel(rTetel, ref rKosar); } if (rRendszer.sRendszerTipus == "swing_door_only_fix") { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "SERV-SWF"; rTetel.dMennyiseg = 1; AddTetel(rTetel, ref rKosar); } if (rRendszer.sRendszerTipus == "screen") { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "SERV-SC"; rTetel.dMennyiseg = 1; AddTetel(rTetel, ref rKosar); } if (rRendszer.sRendszerTipus == "swing_door_with_slim_alu_case" || rRendszer.sRendszerTipus == "swing_door_with_thin_alu_case") { struTetel rTetel = new struTetel(); rTetel.sCikkszamKalk = "SERV-SWJ"; rTetel.dMennyiseg = 1; AddTetel(rTetel, ref rKosar); } NameValueCollection nvcCikkKalk = new NameValueCollection(); nvcCikkKalk["CIKKSZAM_KALK"] = ""; nvcCikkKalk["CIKKSZAM_WD"] = ""; nvcCikkKalk["ME"] = ""; nvcCikkKalk["EGYSEGAR"] = ""; rRendszer.dAr = 0; for (int i = 0; i < rKosar.Length; i++) { struTetel rTetel = new struTetel(); rTetel = rKosar[i]; nvcCikkKalk["CIKKSZAM_KALK"] = rTetel.sCikkszamKalk; sResult += getKalkCikk(ref nvcCikkKalk); rTetel.sME = nvcCikkKalk["ME"]; rTetel.sCikkszamKalk = nvcCikkKalk["CIKKSZAM_KALK"]; rTetel.sCikkszamWD = nvcCikkKalk["CIKKSZAM_WD"]; bool bSiker = Decimal.TryParse(nvcCikkKalk["EGYSEGAR"], out rTetel.dEgysegAr); rTetel.dAr = rTetel.dEgysegAr * rTetel.dMennyiseg; rRendszer.dAr += rTetel.dAr; rKosar[i] = rTetel; } /* * for (int i = 0; i < rKosar.Length; i++) //szettek bontása * { * struTetel rTetel = new struTetel(); * rTetel = rKosar[i]; * * if (rTetel.sME == "szet") * { * * NameValueCollection[] nvcSzett = new NameValueCollection[1]; * NameValueCollection nvcSzettCikk = new NameValueCollection(); * * nvcSzettCikk["CIKKSZAM_SZETT"] = rTetel.sCikkszamKalk; * nvcSzettCikk["CIKKSZAM_WD"] = ""; * nvcSzettCikk["MEGNEVEZES"] = ""; * nvcSzettCikk["MENNYISEG"] = ""; * nvcSzettCikk["ME"] = ""; * nvcSzettCikk["E_ATXML81110SE"] = ""; * * nvcSzett[0] = nvcSzettCikk; * * sResult += getSzett(ref nvcSzett); * * rTetel.rBontas = new struTetel[0]; * foreach (NameValueCollection nvcCikk in nvcSzett) * { * struTetel rSzettBontas = new struTetel(); * rSzettBontas.sCikkszamWD = nvcCikk["CIKKSZAM_WD"]; * rSzettBontas.sSzettCikkszam = nvcCikk["CIKKSZAM_SZETT"]; * rSzettBontas.sNev = nvcCikk["MEGNEVEZES"]; * Decimal.TryParse(nvcCikk["MENNYISEG"], out rSzettBontas.dMennyiseg); * rSzettBontas.sME = nvcCikk["ME"]; * * rSzettBontas.sMuveletNev = nvcCikk["E_ATXML81110SE"]; * sResult += AddTetel(rSzettBontas, ref rTetel.rBontas); * } * * rKosar[i] = rTetel; * } * } */ for (int i = 0; i < rKosar.Length; i++) //szettek bontása { struTetel rTetel = rKosar[i]; if (rTetel.sME == "szet") { struTetel[] rSzettBontas = new struTetel[0]; sResult += getSzett(rTetel.sCikkszamKalk, ref rSzettBontas); rTetel.rBontas = rSzettBontas.Length == 0 ? null : rSzettBontas; rKosar[i] = rTetel; } } struTetel[] rBovitettBontas = new struTetel[0]; foreach (struTetel rTetel in rKosar) { if (rTetel.rBontas == null) { AddTetel(rTetel, ref rBovitettBontas); } else { AddTetel(rTetel.rBontas, ref rBovitettBontas); } } for (int i = 0; i < rBovitettBontas.Length; i++) { if (string.IsNullOrEmpty(rBovitettBontas[i].sNev)) { rBovitettBontas[i].sNev = rBovitettBontas[i].sCikkszamKalk; } rBovitettBontas[i].sCikksz = rBovitettBontas[i].sCikkszamWD; } rSV.rKosar = rKosar; rSV.rBontas = rBovitettBontas; rSV.rRendszer = rRendszer; return(sResult); }