Esempio n. 1
0
        public List<Moeda> ListaMoedas(int tipoPlataforma, string codEmpresa, string codUsuario, string password)
        {
            List<Moeda> lista = new List<Moeda>();

            try
            {
                motorErp = new MotoresPrimavera.MotoresErp();

                var pResult = motorErp._empresaErp.AbreEmpresaPrimavera(tipoPlataforma, codEmpresa, codUsuario, password);

                result = new PrimaveraResultStructure()
                {
                    codigo = pResult.codigo,
                    descricao = pResult.descricao

                };

                //var _lista = motorErp._empresaErp.listaMoedas();

                //foreach (var item in _lista)
                //{
                //    lista.Add(new Moeda() { moeda = item.moedaId, descricao = item.descricao });
                //}
            }
            catch (Exception ex)
            {
                result.codigo = 3;
                result.descricao = ex.Message;

                
            }    
            return lista;
        }
Esempio n. 2
0
        public PrimaveraResultStructure AbreEmpresaPrimavera(int tipoPlataforma, string codEmpresa, string codUsuario, string password)
        {           

            try
            {
                motorErp = new MotoresPrimavera.MotoresErp();

                var pResult = motorErp._empresaErp.AbreEmpresaPrimavera(tipoPlataforma, codEmpresa, codUsuario, password);
                
                result = new PrimaveraResultStructure()
                {
                    codigo = pResult.codigo,
                    descricao = pResult.descricao

                };
                            
                return result;

            }
            catch (Exception ex)
            {
                result.codigo = 3;
                result.descricao = ex.Message;
                
                return result;
            }           

        }
Esempio n. 3
0
        /// <summary>
        /// Metodo para inicializar o motor do primavera
        /// </summary>
        /// <param name="tipoPlataforma"> 0 - Executiva, 1- Profissional</param>
        /// <param name="codEmpresa"></param>
        /// <param name="codUsuario"></param>
        /// <param name="password"></param>
        /// <remarks></remarks>
        public PrimaveraResultStructure AbreEmpresaPrimavera(int tipoPlataforma, string codEmpresa, string codUsuario, string password)
        {
            PrimaveraResultStructure result = new PrimaveraResultStructure();

            try
            {
                this.tipoPlataforma = tipoPlataforma;
                this.codUsuario = codUsuario;
                this.codEmpresa = codEmpresa;
                this.password = password;

                if (_erpBs == null)
                {
                    _erpBs = new ErpBS();
                }
                else
                {
                    _erpBs.FechaEmpresaTrabalho();
                }

                _erpBs.AbreEmpresaTrabalho(tipoPlataforma == 0 ? EnumTipoPlataforma.tpEmpresarial : EnumTipoPlataforma.tpProfissional,
                    codEmpresa, codUsuario, password, null, "DEFAULT", true);

                result.codigo = 0;
                result.descricao = string.Format("Empresa {0} - {1} Aberta Com Sucesso", _erpBs.Contexto.CodEmp, _erpBs.Contexto.IDNome);
                Console.WriteLine(String.Format("[{0}] Empresa {1} - {2} Aberta Com Sucesso", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), _erpBs.Contexto.CodEmp, _erpBs.Contexto.IDNome));

                return result;
            }
            catch (Exception ex)
            {
                result.codigo = 3;
                result.descricao = ex.Message;
                Console.WriteLine(String.Format("[{0}] Erro a abrir a Empresa {1} - {2} devido a: {3}", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), _erpBs.Contexto.CodEmp, _erpBs.Contexto.IDNome, ex.Message));

                return result;
            }

        }
Esempio n. 4
0
        /// <summary>
        /// Actualiza o codigo do tipo terceiro com base no codigo da licienciatura
        /// </summary>
        /// <param name="cliente"></param>
        /// <param name="codLic"></param>
        /// <returns></returns>
        public PrimaveraResultStructure ActualizaTipoTerceiro(string cliente, string codLic)
        {
            PrimaveraResultStructure resultado = new PrimaveraResultStructure();

            try
            {
                string str_query = String.Format("Select TipoTerceiro from tipoTerceiros where descricao ='{0}'", codLic);
                var objLista = _erpBs.Consulta(str_query);

                if (!objLista.Vazia())
                {
                    var objCliente = _erpBs.Comercial.Clientes.Edita(cliente);
                    objCliente.set_TipoTerceiro(objLista.Valor("TipoTerceiro").ToString());
                    _erpBs.Comercial.Clientes.Actualiza(objCliente);

                    resultado.codigo = 0;
                }
            }
            catch (Exception ex)
            {
                resultado.codigo = 3;
                resultado.descricao = ex.Message;
            }

            return resultado;
        }
Esempio n. 5
0
        public PrimaveraResultStructure RemoveContactoCliente(string cliente)
        {
            string source = "RemoveContactoCliente";
            PrimaveraResultStructure result = new PrimaveraResultStructure();
            try
            {

                List<string> lista = new List<string>();
                var l = _erpBs.CRM.Contactos.ListaContactosDaEntidade("C", cliente);
                for (int i = 1; i <= l.NumItens; i++)
                {
                    lista.Add(l.Edita[i].get_ID());
                }

                //_erpBs.CRM.Contactos.RemoveContactosDaEntidade("C", cliente);

                foreach (var c in lista)
                    _erpBs.CRM.Contactos.RemoveID(c);

                result = new PrimaveraResultStructure()
                {
                    codigo = 0,
                    descricao = "Codigos de Sucesso",
                    tipoProblema = string.Format("[{0}] Os contactos da entidade {1} foram removidos com Sucesso", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), cliente)
                };
                PrimaveraWSLogger.escreveInformacao(string.Format("[{0}] Os contactos da entidade {1} foram removidos com Sucesso", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), cliente), source);

            }
            catch (Exception e)
            {
                result = new PrimaveraResultStructure()
                {
                    codigo = 3,
                    descricao = string.Format("[{0}] Erro ao remover os contactos do cliente {1} devido ao seguinte erro: {2}", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), cliente, e.Message),
                    tipoProblema = "Erro Logica no Primavera",
                    procedimento = "Consultar os técnicos do projecto",
                    subNivel = "30 - O Erro ao actualizar o aluno"
                };
                PrimaveraWSLogger.escreveErro(string.Format("[{0}] Erro ao remover os contactos do cliente {1} devido ao seguinte erro: {2}", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), cliente, e.Message), source);
            }

            return result;
        }
Esempio n. 6
0
        /// <summary>
        /// Metodo para a gravação/actualização do contacto de um determinado cliente
        /// </summary>
        /// <param name="cliente"></param>
        /// <param name="codigo"></param>
        /// <param name="primeiroNome"></param>
        /// <param name="ultimoNome"></param>
        /// <param name="nomeCompleto"></param>
        /// <param name="morada"></param>
        /// <param name="localidade"></param>
        /// <param name="emailPrincipal"></param>
        /// <param name="emailAlternativo"></param>
        /// <param name="nrTelefone"></param>
        /// <param name="nrTelefoneAlternativo"></param>
        /// <returns></returns>
        public PrimaveraResultStructure GravarContactoCliente(string cliente, string codigo, string primeiroNome,
            string ultimoNome, string nomeCompleto, string morada, string localidade, string emailPrincipal, string emailAlternativo,
            string nrTelefone, string nrTelefoneAlternativo, string tipoContacto)
        {
            PrimaveraResultStructure result;
            string source = "GravarContactoCliente";
            try
            {
                CrmBEContacto objContacto = new CrmBEContacto();
                CrmBELinhaContactoEntidade objEntidateContacto = new CrmBELinhaContactoEntidade();

                //Valida se existe o contacto do aluno no sistema

                if (_erpBs.CRM.Contactos.Existe(codigo))
                {

                    //Actualiza os contactos do Cliente
                    objContacto = _erpBs.CRM.Contactos.Edita(codigo);

                    objContacto.set_EmModoEdicao(true);
                    objContacto.set_Contacto(codigo); //validar este campo, por ser a chave do contacto
                    objContacto.set_PrimeiroNome(primeiroNome);
                    objContacto.set_UltimoNome(ultimoNome);
                    objContacto.set_Nome(nomeCompleto);
                    objContacto.set_Morada(morada);
                    objContacto.set_Localidade(localidade);
                    objContacto.set_Telefone(nrTelefone);
                    objContacto.set_Telefone2(nrTelefoneAlternativo);
                    objContacto.set_Email(emailPrincipal);
                    objContacto.set_EmailResid(emailAlternativo);

                    objEntidateContacto = new CrmBELinhaContactoEntidade();

                    _erpBs.CRM.Contactos.Actualiza(objContacto);

                    result = new PrimaveraResultStructure()
                    {
                        codigo = 0,
                        descricao = "Codigos de Sucesso",
                        tipoProblema = "Os Contactos do Aluno Actualizado Com Sucesso Completo"
                    };

                }
                else
                {

                    objContacto = new CrmBEContacto();

                    objContacto.set_ID(Guid.NewGuid().ToString());
                    objContacto.set_Contacto(codigo);
                    objContacto.set_PrimeiroNome(primeiroNome);
                    objContacto.set_UltimoNome(ultimoNome);
                    objContacto.set_Nome(nomeCompleto);
                    objContacto.set_Morada(morada);
                    objContacto.set_Localidade(localidade);
                    objContacto.set_Telefone(nrTelefone);
                    objContacto.set_Telefone2(nrTelefoneAlternativo);
                    objContacto.set_Email(emailPrincipal);
                    objContacto.set_EmailResid(emailAlternativo);

                    objEntidateContacto = new CrmBELinhaContactoEntidade();

                    objEntidateContacto.set_IDContacto(objContacto.get_ID());
                    objEntidateContacto.set_Entidade(cliente);
                    objEntidateContacto.set_TipoEntidade("C");
                    objEntidateContacto.set_Email(emailPrincipal);
                    objEntidateContacto.set_Telefone(nrTelefone);
                    objEntidateContacto.set_Telemovel(nrTelefoneAlternativo);
                    objEntidateContacto.set_TipoContacto(tipoContacto); // Para já Fixo

                    objContacto.get_LinhasEntidade().Insere(objEntidateContacto);

                    _erpBs.CRM.Contactos.Actualiza(objContacto);

                    result = new PrimaveraResultStructure()
                    {
                        codigo = 0,
                        descricao = "Codigos de Sucesso",
                        tipoProblema = "Os Contactos do Aluno Gravado Com Sucesso Completo"
                    };
                    PrimaveraWSLogger.escreveInformacao(string.Format("[{0}] O contacto {1} - {2} foi gravado e adicionado ao cliente {3} com Sucesso", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), codigo, nomeCompleto, cliente), source);
                }




            }
            catch (Exception e)
            {
                result = new PrimaveraResultStructure()
                {
                    codigo = 3,
                    descricao = "Erro ao gravar o aluno - " + e.Message,
                    tipoProblema = "Erro Logica no Primavera",
                    procedimento = "Consultar os técnicos do projecto",
                    subNivel = "30 - O Erro ao gravar o aluno"
                };
                PrimaveraWSLogger.escreveErro(string.Format("[{0}] Erro ao adicionar o contacto {1} - {2} ao cliente {3} devido ao seguinte erro: {4}", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), codigo, nomeCompleto, cliente, e.Message), source);
            }

            return result;
        }
Esempio n. 7
0
        /// <summary>
        /// Metodo para a gravação/actualização do cliente no Erp Primavera usando os Motores Primavera
        /// </summary>
        /// <param name="codigo"></param>
        /// <param name="nome"></param>
        /// <param name="nuit"></param>
        /// <param name="vendedor"></param>
        /// <param name="observacao"></param>
        /// <param name="fac_Morada"></param>
        /// <param name="fac_Localidade"></param>
        /// <param name="fac_Telefone"></param>
        /// <param name="desconto"></param>
        /// <param name="cdu_bolsa"></param>
        /// <param name="cdu_geraMulta"></param>
        /// <param name="cdu_tipoIngresso"></param>
        /// <param name="cdu_codLic"></param>
        /// <param name="cdu_turma"></param>
        /// <returns></returns>
        public PrimaveraResultStructure GravarCliente(string codigo, string nome, string nuit, string vendedor, string observacao, string fac_Morada,
            string fac_Localidade, string fac_Telefone, float desconto = 0, bool cdu_bolsa = false, bool cdu_geraMulta = true, string cdu_tipoIngresso = "",
            string cdu_codLic = "", string cdu_turma = "")
        {
            string source = "GravarCliente";

            PrimaveraResultStructure result;
            try
            {
                var str_query = String.Format("select cdu_condpag from TDU_ParametrosISUTC where cdu_vendedor='{0}'", vendedor);
                var condpag = this._erpBs.Consulta(str_query).Valor("cdu_condpag").ToString();

                // Verifica se o cliente Existe
                if (_erpBs.Comercial.Clientes.Existe(codigo) == true)
                {
                    //Actualização dos dados do Cliente
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "nome", nome);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "NomeFiscal", nome);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "Moeda", _erpBs.Contexto.MoedaBase);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "NumContribuinte", nuit);

                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "Vendedor", vendedor);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "CondPag", condpag);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "Desconto", desconto);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "Morada", fac_Morada);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "Telefone", fac_Telefone);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "Localidade", fac_Localidade);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "Observacoes", observacao);

                    //Campos de utilizador
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "CDU_Bolsa", cdu_bolsa);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "CDU_GeraMulta", cdu_geraMulta);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "CDU_TipoIngresso", cdu_tipoIngresso);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "CDU_CodLic", cdu_codLic);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "CDU_Turma", cdu_turma);


                    result = new PrimaveraResultStructure()
                    {
                        codigo = 0,
                        descricao = "Codigos de Sucesso",
                        tipoProblema = String.Format("Os dados Aluno {0} - {1} Gravados Com Sucesso Completo", codigo, nome)
                    };

                    PrimaveraWSLogger.escreveInformacao(String.Format("[{0}] Os dados Aluno {1} - {2} Gravados Com Sucesso Completo", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), codigo, nome), source);
                }
                else
                {
                    GcpBECliente _cliente = new GcpBECliente();

                    _cliente.set_Cliente(codigo);
                    _cliente.set_Nome(nome);
                    _cliente.set_NomeFiscal(nome);

                    _cliente.set_Moeda(_erpBs.Contexto.MoedaBase);
                    _cliente.set_NumContribuinte(nuit);
                    _cliente.set_Desconto(desconto);
                    _cliente.set_Vendedor(vendedor);
                    _cliente.set_CondPag(condpag);

                    _cliente.set_Morada(fac_Morada);
                    _cliente.set_Telefone(fac_Telefone);
                    _cliente.set_Localidade(fac_Localidade);
                    _cliente.set_Observacoes(observacao);

                    _erpBs.Comercial.Clientes.Actualiza(_cliente);

                    //Campos de utilizador
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "CDU_Bolsa", cdu_bolsa);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "CDU_GeraMulta", cdu_geraMulta);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "CDU_Turma", cdu_turma);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "CDU_CodLic", cdu_codLic);
                    _erpBs.Comercial.Clientes.ActualizaValorAtributo(codigo, "CDU_TipoIngresso", cdu_tipoIngresso);

                    result = new PrimaveraResultStructure()
                    {
                        codigo = 0,
                        descricao = "Codigos de Sucesso",
                        tipoProblema = String.Format("Os dados Aluno {0} - {1} Actualizados Com Sucesso Completo", codigo, nome)
                    };
                    PrimaveraWSLogger.escreveInformacao(String.Format("[{0}] Os dados Aluno {1} - {2} Actualizados Com Sucesso Completo", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), codigo, nome), source);

                }
            }
            catch (Exception e)
            {

                result = new PrimaveraResultStructure()
                {
                    codigo = 3,
                    descricao = "Erro ao gravar o aluno - " + e.Message,
                    tipoProblema = "Erro Logica no Primavera",
                    procedimento = "Consultar os técnicos do projecto",
                    subNivel = "30 - O Erro ao gravar o aluno"
                };
                PrimaveraWSLogger.escreveErro(String.Format("[{0}] Erro ao gravar o aluno {1} - {2} devido ao seguinte erro: {3} ", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), codigo, nome, e.Message), source);

            }
            return result;

        }
Esempio n. 8
0
        /// <summary>
        /// Metodo para do codigo do cliente, este metodo altera no primavera todas as tabelas relacionados com um determinado
        /// cliente
        /// </summary>
        /// <param name="codigoAntigo"></param>
        /// <param name="codigoNovo"></param>
        /// <returns></returns>
        public PrimaveraResultStructure AlteraCodigoCliente(string codigoAntigo, string codigoNovo)
        {
            PrimaveraResultStructure result;

            try
            {
                _erpBs.Comercial.Clientes.AlteraCodigoCliente(codigoAntigo, codigoNovo);
                result = new PrimaveraResultStructure()
                {
                    codigo = 0,
                    descricao = string.Format("Foi actualizado o codigo do cliente {0} para {1}", codigoAntigo, codigoNovo)
                };
            }
            catch
            {
                result = new PrimaveraResultStructure()
                {
                    codigo = 3,
                    subNivel = "303",
                    descricao = string.Format("Erro na alteração do codigo do cliente {0} para {1}", codigoAntigo, codigoNovo),
                    procedimento = "Consultar os técnicos do projecto"
                };
            }


            return result;
        }
Esempio n. 9
0
        /// <summary>
        /// Metodo para a criação das Avenças com base no documento de venda 
        /// </summary>
        /// <returns></returns>
        public PrimaveraResultStructure CriaAvenca()
        {
            PrimaveraResultStructure resultado = new PrimaveraResultStructure();
            string source = "CriaAvenca";
            try
            {

                DateTime dataInicio, dataFim, dataPrimeiraPropina;
                string entidade, semestre, semestreAntigo, str_avisos = "";



                semestre = _erpBs.Comercial.Vendas.DaValorAtributo(
                    _documentoVenda.get_Filial(),
                    _documentoVenda.get_Tipodoc(),
                    _documentoVenda.get_Serie(),
                    _documentoVenda.get_NumDoc(),
                    "CDU_Semestre"
                    ).ToString();

                var sql_query = String.Format("select * from tdu_semestre where CDU_IdSemestre ='{0}'", semestre);
                var objLista = _erpBs.Consulta(sql_query);

                if (!objLista.Vazia())
                {
                    dataInicio = (DateTime)objLista.Valor("CDU_DataInicio");
                    dataFim = (DateTime)objLista.Valor("CDU_DataUltimaPropina");
                    dataPrimeiraPropina = (DateTime)objLista.Valor("CDU_DataPrimeiraPropina");

                    entidade = _erpBs.Comercial.Vendas.DaValorAtributo(
                        _documentoVenda.get_Filial(),
                        _documentoVenda.get_Tipodoc(),
                        _documentoVenda.get_Serie(),
                        _documentoVenda.get_NumDoc(),
                        "Entidade"
                        ).ToString();

                    var _aluno = _erpBs.Comercial.Clientes.Edita(entidade);

                    if (_aluno.get_TipoTerceiro() != "")
                    {
                        if (_erpBs.Comercial.Avencas.Existe(_documentoVenda.get_Filial(), entidade))
                        {
                            documentoAvenca = _erpBs.Comercial.Avencas.Edita(_documentoVenda.get_Filial(), entidade);

                            semestreAntigo = _erpBs.Comercial.Vendas.DaValorAtributo(
                                documentoAvenca.get_FilialDocOriginal(),
                                documentoAvenca.get_TipoDocOriginal(),
                                documentoAvenca.get_SerieDocOriginal(),
                                documentoAvenca.get_NumDocOriginal(),
                                "CDU_Semestre"
                                ).ToString();

                            if (semestreAntigo != semestre)
                            {
                                documentoAvenca.set_SerieDocOriginal(_documentoVenda.get_Serie());
                                documentoAvenca.set_TipoDocOriginal(_documentoVenda.get_Tipodoc());
                                documentoAvenca.set_NumDocOriginal(_documentoVenda.get_NumDoc());

                                documentoAvenca.set_DataInicio(dataInicio);
                                documentoAvenca.set_DataFim(dataFim);
                                documentoAvenca.set_DataProximoProcessamento(dataPrimeiraPropina);

                                _erpBs.Comercial.Avencas.Actualiza(documentoAvenca, str_avisos);
                            }
                            else
                            {
                                documentoAvenca.set_SerieDocOriginal(_documentoVenda.get_Serie());
                                documentoAvenca.set_TipoDocOriginal(_documentoVenda.get_Tipodoc());
                                documentoAvenca.set_NumDocOriginal(_documentoVenda.get_NumDoc());

                                _erpBs.Comercial.Avencas.Actualiza(documentoAvenca, str_avisos);
                            }

                            resultado = new PrimaveraResultStructure()
                            {
                                codigo = 0,
                                descricao = string.Format("Foi actualizado com sucesso o contrato {0} {1}/{2} do aluno {3} e a respectiva avença para o semestre {4}",
                                        _documentoVenda.get_Tipodoc(),
                                        _documentoVenda.get_NumDoc(),
                                        _documentoVenda.get_Serie(),
                                        _documentoVenda.get_Nome(),
                                        semestre)
                            };


                        }
                        else
                        {
                            documentoAvenca = new GcpBEAvenca();
                            //Dados da avença
                            documentoAvenca.set_Descricao((semestre + " " + _documentoVenda.get_Nome()).Substring(0, 19));
                            documentoAvenca.set_Avenca(_documentoVenda.get_Entidade());
                            documentoAvenca.set_Entidade(_documentoVenda.get_Entidade());
                            documentoAvenca.set_TipoEntidade("C");
                            documentoAvenca.set_TipoEntidadeFac("C");
                            documentoAvenca.set_EntidadeFac(_documentoVenda.get_Entidade());

                            //Dados do documento base
                            documentoAvenca.set_SerieDocOriginal(_documentoVenda.get_Serie());
                            documentoAvenca.set_TipoDocOriginal(_documentoVenda.get_Tipodoc());
                            documentoAvenca.set_NumDocOriginal(_documentoVenda.get_NumDoc());
                            documentoAvenca.set_FilialDocOriginal(_documentoVenda.get_Filial());

                            //Dados do documento Destino
                            documentoAvenca.set_TipoDocDestino("FA");
                            documentoAvenca.set_SerieDocDestino(_documentoVenda.get_Serie());

                            //Dados do Processamento da Avença
                            documentoAvenca.set_DataInicio(dataInicio);
                            documentoAvenca.set_DataFim(dataFim);
                            documentoAvenca.set_DataProximoProcessamento(dataPrimeiraPropina);
                            documentoAvenca.set_Periodicidade("0");

                            _erpBs.Comercial.Avencas.Actualiza(documentoAvenca, str_avisos);

                            resultado = new PrimaveraResultStructure()
                            {
                                codigo = 0,
                                descricao = string.Format("Foi criado com sucesso o contrato {0} {1}/{2} do aluno {3} e a respectiva avença para o semestre {4}",
                                        _documentoVenda.get_Tipodoc(),
                                        _documentoVenda.get_NumDoc(),
                                        _documentoVenda.get_Serie(),
                                        _documentoVenda.get_Nome(),
                                        semestre)
                            };
                        }
                    }
                    else
                    {
                        resultado = new PrimaveraResultStructure()
                        {
                            codigo = 3,
                            tipoProblema = "Erro Logica Primavera",
                            procedimento = "Consulte aos Tecnicos do Projecto",
                            descricao = string.Format("Erro ao criar a avença porque o aluno {0} - {1}  no ERP Primavera",
                                   _documentoVenda.get_Entidade(),
                                   _documentoVenda.get_Nome())
                        };
                    }
                }
                else
                {
                    resultado = new PrimaveraResultStructure()
                    {
                        codigo = 3,
                        tipoProblema = "Erro Logica Primavera",
                        procedimento = "Consulte aos Tecnicos do Projecto",
                        descricao = string.Format("Erro ao criar a avença do aluno {0} - {1} não existe o semestre {2}",
                                   _documentoVenda.get_Entidade(),
                                   _documentoVenda.get_Nome(),
                                   semestre)
                    };
                }
            }
            catch (Exception ex)
            {
                resultado.codigo = 3;
                resultado.descricao = ex.Message;

                PrimaveraWSLogger.escreveErro(string.Format("[{0}] Erro Logica Primavera na gravação da avença, devido ao: {1}", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), ex.Message), source);

            }

            return resultado;
        }
Esempio n. 10
0
        /// <summary>
        /// Metodo para a gravação de um determinado documento de venda
        /// </summary>
        /// <param name="nomeUtilizador"></param>
        /// <param name="cdu_semestre"></param>
        /// <returns></returns>
        public PrimaveraResultStructure Gravar_DocumentoVenda(string nomeUtilizador = "", string cdu_semestre = "")
        {
            ErpBS objmotor = _erpBs;
            string source = "Gravar_DocumentoVenda";

            PrimaveraResultStructure resultado = new PrimaveraResultStructure();
            string str_avisos = "";
            try
            {
                objmotor.Comercial.Vendas.Actualiza(_documentoVenda, str_avisos);
                objmotor.Comercial.Vendas.ActualizaValorAtributo(_documentoVenda.get_Filial(), _documentoVenda.get_Tipodoc(),
                    _documentoVenda.get_Serie(), _documentoVenda.get_NumDoc(), "CDU_NOME_UTILIZADOR", nomeUtilizador);

                objmotor.Comercial.Vendas.ActualizaValorAtributo(_documentoVenda.get_Filial(), _documentoVenda.get_Tipodoc(),
                    _documentoVenda.get_Serie(), _documentoVenda.get_NumDoc(), "CDU_Semestre", cdu_semestre);

                resultado.codigo = 0;
                resultado.tipoProblema = str_avisos;
                resultado.descricao = string.Format("Foi Gerado o documento: #{0} {1}/{2}#", _documentoVenda.get_Tipodoc(), _documentoVenda.get_NumDoc(), _documentoVenda.get_Serie());

            }
            catch (Exception e)
            {
                resultado.codigo = 3;
                resultado.descricao = e.Message;
                PrimaveraWSLogger.escreveErro(string.Format("[{0}] Erro Logica Primavera devido ao: {1}", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), e.Message), source);
            }

            return resultado;
        }
Esempio n. 11
0
        /// <summary>
        /// Metodo para adicionar-se linhas/produtos ao documento de venda
        /// </summary>
        /// <param name="artigo"></param>
        /// <param name="quantidade"></param>
        /// <returns></returns>
        public PrimaveraResultStructure Adiciona_Linhas_DocumentoVenda(string artigo, double quantidade, double desconto)
        {
            ErpBS objmotor = _erpBs;
            string source = "Adiciona_Linhas_DocumentoVenda";

            PrimaveraResultStructure result = new PrimaveraResultStructure();
            try
            {
                int tamanho = _documentoVenda.get_Linhas().NumItens;
                int contandor = 0;
                objmotor.Comercial.Vendas.AdicionaLinha(_documentoVenda, artigo, quantidade);

                foreach (GcpBELinhaDocumentoVenda linhas in _documentoVenda.get_Linhas())
                {
                    if (contandor == tamanho)
                    {
                        linhas.set_Quantidade(quantidade);
                        linhas.set_Desconto1(float.Parse(desconto.ToString()));
                    }
                    contandor++;
                }

                result = new PrimaveraResultStructure()
                {
                    codigo = 0
                };
            }
            catch (Exception e)
            {
                result = new PrimaveraResultStructure()
                {
                    codigo = 3,
                    descricao = "Erro Logica Primavera - Adiciona Linhas DocumentoVenda " + e.Message,
                    procedimento = "Contacto os Responsaveis do Projecto"
                };
                PrimaveraWSLogger.escreveErro(string.Format("[{0}] Erro Logica Primavera devido ao: {1}", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), e.Message), source);
            }

            return result;
        }
Esempio n. 12
0
        /// <summary>
        /// Metodo para adicionar-se linhas/produtos nos documentos de venda
        /// </summary>
        /// <param name="artigo"></param>
        /// <param name="quantidade"></param>
        /// <param name="armazem"></param>
        /// <param name="localizacao"></param>
        /// <param name="precoUnitario"></param>
        /// <returns></returns>
        public PrimaveraResultStructure Adiciona_Linhas_DocumentoVenda(string artigo, double quantidade,
            ref string armazem, ref string localizacao, double precoUnitario)
        {
            PrimaveraResultStructure result = new PrimaveraResultStructure();
            string source = "Adiciona_Linhas_DocumentoVenda";
            try
            {
                _erpBs.Comercial.Vendas.AdicionaLinha(_documentoVenda, artigo, quantidade, armazem, localizacao, precoUnitario);

                result = new PrimaveraResultStructure()
                {
                    codigo = 0
                };
            }
            catch (Exception e)
            {
                result = new PrimaveraResultStructure()
                {
                    codigo = 3,
                    descricao = "Erro Logica Primavera - Adiciona Linhas DocumentoVenda " + e.Message,
                    procedimento = "Contacto os Responsaveis do Projecto"
                };
                PrimaveraWSLogger.escreveErro(string.Format("[{0}] Erro Logica Primavera devido ao: {1}", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), e.Message), source);
            }

            return result;

        }
Esempio n. 13
0
        public PrimaveraResultStructure GravaDocumentoTesouraria(string DocumentoTesouraria, string ContaBancaria, string MovimentoBancario,
            string Rubrica, double Valor, DateTime Data, string FicheiroBMEPS, string RefATM)
        {
            string strSerieDocTes, strErro = "", strAvisos = "", strSQL = "";
            double dblValor;

            PrimaveraResultStructure result;

            GcpBEDocumentoTesouraria documentoTesouraria = new GcpBEDocumentoTesouraria();
            StdBELista lstLista;

            strSerieDocTes = _erpBs.Comercial.Series.DaSerieDefeito("B", DocumentoTesouraria);

            // VERIFICA SE AS TAXAS DO FICHEIRO JÁ FORAM INTEGRADAS
            strSQL = "SELECT TIPODOC, SERIE, NUMDOC, CONTAORIGEM FROM CabecTesouraria WHERE CDU_FicheiroBMEPS = '" + FicheiroBMEPS + "'";
            lstLista = _erpBs.Consulta(strSQL);

            //SE JÁ INTEGROU FICHEIRO, ENTÃO NÃO VOLTA A INTEGRAR
            if (lstLista.NumLinhas() > 0)
            {
                lstLista.Inicio();
                return new PrimaveraResultStructure
                {
                    codigo = 3,
                    descricao = "Aviso: Doc. Tesouraria com Taxas já existia (Conta: " + lstLista.Valor("CONTAORIGEM") + ") - " +
                        lstLista.Valor("TipoDoc") + " " + lstLista.Valor("SERIE") + "/" + lstLista.Valor("NUMDOC") + ""
                };
            }

            //SE NÃO EXISTE DOCUMENTO, ENTÃO CRIA NOVO DOCUMENTO

            documentoTesouraria.set_EmModoEdicao(false);
            documentoTesouraria.set_ModuloOrigem("B");
            documentoTesouraria.set_Filial("000");
            documentoTesouraria.set_TipoLancamento("000");
            documentoTesouraria.set_Tipodoc(DocumentoTesouraria);
            documentoTesouraria.set_Serie(strSerieDocTes);
            documentoTesouraria.set_Data(Data);

            documentoTesouraria.set_Moeda(_erpBs.Contexto.MoedaBase);
            documentoTesouraria.set_Cambio(_erpBs.Contexto.MBaseCambioCompra);
            documentoTesouraria.set_CambioMBase(_erpBs.Contexto.MBaseCambioCompra);
            documentoTesouraria.set_CambioMAlt(_erpBs.Contexto.MAltCambioCompra);
            documentoTesouraria.set_AgrupaMovimentos(false);
            documentoTesouraria.set_Observacoes("Criado na integração do Ficheiro BMEPS. " + Environment.NewLine + "Taxas do ficheiro '" + FicheiroBMEPS + "'.");
            documentoTesouraria.get_CamposUtil().get_Item("CDU_FicheiroBMEPS").Valor = FicheiroBMEPS;

            _erpBs.Comercial.Tesouraria.AdicionaLinha(documentoTesouraria, MovimentoBancario, ContaBancaria, documentoTesouraria.get_Moeda(), Valor, "", "", Rubrica);

            try
            {
                _erpBs.Comercial.Tesouraria.Actualiza(documentoTesouraria, strAvisos);

                return result = new PrimaveraResultStructure()
                {
                    codigo = 0,
                    descricao = string.Format("- Doc. Tesouraria criado com Sucesso (Taxas BMEPS) - {0} {1}/{2} {3}",
                        documentoTesouraria.get_Tipodoc(), documentoTesouraria.get_NumDoc(), documentoTesouraria.get_Serie(),
                        strAvisos == "" ? strAvisos : "-Aviso: " + strAvisos)
                };
            }
            catch (Exception ex)
            {
                return result = new PrimaveraResultStructure()
                {
                    codigo = 3,
                    descricao = string.Format("- Erro ao gravar documento tesouraria: {0}", ex.Message)
                };
            }



        }
Esempio n. 14
0
        /// <summary>
        /// Metodo para o preenchemento do documento de venda, prenche-se os campos por defeito do documento de venda e os campos enviados no metodo
        /// </summary>
        /// <param name="tipodoc"></param>
        /// <param name="dataDoc"></param>
        /// <param name="dataGravacao"></param>
        /// <param name="tipoEntidade"></param>
        /// <param name="codigoEntidade"></param>
        /// <returns></returns>
        public PrimaveraResultStructure PreencheCabecalho_DocumentoVenda(string tipodoc, DateTime dataDoc, DateTime dataGravacao, string tipoEntidade, string codigoEntidade, string referencia = "")
        {
            string sourceName = "PreencheCabecalho_DocumentoVenda";

            PrimaveraResultStructure result = new PrimaveraResultStructure();

            try
            {
                _documentoVenda = new GcpBEDocumentoVenda();
                
                _documentoVenda.set_Tipodoc(tipodoc);
                _documentoVenda.set_Serie(_erpBs.Comercial.Series.DaSerieDefeito("V", tipodoc));
                _documentoVenda.set_DataDoc(dataDoc);
                _documentoVenda.set_DataGravacao(dataGravacao);

                _documentoVenda.set_TipoEntidade(tipoEntidade);
                _documentoVenda.set_Entidade(codigoEntidade);

                _documentoVenda.set_Requisicao(referencia);
                _documentoVenda.set_Referencia(referencia);

                _erpBs.Comercial.Vendas.PreencheDadosRelacionados(_documentoVenda);


                result = new PrimaveraResultStructure()
                {
                    codigo = 0
                };

            }
            catch (Exception e)
            {
                result = new PrimaveraResultStructure()
                {
                    codigo = 3,
                    descricao = "Erro Logica Primavera - Preenche Cabeçalho do Documento " + e.Message,
                    procedimento = "Contacto os Responsaveis do Projecto"
                };

                PrimaveraWSLogger.escreveErro(result.ToString(), sourceName);
            }

            return result;
        }
Esempio n. 15
0
        public PrimaveraResultStructure GravaLigacaoBancos(string TipoEntidade, string Entidade, string Moeda, double Valor, DateTime DataDoc, string IdDoc, string Instituto, string RefATM,
            string strTipoDocTes, string strContaBancaria, string strMovBancario, bool DocumentoAdiantamento = false)
        {
            PrimaveraResultStructure result;

            try
            {
                string strSerieDocTes, strErro = "", strAvisos = "";


                GcpBEDocumentoTesouraria documentoTesouraria = new GcpBEDocumentoTesouraria();
                strSerieDocTes = _erpBs.Comercial.Series.DaSerieDefeito("B", strTipoDocTes);

                //'SE O DOCUMENTO DE LOGISTICA FOR UMA ADIANTAMENTO
                if (DocumentoAdiantamento)
                    Valor = Math.Abs(Valor);


                documentoTesouraria.set_EmModoEdicao(false);
                documentoTesouraria.set_ModuloOrigem("M");
                documentoTesouraria.set_Filial("000");
                documentoTesouraria.set_TipoLancamento("000");
                documentoTesouraria.set_Tipodoc(strTipoDocTes);
                documentoTesouraria.set_Serie(strSerieDocTes);
                documentoTesouraria.set_Data(DataDoc);
                documentoTesouraria.set_TipoEntidade(TipoEntidade);
                documentoTesouraria.set_Entidade(Entidade);
                documentoTesouraria.set_ContaOrigem(strContaBancaria);
                documentoTesouraria.set_Moeda(Moeda);
                documentoTesouraria.set_Cambio(_erpBs.Contexto.MBaseCambioCompra);
                documentoTesouraria.set_CambioMBase(_erpBs.Contexto.MBaseCambioCompra);
                documentoTesouraria.set_CambioMAlt(_erpBs.Contexto.MAltCambioCompra);
                documentoTesouraria.set_IdDocOrigem(IdDoc);
                documentoTesouraria.set_AgrupaMovimentos(false);

                _erpBs.Comercial.Tesouraria.AdicionaLinha(documentoTesouraria, strMovBancario, strContaBancaria, _erpBs.Contexto.MoedaBase, Valor, TipoEntidade, Entidade);

                var linhas = documentoTesouraria.get_Linhas();
                int count = 0;
                foreach (GcpBELinhaDocTesouraria linha in linhas)
                {
                    if (count == 0)
                    {
                        linha.set_DataMovimento(DataDoc.ToString());
                        linha.set_DataValor(DataDoc.ToString());
                        linha.set_Cambio(_erpBs.Contexto.MBaseCambioCompra);
                        linha.set_CambioMBase(_erpBs.Contexto.MBaseCambioCompra);
                        linha.set_CambioMAlt(_erpBs.Contexto.MAltCambioCompra);
                        linha.set_Descricao("Ref. ATM " + RefATM);

                    }
                    count++;
                }


                _erpBs.Comercial.Tesouraria.Actualiza(documentoTesouraria, strAvisos);

                return result = new PrimaveraResultStructure()
                {
                    codigo = 0,
                    descricao = string.Format("- Doc. Tesouraria criado com Sucesso (Entidade: {0} ) - {1} {2}/{3} {4}",
                    documentoTesouraria.get_Entidade(), documentoTesouraria.get_Tipodoc(), documentoTesouraria.get_NumDoc(), documentoTesouraria.get_Serie(),
                    strAvisos == "" ? strAvisos : "-Aviso: " + strAvisos)
                };


            }

            catch (Exception ex)
            {
                return result = new PrimaveraResultStructure()
                {
                    codigo = 3,
                    descricao = string.Format("- Erro ao gravar documento tesouraria: {0}", ex.Message)
                };
            }



        }
Esempio n. 16
0
        public PrimaveraResultStructure GravaDocumentoLiquidacao(GcpBEDocumentoLiq docLiquidacao)
        {
            string strErro = "", strAvisos = "";
            PrimaveraResultStructure result;

            //Actualiza a Liquidação
            if (_erpBs.Comercial.Liquidacoes.ValidaActualizacao(docLiquidacao, strErro))
            {
                _erpBs.Comercial.Liquidacoes.Actualiza(docLiquidacao, strAvisos);
                return result = new PrimaveraResultStructure()
                {
                    codigo = 0,
                    descricao = string.Format("- Doc. Liquidação criado com Sucesso (Entidade: {0} ) - {1} {2}/{3} {4}",
                    docLiquidacao.get_Entidade(), docLiquidacao.get_Tipodoc(), docLiquidacao.get_NumDoc(), docLiquidacao.get_Serie(),
                    strAvisos == "" ? strAvisos : "-Aviso: " + strAvisos)
                };
            }
            else
                return result = new PrimaveraResultStructure()
                {
                    codigo = 3,
                    descricao = string.Format("Erro ao gravar documento Liquidação (Entidade: {0}) devido ao erro {1} ", docLiquidacao.get_Entidade(), strErro)
                };
        }