Example #1
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);
        }
Example #2
0
        /// <summary>
        /// This function shall be called when a contact list for sending timereports is requierd
        /// It gives a list of earlier contacts and also if the current contact
        /// (email address) was selected for having a timeReport in history
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="VartOrdernr"></param>
        /// <returns>List of KundEmailCL or error</returns>
        /// 2017-10-24 KJBO
        public List <KundEmailCL> getTimeRecordContactList(string ident, string VartOrdernr)
        {
            CTidRed ct = new CTidRed();

            return(ct.getTimeRecordContactList(ident, VartOrdernr));
        }
Example #3
0
        /// <summary>
        /// This method shall be called in order to display
        /// a list of weeks to be included int the report
        /// Note that there can be weeks that are approved
        /// and those weeks shall not be selectable (only displayed)
        ///
        /// </summary>
        /// <param name="ident">Needs no explanation</param>
        /// <param name="VartOrdernr">The current order</param>
        /// <returns>List of TimeRep2WeekCL</returns>
        // 2017-10-23 KJBO
        public List <TimeRep2WeekCL> getTimeRep2Weeks(string ident, string VartOrdernr)
        {
            CTidRed ct = new CTidRed();

            return(ct.getTimeRep2Weeks(ident, VartOrdernr));
        }
Example #4
0
        /// <summary>
        /// After calling generateTimeReg2Report() there is a possibility
        /// to check the status of the report generation process.
        /// Call this function and you get a status report back
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="VartOrdernr"></param>
        /// <returns>Instance of TimeRep2ProcessCL</returns>
        /// 2017-03-21 KJBO
        public TimeRep2ProcessCL getTimeRep2ReportStatus(string ident, string VartOrdernr)
        {
            CTidRed ct = new CTidRed();

            return(ct.getTimeRep2ReportStatus(ident, VartOrdernr));
        }
Example #5
0
        /// <summary>
        /// Initiate creation of timeRep2Report
        /// parameter p must have at least a VartOrdernr and an email (for the returning mail)
        /// The return value is a filled instance of TimeRep2ProcessCL with init values.
        /// To check the status of the report generation, call getTimeRep2ReportStatus(string VartOrdernr)
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="p"></param>
        /// <param name="bOverrideExisting"></param>
        /// <returns>A filled TimeRep2ProcessCL</returns>
        /// 2017-03-21  KJBO
        /// 2017-05-19 KJBO Added approve parameter
        /// 2017-09-10 KJBO Added detailed parameter
        /// 2017-09-20 KJBO Removed detailed parameter. Using p.ReportType to indicate detail level
        /// where 4 = standard report and 5 = detailed report
        /// 2017-10-24 KJBO Added timeRep2WeekIds which is a list of integer
        /// representing primary key of timeRep2Week. This is the weeks that shall be reported this time
        public TimeRep2ProcessCL generateTimeReg2Report(string ident, TimeRep2ProcessCL p, bool bOverrideExisting, bool approve, List <int> timeRep2WeekIds, List <KundEmailCL> kundEmails)
        {
            CTidRed ct = new CTidRed();

            return(ct.generateTimeReg2Report(ident, p, bOverrideExisting, approve, timeRep2WeekIds, kundEmails));
        }
Example #6
0
        /// <summary>
        /// Get all ServHuvRepTid for one order and
        /// one user ( = anv)
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="vartOrdernr"></param>
        /// <param name="anvID"></param>
        /// <returns></returns>
        /// 2017-03-15 KJBO
        public List <ServHuvRepTidCL> getServHuvRepTidForShAnv(string ident, string vartOrdernr, string anvID)
        {
            CTidRed ct = new CTidRed();

            return(ct.getServHuvRepTidForShAnv(ident, vartOrdernr, anvID));
        }
Example #7
0
        /// <summary>
        /// Get all ServHuvRepTid for one order
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="vartOrdernr"></param>
        /// <returns></returns>
        /// 2017-03-15 KJBO
        public List <ServHuvRepTidCL> getServHuvRepTidForSH(string ident, string vartOrdernr)
        {
            CTidRed ct = new CTidRed();

            return(ct.getServHuvRepTidForSH(ident, vartOrdernr));
        }
Example #8
0
        /// <summary>
        /// Returns a list of valid dates for
        /// registry of time for one ServiceRow
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="SrAltKey">Alternate key</param>
        /// <returns>List of dates or an error message</returns>
        public List <OpenDateCL> getOpenDates(string ident, string SrAltKey)
        {
            CTidRed ct = new CTidRed();

            return(ct.getOpenDates(ident, SrAltKey));
        }
Example #9
0
        /// <summary>
        /// Validates one ServHuvRepTid
        /// If the ID is 0 the this method
        /// assumes that this is a new row
        /// Returns the validated and stored
        /// row with the new ID (if its a new row)
        /// If an error occurs then an error is returned
        /// in the ServHuvTidRep return row
        /// </summary>
        /// <param name="ident">Identity</param>
        /// <param name="sht">ServHuvRepTid</param>
        /// <returns></returns>
        /// 2017-03-15 KJBO
        public ServHuvRepTidCL saveServHuvRepTid(string ident, ServHuvRepTidCL sht)
        {
            CTidRed ct = new CTidRed();

            return(ct.saveServHuvRepTid(ident, sht));
        }
Example #10
0
        /// <summary>
        /// Get valid time types for one order
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="vartOrdernr"></param>
        /// <returns>Valid time types</returns>
        // 2017-03-14 KJBO
        public List <TimeTypeCL> getTimeTypesForOrder(string ident, string vartOrdernr)
        {
            CTidRed cr = new CTidRed();

            return(cr.getTimeTypesForOrder(ident, vartOrdernr));
        }
Example #11
0
        /// <summary>
        /// Return a list of valid timeTypes
        /// The list varies depending on the hosKund and paVerkstad parameters
        /// Normaly you check the corresponding Servicerad and the hosKund and paVerkstad
        /// and send those variables to this function thus getting the right list.
        /// To override (and get alla timeTypes) you just set both parameters to true
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="hosKund"></param>
        /// <param name="paVerkstad"></param>
        /// <param name="all"></param>
        /// <returns></returns>
        public List <TimeTypeCL> getTimeTypes(string ident, bool hosKund, bool paVerkstad)
        {
            CTidRed ct = new CTidRed();

            return(ct.getTimeTypes(ident, hosKund, paVerkstad));
        }
Example #12
0
        /// <summary>
        /// Returns all time registry for a given order
        /// </summary>
        /// <param name="ident">Identity</param>
        /// <param name="vartOrdernr">Order number</param>
        /// <returns>List of RepTidListCL</returns>
        public List <RepTidListCL> getAllTimeForOrder(string ident, string vartOrdernr)
        {
            CTidRed ct = new CTidRed();

            return(ct.getAllTimeForOrder(ident, vartOrdernr));
        }
Example #13
0
        /// <summary>
        /// Sum all registered hours for one servicerad
        /// </summary>
        /// <param name="ident">ident</param>
        /// <param name="srAltKey">alternate key for servicerad</param>
        /// <param name="AnvID">UserID or empty string for all users</param>
        /// <returns>Number of hours or -1 if error occurs</returns>
        /// 2016-06-17 KJBO
        public Decimal SumHoursForServRad(string ident, string srAltKey, string AnvID)
        {
            CTidRed ct = new CTidRed();

            return(ct.SumHoursForServRad(ident, srAltKey, AnvID));
        }
Example #14
0
        /// <summary>
        /// Returns all registered time(all rows)
        /// for a specific service row (identified by srAltKey)
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="srAltKey"></param>
        /// <returns></returns>
        //  2016-11-18 Pergas AB KJBO
        public List <ServRadRepTidCL> getServRadRepTidForSR(string ident, string srAltKey)
        {
            CTidRed ct = new CTidRed();

            return(ct.getServRadRepTidForSR(ident, srAltKey));
        }
Example #15
0
        /// <summary>
        /// Returns a list of valid dates for
        /// registry of time for one ServiceOrder
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="vartOrdernr"></param>
        /// <returns></returns>
        /// 2017-03-15 KJBO
        public List <OpenDateCL> getOpenDatesSH(string ident, string vartOrdernr)
        {
            CTidRed ct = new CTidRed();

            return(ct.getOpenDatesSH(ident, vartOrdernr));
        }
Example #16
0
        /// <summary>
        /// Get one row of ServHuvRepTid identified by PK
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="ID"></param>
        /// <returns></returns>
        /// 2017-03-15 KJBO
        public ServHuvRepTidCL getServHuvRepTid(string ident, int ID)
        {
            CTidRed ct = new CTidRed();

            return(ct.getServHuvRepTid(ident, ID));
        }
Example #17
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);
        }
Example #18
0
        /// <summary>
        /// Toggle the approve flag for one report week
        /// </summary>
        /// <param name="id"></param>
        /// <param name="approve"></param>
        /// <param name="ident"></param>
        /// <returns></returns>
        public ErrorCL toggleApprove(int id, Boolean approve, string ident)
        {
            CTidRed crt = new CTidRed();

            return(crt.toggleApprove(id, approve, ident));
        }