예제 #1
0
        /// <summary>
        /// Updates the AllRep flag on an order
        /// (This flag indicates that all reparators
        /// can log in. The normal process is that
        /// there is a list (in the shReparator table) with
        /// the reparators that can log in on a certain order).
        /// </summary>
        /// <param name="VartOrdernr"></param>
        /// <param name="allRep"></param>
        /// <param name="ident"></param>
        /// <returns></returns>
        /// 2018-02-08 KJBO
        public ServHuvCL updateAllRep(string VartOrdernr, bool allRep, string ident)
        {
            ServHuvCL   shc      = new ServHuvCL();
            CReparator  cr       = new CReparator();
            ReparatorCL repIdent = cr.getReparator(ident);


            string sSql = " update servicehuvud "
                          + " set AllRep = :AllRep "
                          + " where vart_ordernr = :vart_ordernr ";
            NxParameterCollection np = new NxParameterCollection();

            np.Add("AllRep", allRep);
            np.Add("vart_ordernr", VartOrdernr);

            string errText = "";
            int    iRc     = cdb.updateData(sSql, ref errText, np);

            if (errText != "")
            {
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                shc.ErrCode    = -100;
                shc.ErrMessage = errText;
                return(shc);
            }
            shc.Vart_ordernr = VartOrdernr;
            return(getServiceHuvud(shc, ident));
        }
예제 #2
0
        public DataTable getData(string sSql, string ident, ref ErrorCL err, NxParameterCollection pc)
        {
            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                err.ErrCode    = -10;
                err.ErrMessage = "Ogiltigt login";
                return(null);
            }

            string    errText = "";
            DataTable dt      = getData(sSql, ref errText, pc);

            if (errText != "")
            {
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                err.ErrMessage = errText;
                err.ErrCode    = -100;
                return(null);
            }
            return(dt);
        }
예제 #3
0
        /// <summary>
        /// Check if an order is open for editing
        /// The return value is a string, 1 = open, -1 = closed or an error message
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="VartOrdernr"></param>
        /// <returns>1 - Open -1 - Closed or an error message</returns>
        public string isOpen(string ident, string VartOrdernr)
        {
            CReparator cr = new CReparator();

            int identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                return("Ogiltigt login");
            }


            string sSql = " select Coalesce(OpenForApp, false) as OpenForApp, "
                          + " Coalesce(Godkand, true) as Godkand "
                          + " from servicehuvud "
                          + " where vart_ordernr = :vart_ordernr ";

            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("vart_ordernr", VartOrdernr);

            string    errText = "";
            DataTable dt      = cdb.getData(sSql, ref errText, pc);

            int errCode = -100;

            if (errText == "" && dt.Rows.Count == 0)
            {
                errText = "Det finns ingen order med aktuellt ordernr";
                errCode = -10;
                return(errText);
            }

            if (errText != "")
            {
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                ServiceHuvudCL sh = new ServiceHuvudCL();
                sh.ErrCode    = errCode;
                sh.ErrMessage = errText;
            }


            DataRow dr          = dt.Rows[0];
            Boolean bOpenForApp = Convert.ToBoolean(dr["OpenForApp"]);
            Boolean bGodkand    = Convert.ToBoolean(dr["Godkand"]);

            if (bOpenForApp && !bGodkand)
            {
                return("1");
            }
            return("-1");
        }
예제 #4
0
        /// <summary>
        /// Count reparators for a certain order
        /// Returns number of reparators or -1 for error
        /// </summary>
        /// <param name="vart_ordernr"></param>
        /// <param name="ident"></param>
        /// <returns></returns>
        public int countReparator(string vart_ordernr, string ident)
        {
            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                return(-1);
            }
            return(countReparator(vart_ordernr));
        }
예제 #5
0
        /*
         * Version 0.96:
         * 2016-06-14 Logging enabled. Bug fixes.
         *
         */

        /// <summary>
        /// Returns database and API versions
        /// </summary>
        /// <param name="ident"></param>
        /// <returns></returns>
        public VersionCL getVersion(string ident)
        {
            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            VersionCL v = new VersionCL();

            if (identOK == -1)
            {
                v.ErrCode    = -10;
                v.ErrMessage = "Ogiltigt login";
                v.dbVersion  = 0;
                v.APIVersion = "";
                return(v);
            }

            string sSql = " SELECT db_version "
                          + " FROM \"Version\" ";
            string    errSt = "";
            CDB       cdb   = new CDB();
            DataTable dt    = cdb.getData(sSql, ref errSt);

            if (errSt != "")
            {
                if (errSt.Length > 2000)
                {
                    errSt = errSt.Substring(1, 2000);
                }
                v.dbVersion  = 0;
                v.APIVersion = "";
                v.ErrCode    = -100;
                v.ErrMessage = "Databasfel : " + errSt;
                return(v);
            }

            if (dt.Rows.Count > 0)
            {
                DataRow dr = dt.Rows[0];
                v.dbVersion  = Convert.ToInt32(dr["db_version"]);
                v.APIVersion = apiVersion;
                v.ErrCode    = 0;
                v.ErrMessage = "";
                return(v);
            }

            v.dbVersion  = 0;
            v.APIVersion = "";
            v.ErrCode    = 0;
            v.ErrMessage = "Ingen information tillgänglig";

            return(v);
        }
예제 #6
0
        /// <summary>
        /// Identifies a servicehuvud by sh.vart_ordernr
        /// Retrieves the matching order and return
        /// </summary>
        /// <param name="sh"></param>
        /// <param name="ident"></param>
        /// <returns>ServHuvCL</returns>
        public ServHuvCL getServiceHuvud(ServHuvCL sh, string ident)
        {
            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                ServHuvCL sh2 = new ServHuvCL();
                sh2.ErrCode    = -10;
                sh2.ErrMessage = "Ogiltigt login";
                return(sh2);
            }

            return(getServiceHuvud(sh));
        }
예제 #7
0
        /// <summary>
        /// Returns a list of momskoder
        /// This is used by Pyramid
        /// </summary>
        /// <param name="ident"></param>
        /// <returns></returns>
        /// 2018-04-27 KJBO Indentive AB
        public List <MomskodCL> getMomskoder(string ident)
        {
            List <MomskodCL> momsList = new List <MomskodCL>();
            CReparator       cr       = new CReparator();
            int identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                MomskodCL m = new MomskodCL();
                m.ErrCode    = -10;
                m.ErrMessage = "Ogiltigt login";
                momsList.Add(m);
                return(momsList);
            }

            momsList.Add(new MomskodCL {
                Momskod = "Normal moms", MomskodId = 1, ErrCode = 0, ErrMessage = ""
            });
            momsList.Add(new MomskodCL {
                Momskod = "Omvänd skattskyldighet", MomskodId = 2, ErrCode = 0, ErrMessage = ""
            });
            return(momsList);
        }
예제 #8
0
        /// <summary>
        /// Validate, insert or update one servicehuvud
        /// </summary>
        /// <param name="sh"></param>
        /// <param name="ident"></param>
        /// <returns>Newly created servicehuvud</returns>
        // 2018-01-29 KJBO
        public ServHuvCL saveServHuv(ServHuvCL sh, string ident)
        {
            log.log("saveServHuv startas", "0");

            ServHuvCL  shc     = new ServHuvCL();
            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                shc.ErrCode    = -10;
                shc.ErrMessage = "Ogiltigt login";
                return(shc);
            }
            log.log("Efter koll av identitet", "0");

            ReparatorCL repIdent = cr.getReparator(ident);

            if (sh.OrderAdmin.Length == 0)
            {
                shc.ErrCode    = -6;
                shc.ErrMessage = "Orderadministratör måste väljas";
                log.log("Orderadministratör måste väljas", "0");
                return(shc);
            }

            ReparatorCL rep = cr.getReparatorFromID(sh.OrderAdmin);

            if (rep == null)
            {
                shc.ErrCode    = -2;
                shc.ErrMessage = "Felaktig orderadmin";
                log.log("Felaktig admin", "0");
                return(shc);
            }

            if (sh.Vart_ordernr.Length == 0)
            {
                shc.ErrCode    = -3;
                shc.ErrMessage = "Vårt ordernummer måste anges";
                return(shc);
            }

            if (sh.Ert_ordernr.Length == 0)
            {
                shc.ErrCode    = -4;
                shc.ErrMessage = "Ert ordernummer måste anges";
                return(shc);
            }

            if (sh.Kund == "")
            {
                shc.ErrCode    = -5;
                shc.ErrMessage = "Kund måste väljas";
                return(shc);
            }

            string ErrTxt = "";
            int    rc     = validateServHuv(sh, ref ErrTxt);

            log.log("ValidateServHuv returnerar : " + rc.ToString(), "");
            if (ErrTxt != "")
            {
                shc.ErrCode    = -101;
                shc.ErrMessage = ErrTxt;
                log.log("Feltext från validateServHuv " + ErrTxt, "0");
                return(shc);
            }
            if (rc == -1)
            {
                shc.ErrCode    = -7;
                shc.ErrMessage = "Vårt ordernummer används redan i systemet";
                return(shc);
            }

            if (sh.FromDate > sh.ToDate)
            {
                shc.ErrCode    = -8;
                shc.ErrMessage = "Felaktigt datumintervall";
                return(shc);
            }

            CExportToPyramid expPyr = new CExportToPyramid();

            if (CConfig.sendToPyramid == 1)
            {
                shc.ErrMessage = expPyr.checkPyramidAPIAvailable();
                if (shc.ErrMessage != "")
                {
                    shc.ErrCode = -1305;
                    if (shc.ErrMessage.Length > 2000)
                    {
                        shc.ErrMessage = shc.ErrMessage.Substring(1, 2000);
                    }
                    return(shc);
                }
            }
            string sSql = "";

            if (sh.IsNew)
            {
                sSql = getInsertSQL();
            }
            else
            {
                sSql = getUpdateSQL();
            }
            NxParameterCollection np = new NxParameterCollection();

            setParameters(np, sh, repIdent.AnvID);
            log.log("Efter set parameters ", "0");
            string errText = "";
            int    iRc     = cdb.updateData(sSql, ref errText, np);

            log.log("Feltext från updateData " + errText, "0");
            if (errText != "")
            {
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                shc.ErrCode    = -100;
                shc.ErrMessage = errText;
                return(shc);
            }

            iRc = saveWeeks(sh, repIdent.AnvID, ref errText);
            log.log("SaveWeeks returnerar " + iRc.ToString(), "0");
            if (iRc != 1)
            {
                shc.ErrCode    = -100;
                shc.ErrMessage = errText;
                return(shc);
            }
            string godkand = "N";

            if (sh.Godkand)
            {
                godkand = "J";
            }
            log.log("Godkänd är " + godkand, "0");
            if (sh.Godkand)
            {
                CTidRed ctr = new CTidRed();
                ctr.closeAllWeeksForOrder(sh.Vart_ordernr);
            }
            log.log("Före sendToPyramid", "0");
            log.log("sentToPyramid returnerar " + CConfig.sendToPyramid.ToString(), "0");

            if (CConfig.sendToPyramid == 1 && shallSendToPyramid(sh.Vart_ordernr))
            {
                ErrorCL errCl = null;
                log.log("Före  exportToPyramid", "0");
                errCl = expPyr.exportOrder(sh);
                log.log("Efter  exportToPyramid", "0");


                if (errCl.ErrCode != 0)
                {
                    shc.ErrCode    = errCl.ErrCode;
                    shc.ErrMessage = errCl.ErrMessage;
                    return(shc);
                }


                // 2018-05-17
                if (sh.Godkand && isPyramidOrder(sh.Vart_ordernr))
                {
                    // 2018-11-09
                    // To be sure that all possible errors when creating reservation to Pyramid
                    // is handled and resent if possible
                    errCl = expPyr.ensureOrderArtIsReserved(sh.Vart_ordernr);
                    if (errCl.ErrCode != 0)
                    {
                        shc.ErrCode    = errCl.ErrCode;
                        shc.ErrMessage = errCl.ErrMessage;
                        return(shc);
                    }

                    errCl = expPyr.exportTime(sh.Vart_ordernr);
                    if (errCl.ErrCode != 0)
                    {
                        shc.ErrCode    = errCl.ErrCode;
                        shc.ErrMessage = errCl.ErrMessage;
                        return(shc);
                    }


                    errCl = expPyr.exportReservdel(sh.Vart_ordernr);
                    if (errCl.ErrCode != 0)
                    {
                        shc.ErrCode    = errCl.ErrCode;
                        shc.ErrMessage = errCl.ErrMessage;
                        return(shc);
                    }

                    errCl = expPyr.exportReservdelKat1(sh.Vart_ordernr);
                    if (errCl.ErrCode != 0)
                    {
                        shc.ErrCode    = errCl.ErrCode;
                        shc.ErrMessage = errCl.ErrMessage;
                        return(shc);
                    }
                }

                expPyr.setOrderStatus(sh.Vart_ordernr);
                int newStatus = sh.Godkand ? 1 : 0;
                expPyr.addToPyramidChange(sh.Vart_ordernr, repIdent.AnvID, newStatus);
                resendToPyramid();
            }


            if (sh.IsNew)
            {
                CServRad csr = new CServRad();

                string err = csr.createFirstRow(sh.Vart_ordernr, sh.Kund);
                if (err != "")
                {
                    shc.ErrCode    = -1201;
                    shc.ErrMessage = err;
                    return(shc);
                }
            }


            ServHuvCL shRet = getServiceHuvud(sh, ident);

            log.log("getServiceHuvud har meddelande " + shRet.ErrMessage, "0");
            return(shRet);
        }
예제 #9
0
        /// <summary>
        /// Function to get a list of picture categories
        /// The step parameter indicates the step in the
        /// documentation where the different categories are available
        /// as follows
        /// 1 : Check before service
        /// 2 : Service job done
        /// 3 : Other remarks
        /// 4 : Spare parts
        /// 0 : Anywhere (no matter where the picture is taken i the process)
        ///
        /// If Step is set to 0 you get all possible categories in return
        /// Otherwise you get the categories for the current step as well as
        /// category all categories with step 0.
        /// Note that it is required with 2 pictures (of differend categories)
        /// for step no 1 in the process
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="Step"></param>
        /// <returns></returns>
        public List <PictCatCL> getPictCategories(string ident, int Step)
        {
            List <PictCatCL> pcl = new List <PictCatCL>();
            CReparator       cr  = new CReparator();
            int identOK          = cr.checkIdent(ident);

            if (identOK == -1)
            {
                PictCatCL p = new PictCatCL();
                p.ErrCode    = -10;
                p.ErrMessage = "Ogiltigt login";
                pcl.Add(p);
                return(pcl);
            }

            NxParameterCollection pc = new NxParameterCollection();

            // if argument Step = 0 then return all rows
            // otherwise return all rows matching the current step
            // and all steps with value of 0
            string sSql = " SELECT PictCatID, PictCatName, Step "
                          + " FROM PictCategory ";

            if (Step > 0)
            {
                sSql += " where step = :step "
                        + " or step = 0 ";


                pc.Add("step", Step);
            }


            string errText = "";

            DataTable dt = cdb.getData(sSql, ref errText, pc);

            if (errText != "")
            {
                PictCatCL p = new PictCatCL();
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                p.ErrCode    = -100;
                p.ErrMessage = errText;
                pcl.Add(p);
                return(pcl);
            }

            foreach (DataRow dr in dt.Rows)
            {
                PictCatCL p = new PictCatCL();
                p.PictCatID   = Convert.ToInt32(dr["PictCatID"]);
                p.PictCatName = dr["PictCatName"].ToString();
                p.Step        = Convert.ToInt16(dr["Step"]);
                p.ErrCode     = 0;
                p.ErrMessage  = "";
                pcl.Add(p);
            }

            return(pcl);
        }
예제 #10
0
        /// <summary>
        /// Returns the selectable gasket levels
        /// </summary>
        /// <param name="ident"></param>
        /// <returns></returns>
        /// 2018-08-21 KJBO
        public List <KeyValuePair <int, string> > gGetGasketLevels(string ident)
        {
            CReparator rep = new CReparator();

            return(rep.gGetGasketLevels(ident));
        }
예제 #11
0
        /// <summary>
        /// Save access level for gasket handling
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="reparator"></param>
        /// <returns></returns>
        /// 2018-08-21 KJBO
        public ReparatorCL saveGasketLevel(string ident, ReparatorCL reparator)
        {
            CReparator rep = new CReparator();

            return(rep.saveGasketLevel(ident, reparator));
        }
예제 #12
0
        /// <summary>
        /// Determines if the AnvID is administrator for the current order
        /// If so the function will return the administrator RepCat.
        /// Otherwise it will return the default RepKat.
        /// repKat
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="AnvID"></param>
        /// <param name="VartOrdernr"></param>
        /// <returns></returns>
        public RepKatCL getDefaultRepKat(string ident, string AnvID, string VartOrdernr)
        {
            CReparator cr = new CReparator();

            return(cr.getDefaultRepKat(ident, AnvID, VartOrdernr));
        }
예제 #13
0
        /// <summary>
        /// Get all reparators
        /// or just the reparator with AnvID
        /// </summary>
        /// <returns>List of reparators</returns>
        /// 2018-08-21 KJBO
        public List <ReparatorCL> gGetReparators(string ident, string AnvID)
        {
            CReparator rep = new CReparator();

            return(rep.getReparators(ident, AnvID));
        }
예제 #14
0
        /// <summary>
        /// Saves a reservdel to database.
        /// If ReservNr = 0 then the method
        /// assumes that this is a new row to be added
        /// Otherwise an update is issued
        /// </summary>
        /// <param name="ident">Identity</param>
        /// <param name="reservdel">ReservdelCL</param>
        /// <returns>The new created or updated reservdel</returns>
        //  2016-02-10 KJBO
        public ReservdelCL saveReservdel(string ident, ReservdelCL reservdel)
        {
            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            ReservdelCL retRes = new ReservdelCL();

            if (identOK == -1)
            {
                retRes.ErrCode    = -10;
                retRes.ErrMessage = "Ogiltigt login";
                return(retRes);
            }

            // Validate that order is open for editing
            CServiceHuvud ch    = new CServiceHuvud();
            string        sOpen = ch.isOpen(ident, reservdel.VartOrdernr);

            if (sOpen != "1")
            {
                {
                    retRes.ErrCode = -10;
                    if (sOpen == "-1")
                    {
                        retRes.ErrMessage = "Order är stängd för inmatning";
                    }
                    else
                    {
                        retRes.ErrMessage = sOpen;
                    }
                    return(retRes);
                }
            }


            int valid = validateReservdel(reservdel);

            if (valid == -1)
            {
                retRes.ErrCode    = -1;
                retRes.ErrMessage = "Felaktig serviceorder";
                return(retRes);
            }
            if (valid == -10)
            {
                retRes.ErrCode    = -1;
                retRes.ErrMessage = "Fel vid kontroll av reservdel";
                return(retRes);
            }

            if (valid == -2)
            {
                retRes.ErrCode    = -1;
                retRes.ErrMessage = "Reservdel finns inte";
                return(retRes);
            }

            if (valid == -3)
            {
                retRes.ErrCode    = -1;
                retRes.ErrMessage = "Egen reservdel måste ha en benämning";
                return(retRes);
            }

            if (valid == -4)
            {
                retRes.ErrCode    = -1;
                retRes.ErrMessage = "Det finns ingen reservdel på ordernr : " + reservdel.VartOrdernr + "rad : " + reservdel.Radnr.ToString() + " reservdelsrad : " + reservdel.ReservNr.ToString();
                return(retRes);
            }

            string sSql    = "";
            string errText = "";
            int    errCode = 0;

            // This is a new reservdel
            if (reservdel.ReservNr == 0)
            {
                reservdel.ReservNr = getNextReservNr(reservdel);
                sSql = getInsertSQL();
            }
            else
            {
                sSql = getUpdateSQL();
            }


            AddOrDeleteReservdelPyr(reservdel, true, ref errText);
            ReparatorCL           rep = cr.getReparator(ident);
            NxParameterCollection np  = new NxParameterCollection();

            setParameters(np, reservdel, rep.AnvID);

            int iRc = cdb.updateData(sSql, ref errText, np);


            if (errText == "")
            {
                AddOrDeleteReservdelPyr(reservdel, false, ref errText);
                if (errText != "")
                {
                    errText = "Fel vid anrop till addToReservdelPyr. Felmeddelande : " + errText;
                    errCode = -1303;
                }
            }
            if (errText != "")
            {
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                if (errCode == 0)
                {
                    retRes.ErrCode = -100;
                }
                else
                {
                    retRes.ErrCode = errCode;
                }
                retRes.ErrMessage = errText;
                return(retRes);
            }

            // 2018-05-17 KJBO Check if this is a pyramidOrder
            CMServHuv shuv = new CMServHuv();

            if (shuv.isPyramidOrder(reservdel.VartOrdernr))
            {
                ErrorCL errCl = checkOutIfNeeded(ident, reservdel);
                if (errCl.ErrMessage != "")
                {
                    if (errText.Length > 2000)
                    {
                        errText = errText.Substring(1, 2000);
                    }

                    retRes.ErrCode    = errCl.ErrCode;
                    retRes.ErrMessage = errCl.ErrMessage;
                    return(retRes);
                }



                CompactStore.CCompactStore store = new CompactStore.CCompactStore();
                errCl = store.genCompStoreData(ident, reservdel.VartOrdernr);
                if (errCl.ErrMessage != "" && errCl.ErrCode != 1)
                {
                    if (errText.Length > 2000)
                    {
                        errText = errText.Substring(1, 2000);
                    }

                    retRes.ErrCode    = errCl.ErrCode;
                    retRes.ErrMessage = errCl.ErrMessage;
                    return(retRes);
                }
            }



            return(getReservdel(ident, reservdel.VartOrdernr, reservdel.Radnr, reservdel.ReservNr));
        }
예제 #15
0
        /// <summary>
        /// Get all ventils for one customer
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="KundID"></param>
        /// <returns></returns>
        public List <VentilCL> getVentilsForCust(string ident, string KundID, string position, string IDnr, string ventiltyp, string fabrikat, string anlaggningsnr)
        {
            List <VentilCL> vl = new List <VentilCL>();

            CReparator cr = new CReparator();

            int identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                VentilCL v = new VentilCL();
                v.ErrCode    = -10;
                v.ErrMessage = "Ogiltigt login";
                vl.Add(v);
                return(vl);
            }


            string sSql = " SELECT v.ventil_id, v.ventilkategori, v.kund_id, v.\"position\", v.fabrikat, v.ventiltyp, v.id_nr, v.pn, v.pn2, v.dn, v.dn2, "
                          + " v.oppningstryck, v.stalldonstyp, v.stalldon_id_nr, v.stalldon_fabrikat, v.stalldon_artnr, v.lagesstallartyp, "
                          + " v.lagesstall_id_nr, v.lagesstall_fabrikat, v.avdelning, v.anlaggningsnr,  "
                          + "  v.forra_comment, vk.ventilkategori as ventilkategori_namn "
                          + ", v.plan, v.rum, v.insideDiameter, v.outsideDiameter  "
                          + " FROM ventil v "
                          + " join ventilkategori vk on v.ventilkategori = vk.ventilkat_id "
                          + " where v.kund_id = :pKundID "
                          + " and upper(coalesce(v.\"position\",'')) like upper(:position) "
                          + " and upper(coalesce(v.id_nr,'')) like upper(:id_nr) "
                          + " and upper(coalesce(v.ventiltyp,'')) like upper(:ventiltyp) "
                          + " and upper(coalesce(v.fabrikat,'')) like upper(:fabrikat) "
                          + " and upper(coalesce(v.anlaggningsnr,'')) like upper(:anlaggningsnr) ";

            NxParameterCollection np = new NxParameterCollection();

            np.Add("pKundID", KundID);
            np.Add("position", CCommonFunc.addWildCard(position));
            np.Add("ID_nr", CCommonFunc.addWildCard(IDnr));
            np.Add("ventiltyp", CCommonFunc.addWildCard(ventiltyp));
            np.Add("fabrikat", CCommonFunc.addWildCard(fabrikat));
            np.Add("anlaggningsnr", CCommonFunc.addWildCard(anlaggningsnr));

            string errText = "";

            DataTable dt = cdb.getData(sSql, ref errText, np);

            int errCode = -100;

            if (errText == "" && dt.Rows.Count == 0)
            {
                errText = "Det finns inga ventiler för aktuell kund";
                errCode = 0;
            }

            if (errText != "")
            {
                VentilCL v = new VentilCL();
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                v.ErrCode    = errCode;
                v.ErrMessage = errText;
                vl.Add(v);
                return(vl);
            }

            foreach (DataRow dr in dt.Rows)
            {
                VentilCL vr = new VentilCL();
                vr.VentilID       = dr["ventil_id"].ToString();
                vr.VentilkatID    = Convert.ToInt16(dr["ventilkategori"]);
                vr.Ventilkategori = dr["ventilkategori_namn"].ToString();
                vr.KundID         = dr["kund_id"].ToString();
                vr.Position       = dr["position"].ToString();
                vr.Fabrikat       = dr["fabrikat"].ToString();
                vr.Ventiltyp      = dr["ventiltyp"].ToString();
                vr.IdNr           = dr["id_nr"].ToString();
                vr.Pn             = dr["pn"].ToString();
                vr.Pn2            = dr["pn2"].ToString();
                vr.Dn             = dr["dn"].ToString();
                vr.Dn2            = dr["dn2"].ToString();
                if (dr["oppningstryck"] == DBNull.Value)
                {
                    vr.Oppningstryck = 0;
                }
                else
                {
                    vr.Oppningstryck = Convert.ToDecimal(dr["oppningstryck"]);
                }
                vr.Stalldonstyp       = dr["stalldonstyp"].ToString();
                vr.StalldonIDNr       = dr["stalldon_id_nr"].ToString();
                vr.StalldonFabrikat   = dr["stalldon_fabrikat"].ToString();
                vr.StalldonArtnr      = dr["stalldon_artnr"].ToString();
                vr.Lagesstallartyp    = dr["lagesstallartyp"].ToString();
                vr.LagesstallIDNr     = dr["lagesstall_id_nr"].ToString();
                vr.LagesstallFabrikat = dr["lagesstall_fabrikat"].ToString();
                vr.Avdelning          = dr["avdelning"].ToString();
                vr.Anlaggningsnr      = dr["anlaggningsnr"].ToString();
                vr.Plan = dr["plan"].ToString();
                vr.Rum  = dr["rum"].ToString();
                // 2017-09-25 KJBO
                if (dr["insideDiameter"] == DBNull.Value)
                {
                    vr.insideDiameter = 0;
                }
                else
                {
                    vr.insideDiameter = Convert.ToDecimal(dr["insideDiameter"]);
                }
                if (dr["outsideDiameter"] == DBNull.Value)
                {
                    vr.outsideDiameter = 0;
                }
                else
                {
                    vr.outsideDiameter = Convert.ToDecimal(dr["outsideDiameter"]);
                }
                vr.ErrCode    = 0;
                vr.ErrMessage = "";

                vl.Add(vr);
            }

            return(vl);
        }
예제 #16
0
        /// <summary>
        /// Return one artikel
        /// </summary>
        /// <param name="ident">Ident</param>
        /// <param name="Artnr">Artnr</param>
        /// <returns></returns>
        // 2016-02-10 KJBO
        public ArtikelCL getArtikel(string ident, string Artnr)
        {
            ArtikelCL art = new ArtikelCL();

            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                art.ErrCode    = -10;
                art.ErrMessage = "Ogiltigt login";
                return(art);
            }

            string sSql = " SELECT a.artnr, a.artnamn, a.lev_id, l.levnamn, a.anm1, a.anm2, kategori "
                          + " FROM artikel a "
                          + " left outer join leverantor l on a.lev_id = l.lev_id "
                          + " where a.artnr = :artnr "
                          + " and a.visas = true ";

            NxParameterCollection np = new NxParameterCollection();

            np.Add("artnr", Artnr);

            string errText = "";

            DataTable dt = cdb.getData(sSql, ref errText, np);

            int errCode = -100;

            if (errText == "" && dt.Rows.Count == 0)
            {
                errText = "Artikeln finns ej ";
                errCode = 0;
            }

            if (errText != "")
            {
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                art.ErrCode    = errCode;
                art.ErrMessage = errText;
            }

            if (dt.Rows.Count == 1)
            {
                DataRow dr = dt.Rows[0];
                art.Artnr    = dr["artnr"].ToString();
                art.Artnamn  = dr["artnamn"].ToString();
                art.LevID    = dr["lev_id"].ToString();
                art.LevNamn  = dr["levnamn"].ToString();
                art.Anm1     = dr["anm1"].ToString();
                art.Anm2     = dr["anm2"].ToString();
                art.kategori = Convert.ToInt32(dr["kategori"]);
            }


            return(art);
        }
예제 #17
0
        /// <summary>
        /// Get a list of artikel for display purposes
        /// </summary>
        /// <param name="ident">Identity</param>
        /// <param name="ArtnrFilter">Artnr or part of..</param>
        /// <param name="ArtnamnFilter">ArtNamn or part of..</param>
        /// <returns></returns>
        // 2016-02-09 KJBO
        public List <ArtikelCL> getArtList(string ident, string ArtnrFilter, string ArtnamnFilter)
        {
            // Create article list
            List <ArtikelCL> artlist = new List <ArtikelCL>();

            // Get reparator
            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                ArtikelCL art = new ArtikelCL();
                art.ErrCode    = -10;
                art.ErrMessage = "Ogiltigt login";
                artlist.Add(art);
                return(artlist);
            }



            // SQL string
            string sSql = " SELECT a.artnr, a.artnamn, a.lev_id, l.levnamn, a.anm1, a.anm2 "
                          + " FROM artikel a "
                          + " left outer join leverantor l on a.lev_id = l.lev_id "
                          + " where upper(a.artnr) like upper(:artnr) "
                          + " and upper(a.artnamn) like upper(:artnamn) "
                          + " and a.visas = true ";

            // Add parameter list
            NxParameterCollection np = new NxParameterCollection();

            np.Add("artnr", CCommonFunc.addWildCard(ArtnrFilter));
            np.Add("artnamn", CCommonFunc.addWildCard(ArtnamnFilter));

            // Init variable
            string errText = "";

            DataTable dt = cdb.getData(sSql, ref errText, np);

            // Init varible
            int errCode = -100;

            // No rows found.....
            if (errText == "" && dt.Rows.Count == 0)
            {
                errText = "Det finns inga artiklar i aktuellt urval ";
                errCode = 0;
            }

            // No rows found or error when retrieving
            if (errText != "")
            {
                ArtikelCL a = new ArtikelCL();
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                a.ErrCode    = errCode;
                a.ErrMessage = errText;
                artlist.Add(a);
                return(artlist);
            }

            // Loop rows.....
            foreach (DataRow dr in dt.Rows)
            {
                ArtikelCL a = new ArtikelCL();
                a.Artnr   = dr["artnr"].ToString();
                a.Artnamn = dr["artnamn"].ToString();
                a.LevID   = dr["lev_id"].ToString();
                a.LevNamn = dr["levnamn"].ToString();
                a.Anm1    = dr["anm1"].ToString();
                a.Anm2    = dr["anm2"].ToString();
                artlist.Add(a);
            }

            // .. and return list
            return(artlist);
        }
예제 #18
0
        /// <summary>
        /// Updates the table shReparator.
        /// If the parameter addTo order then a new row will be added
        /// with the current ordernr and AnvId
        /// if false then the row is deleted
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="VartOrdernr"></param>
        /// <param name="AnvID"></param>
        /// <param name="addToOrder"></param>
        /// <returns></returns>
        /// 2018-02-05  KJBO
        public ErrorCL updateShrep(string ident, string VartOrdernr, string AnvID, Boolean addToOrder)
        {
            ErrorCL err = new ErrorCL();

            err.ErrCode    = 0;
            err.ErrMessage = "";
            string sSql = "";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("vart_ordernr", VartOrdernr);
            pc.Add("AnvID", AnvID);
            if (addToOrder)
            {
                sSql = "select count(*) antal "
                       + " from shReparator "
                       + " where vart_ordernr = :vart_ordernr "
                       + " and AnvID = :AnvID ";


                DataTable dtCount = cdb.getData(sSql, ident, ref err, pc);

                if (err.ErrMessage != "")
                {
                    return(err);
                }
                int antal = 0;
                if (dtCount.Rows.Count == 1)
                {
                    antal = Convert.ToInt32(dtCount.Rows[0]["antal"]);
                }

                if (antal == 0)
                {
                    sSql = "insert into shReparator (vart_ordernr, AnvID, reg, regdat) "
                           + " values(:vart_ordernr, :AnvID, :reg, :regdat); ";


                    CReparator  cr  = new CReparator();
                    ReparatorCL rep = cr.getReparator(ident);

                    pc.Add("reg", rep.AnvID);
                    pc.Add("regdat", DateTime.Now);

                    string errTxt = "";
                    cdb.updateData(sSql, ref errTxt, pc);

                    if (errTxt != "")
                    {
                        errTxt = "Error while inserting row in shReparator table. Error message : " + errTxt;
                        if (errTxt.Length > 2000)
                        {
                            errTxt = errTxt.Substring(1, 2000);
                        }
                        err.ErrCode    = -100;
                        err.ErrMessage = errTxt;
                        return(err);
                    }
                }
            }
            else
            {
                sSql = " delete from shReparator "
                       + " where vart_ordernr = :vart_ordernr "
                       + " and AnvID = :AnvID ";

                string errTxt = "";
                cdb.updateData(sSql, ref errTxt, pc);

                if (errTxt != "")
                {
                    errTxt = "Error while inserting row in shReparator table. Error message : " + errTxt;
                    if (errTxt.Length > 2000)
                    {
                        errTxt = errTxt.Substring(1, 2000);
                    }
                    err.ErrCode    = -100;
                    err.ErrMessage = errTxt;
                    return(err);
                }
            }
            return(err);
        }
예제 #19
0
        public VentilCL getVentil(string ident, string ventilID, bool validateUser)
        {
            VentilCL vr = new VentilCL();

            if (validateUser)
            {
                CReparator cr = new CReparator();

                int identOK = cr.checkIdent(ident);

                if (identOK == -1)
                {
                    vr.ErrCode    = -10;
                    vr.ErrMessage = "Ogiltigt login";
                    return(vr);
                }
            }

            string sSql = " SELECT v.ventil_id, v.ventilkategori, v.kund_id, v.\"position\", v.fabrikat, v.ventiltyp, v.id_nr, v.pn, v.pn2, v.dn, v.dn2, "
                          + " v.oppningstryck, v.stalldonstyp, v.stalldon_id_nr, v.stalldon_fabrikat, v.stalldon_artnr, v.lagesstallartyp, "
                          + " v.lagesstall_id_nr, v.lagesstall_fabrikat, v.avdelning,  v.anlaggningsnr,  "
                          + " v.forra_comment, vk.ventilkategori as ventilkategori_namn "
                          + " , plan, rum, v.insideDiameter, v.outsideDiameter  "
                          + " FROM ventil v "
                          + " join ventilkategori vk on v.ventilkategori = vk.ventilkat_id "
                          + " where ventil_id = :pVentilID ";

            NxParameterCollection np = new NxParameterCollection();

            np.Add("pVentilID", ventilID);

            string errText = "";

            DataTable dt = cdb.getData(sSql, ref errText, np);

            int errCode = -100;

            if (errText == "" && dt.Rows.Count == 0)
            {
                errText = "Felaktigt ventilID";
                errCode = 0;
            }


            if (errText != "")
            {
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                vr.ErrCode    = errCode;
                vr.ErrMessage = errText;
                return(vr);
            }


            DataRow dr = dt.Rows[0];

            vr.VentilID       = dr["ventil_id"].ToString();
            vr.VentilkatID    = Convert.ToInt16(dr["ventilkategori"]);
            vr.Ventilkategori = dr["ventilkategori_namn"].ToString();
            vr.KundID         = dr["kund_id"].ToString();
            vr.Position       = dr["position"].ToString();
            vr.Fabrikat       = dr["fabrikat"].ToString();
            vr.Ventiltyp      = dr["ventiltyp"].ToString();
            vr.IdNr           = dr["id_nr"].ToString();
            vr.Pn             = dr["pn"].ToString();
            vr.Pn2            = dr["pn2"].ToString();
            vr.Dn             = dr["dn"].ToString();
            vr.Dn2            = dr["dn2"].ToString();
            if (dr["oppningstryck"] == DBNull.Value)
            {
                vr.Oppningstryck = 0;
            }
            else
            {
                vr.Oppningstryck = Convert.ToDecimal(dr["oppningstryck"]);
            }
            vr.Stalldonstyp       = dr["stalldonstyp"].ToString();
            vr.StalldonIDNr       = dr["stalldon_id_nr"].ToString();
            vr.StalldonFabrikat   = dr["stalldon_fabrikat"].ToString();
            vr.StalldonArtnr      = dr["stalldon_artnr"].ToString();
            vr.Lagesstallartyp    = dr["lagesstallartyp"].ToString();
            vr.LagesstallIDNr     = dr["lagesstall_id_nr"].ToString();
            vr.LagesstallFabrikat = dr["lagesstall_fabrikat"].ToString();
            vr.Avdelning          = dr["avdelning"].ToString();
            vr.Plan          = dr["plan"].ToString();
            vr.Rum           = dr["rum"].ToString();
            vr.Anlaggningsnr = dr["anlaggningsnr"].ToString();
            // 2017-09-25 KJBO
            if (dr["insideDiameter"] == DBNull.Value)
            {
                vr.insideDiameter = 0;
            }
            else
            {
                vr.insideDiameter = Convert.ToDecimal(dr["insideDiameter"]);
            }
            if (dr["outsideDiameter"] == DBNull.Value)
            {
                vr.outsideDiameter = 0;
            }
            else
            {
                vr.outsideDiameter = Convert.ToDecimal(dr["outsideDiameter"]);
            }
            vr.ErrCode    = 0;
            vr.ErrMessage = "";

            return(vr);
        }
예제 #20
0
        public VentilCL saveVentil(string ident, VentilCL v)
        {
            VentilCL   vc      = new VentilCL();
            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                vc.ErrCode    = -10;
                vc.ErrMessage = "Ogiltigt login";
                return(vc);
            }

            // 2018-11-09 Samtal med Simon

            if (v.Position == "")
            {
                vc.ErrCode    = -1;
                vc.ErrMessage = "Positionsnr måste anges";
                return(vc);
            }

            int iRes = validateVentil(v);

            if (iRes == -1)
            {
                vc.ErrCode    = -1;
                vc.ErrMessage = "Felaktig ventilkategori";
                return(vc);
            }
            if (iRes == -2)
            {
                vc.ErrCode    = -1;
                vc.ErrMessage = "Felaktigt kundID";
                return(vc);
            }

            if (iRes == -3)
            {
                vc.ErrCode    = 101;
                vc.ErrMessage = "Det finns redan en ventil med detta positionsnr";
                return(vc);
            }

            if (iRes == -4)
            {
                vc.ErrCode    = -1;
                vc.ErrMessage = "Ytterdiameter måste vara större än innerdiameter";
                return(vc);
            }

            ReparatorCL r = cr.getReparator(ident);



            string sSql = "";
            bool   bNew = false;

            // This is a new ventil
            if (v.VentilID == null)
            {
                string ventilID = Guid.NewGuid().ToString();
                v.VentilID = ventilID;
                sSql       = getVentilInsertSQL();
                bNew       = true;
            }

            else
            {
                sSql = getVentilUpdateSQL();
            }


            NxParameterCollection np = new NxParameterCollection();

            setParameters(np, v, bNew, r.AnvID);

            string errText = "";

            int iRc = cdb.updateData(sSql, ref errText, np);

            if (errText != "")
            {
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }

                v.ErrCode    = -100;
                v.ErrMessage = errText;
                return(v);
            }

            // 2016-10-17 KJBO
            CServRad csr = new CServRad();

            csr.updateFromVentil2(v.VentilID);



            return(getVentil(ident, v.VentilID));
        }
예제 #21
0
        /// <summary>
        /// This method returns all pictures for one servicerad
        /// Note that you dont get the actual picture nor the
        /// pictIdent. Instead you use this method for getting a
        /// list of available pictures (and also gets the picture
        /// description).
        /// After that you have to call GetPicture and download picture
        /// in turn in order to get each individual picture.
        /// The reason for this is performance. This method gives
        /// a fast list of available pictures only.
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="vartOrdernr"></param>
        /// <param name="radnr"></param>
        /// <returns></returns>
        /// 2016-03-11 Pergas AB kjbo
        public List <PictureCL> getPicturesForServiceRad(string ident, string vartOrdernr, int radnr)
        {
            List <PictureCL> pList = new List <PictureCL>();

            CReparator cr = new CReparator();

            int identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                PictureCL p = new PictureCL();
                p.ErrCode    = -10;
                p.ErrMessage = "Ogiltigt login";
                pList.Add(p);
                return(pList);
            }


            string sSql = " SELECT vart_ordernr, radnr, bild_nr, bild, pictDescript, pictSize, pictType, pictCatID "
                          + " FROM servrad_bild "
                          + " where vart_ordernr = :vart_ordernr "
                          + " and radnr = :radnr ";


            NxParameterCollection np = new NxParameterCollection();

            np.Add("vart_ordernr", vartOrdernr);
            np.Add("radnr", radnr);

            string errText = "";

            DataTable dt = cdb.getData(sSql, ref errText, np);

            int errCode = -100;

            if (errText == "" && dt.Rows.Count == 0)
            {
                errText = "Det finns inga bilder för aktuell servicerad";
                errCode = 0;
            }


            if (errText != "")
            {
                PictureCL p = new PictureCL();
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                p.ErrCode    = errCode;
                p.ErrMessage = errText;
                pList.Add(p);
                return(pList);
            }


            foreach (DataRow dr in dt.Rows)
            {
                PictureCL p = new PictureCL();
                p.ErrCode     = 0;
                p.ErrMessage  = "";
                p.VartOrdernr = dr["vart_ordernr"].ToString();
                p.Radnr       = Convert.ToInt32(dr["radnr"]);
                p.BildNr      = Convert.ToInt32(dr["bild_nr"]);
                p.Description = dr["pictDescript"].ToString();
                p.pictSize    = Convert.ToInt64(dr["pictSize"]);
                p.pictType    = dr["pictType"].ToString();
                p.PictCatID   = 0;
                if (dr["pictCatID"] != DBNull.Value)
                {
                    p.PictCatID = Convert.ToInt32(dr["pictCatID"]);
                }
                pList.Add(p);
            }

            return(pList);
        }
예제 #22
0
        /// <summary>
        /// Login for the GaskMan application
        /// Will check tha gasketLevel (will be 5 for a user or 10 for an administrator)
        /// If the user is MaSa (Mattias Samuelsson) then the gasketLevel will be 10 without
        /// checking.
        /// </summary>
        /// <param name="login"></param>
        /// <returns>LoginAdm class. Check for errors</returns>
        /// 2018-08-14 kjbo
        public LoginAdm GLogin(LoginAdm login)
        {
            CReparator cr = new CReparator();

            return(cr.GLogin(login));
        }
예제 #23
0
        public string login(string AnvID, string pwd)
        {
            CReparator cr = new CReparator();

            return(cr.login(AnvID, pwd));
        }
예제 #24
0
        public List <VentilKategoriCL> getVentilKategoriers(string ident)
        {
            List <VentilKategoriCL> vc = new List <VentilKategoriCL>();
            CReparator cr = new CReparator();

            int identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                VentilKategoriCL v = new VentilKategoriCL();
                v.ErrCode    = -10;
                v.ErrMessage = "Ogiltigt login";
                vc.Add(v);
                return(vc);
            }


            string sSql = " SELECT ventilkat_id, ventilkategori "
                          + " FROM ventilkategori "
                          + " order by ventilkategori ";



            string errText = "";

            DataTable dt = cdb.getData(sSql, ref errText);

            int errCode = -100;

            if (errText == "" && dt.Rows.Count == 0)
            {
                errText = "Inga ventilkategorier finns tillgängliga";
                errCode = 0;
            }


            if (errText != "")
            {
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }

                VentilKategoriCL v = new VentilKategoriCL();
                v.ErrCode    = errCode;
                v.ErrMessage = errText;
                vc.Add(v);
                return(vc);
            }


            foreach (DataRow dr in dt.Rows)
            {
                VentilKategoriCL v = new VentilKategoriCL();
                v.VentilkatID    = Convert.ToInt16(dr["ventilkat_id"]);
                v.Ventilkategori = dr["ventilkategori"].ToString();
                v.ErrCode        = 0;
                v.ErrMessage     = "";

                vc.Add(v);
            }
            return(vc);
        }
예제 #25
0
        /// <summary>
        /// General hub for retrieving reservdel
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="VartOrdernr"></param>
        /// <param name="RadNr"></param>
        /// <param name="ReservNr"></param>
        /// <returns>A list of reservdel or error</returns>
        private List <ReservdelCL> getReservdelGeneral(string ident, string VartOrdernr, int RadNr, int ReservNr)
        {
            List <ReservdelCL> reslist = new List <ReservdelCL>();


            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                ReservdelCL res = new ReservdelCL();
                res.ErrCode    = -10;
                res.ErrMessage = "Ogiltigt login";
                reslist.Add(res);
                return(reslist);
            }

            // Build sql string depending on parameters. -1 as ReservNr means return all reservdel for one
            // ServiceRad.
            string sSql = " select vart_ordernr, radnr, reserv_nr, antal, artnr, artnamn, faktureras, lev_id, enhet "
                          + " , reg, regdat, uppdaterat, uppdat_dat, skriv_nu, getFromCS "
                          + " from reservdel "
                          + " where vart_ordernr = :vart_ordernr "
                          + " and radnr = :radnr ";

            if (ReservNr > -1)
            {
                sSql += " and reserv_nr = :reserv_nr ";
            }

            // Create parameters
            NxParameterCollection np = new NxParameterCollection();

            np.Add("vart_ordernr", VartOrdernr);
            np.Add("radnr", RadNr);
            if (ReservNr > -1)
            {
                np.Add("reserv_nr", ReservNr);
            }

            string errText = "";

            DataTable dt = cdb.getData(sSql, ref errText, np);

            int errCode = -100;

            if (errText == "" && dt.Rows.Count == 0)
            {
                if (ReservNr == -1)
                {
                    errText = "Det finns inga reservdelar i aktuellt urval ";
                }
                else
                {
                    errText = "Reservdel med ID VartOrdernr : " + VartOrdernr + ", RadNr : " + RadNr.ToString() + ", ReservNr : " + ReservNr.ToString() + " finns ej.";
                }
                errCode = 0;
            }

            if (errText != "")
            {
                ReservdelCL res = new ReservdelCL();
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                res.ErrCode    = errCode;
                res.ErrMessage = errText;
                reslist.Add(res);
                return(reslist);
            }

            foreach (DataRow dr in dt.Rows)
            {
                ReservdelCL res = new ReservdelCL();
                res.Antal       = 1;
                res.Faktureras  = true;
                res.getFromCS   = false;
                res.VartOrdernr = dr["vart_ordernr"].ToString();
                res.Radnr       = Convert.ToInt32(dr["radnr"]);
                res.ReservNr    = Convert.ToInt32(dr["reserv_nr"]);
                if (dr["antal"] != DBNull.Value)
                {
                    res.Antal = Convert.ToDecimal(dr["antal"]);
                }
                res.Artnr   = dr["artnr"].ToString();
                res.ArtNamn = dr["artnamn"].ToString();
                if (dr["faktureras"] != DBNull.Value)
                {
                    res.Faktureras = Convert.ToBoolean(dr["faktureras"]);
                }
                if (dr["getFromCS"] != DBNull.Value)
                {
                    res.getFromCS = Convert.ToBoolean(dr["getFromCS"]);
                }
                res.LevID = dr["lev_id"].ToString();
                res.Enhet = dr["enhet"].ToString();
                reslist.Add(res);
            }

            return(reslist);
        }
예제 #26
0
        public ReparatorCL getReparator(string ident)
        {
            CReparator cr = new CReparator();

            return(cr.getReparator(ident));
        }
예제 #27
0
        /// <summary>
        /// Deletes a reservdel identified by primary key
        /// </summary>
        /// <param name="ident">identity string</param>
        /// <param name="reservdel">One valid reservdel</param>
        /// <returns>Empty string if OK otherwise error message</returns>
        public string deleteReservdel(string ident, ReservdelCL reservdel)
        {
            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            ReservdelCL retRes = new ReservdelCL();

            if (identOK == -1)
            {
                return("Ogiltigt login");
            }

            // Validate that order is open for editing
            CServiceHuvud ch    = new CServiceHuvud();
            string        sOpen = ch.isOpen(ident, reservdel.VartOrdernr);

            if (sOpen != "1")
            {
                {
                    retRes.ErrCode = -10;
                    if (sOpen == "-1")
                    {
                        return("Order är stängd för inmatning");
                    }
                    else
                    {
                        return(sOpen);
                    }
                }
            }


            int exists = validateReservdelExists(reservdel);

            if (exists == 0)
            {
                return("Reservdel finns ej");
            }

            string sSql = "";

            sSql = getDeleteSQL();

            NxParameterCollection np = new NxParameterCollection();

            setParameters(np, reservdel, "");

            string errText = "";

            AddOrDeleteReservdelPyr(reservdel, true, ref errText);

            if (errText == "")
            {
                cdb.updateData(sSql, ref errText, np);
            }

            if (errText != "")
            {
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }

                return(errText);
            }

            return("");
        }
예제 #28
0
        /// <summary>
        /// Get a list of all reparators assigned to one
        /// servicehuvud identified by vartOrdernr
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="vartOrdernr"></param>
        /// <returns>A list of reparators or error</returns>
        /// 2017-03-14 Added functionality
        /// RepKatID is now current for this ordernr
        public List <ReparatorCL> getReparatorsForServiceHuvud(string ident, string vartOrdernr)
        {
            CReparator cr = new CReparator();

            return(cr.getReparatorsForServiceHuvud(ident, vartOrdernr));
        }
예제 #29
0
        /// <summary>
        /// Returns all standardtext
        /// </summary>
        /// <param name="ident"></param>
        /// <returns></returns>
        public List <StandardTextCL> getAllSttText(string ident)
        {
            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            List <StandardTextCL> stList = new List <StandardTextCL>();

            if (identOK == -1)
            {
                StandardTextCL st = new StandardTextCL();
                st.ErrCode       = -10;
                st.ErrMessage    = "Ogiltigt login";
                st.StdTextID     = "";
                st.Text          = "";
                st.Kategori      = 0;
                st.KategoriBeskr = "";
                st.ventilkatID   = 0;
                stList.Add(st);
                return(stList);
            }

            string sSql = " SELECT stdtext_id, \"text\", kategori, ventilkategori "
                          + " FROM standardtext ";

            string    errSt = "";
            DataTable dt    = cdb.getData(sSql, ref errSt);

            if (errSt != "")
            {
                if (errSt.Length > 2000)
                {
                    errSt = errSt.Substring(1, 2000);
                }

                StandardTextCL st = new StandardTextCL();
                st.StdTextID     = "";
                st.Text          = "";
                st.Kategori      = 0;
                st.KategoriBeskr = "";
                st.ventilkatID   = 0;
                st.ErrCode       = -100;
                st.ErrMessage    = "Databasfel : " + errSt;
                stList.Add(st);
                return(stList);
            }

            foreach (DataRow dr in dt.Rows)
            {
                int            kategori = Convert.ToInt32(dr["kategori"]);
                StandardTextCL st       = new StandardTextCL();
                st.StdTextID     = dr["stdtext_id"].ToString();
                st.Text          = dr["text"].ToString();
                st.Kategori      = kategori;
                st.KategoriBeskr = getKatName(kategori);
                st.ventilkatID   = 0;
                if (dr["ventilkategori"] == DBNull.Value)
                {
                    st.ventilkatID = 0;
                }
                else
                {
                    st.ventilkatID = Convert.ToInt32(dr["ventilkategori"]);
                }
                st.ErrCode    = 0;
                st.ErrMessage = "";
                stList.Add(st);
            }

            return(stList);
        }
예제 #30
0
        /// <summary>
        /// Get all available repKat for
        /// timeregistration version 2
        /// </summary>
        /// <param name="ident"></param>
        /// <returns></returns>
        /// 2017-03-14 KJBO
        public List <RepKatCL> getRepKat(string ident)
        {
            CReparator cr = new CReparator();

            return(cr.getRepKat(ident));
        }