public static void PrintReportPersonalized(EtiAplicacao etiApp, MovVenda sale) { EventsClass e = null; try { e = new EventsClass(); e.PrintReportPersonalized(etiApp, sale); } catch (Exception ex) { if (Environment.UserInteractive) { var errorDescription = string.Format("{0}.{1}.{2}", MethodBase.GetCurrentMethod().DeclaringType.FullName, MethodBase.GetCurrentMethod().Name, ex.Message); MessageBox.Show(errorDescription); } else { throw ex; } } finally { e = null; } }
public static void AddNewActivity(EtiAplicacao etiApp, EtiConnNetBD conn, Cliente customer) { EventsClass e = null; try { e = new EventsClass(); e.AddNewActivity(etiApp, customer); } catch (Exception ex) { if (Environment.UserInteractive) { var errorDescription = string.Format("{0}.{1}.{2}", MethodBase.GetCurrentMethod().DeclaringType.FullName, MethodBase.GetCurrentMethod().Name, ex.Message); MessageBox.Show(errorDescription); } else { throw ex; } } finally { e = null; } }
public static void PrintToPrinter(EtiAplicacao etiApp, string DocFiscalYearCode, string DocSeccion, string DocType, int DocNumber) { Eticadata.Views.Reports.ReportsGcePOS report = new Views.Reports.ReportsGcePOS(etiApp, "", ERP.EtiEnums.ExportWebFormat.PDF); byte[] reportBytes; var rptProp = new Eticadata.Common.EtiReportProperties() { TpDocAEmitir = TpDocumentoAEmitir.Vendas, AbrevTpDoc = DocType, CodExercicio = DocFiscalYearCode, CodSeccao = DocSeccion, Numero = DocNumber, EtiApp = etiApp, ExportaFicheiro = false, SoExportacao = false, ToPrinter = true, IncrementPrintCount = true, Application = ReportApplication.BackOffice, ExportaFormato = "1" }; reportBytes = report.EmiteDocumentos(rptProp); if (!string.IsNullOrEmpty(rptProp.ErrorDescription)) { throw new Exception(rptProp.ErrorDescription); } }
/// <summary> /// Depois de gravar a venda /// Imprimir o documento de venda alternativo /// </summary> /// <param name="etiApp"></param> /// <param name="sale"></param> internal void PrintAlternativeFile(EtiAplicacao etiApp, MovVenda sale) { ReportsGcePOS report = new ReportsGcePOS(etiApp, "", ExportWebFormat.PDF); var rptProp = new Eticadata.Common.EtiReportProperties() { FrontOffBackOff = ReportApplication.BackOffice, PerfilPerifericos = -1, TpDocAEmitir = TpDocumentoAEmitir.Vendas, ToPrinter = true, CodExercicio = sale.Cabecalho.CodExercicio, CodSeccao = sale.Cabecalho.CodSeccao, AbrevTpDoc = sale.Cabecalho.AbrevTpDoc, Numero = sale.Cabecalho.Numero, ConfigImpressao = 1, Gravacao = false, Movimento = 1, ReportName = "VNDDocumentoA5.rpt", Entidade = sale.Cabecalho.CodEntidade.ToString(), EtiApp = etiApp, }; System.Threading.Thread th = new System.Threading.Thread(() => report.EmiteDocumentos(rptProp)); th.IsBackground = true; th.Start(); }
static void Main(string[] args) { EtiAppAuthentication authentication = new EtiAppAuthentication() { serviceAddress = IniFile.IniRead(Path.Combine(IniFile.GetBasePath(), "ERPv17.eInic.ini"), "Geral", "ServerUrl", ""), SQLServerName = @"DDS-VICTORG\SQL2014", SQLUser = "******", SQLPassword = "******", SystemDatabase = "sisCust", Login = "******", Password = "******", Company = "Cust", FiscalYearCode = "2018", SectionCode = "1", Language = "pt-PT" }; try { //Obter o objeto EtiAplicacão. è necessário ter licença extended ou modulo de customziação EtiAplicacao etiApp = Functions.GetNewEtiAplicacao(authentication); //Tendo etiApp podemos utilziar a api do ERP //Chamar um webService, necessitando de inicilizar o etiAplicacao por webService List <EntitiesCategory> entitiesCategory = Functions.GetEntitiesCategory(authentication); } catch (Exception ex) { //tratar erro //escrever lo log } }
public static bool VerifyEmail(EtiAplicacao etiApp, Cliente customer) { RulesClass e = null; bool res = true; try { e = new RulesClass(); res = e.VerifyEmail(etiApp, customer); } catch (Exception ex) { if (Environment.UserInteractive) { var errorDescription = string.Format("{0}.{1}.{2}", MethodBase.GetCurrentMethod().DeclaringType.FullName, MethodBase.GetCurrentMethod().Name, ex.Message); MessageBox.Show(errorDescription); } else { throw ex; } } return(res); }
public static void GetIsNew(EtiAplicacao etiApp, EtiConnNetBD conn, Cliente customer) { EventsClass e = null; try { e = new EventsClass(); e.GetIsNew(etiApp, customer); Functions.NewActivity(etiApp, "Subject ... ", "Notes...", customer.Codigo, "1", (int)NaturezaAtividade.Tarefa, null); } catch (Exception ex) { if (Environment.UserInteractive) { var errorDescription = string.Format("{0}.{1}.{2}", MethodBase.GetCurrentMethod().DeclaringType.FullName, MethodBase.GetCurrentMethod().Name, ex.Message); MessageBox.Show(errorDescription); } else { throw ex; } } finally { e = null; } }
public static byte[] GetReportBytes(EtiAplicacao EtiApp, TpDocumentoAEmitir typeDocToPrint, DocumentKey docKey) { byte[] reportBytes = null; byte[] emailBytes = null; bool isCFDoc; try { var inputParameters = new ElectronicSignature.ReportParameters() { TpDocEmit = typeDocToPrint, AbrevTpDoc = docKey.DocTypeAbbrev, CodeFiscalYear = docKey.FiscalYear, CodeSection = docKey.SectionCode, Number = docKey.Number, ToPrinter = false }; Eticadata.Reporting.ReportProvider.EmitDocumentAndSendEmail(ref inputParameters, out reportBytes, ref emailBytes, out isCFDoc, EtiApp); } catch (Exception ex) { throw new Exception(ex.Message); } return(reportBytes); }
/// <summary> /// Depois de Gravar cliente /// Adicionar uma nova atividade do tipo tarefa /// </summary> /// <param name="etiApp"></param> /// <param name="customer"></param> internal void AddNewActivity(EtiAplicacao etiApp, Cliente customer) { var activityType = "102"; //tarefa var subject = "Subject ... "; var notes = "Notes ... "; Functions.NewActivity(etiApp, subject, notes, customer.Codigo, activityType, (int)NaturezaAtividade.Tarefa, null); }
public Init([ServiceDependency()] WorkItem myWorkItem_, [ServiceDependency()] EtiAplicacao myEtiApp_, [ServiceDependency()] UIUtils myUiutils_) { myEtiApp = myEtiApp_; myUiutils = myUiutils_; myWorkItem = myWorkItem_; }
public NewWindow([ServiceDependency()] WorkItem myWorkItem_, [ServiceDependency()] EtiAplicacao myEtiApp_, [ServiceDependency()] UIUtils myUiutils_) { InitializeComponent(); myEtiApp = myEtiApp_; myUiutils = myUiutils_; myWorkItem = myWorkItem_; }
public static EtiConnNetBD GetConnection(EtiAplicacao eti, string SQLInstance, string login, string password, string database) { EtiConnNetBD conn = new EtiConnNetBD(eti); try { conn.MakeConnectionToServer(SQLInstance, login, password, database, 0); } catch (Exception ex) { throw new Exception(ex.Message); } return(conn); }
public static void NewActivity(EtiAplicacao etiApp, string subject, string notes, int customerCode, string activityType, int nature, Byte[] bytesToWrite) { AutomaticActivityInfo obj = new AutomaticActivityInfo(); List <RelationInfo> myRelationInfo = new List <RelationInfo>(); AttachmentInfo Attach = new AttachmentInfo(); if (bytesToWrite != null) { Attach.Name = "Test.pdf"; Attach.File = System.Convert.ToBase64String(bytesToWrite); } myRelationInfo.Add(new RelationInfo((int)CodTabelas.Clientes, customerCode.ToString(), "", "", "")); obj.CodExercise = ""; obj.CodSection = ""; obj.AbrevTpDoc = ""; obj.Number = customerCode; obj.Natureza = nature; obj.CodTableDoc = -1; obj.CodActivityType = activityType; obj.Integration = false; obj.Message = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(notes)); obj.CodTableEntity = -1; obj.CodEntity = new List <int>(); obj.Relations = myRelationInfo; obj.Subject = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(subject)); obj.Contacts = new List <ContactInfo>(); if (bytesToWrite != null) { obj.Attachments = new List <AttachmentInfo>(); if (bytesToWrite != null) { obj.Attachments.Add(Attach); } } Uri url = new Uri(new Uri(etiApp.Ambiente.ServerUrl), "api/Crm/AutomaticActivity"); EtiWebClient wc = new EtiWebClient(); wc.Headers.Add("Content-Type", "application/json"); string reply = wc.UploadString(url, "POST", obj.Serialize()); }
public IHttpActionResult PrintReport([FromBody] PrintInput docParams) { try { Eticadata.Views.Reports.ReportsGcePOS report = new Views.Reports.ReportsGcePOS(Eti.Aplicacao, "", ERP.EtiEnums.ExportWebFormat.PDF); EtiAplicacao etiapp = new EtiAplicacao(); byte[] reportBytes; var rptProp = new Eticadata.Common.EtiReportProperties() { TpDocAEmitir = TpDocumentoAEmitir.Vendas, AbrevTpDoc = docParams.DocType, CodExercicio = docParams.DocFiscalYearCode, CodSeccao = docParams.DocSeccion, Numero = docParams.DocNumber, EtiApp = Eti.Aplicacao, ExportaFicheiro = false, SoExportacao = false, ToPrinter = true, IncrementPrintCount = true, //FrontOffBackOff = ReportApplication.BackOffice, ExportaFormato = "1" }; reportBytes = report.EmiteDocumentos(rptProp); if (!string.IsNullOrEmpty(rptProp.ErrorDescription)) { return(BadRequest(rptProp.ErrorDescription)); } return(Ok(reportBytes)); } catch (Exception ex) { return(BadRequest(ex.ToString())); } }
public IHttpActionResult CreateWithdrawalTransfer([FromBody] InputWithdrawalTransfer input) { MovTesLevantamento withdrawalTransfer; EtiAplicacao etiApp = Eti.Aplicacao; try { //Criar um movimento real na conta origem, com natureza a crédito withdrawalTransfer = etiApp.Movimentos.MovTesLevantamentos.GetNew(input.AccountCode, input.SectionCode); withdrawalTransfer.ContaOrigem.AlteraCodigoContaTes(input.AccountCode); withdrawalTransfer.ContaOrigem.AbrevTpMovPag = input.PayTransfType; withdrawalTransfer.ContaOrigem.AbrevMoeda = input.Currency; withdrawalTransfer.ContaOrigem.Cambio = 1; withdrawalTransfer.ContaOrigem.Valor = input.Lines.Sum(s => s.ValueDeb); var numberLine = 1; foreach (var line in input.Lines) { withdrawalTransfer.AlteraDestinoConta(numberLine, line.AccountCode); withdrawalTransfer.AlteraDestinoTipoMovPag(numberLine, line.PayTransfType); withdrawalTransfer.AlteraDestinoValor(numberLine, line.ValueDeb); numberLine++; } etiApp.Movimentos.MovTesLevantamentos.Update(withdrawalTransfer); if (withdrawalTransfer.EtiErrorDescription != "") { throw new Exception(withdrawalTransfer.EtiErrorDescription); } return(Ok()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public static EtiAplicacao GetNewEtiAplicacao(EtiAppAuthentication authentication) { EtiAplicacao etiApp = new EtiAplicacao(); try { if (!etiApp.InitializeEtiApp(EtiConstantes.cAplicBackOffice, authentication.SQLServerName, authentication.SystemDatabase, authentication.SQLUser, authentication.SQLPassword, string.Empty, string.Empty, string.Empty, string.Empty, authentication.serviceAddress, true, string.Empty)) { throw new Exception("Ocorreu um erro a inicializar etiAplicacao..."); } EtiAplicacao.LoginResult result; if ((result = etiApp.Login(authentication.Login, authentication.Password)) != EtiAplicacao.LoginResult.Ok) { throw new Exception(result == EtiAplicacao.LoginResult.InvalidUser ? "Invalid user..." : "Wrong user or password..."); } if (!etiApp.OpenEmpresa(authentication.Company)) { throw new Exception("Empresa inválida ..."); } if (!etiApp.OpenExercicio(authentication.FiscalYearCode)) { throw new Exception("Exercício inválido..."); } if (!etiApp.OpenSeccao(authentication.SectionCode)) { throw new Exception("Seção inválida..."); } } catch (Exception ex) { throw new Exception(ex.Message); } return(etiApp); }
/// <summary> /// Depois de Gravar Venda /// Imprimir um report personalizado /// </summary> /// <param name="etiApp"></param> /// <param name="sale"></param> internal void PrintReportPersonalized(EtiAplicacao etiApp, MovVenda sale) { var errors = ""; var customerName = "Sou o cliente XPTO"; var rptProp = new Eticadata.Common.EtiReportProperties() { FrontOffBackOff = ReportApplication.BackOffice, ReportServer_ReportPath = "Consultas", WindowTitle = "Titulo do report personalizado", ReportName = "USR_TESTE.rdl", ToPrinter = true, EtiApp = etiApp, }; //Adicionar parametros rptProp.AdicionarFormula($"CustomerName = {customerName}"); System.Threading.Thread th = new System.Threading.Thread(() => Eticadata.Views.Reports.ReportsInit.MapaSimplesEmissao(rptProp, etiApp, null, null, ref errors)); th.IsBackground = true; th.Start(); }
static void Main(string[] args) { EtiAppAuthentication authentication = new EtiAppAuthentication() { serviceAddress = IniFile.IniRead(Path.Combine(IniFile.GetBasePath(), "ERPV19.eInic.ini"), "Geral", "ServerUrl", ""), SQLServerName = @"PT-ALFREDOA\ETICADATA", SQLUser = "******", SQLPassword = "******", SystemDatabase = "SIS_CUST19", Login = "******", Password = "******", Company = "T19PT", FiscalYearCode = "EX 2021", SectionCode = "1", Language = "pt-PT" }; try { //Obter o objeto EtiAplicacão. è necessário ter licença extended ou modulo de customziação EtiAplicacao etiApp = Functions.GetNewEtiAplicacao(authentication); //Tendo etiApp podemos utilziar a api do ERP //Chamar um webService, necessitando de inicilizar o etiAplicacao por webService //List<EntitiesCategory> entitiesCategory = Functions.GetEntitiesCategory(authentication); //Criar documento de venda MovVenda venda = etiApp.Movimentos.MovVendas.GetNew("FACT"); venda.Cabecalho.CodEntidade = 1; venda.AlteraEntidade(ERP.EtiEnums.TpEntidade.Cliente, 1, true, true); int linha = 1; string codArtigo = "001"; bool blnAfectaOutrasLinhas = false, blnAssociacoesFixas = false, blnAssociacoesLivres = false, blnStockDisponivel = false, blnFamPararQtd = false, blnFamPararPreco = false; TpProcuraArtigo pProcuraArtigo = TpProcuraArtigo.Encontrou; venda.AddLin(ref linha); venda.Lines[linha].CodArtigo = codArtigo; venda.AlteraArtigo(linha, ref codArtigo, ref blnAfectaOutrasLinhas, ref blnAssociacoesFixas, ref blnAssociacoesLivres, ref pProcuraArtigo, false, ref blnStockDisponivel, ref blnFamPararQtd, ref blnFamPararPreco); venda.CalculaTotais(); var validateVenda = venda.Validate(true); if (!validateVenda) { Console.WriteLine(venda.EtiErrorDescription); } else { bool blnSTKImpeditivo = false; etiApp.Movimentos.MovVendas.Update(ref venda, ref blnSTKImpeditivo, true, TpLigacaoExtra.SemLigacao, string.Empty); if (venda.EtiErrorCode != "") { Console.WriteLine(venda.EtiErrorDescription); } Helpers.Functions.PrintToPrinter(etiApp, venda.Cabecalho.CodExercicio, venda.Cabecalho.CodSeccao, venda.Cabecalho.AbrevTpDoc, venda.Cabecalho.Numero); } } catch (Exception ex) { Console.Write(ex.Message); } }
public usrCloseCashSession(EtiAplicacao etiApp) { InitializeComponent(); this.etiApp = etiApp; }
public IHttpActionResult CreateNewAccount([FromBody] InputDepositReceipt input) { MovTesTalao receipt; Eticadata.ERP.EtiRecordset realTransactions; short transactionNumbersGenerate = 0; string errorDescription = string.Empty; byte filterByDate = 0; string filterAdditional = ""; DateTime startDate = input.StartDate; DateTime endDate = input.EndDate; string currency = input.Currency; string sourceAccount = input.SourceAccount; string sectionCode = input.SectionCode; short NumMovPiscados = 0; EtiAplicacao etiApp = Eti.Aplicacao; try { //double totCheques = etiApp.Movimentos.MovTesTaloes.TotalValores(ref strContaOrigem, ref strMoeda); //double totNum = etiApp.Movimentos.MovTesTaloes.TotalNumerario(ref strContaOrigem, ref strMoeda); receipt = etiApp.Movimentos.MovTesTaloes.GetNew(input.TargetAccount, input.SectionCode); receipt.CodigoSeccao = input.SectionCode; receipt.CodigoExercicio = input.FiscalPeriod; receipt.CodigoContaTesOri = input.SourceAccount; receipt.DataInicial = System.DateTime.Today; receipt.DataFinal = System.DateTime.Today; receipt.DiscriminaValCheque = false; receipt.Obs = input.Notes; receipt.Cambio = 1; realTransactions = etiApp.Movimentos.MovTesTaloes.RcSetMovReais(ref currency, ref sourceAccount, ref filterByDate, ref startDate, ref endDate, ref filterAdditional, ref filterAdditional, ref sectionCode); if (realTransactions.RecordCount > 0) { //Para efeitos de testes, apenas se insere um elemento à lista do tipo cheque Eticadata.ERP.Lista lst = new Eticadata.ERP.Lista(); Eticadata.ERP.ListaElem lstElem; lstElem = lst.NewElem(); lstElem.Add("strcodseccaomov", sectionCode); lstElem.Add("lngnummov", realTransactions.ValueGet <int>("intnumero").ToString()); lstElem.Add("lngtalaonum", receipt.Numero.ToString()); lstElem.Add("valor", realTransactions.ValueGet <double>("fltvalor").ToString()); lstElem.Add("strrubricamov", ""); lstElem.Add("strdescricao", ""); lstElem.Add("strdocumento", "Cheque Caixa (EUR)"); lstElem.Add("strbanco", ""); lstElem.Add("tpentidade", "0"); lstElem.Add("lngcodentidade", "0"); lstElem.Add("strentidadectbanc", ""); lstElem.Add("strmyupdatestamp", Eticadata.ERP.UpdateStamp.ConvertBytesToLong(realTransactions.ValueGet <byte[]>("myupdatestamp")).ToString()); lst.AddBefore(lstElem, 1); receipt.ListaMovsPiscados = lst; receipt.ValoresCheques = realTransactions.ValueGet <double>("fltvalor"); receipt.Numerario = 0; receipt.TotalDeposito = receipt.ValoresCheques + receipt.Numerario; // 'Calcular o nº de movimentos a gerar if (receipt.Numerario > 0) { transactionNumbersGenerate += 1; } if (receipt.ValoresCheques > 0) { transactionNumbersGenerate += 1; } if (!receipt.DiscriminaValCheque) //'Não discrimina valores/cheques { if (receipt.TotalDeposito > 0) { transactionNumbersGenerate += 1; } } else { //'Discriminando os Valores/Cheques transactionNumbersGenerate += NumMovPiscados; if (receipt.Numerario > 0) { transactionNumbersGenerate += 1; } } receipt.NumMovsReaisAGerar = transactionNumbersGenerate; //Criar Array de movimentos reais a gerar errorDescription = receipt.GeraMovsReaisTaloes(currency); if (errorDescription != "") { throw new Exception(errorDescription); } else { //Gravar Talão etiApp.Movimentos.MovTesTaloes.Update(ref receipt); if (receipt.EtiErrorDescription != "") { throw new Exception(receipt.EtiErrorDescription); } } } return(Ok()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public PrintLabelInput(EtiAplicacao etiApp) { this.etiApp = etiApp; }
/// <summary> /// Depois de gravar /// Neste evento o estado se é novo ou não é sempre não novo, pois já foi gravado, é existente /// Com a variável global isNew colocada no atarow no evento antes de gravar, vamos saber se o cliente é novo ou não. /// </summary> /// <param name="etiApp"></param> /// <param name="customer"></param> internal void GetIsNew(EtiAplicacao etiApp, Cliente customer) { //Podemos na datarow colocar uma nova coluna,com valores auxiliares, o equivalente ao uma variável global //è sempre sobre o objeto singular.DataRow var isNew = Eticadata.ERP.modDataLib.ValueGet <bool>(customer.DataRow, "isNewCust") ? "novo" : "existente"; }
public IHttpActionResult SaveAttachment([FromBody] string base64Document) { try { Eticadata.RiaServices.AuthenticationService authSvc = new RiaServices.AuthenticationService(); string strCustomData = Eticadata.LoginData.GetCustomData("(LocalDB)\\MSSQLLocalDB", "sistema", string.Empty, true, true, "pt-PT"); EtiAplicacao etiApp = new EtiAplicacao(); var myEtiUser = authSvc.Login("demo", "demo", false, strCustomData); if (myEtiUser != null) { switch (myEtiUser.loginResult) { case 0: etiApp = Eti.Aplicacao; break; case 2: throw new Exception("The user does not exists!"); case 3: throw new Exception("The user is inactive!"); default: throw new Exception("The user does not exists!"); } } bool initResult = etiApp.OpenEmpresa("D18"); if (!initResult) { throw new Exception("OpenCompany: Não foi possivel efetuar a autenticação no ERP."); } initResult = etiApp.OpenExercicio("EX 2018"); if (!initResult) { throw new Exception("OpenFiscalYear: Não foi possivel efetuar a autenticação no ERP."); } initResult = etiApp.OpenSeccao("SEC1"); if (!initResult) { throw new Exception("OpenSection: Não foi possivel efetuar a autenticação no ERP."); } RiaServices.Attachments.Services.AnexosDigitaisService attachSrv = new RiaServices.Attachments.Services.AnexosDigitaisService(); attachSrv.UpdateAnexoDigital(new RiaServices.Attachments.Models.AnexoDigital() { Entidades = new System.Data.Entity.Core.Objects.DataClasses.EntityCollection <RiaServices.Attachments.Models.Entidade>() { new RiaServices.Attachments.Models.Entidade() { TipoEntidade = (int)TpEntidade.Cliente, Chave1 = "1" } }, TipoDocumentacao = "DOC", CodDocumentacao = "BI", DataEmissao = DateTime.Now, CodSituacao = 0, DataSituacao = DateTime.Now, Ficheiro = Convert.FromBase64String(base64Document), Ref = "0001/2018", Local = "SEDE", Obs = "Documento anexado ao cliente 1" }); return(Ok()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
/// <summary> /// Caso o email não esteja definido, o utilizador será avisado mas consegue continuar com a gravação /// </summary> /// <param name="etiApp"></param> /// <param name="customer"></param> /// <returns></returns> internal bool VerifyEmail(EtiAplicacao etiApp, Cliente customer) { bool res = !String.IsNullOrEmpty(customer.Email); return(res); }
/// <summary> /// Antes de gravar /// Guarda se o cliente é novo ou não, de forma a aceder no evento de depois de gravar /// </summary> /// <param name="etiApp"></param> /// <param name="customer"></param> internal void SetIsNew(EtiAplicacao etiApp, Cliente customer) { //Podemos na datarow colcoar uma nova coluna,com valores auxiliares, o equivalente ao uma variável global Eticadata.ERP.modDataLib.ValueSet <bool>(customer.DataRow, "isNewCust", customer.IsNew); }