/*
 * 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;

/**
 * Os pacotes 'br.com.ctecinf.CTecInf' e 'br.com.ctecinf.text.*' se encontram no
 * site http://ctecinf.com.br/code
 */
import br.com.ctecinf.Daruma;
import br.com.ctecinf.model.Produto;
import br.com.ctecinf.orm.swing.FormPanelController;
import br.com.ctecinf.model.Receita;
import br.com.ctecinf.autocomplete.AutoCompleteField;
import br.com.ctecinf.swing.Image;
import br.com.ctecinf.autocomplete.AutoCompleteModel;
import br.com.ctecinf.swing.OptionPane;

/**
 *
 * @author Cássio Conceição - ctecinf.com.br
 * @version V2017.3
 * @since 30/03/2017 16:45:51
 * @see http://ctecinf.com.br/code
 *
 */
public class ReceitaForm extends FormPanelController<Receita> {

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

    public ReceitaForm(Receita controller) {
        super(controller == null ? new Receita() : controller, 3);
        init();
    }

    @Override
    protected boolean print() throws Exception {

        try {
            Daruma.receita(getController());
            return true;
        } catch (Exception ex) {
            OptionPane.error(ex);
        }

        return false;
    }

    private void init() {

        AutoCompleteModel<Produto> produtos = new Produto().getAutoCompleteModel();

        addRequiredFieldLabel();

        addLine("cliente");

        addBreakLine();

        addColumn("dataEncomenda", "valor", "notaFiscal");

        addLine(new AutoCompleteField("armacao", produtos));
        addLine(new AutoCompleteField("lente", produtos));

        addTitle("Longe");

        addColumn("longeDireitoEsferico", "longeDireitoCilindrico", "longeDireitoEixo");

        addColumn("longeEsquerdoEsferico", "longeEsquerdoCilindrico", "longeEsquerdoEixo");

        addTitle("Perto");

        addColumn("pertoDireitoEsferico", "pertoDireitoCilindrico", "pertoDireitoEixo");

        addColumn("pertoEsquerdoEsferico", "pertoEsquerdoCilindrico", "pertoEsquerdoEixo");

        addBreakLine();

        addColumn("dnp", "altura", "adicao");

        addColumn("vendedor");
        addColumn("medico", getColumn(), 2);

        addLine("observacao");

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

        setFieldsValues();

        createFrame(TITLE);
    }
}
