예제 #1
0
        public Retorno InsereAtualizaAtividade(CadastroAtividade Atividade)
        {
            WS.ServiceLayer.ServiceLayer Service = new WS.ServiceLayer.ServiceLayer();
            Retorno _Retorno = new Retorno();

            try
            {
                if (!string.IsNullOrEmpty(Atividade.CardName))
                {
                    Atividade.CardName = null;
                }

                if (Atividade.ActivityCode == null)
                {
                    #region Insere Atividade

                    var Json = JsonConvert.SerializeObject(Atividade, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings {
                        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                    });

                    _Retorno = Service.Add("Activities", Json);

                    #endregion
                }
                else
                {
                    #region Atualiza Atividade

                    var Json = Newtonsoft.Json.JsonConvert.SerializeObject(Atividade, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings {
                        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                    });

                    _Retorno = Service.Update($"Activities({Atividade.ActivityCode})", Json);

                    #endregion
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
            }
            finally
            {
                //Service.Logout();
            }

            return(_Retorno);
        }
예제 #2
0
        public Retorno InsereAtualizaPedido(CadastroPedido Pedido)
        {
            WS.ServiceLayer.ServiceLayer Service = new WS.ServiceLayer.ServiceLayer();
            Retorno _Retorno = new Retorno();

            try
            {
                if (Pedido.DocEntry == null)
                {
                    #region Insere Pedido

                    //var ObjJob = Pedido.CadastroJob;
                    //Pedido.CadastroJob = null;

                    var Json = JsonConvert.SerializeObject(Pedido, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings {
                        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                    });

                    _Retorno = Service.Add("Orders", Json);

                    #endregion

                    #region Insere Projeto Gerencial

                    if (_Retorno.Sucesso)
                    {
                        ProjetoGerencial projetoGerencial = new ProjetoGerencial();

                        projetoGerencial.ProjectName         = Pedido.DocumentLines[0].ProjectCode;
                        projetoGerencial.StartDate           = Pedido.DocDate;
                        projetoGerencial.DueDate             = Pedido.DocDueDate;
                        projetoGerencial.BusinessPartner     = Pedido.CardCode;
                        projetoGerencial.BusinessPartnerName = Pedido.CardName;
                        projetoGerencial.SalesEmployee       = Pedido.SalesPersonCode;
                        projetoGerencial.FinancialProject    = Pedido.DocumentLines[0].ProjectCode;

                        Json = JsonConvert.SerializeObject(projetoGerencial, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings {
                            NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                        });

                        var _RetornoProjeto = Service.Add("ProjectManagements", Json);

                        if (!_RetornoProjeto.Sucesso)
                        {
                            Log.Error("Erro ao Gerar Projeto Gerencial: " + _RetornoProjeto.Documento);
                        }
                    }

                    #endregion

                    #region Insere Pré LCM

                    if (_Retorno.Sucesso)
                    {
                        Modelos.Pedido.CadastroPedido GetObjPedido = JsonConvert.DeserializeObject <Modelos.Pedido.CadastroPedido>(_Retorno.Documento, new Newtonsoft.Json.JsonSerializerSettings {
                            NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                        });

                        foreach (var item in GetObjPedido.DocumentLines)
                        {
                            string U_NEO_Dt_Inicio  = item.U_NEO_Dt_Inicio;
                            float? valor            = item.UnitPrice;
                            float? valorTotal       = 0;
                            string U_NEO_RecReceita = item.U_NEO_RecReceita;
                            string ItemCode         = item.ItemCode;
                            string CardCode         = GetObjPedido.CardCode;
                            string Projeto          = item.ProjectCode;
                            int?   DocNum           = GetObjPedido.DocNum;
                            string Conta            = string.Empty;
                            int?   Filial           = GetObjPedido.BPL_IDAssignedToInvoice;

                            if (!string.IsNullOrEmpty(U_NEO_Dt_Inicio))
                            {
                                if (!string.IsNullOrEmpty(U_NEO_RecReceita))
                                {
                                    using (HanaConnection conn = new HanaConnection(ConfigurationManager.ConnectionStrings["Hana"].ConnectionString))
                                    {
                                        conn.Open();

                                        var Schema = ConfigurationManager.AppSettings["CompanyDB"];

                                        string Sql = string.Format(Properties.Resources.ConsultaGrupoItem, Schema, ItemCode);

                                        using (HanaCommand cmd3 = new HanaCommand(Sql, conn))
                                        {
                                            using (HanaDataReader productInfoReader3 = cmd3.ExecuteReader())
                                            {
                                                HanaCommand    cmd = new HanaCommand(Sql, conn);
                                                HanaDataReader productInfoReader = cmd.ExecuteReader();

                                                if (productInfoReader.HasRows)
                                                {
                                                    productInfoReader.Read();

                                                    string GrupoItem = productInfoReader.GetString(0);

                                                    if (GrupoItem.Equals("107"))
                                                    {
                                                        Conta = "3010201010098";
                                                    }
                                                    else
                                                    {
                                                        Conta = "3010201010099";
                                                    }

                                                    //3010201010098 - DIFERIMENTO - PRODUÇÃO - 107
                                                    //3010201010099 - DIFERIMENTO - MYND - 105

                                                    DateTime Data = new DateTime();
                                                    Data = DateTime.Parse(U_NEO_Dt_Inicio);
                                                    int      TotalDias      = 0;
                                                    DateTime ultimoDiaDoMes = new DateTime();
                                                    for (int i = 0; i < int.Parse(U_NEO_RecReceita); i++)
                                                    {
                                                        ultimoDiaDoMes = new DateTime(Data.Year, Data.Month, DateTime.DaysInMonth(Data.Year, Data.Month));

                                                        var qtddias   = ultimoDiaDoMes.Day;
                                                        var diaAtual  = Data.Day;
                                                        var restoDias = qtddias - diaAtual + 1;

                                                        TotalDias = TotalDias + qtddias - diaAtual + 1;

                                                        //Data = Data.AddDays(restoDias - 1);
                                                        Data = Data.AddDays(restoDias);
                                                    }

                                                    PreLCM preLCM = new PreLCM();
                                                    preLCM.JournalVoucher = new Journalvoucher();
                                                    preLCM.JournalVoucher.JournalEntry = new Journalentry();

                                                    preLCM.JournalVoucher.JournalEntry.JournalEntryLines = new Journalentryline[int.Parse(U_NEO_RecReceita) + 1];
                                                    preLCM.JournalVoucher.JournalEntry.ReferenceDate     = DateTime.Now.ToString("yyyy-MM-dd");
                                                    preLCM.JournalVoucher.JournalEntry.Memo = "Pré Lançamento gerado pelo Site Pedido: " + DocNum;

                                                    Data = DateTime.Parse(U_NEO_Dt_Inicio);
                                                    for (int i = 0; i < int.Parse(U_NEO_RecReceita); i++)
                                                    {
                                                        ultimoDiaDoMes = new DateTime(Data.Year, Data.Month, DateTime.DaysInMonth(Data.Year, Data.Month));
                                                        var qtddias   = ultimoDiaDoMes.Day;
                                                        var diaAtual  = Data.Day;
                                                        var restoDias = qtddias - diaAtual + 1;


                                                        var ValorLCM = (valor / TotalDias) * restoDias;
                                                        valorTotal = valorTotal + ValorLCM;

                                                        preLCM.JournalVoucher.JournalEntry.DueDate = ultimoDiaDoMes.ToString("yyyy-MM-dd");
                                                        preLCM.JournalVoucher.JournalEntry.JournalEntryLines[i] = new Journalentryline();

                                                        preLCM.JournalVoucher.JournalEntry.JournalEntryLines[i].AccountCode = Conta;
                                                        preLCM.JournalVoucher.JournalEntry.JournalEntryLines[i].Credit      = ValorLCM;
                                                        preLCM.JournalVoucher.JournalEntry.JournalEntryLines[i].Debit       = 0;
                                                        preLCM.JournalVoucher.JournalEntry.JournalEntryLines[i].BPLID       = Filial;
                                                        preLCM.JournalVoucher.JournalEntry.JournalEntryLines[i].DueDate     = ultimoDiaDoMes.ToString("yyyy-MM-dd");
                                                        preLCM.JournalVoucher.JournalEntry.JournalEntryLines[i].LineMemo    = "Pré Lançamento gerado pelo Site Pedido: " + DocNum;
                                                        preLCM.JournalVoucher.JournalEntry.JournalEntryLines[i].ProjectCode = Projeto;

                                                        Data = Data.AddDays(restoDias);
                                                    }

                                                    preLCM.JournalVoucher.JournalEntry.JournalEntryLines[int.Parse(U_NEO_RecReceita)]             = new Journalentryline();
                                                    preLCM.JournalVoucher.JournalEntry.JournalEntryLines[int.Parse(U_NEO_RecReceita)].AccountCode = "1010201010001";
                                                    preLCM.JournalVoucher.JournalEntry.JournalEntryLines[int.Parse(U_NEO_RecReceita)].Credit      = 0;
                                                    preLCM.JournalVoucher.JournalEntry.JournalEntryLines[int.Parse(U_NEO_RecReceita)].Debit       = valorTotal;
                                                    preLCM.JournalVoucher.JournalEntry.JournalEntryLines[int.Parse(U_NEO_RecReceita)].BPLID       = Filial;
                                                    preLCM.JournalVoucher.JournalEntry.JournalEntryLines[int.Parse(U_NEO_RecReceita)].ShortName   = CardCode;
                                                    preLCM.JournalVoucher.JournalEntry.JournalEntryLines[int.Parse(U_NEO_RecReceita)].DueDate     = ultimoDiaDoMes.ToString("yyyy-MM-dd");
                                                    preLCM.JournalVoucher.JournalEntry.JournalEntryLines[int.Parse(U_NEO_RecReceita)].LineMemo    = "Pré Lançamento gerado pelo Site Pedido: " + DocNum;
                                                    preLCM.JournalVoucher.JournalEntry.JournalEntryLines[int.Parse(U_NEO_RecReceita)].ProjectCode = Projeto;

                                                    var JsonLCM = JsonConvert.SerializeObject(preLCM, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings {
                                                        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                                                    });
                                                    var _RetornoLCM = Service.Add("JournalVouchersService_Add", JsonLCM);

                                                    if (!_RetornoLCM.Sucesso)
                                                    {
                                                        Log.Error("Erro ao Gerar Pré LCM: " + _RetornoLCM.Documento);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    #endregion

                    #region Insere Job

                    //if (_Retorno.Sucesso)
                    //{
                    //    foreach (var itemJobb in ObjJob)
                    //    {
                    //        var RetObjPedido = Newtonsoft.Json.JsonConvert.DeserializeObject<CadastroPedido>(_Retorno.Documento, new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore });

                    //        itemJobb.U_NEO_DocEntry = RetObjPedido.DocEntry.ToString();
                    //        itemJobb.U_NEO_DocType = "17";

                    //        var JsonJob = Newtonsoft.Json.JsonConvert.SerializeObject(itemJobb, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore });

                    //        var _RetornoJob = Service.Add("JOB", JsonJob);

                    //        if (!_RetornoJob.Sucesso)
                    //        {

                    //        }

                    //    }
                    //}

                    #endregion
                }
                else
                {
                    #region Atualiza Pedido

                    //var ObjJob = Pedido.CadastroJob;
                    //Pedido.CadastroJob = null;

                    var Json = Newtonsoft.Json.JsonConvert.SerializeObject(Pedido, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings {
                        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                    });

                    _Retorno = Service.Update($"Orders({Pedido.DocEntry})", Json);

                    #endregion

                    #region Insere Job

                    //if (_Retorno.Sucesso)
                    //{
                    //    var GetJob = Service.Get($"JOB?$select=*&$filter=U_NEO_DocEntry eq '{Pedido.DocEntry}'");
                    //    var RetObjJob = Newtonsoft.Json.JsonConvert.DeserializeObject<CadastroJobs>(GetJob.Documento, new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore });

                    //    if (RetObjJob.value.ToList().Count > 0)
                    //    {
                    //        foreach (var item in RetObjJob.value)
                    //        {
                    //            var _RetornoJob = Service.Delete($"JOB({item.DocEntry})");

                    //            if (!_RetornoJob.Sucesso)
                    //            {

                    //            }
                    //        }
                    //        foreach (var itemJobb in ObjJob)
                    //        {
                    //            itemJobb.U_NEO_DocEntry = Pedido.DocEntry.ToString();
                    //            itemJobb.U_NEO_DocType = "17";

                    //            var JsonJob = Newtonsoft.Json.JsonConvert.SerializeObject(itemJobb, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore });

                    //            var _RetornoJob = Service.Add("JOB", JsonJob);

                    //            if (!_RetornoJob.Sucesso)
                    //            {

                    //            }

                    //        }
                    //    }
                    //    else
                    //    {
                    //        foreach (var item in ObjJob)
                    //        {
                    //            item.U_NEO_DocEntry = Pedido.DocEntry.ToString();
                    //            item.U_NEO_DocType = "17";

                    //            var JsonJob = Newtonsoft.Json.JsonConvert.SerializeObject(item, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore });

                    //            var _RetornoJob = Service.Add("JOB", JsonJob);

                    //            if (!_RetornoJob.Sucesso)
                    //            {

                    //            }
                    //        }
                    //    }
                    //}

                    #endregion
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
            }
            finally
            {
                //Service.Logout();
            }

            return(_Retorno);
        }
예제 #3
0
        public Retorno InsereAtualizaPN(CadastroPN PN)
        {
            WS.ServiceLayer.ServiceLayer Service = new WS.ServiceLayer.ServiceLayer();
            Retorno _Retorno = new Retorno();

            try
            {
                //var RetLogin = Service.Login();
                //if (!RetLogin.Sucesso)
                //{
                //    Log.Error("Erro do Login SL");
                //    return RetLogin;
                //}

                var GetPN = Service.Get($"BusinessPartners('{PN.CardCode}')");

                if (!GetPN.Sucesso)
                {
                    #region Insere PN

                    //if (!PN.Series.Equals(73))
                    //{
                    //    PN.CardCode = null;
                    //}

                    var Json = JsonConvert.SerializeObject(PN, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings {
                        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                    });

                    _Retorno = Service.Add("BusinessPartners", Json);

                    #endregion
                }
                else
                {
                    #region Atualiza PN

                    CadastroPN GetObjPN = JsonConvert.DeserializeObject <CadastroPN>(GetPN.Documento, new Newtonsoft.Json.JsonSerializerSettings {
                        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                    });

                    #region Atualiza Endereço PN

                    if (PN.BPAddresses != null)
                    {
                        if (GetObjPN.BPAddresses != null)
                        {
                            foreach (var GetEndereco in GetObjPN.BPAddresses)
                            {
                                foreach (var Endereco in PN.BPAddresses)
                                {
                                    if (GetEndereco.AddressName == Endereco.AddressName && GetEndereco.AddressType == Endereco.AddressType)
                                    {
                                        Endereco.RowNum = GetEndereco.RowNum;
                                        Endereco.BPCode = GetEndereco.BPCode;
                                        break;
                                    }
                                }
                            }
                        }
                    }

                    #endregion
                    #region Atualiza Contato PN

                    if (PN.ContactEmployees != null)
                    {
                        if (GetObjPN.ContactEmployees != null)
                        {
                            foreach (var GetContato in GetObjPN.ContactEmployees)
                            {
                                foreach (var Contato in PN.ContactEmployees)
                                {
                                    if (GetContato.Name == Contato.Name)
                                    {
                                        Contato.CardCode     = GetContato.CardCode;
                                        Contato.InternalCode = GetContato.InternalCode;
                                        break;
                                    }
                                }
                            }
                        }
                    }

                    #endregion
                    #region Atualiza Fiscal PN

                    if (PN.BPFiscalTaxIDCollection != null)
                    {
                        foreach (var Fiscal in PN.BPFiscalTaxIDCollection)
                        {
                            Fiscal.BPCode = PN.CardCode;
                        }
                    }

                    #endregion

                    var Json = Newtonsoft.Json.JsonConvert.SerializeObject(PN, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings {
                        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                    });

                    _Retorno = Service.Update($"BusinessPartners('{PN.CardCode}')", Json);

                    #endregion
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
            }
            finally
            {
                //Service.Logout();
            }

            return(_Retorno);
        }
        public Retorno InsereAtualizaOportunidade(CadastroOportunidade Oportunidade)
        {
            WS.ServiceLayer.ServiceLayer Service = new WS.ServiceLayer.ServiceLayer();
            Retorno _Retorno = new Retorno();

            try
            {
                if (!string.IsNullOrEmpty(Oportunidade.CardName))
                {
                    Oportunidade.CardName = null;
                }

                if (Oportunidade.SequentialNo == null)
                {
                    #region Insere Oportunidade

                    var Json = JsonConvert.SerializeObject(Oportunidade, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings {
                        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                    });

                    _Retorno = Service.Add("SalesOpportunities", Json);

                    #endregion
                }
                else
                {
                    #region Atualiza Oportunidade


                    if (Oportunidade.SalesOpportunitiesInterests != null)
                    {
                        Oportunidade.SalesOpportunitiesInterests[0].SequenceNo = Oportunidade.SequentialNo;
                    }

                    if (Oportunidade.SalesOpportunitiesLines != null)
                    {
                        int count = 0;
                        foreach (var item in Oportunidade.SalesOpportunitiesLines)
                        {
                            item.LineNum = count;
                            count++;
                        }
                    }

                    var Json = Newtonsoft.Json.JsonConvert.SerializeObject(Oportunidade, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings {
                        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                    });

                    _Retorno = Service.Update($"SalesOpportunities({Oportunidade.SequentialNo})", Json);

                    #endregion
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
            }
            finally
            {
                //Service.Logout();
            }

            return(_Retorno);
        }