コード例 #1
0
ファイル: Venda.cs プロジェクト: icaroferj/ir-api
        public static RetornoModel <string[]> EfetuaVendaExterna(CompraModel compra, CompraPagamentoExternoModel compraPagamento)
        {
            var oCarrinho  = new Carrinho();
            var bilheteria = new IRLib.Bilheteria();

            var retornoMSG = "Ok";

            try
            {
                int    clienteId = compra.ClienteID;
                string sessionId = compra.SessionID;

                var oCliente = new Cliente();
                oCliente.Ler(clienteId);

                RetornoModel <EstruturaReservaInternet> reservaInternet = MontarEstruturaReservaExterno(compraPagamento, compra);
                if (!reservaInternet.Sucesso)
                {
                    LogUtil.Error(string.Format("##EfetuaVendaExterna.ERROR## SESSION {0}, MSG {1}", compra.SessionID, reservaInternet.Mensagem));
                    return(new RetornoModel <string[]>()
                    {
                        Sucesso = false, Mensagem = reservaInternet.Mensagem
                    });
                }

                if (reservaInternet.Retorno.CaixaID == 0)
                {
                    reservaInternet.Retorno.CaixaID = bilheteria.VerificaCaixaInternet(reservaInternet.Retorno.UsuarioID, reservaInternet.Retorno.LojaID);
                }

                var oPagamento   = EstruturaPagamentoExterno.Montar(compraPagamento.formaPagamento.IR_FormaPagamentoID, compraPagamento.valor, compraPagamento.formaPagamento.Parcelas, compraPagamento.codigoAutorizacao, compraPagamento.NSU, compraPagamento.IP, compraPagamento.formaPagamento.Nome);
                var retornoVenda = bilheteria.VenderExterno(oPagamento, oCarrinho.IngressosTaxasCarrinho(clienteId, sessionId), clienteId, sessionId, reservaInternet.Retorno);

                LogUtil.Info(string.Format("##EfetuaVendaExterna.SUCCESS## SESSION {0}, SENHA {1}", compra.SessionID, retornoVenda));
                return(new RetornoModel <string[]>()
                {
                    Sucesso = true, Mensagem = retornoMSG, Retorno = retornoVenda
                });
            }
            catch (ApplicationException ex)
            {
                LogUtil.Error(ex);
                return(new RetornoModel <string[]> {
                    Sucesso = false, Mensagem = ex.Message
                });
            }
        }
コード例 #2
0
ファイル: Venda.cs プロジェクト: icaroferj/ir-api
        public static RetornoModel <EstruturaReservaInternet> MontarEstruturaReservaExterno(CompraPagamentoExternoModel pagamento, CompraModel compra)
        {
            if (compra.EstruturaVenda == null)
            {
                compra.EstruturaVenda = new CompraEstruturaVendaModel();
            }

            if (compra.EstruturaVenda.CanalID == 0 || compra.EstruturaVenda.LojaID == 0 || compra.EstruturaVenda.UsuarioID == 0)
            {
                int canalTipoPOS;
                int.TryParse(ConfiguracaoAppUtil.Get("CanalTipoPOS"), out canalTipoPOS);
                compra.EstruturaVenda.LojaID    = Convert.ToInt32(ConfiguracaoAppUtil.Get(enumConfiguracaoBO.POSLojaID));
                compra.EstruturaVenda.UsuarioID = Convert.ToInt32(ConfiguracaoAppUtil.Get(enumConfiguracaoBO.POSUsuarioID));
                compra.EstruturaVenda.CanalID   = Convert.ToInt32(ConfiguracaoAppUtil.Get(enumConfiguracaoBO.CanalPOS));
                compra.EstruturaVenda.CanalTipo = canalTipoPOS;
            }

            var estrutura = new EstruturaReservaInternet()
            {
                CaixaID   = compra.EstruturaVenda.CaixaID,
                LojaID    = compra.EstruturaVenda.LojaID,
                UsuarioID = compra.EstruturaVenda.UsuarioID,
                CanalID   = compra.EstruturaVenda.CanalID,
                ClienteID = compra.ClienteID,
                SessionID = compra.SessionID,
                GUID      = Guid.NewGuid().ToString(),
            };

            return(new RetornoModel <EstruturaReservaInternet>()
            {
                Mensagem = "OK", Sucesso = true, Retorno = estrutura
            });
        }