public Request() { MyLogger.Log("------------------------------------------------------------------------------------------------"); MyLogger.Log(DateTime.Now.ToShortDateString() + " - " + DateTime.Now.ToShortTimeString()); MyLogger.Log("Liber está enviando informações..."); LiberRabbit listen = new LiberRabbit(); listen.Connect(); String req; do { req = listen.ListenQueueRequest();//producao if (!String.IsNullOrEmpty(req)) { //para efeito de teste //req = "{ " + "\n";//teste //req = req + " \"payee\": { " + "\n";//teste //req = req + " \"id_type\": \"CNPJ\", " + "\n";//teste //req = req + " \"id\": \"26961015000101\", " + "\n";//teste //req = req + " \"name\": \"Nome do Fornecedor Ltda\" " + "\n";//teste //req = req + " }, " + "\n";//teste //req = req + " \"payer_doc_id\": \"238016-0\", " + "\n";//teste //req = req + " \"value\": \"892.50\", " + "\n";//teste //req = req + " \"currency\": \"BRL\", " + "\n";//teste //req = req + " \"due_date\": \"2018-11-29\" " + "\n";//teste //req = req + "}";//teste dynamic jsonObj = JsonConvert.DeserializeObject(req); String payer_doc_id = jsonObj["payer_doc_id"]; double value = Convert.ToDouble(jsonObj["value"]); String aux = jsonObj["due_date"]; DateTime due_date = DateTime.ParseExact(aux, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture); InvoiceRequest requested = new InvoiceRequest(payer_doc_id, value, due_date); requests.Add(requested); listen.Connect(); } //req = null;//teste }while (!String.IsNullOrEmpty(req)); if (requests.Count > 0) { SAP connSAP = new SAP(); connSAP.InvoiceRequested(requests); } else { MyLogger.Log("Sem títulos para atualizar"); } MyLogger.Log("------------------------------------------------------------------------------------------------"); MyLogger.Log("Aguardando novas iterações..."); }
private void VerifyInvoice(InvoiceRequest r) { SAPbobsCOM.JournalEntries oJou; SAPbobsCOM.JournalEntries_Lines oJouLine; Boolean retcode; int transId, lineId, intretcode; try { oJou = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries); //todas as transaçõesefetuadas string[] array = r.payer_doc_id.Split(new char[] { '-' }, 2); transId = Convert.ToInt32(array.GetValue(0).ToString()); lineId = Convert.ToInt32(array.GetValue(1).ToString()); retcode = oJou.GetByKey(transId); if (!retcode) { MyLogger.Log("Erro ao encontrar titulo " + transId.ToString()); MessageBox.Show("Erro ao encontrar titulo " + transId.ToString()); return; } oJouLine = oJou.Lines; oJouLine.SetCurrentLine(lineId); if (String.Compare(r.due_date.ToShortDateString(), oJouLine.DueDate.ToShortDateString()) != 0)//verificar vencimento { MyLogger.Log("A parcela " + lineId + " do título " + transId + " não está com a mesma data de vencimento. O título não está aprovado para negociação"); r.Invalidate(); } else if (r.value != oJouLine.Credit)//verificar valor do titulo { MyLogger.Log("A parcela " + lineId + " do título " + transId + " não está com a mesma data de vencimento. O título não está aprovado para negociação"); r.Invalidate(); } //else if(1=1)//verificar se o titulo esta com o status confirmado -- não é necessario //{ // // oJouLine.UserFields.Fields. //} else { // alterar para status negociado MyLogger.Log("A parcela " + lineId + " do título " + transId + " está negociada com sucesso!"); oJouLine.UserFields.Fields.Item("U_LB_release").Value = "1"; intretcode = oJou.Update(); if (intretcode != 0) { MyLogger.Log(oCompany.GetLastErrorDescription()); } } } catch (Exception ex) { MyLogger.Log("Erro 5034 -" + ex.Message); } }
private void VerificaDados(InvoiceRequest r, JournalEntries_Lines oJouLine, int lineId, int transId, JournalEntries oJou) { //if (DateTime.Compare( r.due_date, oJouLine.DueDate)!=0) if (r.due_date.CompareTo(oJouLine.DueDate) != 0) { r.Invalidate(); MyLogger.Log("A parcela " + lineId + " do título " + transId + " não está com a mesma data de vencimento. O título não está aprovado para negociação"); } ////verificar valor do titulo /// }
private void VerifyInvoice(InvoiceRequest r) { SAPbobsCOM.JournalEntries oJou; SAPbobsCOM.JournalEntries_Lines oJouLine; Boolean retcode; int transId, lineId, intretcode; try { oJou = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries); //todas as transaçõesefetuadas string[] array = r.payer_doc_id.Split(new char[] { '-' }, 2); transId = Convert.ToInt32(array.GetValue(0).ToString()); lineId = Convert.ToInt32(array.GetValue(1).ToString()); retcode = oJou.GetByKey(transId); if (!retcode) { MyLogger.Log("Erro ao encontrar titulo " + transId.ToString()); //MessageBox.Show("Erro ao encontrar titulo " + transId.ToString()); return; } oJouLine = oJou.Lines; oJouLine.SetCurrentLine(lineId); VerificaDados(r, oJouLine, lineId, transId, oJou); ////verificar valor do titulo /// if (r.value != oJouLine.Credit) { MyLogger.Log("A parcela " + lineId + " do título " + transId + " não está com o mesmo valor do negociado. O título não está aprovado para negociação"); r.Invalidate(); } //neste momento deve-se comparar o valor do titulo que está no rabbit com o valor calculado descontando as devolucoes e também as conciliações if (r.valid) { // alterar para status negociado MyLogger.Log("A parcela " + lineId + " do título " + transId + " está negociada com sucesso!"); oJouLine.UserFields.Fields.Item("U_Lb_release").Value = "2"; //campo para atualizar os dados de pagamento //oJouLine.UserFields.Fields.Item("U_LB_Observacao").Value =; intretcode = oJou.Update(); if (intretcode != 0) { MyLogger.Log(oCompany.GetLastErrorDescription()); } } System.Runtime.InteropServices.Marshal.ReleaseComObject(oJou); System.Runtime.InteropServices.Marshal.ReleaseComObject(oJouLine); } catch (Exception ex) { MyLogger.Log("Erro 5034 -" + ex.Message); } }