public String insertxCGLG(XcustGlLedgerTbl b)
        {
            String sql = "", chk = "";

            if (selectDupPk(b.LEDGER_ID))
            {
                deletexCGLG(b.LEDGER_ID);
            }
            chk = insert(b);
            return(chk);
        }
        public String insert(XcustGlLedgerTbl b)
        {
            String sql = "", chk = "";

            try
            {
                String last_update_by = "0", creation_by = "0";
                //p.TAX_AMOUNT = p.TAX_AMOUNT.Equals("") ? "0" : p.TAX_AMOUNT;

                sql = "Insert Into " + xCGLG.table + "(" +
                      xCGLG.LEDGER_ID + "," +
                      xCGLG.OBJECT_VERSION_NUMBER + "," +
                      xCGLG.NAME + "," +
                      xCGLG.SHORT_NAME + "," +
                      xCGLG.DESCRIPTION + "," +
                      xCGLG.LEDGER_CATEGORY_CODE + "," +
                      xCGLG.ALC_LEDGER_TYPE_CODE + "," +
                      xCGLG.OBJECT_TYPE_CODE + "," +
                      xCGLG.LE_LEDGER_TYPE_CODE + "," +
                      xCGLG.COMPLETION_STATUS_CODE + "," +
                      xCGLG.CHART_OF_ACCOUNTS_ID + "," +
                      xCGLG.PERIOD_SET_NAME + "," +
                      xCGLG.CURRENCY_CODE + "," +
                      xCGLG.ENABLE_BUDGETARY_CONTROL_FLAG + "," +
                      xCGLG.ACCESS_SET_ID +

                      ") " +
                      "Values(" + b.LEDGER_ID + "," +
                      b.OBJECT_VERSION_NUMBER + ",'" +
                      b.NAME + "','" +
                      b.SHORT_NAME + "','" +
                      b.DESCRIPTION.Replace("|", ",") + "','" +
                      b.LEDGER_CATEGORY_CODE + "','" +
                      b.ALC_LEDGER_TYPE_CODE + "','" +
                      b.OBJECT_TYPE_CODE + "','" +
                      b.LE_LEDGER_TYPE_CODE + "','" +
                      b.COMPLETION_STATUS_CODE + "'," +
                      b.CHART_OF_ACCOUNTS_ID + ",'" +
                      b.PERIOD_SET_NAME + "','" +
                      b.CURRENCY_CODE + "','" +
                      b.ENABLE_BUDGETARY_CONTROL_FLAG + "'," +
                      b.ACCESS_SET_ID +
                      ") ";
                chk = conn.ExecuteNonQuery(sql, "kfc_po");
            }
            catch (Exception ex)
            {
                //MessageBox.Show("Error " + ex.ToString(), "insert Doctor");
            }

            return(chk);
        }
        private void initConfig()
        {
            xCGLG = new XcustGlLedgerTbl();

            xCGLG.LEDGER_ID             = "LEDGER_ID";
            xCGLG.OBJECT_VERSION_NUMBER = "OBJECT_VERSION_NUMBER";
            xCGLG.NAME                          = "NAME";
            xCGLG.SHORT_NAME                    = "SHORT_NAME";
            xCGLG.DESCRIPTION                   = "DESCRIPTION";
            xCGLG.LEDGER_CATEGORY_CODE          = "LEDGER_CATEGORY_CODE";
            xCGLG.ALC_LEDGER_TYPE_CODE          = "ALC_LEDGER_TYPE_CODE";
            xCGLG.OBJECT_TYPE_CODE              = "OBJECT_TYPE_CODE";
            xCGLG.LE_LEDGER_TYPE_CODE           = "LE_LEDGER_TYPE_CODE";
            xCGLG.COMPLETION_STATUS_CODE        = "COMPLETION_STATUS_CODE";
            xCGLG.CHART_OF_ACCOUNTS_ID          = "CHART_OF_ACCOUNTS_ID";
            xCGLG.PERIOD_SET_NAME               = "PERIOD_SET_NAME";
            xCGLG.CURRENCY_CODE                 = "CURRENCY_CODE";
            xCGLG.ENABLE_BUDGETARY_CONTROL_FLAG = "ENABLE_BUDGETARY_CONTROL_FLAG";
            xCGLG.ACCESS_SET_ID                 = "ACCESS_SET_ID";


            xCGLG.table = "XCUST_GL_LEDGER_MST_TBL";
        }
        public void setXcustGlLedgerTbl(MaterialListView lv1, Form form1, MaterialProgressBar pB1)
        {
            String uri = "", dump = "";
            //HttpWebRequest request = CreateWebRequest();
            XmlDocument soapEnvelopeXml = new XmlDocument();
            const Int32 BufferSize      = 128;

            String[] filePO;
            addListView("setXcustGlLedgerTbl ", "Web Service", lv1, form1);
            //filePO = Cm.getFileinFolder(Cm.initC.PathZip);
            //String text = System.IO.File.ReadAllText(filePO[0]);
            //byte[] byteArraytext = Encoding.UTF8.GetBytes(text);
            //byte[] toEncodeAsBytestext = System.Text.ASCIIEncoding.ASCII.GetBytes(text);
            //String Arraytext = System.Convert.ToBase64String(toEncodeAsBytestext);
            //< soapenv:Envelope xmlns:soapenv = "http://schemas	xmlsoap	org/soap/envelope/" xmlns: v2 = "http://xmlns	oracle	com/oxp/service/v2" >
            uri = @" <soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:pub='http://xmlns.oracle.com/oxp/service/PublicReportService'>  " +
                  "<soapenv:Header/> " +
                  "<soapenv:Body> " +
                  "<v2:runReport> " +
                  "<v2:reportRequest> " +
                  "<v2:attributeLocale>en-US</v2:attributeLocale> " +
                  "<v2:attributeTemplate>XCUST_GL_LEDGER_MST_REP</v2:attributeTemplate> " +
                  "<v2:reportAbsolutePath>/Custom/XCUST_CUSTOM/XCUST_GL_LEDGER_MST_REP.xdo</v2:reportAbsolutePath> " +
                  "<pub:parameterNameValues> " +
                  "<pub:item>" +
                  "<pub:multiValuesAllowed>False</pub:multiValuesAllowed> " +
                  "<pub:name>p_update_date_frm</pub:name> " +                     //PARAMETER : p_update_date_frm
                  "<pub:values> " +
                  "<pub:item>" + Cm.initC.p_update_from + "</pub:item> " +
                  "</pub:values> " +
                  "</pub:item> " +
                  "<pub:item> " +
                  "<pub:multiValuesAllowed>False</pub:multiValuesAllowed> " +
                  "<pub:name>p_update_date_to</pub:name> " +                    //PARAMETER : p_update_date_to
                  "<pub:values> " +
                  "<pub:item>" + Cm.initC.p_update_to + "</pub:item> " +
                  "</pub:values> " +
                  "</pub:item> " +
                  "</pub:parameterNameValues>  " +
                  "</v2:reportRequest> " +
                  "<v2:userID>" + Cm.initC.usercloud + "</v2:userID> " +               //username
                  "<v2:password>" + Cm.initC.passcloud + "</v2:password> " +           //password
                  "</v2:runReport> " +
                  "</soapenv:Body> " +
                  "</soapenv:Envelope> ";

            //byte[] byteArray = Encoding.UTF8.GetBytes(envelope);
            byte[] byteArray = Encoding.UTF8.GetBytes(uri);
            addListView("setXcustGlLedgerTbl Start", "Web Service", lv1, form1);
            // Construct the base 64 encoded string used as credentials for the service call
            byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(Cm.initC.usercloud + ":" + Cm.initC.passcloud);
            string credentials     = System.Convert.ToBase64String(toEncodeAsBytes);

            // Create HttpWebRequest connection to the service
            HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create("https://eglj.fa.us2.oraclecloud.com/xmlpserver/services/PublicReportService");

            // Configure the request content type to be xml, HTTP method to be POST, and set the content length
            request1.Method        = "POST";
            request1.ContentType   = "text/xml;charset=UTF-8";
            request1.ContentLength = byteArray.Length;

            // Configure the request to use basic authentication, with base64 encoded user name and password, to invoke the service.
            request1.Headers.Add("Authorization", "Basic " + credentials);

            // Set the SOAP action to be invoked; while the call works without this, the value is expected to be set based as per standards
            request1.Headers.Add("SOAPAction", "https://eglj.fa.us2.oraclecloud.com/xmlpserver/services/PublicReportService");

            // Write the xml payload to the request
            Stream dataStream = request1.GetRequestStream();

            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            addListView("setXcustGlLedgerTbl Request", "Web Service", lv1, form1);
            // Get the response and process it; In this example, we simply print out the response XDocument doc;
            string    actNumber = "";
            XDocument doc;

            using (WebResponse response = request1.GetResponse())
            {
                addListView("setXcustGlLedgerTbl Response", "Web Service", lv1, form1);
                using (Stream stream = response.GetResponseStream())
                {
                    doc = XDocument.Load(stream);
                    foreach (XNode node in doc.DescendantNodes())
                    {
                        if (node is XElement)
                        {
                            XElement element = (XElement)node;
                            if (element.Name.LocalName.Equals("reportBytes"))
                            {
                                actNumber = element.ToString().Replace(@"<ns1:reportBytes xmlns:ns1=""http://xmlns.oracle.com/oxp/service/PublicReportService"">", "");
                                actNumber = actNumber.Replace("</reportBytes>", "").Replace("</result>", "").Replace(@"""", "").Replace("<>", "");
                                actNumber = actNumber.Replace("<reportBytes>", "").Replace("</ns1:reportBytes>", "");
                            }
                        }
                    }
                }
            }
            actNumber = actNumber.Trim();
            actNumber = actNumber.IndexOf("<reportContentType>") >= 0 ? actNumber.Substring(0, actNumber.IndexOf("<reportContentType>")) : actNumber;
            addListView("setXcustGlLedgerTbl Extract html", "Web Service", lv1, form1);
            byte[] data          = Convert.FromBase64String(actNumber);
            string decodedString = Encoding.UTF8.GetString(data);

            //XElement html = XElement.Parse(decodedString);
            //string[] values = html.Descendants("table").Select(td => td.Value).ToArray();

            //int row = -1;
            //var doc1 = new HtmlAgilityPack.HtmlDocument();
            //doc1.LoadHtml(html.ToString());
            //var nodesTable = doc1.DocumentNode.Descendants("tr");
            String[] data1 = decodedString.Split('\n');
            //foreach (var nodeTr in nodesTable)
            for (int row = 0; row < data1.Length; row++)
            {
                if (row == 0)
                {
                    continue;
                }
                if (data1[row].Length <= 0)
                {
                    continue;
                }



                String[]         data2 = data1[row].Split(',');
                XcustGlLedgerTbl item  = new XcustGlLedgerTbl();

                item.LEDGER_ID             = data2[0].Trim().Equals("") ? "0" : data2[0].Trim();
                item.OBJECT_VERSION_NUMBER = data2[1].Trim().Equals("") ? "0" : data2[1].Trim();
                item.NAME                          = data2[2].Trim().Replace("\"", "");
                item.SHORT_NAME                    = data2[3].Trim().Replace("\"", "");
                item.DESCRIPTION                   = data2[4].Trim().Replace("\"", "");
                item.LEDGER_CATEGORY_CODE          = data2[5].Trim().Replace("\"", "");
                item.ALC_LEDGER_TYPE_CODE          = data2[6].Trim().Replace("\"", "");
                item.OBJECT_TYPE_CODE              = data2[7].Trim().Replace("\"", "");
                item.LE_LEDGER_TYPE_CODE           = data2[8].Trim().Replace("\"", "");
                item.COMPLETION_STATUS_CODE        = data2[9].Trim().Replace("\"", "");
                item.CHART_OF_ACCOUNTS_ID          = data2[10].Trim().Equals("") ? "0" : data2[10].Trim();
                item.PERIOD_SET_NAME               = data2[11].Trim().Replace("\"", "");
                item.CURRENCY_CODE                 = data2[12].Trim().Replace("\"", "");
                item.ENABLE_BUDGETARY_CONTROL_FLAG = data2[13].Trim().Replace("\"", "");
                item.ACCESS_SET_ID                 = data2[14].Trim().Equals("") ? "0" : data2[14].Trim();


                xCGLGDB.insertxCGLG(item);

                //addListView("insert XCUST_BLANKET_AGREEMENT_LINES_TBL", "Web Service", lv1, form1);
            }

            Console.WriteLine(decodedString);
        }