/*
 * 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 br.com.ctecinf.view;

import br.com.ctecinf.Utils;
import br.com.ctecinf.model.Cfop;
import br.com.ctecinf.model.Icms;
import br.com.ctecinf.model.IcmsOrigem;
import br.com.ctecinf.model.Produto;
import br.com.ctecinf.model.SubGrupo;
import br.com.ctecinf.orm.swing.FormPanelController;
import br.com.ctecinf.swing.Image;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.Map;

/**
 *
 * @author cassio
 */
public class LenteForm extends FormPanelController<Produto> {

    public LenteForm(Produto controller) {
        super(controller == null ? new Produto() : controller, 2);
        initUI();
    }

    @Override
    protected boolean save(Map<String, Object> params) throws Exception {

        SubGrupo subGrupo = (SubGrupo) params.get("subGrupo");
        String desc = subGrupo == null ? null : subGrupo.getDescricao();
        Object value = params.get("descricao") + (desc == null ? "" : " " + desc);
        params.put("descricao", value);

        getController().setValues(params);

        boolean ret = getController().save() != null;

        getController().setId(null);

        return ret;
    }

    private void initUI() {

        if (getController().getId() == null) {

            getController().setAliquota(BigDecimal.valueOf(35.49));

            try {
                getController().setUndCom("PAR");
                getController().setCfop(new Cfop().setId(5102));
                getController().setIcms(new Icms().setId(102));
                getController().setIcmsOrigem(new IcmsOrigem().setId(0));
            } catch (Exception ex) {
                System.err.println(ex);
            }
        }

        getController().setUltimaAtualizacao(new Date(Utils.dateFromServer().getTimeInMillis()));

        addLine("descricao");

        addColumn("grupo", "subGrupo");

        addColumn("ncm", "valorUnitario");

        addBreakLine();

        addLine("disponibilidade");

        addColumn("diametro", "altura");

        addColumn("base", "adicao");

        setFieldsValues();

        addAction("Fechar", Image.parse(Image.CLOSE), (e) -> {
            getFrame().dispose();
        });

        createFrame("Cadastro de lentes");

    }

}
