public static string AddTetel(struTetel rTetel, ref struTetel[] rBontas) { string sResult = ""; if (rTetel.dMennyiseg > 0) { Array.Resize(ref rBontas, rBontas.Length + 1); rBontas[rBontas.Length - 1] = rTetel; } return(sResult); }
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); }
public static string getSzett(string sSzettCikkszam, ref struTetel[] rSzettBontas) { bool bCikkszamFound = false; string sResult = ""; SqlConnection myConnection = new SqlConnection(sMSCalcConnection); try { myConnection.Open(); } catch (Exception ex) { sResult += " Database connection error: " + ex.ToString() + ";"; } string sFields = "CIKKSZAM_WD, MENNYISEG, ME, E_ATXML81110SE"; try { NameValueCollection[] nvcSzettOut = new NameValueCollection[1]; SqlDataReader myReader = null; SqlCommand myCommand = new SqlCommand("SELECT top (20) " + sFields + " FROM szett_bontas where cikkszam_szett = '" + sSzettCikkszam + "'", myConnection); myReader = myCommand.ExecuteReader(); while (myReader.Read()) { bCikkszamFound = true; int i = 0; struTetel rTetel = new struTetel(); rTetel.sSzettCikkszam = sSzettCikkszam; rTetel.sCikkszamWD = (string)myReader["CIKKSZAM_WD"]; rTetel.dMennyiseg = (decimal)myReader["MENNYISEG"]; rTetel.sME = (string)myReader["ME"]; Array.Resize(ref rSzettBontas, i + 1); rSzettBontas[i] = rTetel; i++; } } catch (Exception ex) { sResult += " Database query error: " + ex.ToString() + ";"; } try { myConnection.Close(); } catch (Exception ex) { sResult += " Database close error: " + ex.ToString() + ";"; } if (!bCikkszamFound) { sResult += " Product ID not found in database: " + sSzettCikkszam + ";"; } return(sResult); }