/// <summary> /// Cria documento com apenas 1 linha por documento. /// </summary> /// <param name="type"></param> /// <returns></returns> public static List <ROBO.Transacoes.Entidade.Documents> GetDadosSL(TransEnum type) { var oDocEntitys = new List <Transacoes.Entidade.Documents>(); using (var conn = new MyRecordSet()) { principal.GravaAudit(Properties.Querys.Transacoes_1); principal.GravaAudit(type.ToString()); conn.DoQuery(Properties.Querys.Transacoes_1, ((int)type)); while (conn.HasNext()) { var oDocEntity = new Transacoes.Entidade.Documents(); try { oDocEntity = new Transacoes.Entidade.Documents(); oDocEntity.MyValues["Id"] = conn.GetFieldValue(0); oDocEntity.BplId = conn.GetFieldValue("BplId").ToInt(); oDocEntity.MyValues["ReadBySAP"] = conn.GetFieldValue("ReadBySAP"); oDocEntity.Comments = conn.GetFieldValue("Comments").ToString(); oDocEntity.DocDate = conn.GetFieldValue("DocDate").ToDate(); oDocEntity.GroupNum = conn.GetFieldValue("GroupNum").ToInt(); oDocEntity.TaxDate = conn.GetFieldValue("TaxDate").ToDate(); // Linhas var oDocentryLine = new Transacoes.Entidade.DocumentsEntityLine(); oDocentryLine.UserFields["U_Lot"] = conn.GetFieldValue("U_Lot").ToString(); oDocentryLine.UserFields["U_Quality"] = conn.GetFieldValue("U_Quality").ToString(); oDocentryLine.WhsCode = conn.GetFieldValue("WareHouse").ToString(); oDocentryLine.Quantity = conn.GetFieldValue("Quantity").ToDouble(); oDocentryLine.ItemCode = Functions.Find.Item(conn.GetFieldValue("OITM_CodeBars").ToString()); oDocEntity.Lines.Add(oDocentryLine); // Adicionando na lista if ((Program.contador % 2) == 0) { if (oDocEntity.MyValues["ReadBySAP"].ToChar() != 'E') { oDocEntitys.Add(oDocEntity); } } else { oDocEntitys.Add(oDocEntity); } } catch (Exception ex) { UpdateStatus(oDocEntity, 'E', String.Format(Properties.LogMessage.TRANS_0030_2L , oDocEntity.MyValues["Id"] , ex.Message)); } } } return(oDocEntitys); }
/// <summary> /// Atualiza o Status da Transação /// </summary> /// <param name="oPedido"></param> public static void UpdateStatus(Transacoes.Entidade.Documents oDocEntity, char readBySAP = 'Y', string msg = "") { using (var rs = new MyRecordSet()) { var sql = String.Format("UPDATE [Sage_Transacoes] SET ReadBySAP = '{0}', DocNum = '{1}', SAP_MSG = '{2}' WHERE Id = '{3}'" , readBySAP, oDocEntity.DocNum, msg.Replace("'", "''"), oDocEntity.MyValues["Id"]); rs.DoQuery(sql); foreach (var linha in oDocEntity.Lines) { sql = String.Format("UPDATE [Sage_Transacoes] SET ReadBySAP = '{0}', DocNum = '{1}', SAP_MSG = '{2}' WHERE Id = '{3}'" , readBySAP, oDocEntity.DocNum, msg.Replace("'", "''"), oDocEntity.MyValues["Id"]); rs.DoQuery(sql); } } }
/// <summary> /// Retorna as entidades de transações não lida pelo SAP. /// </summary> /// <param name="type">Tipo de transação</param> /// <returns></returns> public static List <Transacoes.Entidade.Documents> GetDados(TransEnum type) { var oDocEntitys = new List <Transacoes.Entidade.Documents>(); var conn = new MyLibs.v2.local.DataBase.ConnSqlServer(); conn.DoQuery(Properties.Querys.Transacoes_1, (int)type); var oDocEntity = new Transacoes.Entidade.Documents(); int bplId = -1; try { while (conn.HasNext()) { var error = false; try { if (bplId != conn.GetFieldValue("BplId").ToInt()) { bplId = conn.GetFieldValue("BplId").ToInt(); oDocEntity.BplId = bplId; oDocEntity.MyValues["Id"] = conn.GetFieldValue("Id"); oDocEntity.Comments = conn.GetFieldValue("Comments").ToString(); oDocEntity.DocDate = conn.GetFieldValue("DocDate").ToDate(); oDocEntity.GroupNum = conn.GetFieldValue("GroupNum").ToInt(); oDocEntity.TaxDate = conn.GetFieldValue("TaxDate").ToDate(); var oDocentryLine = new Transacoes.Entidade.DocumentsEntityLine(); oDocentryLine.Quantity = conn.GetFieldValue("Quantity").ToDouble(); var codebars = conn.GetFieldValue("OITM_CodeBars").ToString(); try { oDocentryLine.ItemCode = MyQuery.GetValue("OITM", codebars, "CodeBars", "ItemCode").ToString(); } catch { error = true; principal.GravaAudit("Transação " + type.ToString() + " " + Properties.LogMessage.ERRO_TRANS_28_2.ToString() + " " + codebars.ToString()); UpdateStatus(oDocEntity, 'E', String.Format(Properties.LogMessage.ERRO_TRANS_28_2 , codebars , oDocEntity.MyValues["Id"])); oDocentryLine.ItemCode = null; } oDocentryLine.UserFields["U_Lot"] = conn.GetFieldValue("U_Lot").ToString(); oDocentryLine.UserFields["U_Quality"] = conn.GetFieldValue("U_Quality").ToString(); oDocentryLine.WhsCode = conn.GetFieldValue("WareHouse").ToString(); oDocentryLine.MyValues["Id"] = conn.GetFieldValue("Id"); oDocEntity.Lines.Add(oDocentryLine); } else { var oDocentryLine = new Transacoes.Entidade.DocumentsEntityLine(); oDocentryLine.MyValues["Id"] = conn.GetFieldValue("Id"); oDocentryLine.Quantity = conn.GetFieldValue("Quantity").ToDouble(); var codebars = conn.GetFieldValue("OITM_CodeBars").ToString(); try { oDocentryLine.ItemCode = MyQuery.GetValue("OITM", codebars, "CodeBars", "ItemCode").ToString(); } catch { error = true; principal.GravaAudit("Transação " + type.ToString() + " " + Properties.LogMessage.ERRO_TRANS_28_2.ToString() + " " + codebars.ToString()); UpdateStatus(oDocEntity, 'E', String.Format(Properties.LogMessage.ERRO_TRANS_28_2 , codebars , oDocEntity.MyValues["Id"].ToInt())); oDocentryLine.ItemCode = null; } oDocentryLine.UserFields["U_Lot"] = conn.GetFieldValue("U_Lot").ToString(); oDocentryLine.UserFields["U_Quality"] = conn.GetFieldValue("U_Quality").ToString(); oDocentryLine.WhsCode = conn.GetFieldValue("WareHouse").ToString(); oDocEntity.Lines.Add(oDocentryLine); } }catch (Exception ex) { error = true; UpdateStatus(oDocEntity, 'E', ex.Message); } if (!error) { oDocEntitys.Add(oDocEntity); } oDocEntity = new Transacoes.Entidade.Documents(); } } catch (Exception ex) { principal.GravaAudit("Transação " + type.ToString() + " " + ex.Message.ToString()); } return(oDocEntitys); }