Ejemplo n.º 1
0
        public decimal countOutcheckedArt(string vartOrdernr, string artnr)
        {
            string sSql = " select coalesce(sum(coAntal),0) - coalesce(sum(ciAntal),0) sum_outchecked "
                          + " from orderart oa "
                          + " where vart_ordernr = :vart_ordernr "
                          + " and artnr = :artnr ";
            NxParameterCollection pc = new NxParameterCollection();
            decimal countOutchecked  = 0;

            pc.Add("vart_ordernr", vartOrdernr);
            pc.Add("artnr", artnr);
            string    err = "";
            DataTable dt  = cdb.getData(sSql, ref err, pc);

            if (dt.Rows.Count == 1)
            {
                countOutchecked = Convert.ToDecimal(dt.Rows[0]["sum_outchecked"]);
            }
            return(countOutchecked);
        }
Ejemplo n.º 2
0
        private string dnExists(string dn)
        {
            string sSql = " select count(*) antal "
                          + " from dn "
                          + " where dn = :dn ";
            string errTxt            = "";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("dn", dn);
            DataTable dt = cdb.getData(sSql, ref errTxt, pc);

            if (errTxt != "")
            {
                return(errTxt);
            }
            if (dt.Rows.Count == 1)
            {
                return(dt.Rows[0]["antal"].ToString());
            }
            return("");
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gives a name of a reparator given an ID
        /// </summary>
        /// <param name="anvID">ID to look for</param>
        /// <returns>Name or empty string if no name is found</returns>
        public string getName(string anvID)
        {
            string sSql = " SELECT reparator FROM reparator "
                          + " where anvID = :pAnvId "
                          + " and visas = true ";

            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("pAnvID", anvID);

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

            // If name exist then return reparator
            // otherwise return empty string
            if (dt.Rows.Count == 1)
            {
                return(dt.Rows[0][0].ToString());
            }
            return("");
        }
Ejemplo n.º 4
0
        private void setParameters(NxParameterCollection np, gGasketCL g, ReparatorCL rep)
        {
            DateTime now = DateTime.Now;

            np.Add("gasketId", g.gasketId);
            np.Add("gasketTypeId", g.gasketTypeId);
            np.Add("materialThicknId", g.materialThicknId);
            np.Add("outerDiam", g.outerDiam);
            np.Add("innerDiam", g.innerDiam);
            np.Add("reusableMaterial", g.reusableMaterial);
            np.Add("cuttingMargin", g.cuttingMargin);
            np.Add("standardPriceProduct", g.standardPriceProduct);
            np.Add("handlingTime", g.handlingTime);
            np.Add("Type2SecHoleCount", g.Type2SecHoleCount);
            np.Add("Type2SecHoleDiam", g.Type2SecHoleDiam);
            np.Add("price", g.price);
            np.Add("note", g.note);
            np.Add("description", g.description);
            np.Add("reg", rep.AnvID);
            np.Add("regdate", now);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Check if there are any orderArt rows
        /// Use to determine if checkin shall be available
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="vartOrdernr"></param>
        /// <returns>Number of orderArt articles for the current ordernr or -1 if error occurs</returns>
        ///
        public int countOrderArtRows(string ident, string vartOrdernr)
        {
            CReparator cr      = new CReparator();
            int        identOK = cr.checkIdent(ident);

            if (identOK == -1)
            {
                return(-1);
            }

            string sSql = " select count(*) count_rows "
                          + " from orderArt "
                          + " where vart_ordernr = :vart_ordernr ";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("vart_ordernr", vartOrdernr);
            string    dummy = "";
            DataTable dt    = cdb.getData(sSql, ref dummy, pc);

            return(Convert.ToInt32(dt.Rows[0]["count_rows"]));
        }
Ejemplo n.º 6
0
        private int servHuvExistsAndOpen(string vartOrdernr, ref string errText)
        {
            string sSql = "select vart_ordernr, godkand "
                          + " from servicehuvud "
                          + "where vart_ordernr = :vart_ordernr ";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("vart_ordernr", vartOrdernr);
            errText = "";
            DataTable dt = cdb.getData(sSql, ref errText, pc);

            if (dt.Rows.Count == 0)
            {
                return(-1);
            }
            if (Convert.ToBoolean(dt.Rows[0]["godkand"]) == true)
            {
                return(-2);
            }
            return(1);
        }
Ejemplo n.º 7
0
        private void AddOrDeleteReservdelPyr(ReservdelCL r, bool delete, ref string error)
        {
            string sSql = " select artnr, coalesce(artnamn,'') artnamn, antal "
                          + " from reservdel "
                          + " where vart_ordernr = :vart_ordernr "
                          + " and radnr = :radnr "
                          + " and reserv_nr = :reserv_nr ";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("vart_ordernr", r.VartOrdernr);
            pc.Add("radnr", r.Radnr);
            pc.Add("reserv_nr", r.ReservNr);
            error = "";
            DataTable dt = cdb.getData(sSql, ref error, pc);

            if (error != "")
            {
                return;
            }
            if (dt.Rows.Count == 1)
            {
                DataRow     dr  = dt.Rows[0];
                ReservdelCL res = new ReservdelCL();
                res.VartOrdernr = r.VartOrdernr;
                res.Radnr       = r.Radnr;
                res.ReservNr    = r.ReservNr;
                res.Artnr       = dr["artnr"].ToString();
                res.ArtNamn     = dr["artnamn"].ToString();
                res.Antal       = Convert.ToDecimal(dr["antal"]);
                if (delete)
                {
                    res.Antal = -res.Antal;
                }
                if (res.Antal > 0.001M || res.Antal < -0.001M)
                {
                    addToReservdelPyr(res, ref error);
                }
            }
        }
Ejemplo n.º 8
0
        private int reuseOrderArtId(OrderArtCL oa, ref decimal coAntal)
        {
            String sSql = " SELECT orderArtId, coAntal "
                          + " FROM orderArt "
                          + " where vart_ordernr = :vart_ordernr "
                          + " and artnr = :artnr ";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("vart_ordernr", oa.VartOrdernr);
            pc.Add("artnr", oa.Artnr);
            string    error = "";
            DataTable dt    = cdb.getData(sSql, ref error, pc);

            if (dt.Rows.Count == 0)
            {
                return(0);
            }
            DataRow dr = dt.Rows[0];

            coAntal = Convert.ToDecimal(dr["coAntal"]);
            return(Convert.ToInt32(dr["orderArtId"]));
        }
Ejemplo n.º 9
0
        private Decimal getNotExportedNotUsedAnymore(ReservdelCL r, ref string error)
        {
            string sSql = " SELECT coalesce(sum(antal),0) sumAntal "
                          + " FROM reservdelPyr "
                          + " where vart_ordernr = :vart_ordernr "
                          + " and radnr = :radnr "
                          + " and reserv_nr = :reserv_nr ";

            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("vart_ordernr", r.VartOrdernr);
            pc.Add("radnr", r.Radnr);
            pc.Add("reserv_nr", r.ReservNr);
            error = "";
            DataTable dt = cdb.getData(sSql, ref error, pc);

            if (error != "")
            {
                return(0);
            }
            return(Convert.ToDecimal(dt.Rows[0]["sumAntal"]));
        }
Ejemplo n.º 10
0
        private int validateVartOrdernr(string vart_ordernr, ref string ErrText)
        {
            string sSql = " select count(*) antal "
                          + " from ServiceHuvud "
                          + " where vart_ordernr = :vart_ordernr ";

            NxParameterCollection np = new NxParameterCollection();

            np.Add("vart_ordernr", vart_ordernr);

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

            if (ErrText != "")
            {
                ErrText = "Error while checking vårt ordernr. Message " + ErrText;
                return(-100);
            }

            int antal = Convert.ToInt32(dt.Rows[0]["antal"]);

            return(antal == 0 ? 1 : -1);
        }
Ejemplo n.º 11
0
        private int validateArtikelExists(ReservdelCL r)
        {
            String sSql = " SELECT count(artnr) count_artikel "
                          + " FROM artikel "
                          + " where artnr = :artnr "
                          + " and visas = true ";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("artnr", r.Artnr);
            string    err = "";
            DataTable dt  = cdb.getData(sSql, ref err, pc);

            if (err != "")
            {
                return(-1);
            }
            if (dt.Rows.Count == 0)
            {
                return(0);
            }
            return(Convert.ToInt16(dt.Rows[0]["count_artikel"]));
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Creates a dummy valve to add as first row to an order
        /// </summary>
        /// <param name="kundId"></param>
        /// <param name="errSt"></param>
        /// <returns></returns>
        /// 2018-08-23 KJBO
        public string getOrCreateOrderValve(string kundId, ref string errSt)
        {
            string sSql = "SELECT ventil_id "
                          + " FROM ventil "
                          + " where kund_id = :kund_id "
                          + " and \"position\" = 'order' ";

            errSt = "";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("kund_id", kundId);
            DataTable dt = cdb.getData(sSql, ref errSt, pc);

            if (errSt != "")
            {
                return("");
            }
            if (dt.Rows.Count > 0)
            {
                return(dt.Rows[0]["ventil_id"].ToString());
            }

            string ventilID = Guid.NewGuid().ToString();

            sSql = " insert into ventil (ventil_id, ventilkategori, kund_id, reg, regdat, \"position\") "
                   + " values(:ventil_id, 3, :kund_id, 'API', :regdat, 'order') ";
            pc.Add("ventil_id", ventilID);
            pc.Add("kund_id", kundId);
            pc.Add("regdat", DateTime.Now);

            int rc = cdb.updateData(sSql, ref errSt, pc);

            if (errSt != "")
            {
                return("");
            }
            return(ventilID);
        }
Ejemplo n.º 13
0
        private string resetServRadRepTid()
        {
            string result = "";

            string sSqlSelect = " select alternateKey ak "
                                + " from servicerad "
                                + " where vart_ordernr = :vart_ordernr ";
            NxParameterCollection pcSelect = new NxParameterCollection();

            pcSelect.Add("vart_ordernr", vart_ordernr);
            DataTable dt = cdb.getData(sSqlSelect, ref result, pcSelect);

            if (result != "")
            {
                return(result);
            }

            string sSqlUpdate = "update servradreptid "
                                + " set pyramidExport = null "
                                + " where srAltKey = :srAltKey "
                                + " and pyramidExport is not null ";

            NxParameterCollection pcUpdate = new NxParameterCollection();

            pcUpdate.Add("srAltKey", "xx");

            foreach (DataRow dr in dt.Rows)
            {
                string ak = dr["ak"].ToString();
                pcUpdate["srAltKey"].Value = ak;
                cdb.updateData(sSqlUpdate, ref result, pcUpdate);
                if (result != "")
                {
                    return(result);
                }
            }
            return(result);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Commits the temporary temCiAntal to
        /// the real ciAntal in the orderArt table
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="vartOrdernr"></param>
        /// <returns></returns>
        /// 2018-05-02 KJBO Indentive AB
        public ErrorCL commitTempCiAntal(string ident, string vartOrdernr)
        {
            ErrorCL err = new ErrorCL();

            err.ErrCode    = 0;
            err.ErrMessage = "";

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

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


            string sSql = " update orderArt "
                          + " set ciAntal = ciAntal + coalesce(tempCiAntal, 0) "
                          + " where vart_ordernr = :vart_ordernr ";
            string error             = "";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("vart_ordernr", vartOrdernr);
            cdb.updateData(sSql, ref error, pc);
            if (error != "")
            {
                err.ErrCode = -100;
                if (error.Length > 2000)
                {
                    error = error.Substring(1, 2000);
                }
                err.ErrMessage = error;
                return(err);
            }
            return(err);
        }
Ejemplo n.º 15
0
        private int countReparator(string vart_ordernr)
        {
            string sSql = "select count(*) antal "
                          + " from shReparator "
                          + " where vart_ordernr = :vart_ordernr ";
            NxParameterCollection pc = new NxParameterCollection();

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

            if (errText != "")
            {
                return(-1);
            }
            int antal = 0;

            if (dt.Rows.Count == 1)
            {
                antal = Convert.ToInt32(dt.Rows[0]["antal"]);
            }
            return(antal);
        }
Ejemplo n.º 16
0
        private bool positionHasChanged(VentilCL v)
        {
            string sSql = " select \"position\" "
                          + " from ventil "
                          + " where ventil_id = :ventil_id ";
            NxParameterCollection np = new NxParameterCollection();

            np.Add("ventil_id", v.VentilID);
            string    err = "";
            DataTable dt  = cdb.getData(sSql, ref err, np);

            if (dt.Rows.Count == 0)
            {
                return(false);
            }
            string savedVentil = dt.Rows[0]["position"].ToString();

            if (savedVentil != v.Position)
            {
                return(true);
            }
            return(false);
        }
Ejemplo n.º 17
0
        public string getSalartUnit(int salartID)
        {
            string sSql = "SELECT enhet unit "
                          + " FROM salart "
                          + " where salartId = :salartId ";

            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("salartId", salartID);

            string errText = "";

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

            string unit = "";

            if (dt.Rows.Count == 1)
            {
                unit = dt.Rows[0]["unit"].ToString();
            }

            return(unit);
        }
Ejemplo n.º 18
0
        private int getArtKat(string artnr, ref string err)
        {
            string sSql = " SELECT coalesce(kategori,0) kategori "
                          + " FROM artikel "
                          + " where artnr = :artnr "
                          + " and visas = true ";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("artnr", artnr);
            err = "";
            DataTable dt = cdb.getData(sSql, ref err, pc);

            if (err != "")
            {
                return(0);
            }
            if (dt.Rows.Count == 0)
            {
                err = "Artikelnr : " + artnr + " finns ej/är ej aktiv";
                return(0);
            }
            return(Convert.ToInt32(dt.Rows[0]["kategori"]));
        }
Ejemplo n.º 19
0
        private string resetOrderArt()
        {
            string result = "";

            string sSql = " select orderArtId, coAntal - ciAntal coAntal "
                          + " from orderArt "
                          + " where vart_ordernr = :vart_ordernr ";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("vart_ordernr", vart_ordernr);
            DataTable dt = cdb.getData(sSql, ref result, pc);

            if (result != "")
            {
                return(result);
            }

            string sSqlDelete = " delete from oaPyramid "
                                + " where orderArtId = :orderArtId ";
            NxParameterCollection pcDelete = new NxParameterCollection();

            pcDelete.Add("orderArtId", 1);

            foreach (DataRow dr in dt.Rows)
            {
                int orderArtId = Convert.ToInt32(dr["orderArtId"]);
                pcDelete["orderArtId"].Value = orderArtId;
                cdb.updateData(sSqlDelete, ref result, pcDelete);
                if (result != "")
                {
                    return(result);
                }
            }

            // Return here. The last code is replaced with resendxOrderArt
            return(result);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Delete a registered gasket
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="gasketId"></param>
        /// <returns>Error class.</returns>
        /// 2018-08-21 KJBO Indentive AB
        public ErrorCL deleteGasket(string ident, int gasketId)
        {
            ErrorCL err = new ErrorCL();

            err.ErrCode    = 0;
            err.ErrMessage = "";

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

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

            string sSql = " delete from gGasket where gasketId = :gasketId ";
            NxParameterCollection pc = new NxParameterCollection();

            pc.Add("gasketId", gasketId);
            string errTxt = "";
            int    rc     = cdb.updateData(sSql, ref errTxt, pc);

            if (errTxt != "")
            {
                if (errTxt.Length > 2000)
                {
                    errTxt = errTxt.Substring(1, 2000);
                }
                err.ErrCode    = -100;
                err.ErrMessage = errTxt;
                return(err);
            }

            return(err);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Updates the database from the given SQL Clause
        /// </summary>
        /// <param name="sSql">SQL Clause to be executed</param>
        /// <param name="errText">Refernce string that returns error string</param>
        /// <param name="pc">Collection of parameters</param>
        /// <returns>Number of updated rows</returns>
        public int updateData(string sSql, ref string errText, NxParameterCollection pc)
        {
            NxConnection cn = getConn();
            NxCommand    cm = new NxCommand(sSql, cn);

            // Check if there are any parameters
            if (pc != null)
            {
                foreach (NxParameter np in pc)
                {
                    NxParameter npInsert = (NxParameter)np.Clone();
                    cm.Parameters.Add(npInsert);
                }
            }
            errText = "";
            int result = 0;

            try
            {
                cn.Open();
                result = cm.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                errText = ex.Message;
                result  = -1;
            }
            finally
            {
                if (cn.State == ConnectionState.Open)
                {
                    cn.Close();
                }
            }
            return(result);
        }
Ejemplo n.º 22
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);
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Returns all gaskets or just one
        /// If gasketId = 0 all registered gasket will be returned
        /// if gasketId > 0 then the gasket with that primary key
        /// will be returned.
        /// If a gasket id is provided and this gasket don't exists
        /// then the errorCode will return -100 and the calling program
        /// needs to take the correct action.
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="gasketId"></param>
        /// <returns></returns>
        /// 2018-08-17 kjbo
        public List <gGasketCL> getGasket(string ident, int gasketId)
        {
            List <gGasketCL> gasketList = new List <gGasketCL>();

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

            if (identOK == -1)
            {
                gGasketCL gasket = new gGasketCL();
                gasket.ErrCode    = -10;
                gasket.ErrMessage = "Ogiltigt login";
                gasketList.Add(gasket);
                return(gasketList);
            }


            string sSql = " select g.gasketId, g.gasketTypeId, g.materialThicknId, g.outerDiam, g.innerDiam, g.reusableMaterial, g.cuttingMargin, "
                          + " g.standardPriceProduct, g.handlingTime, g.price, g.note, g.description "
                          + ", coalesce(g.Type2SecHoleCount,0) Type2SecHoleCount, coalesce(g.Type2SecHoleDiam,0) Type2SecHoleDiam "
                          + " , gt.\"description\" materialThicknName "
                          + " , gs.\"description\" materialSizeName "
                          + " , gm.material materialName "
                          + " , gtp.gasketType gasketTypeName "
                          + ",  gt.buyPrice / ((gs.materialLength * 1000) * (gs.materialWidth * 1000)) materialCostMm2 "
                          + ",  gt.SellPrice / gt.buyPrice materialMarginPercent "
                          + ", (gt.cuttingTime * 1000) / 60 cuttingSpeedMmSek "
                          + " from gGasket g "
                          + " join gMaterialThickn gt on g.materialThicknId = gt.materialThicknId "
                          + " join gMaterialSize gs on gt.materialSizeId = gs.materialSizeId "
                          + " join gMaterial gm on gs.materialId = gm.materialId "
                          + " join gGasketType gtp on g.gasketTypeId = gtp.gasketTypeId ";

            if (gasketId > 0)
            {
                sSql += " where gasketId = :gasketId ";
            }
            NxParameterCollection pc = new NxParameterCollection();

            if (gasketId > 0)
            {
                pc.Add("gasketId", gasketId);
            }
            string    errText = "";
            DataTable dt      = cdb.getData(sSql, ref errText, pc);

            int errCode = -100;

            if (errText != "")
            {
                gGasketCL gasket = new gGasketCL();
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                gasket.ErrCode    = errCode;
                gasket.ErrMessage = errText;
                gasketList.Add(gasket);
                return(gasketList);
            }

            if (gasketId > 0 && dt.Rows.Count == 0)
            {
                gGasketCL gasket = new gGasketCL();
                gasket.ErrCode    = -100;
                gasket.ErrMessage = "Det finns ingen packning med id " + gasketId.ToString();
                gasketList.Add(gasket);
                return(gasketList);
            }

            foreach (DataRow dr in dt.Rows)
            {
                gGasketCL gasket = new gGasketCL();
                gasket.gasketId             = Convert.ToInt32(dr["gasketId"]);
                gasket.gasketTypeId         = Convert.ToInt32(dr["gasketTypeId"]);
                gasket.materialThicknId     = Convert.ToInt32(dr["materialThicknId"]);
                gasket.outerDiam            = Convert.ToDecimal(dr["outerDiam"]);
                gasket.innerDiam            = Convert.ToDecimal(dr["innerDiam"]);
                gasket.reusableMaterial     = Convert.ToDecimal(dr["reusableMaterial"]);
                gasket.cuttingMargin        = Convert.ToDecimal(dr["cuttingMargin"]);
                gasket.standardPriceProduct = Convert.ToBoolean(dr["standardPriceProduct"]);
                gasket.handlingTime         = Convert.ToDecimal(dr["handlingTime"]);
                gasket.Type2SecHoleCount    = Convert.ToInt32(dr["Type2SecHoleCount"]);
                gasket.Type2SecHoleDiam     = Convert.ToDecimal(dr["Type2SecHoleDiam"]);
                gasket.price                 = Convert.ToDecimal(dr["price"]);
                gasket.note                  = dr["note"].ToString();
                gasket.description           = dr["description"].ToString();
                gasket.materialName          = dr["materialName"].ToString();
                gasket.materialSizeName      = dr["materialSizeName"].ToString();
                gasket.materialThicknName    = dr["materialThicknName"].ToString();
                gasket.gasketTypeName        = dr["gasketTypeName"].ToString();
                gasket.materialCostMm2       = Convert.ToDouble(dr["materialCostMm2"]);
                gasket.materialMarginPercent = Convert.ToDouble(dr["materialMarginPercent"]);
                gasket.cuttingSpeedMmSek     = Convert.ToDouble(dr["cuttingSpeedMmSek"]);
                if (gasket.gasketTypeId == 1 || gasket.gasketTypeId == 2)
                {
                    gasket.cuttingLengthOuterMm = Convert.ToDouble(gasket.outerDiam) * Math.PI;
                    gasket.cuttingLengthInnerMm = Convert.ToDouble(gasket.innerDiam) * Math.PI;
                    Double dArea    = Convert.ToDouble((gasket.outerDiam + (gasket.cuttingMargin * 2)) * (gasket.outerDiam + (gasket.cuttingMargin * 2)));
                    Double reusable = Convert.ToDouble(1 - (gasket.reusableMaterial / 100));
                    gasket.materialArea = dArea * reusable;
                }
                // 2018-08-30
                // Add time to cut the exra holes when typeId = 2
                if (gasket.gasketTypeId == 2)
                {
                    gasket.cuttingLengthOuterMm += (Convert.ToDouble(gasket.Type2SecHoleDiam) * Math.PI) * gasket.Type2SecHoleCount;
                }
                gasket.ErrCode    = 0;
                gasket.ErrMessage = "";
                gasketList.Add(gasket);
            }
            return(gasketList);
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Validates and saves a gasket to the database
        /// Always check ErrCode and ErrMessage for errors
        /// Returns the new created gasket
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="gasket"></param>
        /// <returns></returns>
        /// 2018-08-17 KJBO
        public gGasketCL saveGasket(string ident, gGasketCL gasket)
        {
            gGasketCL  gasketRet = new gGasketCL();
            CReparator cr        = new CReparator();
            int        identOK   = cr.checkIdent(ident);

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

            // If there is only one type of gasket
            // then this value will be set to the
            // gasket type field.
            int gasketTypeId = getGasketTypeId();

            if (gasketTypeId > 0)
            {
                gasket.gasketTypeId = 1;
            }

            if (gasket.gasketTypeId <= 0)
            {
                gasketRet.ErrCode    = -1;
                gasketRet.ErrMessage = "Packningstyp måste väljas";
                return(gasketRet);
            }

            if (gasket.materialThicknId <= 0)
            {
                gasketRet.ErrCode    = -1;
                gasketRet.ErrMessage = "Packningsmaterial måste väljas";
                return(gasketRet);
            }

            if (!validateGasketAgainstMaterialSize(gasket))
            {
                gasketRet.ErrCode    = -1;
                gasketRet.ErrMessage = "Packningens ytterdiameter är större än valt material";
                return(gasketRet);
            }

            if (gasket.outerDiam <= 0 || gasket.outerDiam > 100000)
            {
                gasketRet.ErrCode    = -1;
                gasketRet.ErrMessage = "Ytterdiameter måste vara större än 0 (och mindre än 100000)";
                return(gasketRet);
            }

            if (gasket.innerDiam <= 0 || gasket.innerDiam > 100000)
            {
                gasketRet.ErrCode    = -1;
                gasketRet.ErrMessage = "Innerdiameter måste vara större än 0 (och mindre än 100000)";
                return(gasketRet);
            }

            if (gasket.innerDiam > gasket.outerDiam)
            {
                gasketRet.ErrCode    = -1;
                gasketRet.ErrMessage = "Ytterdiameter måste vara större än innerdiameter";
                return(gasketRet);
            }

            if (gasket.reusableMaterial < 0 || gasket.reusableMaterial >= 100)
            {
                gasketRet.ErrCode    = -1;
                gasketRet.ErrMessage = "Återanvändbart material har felaktig procentsats";
                return(gasketRet);
            }

            if (gasket.cuttingMargin < 0 || gasket.cuttingMargin > 100)
            {
                gasketRet.ErrCode    = -1;
                gasketRet.ErrMessage = "Felaktig skärmarginal";
                return(gasketRet);
            }

            if (gasket.handlingTime < 0 || gasket.handlingTime > 10000)
            {
                gasketRet.ErrCode    = -1;
                gasketRet.ErrMessage = "Felaktig hanteringstid";
                return(gasketRet);
            }

            if (gasket.price < 0 || gasket.price > 1000000)
            {
                gasketRet.ErrCode    = -1;
                gasketRet.ErrMessage = "Felaktigt pris";
                return(gasketRet);
            }

            if (gasket.gasketTypeId == 2)
            {
                if (gasket.Type2SecHoleCount < 1)
                {
                    gasketRet.ErrCode    = -1;
                    gasketRet.ErrMessage = "Antal yttre hål felaktigt angivet";
                    return(gasketRet);
                }

                Decimal materialLeft = gasket.outerDiam - gasket.innerDiam;
                materialLeft = materialLeft / 2;
                //materialLeft -= gasket.cuttingMargin * 2;
                if (gasket.Type2SecHoleDiam > materialLeft)
                {
                    gasketRet.ErrCode    = -1;
                    gasketRet.ErrMessage = "Diameter på yttre hål måste vara mindre än " + materialLeft.ToString() + " mm.";
                    return(gasketRet);
                }


                if (gasket.Type2SecHoleDiam <= 0 || gasket.Type2SecHoleDiam > 100000)
                {
                    gasketRet.ErrCode    = -1;
                    gasketRet.ErrMessage = "Diameter på yttre hål måste vara större än 0 (och mindre än 100000)";
                    return(gasketRet);
                }
            }

            string errTxt = "";

            string sSql = "";

            if (gasket.gasketId == 0)
            {
                sSql = getInsertSql();
            }
            else
            {
                sSql = getUpdateSql();
            }
            NxParameterCollection np  = new NxParameterCollection();
            ReparatorCL           rep = cr.getReparator(ident);

            setParameters(np, gasket, rep);
            errTxt = "";
            int iRc = cdb.updateData(sSql, ref errTxt, np);

            if (errTxt != "")
            {
                if (errTxt.Length > 2000)
                {
                    errTxt = errTxt.Substring(1, 2000);
                }
                gasketRet.ErrCode    = -100;
                gasketRet.ErrMessage = errTxt;
                return(gasketRet);
            }

            if (gasket.gasketId == 0)
            {
                gasket.gasketId = getLastId();
            }
            List <gGasketCL> gasketList = getGasket(ident, gasket.gasketId);

            return(gasketList[0]);
        }
Ejemplo n.º 25
0
        /// <summary>
        /// Returns a list of all registered materials
        /// If materialId <> 0 then only the material ID that
        /// matches the current ID will be returned.
        /// In that case this will be 0 or 1 instance of gMaterialCL
        /// </summary>
        /// <param name="ident"></param>
        /// <returns></returns>
        /// 2018-08-15 KJBO
        public List <gMaterialCL> getMaterial(string ident, int materialId)
        {
            List <gMaterialCL> gmList = new List <gMaterialCL>();

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

            if (identOK == -1)
            {
                gMaterialCL gm = new gMaterialCL();
                gm.ErrCode    = -10;
                gm.ErrMessage = "Ogiltigt login";
                gmList.Add(gm);
                return(gmList);
            }


            string sSql = " SELECT materialId, material, materialShort "
                          + " FROM gMaterial";

            if (materialId != 0)
            {
                sSql += " where materialId = :materialId";
            }

            NxParameterCollection pc = new NxParameterCollection();

            if (materialId != 0)
            {
                pc.Add("materialId", materialId);
            }
            string    errText = "";
            DataTable dt      = cdb.getData(sSql, ref errText, pc);

            int errCode = -100;

            if (errText != "")
            {
                gMaterialCL gm = new gMaterialCL();
                if (errText.Length > 2000)
                {
                    errText = errText.Substring(1, 2000);
                }
                gm.ErrCode    = errCode;
                gm.ErrMessage = errText;
                gmList.Add(gm);
                return(gmList);
            }

            foreach (DataRow dr in dt.Rows)
            {
                gMaterialCL gm = new gMaterialCL();
                gm.ErrCode       = 0;
                gm.ErrMessage    = "";
                gm.material      = dr["material"].ToString();
                gm.materialId    = Convert.ToInt32(dr["materialId"]);
                gm.materialShort = dr["materialShort"].ToString();
                gmList.Add(gm);
            }

            return(gmList);
        }
Ejemplo n.º 26
0
        /// <summary>
        /// Saves material to database
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="mat"></param>
        /// <returns>The saved material</returns>
        public gMaterialCL saveMaterial(string ident, gMaterialCL mat)
        {
            gMaterialCL matRet = new gMaterialCL();

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

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

            if (mat.material == "")
            {
                matRet.ErrCode    = -1;
                matRet.ErrMessage = "Materialnamn måste anges";
                return(matRet);
            }

            if (mat.materialShort == "")
            {
                matRet.ErrCode    = -1;
                matRet.ErrMessage = "Kortnamn måste anges";
                return(matRet);
            }

            string errTxt = "";
            int    iRes   = validateMaterial(mat, ref errTxt);

            if (errTxt != "")
            {
                matRet.ErrCode    = -1;
                matRet.ErrMessage = "Fel vid kontroll av unikt kortnamn. Felmeddelande : " + errTxt;
                return(matRet);
            }

            if (iRes == -2)
            {
                matRet.ErrCode    = -1;
                matRet.ErrMessage = "Fel vid kontroll av unikt kortnamn. Felmeddelande saknas.";
                return(matRet);
            }

            if (iRes == -1)
            {
                matRet.ErrCode    = -1;
                matRet.ErrMessage = "Kortnamn måste vara unikt";
                return(matRet);
            }

            string sSql = "";

            if (mat.materialId == 0)
            {
                sSql = getInsertMatrSQL();
            }
            else
            {
                sSql = getUpdateMatrSQL();
            }

            NxParameterCollection np  = new NxParameterCollection();
            ReparatorCL           rep = cr.getReparator(ident);

            setMatrParameters(np, mat, rep);
            errTxt = "";
            int iRc = cdb.updateData(sSql, ref errTxt, np);

            if (errTxt != "")
            {
                if (errTxt.Length > 2000)
                {
                    errTxt = errTxt.Substring(1, 2000);
                }
                matRet.ErrCode    = -100;
                matRet.ErrMessage = errTxt;
                return(matRet);
            }

            if (mat.materialId == 0)
            {
                mat.materialId = getLastMatrID();
            }
            List <gMaterialCL> matList = getMaterial(ident, mat.materialId);

            return(matList[0]);
        }
Ejemplo n.º 27
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);
        }
Ejemplo n.º 28
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);
        }
Ejemplo n.º 29
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("");
        }
Ejemplo n.º 30
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));
        }