com.automaster.client.ui.paineis.tabs.financeiro.dialogs.EditarJurosFatura.java Source code

Java tutorial

Introduction

Here is the source code for com.automaster.client.ui.paineis.tabs.financeiro.dialogs.EditarJurosFatura.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.automaster.client.ui.paineis.tabs.financeiro.dialogs;

import com.automaster.client.Info;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Timer;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.AnimationEffect;
import com.smartgwt.client.types.CharacterCasing;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.events.CloseClickEvent;
import com.smartgwt.client.widgets.events.CloseClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
import com.smartgwt.client.widgets.form.fields.events.KeyPressEvent;
import com.smartgwt.client.widgets.form.fields.events.KeyPressHandler;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.HLayout;
import java.util.ArrayList;
import java.util.TreeMap;

/**
 *
 * @author Adriano
 */
public class EditarJurosFatura extends Window {

    private int contador;
    private String campo;
    private boolean flagItemValor = false;
    //private String novoJurosEmultaApagar="";
    private double novototalFaturas = 0;

    public EditarJurosFatura(final ListGrid listFaturas, final ListGridRecord fatRecord,
            final ArrayList<TreeMap<String, String>> arrayFaturasBD, final Label labelfaturasApagar,
            final double totalFaturasApagar, final NovoLancamento objLancamento) {
        //novototalFaturas = totalFaturasApagar;       
        //GWT.log("codCliente"+fatRecord.getAttributeAsString("dataFatura"));
        setTitle("Editar Fatura");
        setWidth(400);
        setHeight(275);
        setShowMinimizeButton(false);
        setIsModal(true);
        setShowModalMask(true);
        centerInPage();
        setLayoutAlign(Alignment.CENTER);

        final DynamicForm formEditarFatura = new DynamicForm();
        formEditarFatura.setAutoFocus(true);
        formEditarFatura.setWidth(350);

        Label label = new Label("<strong><h3>Editar juros e multa da fatura</h3></strong>");
        label.setAlign(Alignment.CENTER);
        //label.setHeight(20);

        //        final DateItem itemData = new DateItem("data", "Data");
        //        itemData.setRequired(true);
        //        itemData.setUseMask(true);
        //        itemData.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
        //        itemData.setValue(fatRecord.getAttributeAsString("dataFatura"));
        //        itemData.setHint("<nbr>*</nbr>");
        //        itemData.setWidth(350);
        //        itemData.setDisabled(true);
        //
        //        final TextItem itemValor = new TextItem();
        //        itemValor.setTitle("Valor");
        //        itemValor.setName("valor");
        //        itemValor.setRequired(true);
        //        itemValor.setHint("<nbr>*</nbr>");
        //        itemValor.setValue(fatRecord.getAttributeAsString("valor"));
        //        itemValor.setCharacterCasing(CharacterCasing.UPPER);
        //        itemValor.setWidth(350);
        //        itemValor.setHint("<nbr>*</nbr>");
        //        itemValor.setDisabled(true);
        //        
        //        final TextItem itemMes = new TextItem();
        //        itemMes.setTitle("Ms de ref.");
        //        itemMes.setName("mes");
        //        itemMes.setMask(">LLL/####");
        //        itemMes.setRequired(true);
        //        itemMes.setHint("<nbr>*</nbr>");
        //        itemMes.setMaskSaveLiterals(true);
        //        itemMes.setCharacterCasing(CharacterCasing.UPPER);
        //        itemMes.setWidth(350);
        //        itemMes.setHint("<nbr>*</nbr>");
        //        itemMes.setValue(fatRecord.getAttributeAsString("mesReferencia"));
        //        itemMes.setDisabled(true);
        //        
        //        final TextItem itemValorTotal = new TextItem();
        //        itemValorTotal.setTitle("Valor total");
        //        itemValorTotal.setName("valorTotal");
        //        itemValorTotal.setMaskPromptChar("0");
        //        itemValorTotal.setRequired(true);
        //        itemValorTotal.setHint("<nbr>*</nbr>");
        //        itemValorTotal.setMaskSaveLiterals(true);
        //        itemValorTotal.setCharacterCasing(CharacterCasing.UPPER);
        //        itemValorTotal.setWidth(350);
        //        itemValorTotal.setHint("<nbr>*</nbr>");
        //        itemValorTotal.setValue(fatRecord.getAttributeAsString("valorTotal"));
        //        itemValorTotal.setDisabled(true);
        //        
        //        final TextItem itemValorpago = new TextItem();
        //        itemValorpago.setTitle("Valor Pago");
        //        itemValorpago.setName("valorPago");
        //        itemValorpago.setMaskPromptChar("0");
        //        itemValorpago.setRequired(true);
        //        itemValorpago.setHint("<nbr>*</nbr>");
        //        itemValorpago.setMaskSaveLiterals(true);
        //        itemValorpago.setCharacterCasing(CharacterCasing.UPPER);
        //        itemValorpago.setWidth(350);
        //        itemValorpago.setHint("<nbr>*</nbr>");
        //        itemValorpago.setValue(fatRecord.getAttributeAsString("valorPago"));
        //        itemValorpago.setDisabled(true);
        final TextItem itemJurosEmultaDesabilitado = new TextItem();
        itemJurosEmultaDesabilitado.setTitle("taxa atual");
        itemJurosEmultaDesabilitado.setName("jurosEmultaDesabilitado");
        itemJurosEmultaDesabilitado.setRequired(true);
        itemJurosEmultaDesabilitado.setHint("<nbr>*</nbr>");
        itemJurosEmultaDesabilitado.setMaskSaveLiterals(true);
        itemJurosEmultaDesabilitado.setCharacterCasing(CharacterCasing.UPPER);
        itemJurosEmultaDesabilitado.setWidth(200);
        itemJurosEmultaDesabilitado.setHint("<nbr>*</nbr>");
        itemJurosEmultaDesabilitado.setDisabled(true);
        itemJurosEmultaDesabilitado.setValue(fatRecord.getAttribute("jurosEmulta"));

        final TextItem itemJurosEmulta = new TextItem();
        itemJurosEmulta.setTitle("nova taxa");
        itemJurosEmulta.setName("jurosEmulta");
        itemJurosEmulta.setRequired(true);
        itemJurosEmulta.setHint("<nbr>*</nbr>");
        itemJurosEmulta.setMaskSaveLiterals(true);
        itemJurosEmulta.setCharacterCasing(CharacterCasing.UPPER);
        itemJurosEmulta.setWidth(200);
        itemJurosEmulta.setHint("<nbr>*</nbr>");
        itemJurosEmulta.setValue(fatRecord.getAttribute("jurosEmulta"));
        itemJurosEmulta.addKeyPressHandler(new KeyPressHandler() {
            @Override
            public void onKeyPress(KeyPressEvent event) {
                String tecla;
                tecla = event.getKeyName();
                //GWT.log("Tecla "+ tecla + " KeyCod = " + event.getCharacterValue());
                //GWT.log("Objeto JavaScript "+ Info.FormataMoeda(itemValor.getValueAsString(), ".", ",", tecla));
                String aux = "";
                if (event.getCharacterValue() != null && event.getCharacterValue() >= 48
                        && event.getCharacterValue() <= 57) {
                    aux = Info.FormataMoeda(
                            (itemJurosEmulta.getDisplayValue() != null) ? itemJurosEmulta.getDisplayValue() : "0",
                            ".", ",", tecla);
                    flagItemValor = true;
                }
                //GWT.log("Aux="+aux);
                campo = aux;
            }
        });
        itemJurosEmulta.addChangedHandler(new ChangedHandler() {
            @Override
            public void onChanged(ChangedEvent event) {
                //com.google.gwt.core.shared.GWT.log("Entrou no changed: "+campo);
                if (flagItemValor) {
                    itemJurosEmulta.setValue(campo);
                }
                flagItemValor = false;
            }
        });

        final TextItem itemValorApagar = new TextItem();
        itemValorApagar.setTitle("Valor a pagar");
        itemValorApagar.setName("valorApagar");
        itemValorApagar.setMaskPromptChar("0");
        itemValorApagar.setRequired(true);
        itemValorApagar.setHint("<nbr>*</nbr>");
        itemValorApagar.setMaskSaveLiterals(true);
        itemValorApagar.setCharacterCasing(CharacterCasing.UPPER);
        itemValorApagar.setWidth(350);
        itemValorApagar.setHint("<nbr>*</nbr>");
        itemValorApagar.setValue(fatRecord.getAttributeAsString("valorApagar"));
        //GWT.log("record.getAttributeAsString(\"valorApagar\"): "+fatRecord.getAttributeAsString("valorApagar"));

        formEditarFatura.setItems(itemJurosEmultaDesabilitado, itemJurosEmulta);

        HLayout hButoes = new HLayout();
        hButoes.setWidth(100);
        hButoes.setMembersMargin(3);
        hButoes.setLayoutAlign(Alignment.CENTER);
        IButton salvar = new IButton("Salvar");
        hButoes.setMargin(5);
        hButoes.addMember(salvar);

        addCloseClickHandler(new CloseClickHandler() {

            @Override
            public void onCloseClick(CloseClickEvent event) {
                destroy();
            }
        });

        salvar.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                if (formEditarFatura.validate()) {
                    if (Double.parseDouble(itemJurosEmulta.getDisplayValue().replaceAll("\\.", "").replaceAll(",",
                            "\\.")) <= Double
                                    .parseDouble((fatRecord.getAttributeAsString("jurosEmulta")
                                            .replaceAll("\\.", "").replaceAll(",", "\\.")))) {
                        contador = 0;
                        final Window janelaCarregando = new Window();
                        janelaCarregando.setShowTitle(false);
                        janelaCarregando.setWidth(100);
                        janelaCarregando.setHeight(50);
                        janelaCarregando.setShowEdges(false);
                        janelaCarregando.setShowCloseButton(false);
                        janelaCarregando.setShowMinimizeButton(false);
                        janelaCarregando.setIsModal(true);
                        janelaCarregando.setShowModalMask(true);
                        janelaCarregando.centerInPage();
                        janelaCarregando.setLayoutAlign(Alignment.CENTER);
                        final Label mensagem = new Label("Carregando..");
                        mensagem.setHeight(16);

                        new Timer() {
                            public void run() {

                                if (contador != 100) {

                                    contador += 1 + (int) (5 * Math.random());
                                    schedule(1 + (int) (50 * Math.random()));
                                    mensagem.setContents("Carregando: " + contador + "%");

                                    janelaCarregando.addItem(mensagem);
                                    janelaCarregando.setAnimateTime(1200);
                                    janelaCarregando.animateShow(AnimationEffect.FADE);

                                    if (contador >= 100) {
                                        mensagem.setContents("Carregando: 100%");
                                        //GWT.log(itemJurosEmulta.getDisplayValue());
                                        //GWT.log(": "+novoJurosEmultaApagar);
                                        double valor = Double.parseDouble(fatRecord.getAttributeAsString("valor")
                                                .replaceAll("\\.", "").replaceAll(",", "\\."));
                                        double antigoValorApagar = Double
                                                .parseDouble(fatRecord.getAttributeAsString("valorApagar")
                                                        .replaceAll("\\.", "").replaceAll(",", "\\."));
                                        //GWT.log("valorApagar record antigo: "+fatRecord.getAttributeAsString("valorApagar"));
                                        //novoJurosEmultaApagar = itemJurosEmulta.getDisplayValue().replaceAll("\\.", "").replaceAll("\\.", "");                                        
                                        double valorPago = Double
                                                .parseDouble(fatRecord.getAttributeAsString("valorPago")
                                                        .replaceAll("\\.", "").replaceAll(",", "\\."));
                                        double jurosEmultaAtual = Double.parseDouble(itemJurosEmulta
                                                .getDisplayValue().replaceAll("\\.", "").replaceAll(",", "\\."));
                                        //GWT.log("jurosEmultaAtual: " + jurosEmultaAtual);
                                        double novoValorApagar = valor - valorPago + jurosEmultaAtual;
                                        novototalFaturas = novoValorApagar
                                                + (totalFaturasApagar - antigoValorApagar);
                                        //GWT.log("totalFaturasApagar: " + totalFaturasApagar);
                                        //GWT.log("antigoValorApagar: " + antigoValorApagar);
                                        //GWT.log("jurosEmulta: " + novoJurosEmultaApagar);
                                        //GWT.log("novototalFaturas: " + novototalFaturas);
                                        fatRecord.setAttribute("jurosEmulta",
                                                Info.formataSaldo(Info.formataDecimal(jurosEmultaAtual)));
                                        fatRecord.setAttribute("valorTotal",
                                                Info.formataSaldo(Info.formataDecimal(novoValorApagar)));
                                        fatRecord.setAttribute("valorApagar",
                                                Info.formataSaldo(Info.formataDecimal(novoValorApagar)));
                                        listFaturas.refreshRow(listFaturas.getRecordIndex(fatRecord));
                                        labelfaturasApagar.redraw();
                                        labelfaturasApagar.setContents(
                                                "<strong style=\"font-size:22px; color:red;\">total de dbito: - R$"
                                                        + Info.formataSaldo(Info.formataDecimal(novototalFaturas))
                                                        + "  </strong>");
                                        arrayFaturasBD.get(listFaturas.getRecordIndex(fatRecord)).put("jurosEmulta",
                                                String.valueOf(
                                                        Info.formataSaldo(Info.formataDecimal(jurosEmultaAtual))));
                                        //GWT.log("jurosEmulta arrayBD"+ arrayFaturasBD.get(listFaturas.getRecordIndex(fatRecord)).get("jurosEmulta"));
                                        arrayFaturasBD.get(listFaturas.getRecordIndex(fatRecord)).put("valorTotal",
                                                String.valueOf(
                                                        Info.formataSaldo(Info.formataDecimal(novoValorApagar))));
                                        arrayFaturasBD.get(listFaturas.getRecordIndex(fatRecord)).put("valorApagar",
                                                String.valueOf(
                                                        Info.formataSaldo(Info.formataDecimal(novoValorApagar))));
                                        //GWT.log("valorApagar arrayBD"+ arrayFaturasBD.get(listFaturas.getRecordIndex(fatRecord)).get("valorApagar"));
                                        janelaCarregando.addItem(mensagem);
                                        janelaCarregando.setAnimateTime(1200);
                                        janelaCarregando.animateHide(AnimationEffect.FADE);
                                        objLancamento.setTotalFaturasApagar(novototalFaturas);
                                        contador = 100;
                                        destroy();
                                    }
                                } else {
                                    contador = 0;
                                }

                            }
                        }.schedule(50);

                    } else {
                        SC.warn("O desconto  maior que o valor da multa e os juros!");
                        formEditarFatura.focusInItem(itemJurosEmulta);
                        itemJurosEmulta.clearValue();
                    }
                }
            }
        });
        addItem(label);
        addItem(formEditarFatura);
        addItem(hButoes);

    }

}