public object Execute(ContextDataObject context, Entity document) { /* **************************************** */ /* **************************************** */ /* ADD YOUR CODE HERE */ ErpBS bsERP = new ErpBS(); try { if (!context.Parameters.ContainsKey("TipoPlataforma")) { throw new Exception("TipoPlataforma inválido"); } EnumTipoPlataforma tipoPlataforma; if (!Enum.TryParse <EnumTipoPlataforma>((string)context.Parameters["TipoPlataforma"], out tipoPlataforma)) { throw new Exception("TipoPlataforma inválido"); } try { bsERP.AbreEmpresaTrabalho(tipoPlataforma, context.Company, context.Username, context.Password); } catch (Exception e) { throw new Exception("Erro a abrir a empresa no ERP: " + e.Message); } GcpBEDocumentoCompra purchaseOrder = new GcpBEDocumentoCompra(); purchaseOrder.set_Tipodoc("ECF"); purchaseOrder.set_Serie("A"); purchaseOrder.set_TipoEntidade("F"); purchaseOrder.set_Entidade(document.Attributes.Supplier); purchaseOrder.set_NumDocExterno("0"); purchaseOrder.set_Observacoes("Documento gerado no portal OMNIA: Pedido de Encomenda " + document.NumberSerieCode + "/" + document.Number); purchaseOrder.set_DataCarga(document.DateCreated.ToShortDateString()); purchaseOrder.set_DataDescarga(document.DateCreated.ToShortDateString()); bsERP.Comercial.Compras.PreencheDadosRelacionados(purchaseOrder); foreach (var line in document.Commitments.GoodsPurchaseRequest) { bsERP.Comercial.Compras.AdicionaLinha(purchaseOrder, line.Resource, line.Quantity, "A1", "", line.Amount); } bsERP.Comercial.Compras.Actualiza(purchaseOrder); bsERP.FechaEmpresaTrabalho(); return(new ScriptResponse { Message = "Integrado documento " + purchaseOrder.get_Tipodoc() + " " + purchaseOrder.get_Serie() + "/" + purchaseOrder.get_NumDoc() }); } catch (Exception ex) { bsERP.FechaEmpresaTrabalho(); throw ex; } }
public static Model.RespostaErro VGR_New(Model.DocCompra dc) { Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro(); GcpBEDocumentoCompra myGR = new GcpBEDocumentoCompra(); GcpBELinhaDocumentoCompra myLin = new GcpBELinhaDocumentoCompra(); GcpBELinhasDocumentoCompra myLinhas = new GcpBELinhasDocumentoCompra(); PreencheRelacaoCompras rl = new PreencheRelacaoCompras(); List <Model.LinhaDocCompra> lstlindv = new List <Model.LinhaDocCompra>(); try { if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true) { // Atribui valores ao cabecalho do doc //myEnc.set_DataDoc(dv.Data); myGR.set_Entidade(dc.Entidade); myGR.set_NumDocExterno(dc.NumDocExterno); myGR.set_Serie(dc.Serie); myGR.set_Tipodoc("VGR"); myGR.set_TipoEntidade("F"); // Linhas do documento para a lista de linhas lstlindv = dc.LinhasDoc; //PriEngine.Engine.Comercial.Compras.PreencheDadosRelacionados(myGR,rl); PriEngine.Engine.Comercial.Compras.PreencheDadosRelacionados(myGR); foreach (Model.LinhaDocCompra lin in lstlindv) { PriEngine.Engine.Comercial.Compras.AdicionaLinha(myGR, lin.CodArtigo, lin.Quantidade, lin.Armazem, "", lin.PrecoUnitario, lin.Desconto); } PriEngine.Engine.IniciaTransaccao(); PriEngine.Engine.Comercial.Compras.Actualiza(myGR, "Teste"); PriEngine.Engine.TerminaTransaccao(); erro.Erro = 0; erro.Descricao = "Sucesso"; return(erro); } else { erro.Erro = 1; erro.Descricao = "Erro ao abrir empresa"; return(erro); } } catch (Exception ex) { PriEngine.Engine.DesfazTransaccao(); erro.Erro = 1; erro.Descricao = ex.Message; return(erro); } }
public static Model.RespostaErro VGR_New(Model.DocCompra dc) { Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro(); GcpBEDocumentoCompra myGR = new GcpBEDocumentoCompra(); GcpBELinhaDocumentoCompra myLin = new GcpBELinhaDocumentoCompra(); GcpBELinhasDocumentoCompra myLinhas = new GcpBELinhasDocumentoCompra(); PreencheRelacaoCompras rl = new PreencheRelacaoCompras(); List<Model.LinhaDocCompra> lstlindv = new List<Model.LinhaDocCompra>(); try { if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true) { // Atribui valores ao cabecalho do doc //myEnc.set_DataDoc(dv.Data); myGR.set_Entidade(dc.Entidade); myGR.set_NumDocExterno(dc.NumDocExterno); myGR.set_Serie(dc.Serie); myGR.set_Tipodoc("VGR"); myGR.set_TipoEntidade("F"); // Linhas do documento para a lista de linhas lstlindv = dc.LinhasDoc; PriEngine.Engine.Comercial.Compras.PreencheDadosRelacionados(myGR, rl); foreach (Model.LinhaDocCompra lin in lstlindv) { PriEngine.Engine.Comercial.Compras.AdicionaLinha(myGR, lin.CodArtigo, lin.Quantidade, lin.Armazem, "", lin.PrecoUnitario, lin.Desconto); } PriEngine.Engine.IniciaTransaccao(); PriEngine.Engine.Comercial.Compras.Actualiza(myGR, "Teste"); PriEngine.Engine.TerminaTransaccao(); erro.Erro = 0; erro.Descricao = "Sucesso"; return erro; } else { erro.Erro = 1; erro.Descricao = "Erro ao abrir empresa"; return erro; } } catch (Exception ex) { PriEngine.Engine.DesfazTransaccao(); erro.Erro = 1; erro.Descricao = ex.Message; return erro; } }
public static Model.RespostaErro VGR_New(Model.DocCompra dc) { Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro(); GcpBEDocumentoCompra myGR = new GcpBEDocumentoCompra(); GcpBELinhaDocumentoCompra myLin = new GcpBELinhaDocumentoCompra(); GcpBELinhasDocumentoCompra myLinhas = new GcpBELinhasDocumentoCompra(); PreencheRelacaoCompras rl = new PreencheRelacaoCompras(); List<Model.LinhaDocCompra> lstlindv = new List<Model.LinhaDocCompra>(); try { if (PriEngine.InitializeCompany(NomeEmpresa, UtilizadorEmpresa, PasswordEmpresa) == true) { // Atribui valores ao cabecalho do doc //myGR.set_DataDoc(DateTime.Now); myGR.set_Entidade(dc.Entidade); myGR.set_NumDocExterno("1"); myGR.set_Serie(dc.Serie); myGR.set_Tipodoc("VGR"); myGR.set_TipoEntidade("F"); // Linhas do documento para a lista de linhas lstlindv = dc.LinhasDoc; PriEngine.Engine.Comercial.Compras.PreencheDadosRelacionados(myGR, rl); myGR.set_CondPag(dc.CondPag); myGR.set_DataVenc(dc.DataVencimento); myGR.set_DataDoc(dc.DataEmissao); foreach (Model.LinhaDocCompra lin in lstlindv) { PriEngine.Engine.Comercial.Compras.AdicionaLinha(myGR, lin.CodArtigo, lin.Quantidade, lin.Armazem, "", lin.PrecoUnitario, lin.Desconto); } PriEngine.Engine.IniciaTransaccao(); PriEngine.Engine.Comercial.Compras.Actualiza(myGR, "Teste"); PriEngine.Engine.TerminaTransaccao(); erro.Status = true; erro.Erro = 0; erro.Descricao = "Sucesso"; return erro; } else { erro.Status = false; erro.Erro = 1; erro.Descricao = "Erro ao abrir empresa"; return erro; } } catch (Exception ex) { PriEngine.Engine.DesfazTransaccao(); erro.Status = false; erro.Erro = 2; erro.Descricao = ex.Message; return erro; } }
public static Model.RespostaErro TransformaDoc(Model.DocCompra dc) { Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro(); GcpBEDocumentoCompra objEnc = new GcpBEDocumentoCompra(); GcpBEDocumentoCompra objGR = new GcpBEDocumentoCompra(); GcpBELinhasDocumentoCompra objLinEnc = new GcpBELinhasDocumentoCompra(); PreencheRelacaoCompras rl = new PreencheRelacaoCompras(); List<Model.LinhaDocCompra> lstlindc = new List<Model.LinhaDocCompra>(); try { if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true) { objEnc = PriEngine.Engine.Comercial.Compras.Edita("000", "ECF", "2013", 3); // --- Criar os cabeçalhos da GR objGR.set_Entidade(objEnc.get_Entidade()); objEnc.set_Serie("2013"); objEnc.set_Tipodoc("ECF"); objEnc.set_TipoEntidade("F"); objGR = PriEngine.Engine.Comercial.Compras.PreencheDadosRelacionados(objGR, rl); // façam p.f. o ciclo para percorrer as linhas da encomenda que pretendem copiar //double QdeaCopiar; //PriEngine.Engine.Comercial.Internos.CopiaLinha("C", objEnc, "C", objGR, lin.NumLinha, QdeaCopiar); // precisamos aqui de um metodo que permita actualizar a Qde Satisfeita da linha de encomenda. Existe em VB mas ainda não sei qual é em c# PriEngine.Engine.IniciaTransaccao(); PriEngine.Engine.Comercial.Compras.Actualiza(objEnc, ""); PriEngine.Engine.Comercial.Compras.Actualiza(objGR, ""); PriEngine.Engine.TerminaTransaccao(); erro.Erro = 0; erro.Descricao = "Sucesso"; return erro; } else { erro.Erro = 1; erro.Descricao = "Erro ao abrir empresa"; return erro; } } catch (Exception ex) { PriEngine.Engine.DesfazTransaccao(); erro.Erro = 1; erro.Descricao = ex.Message; return erro; } }