Example #1
0
        public void DrawOpeningPage()
        {
            try
            {
                float iVert = 100.0f;
                float iRowHeight = 50f;

                //Place the headings
                UIView[] arrItems = new UIView[3];

                //Create the headings
                iUtils.CreateFormGridItem lblProjIdHdr = new iUtils.CreateFormGridItem();
                UIView lblProjIdHdrVw = new UIView();
                lblProjIdHdr.SetDimensions(10f,iVert, 150f, iRowHeight, 2f, 2f, 2f, 2f);
                lblProjIdHdr.SetLabelText("Project Id");
                lblProjIdHdr.SetBorderWidth(1.0f);
                lblProjIdHdr.SetFontName("Verdana-Bold");
                lblProjIdHdr.SetFontSize(18f);
                lblProjIdHdr.SetCellColour("DarkSlateGrey");
                lblProjIdHdr.SetTextColour("White");
                lblProjIdHdrVw = lblProjIdHdr.GetLabelCell();
                arrItems[0] = lblProjIdHdrVw;

                iUtils.CreateFormGridItem lblDescHdr = new iUtils.CreateFormGridItem();
                UIView lblDescHdrVw = new UIView();
                lblDescHdr.SetDimensions(159f,iVert, 400f, iRowHeight, 2f, 2f, 2f, 2f); //Set left to 1 less so border does not double up
                lblDescHdr.SetLabelText("Description");
                lblDescHdr.SetBorderWidth(1.0f);
                lblDescHdr.SetFontName("Verdana-Bold");
                lblDescHdr.SetFontSize(18f);
                lblDescHdr.SetCellColour("DarkSlateGrey");
                lblDescHdr.SetTextColour("White");
                lblDescHdrVw = lblDescHdr.GetLabelCell();
                arrItems[1] = lblDescHdrVw;

                iUtils.CreateFormGridItem lblDownloadHdr = new iUtils.CreateFormGridItem();
                UIView lblDownloadHdrVw = new UIView();
                lblDownloadHdr.SetDimensions(558f,iVert,120f, iRowHeight, 2f, 2f, 2f, 2f); //Set left to 1 less so border does not double up
                lblDownloadHdr.SetLabelText("Download");
                lblDownloadHdr.SetBorderWidth(1.0f);
                lblDownloadHdr.SetFontName("Verdana-Bold");
                lblDownloadHdr.SetFontSize(18f);
                lblDownloadHdr.SetCellColour("DarkSlateGrey");
                lblDownloadHdr.SetTextColour("White");
                lblDownloadHdrVw = lblDownloadHdr.GetLabelCell();
                arrItems[2] = lblDownloadHdrVw;

                View.AddSubviews(arrItems);

                //Loop around for each item and place in the psuedo table
                object[] arrITP = GetITPsForDownloadLocal();
                if(arrITP[0].ToString() == "Success")
                {
                    object[] arrIdList = (object[])arrITP[1];
                    object[] arrDescList = (object[])arrITP[2];
                    UIView[] arrItems2 = new UIView[4];
                    iProjectsInList = arrIdList.Length;

                    for(int i=0; i< arrIdList.Length; i++)
                    {
                        iVert += (iRowHeight - 1.0f); //Make it 1 less so that the border does not double up
                        iUtils.CreateFormGridItem lblProjId2 = new iUtils.CreateFormGridItem();
                        UIView lblProjIdVw = new UIView();
                        lblProjId2.SetDimensions(10f,iVert, 150f, iRowHeight, 2f, 2f, 2f, 2f);
                        lblProjId2.SetLabelText(arrIdList[i].ToString());
                        lblProjId2.SetBorderWidth(1.0f);
                        lblProjId2.SetFontName("Verdana");
                        lblProjId2.SetFontSize(14f);
                        lblProjId2.SetTag(10000 * (i+1));
                        lblProjIdVw = lblProjId2.GetLabelCell();
                        arrItems2[0] = lblProjIdVw;

                        iUtils.CreateFormGridItem lblDesc = new iUtils.CreateFormGridItem();
                        UIView lblDescVw = new UIView();
                        lblDesc.SetDimensions(159f,iVert, 400f, iRowHeight, 2f, 2f, 2f, 2f); //Set left to 1 less so border does not double up
                        lblDesc.SetLabelText(arrDescList[i].ToString());
                        lblDesc.SetBorderWidth(1.0f);
                        lblDesc.SetFontName("Verdana");
                        lblDesc.SetFontSize(14f);
                        lblDesc.SetTag(11000 * (i+1));
                        lblDescVw = lblDesc.GetLabelCell();
                        arrItems2[1] = lblDescVw;

                        iUtils.CreateFormGridItem btnDownload = new iUtils.CreateFormGridItem();
                        UIView btnDownloadVw = new UIView();
                        btnDownload.SetDimensions(558f,iVert, 120f, iRowHeight, 8f, 4f, 8f, 4f); //Set left to 1 less so border does not double up
                        btnDownload.SetLabelText("Download");
                        btnDownload.SetBorderWidth(1.0f);
                        btnDownload.SetFontName("Verdana");
                        btnDownload.SetFontSize(14f);
                        btnDownload.SetTag(12000 * (i+1));
                        btnDownloadVw = btnDownload.GetButtonCell();

                        UIButton btnDownloadButton = new UIButton();
                        btnDownloadButton = btnDownload.GetButton();
                        btnDownloadButton.TouchUpInside += (sender,e) => {DownloadITP(sender, e);};
                        arrItems2[2] = btnDownloadVw;

                        UILabel btnStatus = new UILabel();
                        btnStatus.Tag = 13000 * (i+1);
                        btnStatus.Text = "0";
                        btnStatus.Hidden = true;
                        arrItems2[3] = btnStatus;

                        View.AddSubviews(arrItems2);

                    }
                }
                progBarQuestions = progBarQuestionVw.CreateProgressBar();
                progBarQuestionVw.SetProgressBarTitle("Downloading suite of questions");

                progBarTypes = progBarTypesVw.CreateProgressBar();
                progBarTypesVw.SetProgressBarTitle("Downloading suite of ITP types");

                progBarSections = progBarSectionsVw.CreateProgressBar();
                progBarSectionsVw.SetProgressBarTitle("Downloading suite of ITP sections");

                progBarInventoryItems = progBarInventoryVw.CreateProgressBar();
                progBarInventoryVw.SetProgressBarTitle("Downloading suite of inventory items");

                progBarBatteryFuseTypesItems = progBarBatteryFuseTypesVw.CreateProgressBar();
                progBarBatteryFuseTypesVw.SetProgressBarTitle("Downloading battery fuse types items");

                progBarValidHierarchyItems = progBarValidHierarchyVw.CreateProgressBar();
                progBarValidHierarchyVw.SetProgressBarTitle("Downloading valid hierarchy items");

                progBarProjITPHeader = progBarProjITPHeaderVw.CreateProgressBar();
                progBarProjITPQuestions = progBarProjITPQuestionsVw.CreateProgressBar();
                progBarProjITPSection10 = progBarProjITPSection10Vw.CreateProgressBar();
                progBarProjITPRFU = progBarProjITPRFUVw.CreateProgressBar();

                View.Add(progBarQuestions);
                View.Add(progBarTypes);
                View.Add(progBarSections);
                View.Add(progBarProjITPHeader);
                View.Add(progBarProjITPQuestions);
                View.Add(progBarInventoryItems);
                View.Add(progBarBatteryFuseTypesItems);
                View.Add(progBarValidHierarchyItems);
                View.Add(progBarProjITPSection10);
                View.Add(progBarProjITPRFU);

            }
            catch (Exception except)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog(except.Message);
            }
        }
Example #2
0
        public void CheckUnsaved()
        {
            //First of all validate anything required
            switch(m_iValidateType)
            {
                case 9: //Cutover Load
                    if(!ValidateCutoverLoad(m_sender, 1))
                    {
                        gbSuppressSecondCheck = false;
                        return;
                    }
                    break;
                case 10: //Cutover Date
                    if(!ValidateCutoverDate(m_sender, 1))
                    {
                        gbSuppressSecondCheck = false;
                        return;
                    }
                    break;
            }

            UILabel txtEditStatus = (UILabel)View.ViewWithTag (80);
            int iStatus = Convert.ToInt32 (txtEditStatus.Text);
            if (iStatus == 0)
            {
                DownloadedITPsScreen downloadScreen = new DownloadedITPsScreen ();
                downloadScreen = GetDownloadedITPsScreen ();
                this.NavigationController.PopToViewController (downloadScreen, true);
            }
            else
            {
                //Ask the question
                iUtils.AlertBox alert2 = new iUtils.AlertBox();
                alert2.CreateAlertYesNoCancelDialog();
                alert2.SetAlertMessage("You have unsaved changes. Only chnages to questions will be saved. RFU changes must be committed using the buttons. Do you wish to save these changes before going back to the downloaded screen?");
                alert2.ShowAlertBox();

                UIAlertView alert3 = alert2.GetAlertDialog();
                alert3.Clicked += (sender2, e2)  => {CheckSaveChangesQuestion(sender2, e2, e2.ButtonIndex);};

            }
        }
Example #3
0
        public bool ValidateSuite(object sender, int iFromBackButton)
        {
            if(gbSuppressSecondCheck)
            {
                return true;
            }

            if(iFromBackButton == 1)
            {
                gbSuppressSecondCheck = true;
            }

            UITextField txtSuite = (UITextField)sender;
            string sSuite = txtSuite.Text;
            sSuite = sSuite.ToUpper();
            txtSuite.Text = sSuite;
            clsTabletDB.ITPValidHierarchy ITPValidHierarchy = new clsTabletDB.ITPValidHierarchy();
            bool bSuiteCheck = ITPValidHierarchy.IsValidItem(sSuite, 2);
            int iTagId = txtSuite.Tag;
            int iPwrIdRow =  iTagId/ iEquipmentSuiteTagId;
            int iStringRow = iTagId - (iPwrIdRow * iEquipmentSuiteTagId);
            int iHiddenBankId =  iEquipmentSuiteHiddenTagId * iPwrIdRow + iStringRow;
            UILabel hfHiddenSuite = (UILabel)View.ViewWithTag (iHiddenBankId);
            string sOldSuite = hfHiddenSuite.Text;

            if (!bSuiteCheck && sSuite != "")
            {
                iUtils.AlertBox alert = new iUtils.AlertBox ();
                alert.CreateErrorAlertDialog ("Please enter a valid suite or search from the list by using the button underneath");
                txtSuite.Text = hfHiddenSuite.Text;
                txtSuite.ResignFirstResponder();
                txtSuite.BecomeFirstResponder();
                m_bSuppressMove = true;
                return false;
            }
            else
            {
                if(sOldSuite != sSuite) //Only do something if there has been a chnage
                {
                    hfHiddenSuite.Text = txtSuite.Text;
                    UILabel hfRowStatus = (UILabel)View.ViewWithTag(iEquipmentRowStatusTagId * iPwrIdRow + iStringRow);
                    hfRowStatus.Text = "1";

                    SetSectionValueChanged(m_iEquipmentSectionCounter + 1);
                    SetAnyValueChanged(sender, null);

                    //Ask the question
                    if(iFromBackButton == 0)
                    {
                        int iSectionTagId = iEquipmentRowSectionCounterTagId * iPwrIdRow + iStringRow;
                        UILabel hfSectionId = (UILabel)View.ViewWithTag (iSectionTagId);
                        int iSectionId = Convert.ToInt32(hfSectionId.Text);

                        int iPwrIdTagId = iEquipmentRowPwrIdTagId * iPwrIdRow + iStringRow;
                        UILabel hfPwrId = (UILabel)View.ViewWithTag (iPwrIdTagId);
                        string sPwrId = hfPwrId.Text;

                        int iFloorId =  iEquipmentFloorTagId * iPwrIdRow + iStringRow;
                        UITextField txtFloor = (UITextField)View.ViewWithTag (iFloorId);
                        string sFloor = txtFloor.Text;

                        if(sOldSuite != sSuite)
                        {
                            if(CheckSameSuiteExists(sFloor, sOldSuite,iSectionId, iPwrIdRow, sPwrId, iStringRow))
                            {
                                iUtils.AlertBox alert2 = new iUtils.AlertBox();
                                alert2.CreateAlertYesNoDialog();
                                alert2.SetAlertMessage("Do you wish to change all other items on PwrId " + sPwrId + " on the floor " +
                                                       sFloor + " and the suite " + sOldSuite + " to suite " +  sSuite + " ?");
                                alert2.ShowAlertBox();

                                UIAlertView alert3 = alert2.GetAlertDialog();
                                alert3.Clicked += (sender2, e2)  => {
                                    CheckSuiteChangesQuestion(sender2, e2, e2.ButtonIndex, iStringRow, sPwrId, sFloor,
                                                              sSuite, sOldSuite, iSectionId, iPwrIdRow);
                                };
                            }
                        }
                    }
                }
                return true;
            }
        }
Example #4
0
        //This is all in a separate thread so to display anything you have to use the RunOnUiThread method
        public bool RunDownload(string sId, string sDescription, UIButton button, string sUser, string sSessionId)
        {
            try
            {
                string sRtnMsg = "";
                if (!DownloadProjectITPInfo(sId, sDescription,sUser, sSessionId))
                {
                    this.InvokeOnMainThread(() => {
                        iUtils.AlertBox alert = new iUtils.AlertBox();
                        alert.CreateAlertDialog();
                        alert.SetAlertMessage("Cannot download ITP info for Project " + sId);
                        alert.ShowAlertBox();
                        ReEnableButtons();
                        UILabel btnStatus = (UILabel)View.ViewWithTag (button.Tag /12000 * 13000);
                        button.Enabled = false; btnStatus.Text = "1"; });
                    return false;
                }
                else
                {
                    if (!SetITPDownloaded(sId, sUser, sSessionId, ref sRtnMsg))
                    {
                        this.InvokeOnMainThread(() => {
                            iUtils.AlertBox alert = new iUtils.AlertBox();
                            alert.CreateAlertDialog();
                            alert.SetAlertMessage("Cannot mark ITP info for Project " + sId + " as successfully downloaded. Please contact SCMS admin for help.");
                            alert.ShowAlertBox();
                            ReEnableButtons();
                            UILabel btnStatus = (UILabel)View.ViewWithTag (button.Tag /12000 * 13000);
                            button.Enabled = false; btnStatus.Text = "1"; });
                        return false;
                    }
                    else
                    {
                        this.InvokeOnMainThread(() => {
                            iUtils.AlertBox alert = new iUtils.AlertBox();
                            alert.CreateAlertDialog();
                            alert.SetAlertMessage("ITP info for Project " + sId + " successfully downloaded. You can now work offline.");
                            alert.ShowAlertBox();
                            ReEnableButtons();
                            UILabel btnStatus = (UILabel)View.ViewWithTag (button.Tag /12000 * 13000);
                            button.Enabled = false; btnStatus.Text = "1"; });
                        return true;
                    }
                }
            }
            catch (Exception ex)
            {

                this.InvokeOnMainThread(() => {
                    iUtils.AlertBox alert = new iUtils.AlertBox();
                    alert.CreateAlertDialog();
                    alert.SetAlertMessage(ex.Message.ToString());
                    alert.ShowAlertBox();
                    ReEnableButtons();
                });

                return false;
            }
        }
Example #5
0
        //Here iType means 1 = Batteries, 2 = Solar strings
        public bool ValidateBankNo(object sender, int iType, int iFromBackButton)
        {
            if(gbSuppressSecondCheck)
            {
                return true;
            }

            if(iFromBackButton == 1)
            {
                gbSuppressSecondCheck = true;
            }

            UITextField txtBankNo = (UITextField)sender;
            string sBankNo = txtBankNo.Text;
            sBankNo = sBankNo.ToUpper();
            txtBankNo.Text = sBankNo;
            clsTabletDB.ITPValidHierarchy ITPValidHierarchy = new clsTabletDB.ITPValidHierarchy();
            bool bBankCheck = ITPValidHierarchy.IsValidItem(sBankNo, iType + 5);
            int iTagId = txtBankNo.Tag;
            int iPwrIdRow =  iTagId/ iEquipmentStringTagId;
            int iStringRow = iTagId - (iPwrIdRow * iEquipmentStringTagId);
            int iHiddenBankId =  iEquipmentStringHiddenTagId * iPwrIdRow + iStringRow;
            UILabel hfHiddenBankNo = (UILabel)View.ViewWithTag (iHiddenBankId);

            if (!bBankCheck && sBankNo != "")
            {
                iUtils.AlertBox alert = new iUtils.AlertBox ();
                alert.CreateErrorAlertDialog ("Please enter a valid bank no or select from the list by using the button to the immediate right");
                txtBankNo.Text = hfHiddenBankNo.Text;
                txtBankNo.ResignFirstResponder();
                txtBankNo.BecomeFirstResponder();
                m_bSuppressMove = true;
                return false;
            }
            else
            {
                if(hfHiddenBankNo.Text != txtBankNo.Text)
                {
                    hfHiddenBankNo.Text = txtBankNo.Text;
                    UILabel hfRowStatus = (UILabel)View.ViewWithTag(iEquipmentRowStatusTagId * iPwrIdRow + iStringRow);
                    hfRowStatus.Text = "1";
                    SetSectionValueChanged(m_iEquipmentSectionCounter + 1);
                    SetAnyValueChanged(sender, null);
                }
                return true;
            }
        }
Example #6
0
        public bool ValidateMaximoAssetId(object sender, int iFromBackButton)
        {
            if(gbSuppressSecondCheck)
            {
                return true;
            }

            if(iFromBackButton == 1)
            {
                gbSuppressSecondCheck = true;
            }

            UITextField txtMaximoAssetId = (UITextField)sender;
            string sMaximoAssetId = txtMaximoAssetId.Text;
            sMaximoAssetId = Regex.Replace(sMaximoAssetId, @"[^\d]+","");
            sMaximoAssetId = sMaximoAssetId.PadLeft(10,'0');
            int iTagId = txtMaximoAssetId.Tag;
            int iPwrIdRow =  iTagId/ iEquipmentMaximoAssetTagId;
            int iStringRow = iTagId - (iPwrIdRow * iEquipmentMaximoAssetTagId);
            int iHiddenMaxAssetId =  iEquipmentMaximoAssetHiddenTagId * iPwrIdRow + iStringRow;
            UILabel hfHiddenMaxAssetId = (UILabel)View.ViewWithTag (iHiddenMaxAssetId);
            txtMaximoAssetId.Text = sMaximoAssetId;

            if (sMaximoAssetId.Length > 10)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox ();
                alert.CreateErrorAlertDialog ("The maximo asset id number cannot be more than 10 characters. It has been truncated. Please enter a valid 10 character or less asset number.");
                string sMaximoAssetReturn = sMaximoAssetId.Substring(0,10);
                txtMaximoAssetId.Text = sMaximoAssetReturn;
                txtMaximoAssetId.ResignFirstResponder();
                txtMaximoAssetId.BecomeFirstResponder();
                m_bSuppressMove = true;
                return false;
            }

            if(hfHiddenMaxAssetId.Text != sMaximoAssetId)
            {
                hfHiddenMaxAssetId.Text = sMaximoAssetId;
                UILabel hfRowStatus = (UILabel)View.ViewWithTag(iEquipmentRowStatusTagId * iPwrIdRow + iStringRow);
                hfRowStatus.Text = "1";
                SetSectionValueChanged(m_iEquipmentSectionCounter + 1);
                SetAnyValueChanged(sender, null);
            }
            return true;
        }
        public void RemoveITP(object sender, EventArgs e)
        {
            clsTabletDB.ITPCollection coll = new clsTabletDB.ITPCollection ();
            UIButton btnClicked = (UIButton)sender;
            int iClicked = btnClicked.Tag;
            UILabel projId = (UILabel)View.ViewWithTag (iClicked / iRemoveBtnTagId * iProjectIdTagId);
            string sId = projId.Text;
            string sRtnMsg = "";

            if (!coll.ITPLocalRemove (sId, ref sRtnMsg))
            {
                iUtils.AlertBox alert = new iUtils.AlertBox ();
                alert.CreateAlertDialog ();
                alert.SetAlertMessage (sRtnMsg);
                alert.ShowAlertBox ();
            }
            else //Disable the remove, open and upload buttons for this row
            {
                UIButton btnOpen = (UIButton)View.ViewWithTag (iOpenBtnTagId * iClicked / iRemoveBtnTagId);
                UIButton btnUpload = (UIButton)View.ViewWithTag (iUploadBtnTagId * iClicked / iRemoveBtnTagId);
                UIButton btnRemove = (UIButton)View.ViewWithTag (iRemoveBtnTagId * iClicked / iRemoveBtnTagId);
                btnOpen.Enabled = false;
                btnUpload.Enabled = false;
                btnRemove.Enabled = false;

                UILabel hfbtnOpenStatus = (UILabel)View.ViewWithTag (iOpenBtnStatusTagId * iClicked / iRemoveBtnTagId);
                UILabel hfbtnUploadStatus = (UILabel)View.ViewWithTag (iUploadBtnStatusTagId * iClicked / iRemoveBtnTagId);
                UILabel hfbtnRemoveStatus = (UILabel)View.ViewWithTag (iRemoveBtnStatusTagId * iClicked / iRemoveBtnTagId);
                hfbtnOpenStatus.Text = "0";
                hfbtnUploadStatus.Text = "0";
                hfbtnRemoveStatus.Text = "0";

                //Update the status text too
                UILabel lblStatus = (UILabel)View.ViewWithTag (iClicked/ iRemoveBtnTagId * iProjStatusTagId);
                lblStatus.Text = "Removed completely. Reopening thsi screen will remove the project from this listing.";

                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateAlertDialog();
                alert.SetAlertMessage("ITP info for Project " + sId + " successfully removed.");
                alert.ShowAlertBox();
            }
        }
Example #8
0
 public void SaveAllSections()
 {
     //Cycle through each section
     for (int i = 0; i< m_iSections; i++)
     {
         if(!SaveSection(iSaveSectionBtnTagId * (i+1)))
         {
             iUtils.AlertBox alert = new iUtils.AlertBox();
             UILabel lblSectionDesc = (UILabel)View.ViewWithTag (iSectionDescTagId * (i+1));
             string sDesc = lblSectionDesc.Text;
             alert.CreateErrorAlertDialog("Could not save section " + sDesc + ". Exiting.");
             return;
         }
     }
 }
Example #9
0
        public void DrawOpeningPage()
        {
            try
            {
                DateClass dt = new DateClass();
                int iColNo = 0;
                int iSectionId = 0;
                bool bYes;
                bool bNo;
                bool bNA;
                string sId = m_sPassedId;
                float iVert = 0f;
                float iSectionHdrRowHeight = 40f;
                float iQuestionHdrRowHeight = 20f;
                float iQuestionRowHeight = 30f;
                float iQuestionRowVert = 0f;
                float iTotalHeight = 0f;
                float iHeightToAdd = iQuestionRowHeight;
                float iHeightToAdd2 = iHeightToAdd;
                bool bDisableRow = false;
                bool bFullyCommitted = false;
                bool bHideComplete = true;
                bool[] bHideSections = new bool[1];
                UIView[] arrItems = new UIView[5];
                UIView[] arrItems2 = new UIView[6];
                UIView[] arrItems3 = new UIView[5];
                UIView[] arrItems4 = new UIView[6];
                UIView[] arrItems6 = new UIView[11];
                UIView[] arrItems7 = new UIView[7];
                UIView[] arrItems14 = new UIView[8];

                UIScrollView layout = new UIScrollView();
                layout.Frame = new RectangleF(0f,35f,1000f,620f);
                layout.Tag = 2;
                clsTabletDB.ITPDocumentSection ITPSection = new clsTabletDB.ITPDocumentSection();

                //Get all the sections and place a table layout for each one
                DataSet arrITPSections = ITPSection.GetLocalITPSections(sId);

                if (arrITPSections.Tables.Count > 0)
                {
                    int iRows = arrITPSections.Tables[0].Rows.Count;
                    m_iSections = iRows;
                    m_iQuestionSections = iRows;
                    Array.Resize<bool>(ref bHideSections, iRows);

                    for (int i = 0; i < iRows; i++)
                    {
                        bHideSections[i] = false;

                        //Add in a view for each section.
                        UIView SectionRow = new UIView();
                        iSectionId = iSectionTagId * (i+1);
                        SectionRow.Tag = iSectionId;
                        SectionRow.Frame = new RectangleF(0f,iVert,1000f,iSectionHdrRowHeight);

                        layout.AddSubview(SectionRow);

                        //Add in the section title and buttons for each section header
                        UILabel hfSection = new UILabel();
                        iColNo = arrITPSections.Tables[0].Columns["SectionId"].Ordinal;
                        hfSection.Text = arrITPSections.Tables[0].Rows[i].ItemArray[iColNo].ToString();
                        hfSection.Tag = iSectionDBIdTagId * (i+1);
                        hfSection.Hidden = true;
                        SectionRow.AddSubview(hfSection);

                        iUtils.CreateFormGridItem Section = new iUtils.CreateFormGridItem();
                        UIView SectionVw = new UIView();
                        iColNo = arrITPSections.Tables[0].Columns["Name"].Ordinal;
                        Section.SetDimensions(0f,0f, 300f, iSectionHdrRowHeight, 4f, 7.5f, 4f, 7.5f);
                        Section.SetLabelText(arrITPSections.Tables[0].Rows[i].ItemArray[iColNo].ToString());
                        Section.SetBorderWidth(0.0f);
                        Section.SetFontName("Verdana-Bold");
                        Section.SetTextColour("White");
                        Section.SetFontSize(12f);
                        Section.SetCellColour("DarkSlateGrey");
                        Section.SetTag(iSectionDescTagId * (i+1));
                        SectionVw = Section.GetLabelCell();
                        arrItems[0] = SectionVw;

                        bool bAnyCommitted = ITPSection.ProjectSectionRFUAnyPwrIdCommitted(m_sPassedId);

                        if(bAnyCommitted)
                        {
                            bFullyCommitted = true;
                            bHideComplete = false;
                        }
                        else
                        {
                            bFullyCommitted = false;
                            bHideComplete = true;
                        }

                        iUtils.CreateFormGridItem SectionCompleteLabel = new iUtils.CreateFormGridItem();
                        UIView SectionCompleteLabelVw = new UIView();
                        SectionCompleteLabel.SetDimensions(300f,0f, 250f, iSectionHdrRowHeight, 4f, 7.5f, 4f, 7.5f);
                        if(bFullyCommitted)
                        {
                            SectionCompleteLabel.SetLabelText("COMMITTED");
                        }
                        else
                        {
                            SectionCompleteLabel.SetLabelText("COMPLETED");
                        }
                        SectionCompleteLabel.SetBorderWidth(0.0f);
                        SectionCompleteLabel.SetFontName("Verdana-Bold");
                        SectionCompleteLabel.SetTextColour("Bright Yellow");
                        SectionCompleteLabel.SetFontSize(14f);
                        SectionCompleteLabel.SetCellColour("DarkSlateGrey");
                        SectionCompleteLabel.SetTag(iSectionCompleteLabelTagId * (i+1));
                        SectionCompleteLabel.SetHidden(bHideComplete);
                        SectionCompleteLabelVw = SectionCompleteLabel.GetLabelCell();
                        arrItems[1] = SectionCompleteLabelVw;

                        iUtils.CreateFormGridItem btnSave = new iUtils.CreateFormGridItem();
                        UIView btnSaveVw = new UIView();
                        btnSave.SetDimensions(550f,0f, 150f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                        btnSave.SetLabelText("Save Section");
                        btnSave.SetBorderWidth(0.0f);
                        btnSave.SetFontName("Verdana");
                        btnSave.SetFontSize(12f);
                        btnSave.SetTag(iSaveSectionBtnTagId * (i+1));
                        btnSave.SetCellColour("DarkSlateGrey");
                        btnSaveVw = btnSave.GetButtonCell();

                        UIButton btnSaveButton = new UIButton();
                        btnSaveButton = btnSave.GetButton();
                        btnSaveButton.TouchUpInside += (sender,e) => {SaveThisSection(sender, e);};

                        arrItems[2] = btnSaveVw;

                        iUtils.CreateFormGridItem btnExpand = new iUtils.CreateFormGridItem();
                        UIView btnExpandVw = new UIView();
                        btnExpand.SetDimensions(700f,0f, 50f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                        btnExpand.SetLabelText("+");
                        btnExpand.SetBorderWidth(0.0f);
                        btnExpand.SetFontName("Verdana");
                        btnExpand.SetFontSize(12f);
                        btnExpand.SetTag(iExpandSectionBtnTagId * (i+1));
                        btnExpand.SetCellColour("DarkSlateGrey");
                        btnExpandVw = btnExpand.GetButtonCell();

                        UIButton btnExpandButton = new UIButton();
                        btnExpandButton = btnExpand.GetButton();
                        btnExpandButton.Enabled = false;
                        btnExpandButton.TouchUpInside += (sender,e) => {ExpandSection(sender, e);};

                        arrItems[3] = btnExpandVw;

                        iUtils.CreateFormGridItem btnContract = new iUtils.CreateFormGridItem();
                        UIView btnContractVw = new UIView();
                        btnContract.SetDimensions(750f,0f, 50f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                        btnContract.SetLabelText("-");
                        btnContract.SetBorderWidth(0.0f);
                        btnContract.SetFontName("Verdana");
                        btnContract.SetFontSize(12f);
                        btnContract.SetTag(iContractSectionBtnTagId * (i+1));
                        btnContract.SetCellColour("DarkSlateGrey");
                        btnContractVw = btnContract.GetButtonCell();

                        UIButton btnContractButton = new UIButton();
                        btnContractButton = btnContract.GetButton();
                        btnContractButton.TouchUpInside += (sender,e) => {ContractSection(sender, e);};

                        arrItems[4] = btnContractVw;

                        SectionRow.AddSubviews(arrItems);

                        iVert += iSectionHdrRowHeight;

                        //Now add a new view to this view to hold another view containing all the questions for this section
                        UIView QuestionsTableRow = new UIView();
                        float iQuestionRowVertTop = iVert;
                        QuestionsTableRow.Frame = new RectangleF(0f,iQuestionRowVertTop,1000f,iQuestionHdrRowHeight);
                        iSectionId = iContainerSectionTagId * (i+1);
                        QuestionsTableRow.Tag = iSectionId;
                        layout.AddSubview(QuestionsTableRow);

                        //Get all the questions in this section and place a row for each one
                        iColNo = arrITPSections.Tables[0].Columns["SectionId"].Ordinal;
                        int iDBSectionId = Convert.ToInt32( arrITPSections.Tables[0].Rows[i].ItemArray[iColNo]);
                        iColNo = arrITPSections.Tables[0].Columns["QuestionType"].Ordinal;
                        int iQuestionTypes = Convert.ToInt32(arrITPSections.Tables[0].Rows[i].ItemArray[iColNo]);

                        DataSet arrITPSectionQuestions = ITPSection.GetLocalITPSectionQuestions(sId, iDBSectionId);

                        if (arrITPSectionQuestions.Tables.Count > 0)
                        {
                            int iQuestionRows = arrITPSectionQuestions.Tables[0].Rows.Count;

                            //Put in the header row
                            iUtils.CreateFormGridItem lblQuestionHdr = new iUtils.CreateFormGridItem();
                            UIView lblQuestionHdrVw = new UIView();
                            lblQuestionHdr.SetDimensions(0f,0f, 400f, iQuestionHdrRowHeight, 4f, 1f, 4f, 1f);
                            lblQuestionHdr.SetLabelText("Question");
                            lblQuestionHdr.SetBorderWidth(0.0f);
                            lblQuestionHdr.SetFontName("Verdana-Bold");
                            lblQuestionHdr.SetTextAlignment("Centre");
                            lblQuestionHdr.SetFontSize(12f);
                            lblQuestionHdr.SetCellColour("Pale Yellow");
                            lblQuestionHdr.SetTag(iQuestionHdrTagId * (i+1));
                            lblQuestionHdrVw = lblQuestionHdr.GetLabelCell();
                            arrItems2[0] = lblQuestionHdrVw;

                            iUtils.CreateFormGridItem lblAnswerHdr = new iUtils.CreateFormGridItem();
                            UIView lblAnswerHdrVw = new UIView();
                            lblAnswerHdr.SetDimensions(400f,0f, 200f, iQuestionHdrRowHeight, 4f, 1f, 4f, 1f);
                            lblAnswerHdr.SetLabelText("Answer");
                            lblAnswerHdr.SetBorderWidth(0.0f);
                            lblAnswerHdr.SetFontName("Verdana-Bold");
                            lblAnswerHdr.SetTextAlignment("Centre");
                            lblAnswerHdr.SetFontSize(12f);
                            lblAnswerHdr.SetCellColour("Pale Yellow");
                            lblAnswerHdr.SetTag(iAnswerHdrTagId * (i+1));
                            lblAnswerHdrVw = lblAnswerHdr.GetLabelCell();
                            arrItems2[1] = lblAnswerHdrVw;

                            iUtils.CreateFormGridItem lblCommentsHdr = new iUtils.CreateFormGridItem();
                            UIView lblCommentsHdrVw = new UIView();
                            lblCommentsHdr.SetDimensions(600f,0f, 200f, iQuestionHdrRowHeight, 4f, 1f, 4f, 1f);
                            lblCommentsHdr.SetLabelText("Comments");
                            lblCommentsHdr.SetBorderWidth(0.0f);
                            lblCommentsHdr.SetFontName("Verdana-Bold");
                            lblCommentsHdr.SetTextAlignment("Centre");
                            lblCommentsHdr.SetFontSize(12f);
                            lblCommentsHdr.SetCellColour("Pale Yellow");
                            lblCommentsHdr.SetTag(iCommentsHdrTagId * (i+1));
                            lblCommentsHdrVw = lblCommentsHdr.GetLabelCell();
                            arrItems2[2] = lblCommentsHdrVw;
                            layout.AddSubview(QuestionsTableRow);

                            float iSectionQuestionsHeight = iQuestionHdrRowHeight;
                            UILabel hfSectionHeight = new UILabel();
                            hfSectionHeight.Tag = iSectionHeightTagId * (i+1);
                            hfSectionHeight.Hidden = true;
                            arrItems2[3] = hfSectionHeight;

                            UILabel hfSectionRows = new UILabel();
                            hfSectionRows.Tag = iSectionRowsTagId * (i+1);
                            hfSectionRows.Hidden = true;
                            hfSectionRows.Text = iQuestionRows.ToString();
                            arrItems2[4] = hfSectionRows;

                            UILabel hfSectionStatus = new UILabel();
                            hfSectionStatus.Tag = iSectionStatusTagId * (i+1);
                            hfSectionStatus.Hidden = true;
                            hfSectionStatus.Text = "0";
                            arrItems2[5] = hfSectionStatus;

                            QuestionsTableRow.AddSubviews(arrItems2);

                            iVert += iQuestionHdrRowHeight;
                            iQuestionRowVert = iQuestionHdrRowHeight;
                            bool bSectionFullyCompleted = true;

                            for (int j = 0; j < iQuestionRows; j++)
                            {

                                UILabel hfRowStatus = new UILabel();
                                hfRowStatus.Text = "0";
                                hfRowStatus.Tag = (ihfRowStatusTagId + (j+1)) * (i+1);
                                hfRowStatus.Hidden = true;
                                arrItems3[0] = hfRowStatus;

                                iColNo = arrITPSectionQuestions.Tables[0].Columns["AutoId"].Ordinal;
                                string sAutoId = arrITPSectionQuestions.Tables[0].Rows[j].ItemArray[iColNo].ToString();
                                iColNo = arrITPSectionQuestions.Tables[0].Columns["Question"].Ordinal;
                                string sQuestion = arrITPSectionQuestions.Tables[0].Rows[j].ItemArray[iColNo].ToString();

                                UILabel hfAutoId = new UILabel();
                                hfAutoId.Text = sAutoId;
                                hfAutoId.Tag = (ihfAutoRowTagId + (j+1)) * (i+1);
                                hfAutoId.Hidden = true;
                                arrItems3[1] = hfAutoId;

                                //Put in the question
                                iUtils.CreateFormGridItem rowQuestion = new iUtils.CreateFormGridItem();
                                UIView rowQuestionVw = new UIView();
                                rowQuestion.SetLabelWrap(1); //This means the text will be wrapped in the label
                                rowQuestion.SetDimensions(0f,iQuestionRowVert, 400f, iQuestionRowHeight, 2f, 2.5f, 2f, 2.5f);
                                rowQuestion.SetLabelText(sQuestion);
                                rowQuestion.SetBorderWidth(0.0f);
                                rowQuestion.SetFontName("Verdana");
                                rowQuestion.SetFontSize(12f);
                                rowQuestion.SetTag((iQuestionRowTagId + (j+1)) * (i+1));

                                if (j % 2 == 0)
                                {
                                    rowQuestion.SetCellColour("Pale Blue");
                                }
                                else
                                {
                                    rowQuestion.SetCellColour("Sky Blue");
                                }

                                rowQuestionVw = rowQuestion.GetLabelCell();
                                iHeightToAdd = rowQuestion.GetCellHeight();

                                //Put in the answer
                                iColNo = arrITPSectionQuestions.Tables[0].Columns["Yes"].Ordinal;
                                bYes = Convert.ToBoolean(arrITPSectionQuestions.Tables[0].Rows[j].ItemArray[iColNo]);

                                iColNo = arrITPSectionQuestions.Tables[0].Columns["No"].Ordinal;
                                bNo = Convert.ToBoolean(arrITPSectionQuestions.Tables[0].Rows[j].ItemArray[iColNo]);

                                iColNo = arrITPSectionQuestions.Tables[0].Columns["NA"].Ordinal;
                                bNA = Convert.ToBoolean(arrITPSectionQuestions.Tables[0].Rows[j].ItemArray[iColNo]);

                                iUtils.CreateFormGridItem radGrp = new iUtils.CreateFormGridItem();
                                UIView radGrpVw = new UIView();
                                radGrp.SetDimensions(400f,iQuestionRowVert, 200f, iQuestionRowHeight, 2f, 2.5f, 2f, 2.5f);
                                radGrp.SetFontName("Verdana");
                                radGrp.SetFontSize(12f);
                                radGrp.SetTag((iAnswerGroupTagId + (j+1)) * (i+1));

                                if (j % 2 == 0)
                                {
                                    radGrp.SetCellColour("Pale Blue");
                                }
                                else
                                {
                                    radGrp.SetCellColour("Sky Blue");
                                }

                                radGrpVw = radGrp.GetRadioButtonCell();

                                UISegmentedControl radGrpRadio = new UISegmentedControl();
                                radGrpRadio = radGrp.GetRadioGroup();
                                radGrpRadio.TouchUpInside += (sender,e) => {SetRowRadioChanged(sender, e);};
                                radGrpRadio.ValueChanged += (sender,e) => {SetRowRadioChanged(sender, e);};

                                QuestionsBitMask mask = (QuestionsBitMask)iQuestionTypes;
                                int iPos = 0;
                                bool bQuestionSet = false;

                                if ((mask & QuestionsBitMask.Yes) == QuestionsBitMask.Yes)
                                {
                                    radGrpRadio.InsertSegment("Yes", iPos,false);
                                    if(bYes)
                                    {
                                        radGrpRadio.SelectedSegment = iPos;
                                        bQuestionSet= true;
                                    }
                                    iPos++;
                                }

                                if ((mask & QuestionsBitMask.No) == QuestionsBitMask.No)
                                {
                                    radGrpRadio.InsertSegment("No", iPos,false);
                                    if(bNo)
                                    {
                                        radGrpRadio.SelectedSegment = iPos;
                                        bQuestionSet= true;
                                    }
                                    iPos++;
                                }

                                if ((mask & QuestionsBitMask.NA) == QuestionsBitMask.NA)
                                {
                                    radGrpRadio.InsertSegment("N/A", iPos,false);
                                    if(bNA)
                                    {
                                        radGrpRadio.SelectedSegment = iPos;
                                        bQuestionSet= true;
                                    }
                                }

                                if(bQuestionSet)
                                {
                                    radGrpRadio.Enabled = false;
                                }
                                else
                                {
                                    bSectionFullyCompleted = false;
                                }

                                //Put in the comments
                                iUtils.CreateFormGridItem rowComments = new iUtils.CreateFormGridItem();
                                UIView rowCommentsVw = new UIView();
                                iColNo = arrITPSectionQuestions.Tables[0].Columns["Comments"].Ordinal;
                                rowComments.SetLabelWrap(1); //This means the text will be wrapped in the label
                                rowComments.SetDimensions(600f,iQuestionRowVert, 200f, iQuestionRowHeight, 2f, 2.5f, 2f, 2.5f);
                                rowComments.SetLabelText(arrITPSectionQuestions.Tables[0].Rows[j].ItemArray[iColNo].ToString());
                                rowComments.SetBorderWidth(0.0f);
                                rowComments.SetFontName("Verdana");
                                rowComments.SetFontSize(12f);
                                rowComments.SetTag((iCommentsTagId + (j+1)) * (i+1)); //

                                if (j % 2 == 0)
                                {
                                    rowComments.SetCellColour("Pale Blue");
                                }
                                else
                                {
                                    rowComments.SetCellColour("Sky Blue");
                                }

                                rowCommentsVw = rowComments.GetTextCell();
                                iHeightToAdd2 = rowComments.GetCellHeight();
                                UITextView rowCommentsTextVw = new UITextView();
                                rowCommentsTextVw = rowComments.GetTextView();
                                rowCommentsTextVw.ShouldBeginEditing += (sender) => {
                                    return SetGlobalEditItems(sender, 11);};
                                rowCommentsTextVw.Changed += (sender,e) => {SetRowEditTextChanged(sender, e);};

                                if(bQuestionSet)
                                {
                                    rowCommentsTextVw.Editable = false;
                                }

                                if(iHeightToAdd2 > iHeightToAdd)
                                {
                                    rowQuestion.SetDimensions(0f,iQuestionRowVert, 400f, iHeightToAdd2, 2f, 2.5f, 2f, 2.5f);
                                    rowQuestion.ResetCellViewDimensions(rowQuestionVw);
                                    radGrp.SetDimensions(400f,iQuestionRowVert, 200f, iHeightToAdd2, 2f, 2.5f, 2f, 2.5f);
                                    radGrp.ResetCellViewDimensions(radGrpVw);
                                }
                                else
                                {
                                    radGrp.SetDimensions(400f,iQuestionRowVert, 200f, iHeightToAdd, 2f, 2.5f, 2f, 2.5f);
                                    radGrp.ResetCellViewDimensions(radGrpVw);
                                    rowComments.SetDimensions(600f,iQuestionRowVert, 200f, iHeightToAdd, 2f, 2.5f, 2f, 2.5f);
                                    rowComments.ResetCellViewDimensions(rowCommentsVw);
                                    rowComments.ResetCellTextViewDimensions(rowCommentsTextVw);
                                }

                                arrItems3[2] = rowQuestionVw;
                                arrItems3[3] = radGrpVw;
                                arrItems3[4] = rowCommentsVw;

                                QuestionsTableRow.AddSubviews(arrItems3);

                                iSectionQuestionsHeight += iHeightToAdd;
                                iQuestionRowVert += iHeightToAdd;
                                iVert += iHeightToAdd;

                            }

                            //Now resize the UIView that is effectively the container for the questions for this section
                            //And also store this height in a hidden field for use in the contract and expand functions
                            QuestionsTableRow.Frame = new RectangleF(0f,iQuestionRowVertTop,1000f,iSectionQuestionsHeight);
                            hfSectionHeight.Text = iSectionQuestionsHeight.ToString();

                            if(bSectionFullyCompleted)
                            {
                                bHideSections[i] = true;
                            }
                        }
                    }

                }

                //******************************************************************************************//
                //                      SECTION 10 (BATTERIES)                                              //
                //******************************************************************************************//
                //Get all the PwrId's for this project from ITPSection10
                DataSet arrITPSection10PwrIds = ITPSection.GetLocalITPSection10PwrIds(sId, 6);

                if (arrITPSection10PwrIds.Tables.Count > 0)
                {
                    int ii = arrITPSections.Tables[0].Rows.Count;
                    m_iSections++; //Add an extra one for the batteries section
                    m_iBatterySectionCounter = ii;
                    int iPwrIdRows = arrITPSection10PwrIds.Tables[0].Rows.Count;

                    //Add in the section title and buttons for each section header
                    UIView Section10Row = new UIView();
                    float iSection10RowVertTop = iVert;
                    Section10Row.Frame = new RectangleF(0f,iSection10RowVertTop,1000f,iSectionHdrRowHeight);
                    iSectionId = iSectionTagId * (ii+1);
                    Section10Row.Tag = iSectionId;
                    layout.AddSubview(Section10Row);

                    UILabel hfSection10 = new UILabel();
                    hfSection10.Text = "10";
                    hfSection10.Tag = iSectionDBIdTagId * (ii+1);
                    hfSection10.Hidden = true;
                    Section10Row.AddSubview(hfSection10);

                    iUtils.CreateFormGridItem Section10 = new iUtils.CreateFormGridItem();
                    UIView Section10Vw = new UIView();
                    Section10.SetDimensions(0f,0f, 300f, iSectionHdrRowHeight, 4f, 7.5f, 4f, 7.5f);
                    Section10.SetLabelText("BATTERIES");
                    Section10.SetBorderWidth(0.0f);
                    Section10.SetFontName("Verdana-Bold");
                    Section10.SetTextColour("White");
                    Section10.SetFontSize(12f);
                    Section10.SetCellColour("DarkSlateGrey");
                    Section10.SetTag(iSectionDescTagId * (ii+1));
                    Section10Vw = Section10.GetLabelCell();
                    arrItems4[0] = Section10Vw;

                    if(RFUFullyCommitted())
                    {
                        bFullyCommitted = true;
                        bHideComplete = false;
                    }
                    else
                    {
                        if(BatteryFullyCommitted())
                        {
                            bFullyCommitted = true;
                            bHideComplete = false;
                        }
                        else
                        {
                            bFullyCommitted = false;
                            if(BatteryFullyComplete())
                            {
                                bHideComplete = false;
                            }
                            else
                            {
                                bHideComplete = true;
                            }
                        }
                    }

                    iUtils.CreateFormGridItem SectionCompleteLabel = new iUtils.CreateFormGridItem();
                    UIView SectionCompleteLabelVw = new UIView();
                    SectionCompleteLabel.SetDimensions(300f,0f, 150f, iSectionHdrRowHeight, 4f, 7.5f, 4f, 7.5f);
                    if(bFullyCommitted)
                    {
                        SectionCompleteLabel.SetLabelText("COMMITTED");
                    }
                    else
                    {
                        SectionCompleteLabel.SetLabelText("COMPLETED");
                    }
                    SectionCompleteLabel.SetBorderWidth(0.0f);
                    SectionCompleteLabel.SetFontName("Verdana-Bold");
                    SectionCompleteLabel.SetTextColour("Bright Yellow");
                    SectionCompleteLabel.SetFontSize(14f);
                    SectionCompleteLabel.SetCellColour("DarkSlateGrey");
                    SectionCompleteLabel.SetTag(iSectionCompleteLabelTagId * (ii+1));
                    SectionCompleteLabel.SetHidden(bHideComplete);
                    SectionCompleteLabelVw = SectionCompleteLabel.GetLabelCell();
                    arrItems4[1] = SectionCompleteLabelVw;

                    iUtils.CreateFormGridItem btnSave10 = new iUtils.CreateFormGridItem();
                    UIView btnSave10Vw = new UIView();
                    btnSave10.SetDimensions(450f,0f, 350f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                    btnSave10.SetLabelText("Open Battery Details Screen");
                    btnSave10.SetBorderWidth(0.0f);
                    btnSave10.SetFontName("Verdana");
                    btnSave10.SetFontSize(12f);
                    btnSave10.SetTag(iSaveSectionBtnTagId * (ii+1));
                    btnSave10.SetCellColour("DarkSlateGrey");
                    btnSave10Vw = btnSave10.GetButtonCell();

                    UIButton btnSave10Button = new UIButton();
                    btnSave10Button = btnSave10.GetButton();
                    btnSave10Button.TouchUpInside += (sender,e) => {OpenBatteries(sender, e);};

                    arrItems4[2] = btnSave10Vw;

                    UILabel hfSectionHeight = new UILabel();
                    hfSectionHeight.Tag = iSectionHeightTagId * (ii+1);
                    hfSectionHeight.Hidden = true;
                    hfSectionHeight.Text = "0";
                    arrItems4[3] = hfSectionHeight;

                    UILabel hfSectionRows = new UILabel();
                    hfSectionRows.Tag = iSectionRowsTagId * (ii+1);
                    hfSectionRows.Hidden = true;
                    hfSectionRows.Text = iPwrIdRows.ToString();
                    arrItems4[4] = hfSectionRows;

                    UILabel hfSectionStatus = new UILabel();
                    hfSectionStatus.Tag = iSectionStatusTagId * (ii+1);
                    hfSectionStatus.Hidden = true;
                    hfSectionStatus.Text = "0";
                    arrItems4[5] = hfSectionStatus;

                    Section10Row.AddSubviews(arrItems4);

                    iVert += iSectionHdrRowHeight;

                    //Now add a new view to this view to hold another view containing all the pwrid info for this section 10
                    UIView PwrIdTableRow = new UIView();
                    PwrIdTableRow.Frame = new RectangleF(0f,iVert,1000f,0f);
                    iSectionId = iContainerSectionTagId * (ii+1);
                    PwrIdTableRow.Tag = iSectionId;
                    layout.AddSubview(PwrIdTableRow);
                }

                //******************************************************************************************//
                //                      SECTION 10 (EQUIPMENT)                                              //
                //******************************************************************************************//
                //Get all the PwrId's for this project from ITPSection10
                DataSet arrITPSectionEquipmentPwrIds = ITPSection.GetLocalITPSectionEquipmentPwrIds(sId);

                if (arrITPSectionEquipmentPwrIds.Tables.Count > 0)
                {
                    int iii = m_iSections;
                    m_iSections++; //Add an extra one for the equipment section
                    m_iEquipmentSectionCounter = iii;
                    int iPwrIdRows = arrITPSectionEquipmentPwrIds.Tables[0].Rows.Count;

                    //Add in the section title and buttons for each section header
                    UIView SectionEquipmentRow = new UIView();
                    float iSectionEquipmentRowVertTop = iVert;
                    SectionEquipmentRow.Frame = new RectangleF(0f,iSectionEquipmentRowVertTop,1000f,iSectionHdrRowHeight);
                    iSectionId = iSectionTagId * (iii+1);
                    SectionEquipmentRow.Tag = iSectionId;
                    layout.AddSubview(SectionEquipmentRow);

                    UILabel hfSectionEquipment = new UILabel();
                    hfSectionEquipment.Text = "10";
                    hfSectionEquipment.Tag = iSectionDBIdTagId * (iii+1);
                    hfSectionEquipment.Hidden = true;
                    SectionEquipmentRow.AddSubview(hfSectionEquipment);

                    iUtils.CreateFormGridItem SectionEquipment = new iUtils.CreateFormGridItem();
                    UIView SectionEquipmentVw = new UIView();
                    SectionEquipment.SetDimensions(0f,0f, 300f, iSectionHdrRowHeight, 4f, 7.5f, 4f, 7.5f);
                    SectionEquipment.SetLabelText("POWER CONVERSION EQUIPMENT");
                    SectionEquipment.SetBorderWidth(0.0f);
                    SectionEquipment.SetFontName("Verdana-Bold");
                    SectionEquipment.SetTextColour("White");
                    SectionEquipment.SetFontSize(12f);
                    SectionEquipment.SetCellColour("DarkSlateGrey");
                    SectionEquipment.SetTag(iSectionDescTagId * (iii+1));
                    SectionEquipmentVw = SectionEquipment.GetLabelCell();
                    arrItems4[0] = SectionEquipmentVw;

                    if(RFUFullyCommitted())
                    {
                        bFullyCommitted = true;
                        bHideComplete = false;
                    }
                    else
                    {
                        if(PowerConversionFullyCommitted())
                        {
                            bFullyCommitted = true;
                            bHideComplete = false;
                        }
                        else
                        {
                            bFullyCommitted = false;
                            if(PowerConversionFullyComplete())
                            {
                                bHideComplete = false;
                            }
                            else
                            {
                                bHideComplete = true;
                            }
                        }
                    }

                    iUtils.CreateFormGridItem SectionCompleteLabel = new iUtils.CreateFormGridItem();
                    UIView SectionCompleteLabelVw = new UIView();
                    SectionCompleteLabel.SetDimensions(300f,0f, 150f, iSectionHdrRowHeight, 4f, 7.5f, 4f, 7.5f);
                    if(bFullyCommitted)
                    {
                        SectionCompleteLabel.SetLabelText("COMMITTED");
                    }
                    else
                    {
                        SectionCompleteLabel.SetLabelText("COMPLETED");
                    }

                    SectionCompleteLabel.SetBorderWidth(0.0f);
                    SectionCompleteLabel.SetFontName("Verdana-Bold");
                    SectionCompleteLabel.SetTextColour("Bright Yellow");
                    SectionCompleteLabel.SetFontSize(14f);
                    SectionCompleteLabel.SetCellColour("DarkSlateGrey");
                    SectionCompleteLabel.SetTag(iSectionCompleteLabelTagId * (iii+1));
                    SectionCompleteLabel.SetHidden(bHideComplete);
                    SectionCompleteLabelVw = SectionCompleteLabel.GetLabelCell();
                    arrItems4[1] = SectionCompleteLabelVw;

                    iUtils.CreateFormGridItem btnSaveEquipment = new iUtils.CreateFormGridItem();
                    UIView btnSaveEquipmentVw = new UIView();
                    btnSaveEquipment.SetDimensions(450f,0f, 350f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                    btnSaveEquipment.SetLabelText("Open Power Conversion Equipment Screen");
                    btnSaveEquipment.SetBorderWidth(0.0f);
                    btnSaveEquipment.SetFontName("Verdana");
                    btnSaveEquipment.SetFontSize(12f);
                    btnSaveEquipment.SetTag(iSaveSectionBtnTagId * (iii+1));
                    btnSaveEquipment.SetCellColour("DarkSlateGrey");
                    btnSaveEquipmentVw = btnSaveEquipment.GetButtonCell();

                    UIButton btnSaveEquipmentButton = new UIButton();
                    btnSaveEquipmentButton = btnSaveEquipment.GetButton();
                    btnSaveEquipmentButton.TouchUpInside += (sender,e) => {OpenPowerConversion(sender, e);};

                    arrItems4[2] = btnSaveEquipmentVw;

                    UILabel hfSectionEquipmentHeight = new UILabel();
                    hfSectionEquipmentHeight.Tag = iSectionHeightTagId * (iii+1);
                    hfSectionEquipmentHeight.Hidden = true;
                    hfSectionEquipmentHeight.Text = "0";
                    arrItems4[3] = hfSectionEquipmentHeight;

                    UILabel hfSectionEquipmentRows = new UILabel();
                    hfSectionEquipmentRows.Tag = iSectionRowsTagId * (iii+1);
                    hfSectionEquipmentRows.Hidden = true;
                    hfSectionEquipmentRows.Text = iPwrIdRows.ToString();
                    arrItems4[4] = hfSectionEquipmentRows;

                    UILabel hfSectionEquipmentStatus = new UILabel();
                    hfSectionEquipmentStatus.Tag = iSectionStatusTagId * (iii+1);
                    hfSectionEquipmentStatus.Hidden = true;
                    hfSectionEquipmentStatus.Text = "0";
                    arrItems4[5] = hfSectionEquipmentStatus;

                    SectionEquipmentRow.AddSubviews(arrItems4);

                    iVert += iSectionHdrRowHeight;

                    //Now add a new view to this view to hold another view containing all the pwrid info for this section 10
                    UIView PwrIdTableRow = new UIView();
                    PwrIdTableRow.Frame = new RectangleF(0f,iVert,1000f,0f);
                    iSectionId = iContainerSectionTagId * (iii+1);
                    PwrIdTableRow.Tag = iSectionId;
                    layout.AddSubview(PwrIdTableRow);
                }

                //******************************************************************************************//
                //                      SECTION RFU                                                         //
                //******************************************************************************************//
                //Get all the PwrId's for this project from ITPRFU
                DataSet arrITPRFUs = ITPSection.GetLocalITPRFUPwrIds(sId);

                if (arrITPRFUs.Tables.Count > 0)
                {
                    float iRFURowVert = 0.0f;
                    float iSectionRFUHeight = 0.0f;
                    float iRFURowVertTop = iVert;
                    float iRFURowInnerTop = 0.0f;

                    int ii = m_iSections;
                    m_iSections++; //Add an extra one for the RFU section
                    m_iRFUSectionCounter = ii; //Here ii and m_iSections are different by 1. If we add more sections after this it will be different later on
                    int iPwrIdRowsRFU = arrITPRFUs.Tables[0].Rows.Count;

                    //Add in the section title and buttons for each section header
                    UIView SectionRFURow = new UIView();
                    float iSection10RowVertTop = iVert;
                    SectionRFURow.Frame = new RectangleF(0f,iSection10RowVertTop,1000f,iSectionHdrRowHeight);
                    iSectionId = iSectionTagId * (ii+1);
                    SectionRFURow.Tag = iSectionId;
                    layout.AddSubview(SectionRFURow);

                    UILabel hfSectionRFU = new UILabel();
                    hfSectionRFU.Text = "RFU";
                    hfSectionRFU.Tag = iSectionDBIdTagId * (ii+1);
                    hfSectionRFU.Hidden = true;
                    SectionRFURow.AddSubview(hfSectionRFU);

                    iUtils.CreateFormGridItem SectionRFU = new iUtils.CreateFormGridItem();
                    UIView SectionRFUVw = new UIView();
                    SectionRFU.SetDimensions(0f,0f, 300f, iSectionHdrRowHeight, 4f, 7.5f, 4f, 7.5f);
                    SectionRFU.SetLabelText("READY FOR USE (RFU)");
                    SectionRFU.SetBorderWidth(0.0f);
                    SectionRFU.SetFontName("Verdana-Bold");
                    SectionRFU.SetTextColour("White");
                    SectionRFU.SetFontSize(12f);
                    SectionRFU.SetCellColour("DarkSlateGrey");
                    SectionRFU.SetTag(iSectionDescTagId * (ii+1));
                    SectionRFUVw = SectionRFU.GetLabelCell();
                    arrItems14[0] = SectionRFUVw;

                    if(RFUFullyCommitted())
                    {
                        bFullyCommitted = false;
                    }
                    else
                    {
                        bFullyCommitted = true;
                    }

                    iUtils.CreateFormGridItem SectionCompleteLabel = new iUtils.CreateFormGridItem();
                    UIView SectionCompleteLabelVw = new UIView();
                    SectionCompleteLabel.SetDimensions(300f,0f, 250f, iSectionHdrRowHeight, 4f, 7.5f, 4f, 7.5f);
                    SectionCompleteLabel.SetLabelText("COMMITTED");
                    SectionCompleteLabel.SetBorderWidth(0.0f);
                    SectionCompleteLabel.SetFontName("Verdana-Bold");
                    SectionCompleteLabel.SetTextColour("Bright Yellow");
                    SectionCompleteLabel.SetFontSize(14f);
                    SectionCompleteLabel.SetCellColour("DarkSlateGrey");
                    SectionCompleteLabel.SetTag(iSectionCompleteLabelTagId * (ii+1));
                    SectionCompleteLabel.SetHidden(bFullyCommitted);
                    SectionCompleteLabelVw = SectionCompleteLabel.GetLabelCell();
                    arrItems14[1] = SectionCompleteLabelVw;

                    iUtils.CreateFormGridItem btnSaveRFU = new iUtils.CreateFormGridItem();
                    UIView btnSaveRFUVw = new UIView();
                    btnSaveRFU.SetDimensions(550f,0f, 150f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                    btnSaveRFU.SetLabelText("Save Section");
                    btnSaveRFU.SetBorderWidth(0.0f);
                    btnSaveRFU.SetFontName("Verdana");
                    btnSaveRFU.SetFontSize(12f);
                    btnSaveRFU.SetTag(iSaveSectionBtnTagId * (ii+1));
                    btnSaveRFU.SetCellColour("DarkSlateGrey");
                    btnSaveRFUVw = btnSaveRFU.GetButtonCell();

                    UIButton btnSaveRFUButton = new UIButton();
                    btnSaveRFUButton = btnSaveRFU.GetButton();
                    btnSaveRFUButton.TouchUpInside += (sender,e) => {SaveThisSection(sender, e);};
                    btnSaveRFUButton.Hidden = true;
                    arrItems14[2] = btnSaveRFUVw;

                    iUtils.CreateFormGridItem btnExpandRFU = new iUtils.CreateFormGridItem();
                    UIView btnExpandRFUVw = new UIView();
                    btnExpandRFU.SetDimensions(700f,0f, 50f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                    btnExpandRFU.SetLabelText("+");
                    btnExpandRFU.SetBorderWidth(0.0f);
                    btnExpandRFU.SetFontName("Verdana");
                    btnExpandRFU.SetFontSize(12f);
                    btnExpandRFU.SetTag(iExpandSectionBtnTagId * (ii+1));
                    btnExpandRFU.SetCellColour("DarkSlateGrey");
                    btnExpandRFUVw = btnExpandRFU.GetButtonCell();

                    UIButton btnExpandRFUButton = new UIButton();
                    btnExpandRFUButton = btnExpandRFU.GetButton();
                    btnExpandRFUButton.Enabled = false;
                    btnExpandRFUButton.TouchUpInside += (sender,e) => {ExpandSection(sender, e);};

                    arrItems14[3] = btnExpandRFUVw;

                    iUtils.CreateFormGridItem btnContractRFU = new iUtils.CreateFormGridItem();
                    UIView btnContractRFUVw = new UIView();
                    btnContractRFU.SetDimensions(750f,0f, 50f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                    btnContractRFU.SetLabelText("-");
                    btnContractRFU.SetBorderWidth(0.0f);
                    btnContractRFU.SetFontName("Verdana");
                    btnContractRFU.SetFontSize(12f);
                    btnContractRFU.SetTag(iContractSectionBtnTagId * (ii+1));
                    btnContractRFU.SetCellColour("DarkSlateGrey");
                    btnContractRFUVw = btnContractRFU.GetButtonCell();

                    UIButton btnContractRFUButton = new UIButton();
                    btnContractRFUButton = btnContractRFU.GetButton();
                    btnContractRFUButton.TouchUpInside += (sender,e) => {ContractSection(sender, e);};

                    arrItems14[4] = btnContractRFUVw;

                    UILabel hfSectionHeight = new UILabel();
                    hfSectionHeight.Tag = iSectionHeightTagId * (ii+1);
                    hfSectionHeight.Hidden = true;
                    hfSectionHeight.Text = "0";
                    arrItems14[5] = hfSectionHeight;

                    UILabel hfSectionRows = new UILabel();
                    hfSectionRows.Tag = iSectionRowsTagId * (ii+1);
                    hfSectionRows.Hidden = true;
                    hfSectionRows.Text = iPwrIdRowsRFU.ToString();
                    arrItems14[6] = hfSectionRows;

                    UILabel hfSectionStatus = new UILabel();
                    hfSectionStatus.Tag = iSectionStatusTagId * (ii+1);
                    hfSectionStatus.Hidden = true;
                    hfSectionStatus.Text = "0";
                    arrItems14[7] = hfSectionStatus;

                    SectionRFURow.AddSubviews(arrItems14);

                    iVert += iSectionHdrRowHeight;
                    iRFURowVertTop += iSectionHdrRowHeight;

                    //Now add a new view to this view to hold another view containing all the pwrid info for this RFU section
                    UIView RFUTableRow = new UIView();
                    RFUTableRow.Frame = new RectangleF(0f,iRFURowVertTop,1000f,iSectionHdrRowHeight);
                    iSectionId = iContainerSectionTagId * (ii+1);
                    RFUTableRow.Tag = iSectionId;
                    layout.AddSubview(RFUTableRow);

                    //Put in the header
                    UIView vwPwrHdrInternalRowId = new UIView();
                    vwPwrHdrInternalRowId.Frame = new RectangleF(0f,iRFURowVert,1000f,iSectionHdrRowHeight); //This will be resized later on

                    iUtils.CreateFormGridItem rowPwrIdHdrLbl = new iUtils.CreateFormGridItem();
                    UIView rowPwrIdHdrLblVw = new UIView();
                    rowPwrIdHdrLbl.SetLabelWrap(0); //This means the text will NOT be wrapped in the label
                    rowPwrIdHdrLbl.SetDimensions(0f,iRFURowVert, 100f, iSectionHdrRowHeight, 2f, 2.5f, 2f, 2.5f);
                    rowPwrIdHdrLbl.SetLabelText("Power Id");
                    rowPwrIdHdrLbl.SetTextAlignment("centre");
                    rowPwrIdHdrLbl.SetBorderWidth(0.0f);
                    rowPwrIdHdrLbl.SetFontName("Verdana-Bold");
                    rowPwrIdHdrLbl.SetFontSize(14f);
                    rowPwrIdHdrLbl.SetTag((iRFUPwrIdHdrLabelTagId) * (ii+1));
                    rowPwrIdHdrLbl.SetCellColour("Pale Yellow");

                    rowPwrIdHdrLblVw = rowPwrIdHdrLbl.GetLabelCell();
                    iHeightToAdd = iSectionHdrRowHeight;
                    arrItems7[0] = rowPwrIdHdrLblVw;

                    iUtils.CreateFormGridItem rowDesignLoadHdrLbl = new iUtils.CreateFormGridItem();
                    UIView rowDesignLoadHdrLblVw = new UIView();
                    rowDesignLoadHdrLbl.SetLabelWrap(0); //This means the text will NOT be wrapped in the label
                    rowDesignLoadHdrLbl.SetDimensions(100f,iRFURowVert, 100f, iSectionHdrRowHeight, 2f, 2.5f, 2f, 2.5f);
                    rowDesignLoadHdrLbl.SetLabelText("Design Load");
                    rowDesignLoadHdrLbl.SetTextAlignment("centre");
                    rowDesignLoadHdrLbl.SetBorderWidth(0.0f);
                    rowDesignLoadHdrLbl.SetFontName("Verdana-Bold");
                    rowDesignLoadHdrLbl.SetFontSize(14f);
                    rowDesignLoadHdrLbl.SetTag((iRFUDesignLoadHdrLabelTagId) * (ii+1));
                    rowDesignLoadHdrLbl.SetCellColour("Pale Yellow");
                    rowDesignLoadHdrLblVw = rowDesignLoadHdrLbl.GetLabelCell();
                    iHeightToAdd = iSectionHdrRowHeight;
                    arrItems7[1] = rowDesignLoadHdrLblVw;

                    iUtils.CreateFormGridItem rowCutoverLoadHdrLbl = new iUtils.CreateFormGridItem();
                    UIView rowCutoverLoadHdrLblVw = new UIView();
                    rowCutoverLoadHdrLbl.SetLabelWrap(0); //This means the text will NOT be wrapped in the label
                    rowCutoverLoadHdrLbl.SetDimensions(200f,iRFURowVert, 100f, iSectionHdrRowHeight, 2f, 2.5f, 2f, 2.5f);
                    rowCutoverLoadHdrLbl.SetLabelText("Cutover Load");
                    rowCutoverLoadHdrLbl.SetTextAlignment("centre");
                    rowCutoverLoadHdrLbl.SetBorderWidth(0.0f);
                    rowCutoverLoadHdrLbl.SetFontName("Verdana-Bold");
                    rowCutoverLoadHdrLbl.SetFontSize(14f);
                    rowCutoverLoadHdrLbl.SetTag((iRFUCutoverLoadHdrLabelTagId) * (ii+1));
                    rowCutoverLoadHdrLbl.SetCellColour("Pale Yellow");

                    rowCutoverLoadHdrLblVw = rowCutoverLoadHdrLbl.GetLabelCell();
                    iHeightToAdd = iSectionHdrRowHeight;
                    arrItems7[2] = rowCutoverLoadHdrLblVw;

                    iUtils.CreateFormGridItem rowCutoverDateHdrLbl = new iUtils.CreateFormGridItem();
                    UIView rowCutoverDateHdrLblVw = new UIView();
                    rowCutoverDateHdrLbl.SetLabelWrap(0); //This means the text will NOT be wrapped in the label
                    rowCutoverDateHdrLbl.SetDimensions(300f,iRFURowVert, 100f, iSectionHdrRowHeight, 2f, 2.5f, 2f, 2.5f);
                    rowCutoverDateHdrLbl.SetLabelText("Cutover Date");
                    rowCutoverDateHdrLbl.SetTextAlignment("centre");
                    rowCutoverDateHdrLbl.SetBorderWidth(0.0f);
                    rowCutoverDateHdrLbl.SetFontName("Verdana-Bold");
                    rowCutoverDateHdrLbl.SetFontSize(14f);
                    rowCutoverDateHdrLbl.SetTag((iRFUCutoverDateHdrLabelTagId) * (ii+1));
                    rowCutoverDateHdrLbl.SetCellColour("Pale Yellow");

                    rowCutoverDateHdrLblVw = rowCutoverDateHdrLbl.GetLabelCell();
                    iHeightToAdd = iSectionHdrRowHeight;
                    arrItems7[3] = rowCutoverDateHdrLblVw;

                    iUtils.CreateFormGridItem rowDecommissionedHdrLbl = new iUtils.CreateFormGridItem();
                    UIView rowDecommissionedHdrLblVw = new UIView();
                    rowDecommissionedHdrLbl.SetLabelWrap(0); //This means the text will NOT be wrapped in the label
                    rowDecommissionedHdrLbl.SetDimensions(400f,iRFURowVert, 150f, iSectionHdrRowHeight, 2f, 2.5f, 2f, 2.5f);
                    rowDecommissionedHdrLbl.SetLabelText("Decommissioned");
                    rowDecommissionedHdrLbl.SetTextAlignment("centre");
                    rowDecommissionedHdrLbl.SetBorderWidth(0.0f);
                    rowDecommissionedHdrLbl.SetFontName("Verdana-Bold");
                    rowDecommissionedHdrLbl.SetFontSize(14f);
                    rowDecommissionedHdrLbl.SetTag((iRFUDecommissionedHdrLabelTagId) * (ii+1));
                    rowDecommissionedHdrLbl.SetCellColour("Pale Yellow");

                    rowDecommissionedHdrLblVw = rowDecommissionedHdrLbl.GetLabelCell();
                    iHeightToAdd = iSectionHdrRowHeight;
                    arrItems7[4] = rowDecommissionedHdrLblVw;

                    iUtils.CreateFormGridItem rowCommissionedHdrLbl = new iUtils.CreateFormGridItem();
                    UIView rowCommissionedHdrLblVw = new UIView();
                    rowCommissionedHdrLbl.SetLabelWrap(0); //This means the text will NOT be wrapped in the label
                    rowCommissionedHdrLbl.SetDimensions(550f,iRFURowVert, 150f, iSectionHdrRowHeight, 2f, 2.5f, 2f, 2.5f);
                    rowCommissionedHdrLbl.SetLabelText("Commissioned");
                    rowCommissionedHdrLbl.SetTextAlignment("centre");
                    rowCommissionedHdrLbl.SetBorderWidth(0.0f);
                    rowCommissionedHdrLbl.SetFontName("Verdana-Bold");
                    rowCommissionedHdrLbl.SetFontSize(14f);
                    rowCommissionedHdrLbl.SetTag((iRFUCommissionedHdrLabelTagId) * (ii+1));
                    rowCommissionedHdrLbl.SetCellColour("Pale Yellow");

                    rowCommissionedHdrLblVw = rowCommissionedHdrLbl.GetLabelCell();
                    iHeightToAdd = iSectionHdrRowHeight;
                    arrItems7[5] = rowCommissionedHdrLblVw;

                    iUtils.CreateFormGridItem rowSaveRFUHdrLbl = new iUtils.CreateFormGridItem();
                    UIView rowSaveRFUHdrLblVw = new UIView();
                    rowSaveRFUHdrLbl.SetLabelWrap(0); //This means the text will NOT be wrapped in the label
                    rowSaveRFUHdrLbl.SetDimensions(700f,iRFURowVert, 130f, iSectionHdrRowHeight, 2f, 2.5f, 2f, 2.5f);
                    rowSaveRFUHdrLbl.SetLabelText("Commit RFU");
                    rowSaveRFUHdrLbl.SetTextAlignment("centre");
                    rowSaveRFUHdrLbl.SetBorderWidth(0.0f);
                    rowSaveRFUHdrLbl.SetFontName("Verdana-Bold");
                    rowSaveRFUHdrLbl.SetFontSize(14f);
                    rowSaveRFUHdrLbl.SetTag((iRFUSaveRFUHdrLabelTagId) * (ii+1));
                    rowSaveRFUHdrLbl.SetCellColour("Pale Yellow");

                    rowSaveRFUHdrLblVw = rowSaveRFUHdrLbl.GetLabelCell();
                    iHeightToAdd = iSectionHdrRowHeight;
                    arrItems7[6] = rowSaveRFUHdrLblVw;

                    //Now add the row details into the view
                    vwPwrHdrInternalRowId.AddSubviews(arrItems7);

                    iSectionRFUHeight += iHeightToAdd;
                    iRFURowVert += iHeightToAdd;
                    iVert += iHeightToAdd;

                    vwPwrHdrInternalRowId.Frame = new RectangleF(0f, iRFURowInnerTop, 1000f, iRFURowVert);
                    RFUTableRow.AddSubview(vwPwrHdrInternalRowId);
                    iRFURowInnerTop += iRFURowVert;
                    iRFURowVert = 0f;

                    for (var j = 0; j < iPwrIdRowsRFU; j++)
                    {
                        UIView vwPwrInternalRowId = new UIView();
                        vwPwrInternalRowId.Frame = new RectangleF(0f,iRFURowVert,1000f,200f); //This will be resized later on
                        vwPwrInternalRowId.Tag = (iPwrIdSectionTagId + (j+1)) * (ii+1);

                        iColNo = arrITPRFUs.Tables[0].Columns["PwrId"].Ordinal;
                        string sPwrId = arrITPRFUs.Tables[0].Rows[j].ItemArray[iColNo].ToString();
                        iColNo = arrITPRFUs.Tables[0].Columns["CutoverLoad"].Ordinal;
                        string sCutoverLoad = arrITPRFUs.Tables[0].Rows[j].ItemArray[iColNo].ToString();
                        iColNo = arrITPRFUs.Tables[0].Columns["CutoverDate"].Ordinal;
                        string sCutoverDate = arrITPRFUs.Tables[0].Rows[j].ItemArray[iColNo].ToString();
                        iColNo = arrITPRFUs.Tables[0].Columns["Decommission"].Ordinal;
                        int iDecommission = Convert.ToInt32(arrITPRFUs.Tables[0].Rows[j].ItemArray[iColNo]);
                        iColNo = arrITPRFUs.Tables[0].Columns["Commission"].Ordinal;
                        int iCommission = Convert.ToInt32(arrITPRFUs.Tables[0].Rows[j].ItemArray[iColNo]);

                        bDisableRow = RFUPwrIdCommitted(sPwrId);

                        UILabel hfRowRFUStatus = new UILabel();
                        hfRowRFUStatus.Text = "0";
                        hfRowRFUStatus.Tag = (ihfRowRFUStatusTagId + (j+1)) * (ii+1);
                        hfRowRFUStatus.Hidden = true;
                        arrItems6[0] = hfRowRFUStatus;

                        //Put in the PwrId Label
                        iUtils.CreateFormGridItem rowPwrIdLabel = new iUtils.CreateFormGridItem();
                        UIView rowPwrIdLabelVw = new UIView();
                        rowPwrIdLabel.SetLabelWrap(0); //This means the text will NOT be wrapped in the label
                        rowPwrIdLabel.SetDimensions(0f,iRFURowVert, 100f, iSectionHdrRowHeight, 2f, 2.5f, 2f, 2.5f);
                        rowPwrIdLabel.SetLabelText(sPwrId);
                        rowPwrIdLabel.SetBorderWidth(0.0f);
                        rowPwrIdLabel.SetFontName("Verdana");
                        rowPwrIdLabel.SetFontSize(14f);
                        rowPwrIdLabel.SetTag((iRFUPwrIdRowLabelTagId + (j+1)) * (ii+1));

                        if (j % 2 == 0)
                        {
                            rowPwrIdLabel.SetCellColour("Pale Blue");
                        }
                        else
                        {
                            rowPwrIdLabel.SetCellColour("Sky Blue");
                        }

                        rowPwrIdLabelVw = rowPwrIdLabel.GetLabelCell();
                        iHeightToAdd = iSectionHdrRowHeight;
                        arrItems6[1] = rowPwrIdLabelVw;

                        //Put in the PwrId Label
                        iUtils.CreateFormGridItem rowDesignLoadLabel = new iUtils.CreateFormGridItem();
                        UIView rowDesignLoadLabelVw = new UIView();
                        iColNo = arrITPRFUs.Tables[0].Columns["DesignLoad"].Ordinal;
                        string sDesignLoad = arrITPRFUs.Tables[0].Rows[j].ItemArray[iColNo].ToString();
                        rowDesignLoadLabel.SetLabelWrap(0); //This means the text will NOT be wrapped in the label
                        rowDesignLoadLabel.SetDimensions(100f,iRFURowVert, 100f, iSectionHdrRowHeight, 20f, 2.5f, 20f, 2.5f);
                        rowDesignLoadLabel.SetLabelText(sDesignLoad);
                        rowDesignLoadLabel.SetTextAlignment("right");
                        rowDesignLoadLabel.SetBorderWidth(0.0f);
                        rowDesignLoadLabel.SetFontName("Verdana");
                        rowDesignLoadLabel.SetFontSize(14f);
                        rowDesignLoadLabel.SetTag((iRFUDesignLoadRowLabelTagId + (j+1)) * (ii+1));

                        if (j % 2 == 0)
                        {
                            rowDesignLoadLabel.SetCellColour("Pale Blue");
                        }
                        else
                        {
                            rowDesignLoadLabel.SetCellColour("Sky Blue");
                        }

                        rowDesignLoadLabelVw = rowDesignLoadLabel.GetLabelCell();
                        iHeightToAdd = iSectionHdrRowHeight;
                        arrItems6[2] = rowDesignLoadLabelVw;

                        iUtils.CreateFormGridItem txtCutoverLoad = new iUtils.CreateFormGridItem();
                        UIView txtCutoverLoadVw = new UIView();
                        txtCutoverLoad.SetDimensions(200f,iRFURowVert, 100f, iSectionHdrRowHeight, 15f, 2.5f, 15f, 2.5f);
                        txtCutoverLoad.SetLabelText(sCutoverLoad);
                        txtCutoverLoad.SetTextAlignment("right");
                        txtCutoverLoad.SetBorderWidth(0.0f);
                        txtCutoverLoad.SetFontName("Verdana");
                        txtCutoverLoad.SetFontSize(14f);
                        txtCutoverLoad.SetTag((iRFUCutoverLoadRowLabelTagId + (j+1)) * (ii+1));

                        if (j % 2 == 0)
                        {
                            txtCutoverLoad.SetCellColour("Pale Blue");
                        }
                        else
                        {
                            txtCutoverLoad.SetCellColour("Sky Blue");
                        }

                        txtCutoverLoadVw = txtCutoverLoad.GetTextFieldCell();
                        UITextField txtCutoverLoadView = txtCutoverLoad.GetTextFieldView();
                        txtCutoverLoadView.KeyboardType = UIKeyboardType.NumbersAndPunctuation;
                        txtCutoverLoadView.ReturnKeyType = UIReturnKeyType.Next;
                        txtCutoverLoadView.ShouldBeginEditing += (sender) => {
                            return SetGlobalEditItems(sender, 9);};
                        txtCutoverLoadView.ShouldEndEditing += (sender) => {
                            return ValidateCutoverLoad(sender, 0);};
                        txtCutoverLoadView.ShouldReturn += (sender) => {
                            return MoveNextTextField(sender, 9);};

                        if(bDisableRow)
                        {
                            txtCutoverLoadView.Enabled = false;
                        }
                        arrItems6[3] = txtCutoverLoadVw;

                        UILabel hfCurrentCutoverLoad = new UILabel();
                        hfCurrentCutoverLoad.Text = sCutoverLoad;
                        hfCurrentCutoverLoad.Tag = (ihfCutoverLoadRowLabelTagId + (j + 1)) * (ii + 1);
                        hfCurrentCutoverLoad.Hidden = true;
                        arrItems6 [4] = hfCurrentCutoverLoad;

                        iUtils.CreateFormGridItem txtCutoverDate = new iUtils.CreateFormGridItem();
                        UIView txtCutoverDateVw = new UIView();
                        txtCutoverDate.SetDimensions(300f,iRFURowVert, 100f, iSectionHdrRowHeight, 8f, 2.5f, 8f, 2.5f);
                        if (sCutoverDate == "" || sCutoverDate == "0")
                        {
                            sCutoverDate = "01/01/1900";
                        }
                        DateTime dtCutover = Convert.ToDateTime(sCutoverDate);
                        string sCutoverDisplay = dt.Get_Date_String(dtCutover, "dd/mm/yy");
                        txtCutoverDate.SetLabelText(sCutoverDisplay);
                        txtCutoverDate.SetTextAlignment("right");
                        txtCutoverDate.SetBorderWidth(0.0f);
                        txtCutoverDate.SetFontName("Verdana");
                        txtCutoverDate.SetFontSize(14f);
                        txtCutoverDate.SetTag((iRFUCutoverDateRowLabelTagId + (j+1)) * (ii+1));

                        if (j % 2 == 0)
                        {
                            txtCutoverDate.SetCellColour("Pale Blue");
                        }
                        else
                        {
                            txtCutoverDate.SetCellColour("Sky Blue");
                        }

                        txtCutoverDateVw = txtCutoverDate.GetTextFieldCell();
                        UITextField txtCutoverDateView = txtCutoverDate.GetTextFieldView();
                        txtCutoverDateView.KeyboardType = UIKeyboardType.NumbersAndPunctuation;
                        txtCutoverDateView.ReturnKeyType = UIReturnKeyType.Next;
                        txtCutoverDateView.ShouldBeginEditing += (sender) => {
                            return SetGlobalEditItems(sender, 10);};
                        txtCutoverDateView.ShouldEndEditing += (sender) => {
                            return ValidateCutoverDate(sender, 0);};
                        txtCutoverDateView.ShouldReturn += (sender) => {
                            return MoveNextTextField(sender, 10);};

                        if(bDisableRow)
                        {
                            txtCutoverDateView.Enabled = false;
                        }

                        arrItems6[5] = txtCutoverDateVw;

                        UILabel hfCurrentCutoverDate = new UILabel();
                        hfCurrentCutoverDate.Text = sCutoverDisplay;
                        hfCurrentCutoverDate.Tag = (ihfCutoverDateRowLabelTagId + (j + 1)) * (ii + 1);
                        hfCurrentCutoverDate.Hidden = true;
                        arrItems6[6] = hfCurrentCutoverDate;

                        iUtils.CreateFormGridItem chkDecommission = new iUtils.CreateFormGridItem();
                        UIView chkDecommissionVw = new UIView();
                        chkDecommission.SetDimensions(400f,iRFURowVert, 150f, iSectionHdrRowHeight, 30f, 2.5f, 30f, 2.5f);
                        bool bDecommission = false;
                        if (iDecommission > 0)
                        {
                            bDecommission = true;
                        }
                        chkDecommission.SetCheckboxOnOff(bDecommission);
                        chkDecommission.SetBorderWidth(0.0f);

                        chkDecommission.SetSwitchType(2);
                        chkDecommission.SetTag((iRFUDecommissionRowCheckTagId + (j+1)) * (ii+1));

                        if (j % 2 == 0)
                        {
                            chkDecommission.SetCellColour("Pale Blue");
                        }
                        else
                        {
                            chkDecommission.SetCellColour("Sky Blue");
                        }

                        chkDecommissionVw = chkDecommission.GetCheckboxCell();
                        UISwitch chkDecommissionCheck = chkDecommission.GetCheckbox();
                        chkDecommissionCheck.ValueChanged += (sender,e) => {CheckboxChanged(sender, e, 1);};

                        if(bDisableRow)
                        {
                            chkDecommissionCheck.Enabled = false;
                        }

                        arrItems6[7] = chkDecommissionVw;

                        iUtils.CreateFormGridItem chkCommission = new iUtils.CreateFormGridItem();
                        UIView chkCommissionVw = new UIView();
                        chkCommission.SetDimensions(550f,iRFURowVert, 150f, iSectionHdrRowHeight, 30f, 2.5f, 30f, 2.5f);
                        bool bCommission = false;
                        if (iCommission > 0)
                        {
                            bCommission = true;
                        }
                        chkCommission.SetCheckboxOnOff(bCommission);
                        chkCommission.SetBorderWidth(0.0f);
                        chkCommission.SetSwitchType(2);
                        chkCommission.SetTag((iRFUCommissionRowCheckTagId + (j+1)) * (ii+1));

                        if (j % 2 == 0)
                        {
                            chkCommission.SetCellColour("Pale Blue");
                        }
                        else
                        {
                            chkCommission.SetCellColour("Sky Blue");
                        }

                        chkCommissionVw = chkCommission.GetCheckboxCell();
                        UISwitch chkCommissionCheck = chkCommission.GetCheckbox();
                        chkCommissionCheck.ValueChanged += (sender,e) => {CheckboxChanged(sender, e, 2);};

                        if(bDisableRow)
                        {
                            chkCommissionCheck.Enabled = false;
                        }

                        arrItems6[8] = chkCommissionVw;

                        iUtils.CreateFormGridItem btnRFU = new iUtils.CreateFormGridItem();
                        UIView btnRFUVw = new UIView();
                        btnRFU.SetDimensions(700f,iRFURowVert, 130f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                        if(bDisableRow)
                        {
                            btnRFU.SetLabelText("Committed");
                        }
                        else
                        {
                            btnRFU.SetLabelText("Commit RFU");
                        }
                        btnRFU.SetBorderWidth(0.0f);
                        btnRFU.SetFontName("Verdana");
                        btnRFU.SetFontSize(14f);
                        btnRFU.SetTag((iRFUButtonSaveTagId + (j+1)) * (ii+1));

                        if (j % 2 == 0)
                        {
                            btnRFU.SetCellColour("Pale Blue");
                        }
                        else
                        {
                            btnRFU.SetCellColour("Sky Blue");
                        }

                        btnRFUVw = btnRFU.GetButtonCell();

                        UIButton btnRFUButton = new UIButton();
                        btnRFUButton = btnRFU.GetButton();
                        btnRFUButton.TouchUpInside += (sender,e) => {CommitRFU(sender, e);};

                        if(bDisableRow)
                        {
                            btnRFUButton.Enabled = false;
                        }

                        arrItems6[9] = btnRFUVw;

                        iColNo = arrITPRFUs.Tables[0].Columns["BatteryCapacity"].Ordinal;
                        string sBatteryCapacity = arrITPRFUs.Tables[0].Rows[j].ItemArray[iColNo].ToString();
                        UILabel hfRFUBatteryCapacity = new UILabel();
                        hfRFUBatteryCapacity.Text = sBatteryCapacity;
                        hfRFUBatteryCapacity.Tag = (ihfRowRFUBatteryCapacityTagId + (j+1)) * (ii+1);
                        hfRFUBatteryCapacity.Hidden = true;
                        arrItems6[10] = hfRFUBatteryCapacity;

                        //Now add the row details into the view
                        vwPwrInternalRowId.AddSubviews(arrItems6);

                        iSectionRFUHeight += iHeightToAdd;
                        iRFURowVert += iHeightToAdd;
                        iVert += iHeightToAdd;

                        vwPwrInternalRowId.Frame = new RectangleF(0f, iRFURowInnerTop, 1000f, iRFURowVert);
                        RFUTableRow.AddSubview(vwPwrInternalRowId);
                        iRFURowInnerTop += iRFURowVert;
                        iRFURowVert = 0f;

                    }
                    //Now resize the UIView that is effectively the container for the RFU info for this section
                    //And also store this height in a hidden field for use in the contract and expand functions
                    RFUTableRow.Frame = new RectangleF(0f,iRFURowVertTop,1000f,iSectionRFUHeight);
                    hfSectionHeight.Text = iSectionRFUHeight.ToString();
                }

                iTotalHeight = iVert + 380f;
                SizeF layoutSize = new SizeF(1000f, iTotalHeight);
                layout.ContentSize = layoutSize;

                UILabel hfScrollContentHeight = new UILabel();
                hfScrollContentHeight.Text = iTotalHeight.ToString();
                hfScrollContentHeight.Tag = 3;
                hfScrollContentHeight.Hidden = true;
                layout.AddSubview(hfScrollContentHeight);
                View.AddSubview(layout);

                //Now determine what is to be contrated by default
                for(int iiii=0;iiii< m_iQuestionSections; iiii++)
                {
                    if(bHideSections[iiii])
                    {
                        UIButton btnContract = (UIButton)View.ViewWithTag (iContractSectionBtnTagId * (iiii+1));

                        ContractSection(btnContract, null);
                        //Also display the completed item
                        UILabel lblComplete = (UILabel)View.ViewWithTag(iSectionCompleteLabelTagId * (iiii+1));
                        lblComplete.Hidden = false;
                    }
                }

            }
            catch (Exception except)
            {
                string sTest = except.Message.ToString();
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog(sTest);
            }
        }
        public void DrawOpeningPage()
        {
            try
            {
                int iDownloaded;
                int iOpenBtnStatus = 1; //Default is on
                int iUploadBtnStatus = 0; //Default is off
                int iRemoveBtnStatus = 0; //Default is off
                string sStatusText = "";
                int iColNo = 0;
                string sId = "";
                int iOpenBtnId = -1;
                float iTotalHeight = 0.0f;

                float iVert = 100.0f;
                float iRowHeight = 50f;
                UIScrollView layout = new UIScrollView();
                layout.Frame = new RectangleF(0f,0f,1000f,620f);
                layout.Tag = 2;
                View.AddSubview(layout);

                //Place the headings
                UIView[] arrItems = new UIView[7];

                //Create the headings
                iUtils.CreateFormGridItem lblProjIdHdr = new iUtils.CreateFormGridItem();
                UIView lblProjIdHdrVw = new UIView();
                lblProjIdHdr.SetDimensions(10f,iVert, 100f, iRowHeight, 2f, 2f, 2f, 2f);
                lblProjIdHdr.SetLabelText("Project Id");
                lblProjIdHdr.SetBorderWidth(1.0f);
                lblProjIdHdr.SetFontName("Verdana-Bold");
                lblProjIdHdr.SetFontSize(12f);
                lblProjIdHdr.SetCellColour("DarkSlateGrey");
                lblProjIdHdr.SetTextColour("White");
                lblProjIdHdr.SetTextAlignment("centre");
                lblProjIdHdrVw = lblProjIdHdr.GetLabelCell();
                arrItems[0] = lblProjIdHdrVw;

                iUtils.CreateFormGridItem lblDescHdr = new iUtils.CreateFormGridItem();
                UIView lblDescHdrVw = new UIView();
                lblDescHdr.SetDimensions(109f,iVert, 250f, iRowHeight, 2f, 2f, 2f, 2f); //Set left to 1 less so border does not double up
                lblDescHdr.SetLabelText("Description");
                lblDescHdr.SetBorderWidth(1.0f);
                lblDescHdr.SetFontName("Verdana-Bold");
                lblDescHdr.SetFontSize(12f);
                lblDescHdr.SetCellColour("DarkSlateGrey");
                lblDescHdr.SetTextColour("White");
                lblDescHdr.SetTextAlignment("centre");
                lblDescHdrVw = lblDescHdr.GetLabelCell();
                arrItems[1] = lblDescHdrVw;

                iUtils.CreateFormGridItem lblOpenHdr = new iUtils.CreateFormGridItem();
                UIView lblOpenHdrVw = new UIView();
                lblOpenHdr.SetDimensions(358f,iVert,100f, iRowHeight, 2f, 2f, 2f, 2f); //Set left to 1 less so border does not double up
                lblOpenHdr.SetLabelText("Open");
                lblOpenHdr.SetBorderWidth(1.0f);
                lblOpenHdr.SetFontName("Verdana-Bold");
                lblOpenHdr.SetFontSize(12f);
                lblOpenHdr.SetCellColour("DarkSlateGrey");
                lblOpenHdr.SetTextColour("White");
                lblOpenHdr.SetTextAlignment("centre");
                lblOpenHdrVw = lblOpenHdr.GetLabelCell();
                arrItems[2] = lblOpenHdrVw;

                iUtils.CreateFormGridItem lblUploadHdr = new iUtils.CreateFormGridItem();
                UIView lblUploadHdrVw = new UIView();
                lblUploadHdr.SetDimensions(457f,iVert,100f, iRowHeight, 2f, 2f, 2f, 2f); //Set left to 1 less so border does not double up
                lblUploadHdr.SetLabelText("Upload");
                lblUploadHdr.SetBorderWidth(1.0f);
                lblUploadHdr.SetFontName("Verdana-Bold");
                lblUploadHdr.SetFontSize(12f);
                lblUploadHdr.SetCellColour("DarkSlateGrey");
                lblUploadHdr.SetTextColour("White");
                lblUploadHdr.SetTextAlignment("centre");
                lblUploadHdrVw = lblUploadHdr.GetLabelCell();
                arrItems[3] = lblUploadHdrVw;

                iUtils.CreateFormGridItem lblBackupHdr = new iUtils.CreateFormGridItem();
                UIView lblBackupHdrVw = new UIView();
                lblBackupHdr.SetDimensions(556f,iVert,100f, iRowHeight, 2f, 2f, 2f, 2f); //Set left to 1 less so border does not double up
                lblBackupHdr.SetLabelText("Backup");
                lblBackupHdr.SetBorderWidth(1.0f);
                lblBackupHdr.SetFontName("Verdana-Bold");
                lblBackupHdr.SetFontSize(12f);
                lblBackupHdr.SetCellColour("DarkSlateGrey");
                lblBackupHdr.SetTextColour("White");
                lblBackupHdr.SetTextAlignment("centre");
                lblBackupHdrVw = lblBackupHdr.GetLabelCell();
                arrItems[4] = lblBackupHdrVw;

                iUtils.CreateFormGridItem lblRemoveHdr = new iUtils.CreateFormGridItem();
                UIView lblRemoveHdrVw = new UIView();
                lblRemoveHdr.SetDimensions(655f,iVert,100f, iRowHeight, 2f, 2f, 2f, 2f); //Set left to 1 less so border does not double up
                lblRemoveHdr.SetLabelText("Remove");
                lblRemoveHdr.SetBorderWidth(1.0f);
                lblRemoveHdr.SetFontName("Verdana-Bold");
                lblRemoveHdr.SetFontSize(12f);
                lblRemoveHdr.SetCellColour("DarkSlateGrey");
                lblRemoveHdr.SetTextColour("White");
                lblRemoveHdr.SetTextAlignment("centre");
                lblRemoveHdrVw = lblRemoveHdr.GetLabelCell();
                arrItems[5] = lblRemoveHdrVw;

                iUtils.CreateFormGridItem lblStatusHdr = new iUtils.CreateFormGridItem();
                UIView lblStatusHdrVw = new UIView();
                lblStatusHdr.SetDimensions(754f,iVert,246f, iRowHeight, 2f, 2f, 2f, 2f); //Set left to 1 less so border does not double up
                lblStatusHdr.SetLabelText("Status");
                lblStatusHdr.SetBorderWidth(1.0f);
                lblStatusHdr.SetFontName("Verdana-Bold");
                lblStatusHdr.SetFontSize(12f);
                lblStatusHdr.SetCellColour("DarkSlateGrey");
                lblStatusHdr.SetTextColour("White");
                lblStatusHdr.SetTextAlignment("centre");
                lblStatusHdrVw = lblStatusHdr.GetLabelCell();
                arrItems[6] = lblStatusHdrVw;

                layout.AddSubviews(arrItems);

                //Loop around for each item and place in the psuedo table
                DataSet arrITP = GetITPsDownloadedLocal();
                if(arrITP.Tables.Count >0)
                {
                    UIView[] arrItems2 = new UIView[10];
                    int iRows = arrITP.Tables[0].Rows.Count;
                    m_iProjectsInList = iRows;
                    iTotalHeight = (iRows+1) * iRowHeight;

                    for (int i = 0; i < iRows; i++)
                    {
                        sStatusText = "";

                        iVert += (iRowHeight - 1.0f); //Make it 1 less so that the border does not double up
                        iUtils.CreateFormGridItem lblProjId = new iUtils.CreateFormGridItem();
                        UIView lblProjIdVw = new UIView();
                        lblProjId.SetDimensions(10f,iVert, 100f, iRowHeight, 2f, 2f, 2f, 2f);
                        iColNo = arrITP.Tables[0].Columns["ID"].Ordinal;
                        sId = arrITP.Tables[0].Rows[i].ItemArray[iColNo].ToString();
                        lblProjId.SetLabelText(sId);
                        lblProjId.SetBorderWidth(1.0f);
                        lblProjId.SetFontName("Verdana");
                        lblProjId.SetFontSize(12f);
                        lblProjId.SetTag(iProjectIdTagId * (i+1));
                        lblProjIdVw = lblProjId.GetLabelCell();
                        arrItems2[0] = lblProjIdVw;

                        iUtils.CreateFormGridItem lblDesc = new iUtils.CreateFormGridItem();
                        UIView lblDescVw = new UIView();
                        lblDesc.SetDimensions(109f,iVert, 250f, iRowHeight, 2f, 2f, 2f, 2f); //Set left to 1 less so border does not double up
                        iColNo = arrITP.Tables[0].Columns["ProjectDesc"].Ordinal;
                        lblDesc.SetLabelText(arrITP.Tables[0].Rows[i].ItemArray[iColNo].ToString());
                        lblDesc.SetBorderWidth(1.0f);
                        lblDesc.SetFontName("Verdana");
                        lblDesc.SetFontSize(12f);
                        lblDesc.SetTag(iProjectDescTagId * (i+1));
                        lblDescVw = lblDesc.GetLabelCell();
                        arrItems2[1] = lblDescVw;

                        //If uploaded back to main DB then disable the open button
                        iColNo = arrITP.Tables[0].Columns["Downloaded"].Ordinal;
                        iDownloaded = Convert.ToInt16(arrITP.Tables[0].Rows[i].ItemArray[iColNo]);

                        iUtils.CreateFormGridItem btnOpen = new iUtils.CreateFormGridItem();
                        UIView btnOpenVw = new UIView();
                        btnOpen.SetDimensions(358f,iVert, 100f, iRowHeight, 8f, 4f, 8f, 4f); //Set left to 1 less so border does not double up
                        btnOpen.SetLabelText("Open");
                        btnOpen.SetBorderWidth(1.0f);
                        btnOpen.SetFontName("Verdana");
                        btnOpen.SetFontSize(14f);
                        iOpenBtnId = iOpenBtnTagId * (i+1);
                        btnOpen.SetTag(iOpenBtnId);
                        btnOpenVw = btnOpen.GetButtonCell();

                        UIButton btnOpenButton = new UIButton();
                        btnOpenButton = btnOpen.GetButton();
                        btnOpenButton.TouchUpInside += (sender,e) => {OpenITP(sender, e);};
                        iOpenBtnStatus = 1;
                        if (iDownloaded == 1)
                        {
                            btnOpenButton.Enabled = false;
                            sStatusText += "Uploaded already. You can remove the project or you must download again to make changes.";
                            iOpenBtnStatus = 0;
                            iRemoveBtnStatus = 1;
                        }
                        else
                        {
                            sStatusText += "Ready for modification, backup or upload.";
                        }

                        arrItems2[2] = btnOpenVw;

                        iUtils.CreateFormGridItem btnUpload = new iUtils.CreateFormGridItem();
                        UIView btnUploadVw = new UIView();
                        btnUpload.SetDimensions(457f,iVert, 100f, iRowHeight, 8f, 4f, 8f, 4f); //Set left to 1 less so border does not double up
                        btnUpload.SetLabelText("Upload");
                        btnUpload.SetBorderWidth(1.0f);
                        btnUpload.SetFontName("Verdana");
                        btnUpload.SetFontSize(14f);
                        btnUpload.SetTag(iUploadBtnTagId * (i+1));
                        btnUploadVw = btnUpload.GetButtonCell();

                        UIButton btnUploadButton = new UIButton();
                        btnUploadButton = btnUpload.GetButton();
                        btnUploadButton.TouchUpInside += (sender,e) => {UploadITPQuestion(sender, e, 1);};

                        iUploadBtnStatus = 1;

                        iUtils.CreateFormGridItem btnBackup = new iUtils.CreateFormGridItem();
                        UIView btnBackupVw = new UIView();
                        btnBackup.SetDimensions(556f,iVert, 100f, iRowHeight, 8f, 4f, 8f, 4f); //Set left to 1 less so border does not double up
                        btnBackup.SetLabelText("Backup");
                        btnBackup.SetBorderWidth(1.0f);
                        btnBackup.SetFontName("Verdana");
                        btnBackup.SetFontSize(14f);
                        btnBackup.SetTag(iBackupBtnTagId * (i+1));
                        btnBackupVw = btnBackup.GetButtonCell();

                        UIButton btnBackupButton = new UIButton();
                        btnBackupButton = btnBackup.GetButton();
                        btnBackupButton.TouchUpInside += (sender,e) => {UploadITPQuestion(sender, e, 2);};

                        //iBackupBtnStatus = 1;

                        iUtils.CreateFormGridItem btnRemove = new iUtils.CreateFormGridItem();
                        UIView btnRemoveVw = new UIView();
                        btnRemove.SetDimensions(655f,iVert, 100f, iRowHeight, 8f, 4f, 8f, 4f); //Set left to 1 less so border does not double up
                        btnRemove.SetLabelText("Remove");
                        btnRemove.SetBorderWidth(1.0f);
                        btnRemove.SetFontName("Verdana");
                        btnRemove.SetFontSize(14f);
                        btnRemove.SetTag(iRemoveBtnTagId * (i+1));
                        btnRemoveVw = btnRemove.GetButtonCell();

                        UIButton btnRemoveButton = new UIButton();
                        btnRemoveButton = btnRemove.GetButton();
                        btnRemoveButton.TouchUpInside += (sender,e) => {RemoveITP(sender, e);};
                        btnRemoveButton.Enabled = false;

                        //If not logged in then you cannot upload
                        if (m_sUser == "Not logged in to SCMS" )
                        {
                            btnUploadButton.Enabled = false;
                            btnBackupButton.Enabled = false;
                            iUploadBtnStatus = 0;
                            if (iDownloaded != 1)
                            {
                                sStatusText += "You must login to upload.";
                            }
                        }

                        if (iDownloaded == 1)
                        {
                            btnUploadButton.Enabled = false;
                            btnBackupButton.Enabled = false;
                            iUploadBtnStatus = 0;
                            btnRemoveButton.Enabled = true;
                            iRemoveBtnStatus = 1;
                        }

                        arrItems2[3] = btnUploadVw;
                        arrItems2[4] = btnBackupVw;
                        arrItems2[5] = btnRemoveVw;

                        iUtils.CreateFormGridItem lblStatus = new iUtils.CreateFormGridItem();
                        UIView lblStatusVw = new UIView();
                        lblStatus.SetDimensions(754f,iVert, 246f, iRowHeight, 2f, 2f, 2f, 2f); //Set left to 1 less so border does not double up
                        lblStatus.SetLabelText(sStatusText);
                        lblStatus.SetBorderWidth(1.0f);
                        lblStatus.SetFontName("Verdana");
                        lblStatus.SetFontSize(12f);
                        lblStatus.SetTag(iProjStatusTagId * (i+1));
                        lblStatusVw = lblStatus.GetLabelCell();
                        arrItems2[6] = lblStatusVw;

                        UILabel hfOpenBtnStatus = new UILabel();
                        hfOpenBtnStatus.Tag = (iOpenBtnStatusTagId * (i+1));
                        hfOpenBtnStatus.Text = iOpenBtnStatus.ToString();
                        hfOpenBtnStatus.Hidden = true;
                        arrItems2[7] = hfOpenBtnStatus;

                        UILabel hfUploadBtnStatus = new UILabel();
                        hfUploadBtnStatus.Tag = (iUploadBtnStatusTagId * (i+1));
                        hfUploadBtnStatus.Text = iUploadBtnStatus.ToString();
                        hfUploadBtnStatus.Hidden = true;
                        arrItems2[8] = hfUploadBtnStatus;

                        UILabel hfRemoveBtnStatus = new UILabel();
                        hfRemoveBtnStatus.Tag = (iRemoveBtnStatusTagId * (i+1));
                        hfRemoveBtnStatus.Text = iRemoveBtnStatus.ToString();
                        hfRemoveBtnStatus.Hidden = true;
                        arrItems2[9] = hfRemoveBtnStatus;

                        layout.AddSubviews(arrItems2);

                    }
                }

                //And reduce the content size of the main scroll view by the same amount
                SizeF layoutSize = new SizeF(1000f, iTotalHeight);
                layout.ContentSize = layoutSize;

            }
            catch (Exception except)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog(except.Message);
            }
        }
Example #11
0
        public bool ValidateCutoverDate(object sender, int iFromBackButton)
        {
            if(gbSuppressSecondCheck)
            {
                return true;
            }

            if(iFromBackButton == 1)
            {
                gbSuppressSecondCheck = true;
            }

            UITextField txtCODate = (UITextField)sender;
            string sCODate = txtCODate.Text;
            DateClass dt = new DateClass ();
            DateTime dtCO;
            bool bDateCheck = dt.ValidateDate (sCODate, ref dtCO);
            int iTagId = txtCODate.Tag;
            int iSection =  m_iRFUSectionCounter + 1;
            int iStringRow = iTagId/iSection - iRFUCutoverDateRowLabelTagId;
            UILabel hfCutoverDate = (UILabel)View.ViewWithTag((ihfCutoverDateRowLabelTagId + iStringRow) * iSection);

            if (!bDateCheck)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox ();
                alert.CreateErrorAlertDialog ("Please enter a valid date for the cutover date");
                txtCODate.ResignFirstResponder();
                txtCODate.BecomeFirstResponder();
                m_bSuppressMove = true;
                return false;
            }
            else
            {
                string sCOReturn = dt.Get_Date_String(dtCO, "dd/mm/yy");
                txtCODate.Text = sCOReturn;

                if(hfCutoverDate.Text != sCOReturn)
                {
                    hfCutoverDate.Text = sCOReturn;
                    UILabel hfRowStatus = (UILabel)View.ViewWithTag((ihfRowRFUStatusTagId + iStringRow) * iSection);
                    hfRowStatus.Text = "1";
                    SetSectionValueChanged(m_iRFUSectionCounter + 1);
                    SetAnyValueChanged(sender, null);
                }
                return true;
            }
        }
Example #12
0
        public bool SaveRFURow(string sId, int iRow, bool bCheckSectionStatus, bool bSaveOnly)
        {
            clsTabletDB.ITPDocumentSection DB = new clsTabletDB.ITPDocumentSection();
            string[] sItemValues = new string[9];
            int i;

            UILabel hfRFURowStatus = (UILabel)View.ViewWithTag((ihfRowRFUStatusTagId + (iRow + 1)) * (m_iRFUSectionCounter + 1));
            UILabel lblPwrId = (UILabel)View.ViewWithTag((iRFUPwrIdRowLabelTagId + (iRow + 1)) * (m_iRFUSectionCounter + 1));
            string sPwrId = lblPwrId.Text;
            UILabel lblDesignLoad = (UILabel)View.ViewWithTag((iRFUDesignLoadRowLabelTagId + (iRow + 1)) * (m_iRFUSectionCounter + 1));
            string sDesignLoad = lblDesignLoad.Text;
            UITextField txtCutoverLoad = (UITextField)View.ViewWithTag((iRFUCutoverLoadRowLabelTagId + (iRow + 1)) * (m_iRFUSectionCounter + 1));
            string sCutoverLoad = txtCutoverLoad.Text;
            UITextField txtCutoverDate = (UITextField)View.ViewWithTag((iRFUCutoverDateRowLabelTagId + (iRow + 1)) * (m_iRFUSectionCounter + 1));
            string sCutoverDate = txtCutoverDate.Text;
            UISwitch chkDecommission = (UISwitch)View.ViewWithTag((iRFUDecommissionRowCheckTagId + (iRow + 1)) * (m_iRFUSectionCounter + 1));
            bool bDecommission = chkDecommission.On;
            int iDecommission;
            if (bDecommission)
            {
                iDecommission = 1;
            }
            else
            {
                iDecommission = 0;
            }
            UISwitch chkCommission = (UISwitch)View.ViewWithTag((iRFUCommissionRowCheckTagId + (iRow + 1)) * (m_iRFUSectionCounter + 1));
            bool bCommission = chkCommission.On;
            int iCommission;
            if (bCommission)
            {
                iCommission = 1;
            }
            else
            {
                iCommission = 0;
            }
            string sCurrentDateAndTime = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
            UILabel hfBatteryCapacity = (UILabel)View.ViewWithTag((ihfRowRFUBatteryCapacityTagId + (iRow + 1)) * (m_iRFUSectionCounter + 1));
            string sBatteryCapacity = hfBatteryCapacity.Text;

            //Get all the info for this RFU row
            sItemValues [0] = sId;
            sItemValues [1] = sPwrId;
            sItemValues [2] = sDesignLoad;
            sItemValues [3] = sCutoverLoad;
            sItemValues [4] = sCutoverDate;
            sItemValues [5] = iDecommission.ToString();
            sItemValues [6] = iCommission.ToString();
            sItemValues [7] = sCurrentDateAndTime;
            sItemValues [8] = sBatteryCapacity;

            if (sCutoverLoad == "" || sCutoverDate == "" || (iDecommission == 0 && iCommission == 0) ||
                (iDecommission == 1 && iCommission == 1))
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateAlertDialog();
                alert.SetAlertMessage("The Power Id " + sPwrId + " RFU info is not complete. You cannot commit the RFU at this stage.");
                alert.ShowAlertBox();
                return false;
            }

            //Update or insert into the local DB
            if (DB.ITPRFUSetRecord(sId, sPwrId, sItemValues))
            {
                //Update the row status
                hfRFURowStatus.Text = "0";

                if(!bSaveOnly)
                {
                    UIButton btnRFU = (UIButton)View.ViewWithTag((iRFUButtonSaveTagId + (iRow+1)) * (m_iRFUSectionCounter+1));
                    btnRFU.SetTitle("Committed", UIControlState.Normal);
                }
            }
            else
            {
                return false;
            }

            //Now check to see if the section should be marked as complete and ultimately the whole page
            if (bCheckSectionStatus)
            {
                UILabel hfSectionPwrIds = (UILabel)View.ViewWithTag(iSectionRowsTagId * (m_iRFUSectionCounter + 1));
                int iTotalPwrIds = Convert.ToInt32(hfSectionPwrIds.Text);
                bool bResetSectionFlag = true;

                for (i=0; i<iTotalPwrIds; i++)
                {
                    UILabel hfRFURowStatus1 = (UILabel)View.ViewWithTag((ihfRowRFUStatusTagId + (i + 1)) * (m_iRFUSectionCounter + 1));
                    int iRowStatus1 = Convert.ToInt32(hfRFURowStatus1.Text);
                    if(iRowStatus1 == 1)
                    {
                        bResetSectionFlag = false;
                        break;
                    }

                }

                if(bResetSectionFlag)
                {
                    UILabel hfSectionStatus = (UILabel)View.ViewWithTag(iSectionStatusTagId * (m_iRFUSectionCounter + 1));
                    hfSectionStatus.Text = "0";
                    SetAnyValueChangedOff(false);
                    return true;
                }
            }

            return true;
        }
Example #13
0
        public bool RFUComplete(int iStringRow)
        {
            int iSectionId = m_iRFUSectionCounter;
            bool bQuestion = QuestionsComplete();
            UILabel lblPwrId = (UILabel)View.ViewWithTag((iRFUPwrIdRowLabelTagId + iStringRow) * (iSectionId+1));
            string sPwrId = lblPwrId.Text;
            bool bBatteries = BatteryPwrIdComplete(sPwrId);
            bool bPowerConversion = PowerConversionPwrIdComplete(sPwrId);

            if (!bQuestion && !bBatteries && !bPowerConversion)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog("Some battery and power conversion information on PwrId " + sPwrId + " is incomplete and not all questions have been answered. You cannot commit the RFU at this stage.");
                return false;
            }

            if (!bQuestion && !bBatteries)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog("Some battery information on PwrId " + sPwrId + " is incomplete and not all questions have been answered. You cannot commit the RFU at this stage.");
                return false;
            }

            if (!bQuestion && !bPowerConversion)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog("Some power conversion information on PwrId " + sPwrId + " is incomplete and not all questions have been answered. You cannot commit the RFU at this stage.");
                return false;
            }

            if (!bBatteries && !bPowerConversion)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog("Some battery and power conversion information on PwrId " + sPwrId + " is incomplete. You cannot commit the RFU at this stage.");
                return false;
            }

            if (!bBatteries)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog("Some battery information on PwrId " + sPwrId + " is incomplete. You cannot commit the RFU at this stage.");
                return false;
            }

            if (!bPowerConversion)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog("Some power conversion information on PwrId " + sPwrId + " is incomplete. You cannot commit the RFU at this stage.");
                return false;
            }

            if (!bQuestion)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog("Not all questions have been answered. You cannot commit the RFU at this stage.");
                return false;
            }

            return true;
        }
Example #14
0
        public void DrawOpeningPage()
        {
            try
            {
                int iColNo = 0;
                int iSectionId = 0;
                string sId = m_sPassedId;
                float iVert = 0f;
                float iPwrIdRowVertInner = 0f;
                float iSectionHdrRowHeight = 40f;
                float iQuestionRowHeight = 30f;
                float iTotalHeight = 0f;
                float iHeightToAdd = iQuestionRowHeight;
                bool bHideComplete = true;
                bool bHideSectionComplete = true;
                bool bFullyCommitted = false;
                bool bRFUPwrIdCommitted = false;
                UIView[] arrItems4 = new UIView[8];
                UIView[] arrItems5 = new UIView[8];

                //Get some static data for dropdowns only once so we don't reprocess unecessarily
                clsTabletDB.ITPInventory ITPInventory = new clsTabletDB.ITPInventory();
                string[] sRackMakes = ITPInventory.GetRackMakes();
                m_sRackMakes = sRackMakes;
                string[] sSubRackMakes = ITPInventory.GetSubRackMakes();
                m_sSubRackMakes = sSubRackMakes;
                string[] sPositionMakes = ITPInventory.GetPositionMakes();
                m_sPositionMakes = sPositionMakes;
                string[] sSolarStringMakes = ITPInventory.GetSolarStringMakes();
                m_sSolarStringMakes = sSolarStringMakes;

                UIScrollView layout = new UIScrollView();
                layout.Frame = new RectangleF(0f,35f,1000f,620f);
                layout.Tag = 2;
                clsTabletDB.ITPDocumentSection ITPSection = new clsTabletDB.ITPDocumentSection();

                //******************************************************************************************//
                //                      SECTION 10 (EQUIPMENT)                                              //
                //******************************************************************************************//
                //Get all the PwrId's for this project from ITPSection10
                DataSet arrITPSectionEquipmentPwrIds = ITPSection.GetLocalITPSectionEquipmentPwrIds(sId);

                if (arrITPSectionEquipmentPwrIds.Tables.Count > 0)
                {
                    int iii = m_iSections;
                    m_iSections++; //Add an extra one for the batteries section
                    m_iEquipmentSectionCounter = iii;
                    int iPwrIdRows = arrITPSectionEquipmentPwrIds.Tables[0].Rows.Count;

                    //Add in the section title and buttons for each section header
                    UIView SectionEquipmentRow = new UIView();
                    float iSectionEquipmentRowVertTop = iVert;
                    SectionEquipmentRow.Frame = new RectangleF(0f,iSectionEquipmentRowVertTop,1000f,iSectionHdrRowHeight);
                    iSectionId = iSectionTagId * (iii+1);
                    SectionEquipmentRow.Tag = iSectionId;
                    layout.AddSubview(SectionEquipmentRow);

                    UILabel hfSectionEquipment = new UILabel();
                    hfSectionEquipment.Text = "10";
                    hfSectionEquipment.Tag = iSectionDBIdTagId * (iii+1);
                    hfSectionEquipment.Hidden = true;
                    SectionEquipmentRow.AddSubview(hfSectionEquipment);

                    iUtils.CreateFormGridItem SectionEquipment = new iUtils.CreateFormGridItem();
                    UIView SectionEquipmentVw = new UIView();
                    SectionEquipment.SetDimensions(0f,0f, 400f, iSectionHdrRowHeight, 4f, 7.5f, 4f, 7.5f);
                    SectionEquipment.SetLabelText("POWER CONVERSION");
                    SectionEquipment.SetBorderWidth(0.0f);
                    SectionEquipment.SetFontName("Verdana-Bold");
                    SectionEquipment.SetTextColour("White");
                    SectionEquipment.SetFontSize(12f);
                    SectionEquipment.SetCellColour("DarkSlateGrey");
                    SectionEquipment.SetTag(iSectionDescTagId * (iii+1));
                    SectionEquipmentVw = SectionEquipment.GetLabelCell();
                    arrItems4[0] = SectionEquipmentVw;

                    if(PowerConversionFullyCommitted())
                    {
                        bFullyCommitted = true;
                        bHideComplete = false;
                    }
                    else
                    {
                        bFullyCommitted = false;
                        if(PowerConversionFullyComplete())
                        {
                            bHideComplete = false;
                        }
                        else
                        {
                            bHideComplete = true;
                        }
                    }

                    iUtils.CreateFormGridItem SectionCompleteLabel = new iUtils.CreateFormGridItem();
                    UIView SectionCompleteLabelVw = new UIView();
                    SectionCompleteLabel.SetDimensions(400f,0f, 150f, iSectionHdrRowHeight, 4f, 7.5f, 4f, 7.5f);
                    if(bFullyCommitted)
                    {
                        SectionCompleteLabel.SetLabelText("COMMITTED");
                    }
                    else
                    {
                        SectionCompleteLabel.SetLabelText("COMPLETED");
                    }
                    SectionCompleteLabel.SetBorderWidth(0.0f);
                    SectionCompleteLabel.SetFontName("Verdana-Bold");
                    SectionCompleteLabel.SetTextColour("Bright Yellow");
                    SectionCompleteLabel.SetFontSize(12f);
                    SectionCompleteLabel.SetCellColour("DarkSlateGrey");
                    SectionCompleteLabel.SetTag(iSectionCompleteLabelTagId * (iii+1));
                    SectionCompleteLabel.SetHidden(bHideComplete);
                    SectionCompleteLabelVw = SectionCompleteLabel.GetLabelCell();
                    arrItems4[1] = SectionCompleteLabelVw;

                    iUtils.CreateFormGridItem btnSaveEquipment = new iUtils.CreateFormGridItem();
                    UIView btnSaveEquipmentVw = new UIView();
                    btnSaveEquipment.SetDimensions(550f,0f, 150f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                    btnSaveEquipment.SetLabelText("Save Section");
                    btnSaveEquipment.SetBorderWidth(0.0f);
                    btnSaveEquipment.SetFontName("Verdana");
                    btnSaveEquipment.SetFontSize(12f);
                    btnSaveEquipment.SetHidden(true);
                    btnSaveEquipment.SetTag(iSaveSectionBtnTagId * (iii+1));
                    btnSaveEquipment.SetCellColour("DarkSlateGrey");
                    btnSaveEquipmentVw = btnSaveEquipment.GetButtonCell();

                    UIButton btnSaveEquipmentButton = new UIButton();
                    btnSaveEquipmentButton = btnSaveEquipment.GetButton();
                    btnSaveEquipmentButton.TouchUpInside += (sender,e) => {SaveThisSection(sender, e);};

                    arrItems4[2] = btnSaveEquipmentVw;

                    iUtils.CreateFormGridItem btnExpandEquipment = new iUtils.CreateFormGridItem();
                    UIView btnExpandEquipmentVw = new UIView();
                    btnExpandEquipment.SetDimensions(700f,0f, 50f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                    btnExpandEquipment.SetLabelText("+");
                    btnExpandEquipment.SetBorderWidth(0.0f);
                    btnExpandEquipment.SetFontName("Verdana");
                    btnExpandEquipment.SetFontSize(12f);
                    btnExpandEquipment.SetTag(iExpandSectionBtnTagId * (iii+1));
                    btnExpandEquipment.SetCellColour("DarkSlateGrey");
                    btnExpandEquipmentVw = btnExpandEquipment.GetButtonCell();

                    UIButton btnExpandEquipmentButton = new UIButton();
                    btnExpandEquipmentButton = btnExpandEquipment.GetButton();
                    btnExpandEquipmentButton.Enabled = false;
                    btnExpandEquipmentButton.TouchUpInside += (sender,e) => {ExpandSection(sender, e);};

                    arrItems4[3] = btnExpandEquipmentVw;

                    iUtils.CreateFormGridItem btnContractEquipment = new iUtils.CreateFormGridItem();
                    UIView btnContractEquipmentVw = new UIView();
                    btnContractEquipment.SetDimensions(750f,0f, 50f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                    btnContractEquipment.SetLabelText("-");
                    btnContractEquipment.SetBorderWidth(0.0f);
                    btnContractEquipment.SetFontName("Verdana");
                    btnContractEquipment.SetFontSize(12f);
                    btnContractEquipment.SetTag(iContractSectionBtnTagId * (iii+1));
                    btnContractEquipment.SetCellColour("DarkSlateGrey");
                    btnContractEquipmentVw = btnContractEquipment.GetButtonCell();

                    UIButton btnContractEquipmentButton = new UIButton();
                    btnContractEquipmentButton = btnContractEquipment.GetButton();
                    btnContractEquipmentButton.TouchUpInside += (sender,e) => {ContractSection(sender, e);};

                    arrItems4[4] = btnContractEquipmentVw;

                    UILabel hfSectionEquipmentHeight = new UILabel();
                    hfSectionEquipmentHeight.Tag = iSectionHeightTagId * (iii+1);
                    hfSectionEquipmentHeight.Hidden = true;
                    hfSectionEquipmentHeight.Text = "0";
                    arrItems4[5] = hfSectionEquipmentHeight;

                    UILabel hfSectionEquipmentRows = new UILabel();
                    hfSectionEquipmentRows.Tag = iSectionRowsTagId * (iii+1);
                    hfSectionEquipmentRows.Hidden = true;
                    hfSectionEquipmentRows.Text = iPwrIdRows.ToString();
                    arrItems4[6] = hfSectionEquipmentRows;

                    UILabel hfSectionEquipmentStatus = new UILabel();
                    hfSectionEquipmentStatus.Tag = iSectionStatusTagId * (iii+1);
                    hfSectionEquipmentStatus.Hidden = true;
                    hfSectionEquipmentStatus.Text = "0";
                    arrItems4[7] = hfSectionEquipmentStatus;

                    SectionEquipmentRow.AddSubviews(arrItems4);

                    iVert += iSectionHdrRowHeight;

                    //Now add a new view to this view to hold another view containing all the pwrid info for this section 10
                    UIView PwrIdTableRow = new UIView();
                    PwrIdTableRow.Frame = new RectangleF(0f,iVert,1000f,iSectionHdrRowHeight);
                    iSectionId = iContainerSectionTagId * (iii+1);
                    PwrIdTableRow.Tag = iSectionId;
                    layout.AddSubview(PwrIdTableRow);
                    float iPwrIdRowVert = 0.0f;
                    float iSectionPwrIdHeight = 0.0f;
                    float iPwrIdRowVertTop = iVert;
                    float iPwrIdRowInnerTop = 0.0f;
                    float iPwrIdRowInnerTop2 = 0.0f;

                    m_iEquipmentPwrIds = iPwrIdRows;

                    for (int jj = 0; jj < iPwrIdRows; jj++)
                    {
                        iPwrIdRowInnerTop2 = 0.0f;
                        UIView vwPwrInternalRowId = new UIView();
                        vwPwrInternalRowId.Frame = new RectangleF(0f,iPwrIdRowVert,1000f,200f); //This will be resized later on
                        vwPwrInternalRowId.Tag = (iPwrIdSectionTagId + (jj+1)) * (iii+1);

                        UILabel hfRow10Status = new UILabel();
                        hfRow10Status.Text = "0";
                        hfRow10Status.Tag = (ihfRow10StatusTagId + (jj+1)) * (iii+1);
                        hfRow10Status.Hidden = true;
                        arrItems5[0] = hfRow10Status;

                        //Put in the PwrId Label
                        iUtils.CreateFormGridItem rowPwrIdLabel = new iUtils.CreateFormGridItem();
                        UIView rowPwrIdLabelVw = new UIView();
                        iColNo = arrITPSectionEquipmentPwrIds.Tables[0].Columns["PwrId"].Ordinal;
                        string sPwrId = arrITPSectionEquipmentPwrIds.Tables[0].Rows[jj].ItemArray[iColNo].ToString();
                        rowPwrIdLabel.SetLabelWrap(0); //This means the text will NOT be wrapped in the label
                        rowPwrIdLabel.SetDimensions(0f,iPwrIdRowVert, 200f, iSectionHdrRowHeight, 2f, 2.5f, 2f, 2.5f);
                        rowPwrIdLabel.SetLabelText(sPwrId);
                        rowPwrIdLabel.SetBorderWidth(0.0f);
                        rowPwrIdLabel.SetFontName("Verdana-Bold");
                        rowPwrIdLabel.SetFontSize(18f);
                        rowPwrIdLabel.SetTag((iPwrIdRowLabelTagId + (jj+1)) * (iii+1));

                        if (jj % 2 == 0)
                        {
                            rowPwrIdLabel.SetCellColour("Pale Yellow");
                        }
                        else
                        {
                            rowPwrIdLabel.SetCellColour("Pale Orange");
                        }

                        rowPwrIdLabelVw = rowPwrIdLabel.GetLabelCell();
                        iHeightToAdd = iSectionHdrRowHeight;
                        arrItems5[1] = rowPwrIdLabelVw;

                        bRFUPwrIdCommitted = RFUPwrIdCommitted(sPwrId);

                        iUtils.CreateFormGridItem btnNewEquipment = new iUtils.CreateFormGridItem();
                        UIView btnNewEquipmentVw = new UIView();
                        btnNewEquipment.SetDimensions(200f,iPwrIdRowVert, 200f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                        btnNewEquipment.SetLabelText("New Item");
                        btnNewEquipment.SetBorderWidth(0.0f);
                        btnNewEquipment.SetFontName("Verdana");
                        btnNewEquipment.SetFontSize(12f);
                        btnNewEquipment.SetTag((iPwrIdNewBtnTagId + (jj+1)) * (iii+1));
                        if (jj % 2 == 0)
                        {
                            btnNewEquipment.SetCellColour("Pale Yellow");
                        }
                        else
                        {
                            btnNewEquipment.SetCellColour("Pale Orange");
                        }
                        btnNewEquipmentVw = btnNewEquipment.GetButtonCell();

                        UIButton btnNewEquipmentButton = new UIButton();
                        btnNewEquipmentButton = btnNewEquipment.GetButton();
                        btnNewEquipmentButton.TouchUpInside += (sender,e) => {AddNewEquipment(sender, e);};

                        if(bRFUPwrIdCommitted)
                        {
                            btnNewEquipmentButton.Enabled = false;
                        }

                        arrItems5[2] = btnNewEquipmentVw;

                        if(PowerConversionPwrIdComplete(sPwrId))
                        {
                            bHideSectionComplete = false;
                        }
                        else
                        {
                            bHideSectionComplete = true;
                        }
                        iUtils.CreateFormGridItem PwrIdCompleteLabel = new iUtils.CreateFormGridItem();
                        UIView PwrIdCompleteLabelVw = new UIView();
                        PwrIdCompleteLabel.SetDimensions(400f,0f, 150f, iSectionHdrRowHeight, 4f, 7.5f, 4f, 7.5f);
                        if(bRFUPwrIdCommitted)
                        {
                            PwrIdCompleteLabel.SetLabelText("COMMITTED");
                            bHideSectionComplete = false;
                        }
                        else
                        {
                            PwrIdCompleteLabel.SetLabelText("COMPLETED");
                        }
                        PwrIdCompleteLabel.SetBorderWidth(0.0f);
                        PwrIdCompleteLabel.SetFontName("Verdana-Bold");
                        PwrIdCompleteLabel.SetTextColour("Royal Blue");
                        PwrIdCompleteLabel.SetFontSize(14f);
                        if (jj % 2 == 0)
                        {
                            PwrIdCompleteLabel.SetCellColour("Pale Yellow");
                        }
                        else
                        {
                            PwrIdCompleteLabel.SetCellColour("Pale Orange");
                        }
                        PwrIdCompleteLabel.SetTag((iPwrIdSectionCompleteLabelTagId + (jj+1)) * (iii+1));
                        PwrIdCompleteLabel.SetHidden(bHideSectionComplete);
                        PwrIdCompleteLabelVw = PwrIdCompleteLabel.GetLabelCell();
                        arrItems5[3] = PwrIdCompleteLabelVw;

                        iUtils.CreateFormGridItem rowPwrIdBlank = new iUtils.CreateFormGridItem();
                        UIView rowPwrIdBlankVw = new UIView();
                        rowPwrIdBlank.SetLabelWrap(0); //This means the text will NOT be wrapped in the label
                        rowPwrIdBlank.SetDimensions(550f,iPwrIdRowVert, 350f, iSectionHdrRowHeight, 2f, 2.5f, 2f, 2.5f);
                        rowPwrIdBlank.SetLabelText("");
                        rowPwrIdBlank.SetBorderWidth(0.0f);
                        rowPwrIdBlank.SetFontName("Verdana");
                        rowPwrIdBlank.SetFontSize(12f);
                        rowPwrIdBlank.SetTag((iPwrIdRowLabelTagId + (jj+1)) * (iii+1));

                        if (jj % 2 == 0)
                        {
                            rowPwrIdBlank.SetCellColour("Pale Yellow");
                        }
                        else
                        {
                            rowPwrIdBlank.SetCellColour("Pale Orange");
                        }

                        rowPwrIdBlankVw = rowPwrIdBlank.GetLabelCell();
                        arrItems5[4] = rowPwrIdBlankVw;

                        iUtils.CreateFormGridItem btnExpandPwrId = new iUtils.CreateFormGridItem();
                        UIView btnExpandPwrIdVw = new UIView();
                        btnExpandPwrId.SetDimensions(900f,0f, 50f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                        btnExpandPwrId.SetLabelText("+");
                        btnExpandPwrId.SetBorderWidth(0.0f);
                        btnExpandPwrId.SetFontName("Verdana");
                        btnExpandPwrId.SetFontSize(12f);
                        btnExpandPwrId.SetTag((iPwrIdExpandTagId + (jj+1)) * (iii+1));
                        if (jj % 2 == 0)
                        {
                            btnExpandPwrId.SetCellColour("Pale Yellow");
                        }
                        else
                        {
                            btnExpandPwrId.SetCellColour("Pale Orange");
                        }
                        btnExpandPwrIdVw = btnExpandPwrId.GetButtonCell();

                        UIButton btnExpandPwrIdButton = new UIButton();
                        btnExpandPwrIdButton = btnExpandPwrId.GetButton();
                        btnExpandPwrIdButton.Enabled = false;
                        btnExpandPwrIdButton.TouchUpInside += (sender,e) => {ExpandPwrId(sender, e, 2);};

                        arrItems5[5] = btnExpandPwrIdVw;

                        iUtils.CreateFormGridItem btnContractPwrId = new iUtils.CreateFormGridItem();
                        UIView btnContractPwrIdVw = new UIView();
                        btnContractPwrId.SetDimensions(950f,0f, 50f, iSectionHdrRowHeight, 8f, 4f, 8f, 4f);
                        btnContractPwrId.SetLabelText("-");
                        btnContractPwrId.SetBorderWidth(0.0f);
                        btnContractPwrId.SetFontName("Verdana");
                        btnContractPwrId.SetFontSize(12f);
                        btnContractPwrId.SetTag((iPwrIdContractTagId + (jj+1)) * (iii+1));
                        if (jj % 2 == 0)
                        {
                            btnContractPwrId.SetCellColour("Pale Yellow");
                        }
                        else
                        {
                            btnContractPwrId.SetCellColour("Pale Orange");
                        }
                        btnContractPwrIdVw = btnContractPwrId.GetButtonCell();

                        UIButton btnContractPwrIdButton = new UIButton();
                        btnContractPwrIdButton = btnContractPwrId.GetButton();
                        btnContractPwrIdButton.TouchUpInside += (sender,e) => {ContractPwrId(sender, e, 2);};

                        arrItems5[6] = btnContractPwrIdVw;

                        UILabel hfPwrIdSectionHeight = new UILabel();
                        hfPwrIdSectionHeight.Tag = (iPwrIdHeightTagId + (jj+1)) * (iii+1);
                        hfPwrIdSectionHeight.Hidden = true;
                        hfPwrIdSectionHeight.Text = "0";
                        arrItems5[7] = hfPwrIdSectionHeight;

                        iHeightToAdd = iSectionHdrRowHeight;

                        //Now add the row details into the view
                        vwPwrInternalRowId.AddSubviews(arrItems5);

                        iSectionPwrIdHeight += iHeightToAdd;
                        iPwrIdRowVert += iHeightToAdd;
                        iVert += iHeightToAdd;
                        iPwrIdRowInnerTop2 += iHeightToAdd;

                        iPwrIdRowVertInner = 0f;
                        UIView vwPwrInternalRowIdInnner = new UIView();
                        vwPwrInternalRowIdInnner.Tag = (iPwrIdSectionInnerTagId + (jj+1)) * (iii+1);
                        vwPwrInternalRowIdInnner.Frame = new RectangleF(0f,iPwrIdRowVertInner,1000f,200f); //This will be resized later on
                        //                        vwPwrInternalRowIdInnner.Hidden = true;

                        UIView PwrIdHdr = BuildEquipmentHeader(jj, ref iHeightToAdd);
                        PwrIdHdr.Frame = new RectangleF(0f, iPwrIdRowVertInner, 1000f, iHeightToAdd);
                        vwPwrInternalRowIdInnner.AddSubview(PwrIdHdr);
                        vwPwrInternalRowId.AddSubview(vwPwrInternalRowIdInnner);

                        iSectionPwrIdHeight += iHeightToAdd;
                        iPwrIdRowVert += iHeightToAdd;
                        iPwrIdRowVertInner += iHeightToAdd;
                        iVert += iHeightToAdd;

                        //Now for each PwrId get the details for each string
                        DataSet arrITPSection10PwrIdItems = ITPSection.GetLocalITPSection10PwrIdEquipmentDetails(sId, sPwrId);

                        if (arrITPSection10PwrIdItems.Tables.Count > 0)
                        {
                            int iPwrIdItemRows = arrITPSection10PwrIdItems.Tables[0].Rows.Count;
                            //Add the rows to a hidden field so we know how many rows are in each PwrId battery block
                            UILabel hfPwrIdStringRows = new UILabel();
                            hfPwrIdStringRows.Text = iPwrIdItemRows.ToString();
                            hfPwrIdStringRows.Tag = (ihfPwrIdStringRowsTagId + (jj+1)) * (iii+1);
                            hfPwrIdStringRows.Hidden = true;
                            vwPwrInternalRowIdInnner.AddSubview(hfPwrIdStringRows);

                            for (var kk = 0; kk < iPwrIdItemRows; kk++)
                            {
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["AutoId"].Ordinal;
                                int iAutoId = Convert.ToInt32(arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo]);
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["BankNo"].Ordinal;
                                string sBankNo = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["Make"].Ordinal;
                                string sMake = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["Model"].Ordinal;
                                string sModel = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["SPN"].Ordinal;
                                string sSPN = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["DOM"].Ordinal;
                                string sDOM = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["Floor"].Ordinal;
                                string sFloor = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["Suite"].Ordinal;
                                string sSuite = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["Rack"].Ordinal;
                                string sRack = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["SubRack"].Ordinal;
                                string sSubRack = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["Position"].Ordinal;
                                string sPosition = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["Equipment_Condition"].Ordinal;
                                string sEquipType = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["SerialBatch"].Ordinal;
                                string sSerialNo = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["tblMaximoPSA_ID"].Ordinal;
                                string sMaximoPSAId = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["tblMaximoTransfer_Eqnum"].Ordinal;
                                string sMaximoTransferId = arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo].ToString();
                                if(sMaximoPSAId == "" || sMaximoPSAId == "0")
                                {
                                    sMaximoPSAId = "-1";
                                }
                                if(sMaximoTransferId == "" || sMaximoTransferId == "0")
                                {
                                    sMaximoTransferId = "-1";
                                }
                                int iMaximoPSAId = Convert.ToInt32(sMaximoPSAId);
                                int iMaximoTransferId = Convert.ToInt32(sMaximoTransferId);
                                int iMaximoAssetId = -1;

                                if(iMaximoPSAId > 0)
                                {
                                    iMaximoAssetId = iMaximoPSAId;
                                }
                                else if(iMaximoTransferId > 0 || sMaximoTransferId == "0000000000")
                                {
                                    iMaximoAssetId = iMaximoTransferId;
                                }
                                else
                                {
                                    iMaximoAssetId = -1;
                                }

                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["Equipment_Type"].Ordinal;
                                int iEquipmentType = Convert.ToInt32(arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo]);

                                iColNo = arrITPSection10PwrIdItems.Tables[0].Columns["Duplicate"].Ordinal;
                                int iDuplicate = Convert.ToInt32(arrITPSection10PwrIdItems.Tables[0].Rows[kk].ItemArray[iColNo]);

                                //Add in the row
                                UIView EquipmentItemRow = BuildEquipmentItemRowDetails(iii, jj, kk, sPwrId, iAutoId,
                                                                                       iMaximoAssetId, sBankNo,
                                                                                       sMake, sModel, sSPN, sDOM,
                                                                                       sFloor, sSuite, sRack, sSubRack, sPosition,
                                                                                       sEquipType, sSerialNo, iEquipmentType, iDuplicate,
                                                                                       false, bRFUPwrIdCommitted,ref iHeightToAdd);
                                EquipmentItemRow.Frame = new RectangleF(0f, iPwrIdRowVertInner, 1000f, iHeightToAdd);
                                EquipmentItemRow.Tag = iEquipmentFullRowTagId * (jj + 1) + (kk + 1);
                                vwPwrInternalRowIdInnner.AddSubview(EquipmentItemRow);

                                m_iEquipmentRowHeight = iHeightToAdd;
                                iSectionPwrIdHeight += iHeightToAdd;
                                iPwrIdRowVert += iHeightToAdd;
                                iPwrIdRowVertInner += iHeightToAdd;
                                iVert += iHeightToAdd;

                            }

                            hfPwrIdSectionHeight.Text = iPwrIdRowVertInner.ToString();
                            vwPwrInternalRowIdInnner.Frame = new RectangleF(0f, iPwrIdRowInnerTop2, 1000f, iPwrIdRowVertInner);
                            vwPwrInternalRowId.Frame = new RectangleF(0f, iPwrIdRowInnerTop, 1000f, iPwrIdRowVert);
                            PwrIdTableRow.AddSubview(vwPwrInternalRowId);
                            iPwrIdRowInnerTop += iPwrIdRowVert;
                            //iPwrIdRowInnerTop2 += iPwrIdRowVertInner;
                            iPwrIdRowVert = 0f;
                        }

                    }
                    //Now resize the UIView that is effectively the container for the battery info for this section
                    //And also store this height in a hidden field for use in the contract and expand functions
                    PwrIdTableRow.Frame = new RectangleF(0f,iPwrIdRowVertTop,1000f,iSectionPwrIdHeight);
                    hfSectionEquipmentHeight.Text = iSectionPwrIdHeight.ToString();
                }

                iTotalHeight = iVert + 280f;
                SizeF layoutSize = new SizeF(1000f, iTotalHeight);
                layout.ContentSize = layoutSize;

                UILabel hfScrollContentHeight = new UILabel();
                hfScrollContentHeight.Text = iTotalHeight.ToString();
                hfScrollContentHeight.Tag = 3;
                hfScrollContentHeight.Hidden = true;
                layout.AddSubview(hfScrollContentHeight);
                View.AddSubview(layout);

                //Contract all the power conversion PwrIds
                for(int iiii=0;iiii< m_iEquipmentPwrIds; iiii++)
                {
                    UIButton btnContract = (UIButton)View.ViewWithTag ((iPwrIdContractTagId + (iiii+1)) * (m_iEquipmentSectionCounter+1));
                    ContractPwrId(btnContract, null, 2);
                }

            }
            catch (Exception except)
            {
                string sTest = except.Message.ToString();
                iUtils.AlertBox alert = new iUtils.AlertBox ();
                alert.CreateErrorAlertDialog (sTest);
            }
        }
        bool UploadITP(string sId, int iOpenBtnId, int iUploadOrBackup)
        {
            string sUser = m_sUser;
            string sSessionId = m_sSessionId;
            clsITPFramework ITPFwrk = new clsITPFramework();
            string sRtnMsg = "";
            bool bUpload = ITPFwrk.UploadITPInfo(sSessionId, sUser, sId, iUploadOrBackup, ref sRtnMsg);
            if (bUpload && sRtnMsg == "")
            {
                //Now also disable the open button for this project
                if(iUploadOrBackup == 0)
                {
                    UIButton btnOpen = (UIButton)View.ViewWithTag (iOpenBtnId);
                    btnOpen.Enabled = false;
                    UILabel hfbtnOpenStatus = (UILabel)View.ViewWithTag (iOpenBtnId/iOpenBtnTagId * iOpenBtnStatusTagId);
                    hfbtnOpenStatus.Text = "0";

                    UIButton btnUpload = (UIButton)View.ViewWithTag (iOpenBtnId/ iOpenBtnTagId * iUploadBtnTagId);
                    btnUpload.Enabled = false;
                    UILabel hfbtnUploadStatus = (UILabel)View.ViewWithTag (iOpenBtnId/iOpenBtnTagId * iUploadBtnStatusTagId);
                    hfbtnUploadStatus.Text = "0";

                    UIButton btnBackup = (UIButton)View.ViewWithTag (iOpenBtnId/ iOpenBtnTagId * iBackupBtnTagId);
                    btnBackup.Enabled = false;

                    //Enable the remove button
                    UIButton btnRemove = (UIButton)View.ViewWithTag (iOpenBtnId/ iOpenBtnTagId * iRemoveBtnTagId);
                    btnRemove.Enabled = true;
                    UILabel hfbtnRemoveStatus = (UILabel)View.ViewWithTag (iOpenBtnId/iOpenBtnTagId * iRemoveBtnStatusTagId);
                    hfbtnRemoveStatus.Text = "1";
                }

                //Change the status text too
                if(iUploadOrBackup == 0)
                {
                    UILabel lblStatus = (UILabel)View.ViewWithTag (iOpenBtnId/ iOpenBtnTagId * iProjStatusTagId);
                    lblStatus.Text = "Uploaded already. You must download again to make changes.";
                }

                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateAlertDialog();
                if(iUploadOrBackup == 0)
                {
                    alert.SetAlertMessage("ITP info for Project " + sId + " successfully uploaded.");
                }
                else
                {
                    alert.SetAlertMessage("ITP info for Project " + sId + " successfully backed up.");
                }
                alert.ShowAlertBox();
            }
            else
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateAlertDialog();
                alert.SetAlertMessage(sRtnMsg);
                alert.ShowAlertBox();
            }

            return bUpload;
        }
Example #16
0
        public void OpenModelList(object sender, EventArgs e)
        {
            UIButton btnModelSearch = (UIButton)sender;
            ScreenUtils scnUtils = new ScreenUtils ();
            scnUtils.GetAbsolutePosition (btnModelSearch);
            float iTop = scnUtils.GetPositionTop ();
            float iLeft = scnUtils.GetPositionLeft ();
            int iBtnTagId = btnModelSearch.Tag;
            int iPwrIdRow = iBtnTagId / iEquipmentModelSearchTagId;
            int iStringRow = iBtnTagId - (iPwrIdRow * iEquipmentModelSearchTagId);
            int iSectionCounterTagId = iEquipmentRowSectionCounterTagId * iPwrIdRow + iStringRow;
            UILabel hfSectionCounter = (UILabel)View.ViewWithTag (iSectionCounterTagId);
            int iSectionCounterId = Convert.ToInt32 (hfSectionCounter.Text);
            UILabel lblSupplier = (UILabel)View.ViewWithTag (iEquipmentMakeTagId * (iPwrIdRow) + (iStringRow));
            string sSupplier = lblSupplier.Text;

            if (sSupplier == "")
            {
                iUtils.AlertBox alert = new iUtils.AlertBox ();
                alert.CreateErrorAlertDialog ("You must select a make before you can select a model");
                return;
            }

            UILabel lblEquipmentType = (UILabel)View.ViewWithTag (iEquipmentTypeTagId * (iPwrIdRow) + (iStringRow));
            int iEquipmentType = Convert.ToInt32(lblEquipmentType.Text);

            //Create a list and convert the string array to the list. Why the system cannot take a simple string array is beyond me!!!
            List<string> listModel = new List<string> ();
            clsTabletDB.ITPInventory ITPInventory = new clsTabletDB.ITPInventory ();
            string[] sModels;
            switch(iEquipmentType)
            {
                case 3:
                    sModels = ITPInventory.GetRackModels (sSupplier);
                    m_sRackModels = sModels;
                    Array.ForEach (m_sRackModels, value => listModel.Add (value.ToString ()));
                    break;
                case 4:
                    sModels = ITPInventory.GetSubRackModels (sSupplier);
                    m_sSubRackModels = sModels;
                    Array.ForEach (m_sSubRackModels, value => listModel.Add (value.ToString ()));
                    break;
                case 5:
                    sModels = ITPInventory.GetPositionModels (sSupplier);
                    m_sPositionModels = sModels;
                    Array.ForEach (m_sPositionModels, value => listModel.Add (value.ToString ()));
                    break;
                case 7:
                    sModels = ITPInventory.GetSolarStringModels (sSupplier);
                    m_sSolarStringModels = sModels;
                    Array.ForEach (m_sSolarStringModels, value => listModel.Add (value.ToString ()));
                    break;
                default:
                    sModels = ITPInventory.GetPositionModels (sSupplier);
                    m_sPositionModels = sModels;
                    Array.ForEach (m_sPositionModels, value => listModel.Add (value.ToString ()));
                    break;
            }

            TableViewSource tabdata = new TableViewSource (listModel, true);
            tabdata.SetFont("Verdana",10f);
            UITableView cmbModel = new UITableView ();

            //If the bottom of the frame would be outside the main content frame make it go upwards instead of downwards
            UILabel hfContentHeight = (UILabel)View.ViewWithTag (3);
            int iContentHeight = Convert.ToInt32 (hfContentHeight.Text);
            if (iTop + 190f > (float)iContentHeight)
            {
                if (iLeft + 290f > 1000f)
                {
                    cmbModel.Frame = new RectangleF(iLeft - 300f, iTop - 190f, 290f, 200f);
                }
                else
                {
                    cmbModel.Frame = new RectangleF(iLeft, iTop - 190f, 290f, 200f);
                }
            }
            else
            {
                if (iLeft + 290f > 1000f)
                {
                    cmbModel.Frame = new RectangleF(iLeft - 300f, iTop, 290f, 200f);
                }
                else
                {
                    cmbModel.Frame = new RectangleF(iLeft, iTop, 290f, 200f);
                }
            }

            tabdata.SetParent(cmbModel);
            tabdata.SetUpdateFieldType("UILabel");
            UILabel lblVwUpdate = (UILabel)View.ViewWithTag (iEquipmentModelTagId * (iPwrIdRow) + (iStringRow));
            tabdata.SetLabelViewToUpdate(lblVwUpdate);
            UIView vwUnsaved = (UIView)View.ViewWithTag (60);
            tabdata.SetUnsavedChangesView(vwUnsaved);
            tabdata.SetShowUnsavedOnChange(true);
            UILabel hfRowStatus = (UILabel)View.ViewWithTag (iEquipmentRowStatusTagId * (iPwrIdRow) + (iStringRow));
            UILabel lblSPN = (UILabel)View.ViewWithTag (iEquipmentSPNHiddenTagId * (iPwrIdRow) + (iStringRow));
            tabdata.SetModelPostUpdate(6, hfRowStatus, lblSPN, sSupplier); //Here the 6 refers to the post update index and NOT batteries as the equipment type

            //Also set the section flag to 1 that it has changed and the overall flag that it has changed
            UILabel lblUnsavedFlag = (UILabel)View.ViewWithTag (80);
            tabdata.SetUnsavedChangesHiddenLabel(lblUnsavedFlag);
            UIButton btnSectionSave = (UIButton)View.ViewWithTag ((iSectionCounterId + 1) * iSaveSectionBtnTagId);
            tabdata.SetSectionSaveButton(btnSectionSave);
            UILabel lblUnsavedSectionFlag = (UILabel)View.ViewWithTag ((iSectionCounterId + 1) * iSectionStatusTagId);
            tabdata.SetUnsavedChangesSectionHiddenLabel(lblUnsavedSectionFlag);

            cmbModel.Source = tabdata;
            iUtils.SESTable thistable = new iUtils.SESTable();
            string sSelectedValue = lblVwUpdate.Text;
            switch(iEquipmentType)
            {
                case 3:
                    thistable.SetTableSelectedText(cmbModel, sSelectedValue, m_sRackModels, true);
                    break;
                case 4:
                    thistable.SetTableSelectedText(cmbModel, sSelectedValue, m_sSubRackModels, true);
                    break;
                case 5:
                    thistable.SetTableSelectedText(cmbModel, sSelectedValue, m_sPositionModels, true);
                    break;
                case 7:
                    thistable.SetTableSelectedText(cmbModel, sSelectedValue, m_sSolarStringModels, true);
                    break;
                default:
                    thistable.SetTableSelectedText(cmbModel, sSelectedValue, m_sPositionModels, true);
                    break;
            }

            //Get the main scroll view
            UIScrollView scrollVw = (UIScrollView)View.ViewWithTag (2);
            scrollVw.AddSubview(cmbModel);
        }
        void UploadITPQuestion(object sender, EventArgs e, int iMarkUploadType)
        {
            UIButton btnClicked = (UIButton)sender;
            int iClicked = btnClicked.Tag;
            UILabel projId = (UILabel)View.ViewWithTag (iClicked/iUploadBtnTagId*iProjectIdTagId);
            string sId = projId.Text;
            int iOpenBtnId = -1;
            if(iMarkUploadType == 1)
            {
                iOpenBtnId = iClicked/iUploadBtnTagId*iOpenBtnTagId;
            }
            else
            {
                iOpenBtnId = iClicked/iBackupBtnTagId*iOpenBtnTagId;
            }

            var bConnStatus = GetConnectionStatus ();

            if (!bConnStatus)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateAlertDialog();
                alert.SetAlertMessage("The is no network coverage so you cannot upload at this stage");
                alert.ShowAlertBox();
                return;
            }
            else
            {
                //Has the project been made available online again and if so you cannot upload
                clsITPFramework ITPFwrk = new clsITPFramework();
                object[] objUploadable = ITPFwrk.IsITPUploadable(m_sSessionId, m_sUser, sId);
                if (objUploadable[0].ToString() != "Success")
                {
                    iUtils.AlertBox alert4 = new iUtils.AlertBox();
                    alert4.CreateErrorAlertDialog(objUploadable[1].ToString());
                    return;
                }
            }

            if(iMarkUploadType == 1)
            {
                iUtils.AlertBox alert2 = new iUtils.AlertBox();
                alert2.CreateAlertYesNoDialog();
                alert2.SetAlertMessage("This will upload ITP info for Project " + sId + " and lock you out from any further changes. Do you wish to continue?");
                alert2.ShowAlertBox();
                UIAlertView alert3 = alert2.GetAlertDialog();
                alert3.Clicked += (sender2, e2)  => {CheckUploadQuestion(sender2, e2, e2.ButtonIndex, sId, iOpenBtnId, 0);};
            }
            else
            {
                iUtils.AlertBox alert2 = new iUtils.AlertBox();
                alert2.CreateAlertYesNoDialog();
                alert2.SetAlertMessage("This will backup ITP info for Project " + sId + " and allow you to make further changes once complete. Do you wish to continue?");
                alert2.ShowAlertBox();
                UIAlertView alert3 = alert2.GetAlertDialog();
                alert3.Clicked += (sender2, e2)  => {CheckUploadQuestion(sender2, e2, e2.ButtonIndex, sId, iOpenBtnId, 1);};
            }

            return;
        }
Example #18
0
        public bool SavePowerConvSection(int iBtnId)
        {
            int i;
            int j;
            int iAutoId;
            string sId = m_sPassedId;
            clsTabletDB.ITPDocumentSection DB = new clsTabletDB.ITPDocumentSection();
            string[] sItemValues = new string[24];
            string sString = "";
            string sSubRack = "";
            string sPosition = "";
            bool bTransferIdBad = false;

            //Get the number of PwrId's
            UILabel hfSectionPwrIds = (UILabel)View.ViewWithTag(iSectionRowsTagId * (m_iEquipmentSectionCounter + 1));
            int iTotalPwrIds = Convert.ToInt32(hfSectionPwrIds.Text);
            bool bResetSectionFlag = true;

            for (i=0; i<iTotalPwrIds; i++)
            {
                //For each battery string block in this PwrId save it if necessary
                UILabel hfThisPwrIdStringRows = (UILabel)View.ViewWithTag((ihfPwrIdStringRowsTagId + (i + 1)) * (m_iEquipmentSectionCounter + 1));
                int iTotalStrings = Convert.ToInt32(hfThisPwrIdStringRows.Text);
                for (j=0; j<iTotalStrings; j++)
                {
                    UILabel hfRowStatus = (UILabel)View.ViewWithTag(iEquipmentRowStatusTagId * (i + 1) + (j + 1));
                    int iRowStatus = Convert.ToInt32(hfRowStatus.Text);

                    if (iRowStatus == 1 || iRowStatus == 2 || iRowStatus == 3)
                    {
                        UILabel hfAutoId = (UILabel)View.ViewWithTag(iEquipmentRowAutoIdTagId * (i + 1) + (j + 1));
                        string sAutoId = hfAutoId.Text;
                        if (sAutoId == "")
                        {
                            iAutoId = -1;
                        }
                        else
                        {
                            iAutoId = Convert.ToInt32(sAutoId);
                        }

                        //Get the type so that we only look at the right level of hierarchy
                        UILabel hfEquipmentType = (UILabel)View.ViewWithTag(iEquipmentTypeTagId * (i + 1) + (j + 1));
                        int iEquipType = Convert.ToInt32(hfEquipmentType.Text);

                        UILabel lblPwrId = (UILabel)View.ViewWithTag(iEquipmentRowPwrIdTagId * (i + 1) + (j + 1));
                        string sPwrId = lblPwrId.Text;

                        UITextField txtFloor = (UITextField)View.ViewWithTag(iEquipmentFloorTagId * (i + 1) + (j + 1));
                        string sFloor = txtFloor.Text;
                        UITextField txtSuite = (UITextField)View.ViewWithTag(iEquipmentSuiteTagId * (i + 1) + (j + 1));
                        string sSuite = txtSuite.Text;
                        UITextField txtRack = (UITextField)View.ViewWithTag(iEquipmentRackTagId * (i + 1) + (j + 1));
                        string sRack = txtRack.Text;
                        if(iEquipType >= 4)
                        {
                            UITextField txtSubRack = (UITextField)View.ViewWithTag(iEquipmentSubRackTagId * (i + 1) + (j + 1));
                            sSubRack = txtSubRack.Text;
                        }

                        if(iEquipType >= 5)
                        {
                            UITextField txtPosition = (UITextField)View.ViewWithTag(iEquipmentPositionTagId * (i + 1) + (j + 1));
                            sPosition = txtPosition.Text;
                        }

                        if(iEquipType >= 6)
                        {
                            UITextField txtString = (UITextField)View.ViewWithTag(iEquipmentStringTagId * (i + 1) + (j + 1));
                            sString = txtString.Text;
                        }

                        UILabel lblMake = (UILabel)View.ViewWithTag(iEquipmentMakeTagId * (i + 1) + (j + 1));
                        string sMake = lblMake.Text;
                        UILabel lblModel = (UILabel)View.ViewWithTag(iEquipmentModelTagId * (i + 1) + (j + 1));
                        string sModel = lblModel.Text;
                        UILabel lblSPN = (UILabel)View.ViewWithTag(iEquipmentSPNHiddenTagId * (i + 1) + (j + 1));
                        string sSPN = lblSPN.Text;
                        UITextField txtSerialNo = (UITextField)View.ViewWithTag(iEquipmentSerialNoTagId * (i + 1) + (j + 1));
                        string sSerialNo = txtSerialNo.Text;
                        UITextField txtDOM = (UITextField)View.ViewWithTag(iEquipmentDOMTagId * (i + 1) + (j + 1));
                        string sDOM = txtDOM.Text;
                        if (txtDOM.Text == "" || txtDOM.Text == "0")
                        {
                            sDOM = "01/01/1900";
                        }

                        string sFuseOrCB = "";
                        string sRating = "0";

                        string sLinkTest = "0";
                        string s20MinTest = "0";

                        UISegmentedControl radGrp = (UISegmentedControl)View.ViewWithTag(iEquipmentEquipTypeTagId * (i + 1) + (j + 1));
                        int iAnswerIndex = radGrp.SelectedSegment;
                        string sAnswer = "";
                        string sEquipType = "";

                        UILabel hfMaximoAssetId = (UILabel)View.ViewWithTag(iEquipmentMaximoAssetHiddenTagId * (i + 1) + (j + 1));
                        string sMaximoAssetId = hfMaximoAssetId.Text;
                        string sTransferAssetId = "";
                        string sPSAAssetId = "";

                        UILabel hfDuplicate = (UILabel)View.ViewWithTag(iDuplicateTagId * (i + 1) + (j + 1));
                        string sDuplicate = hfDuplicate.Text;

                        if (s20MinTest == "")
                        {
                            s20MinTest = "0";
                        }

                        if (iAnswerIndex >= 0)
                        {
                            sAnswer = radGrp.TitleAt(iAnswerIndex);
                        }
                        else
                        {
                            sAnswer = "";
                        }

                        bTransferIdBad = false;

                        switch (sAnswer)
                        {
                            case "New":
                                sEquipType = "N";
                                sTransferAssetId = "";
                                sPSAAssetId = sMaximoAssetId;
                                if (sPSAAssetId == "-1")
                                {
                                    sDuplicate = "-1";
                                }
                                break;
                            case "Used":
                                sEquipType = "U";
                                sTransferAssetId = sMaximoAssetId;
                                if(sTransferAssetId == "-1")
                                {
                                    bTransferIdBad= true;
                                }
                                sPSAAssetId = "";
                                break;
                            default:
                                sEquipType = "N";
                                sTransferAssetId = "";
                                sPSAAssetId = sMaximoAssetId;
                                if (sPSAAssetId == "-1")
                                {
                                    sDuplicate = "-1";
                                }
                                break;
                        }

                        string sCurrentDateAndTime = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

                        //Get all the info for this string
                        sItemValues [0] = sId;
                        sItemValues [1] = sPwrId;
                        sItemValues [2] = sString; //This comes first because it was set up for battery strings initially
                        sItemValues [3] = sFloor;
                        sItemValues [4] = sSuite;
                        sItemValues [5] = sRack;
                        sItemValues [6] = sSubRack;
                        sItemValues [7] = sPosition; //There is no position for a battery string but of course there could be for a power conversion item
                        sItemValues [8] = sMake;
                        sItemValues [9] = sModel;
                        sItemValues [10] = sSerialNo;
                        sItemValues [11] = sDOM;
                        sItemValues [12] = sFuseOrCB;
                        sItemValues [13] = sRating;
                        sItemValues [14] = sLinkTest;
                        sItemValues [15] = s20MinTest;
                        sItemValues [16] = sCurrentDateAndTime;
                        sItemValues [17] = sTransferAssetId;
                        sItemValues [18] = sPSAAssetId;
                        sItemValues [19] = sEquipType;
                        sItemValues [20] = sSPN;
                        sItemValues [21] = sDuplicate;
                        sItemValues [22] = iEquipType.ToString();
                        sItemValues [23] = iRowStatus.ToString();

                        if (sMake == "" || sModel == "" || sEquipType == "" || iEquipType == -1 || bTransferIdBad)
                        {
                            bResetSectionFlag = false;
                            iUtils.AlertBox alert = new iUtils.AlertBox();
                            alert.CreateAlertDialog();
                            if(bTransferIdBad)
                            {
                                alert.SetAlertMessage("An item in PwrId " + sPwrId + " is not fully filled out. You must provide an Asset Id for used equipment typically " +
                                                      "found from Structure Builder. If you do not know the asset id, please provide a number between 0 and 10 " +
                                                      "(it will be padded with zeros to make a 10 character id) and the " +
                                                      "relevant asset id will be determined at final RFU submission stage. " +
                                                      "The system cannot save this item.");
                            }
                            else
                            {
                                alert.SetAlertMessage("An item in PwrId " + sPwrId + " is not fully filled out. The system cannot save this item.");
                            }
                            alert.ShowAlertBox();
                        }
                        else
                        {
                            //Update or insert into the local DB
                            if (DB.ITPSection10SetRecord(sId, ref iAutoId, sItemValues))
                            {
                                //Update the row status and the autoid
                                hfAutoId.Text = iAutoId.ToString();
                                hfRowStatus.Text = "0";
                            }
                        }
                    }

                }

            }
            //Reset the section flag
            if (bResetSectionFlag)
            {
                UILabel hfSectionStatus = (UILabel)View.ViewWithTag(iSectionStatusTagId * (m_iEquipmentSectionCounter + 1));
                hfSectionStatus.Text = "0";
                SetAnyValueChangedOff();
                gbSuppressSecondCheck = false;
                return true;
            }
            else
            {
                gbSuppressSecondCheck = false;
                return false;
            }
        }
Example #19
0
        public void DeleteBatteryString(object sender, EventArgs e)
        {
            string sRtnMsg = "";
            clsTabletDB.ITPDocumentSection DBQ = new clsTabletDB.ITPDocumentSection();
            UIButton btnDelete = (UIButton)sender;
            int iTagId = btnDelete.Tag;
            int iPwrIdRow = iTagId / iDeleteBatteryStringBtnTagId;
            int iStringRow = iTagId - (iPwrIdRow * iDeleteBatteryStringBtnTagId);

            UILabel hfRowStatus = (UILabel)View.ViewWithTag(iStringRowStatusTagId * (iPwrIdRow) + (iStringRow));
            int iRowStatus = Convert.ToInt32(hfRowStatus.Text);

            UILabel hfAutoId = (UILabel)View.ViewWithTag(iStringRowAutoIdTagId * (iPwrIdRow) + (iStringRow));
            int iAutoId = Convert.ToInt32(hfAutoId.Text);

            UILabel hfMaximoAssetId = (UILabel)View.ViewWithTag(iStringRowMaximoAssetIdTagId * (iPwrIdRow) + (iStringRow));
            string sMaximoId = hfMaximoAssetId.Text;
            if (sMaximoId == "" || sMaximoId == "0")
            {
                sMaximoId = "-1";
            }
            int iMaximoAssetId = Convert.ToInt32(sMaximoId);

            UILabel hfPwrId = (UILabel)View.ViewWithTag(iStringRowPwrIdTagId * (iPwrIdRow) + (iStringRow));
            string sPwrId = hfPwrId.Text;

            UITextField txtBankNo = (UITextField)View.ViewWithTag(iBankNoTagId * (iPwrIdRow) + (iStringRow));
            string sBankNo = txtBankNo.Text;
            if (sBankNo == "")
            {
                sBankNo = "0";
            }
            int iBankNo = Convert.ToInt32(sBankNo);

            //You can only delete an item you have added and these have iMaximoAssetId = -1
            if (iMaximoAssetId < 0)
            {
                //This means the current row is either not changed or has been updated, so it has to be removed from the DB
                if (iRowStatus == 0 || iRowStatus == 1)
                {
                    //Don't actaully delete at this stage, just mark as deleted. Delete on the upload success.
                    if(!DBQ.ITPProjectSectionDeleteSection10Item(m_sPassedId, iAutoId, false, ref sRtnMsg))
                    {
                        iUtils.AlertBox alert = new iUtils.AlertBox();
                        alert.CreateErrorAlertDialog("Could not delete battery string record on project " + m_sPassedId + ", Power Id " + sPwrId + " and bank number " + iBankNo.ToString());
                        return;
                    }
                }

                //Remove the line from the page (well hide it really so all the loops still work)
                UIView vwStringRow = (UIView)View.ViewWithTag(iStringFullRowTagId * (iPwrIdRow) + (iStringRow));
                vwStringRow.Hidden = true;
                hfRowStatus.Text = "3"; //Means deleted, so no save required
                ReduceHeightAfter(m_iBatteryRowHeight, iPwrIdRow, iStringRow, 1);

                UIView vwPwrInternalRowId = (UIView)View.ViewWithTag((iPwrIdSectionInnerTagId + (iPwrIdRow)) * (m_iBatterySectionCounter+1));
                RectangleF frame1 = vwPwrInternalRowId.Frame;
                frame1.Height -= m_iBatteryRowHeight;
                vwPwrInternalRowId.Frame = frame1;

                //Now increase the view height for this new row (The whole section height is handled in the ReduceHeightAfter function)
                UILabel hfPwrIdSectionHeight = (UILabel)View.ViewWithTag((iPwrIdHeightTagId + iPwrIdRow ) * (m_iBatterySectionCounter + 1));
                int iPwrIdHeight = Convert.ToInt32(hfPwrIdSectionHeight.Text);
                hfPwrIdSectionHeight.Text = (iPwrIdHeight - m_iBatteryRowHeight).ToString();

                //Set the unsaved tags on (do this even though the record is removed for consistency)
                SetSectionValueChanged(m_iBatterySectionCounter + 1);
                SetAnyValueChanged(sender, null);
            }
            return;
        }
Example #20
0
        public bool ValidateDOM(object sender, int iFromBackButton)
        {
            if(gbSuppressSecondCheck)
            {
                return true;
            }

            if(iFromBackButton == 1)
            {
                gbSuppressSecondCheck = true;
            }

            UITextField txtDOM = (UITextField)sender;
            string sDOM = txtDOM.Text;
            bool bDateCheck;

            int iTagId = txtDOM.Tag;
            int iPwrIdRow =  iTagId/ iEquipmentDOMTagId;
            int iStringRow = iTagId - (iPwrIdRow * iEquipmentDOMTagId);
            int iHiddenDOMId =  iEquipmentDOMHiddenTagId * iPwrIdRow + iStringRow;
            UILabel hfHiddenDOM = (UILabel)View.ViewWithTag (iHiddenDOMId);

            if(sDOM == "")
            {
                UILabel hfRowStatus = (UILabel)View.ViewWithTag(iEquipmentRowStatusTagId * iPwrIdRow + iStringRow);
                hfRowStatus.Text = "1";
                SetSectionValueChanged(m_iEquipmentSectionCounter + 1);
                SetAnyValueChanged(sender, null);
                return true;
            }

            DateClass dt = new DateClass ();
            DateTime dtDOM;
            bDateCheck = dt.ValidateDate (sDOM, ref dtDOM);

            if (!bDateCheck)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox ();
                alert.CreateErrorAlertDialog ("Please enter a valid date for the date of manufacture");
                txtDOM.ResignFirstResponder();
                txtDOM.BecomeFirstResponder();
                m_bSuppressMove = true;
                return false;
            }
            else
            {
                string sDOMReturn = dt.Get_Date_String(dtDOM, "dd/mm/yy");
                txtDOM.Text = sDOMReturn;
                if(hfHiddenDOM.Text != sDOMReturn)
                {
                    hfHiddenDOM.Text = sDOMReturn;
                    UILabel hfRowStatus = (UILabel)View.ViewWithTag(iEquipmentRowStatusTagId * iPwrIdRow + iStringRow);
                    hfRowStatus.Text = "1";
                    SetSectionValueChanged(m_iEquipmentSectionCounter + 1);
                    SetAnyValueChanged(sender, null);
                }
                return true;
            }
        }
Example #21
0
        public bool SaveBatterySection(int iBtnId)
        {
            int i;
            int j;
            int iAutoId;
            string sId = m_sPassedId;
            clsTabletDB.ITPDocumentSection DB = new clsTabletDB.ITPDocumentSection();
            string[] sItemValues = new string[24];

            //Get the number of PwrId's
            UILabel hfSectionPwrIds = (UILabel)View.ViewWithTag(iSectionRowsTagId * (m_iBatterySectionCounter + 1));
            int iTotalPwrIds = Convert.ToInt32(hfSectionPwrIds.Text);
            bool bResetSectionFlag = true;

            for (i=0; i<iTotalPwrIds; i++)
            {
                //For each battery string block in this PwrId save it if necessary
                UILabel hfThisPwrIdStringRows = (UILabel)View.ViewWithTag((ihfPwrIdStringRowsTagId + (i + 1)) * (m_iBatterySectionCounter + 1));
                int iTotalStrings = Convert.ToInt32(hfThisPwrIdStringRows.Text);
                for (j=0; j<iTotalStrings; j++)
                {
                    UILabel hfRowStatus = (UILabel)View.ViewWithTag(iStringRowStatusTagId * (i + 1) + (j + 1));
                    int iRowStatus = Convert.ToInt32(hfRowStatus.Text);

                    if (iRowStatus == 1 || iRowStatus == 2 || iRowStatus == 3)
                    {
                        UILabel hfAutoId = (UILabel)View.ViewWithTag(iStringRowAutoIdTagId * (i + 1) + (j + 1));
                        string sAutoId = hfAutoId.Text;
                        if (sAutoId == "")
                        {
                            iAutoId = -1;
                        }
                        else
                        {
                            iAutoId = Convert.ToInt32(sAutoId);
                        }

                        UILabel lblPwrId = (UILabel)View.ViewWithTag(iStringRowPwrIdTagId * (i + 1) + (j + 1));
                        string sPwrId = lblPwrId.Text;
                        UITextField txtBankNo = (UITextField)View.ViewWithTag(iBankNoTagId * (i + 1) + (j + 1));
                        string sBankNo = txtBankNo.Text;
                        UITextField txtFloor = (UITextField)View.ViewWithTag(iFloorTagId * (i + 1) + (j + 1));
                        string sFloor = txtFloor.Text;
                        UITextField txtSuite = (UITextField)View.ViewWithTag(iSuiteTagId * (i + 1) + (j + 1));
                        string sSuite = txtSuite.Text;
                        UITextField txtRack = (UITextField)View.ViewWithTag(iRackTagId * (i + 1) + (j + 1));
                        string sRack = txtRack.Text;
                        UITextField txtSubRack = (UITextField)View.ViewWithTag(iSubRackTagId * (i + 1) + (j + 1));
                        string sSubRack = txtSubRack.Text;
                        UILabel lblMake = (UILabel)View.ViewWithTag(iBankMakeTagId * (i + 1) + (j + 1));
                        string sMake = lblMake.Text;
                        UILabel lblModel = (UILabel)View.ViewWithTag(iBankModelTagId * (i + 1) + (j + 1));
                        string sModel = lblModel.Text;
                        UILabel lblSPN = (UILabel)View.ViewWithTag(iSPNHiddenTagId * (i + 1) + (j + 1));
                        string sSPN = lblSPN.Text;
                        UITextField txtSerialNo = (UITextField)View.ViewWithTag(iSerialNoTagId * (i + 1) + (j + 1));
                        string sSerialNo = txtSerialNo.Text;
                        UITextField txtDOM = (UITextField)View.ViewWithTag(iBankDOMTagId * (i + 1) + (j + 1));
                        string sDOM = txtDOM.Text;
                        if (txtDOM.Text == "0")
                        {
                            sDOM = "01/01/1900";
                        }

                        UILabel lblFuseOrCB = (UILabel)View.ViewWithTag(iBankFuseOrCBTagId * (i + 1) + (j + 1));
                        string sFuseOrCB = lblFuseOrCB.Text;
                        UITextField txtRating = (UITextField)View.ViewWithTag(iBankRatingTagId * (i + 1) + (j + 1));
                        string sRating = txtRating.Text;
                        if (txtRating.Text == "")
                        {
                            sRating = "0";
                        }

                        UILabel hfLinkTestStatus = (UILabel)View.ViewWithTag(iLinkTestHiddenTagId * (i + 1) + (j + 1));
                        string sLinkTest = hfLinkTestStatus.Text;
                        if (sLinkTest == "")
                        {
                            sLinkTest = "0";
                        }
                        UILabel hf20MinTestStatus = (UILabel)View.ViewWithTag(i20MinTestHiddenTagId * (i + 1) + (j + 1));
                        string s20MinTest = hf20MinTestStatus.Text;
                        if (s20MinTest == "")
                        {
                            s20MinTest = "0";
                        }

                        UISegmentedControl radGrp = (UISegmentedControl)View.ViewWithTag(iEquipTypeTagId * (i + 1) + (j + 1));
                        int iAnswerIndex = radGrp.SelectedSegment;
                        string sAnswer = "";
                        string sEquipType = "";

                        UILabel hfMaximoAssetId = (UILabel)View.ViewWithTag(iStringRowMaximoAssetIdTagId * (i + 1) + (j + 1));
                        string sMaximoAssetId = hfMaximoAssetId.Text;
                        string sTransferAssetId = "";
                        string sPSAAssetId = "";
                        string sDuplicate = "0";

                        if (s20MinTest == "")
                        {
                            s20MinTest = "0";
                        }

                        if (iAnswerIndex >= 0)
                        {
                            sAnswer = radGrp.TitleAt(iAnswerIndex);
                        }
                        else
                        {
                            sAnswer = "";
                        }

                        switch (sAnswer)
                        {
                            case "New":
                                sEquipType = "N";
                                sTransferAssetId = "";
                                sPSAAssetId = sMaximoAssetId;
                                if (sPSAAssetId == "-1")
                                {
                                    sDuplicate = "-1";
                                }
                                break;
                            case "Used":
                                sEquipType = "U";
                                sTransferAssetId = sMaximoAssetId;
                                sPSAAssetId = "";
                                break;
                            default:
                                sEquipType = "N";
                                sTransferAssetId = "";
                                sPSAAssetId = sMaximoAssetId;
                                if (sPSAAssetId == "-1")
                                {
                                    sDuplicate = "-1";
                                }
                                break;
                        }

                        string sCurrentDateAndTime = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

                        //Get all the info for this string
                        sItemValues [0] = sId;
                        sItemValues [1] = sPwrId;
                        sItemValues [2] = sBankNo;
                        sItemValues [3] = sFloor;
                        sItemValues [4] = sSuite;
                        sItemValues [5] = sRack;
                        sItemValues [6] = sSubRack;
                        sItemValues [7] = ""; //There is no position for a battery string
                        sItemValues [8] = sMake;
                        sItemValues [9] = sModel;
                        sItemValues [10] = sSerialNo;
                        sItemValues [11] = sDOM;
                        sItemValues [12] = sFuseOrCB;
                        sItemValues [13] = sRating;
                        sItemValues [14] = sLinkTest;
                        sItemValues [15] = s20MinTest;
                        sItemValues [16] = sCurrentDateAndTime;
                        sItemValues [17] = sTransferAssetId;
                        sItemValues [18] = sPSAAssetId;
                        sItemValues [19] = sEquipType;
                        sItemValues [20] = sSPN;
                        sItemValues [21] = sDuplicate;
                        sItemValues [22] = "6"; //The equipemnt type is 6 for a battery string
                        sItemValues [23] = iRowStatus.ToString();

                        if (sMake == "" || sModel == "" || sBankNo == "" || sEquipType == "")
                        {
                            bResetSectionFlag = false;
                            iUtils.AlertBox alert = new iUtils.AlertBox();
                            alert.CreateAlertDialog();
                            alert.SetAlertMessage("An item in PwrId " + sPwrId + " is not fully filled out. The system cannot save this item.");
                            alert.ShowAlertBox();
                        }
                        else
                        {
                            //Update or insert into the local DB
                            if (DB.ITPSection10SetRecord(sId, ref iAutoId, sItemValues))
                            {
                                //Update the row status and the autoid
                                hfAutoId.Text = iAutoId.ToString();
                                hfRowStatus.Text = "0";
                            }
                        }
                    }

                }

            }
            //Reset the section flag
            if (bResetSectionFlag)
            {
                UILabel hfSectionStatus = (UILabel)View.ViewWithTag(iSectionStatusTagId * (m_iBatterySectionCounter + 1));
                hfSectionStatus.Text = "0";
                SetAnyValueChangedOff();
                gbSuppressSecondCheck = false;
                return true;
            }
            else
            {
                gbSuppressSecondCheck = false;
                return false;
            }
        }
Example #22
0
        public bool ValidateSerialNo(object sender, int iFromBackButton)
        {
            if(gbSuppressSecondCheck)
            {
                return true;
            }

            if(iFromBackButton == 1)
            {
                gbSuppressSecondCheck = true;
            }

            UITextField txtSerialNo = (UITextField)sender;
            string sSerialNo = txtSerialNo.Text;
            int iTagId = txtSerialNo.Tag;
            int iPwrIdRow =  iTagId/ iEquipmentSerialNoTagId;
            int iStringRow = iTagId - (iPwrIdRow * iEquipmentSerialNoTagId);
            int iHiddenSerialNoId =  iEquipmentSerialNoHiddenTagId * iPwrIdRow + iStringRow;
            UILabel hfHiddenSerialNo = (UILabel)View.ViewWithTag (iHiddenSerialNoId);

            if (sSerialNo.Length > 15)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox ();
                alert.CreateErrorAlertDialog ("The serial number cannot be more than 15 characters. It has been truncated. Please enter a valid 15 character or less serial number. Often many of the initial characters can be omitted.");
                string sSerialNoReturn = sSerialNo.Substring(0,15);
                txtSerialNo.Text = sSerialNoReturn;
                txtSerialNo.ResignFirstResponder();
                txtSerialNo.BecomeFirstResponder();
                m_bSuppressMove = true;
                return false;
            }

            if(hfHiddenSerialNo.Text != sSerialNo)
            {
                hfHiddenSerialNo.Text = sSerialNo;
                UILabel hfRowStatus = (UILabel)View.ViewWithTag(iEquipmentRowStatusTagId * iPwrIdRow + iStringRow);
                hfRowStatus.Text = "1";
                SetSectionValueChanged(m_iEquipmentSectionCounter + 1);
                SetAnyValueChanged(sender, null);
            }
            return true;
        }
Example #23
0
        public void AddNewEquipment(object sender, EventArgs e)
        {
            UIButton btnAddNew = (UIButton)sender;
            int iTagId = btnAddNew.Tag;
            int iPwrIdRow = iTagId /(m_iEquipmentSectionCounter+1)  - iPwrIdNewBtnTagId; //This is 1 based

            iUtils.AlertBox alert2 = new iUtils.AlertBox();
            alert2.CreateAlertRackSubRackPositionStringDialog();
            alert2.SetAlertMessage("Are you adding a rack, subrack, position item or solar panel string?");
            alert2.ShowAlertBox();

            UIAlertView alert3 = alert2.GetAlertDialog();
            alert3.Clicked += (sender2, e2)  => {AddNewItem(sender2, e2, e2.ButtonIndex, iPwrIdRow);};
        }
Example #24
0
        public override void ViewDidLoad()
        {
            string sRtnMsg = "";
            base.ViewDidLoad ();
            UIBarButtonItem mybackbtn = new UIBarButtonItem("Back", UIBarButtonItemStyle.Plain, delegate (object sender, EventArgs e) {CheckUnsaved();});
            NavigationItem.SetHidesBackButton(true, true);
            NavigationItem.SetLeftBarButtonItem(mybackbtn, true);

            // Perform any additional setup after loading the view, typically from a nib.
            DrawMenu();

            //Load up the data for each section should it not exist
            clsTabletDB.ITPDocumentSection ITPSection = new clsTabletDB.ITPDocumentSection();
            if(!ITPSection.FillLocalITPSections(m_sPassedId, ref sRtnMsg))
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateAlertDialog();
                alert.SetAlertMessage(sRtnMsg);
                alert.ShowAlertBox();
            }
            try
            {
                DrawOpeningPage();
            }
            catch (Exception ex)
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateAlertDialog();
                alert.SetAlertMessage(ex.Message.ToString());
                alert.ShowAlertBox();

            }
        }
Example #25
0
        public void CheckUnsaved()
        {
            //First of all validate anything required
            switch(m_iValidateType)
            {
                case 1: //Floor
                    if(!ValidateFloor(m_sender, 1))
                    {
                        gbSuppressSecondCheck = false;
                        return;
                    }
                    break;
                case 2: //Suite
                    if(!ValidateSuite(m_sender, 1))
                    {
                        gbSuppressSecondCheck = false;
                        return;
                    }
                    break;
                case 3: //Rack
                    if(!ValidateRack(m_sender, 1))
                    {
                        gbSuppressSecondCheck = false;
                        return;
                    }
                    break;
                case 4: //SubRack
                    if(!ValidateSubRack(m_sender, 1))
                    {
                        gbSuppressSecondCheck = false;
                        return;
                    }
                    break;
                case 5: //Position
                    if(!ValidatePosition(m_sender, 1))
                    {
                        gbSuppressSecondCheck = false;
                        return;
                    }
                    break;
                case 6: //Solar String
                    if(!ValidateBankNo(m_sender, 2, 1))
                    {
                        gbSuppressSecondCheck = false;
                        return;
                    }
                    break;
                case 7: //DOM
                    if(!ValidateDOM(m_sender, 1))
                    {
                        gbSuppressSecondCheck = false;
                        return;
                    }
                    break;
                case 8: //Serial No
                    if(!ValidateSerialNo(m_sender, 1))
                    {
                        gbSuppressSecondCheck = false;
                        return;
                    }
                    break;
                case 9: //Maximo Asset Id
                    if(!ValidateMaximoAssetId(m_sender, 1))
                    {
                        gbSuppressSecondCheck = false;
                        return;
                    }
                    break;
            }

            UILabel txtEditStatus = (UILabel)View.ViewWithTag (80);
            int iStatus = Convert.ToInt32 (txtEditStatus.Text);
            if (iStatus == 0)
            {
                ProjectITPage QuestionsScreen = new ProjectITPage ();
                QuestionsScreen = GetProjectITPPage ();
                this.NavigationController.PopToViewController (QuestionsScreen, true);
            }
            else
            {
                //Ask the question
                iUtils.AlertBox alert2 = new iUtils.AlertBox();
                alert2.CreateAlertYesNoCancelDialog();
                alert2.SetAlertMessage("You have unsaved changes. Do you wish to save these changes before going back to the downloaded screen?");
                alert2.ShowAlertBox();

                UIAlertView alert3 = alert2.GetAlertDialog();
                alert3.Clicked += (sender2, e2)  => {CheckSaveChangesQuestion(sender2, e2, e2.ButtonIndex);};

            }
        }
Example #26
0
        public bool DownloadStaticTables(string sUser, string sSessionId)
        {
            string sRtnMsg = "";
            bool bReturn;
            clsTabletDB.ITPStaticTable clsStatic = new clsTabletDB.ITPStaticTable();

            clsStatic.CheckStaticTable();

            bReturn = FillQuestionnaireMainTable(sSessionId, sUser, ref sRtnMsg);

            if (sRtnMsg != "")
            {
                this.InvokeOnMainThread(() => {
                    iUtils.AlertBox alert = new iUtils.AlertBox();
                    alert.CreateErrorAlertDialog(sRtnMsg);
                });
                return false;
            }

            bReturn = FillITPTypeMainTable(sSessionId, sUser, ref sRtnMsg);

            if (sRtnMsg != "")
            {
                this.InvokeOnMainThread(() => {
                    iUtils.AlertBox alert = new iUtils.AlertBox();
                    alert.CreateErrorAlertDialog(sRtnMsg);
                });
                return false;
            }

            bReturn = FillITPDocumentSectionMainTable(sSessionId, sUser, ref sRtnMsg);

            if (sRtnMsg != "")
            {
                this.InvokeOnMainThread(() => {
                    iUtils.AlertBox alert = new iUtils.AlertBox();
                    alert.CreateErrorAlertDialog(sRtnMsg);
                });
                return false;
            }

            bReturn = FillITPInventoryMainTable(sSessionId, sUser, ref sRtnMsg);

            if (sRtnMsg != "")
            {
                this.InvokeOnMainThread(() => {
                    iUtils.AlertBox alert = new iUtils.AlertBox();
                    alert.CreateErrorAlertDialog(sRtnMsg);
                });
                return false;
            }

            //            bReturn = FillITPInventoryMainTable(sSessionId, sUser, ref sRtnMsg);
            //
            //            if (sRtnMsg != "")
            //            {
            //                this.InvokeOnMainThread(() => {
            //                    iUtils.AlertBox alert = new iUtils.AlertBox();
            //                    alert.CreateErrorAlertDialog(sRtnMsg);
            //                });
            //                return false;
            //            }

            bReturn = FillITPBatteryFuseTypesTable(sSessionId, sUser, ref sRtnMsg);

            if (sRtnMsg != "")
            {
                this.InvokeOnMainThread(() => {
                    iUtils.AlertBox alert = new iUtils.AlertBox();
                    alert.CreateErrorAlertDialog(sRtnMsg);
                });
                return false;
            }

            bReturn = FillITPValidHierarchyTable(sSessionId, sUser, ref sRtnMsg);

            if (sRtnMsg != "")
            {
                this.InvokeOnMainThread(() => {
                    iUtils.AlertBox alert = new iUtils.AlertBox();
                    alert.CreateErrorAlertDialog(sRtnMsg);
                });
                return false;
            }

            return bReturn;
        }
Example #27
0
        public void DeleteEquipmentRow(object sender, EventArgs e)
        {
            string sRtnMsg = "";
            clsTabletDB.ITPDocumentSection DBQ = new clsTabletDB.ITPDocumentSection();
            UIButton btnDelete = (UIButton)sender;
            int iTagId = btnDelete.Tag;
            int iPwrIdRow = iTagId / iEquipmentDeleteBtnTagId;
            int iStringRow = iTagId - (iPwrIdRow * iEquipmentDeleteBtnTagId);

            UILabel hfRowStatus = (UILabel)View.ViewWithTag(iEquipmentRowStatusTagId * (iPwrIdRow) + (iStringRow));
            int iRowStatus = Convert.ToInt32(hfRowStatus.Text);

            UILabel hfAutoId = (UILabel)View.ViewWithTag(iEquipmentRowAutoIdTagId * (iPwrIdRow) + (iStringRow));
            int iAutoId = Convert.ToInt32(hfAutoId.Text);

            UILabel hfMaximoAssetId = (UILabel)View.ViewWithTag(iEquipmentRowMaximoAssetIdTagId * (iPwrIdRow) + (iStringRow));
            string sMaximoId = hfMaximoAssetId.Text;
            if (sMaximoId == "" || sMaximoId == "0")
            {
                sMaximoId = "-1";
            }
            int iMaximoAssetId = Convert.ToInt32(sMaximoId);

            UILabel hfPwrId = (UILabel)View.ViewWithTag(iEquipmentRowPwrIdTagId * (iPwrIdRow) + (iStringRow));
            string sPwrId = hfPwrId.Text;

            UILabel hfEquipmentType = (UILabel)View.ViewWithTag(iEquipmentTypeTagId * (iPwrIdRow) + (iStringRow));
            int iEquipmentType = Convert.ToInt32(hfEquipmentType.Text);

            string sRack = "";
            string sSubRack = "";
            string sPosition = "";
            string sString = "";
            string sMessage = "";

            UITextField txtFloor = (UITextField)View.ViewWithTag(iEquipmentFloorTagId * (iPwrIdRow) + (iStringRow));
            string sFloor = txtFloor.Text;

            UITextField txtSuite = (UITextField)View.ViewWithTag(iEquipmentSuiteTagId * (iPwrIdRow) + (iStringRow));
            string sSuite = txtSuite.Text;

            switch(iEquipmentType)
            {
                case 3: //Rack
                    UITextField txtRack = (UITextField)View.ViewWithTag(iEquipmentRackTagId * (iPwrIdRow) + (iStringRow));
                    sRack = txtRack.Text;
                    sMessage = ", Floor " + sFloor + ", Suite " + sSuite + " and Rack " + sRack;
                    break;
                case 4: //SubRack
                    UITextField txtRack1 = (UITextField)View.ViewWithTag(iEquipmentRackTagId * (iPwrIdRow) + (iStringRow));
                    sRack = txtRack1.Text;
                    UITextField txtSubRack1 = (UITextField)View.ViewWithTag(iEquipmentSubRackTagId * (iPwrIdRow) + (iStringRow));
                    sSubRack = txtSubRack1.Text;
                    sMessage = ", Floor " + sFloor + ", Suite " + sSuite + ", Rack " + sRack + " and SubRack " + sSubRack;
                    break;
                case 5: //Position
                    UITextField txtRack2 = (UITextField)View.ViewWithTag(iEquipmentRackTagId * (iPwrIdRow) + (iStringRow));
                    sRack = txtRack2.Text;
                    UITextField txtSubRack2 = (UITextField)View.ViewWithTag(iEquipmentSubRackTagId * (iPwrIdRow) + (iStringRow));
                    sSubRack = txtSubRack2.Text;
                    UITextField txtPosition2 = (UITextField)View.ViewWithTag(iEquipmentPositionTagId * (iPwrIdRow) + (iStringRow));
                    sPosition = txtPosition2.Text;
                    sMessage = ", Floor " + sFloor + ", Suite " + sSuite + ", Rack " + sRack + " ,SubRack " + sSubRack + " and Position " + sPosition;
                    break;
                case 7: //String
                    UITextField txtRack3 = (UITextField)View.ViewWithTag(iEquipmentRackTagId * (iPwrIdRow) + (iStringRow));
                    sRack = txtRack3.Text;
                    UITextField txtSubRack3 = (UITextField)View.ViewWithTag(iEquipmentSubRackTagId * (iPwrIdRow) + (iStringRow));
                    sSubRack = txtSubRack3.Text;
                    UITextField txtPosition3 = (UITextField)View.ViewWithTag(iEquipmentPositionTagId * (iPwrIdRow) + (iStringRow));
                    sPosition = txtPosition3.Text;
                    UITextField txtString3 = (UITextField)View.ViewWithTag(iEquipmentStringTagId * (iPwrIdRow) + (iStringRow));
                    sString = txtString3.Text;
                    sMessage = ", Floor " + sFloor + ", Suite " + sSuite + ", Rack " + sRack + " ,SubRack " + sSubRack + " ,Position " + sPosition + " and Solar String " + sString;
                    break;
            }
            //You can only delete an item you have added and these have iMaximoAssetId = -1
            if (iMaximoAssetId < 0)
            {
                //This means the current row is either not changed or has been updated, so it has to be removed from the DB
                if (iRowStatus == 0 || iRowStatus == 1)
                {
                    //Don't actaully delete at this stage, just mark as deleted. Delete on the upload success.
                    if(!DBQ.ITPProjectSectionDeleteSection10Item(m_sPassedId, iAutoId, false, ref sRtnMsg))
                    {
                        iUtils.AlertBox alert = new iUtils.AlertBox();
                        alert.CreateErrorAlertDialog("Could not delete power conversion item on project " + m_sPassedId + ", Power Id " + sPwrId + sMessage);
                        return;
                    }
                }

                //Remove the line from the page (well hide it really so all the loops still work)
                UIView vwStringRow = (UIView)View.ViewWithTag(iEquipmentFullRowTagId * (iPwrIdRow) + (iStringRow));
                vwStringRow.Hidden = true;
                hfRowStatus.Text = "3"; //Means deleted, so no save required
                ReduceHeightAfter(m_iEquipmentRowHeight, iPwrIdRow, iStringRow, 2);

                UIView vwPwrInternalRowId = (UIView)View.ViewWithTag((iPwrIdSectionInnerTagId + (iPwrIdRow)) * (m_iEquipmentSectionCounter+1));
                RectangleF frame1 = vwPwrInternalRowId.Frame;
                frame1.Height -= m_iEquipmentRowHeight;
                vwPwrInternalRowId.Frame = frame1;

                //Now increase the view height for this new row (The whole section height is handled in the ReduceHeightAfter function)
                UILabel hfPwrIdSectionHeight = (UILabel)View.ViewWithTag((iPwrIdHeightTagId + iPwrIdRow ) * (m_iEquipmentSectionCounter + 1));
                int iPwrIdHeight = Convert.ToInt32(hfPwrIdSectionHeight.Text);
                hfPwrIdSectionHeight.Text = (iPwrIdHeight - m_iEquipmentRowHeight).ToString();

                //Set the unsaved tags on (do this even though the record is removed for consistency)
                SetSectionValueChanged(m_iEquipmentSectionCounter + 1);
                SetAnyValueChanged(sender, null);
            }
            return;
        }
Example #28
0
        public bool DownloadProjectITPInfo(string sId, string sDescription, string sUser, string sSessionId)
        {
            //			var txtName = (UILabel)View.ViewWithTag (20);
            //			string sUser = txtName.Text;
            //			var hfSessionId = (UILabel)View.ViewWithTag (70);
            //			string sSessionId = hfSessionId.Text;

            //First get all the static info
            if (DownloadStaticTables(sUser, sSessionId))
            {
                clsITPFramework csITP = new clsITPFramework();
                clsTabletDB.ITPHeaderTable clsTabDB = new clsTabletDB.ITPHeaderTable();
                clsTabletDB.ITPDocumentSection clsITPSection = new clsTabletDB.ITPDocumentSection();
                string sRtnMsg = "";

                //****************************************************************************************//
                //                      DOCUMENT HEADER                                                   //
                //****************************************************************************************//
                object[] objListITPs = csITP.DownloadITPInfo(sSessionId, sUser, sId);

                if (objListITPs[0].ToString() == "Success")
                {
                    //Get the header info from the website version. This has to exist before you can download.
                    if (clsTabDB.TableHeaderDeleteAllRecords(sId, ref sRtnMsg))
                    {
                        string sITPDocumentHeaderInfo = objListITPs[1].ToString();
                        string[] sHeaderInfo = sITPDocumentHeaderInfo.Split('~');
                        if (sHeaderInfo[0] == "ITPDocumentHeaderInfo")
                        {
                            string[] delimiters = new string[] { "||" };
                            string[] sHeaderItems = sHeaderInfo[1].Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
                            int iHeaderCount = sHeaderItems.Length;
                            if (iHeaderCount > 0)
                            {
                                //First check if the header table exists and if not create it
                                clsTabletDB.ITPHeaderTable ITPDB = new clsTabletDB.ITPHeaderTable();
                                if (ITPDB.CheckHeaderTable())
                                {
                                    this.InvokeOnMainThread(() => {
                                        progBarProjITPHeaderVw.SetProgressBarTitle("Downloading ITP header info for project " + sId);
                                        progBarProjITPHeaderVw.ShowProgressBar(iHeaderCount);
                                    });
                                    for (int i = 0; i < iHeaderCount; i++)
                                    {
                                        string[] delimiters2 = new string[] { "^" };
                                        string[] sHeaderSplitItems = sHeaderItems[i].Split(delimiters2, StringSplitOptions.None);
                                        Array.Resize<string>(ref sHeaderSplitItems, sHeaderSplitItems.Length + 1);
                                        sHeaderSplitItems[sHeaderSplitItems.Length - 1] = sDescription;
                                        ITPDB.TableHeaderAddRecord(sHeaderSplitItems);
                                        this.InvokeOnMainThread(() => { progBarProjITPHeaderVw.UpdateProgressBar(i + 1); });
                                    }
                                    this.InvokeOnMainThread(() => { progBarProjITPHeaderVw.CloseProgressBar(); });
                                }
                            }
                        }
                        //return true;
                    }
                    else
                    {
                        this.InvokeOnMainThread(() => {
                            iUtils.AlertBox alert = new iUtils.AlertBox();
                            alert.SetAlertMessage(sRtnMsg);
                            alert.ShowAlertBox(); });
                        return false;
                    }

                    //****************************************************************************************//
                    //                      QUESTIONNAIRE MASTER                                              //
                    //****************************************************************************************//
                    object[] objITPQuestions = csITP.DownloadProjectITPQuestions(sSessionId, sUser, sId);

                    //Get any questions already raised on the website version into the local DB
                    if (objITPQuestions[0].ToString() == "Success")
                    {
                        if (clsITPSection.ITPProjectSectionDeleteAllQuestions(sId, ref sRtnMsg))
                        {
                            string sITPProjectQuesitonsInfo = objITPQuestions[1].ToString();
                            string[] sProjQuestionInfo = sITPProjectQuesitonsInfo.Split('~');
                            if (sProjQuestionInfo[0] == "ITPProjectQuestionnaireInfo")
                            {
                                string[] delimiters3 = new string[] { "||" };
                                string[] sProjectQuestions = sProjQuestionInfo[1].Split(delimiters3, StringSplitOptions.RemoveEmptyEntries);
                                int iHeaderCount3 = sProjectQuestions.Length;
                                if (iHeaderCount3 > 0)
                                {
                                    //First check if the question master table exists and if not create it
                                    clsTabletDB.ITPDocumentSection ITPQuest = new clsTabletDB.ITPDocumentSection();
                                    if (ITPQuest.CheckQuestionTableMst())
                                    {
                                        this.InvokeOnMainThread(() => {
                                            progBarProjITPQuestionsVw.SetProgressBarTitle("Downloading ITP questions for project " + sId);
                                            progBarProjITPQuestionsVw.ShowProgressBar(iHeaderCount3);
                                        });
                                        for (int i = 0; i < iHeaderCount3; i++)
                                        {
                                            string[] delimiters4 = new string[] { "^" };
                                            string[] sProjectQuestionItems = sProjectQuestions[i].Split(delimiters4, StringSplitOptions.None);
                                            ITPQuest.ITPProjectQuestionAddRecord(sProjectQuestionItems);
                                            this.InvokeOnMainThread(() => { progBarProjITPQuestionsVw.UpdateProgressBar(i + 1); });
                                        }
                                        this.InvokeOnMainThread(() => { progBarProjITPQuestionsVw.CloseProgressBar(); });
                                    }
                                }
                            }
                        }
                        else
                        {
                            this.InvokeOnMainThread(() => {
                                iUtils.AlertBox alert = new iUtils.AlertBox();
                                alert.SetAlertMessage(sRtnMsg);
                                alert.ShowAlertBox();
                            });
                            return false;
                        }
                    }
                    else
                    {
                        return false;
                    } //Close the if block for success on project ITP questions

                    //****************************************************************************************//
                    //                      SECTION 10                                                       //
                    //****************************************************************************************//
                    object[] objITPSection10Info = csITP.DownloadProjectITPSection10(sSessionId, sUser, sId);

                    //Get any section 10 info already raised on the website version into the local DB
                    if (objITPSection10Info[0].ToString() == "Success")
                    {
                        if (clsITPSection.ITPProjectSectionDeleteAllSection10Items(sId, ref sRtnMsg))
                        {
                            string sITPProjectSection10Info = objITPSection10Info[1].ToString();
                            string[] sProjSection10Info = sITPProjectSection10Info.Split('~');
                            if (sProjSection10Info[0] == "ITPProjectSection10Info")
                            {
                                string[] delimiters5 = new string[] { "||" };
                                string[] sProjectSection10Items = sProjSection10Info[1].Split(delimiters5, StringSplitOptions.RemoveEmptyEntries);
                                int iHeaderCount5 = sProjectSection10Items.Length;
                                if (iHeaderCount5 > 0)
                                {
                                    //First check if the section 10 table exists and if not create it
                                    clsTabletDB.ITPDocumentSection ITPSection10 = new clsTabletDB.ITPDocumentSection();
                                    if (ITPSection10.CheckSection10Table())
                                    {
                                        this.InvokeOnMainThread(() => {
                                            progBarProjITPSection10Vw.SetProgressBarTitle("Downloading ITP section 10 items for project " + sId);
                                            progBarProjITPSection10Vw.ShowProgressBar(iHeaderCount5);
                                        });
                                        for (int i = 0; i < iHeaderCount5; i++)
                                        {
                                            string[] delimiters6 = new string[] { "^" };
                                            string[] sProjectSection10ItemArray = sProjectSection10Items[i].Split(delimiters6, StringSplitOptions.None);
                                            ITPSection10.ITPSection10AddRecord(sProjectSection10ItemArray);
                                            this.InvokeOnMainThread(() => { progBarProjITPSection10Vw.UpdateProgressBar(i + 1); });
                                        }
                                        this.InvokeOnMainThread(() => { progBarProjITPSection10Vw.CloseProgressBar(); });
                                    }
                                }
                            }
                        }
                        else
                        {
                            this.InvokeOnMainThread(() => {
                                iUtils.AlertBox alert = new iUtils.AlertBox();
                                alert.SetAlertMessage(sRtnMsg);
                                alert.ShowAlertBox();
                            });
                            return false;
                        }
                    }
                    else
                    {
                        return false;
                    } //Close the if block for success on project ITP section 10

                    //****************************************************************************************//
                    //                      RFU HEADER INFO                                                   //
                    //****************************************************************************************//
                    object[] objITPRFUInfo = csITP.DownloadProjectITPRFU(sSessionId, sUser, sId);

                    //Get any RFU info already raised on the website version into the local DB
                    if (objITPRFUInfo[0].ToString() == "Success")
                    {
                        if (clsITPSection.ITPProjectSectionDeleteAllRFUItems(sId, ref sRtnMsg))
                        {
                            string sITPProjectRFUInfo = objITPRFUInfo[1].ToString();
                            string[] sProjRFUInfo = sITPProjectRFUInfo.Split('~');
                            if (sProjRFUInfo[0] == "ITPProjectRFUInfo")
                            {
                                string[] delimiters5 = new string[] { "||" };
                                string[] sProjectRFUItems = sProjRFUInfo[1].Split(delimiters5, StringSplitOptions.RemoveEmptyEntries);
                                int iHeaderCount5 = sProjectRFUItems.Length;
                                if (iHeaderCount5 > 0)
                                {
                                    //First check if the RFU table exists and if not create it
                                    clsTabletDB.ITPDocumentSection ITPRFU = new clsTabletDB.ITPDocumentSection();
                                    if (ITPRFU.CheckRFUTable())
                                    {
                                        this.InvokeOnMainThread(() => {
                                            progBarProjITPRFUVw.SetProgressBarTitle("Downloading ITP RFU PwrId items for project " + sId);
                                            progBarProjITPRFUVw.ShowProgressBar(iHeaderCount5);
                                        });
                                        for (int i = 0; i < iHeaderCount5; i++)
                                        {
                                            string[] delimiters6 = new string[] { "^" };
                                            string[] sProjectRFUItemArray = sProjectRFUItems[i].Split(delimiters6, StringSplitOptions.None);
                                            ITPRFU.ITPRFUAddRecord(sProjectRFUItemArray);
                                            this.InvokeOnMainThread(() => { progBarProjITPRFUVw.UpdateProgressBar(i + 1); });
                                        }
                                        this.InvokeOnMainThread(() => { progBarProjITPRFUVw.CloseProgressBar(); });
                                    }
                                }
                            }
                            return true;
                        }
                        else
                        {
                            this.InvokeOnMainThread(() => {
                                iUtils.AlertBox alert = new iUtils.AlertBox();
                                alert.SetAlertMessage(sRtnMsg);
                                alert.ShowAlertBox();
                            });
                            return false;
                        }
                    }
                    else
                    {
                        return false;
                    } //Close the if block for success on project ITP section 10
                }
                else
                {
                    return false;
                } //Close the if block for success on project ITP document header
            }
            else
            {
                return false;
            } //Close the if block for success on downlaod of static tables
        }
Example #29
0
        public void LogintoSCMS(object sender, EventArgs e)
        {
            var txtName = (UITextField)View.ViewWithTag (1000);
            string sName = txtName.Text;

            var txtPass = (UITextField)View.ViewWithTag (2000);
            string sPass = txtPass.Text;

            try{
            clsLocalUtils util = new clsLocalUtils ();
            string sURL = util.GetEnvironment_wbsURL ("wbsITP_Exernal");
            wbsITP_External ws = new wbsITP_External ();
            ws.Url = sURL;
            ws.CookieContainer = new CookieContainer ();
            //                object[] sTest = ws.GetITPBatteryFuseTypeInfo("","gmorris");
            string sSessionId = ws.CookieLogin (sName, sPass);

            HomeScreen homeScreen = (HomeScreen)NavigationController.ViewControllers [0];
            if (sSessionId != "") {
                var hfLoggedIn = (UILabel)View.ViewWithTag (3000);
                hfLoggedIn.Text = "1";
                homeScreen.SetLoginName (sName);
                homeScreen.SetSessionId (sSessionId);
                homeScreen.SetLoggedInStatus("1");
                NavigationController.PopToViewController (homeScreen, true);
                //this.Dispose();

            }
            else
            {
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog("Incorrect username and/or password");
                homeScreen.SetLoginName ("Not logged in to SCMS");
                homeScreen.SetSessionId ("");
                homeScreen.SetLoggedInStatus("0");
            }
            }
            catch(Exception ex)
            {
                string sRtn = ex.Message.ToString();
                iUtils.AlertBox alert = new iUtils.AlertBox();
                alert.CreateErrorAlertDialog(sRtn);
            }
        }