Example #1
0
        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);
        }
Example #2
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);
        }
Example #3
0
        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);
        }