/*
 * 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.orm.swing.FormPanelController;
import br.com.ctecinf.model.Produto;
import br.com.ctecinf.swing.Image;
import java.math.BigDecimal;
import java.sql.Date;

/**
 *
 * @author Cássio Conceição
 * @since 03/07/2019
 * @version 201907
 * @see http://ctecinf.com.br/
 */
public class ProdutoForm extends FormPanelController<Produto> {

    private static final String TITLE = "Cadastro de Produto";

    public ProdutoForm(Produto controller) {
        super("Produto", controller == null ? new Produto() : controller, 2);
        init();
    }

    private void init() {

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

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

            try {
                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("fornecedor");

        addLine("descricao");

        addColumn("valorUnitario", "undCom");

        addColumn("ncm", "quantidade");

        addColumn("grupo", "subGrupo");

        addTitle("Lente");

        addLine("disponibilidade");

        addColumn("diametro", "altura");

        addColumn("base", "adicao");

        addTitle("Armação / Solar");

        addColumn("tamanho", "cor");

        addColumn("premio");

        addTab("Tributos", 3);

        addColumn("ean", "eanTrib", "aliquota");

        addLine("cfop");

        addLine("icms");

        addLine("icmsOrigem");

        setFieldsValues();

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

        createFrame(TITLE);
    }
}
