Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
7.9 kB
18
Indexable
 [HttpPost, ValidateAntiForgeryToken]
        public IActionResult FuncionarioConvenioSalvarImportacao( [Bind] List<FuncionarioConvenio> funcionarioConvenios )
        {
            return RedirectToAction( nameof( FuncionarioConvenioIndex ) );
        }

        [HttpPost]
        public IActionResult FuncionarioConvenioDelete( [Bind] FuncionarioConvenio funcionarioConvenio )
        {
            return RedirectToAction( nameof( FuncionarioConvenioIndex ) );
        }

        public IActionResult ImportarPlanilhaFuncionarioConvenio()
        {
            if( ViewBag.EmpresaConvenio == null )
                DropDownEmpresaConvenio();

            return View();
        }

        public async Task<IActionResult> EnviarPlanilhaFuncionarioConvenio( IFormFile file, int IdempresaConvenio, int IdconvenioRegra )
        {
            string diretorio = webUtil.DiretorioTemporario() + file.FileName;
            await webUtil.CopiandoArquivoStream( diretorio, file.OpenReadStream() );
            var ds = webUtil.LerCSV( diretorio, true );
            IList<FuncionarioConvenio> list = new List<FuncionarioConvenio>();

            if( ds.Tables.Count > 1 )
            {
                ViewBag.ErroImportacao = Convert.ToString( ds.Tables[ 1 ].Rows[ 0 ][ "Descricao" ] );

                return RedirectToAction( nameof( ImportarPlanilhaFuncionarioConvenio ) );
            }
            else
            {
                if( ds.Tables[ 0 ].Columns.Count != 7 )
                {
                    ViewBag.ErroImportacao = "Quantidade de colunas inválidas";

                    return RedirectToAction( nameof( ImportarPlanilhaFuncionarioConvenio ) );
                }

                bool erro = false;

                for( int i = 0; i < ds.Tables[ 0 ].Rows.Count; i++ )
                {
                    var dr = ds.Tables[ 0 ].Rows[ i ];

                    if( string.IsNullOrEmpty( dr[ 0 ].ToString() ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Matricula não pode estar vazia";

                        break;
                    }

                    if( !webUtil.VerificarNumero( Convert.ToString( dr[ 0 ] ) ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Matricula contém valores inválidos!";

                        break;
                    }

                    if( string.IsNullOrEmpty( dr[ 1 ].ToString() ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Número do Cartão não pode estar vazia";

                        break;
                    }

                    if( !webUtil.VerificarNumero( Convert.ToString( dr[ 1 ] ) ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Número do Cartão contém valores inválidos!";

                        break;
                    }

                    if( !string.IsNullOrEmpty( dr[ 2 ].ToString() ) && !webUtil.VerificarNumero( Convert.ToString( dr[ 2 ] ) ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Número do Documento contém valores inválidos!";

                        break;
                    }

                    if( string.IsNullOrEmpty( dr[ 3 ].ToString() ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Nome não pode estar vazia";

                        break;
                    }

                    if( webUtil.VerificarNumero( Convert.ToString( dr[ 3 ] ) ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Nome não pode conter numeros";

                        break;
                    }

                    if( string.IsNullOrEmpty( dr[ 4 ].ToString() ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Limite de Crédito não pode estar vazia";

                        break;
                    }

                    if( !webUtil.VerificarNumero( Convert.ToString( dr[ 4 ] ).Replace( ",", null ).Replace( ".", null ) ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Limite de Crédito deve conter apenas numeros";

                        break;
                    }

                    if( string.IsNullOrEmpty( dr[ 5 ].ToString() ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Vencimento não pode estar vazia";

                        break;
                    }

                    if( !webUtil.VerificarNumero( Convert.ToString( dr[ 5 ] ) ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Vencimento deve conter números";

                        break;
                    }

                    if( string.IsNullOrEmpty( dr[ 6 ].ToString() ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Bloqueio não pode estar vazia";

                        break;
                    }

                    if( !Convert.ToString( dr[ 6 ] ).ToUpper().Equals( "S" ) && !Convert.ToString( dr[ 6 ] ).ToUpper().Equals( "N" ) )
                    {
                        erro = true;
                        ViewBag.ErroImportacao = "A coluna Bloqueio devem conter a letra S ou N";

                        break;
                    }

                    FuncionarioConvenio fc = funcionarioConvenioRepository.Get( x => x.IdempresaConvenio == IdempresaConvenio && x.NroCartao == Convert.ToString( dr[ 1 ] ) );

                    if( fc == null )
                    {
                        fc = new FuncionarioConvenio
                        {
                            IdempresaConvenio = IdempresaConvenio,
                            IdconvenioRegra = IdconvenioRegra,
                            Matricula = Convert.ToString( dr[ 0 ] ),
                            NroCartao = Convert.ToString( dr[ 1 ] ),
                            NroDocumento = Convert.ToString( dr[ 2 ] ),
                            Nome = webUtil.CorrigirTexto( Convert.ToString( dr[ 3 ] ) ),
                            VlrLimiteCredito = Convert.ToDecimal( dr[ 4 ].ToString().Replace( ",", "." ) ),
                            VlrLimiteUtilizado = 0,
                            DiaVencFat = Convert.ToInt32( dr[ 5 ] ),
                            Bloqueado = Convert.ToString( dr[ 6 ] ) == "S",
                        };
                    }
                    else
                    {
                        fc.IdconvenioRegra = IdconvenioRegra;
                        fc.Matricula = Convert.ToString( dr[ 0 ] );
                        fc.NroDocumento = Convert.ToString( dr[ 2 ] );
                        fc.Nome = webUtil.CorrigirTexto( Convert.ToString( dr[ 3 ] ) );
                        fc.VlrLimiteCredito = Convert.ToDecimal( dr[ 4 ].ToString().Replace( ",", "." ) );
                        fc.DiaVencFat = Convert.ToInt32( dr[ 5 ] );
                        fc.Bloqueado = Convert.ToString( dr[ 6 ] ) == "S";
                    }

                    list.Add( fc );
                }

                if( erro )
                    return RedirectToAction( nameof( ImportarPlanilhaFuncionarioConvenio ) );
            }

            return View( nameof( VisualizarPlanilhaFuncionarioConvenio ), list );
        }