Ejemplo n.º 1
0
        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...");
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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
            ///
        }
Ejemplo n.º 4
0
        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);
            }
        }