Ejemplo n.º 1
0
        private EstruturaCancelamento CarregarEstruturaCancelamento(CancelamentoLoteModel cancelLoteModel, DbTransaction dbtrans, CTLib.BD bd)
        {
            CancelamentoLoteDadosCancelamento cancelLoteDados = ado.CarregarDadosVendaCancelamento(cancelLoteModel.IngressosID, dbtrans);
            CancelamentoLoteValoresPendentes  cancelValores;
            Troca troca = new Troca();

            //Pendentes
            if (cancelLoteModel.TemDevolucao)
            {
                cancelValores = ado.CarregarValoresDadosPendentes(cancelLoteModel.IngressosID, dbtrans);

                if (!cancelLoteModel.EstornarEntrega)
                {
                    cancelValores.EntregaValor = 0;
                }
                if (!cancelLoteModel.EstornarSeguro)
                {
                    cancelValores.SeguroValor = 0;
                }
                if (!cancelLoteModel.EstornarConveniencia)
                {
                    cancelValores.ConvenienciaValor = 0;
                }
            }
            else
            {
                var dados = troca.CalculaValoresTrocaIngresso(cancelLoteModel.IngressosID, cancelLoteDados.VendaBilheteriaIDVenda, bd).AsEnumerable();
                cancelValores = new CancelamentoLoteValoresPendentes();
                cancelValores.EntregaValor      = dados.Select(x => x.Field <decimal>("ValorEntrega")).FirstOrDefault();
                cancelValores.SeguroValor       = dados.Select(x => x.Field <decimal>("ValorSeguro")).FirstOrDefault();
                cancelValores.ConvenienciaValor = dados.Sum(x => x.Field <decimal>("ValorConveniencia"));
                cancelValores.IngressoValor     = dados.Sum(x => x.Field <decimal>("ValorIngressos"));
            }
            DataSet dadosItensEIngressosVendidos = troca.MontaDadosItensEIngressosVendidosTrocaCredito(cancelLoteModel.IngressosID, bd);

            EstruturaCancelamento estruturaCancelamento = new EstruturaCancelamento
            {
                CaixaID                    = cancelLoteModel.CaixaID,
                LojaID                     = cancelLoteModel.LojaID,
                CanalID                    = cancelLoteModel.CanalID,
                UsuarioID                  = cancelLoteModel.UsuarioID,
                EmpresaID                  = cancelLoteModel.EmpresaID,
                ClienteID                  = cancelLoteDados.ClienteID,
                ValorEntregaEstornado      = cancelValores.EntregaValor,
                EntregaControleID          = cancelLoteModel.EstornarEntrega ? cancelLoteDados.EntregaControleID : 0,
                EntregaAgendaID            = cancelLoteModel.EstornarEntrega ? cancelLoteDados.EntregaAgendaID : 0,
                SenhaVenda                 = cancelLoteDados.SenhaVenda,
                ValorConvenienciaEstornada = cancelValores.ConvenienciaValor,
                ValorIngressosEstornado    = cancelValores.IngressoValor,
                ValorSeguroEstornado       = cancelValores.SeguroValor,

                ValorConvenienciaTotal = cancelLoteDados.ValorConvenienciaTotal,
                ValorEntregaTotal      = cancelLoteDados.ValorEntregaTotal,
                ValorIngressosTotal    = cancelLoteDados.ValorIngressosTotal,
                ValorSeguroTotal       = cancelLoteDados.ValorSeguroTotal,

                TipoCancelamento       = cancelLoteModel.TipoCancelamento,
                CancelamentoFraude     = cancelLoteDados.Fraude,
                VendaBilheteriaIDVenda = cancelLoteDados.VendaBilheteriaIDVenda,
                TemDevolucao           = cancelLoteModel.TemDevolucao,
                EhCanalPresente        = !(cancelLoteModel.TemDevolucao),
                SupervisorID           = cancelLoteModel.SupervisorID,
                LocalID                = cancelLoteModel.LocalID,
                MotivoCancelamento     = cancelLoteModel.MotivoCancelamento,
                SubMotivoCancelamento  = cancelLoteModel.SubMotivoCancelamento,
                DadosItensVendidos     = dadosItensEIngressosVendidos.Tables["Grid"],
                DadosIngressosVendidos = dadosItensEIngressosVendidos.Tables["Reserva"],
                FormaDevolucao         = cancelLoteModel.FormaDevolucao,
                DadosEstornoCC         = cancelLoteModel.dadosCartaoCredito,
                DadosDeposito          = cancelLoteModel.dadosBancarios
            };

            return(estruturaCancelamento);
        }