Beispiel #1
0
        public int GerarAtendimento(string GRV, Model.Atendimento.Atendimento Atendimento)
        {
            #region VERIFICAR SE JÁ EXISTE ATENDIMENTO
            Atendimento.id_atendimento =
                Funcoes
                .DataBase
                .GetInt(Business.Atendimento.Atendimento.Consultar(Convert.ToInt32(GRV)), "id_atendimento");

            if (Atendimento.id_atendimento != 0)
            {
                return(Atendimento.id_atendimento);
            }
            #endregion

            #region DECLARAÇÃO DE VARIÁVEIS
            Business.Sistema.Configuracoes.id_usuario = 1;
            var modelClientesDepositos            = new Model.Clientes.ClientesDepositosModel();
            var modelAtendimentoFotosResponsaveis = new Model.Atendimento.AtendimentoFotosResponsaveis();
            var modelGRV                          = new Model.GRV.GRV();
            var modelFaturamento                  = new Model.Faturamento.Faturamento();
            var modelCalculoFaturamento           = new Model.Faturamento.CalculoFaturamento();
            var modelCalculoDiarias               = new Model.GRV.CalculoDiarias();
            var modelParametrosCalculoFaturamento = new Model.Faturamento.CalcularFaturamentoParametros();
            //var Atendimento = new Model.Atendimento.Atendimento();
            #endregion DECLARAÇÃO DE VARIÁVEIS

            #region PREENCHIMENTO DA GRV
            modelGRV.id_grv = Convert.ToInt32(GRV);
            var dtGRV = Business.GRV.GRV.ConsultarRelacionado(modelGRV, null, null, Business.Sistema.Configuracoes.id_usuario);
            modelGRV.id_status_operacao    = Funcoes.DataBase.GetString(dtGRV, "id_status_operacao");
            modelGRV.id_cliente            = Funcoes.DataBase.GetInt(dtGRV, "id_cliente");
            modelGRV.id_deposito           = Funcoes.DataBase.GetInt(dtGRV, "id_deposito");
            modelGRV.data_hora_guarda      = Funcoes.DataBase.GetString(dtGRV, "data_hora_guarda");
            modelGRV.numero_formulario_grv = Funcoes.DataBase.GetString(dtGRV, "numero_formulario_grv");
            #endregion

            if (modelGRV.id_status_operacao.Equals("G"))
            {
                #region PREENCHIMENTO DO ATENDIMENTO
                Atendimento.id_grv = Convert.ToInt32(GRV);
                Atendimento.id_usuario_cadastro         = 1;
                Atendimento.id_qualificacao_responsavel = 1;                                         //PRÓPRIO
                Atendimento.id_usuario_cadastro         = Business.Sistema.Configuracoes.id_usuario; //ROOT
                Atendimento.responsavel_bairro          = Atendimento.nota_fiscal_bairro;
                Atendimento.responsavel_cep             = Atendimento.nota_fiscal_cep;
                Atendimento.responsavel_complemento     = Atendimento.nota_fiscal_complemento;
                Atendimento.responsavel_ddd             = Atendimento.nota_fiscal_ddd;
                Atendimento.responsavel_documento       = Atendimento.nota_fiscal_cpf;
                Atendimento.responsavel_endereco        = Atendimento.nota_fiscal_endereco;
                Atendimento.responsavel_municipio       = Atendimento.nota_fiscal_municipio;
                Atendimento.responsavel_nome            = Atendimento.nota_fiscal_nome;
                Atendimento.responsavel_numero          = Atendimento.nota_fiscal_numero;
                Atendimento.responsavel_telefone        = Atendimento.nota_fiscal_telefone;
                Atendimento.responsavel_uf           = Atendimento.nota_fiscal_uf;
                Atendimento.proprietario_bairro      = Atendimento.nota_fiscal_bairro;
                Atendimento.proprietario_cep         = Atendimento.nota_fiscal_cep;
                Atendimento.proprietario_complemento = Atendimento.nota_fiscal_complemento;
                Atendimento.proprietario_ddd         = Atendimento.nota_fiscal_ddd;
                Atendimento.proprietario_documento   = Atendimento.nota_fiscal_cpf;
                Atendimento.proprietario_endereco    = Atendimento.nota_fiscal_endereco;
                Atendimento.proprietario_municipio   = Atendimento.nota_fiscal_municipio;
                Atendimento.proprietario_nome        = Atendimento.nota_fiscal_nome;
                Atendimento.proprietario_numero      = Atendimento.nota_fiscal_numero;
                Atendimento.proprietario_telefone    = Atendimento.nota_fiscal_telefone;
                Atendimento.proprietario_uf          = Atendimento.nota_fiscal_uf;
                //Atendimento.data_alteracao = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                //Atendimento.data_cadastro = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                //Atendimento.data_impressao = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                //Atendimento.data_hora_inicio_atendimento = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

                Atendimento.data_alteracao = DateTime.Now.ToString();;
                Atendimento.data_cadastro  = DateTime.Now.ToString();;
                Atendimento.data_impressao = DateTime.Now.ToString();;
                Atendimento.data_hora_inicio_atendimento = DateTime.Now.ToString();

                Atendimento.total_impressoes++;
                #endregion

                #region PREENCHIMENTO DO CALCULO DE DIARIAS
                modelCalculoDiarias.data_hora_guarda = Funcoes.DataBase.GetDatetime(dtGRV, "data_hora_guarda");
                #endregion

                #region TRATAMENTO DO SAP
                try
                {
                    modelClientesDepositos = new Model.Clientes.ClientesDepositosModel()
                    {
                        id_cliente = modelGRV.id_cliente,

                        id_deposito = modelGRV.id_deposito
                    };

                    using (DataTable subConsulta = Business.Clientes.ClientesDepositosController.Consultar(modelClientesDepositos))
                    {
                        if (subConsulta == null)
                        {
                            ViewBag.Erro = "O CLIENTE ASSOCIADO AO GRV NÃO POSSUI DEPÓSITO ASSOCIADO.";
                        }

                        modelClientesDepositos.id_cliente = modelGRV.id_cliente;

                        modelClientesDepositos.id_deposito = modelGRV.id_deposito;

                        modelClientesDepositos.codigo_sap = Funcoes.DataBase.GetString(subConsulta, "codigo_sap");

                        modelClientesDepositos.codigo_sap_ordem_vendas = Funcoes.DataBase.GetString(subConsulta, "codigo_sap_ordem_vendas");
                    }
                }
                catch (Exception ex)
                {
                    ViewBag.Erro = "OCORREU UM ERRO AO SELECIONAR OS DADOS DA ASSOCIAÇÃO ENTRE CLIENTE E DEPÓSITO." + ex.Message;
                    return(-1);
                }

                // N = NÃO POSSUI CADASTRO SAP,
                // P = PENDENTE DE CADASTRO,
                // S = SOLICITAÇÃO DE CADASTRO ENVIADA,
                // F = CADASTRADO FINALIZADO

                var modelClientes = Business.Clientes.ClientesController.Consultar(modelGRV.id_cliente);

                if (string.IsNullOrWhiteSpace(modelClientesDepositos.codigo_sap))
                {
                    Atendimento.status_cadastro_sap = 'N';

                    Atendimento.status_cadastro_ordens_venda_sap = 'N';
                }

                else if (modelClientes.flag_emissao_nota_fiscal_sap == 'S')
                {
                    Atendimento.status_cadastro_sap = 'P';

                    Atendimento.status_cadastro_ordens_venda_sap = 'P';
                }

                else
                {
                    Atendimento.status_cadastro_sap = 'N';

                    Atendimento.status_cadastro_ordens_venda_sap = 'N';
                }
                #endregion SAP

                #region INICIAR TRANSAÇÃO
                try
                {
                    Business.Sistema.GlobalDataBase.BeginTransaction();
                }
                catch (Exception ex)
                {
                    ViewBag.Erro = "OCORREU UM ERRO AO INICIAR A TRANSAÇÃO COM O BANCO DE DADOS." + ex.Message;
                    return(-1);
                }
                #endregion INICIAR TRANSAÇÃO

                #region CADASTRAR ATENDIMENTO
                try
                {
                    Atendimento.id_atendimento = Business.Atendimento.Atendimento.Cadastrar(Atendimento);
                }
                catch (Exception ex)
                {
                    Business.Sistema.GlobalDataBase.RollbackTransaction();

                    ViewBag.Erro = "OCORREU UM ERRO AO CADASTRAR O ATENDIMENTO." + ex.Message;

                    return(-1);
                }
                #endregion CADASTRAR ATENDIMENTO

                #region CADASTRAR FATURAMENTO
                //try
                //{
                //    modelFaturamento.id_tipo_meio_cobranca = Funcoes.DataBase.GetInt(dtGRV, "id_tipo_meio_cobranca");

                //    modelParametrosCalculoFaturamento.id_grv = modelGRV.id_grv;

                //    modelParametrosCalculoFaturamento.id_tipo_meio_cobranca = modelFaturamento.id_tipo_meio_cobranca;

                //    modelParametrosCalculoFaturamento.id_usuario = Business.Sistema.Configuracoes.id_usuario;

                //    modelParametrosCalculoFaturamento.origemTipoComposicao = 'P'; // P = PÁTIO, L = LEILÃO

                //    modelParametrosCalculoFaturamento.flag_cadastrar_faturamento = true;

                //    modelParametrosCalculoFaturamento.dataHoraGuarda = Funcoes.DateTimeClass.SetSecond(modelCalculoDiarias.data_hora_guarda, 0);

                //    modelParametrosCalculoFaturamento.dataLiberacao = Funcoes.DateTimeClass.SetSecond(modelParametrosCalculoFaturamento.dataLiberacao, 0);

                //    modelParametrosCalculoFaturamento.listFaturamentoDesconto = new List<Model.Faturamento.FaturamentoDesconto>();

                //    modelCalculoFaturamento = Business.Faturamento.CalcularFaturamento.Calcular(modelParametrosCalculoFaturamento);

                //    modelFaturamento = modelCalculoFaturamento.modelFaturamento;
                //}
                //catch (Exception ex)
                //{
                //    Business.Sistema.GlobalDataBase.RollbackTransaction();

                //    ViewBag.Erro = "OCORREU UM ERRO AO CADASTRAR O FATURAMENTO." + ex.Message;

                //    return -1;
                //}
                #endregion

                #region ATUALIZAR RENAVAM
                try
                {
                    modelGRV.id_grv = Atendimento.id_grv;

                    //TODO: BUSCAR RENAVAM
                    //modelGRV.renavam = txtProprietarioRenavam.Text;

                    Business.GRV.GRV.AtualizarRenavam(modelGRV.id_grv, modelGRV.renavam, Business.Sistema.Configuracoes.id_usuario);
                }
                catch (Exception ex)
                {
                    Business.Sistema.GlobalDataBase.RollbackTransaction();

                    ViewBag.Erro = "OCORREU UM ERRO AO ATUALIZAR O RENAVAM." + ex.Message;

                    return(-1);
                }
                #endregion

                #region ATUALIZAR O STATUS DO GRV PARA AGUARDANDO PAGAMENTO
                try
                {
                    modelGRV.id_grv = Atendimento.id_grv;

                    modelGRV.id_status_operacao = "L";

                    Business.GRV.GRV.AtualizarStatusOperacao(modelGRV.id_grv, modelGRV.id_status_operacao, 1);
                }
                catch (Exception ex)
                {
                    Business.Sistema.GlobalDataBase.RollbackTransaction();

                    ViewBag.Erro = "OCORREU UM ERRO AO ATUALIZAR O STATUS DA OPERAÇÃO." + ex.Message;

                    return(-1);
                }
                #endregion ATUALIZAR O STATUS DO GRV PARA AGUARDANDO PAGAMENTO

                #region FINALIZAR TRANSAÇÃO
                try
                {
                    Business.Sistema.GlobalDataBase.CommitTransaction();
                }
                catch (Exception ex)
                {
                    Business.Sistema.GlobalDataBase.RollbackTransaction();

                    ViewBag.Erro = "OCORREU UM ERRO AO FINALIZAR A TRANSAÇÃO COM O BANCO DE DADOS." + ex.Message;

                    return(-1);
                }
                #endregion FINALIZAR TRANSAÇÃO
            }

            try
            {
                return(Atendimento.id_atendimento);
            }
            catch (Exception ex)
            {
                ViewBag.Erro = "OCORREU UM ERRO AO GERAR O ATENDIMENTO." + ex.Message;
                return(-1);
            }
        }
Beispiel #2
0
        private int GerarFaturamento(string IdGRV)
        {
            #region DECLARAÇÃO DE VARIÁVEIS
            var modelGRV = new Model.GRV.GRV();
            var modelParametrosCalculoFaturamento = new Model.Faturamento.CalcularFaturamentoParametros();
            var modelFaturamento        = new Model.Faturamento.Faturamento();
            var modelCalculoFaturamento = new Model.Faturamento.CalculoFaturamento();
            Business.Sistema.Configuracoes.id_usuario = 1;
            #endregion

            #region CONSULTAR GRV
            modelGRV.id_grv = Convert.ToInt32(IdGRV);
            var dtGRV = Business.GRV.GRV.ConsultarRelacionado(modelGRV, null, null, Business.Sistema.Configuracoes.id_usuario);
            #endregion

            #region INICIAR TRANSAÇÃO
            try
            {
                Business.Sistema.GlobalDataBase.BeginTransaction();
            }
            catch (Exception ex)
            {
                throw new Exception("Ocorreu um erro ao iniciar a transação com o Banco de Dados." + ex.Message);
            }
            #endregion INICIAR TRANSAÇÃO

            #region CADASTRAR FATURAMENTO
            try
            {
                modelParametrosCalculoFaturamento.id_grv = Convert.ToInt32(IdGRV);

                modelParametrosCalculoFaturamento.id_tipo_meio_cobranca = Funcoes.DataBase.GetInt(dtGRV, "id_tipo_meio_cobranca");

                modelParametrosCalculoFaturamento.id_usuario = Business.Sistema.Configuracoes.id_usuario;

                modelParametrosCalculoFaturamento.origemTipoComposicao = 'P'; // P = PÁTIO, L = LEILÃO

                modelParametrosCalculoFaturamento.flag_cadastrar_faturamento = true;



                modelParametrosCalculoFaturamento.dataHoraGuarda = Funcoes.DateTimeClass.SetSecond(Funcoes.DataBase.GetDatetime(dtGRV, "data_hora_guarda"), 0);
                //modelParametrosCalculoFaturamento.dataHoraGuarda = Funcoes.DataBase.GetDatetime(dtGRV, "data_hora_guarda");

                modelParametrosCalculoFaturamento.dataLiberacao = Funcoes.DateTimeClass.SetSecond(modelParametrosCalculoFaturamento.dataLiberacao, 0);
                //modelParametrosCalculoFaturamento.dataLiberacao = modelParametrosCalculoFaturamento.dataLiberacao;

                modelParametrosCalculoFaturamento.dataLiberacao = DateTime.Now;

                modelParametrosCalculoFaturamento.listFaturamentoDesconto = new List <Model.Faturamento.FaturamentoDesconto>();

                //modelCalculoFaturamento = Business.Faturamento.CalcularFaturamento.Calcular(modelParametrosCalculoFaturamento);
                modelCalculoFaturamento = Business.Calculos.Faturamento.Calcular(modelParametrosCalculoFaturamento);

                modelFaturamento = modelCalculoFaturamento.modelFaturamento;
            }
            catch (Exception ex)
            {
                Business.Sistema.GlobalDataBase.RollbackTransaction();

                throw new Exception("Ocorreu um erro ao cadastrar o Faturamento." + ex.Message);
            }
            #endregion

            #region FINALIZAR TRANSAÇÃO
            try
            {
                Business.Sistema.GlobalDataBase.CommitTransaction();
            }
            catch (Exception ex)
            {
                Business.Sistema.GlobalDataBase.RollbackTransaction();

                throw new Exception("Ocorreu um erro ao finalizar a transação com o Banco de Dados." + ex.Message);
            }
            #endregion FINALIZAR TRANSAÇÃO

            return(modelFaturamento.id_faturamento);
        }