/// <summary>
 /// Atualiza o status.
 /// </summary>
 /// <param name="t38"></param>
 public static void UpdateStatus(WorkTreeEntity tentity)
 {
     using (var rs = new MyRecordSet())
     {
         var sql = "UPDATE [Sage_WorkTree] SET ReadBySAP = '{0}', MSG_SAP = '{2}' WHERE ID_CodeBars = '{1}'";
         rs.DoQuery(sql, tentity.ReadBySAP, tentity.ID_CodeBars, tentity.MSG_SAP.Replace("'", "\""));
     }
 }
        /// <summary>
        /// Retorna as estruturas dos itens não lidas ou com erro.
        /// </summary>
        /// <returns></returns>
        public static List <WorkTreeEntity> GetDados()
        {
            var ListWorkTree = new List <WorkTreeEntity>();

            using (var rs0 = new ConnSqlServer())
            {
                rs0.DoQuery("SELECT * FROM [Sage_WorkTree] WITH (NOLOCK) WHERE ReadBySAP <> 'Y'");

                while (rs0.HasNext())
                {
                    var wte = new WorkTreeEntity();
                    try
                    {
                        // Documento
                        wte.ID_CodeBars    = rs0.GetFieldValue("ID_CodeBars").ToString();
                        wte.OITT_PriceList = rs0.GetFieldValue("OITT_PriceList").ToInt();
                        wte.OITT_Project   = rs0.GetFieldValue("OITT_Project").ToString();
                        wte.OITT_Quantity  = rs0.GetFieldValue("OITT_Quantity").ToDouble();
                        wte.OITT_ToWH      = rs0.GetFieldValue("OITT_ToWH").ToString();
                        wte.ReadBySAP      = rs0.GetFieldValue("ReadBySAP").ToChar();
                        wte.MSG_SAP        = rs0.GetFieldValue("MSG_SAP").ToString();

                        var rs1 = new ConnSqlServer();
                        rs1.DoQuery("SELECT * FROM [Sage_WorkTreeL1] WITH (NOLOCK) WHERE [ID_CodeBars] = '{0}'", wte.ID_CodeBars);
                        while (rs1.HasNext())
                        {
                            var wtl1e = new WorkTreeL1Entity();
                            // Linha
                            //wtl1e.ITT1_ChildNum = rs_header.GetFieldValue("ITT1_ChildNum").ToInt();
                            wtl1e.ITT1_Quantity = rs1.GetFieldValue("ITT1_Quantity").ToDouble();
                            //wtl1e.ITT1_Type = rs_header.GetFieldValue("ITT1_Type").ToInt();
                            wtl1e.OITM_CodeBars = rs1.GetFieldValue("OITM_CodeBars").ToString();


                            if (!MyQuery.Exist("RSD_IsItemOrResource", wtl1e.OITM_CodeBars, "Referencia"))
                            {
                                throw new Exception("Código de barras não cadastrado " + wtl1e.OITM_CodeBars);
                            }

                            if (MyQuery.GetValue("RSD_IsItemOrResource", wtl1e.OITM_CodeBars, "Referencia", "Tipo").ToChar() == 'I')
                            {
                                if (!MyQuery.GetValue("OITM", wtl1e.ITT1_ItemCode, "ItemCode", "InvntItem").ToBoolean())
                                {
                                    wtl1e.ITT1_IssueMthd = 'B';
                                }
                                else
                                {
                                    wtl1e.ITT1_IssueMthd = rs1.GetFieldValue("ITT1_IssueMthd").ToChar();
                                }
                            }
                            else
                            {
                                wtl1e.ITT1_IssueMthd = rs1.GetFieldValue("ITT1_IssueMthd").ToChar();
                            }

                            wtl1e.ITT1_WareHouse = rs1.GetFieldValue("ITT1_WareHouse").ToString();
                            wtl1e.ITT1_Price     = rs1.GetFieldValue("ITT1_Price").ToDouble();

                            wte.Lines.Add(wtl1e);
                        }

                        ListWorkTree.Add(wte);
                    }
                    catch (Exception ex)
                    {
                        wte.ReadBySAP = 'E';
                        wte.MSG_SAP   = ex.Message;
                        WorkTreeDAO.UpdateStatus(wte);

                        Log.Register("WorkTree", System.Diagnostics.EventLogEntryType.Error
                                     , ex.Message);
                    }
                }
            }
            Log.Register("WorkTree", System.Diagnostics.EventLogEntryType.Information, "0 - Foram criados {0} pacotes", ListWorkTree.Count);

            return(ListWorkTree);
        }