export class NegociacaoController {
private inputData: HTMLInputElement;
private inputQuantidade: HTMLInputElement;
private inputValor: HTMLInputElement;
private negociacoes = new Negociacoes();
private negociacoesView = new NegociacoesView('#negociacoesView');
private mensagemView = new MensagemView('#mensagemView');
private readonly DOMINGO = 0;
private readonly SABADO = 6;
constructor(){
this.inputData = document.querySelector('#data');
this.inputQuantidade = document.querySelector('#quantidade');
this.inputValor = document.querySelector('#valor');
this.negociacoesView.update(this.negociacoes);
this.mensagemView = new MensagemView('#mensagemView');
}
public adiciona(): void{
const negociacao = this.criaNegociacao();
if(!this.ehDiaUtil(negociacao._data)){
this.mensagemView.update('Apenas negociações em dias úteis são aceitas');
return ;
}
this.negociacoes.adiciona(negociacao);
this.limparFormulario();
this.atualizaView();
}
private ehDiaUtil(data: Date){
return data.getDay() > this.DOMINGO && data.getDay() < this.SABADO;
}
private criaNegociacao(): Negociacao{
const exp = /—/g;
const date = new Date(this.inputData.value.replace(exp, ','));
const quantidade = parseInt(this.inputQuantidade.value);
const valor = parseFloat(this.inputValor.value);
return new Negociacao(date, quantidade, valor);
}
}
O meu código do negociacao-controller está desta forma, funcionando do jeito certo até adicionar o método ehDiaUtil, depois disso, ao adicionar uma negociação na tabela é inserido o dia anterior a ele, por sinal, funcionando a verificação se esse dia anterior for um final de semana.