/// <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(); }
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; } }
/// <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 IHttpActionResult GenerateSettlments([FromBody] JObject data) { EtiConnNetBD etiConn = Eti.Aplicacao.ActiveEmpresa.GetConnectionBD(); try { dynamic _data = data; DateTime From = _data.From; if (From <= DateTime.MinValue) { From = (DateTime)SqlDateTime.MinValue; } JArray _paymts = _data.Payments; IEnumerable <SettlementInput> Payments = _paymts.ToObject <List <SettlementInput> >(); //Alterar estado das encomendas que foram selecionadas; foreach (SettlementInput order in Payments.Where(w => w.Pay == true && w.et_DocType == "ORD")) { MovEncomenda objOrder = Eti.Aplicacao.Movimentos.MovEncomendasCli.Find(order.et_Doc, order.et_FiscalYear, order.et_DocNumber, order.et_Section); //inserir no historico de dados Eticadata.ERP.HistEstadoDocumento statusesHistory = objOrder.HistoricoEstados.CreateNew(); statusesHistory.Tabela = 1;//janela de vendas statusesHistory.Login = Eti.Aplicacao.ActiveUser.Login; statusesHistory.Chave1 = objOrder.Cabecalho.CodSeccao; statusesHistory.Chave2 = objOrder.Cabecalho.AbrevTpDoc; statusesHistory.Chave3 = objOrder.Cabecalho.CodExercicio; statusesHistory.Chave4 = objOrder.Cabecalho.Numero.ToString(); statusesHistory.CodEstado = configs.OrderPaidState; statusesHistory.DataEstado = DateTime.Now; objOrder.HistoricoEstados.Add(statusesHistory); //atualizar na venda de forma a aparecer em 1ª lugar objOrder.Cabecalho.EstadoDocum = configs.OrderPaidState; objOrder.Cabecalho.DataEstado = statusesHistory.DataEstado; objOrder.Cabecalho.LoginEstado = statusesHistory.Login; objOrder.Cabecalho.DataAlteracaoEstado = statusesHistory.DataEstado; Eti.Aplicacao.Movimentos.MovEncomendasCli.Update(ref objOrder); if (!string.IsNullOrEmpty(objOrder.EtiErrorCode)) { throw new Exception(objOrder.EtiErrorDescription); } } //Emitir liquidação das faturas que foram pagas; foreach (SettlementInput invoice in Payments.Where(w => w.Pay == true && w.et_DocType == "INV")) { MovLiquidacao objSettlement = Eti.Aplicacao.Movimentos.MovLiquidacoes.GetNew(configs.SettlementDocType, Eti.Aplicacao.ActiveSeccao.Codigo); MovVenda objInvoice = Eti.Aplicacao.Movimentos.MovVendas.Find(invoice.et_Doc, invoice.et_FiscalYear, invoice.et_DocNumber, invoice.et_Section); objSettlement.Cabecalho.CodEntidade = objInvoice.Cabecalho.CodEntidade; objSettlement.AlteraEntidade(objInvoice.Cabecalho.CodEntidade, true); objSettlement.FindDocs(0, 0, 0, 1); var linePend = objSettlement.get_LinhaOfPendente(invoice.et_Section, invoice.et_Doc, invoice.et_FiscalYear, invoice.et_DocNumber); if (linePend.ValorPendente > 0) { var lineSettlement = objSettlement.get_LinhaOfDocumento(linePend.CodSeccaoPend, linePend.AbrevTpDocPend, linePend.CodExercicioPend, linePend.NumeroPend); short IRS = 0; objSettlement.AlteraConfirmacao(lineSettlement.NumLinha, true, ref IRS); objSettlement.AlteraValorAtribuido(lineSettlement.NumLinha, (double)invoice.ep_value, ref IRS); linePend.Confirmacao = 1; int pagLin = 1; objSettlement.LinesPag[pagLin].AbrevTpMovPagTes = configs.SettlementType; var valid = objSettlement.Validate(); if (valid) { Eti.Aplicacao.Movimentos.MovLiquidacoes.Update(ref objSettlement); } if (!string.IsNullOrEmpty(objSettlement.EtiErrorCode) || !valid) { throw new Exception(objSettlement.EtiErrorDescription); } } } DataTable dtPayments = getPendingPayments(etiConn, From); return(Ok(dtPayments)); } catch (Exception ex) { etiConn.RollBackTrans(); return(BadRequest(ex.Message)); } finally { etiConn.Close(); } }