示例#1
0
        /// <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();
        }
示例#2
0
        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;
            }
        }
示例#3
0
        /// <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();
            }
        }