Exemplo n.º 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));
        }
Exemplo n.º 2
0
 private void setParameters(NxParameterCollection np, ServHuvCL sh, string anvId)
 {
     np.Add("vart_ordernr", sh.Vart_ordernr);
     np.Add("ert_ordernr", sh.Ert_ordernr);
     np.Add("kund", sh.Kund);
     np.Add("datum", sh.OrderDate);
     np.Add("momskod", sh.momskod);
     np.Add("generalNote", sh.generalNote);
     np.Add("orderLabel", sh.orderLabel);
     if (sh.IsNew)
     {
         np.Add("reg", anvId);
         np.Add("regdat", System.DateTime.Now);
     }
     else
     {
         np.Add("Uppdaterat", anvId);
         np.Add("Uppdat_dat", System.DateTime.Now);
         np.Add("godkand", sh.Godkand);
         if (sh.Godkand)
         {
             np.Add("godkand_dat", System.DateTime.Today);
         }
         else
         {
             np.Add("godkand_dat", System.DBNull.Value);
         }
     }
     np.Add("OrderAdmin", sh.OrderAdmin);
 }
Exemplo n.º 3
0
 private int validateServHuv(ServHuvCL sh, ref string ErrText)
 {
     if (sh.IsNew)
     {
         int rc = validateVartOrdernr(sh.Vart_ordernr, ref ErrText);
         if (rc < 1)
         {
             return(rc);
         }
     }
     return(1);
 }
Exemplo n.º 4
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));
        }
Exemplo n.º 5
0
        public int saveWeeks(ServHuvCL sh, string RegBy, ref string ErrText)
        {
            string sSql      = "";
            int    countRows = countTr2Weeks(sh.Vart_ordernr, ref ErrText);

            if (ErrText == "")
            {
                if (countRows == 0)
                {
                    sSql = getWeekInsertSQL();
                }
                else
                {
                    sSql = getWeekUpdateSQL();
                }
                NxParameterCollection np = new NxParameterCollection();
                setWeekParameters(np, sh, RegBy, countRows == 0);

                ErrText = "";
                int iRc = cdb.updateData(sSql, ref ErrText, np);
            }

            if (ErrText != "")
            {
                ErrText = "Error while creating date period " + ErrText;
                if (ErrText.Length > 2000)
                {
                    ErrText = ErrText.Substring(1, 2000);
                }
                return(-100);
            }

            CTidRed ct = new CTidRed();

            ct.createTr2Weeks(sh.Vart_ordernr, sh.FromDate, sh.ToDate, ref ErrText);
            if (ErrText != "")
            {
                ErrText = "Error while creating weeks for period " + ErrText;
                if (ErrText.Length > 2000)
                {
                    ErrText = ErrText.Substring(1, 2000);
                }
                return(-100);
            }

            return(1);
        }
Exemplo n.º 6
0
        private void resendToPyramid()
        {
            String sSql = " select vart_ordernr "
                          + " from serviceHuvud "
                          + " where SentToPyramid = false ";
            String    errStr = "";
            DataTable dt     = cdb.getData(sSql, ref errStr);

            ExportToPyramid.CExportToPyramid expPyr = new ExportToPyramid.CExportToPyramid();
            foreach (DataRow dr in dt.Rows)
            {
                ServHuvCL sh = new ServHuvCL();
                sh.Vart_ordernr = dr["vart_ordernr"].ToString();
                sh = getServiceHuvud(sh);
                ErrorCL errCl = expPyr.exportOrder(sh);
            }
        }
Exemplo n.º 7
0
        private void setWeekParameters(NxParameterCollection np, ServHuvCL sh, string RegBy, bool isNew)
        {
            np.Add("vart_ordernr", sh.Vart_ordernr);
            np.Add("fromDate", sh.FromDate);
            np.Add("toDate", sh.ToDate);

            if (isNew)
            {
                np.Add("Reg", RegBy);
                np.Add("Regdat", DateTime.Now);
            }
            else
            {
                np.Add("Uppdaterat", RegBy);
                np.Add("uppdat_dat", DateTime.Now);
            }
        }
Exemplo n.º 8
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>
        private ServHuvCL getServiceHuvud(ServHuvCL sh)
        {
            string sSql = " SELECT sh.vart_ordernr, sh.ert_ordernr, sh.kund, sh.datum, sh.orderAdmin, "
                          + " sh.allrep, sh.godkand, sh.godkand_dat, sh.openForApp, sh.momskod, sh.generalNote, sh.orderLabel "
                          + " FROM ServiceHuvud sh "
                          + " where sh.vart_ordernr = :pVartOrdernr";

            NxParameterCollection np = new NxParameterCollection();

            np.Add("pVartOrdernr", sh.Vart_ordernr);
            string    errText = "";
            DataTable dt      = cdb.getData(sSql, ref errText, np);

            int errCode = -100;

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


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

            DataTable dtWeeks = getWeekPeriod(sh.Vart_ordernr, ref errText);

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


            DataRow   dr  = dt.Rows[0];
            ServHuvCL shc = new ServHuvCL();

            shc.Vart_ordernr = dr["vart_ordernr"].ToString();
            shc.OrderDate    = Convert.ToDateTime(dr["datum"]);
            shc.OrderAdmin   = dr.IsNull("orderAdmin") ? "" : dr["orderAdmin"].ToString();
            shc.OpenForApp   = dr.IsNull("openForApp") ? false : Convert.ToBoolean(dr["openForApp"]);
            shc.Kund         = dr["kund"].ToString();
            shc.Godkand_dat  = dr.IsNull("godkand_dat") ? Convert.ToDateTime("1900-01-01") : Convert.ToDateTime(dr["godkand_dat"]);
            shc.Godkand      = dr.IsNull("godkand") ? false : Convert.ToBoolean(dr["godkand"]);
            shc.Ert_ordernr  = dr["ert_ordernr"].ToString();
            shc.AllRep       = dr.IsNull("allrep") ? false : Convert.ToBoolean(dr["allrep"]);
            shc.momskod      = dr.IsNull("momskod") ? 1 : Convert.ToInt16(dr["momskod"]);
            shc.generalNote  = dr["generalNote"].ToString();
            shc.orderLabel   = dr["orderLabel"].ToString();
            shc.ErrCode      = 0;
            shc.ErrMessage   = "";
            if (dtWeeks == null || dtWeeks.Rows.Count == 0)
            {
                shc.FromDate = Convert.ToDateTime("1900-01-01");
                shc.ToDate   = Convert.ToDateTime("1900-01-01");
            }
            else
            {
                DataRow drWeeks = dtWeeks.Rows[0];
                shc.FromDate = Convert.ToDateTime(drWeeks["fromDate"]);
                shc.ToDate   = Convert.ToDateTime(drWeeks["toDate"]);
            }
            return(shc);
        }
Exemplo n.º 9
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);
        }
Exemplo n.º 10
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)
        {
            CMServHuv cms = new CMServHuv();

            return(cms.saveServHuv(sh, ident));
        }
Exemplo n.º 11
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></returns>

        public ServHuvCL getServiceHuvud(ServHuvCL sh, string ident)
        {
            CMServHuv cms = new CMServHuv();

            return(cms.getServiceHuvud(sh, ident));
        }