public static void UpdateStatus(T32Entity t32, bool grupo = false) { if (grupo) { foreach (var line in t32.Lines) { var sql1 = new StringBuilder(); sql1.AppendLine("UPDATE"); sql1.AppendLine("[dbo].[Sage_Transacoes32L1] SET"); sql1.AppendLine(String.Format("ReadBySAP = '{0}'", line.ReadBySAP)); sql1.AppendLine(String.Format(",ORDR_DocEntry = '{0}'", line.ORDR_DocEntry)); sql1.AppendLine(String.Format(",OINV_DocEntry = '{0}'", line.OINV_DocEntry)); sql1.AppendLine(String.Format(",MSG_SAP = '{0}'", line.MSG_SAP)); sql1.AppendLine(String.Format("WHERE")); sql1.AppendLine(String.Format("JOMAR_OrderNum = '{0}' AND ORDR_DocEntry = '{1}'", line.JOMAR_OrderNum, line.ORDR_DocEntry)); (new MyRecordSet()).DoQuery(sql1.ToString()); sql1 = null; } return; } StringBuilder sql = new StringBuilder(); sql.AppendLine("UPDATE"); sql.AppendLine("[dbo].[Sage_Transacoes32] SET"); sql.AppendLine(String.Format("ReadBySAP = '{0}'", t32.ReadBySAP)); sql.AppendLine(String.Format(",ORDR_DocEntry = '{0}'", t32.ORDR_DocEntry)); sql.AppendLine(String.Format(",ORDR_Comments = '{0}'", t32.ORDR_Comments)); sql.AppendLine(String.Format(",MSG_SAP = '{0}'", t32.MSG_SAP)); sql.AppendLine(String.Format("WHERE")); sql.AppendLine(String.Format("JOMAR_OrderNum = '{0}'", t32.JOMAR_OrderNum)); (new MyRecordSet()).DoQuery(sql.ToString()); sql = null; foreach (var line in t32.Lines) { sql = new StringBuilder(); sql.AppendLine("UPDATE"); sql.AppendLine("[dbo].[Sage_Transacoes32L1] SET"); sql.AppendLine(String.Format("ReadBySAP = '{0}'", line.ReadBySAP)); sql.AppendLine(String.Format(",ORDR_DocEntry = '{0}'", line.ORDR_DocEntry)); sql.AppendLine(String.Format(",OINV_DocEntry = '{0}'", line.OINV_DocEntry)); sql.AppendLine(String.Format(",RDR1_LineNum = '{0}'", line.RDR1_LineNum)); sql.AppendLine(String.Format(",MSG_SAP = '{0}'", line.MSG_SAP)); sql.AppendLine(String.Format("WHERE")); sql.AppendLine(String.Format("JOMAR_OrderNum = '{0}' AND SalesOrderIndex = '{1}'", line.JOMAR_OrderNum, line.SalesOrderIndex)); (new MyRecordSet()).DoQuery(sql.ToString()); sql = null; } }
/// <summary> /// Cria Pedido de Vendo com item genérico. /// </summary> /// <param name="t32"></param> private void NewORDR(T32Entity t32) { if (!MyQuery.Exist("OITM", Properties.Settings.Default.ItemCodeDefault, "ItemCode")) { return; } var oORDR = SAPConnection.GetDocument(SAPConnection.DocsEnum.ORDR); oORDR.CardCode = t32.JOMAR_CardCode; oORDR.NumAtCard = t32.ORDR_NumAtCard; oORDR.BPL_IDAssignedToInvoice = t32.ORDR_BplId; oORDR.Series = -1; oORDR.HandWritten = BoYesNoEnum.tYES; oORDR.DocNum = t32.JOMAR_OrderNum; oORDR.Reference1 = t32.JOMAR_OrderNum.ToString(); oORDR.DocDate = t32.ORDR_DocDate < (new DateTime(2016, 1, 1)) ? (new DateTime(2016, 1, 1)) : t32.ORDR_DocDate; oORDR.DocDueDate = DateTime.Now; oORDR.TaxDate = t32.ORDR_TaxDate < (new DateTime(2016, 1, 1)) ? (new DateTime(2016, 1, 1)) : t32.ORDR_TaxDate; oORDR.Lines.ItemCode = Properties.Settings.Default.ItemCodeDefault; oORDR.Lines.Quantity = 1; oORDR.Lines.Price = 0; oORDR.Lines.WarehouseCode = "EM"; oORDR.Lines.Add(); oORDR.SalesPersonCode = t32.JOMAR_OIM; if (oORDR.Add() != 0) { t32.MSG_SAP = SAPConnection.DI.GetLastErrorDescription(); t32.ReadBySAP = 'E'; t32.ORDR_DocEntry = MyQuery.GetValue("ORDR", t32.JOMAR_OrderNum, "DocNum", "DocEntry").ToInt(); t32.ReadBySAP = t32.ORDR_DocEntry > 0 ? 'Y' : 'E'; T32DAO.UpdateStatus(t32); if (SAPConnection.DI.InTransaction) { SAPConnection.DI.EndTransaction(BoWfTransOpt.wf_RollBack); } } else { t32.ORDR_DocEntry = SAPConnection.GetNewKey(); t32.ReadBySAP = 'Y'; t32.MSG_SAP = "SUCESSO - Pedido de Venda criado."; T32DAO.UpdateStatus(t32); } }
/// <summary> /// Atualiza com novas linhas o pedido de venda /// </summary> /// <param name="t32"></param> private void NewLineORDR(T32Entity t32) { foreach (var line in t32.Lines) { var oORDR = SAPConnection.GetDocument(SAPConnection.DocsEnum.ORDR); if (oORDR.GetByKey(t32.ORDR_DocEntry)) { oORDR.Lines.Add(); line.RDR1_LineNum = oORDR.Lines.Count - 1; oORDR.Lines.SetCurrentLine(line.RDR1_LineNum); //////////////////////////////////// oORDR.Lines.ItemCode = line.OITM_ItemCode; oORDR.Lines.Quantity = line.RDR1_Quantity; //oODRF.Lines.Price = ; oORDR.Lines.WarehouseCode = line.RDR1_WhsCode; oORDR.Lines.UserFields.Fields.Item("U_PesoPeca").Value = line.JOMAR_Peso; oORDR.Lines.Add(); if (oORDR.Update() != 0) { line.ReadBySAP = 'E'; line.MSG_SAP = SAPConnection.DI.GetLastErrorDescription(); T32DAO.UpdateStatus(t32); principal.GravaAudit("Transação 32 " + line.MSG_SAP.ToString()); } else { line.ReadBySAP = 'Y'; line.ORDR_DocEntry = t32.ORDR_DocEntry; line.MSG_SAP = "SUCESSO - Linha cadastrada"; T32DAO.UpdateStatus(t32); } } else { line.ReadBySAP = 'E'; line.MSG_SAP = "Não foi localizado nenhum pedido de venda."; T32DAO.UpdateStatus(t32); } } }
/// <summary> /// Cria um esboço de Nota Fiscal. /// </summary> /// <param name="t32"></param> private void NewOINV(T32Entity t32) { var oODRF = SAPConnection.GetDocument(SAPConnection.DocsEnum.ODRF); oODRF.DocObjectCode = BoObjectTypes.oInvoices; oODRF.CardCode = t32.JOMAR_CardCode; //oODRF.NumAtCard = t32.ORDR_NumAtCard; oODRF.HandWritten = BoYesNoEnum.tNO; oODRF.BPL_IDAssignedToInvoice = t32.ORDR_BplId; //oODRF.Reference1 = t32.JOMAR_OrderNum.ToString(); oODRF.DocDate = DateTime.Now; oODRF.DocDueDate = DateTime.Now; oODRF.TaxDate = DateTime.Now; foreach (var line in t32.Lines) { oODRF.Lines.ItemCode = line.OITM_ItemCode; oODRF.Lines.Quantity = line.RDR1_Quantity; oODRF.Lines.WarehouseCode = line.RDR1_WhsCode; oODRF.Lines.BaseType = 17; oODRF.Lines.BaseEntry = t32.ORDR_DocEntry;//rs.GetFieldValue("DocNum").ToInt(); oODRF.Lines.BaseLine = line.RDR1_LineNum; oODRF.Lines.Add(); } //using (var rs = new MyRecordSet()) //{ // rs.DoQuery(Properties.Querys.ItensAberto_RDR1_1, t32.ORDR_DocEntry); // while (rs.HasNext()) // { // //////////////////////////////////// // oODRF.Lines.ItemCode = rs.GetFieldValue("ItemCode").ToString(); // oODRF.Lines.Quantity = rs.GetFieldValue("diff").ToDouble() < rs.GetFieldValue("Quantity").ToDouble() ; // //oODRF.Lines.Price = rs.GetFieldValue("Price").ToDouble(); // //oODRF.Lines.WarehouseCode = rs.GetFieldValue("WhsCode").ToString(); // oODRF.Lines.BaseType = rs.GetFieldValue("ObjType").ToInt(); // oODRF.Lines.BaseEntry = t32.ORDR_DocEntry;//rs.GetFieldValue("DocNum").ToInt(); // oODRF.Lines.BaseLine = rs.GetFieldValue("LineNum").ToInt(); // oODRF.Lines.Add(); // } //} oODRF.SalesPersonCode = t32.JOMAR_OIM; if (oODRF.Add() != 0) { t32.ReadBySAP = 'E'; t32.MSG_SAP = SAPConnection.DI.GetLastErrorDescription(); foreach (var line in t32.Lines) { line.ReadBySAP = 'E'; using (var rs = new MyRecordSet()) { rs.DoQuery("SELECT TrgetEntry FROM RDR1 WHERE TargetType = '13' AND LineNum = '{0}' AND DocEntry = '{1}'", line.Jomar_LineNum, t32.ORDR_DocEntry); if (rs.HasNext()) { line.OINV_DocEntry = rs.GetFieldValue("TrgetEntry").ToInt(); line.ReadBySAP = 'Y'; } else { line.OINV_DocEntry = 0; } } line.OINV_DocEntry = 0; line.MSG_SAP = SAPConnection.DI.GetLastErrorDescription(); } T32DAO.UpdateStatus(t32, true); if (SAPConnection.DI.InTransaction) { SAPConnection.DI.EndTransaction(BoWfTransOpt.wf_RollBack); } } else { var oinv = SAPConnection.GetNewKey(); var msg = "SUCESSO - Nota Fiscal Criada com sucesso."; foreach (var line in t32.Lines) { line.ReadBySAP = 'Y'; line.OINV_DocEntry = oinv; line.MSG_SAP = msg; } T32DAO.UpdateStatus(t32, true); } }
/// <summary> /// Obtem os dados para criar um novo Pedido de Venda e Nota Fiscal (Rascunho). /// </summary> /// <returns></returns> public static List <T32Entity> GetNewORDR() { var t32list = new List <T32Entity>(); using (var rs_lines = new MyRecordSet()) { rs_lines.DoQuery("SELECT * FROM [Sage_Transacoes32L1] WITH (NOLOCK) WHERE ReadBySAP <> 'Y' AND (ORDR_DocEntry <= 0 OR ORDR_DocEntry IS NULL) ORDER BY JOMAR_OrderNum ASC"); var t32 = new T32Entity(); var t32line = new T32EntityLine(); var control = -1; while (rs_lines.HasNext()) { try { if (control == -1) // Controle Inicial { control = rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt(); // Nº da ordem no controle } else if (control != rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt()) { t32list.Add(t32); // Guarda o pacote na lista t32 = new T32Entity(); // Cria um novo header control = rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt(); // Nº da ordem no controle } #region Linhas t32line = new T32EntityLine(); t32line.Id = rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt(); t32line.JOMAR_OrderNum = rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt(); t32line.ReadBySAP = rs_lines.GetFieldValue("ReadBySAP").ToChar(); t32line.Jomar_LineNum = rs_lines.GetFieldValue("Jomar_LineNum").ToInt(); t32line.ORDR_DocEntry = rs_lines.GetFieldValue("ORDR_DocEntry").ToInt(); t32line.OINV_DocEntry = rs_lines.GetFieldValue("OINV_DocEntry").ToInt(); t32line.OITM_CodeBars = rs_lines.GetFieldValue("OITM_CodeBars").ToString(); t32line.RDR1_Quantity = rs_lines.GetFieldValue("RDR1_Quantity").ToDouble(); t32line.RDR1_WhsCode = rs_lines.GetFieldValue("RDR1_WhsCode").ToString(); t32line.JOMAR_Peso = rs_lines.GetFieldValue("JOMAR_Peso").ToDouble(); t32line.SalesOrderIndex = rs_lines.GetFieldValue("SalesOrderIndex").ToInt(); t32line.MSG_SAP = rs_lines.GetFieldValue("MSG_SAP").ToString(); #endregion var rs_header = new MyRecordSet(); rs_header.DoQuery("SELECT * FROM [Sage_Transacoes32] WITH (NOLOCK) WHERE JOMAR_OrderNum = '{0}'", rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt()); { #region Cabeçalho if (t32line.JOMAR_OrderNum != t32.JOMAR_OrderNum) { t32.Id = rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt(); t32.JOMAR_OrderNum = rs_header.GetFieldValue("JOMAR_OrderNum").ToInt(); t32.ReadBySAP = rs_header.GetFieldValue("ReadBySAP").ToChar(); t32.TransactionType = rs_header.GetFieldValue("TransactionType").ToInt(); t32.JOMAR_OIM = rs_header.GetFieldValue("JOMAR_OIM").ToInt(); t32.ORDR_DocEntry = rs_header.GetFieldValue("ORDR_DocEntry").ToInt(); t32.JOMAR_CardCode = rs_header.GetFieldValue("JOMAR_CardCode").ToString(); t32.ORDR_DocDate = rs_header.GetFieldValue("ORDR_DocDate").ToDate(); t32.ORDR_DocDueDate = rs_header.GetFieldValue("ORDR_DocDueDate").ToDate(); t32.ORDR_TaxDate = rs_header.GetFieldValue("ORDR_TaxDate").ToDate(); t32.ORDR_NumAtCard = rs_header.GetFieldValue("ORDR_NumAtCard").ToString(); t32.ORDR_BplId = rs_header.GetFieldValue("ORDR_BplId").ToInt(); t32.ORDR_Comments = rs_header.GetFieldValue("ORDR_Comments").ToString(); t32.SalesHeaderIndex = rs_header.GetFieldValue("SalesHeaderIndex").ToInt(); t32.MSG_SAP = rs_header.GetFieldValue("MSG_SAP").ToString(); } #endregion } t32line.ORDR_DocEntry = t32.ORDR_DocEntry; } catch (Exception ex) { principal.GravaAudit(ex.Message.ToString()); } t32.Lines.Add(t32line); } // Pega o ultimo que sobra if (rs_lines.CountLines() > 0) { t32list.Add(t32); } } return(t32list); }