[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 );
}