package danielcortes.xyz.views;

import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;
import danielcortes.xyz.views.components.DoubleFormatedTextField;
import danielcortes.xyz.views.components.NumberFormatedTextField;
import danielcortes.xyz.views.components.YearSpinnerModel;
import java.awt.Dimension;
import java.awt.Insets;
import java.time.LocalDate;
import java.time.YearMonth;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JSpinner.DefaultEditor;
import javax.swing.SpinnerModel;

public class EstadoResultadoView {

  private NumberFormatedTextField ventaBrutaField;
  private NumberFormatedTextField ventaNetaField;
  private NumberFormatedTextField ventaIVAField;
  private NumberFormatedTextField ventaExentasField;
  private NumberFormatedTextField ventasNetaExentasField;
  private NumberFormatedTextField gastosOperacionalesCostoVenta;
  private NumberFormatedTextField gastosOperacionalesRemuneraciones;
  private NumberFormatedTextField gastosOperacionalesFiniquitos;
  private NumberFormatedTextField gastosOperacionalesAguinaldo;
  private NumberFormatedTextField gastosOperacionalesPartime;
  private NumberFormatedTextField gastosOperacionalesBonos;
  private NumberFormatedTextField gastosOperacionalesHonorariosContador;
  private NumberFormatedTextField gastosOperacionalesArriendo;
  private NumberFormatedTextField gastosOperacionalesTotal;
  private NumberFormatedTextField serviciosAgua;
  private NumberFormatedTextField serviciosLuz;
  private NumberFormatedTextField serviciosGas;
  private NumberFormatedTextField serviciosTelefono;
  private NumberFormatedTextField serviciosTotal;
  private NumberFormatedTextField gastosGeneralesCuentaCorrienteFactura;
  private NumberFormatedTextField gastosGeneralesCuentaCorrienteBoleta;
  private NumberFormatedTextField gastosGeneralesCuentaCorrienteSinRespaldo;
  private NumberFormatedTextField gastosGeneralesEfectivoFacturaField;
  private NumberFormatedTextField gastosGeneralesEfectivoBoletaField;
  private NumberFormatedTextField gastosGeneralesEfectivoSinRespaldo;
  private NumberFormatedTextField gastosGeneralesTotal;
  private NumberFormatedTextField resumenUtilidad;
  private NumberFormatedTextField resumenPPMMes;
  private NumberFormatedTextField resumenIVAMes;
  private NumberFormatedTextField resumenIVAFavor;
  private NumberFormatedTextField resumenResultado;
  private JSpinner yearSpinner;
  private JComboBox monthCombo;
  private JPanel contentPanel;
  private NumberFormatedTextField serviciosOtro;
  private NumberFormatedTextField resumenAPagar;
  private NumberFormatedTextField resumenIVAPPM;
  private DoubleFormatedTextField resumenPPM;
  private JButton guardarButton;
  private JButton exportarButton;
  private DoubleFormatedTextField gastosOperacionesPorcentajeCostoVenta;

  private ArrayList<String> months;

  public EstadoResultadoView() {
    $$$setupUI$$$();
  }

  public JPanel getContentPanel() {
    return contentPanel;
  }

  public YearMonth getMonth() {
    int year = Integer.valueOf((String) yearSpinner.getValue());
    int month = this.months.indexOf((String) this.monthCombo.getSelectedItem()) + 1;

    YearMonth yearMonth = YearMonth.of(year, month);
    return yearMonth;
  }

  public JSpinner getYearSpinner() {
    return yearSpinner;
  }

  public JComboBox getMonthCombo() {
    return monthCombo;
  }

  public NumberFormatedTextField getVentaBrutaField() {
    return ventaBrutaField;
  }

  public NumberFormatedTextField getVentaNetaField() {
    return ventaNetaField;
  }

  public NumberFormatedTextField getVentaIVAField() {
    return ventaIVAField;
  }

  public NumberFormatedTextField getVentaExentasField() {
    return ventaExentasField;
  }

  public NumberFormatedTextField getVentasNetaExentasField() {
    return ventasNetaExentasField;
  }

  public NumberFormatedTextField getGastosOperacionalesCostoVenta() {
    return gastosOperacionalesCostoVenta;
  }

  public NumberFormatedTextField getGastosOperacionalesRemuneraciones() {
    return gastosOperacionalesRemuneraciones;
  }

  public NumberFormatedTextField getGastosOperacionalesFiniquitos() {
    return gastosOperacionalesFiniquitos;
  }

  public NumberFormatedTextField getGastosOperacionalesAguinaldo() {
    return gastosOperacionalesAguinaldo;
  }

  public NumberFormatedTextField getGastosOperacionalesPartime() {
    return gastosOperacionalesPartime;
  }

  public NumberFormatedTextField getGastosOperacionalesBonos() {
    return gastosOperacionalesBonos;
  }

  public NumberFormatedTextField getGastosOperacionalesHonorariosContador() {
    return gastosOperacionalesHonorariosContador;
  }

  public NumberFormatedTextField getGastosOperacionalesArriendo() {
    return gastosOperacionalesArriendo;
  }

  public NumberFormatedTextField getGastosOperacionalesTotal() {
    return gastosOperacionalesTotal;
  }

  public DoubleFormatedTextField getGastosOperacionesPorcentajeCostoVenta() {
    return gastosOperacionesPorcentajeCostoVenta;
  }

  public NumberFormatedTextField getServiciosAgua() {
    return serviciosAgua;
  }

  public NumberFormatedTextField getServiciosLuz() {
    return serviciosLuz;
  }

  public NumberFormatedTextField getServiciosGas() {
    return serviciosGas;
  }

  public NumberFormatedTextField getServiciosTelefono() {
    return serviciosTelefono;
  }

  public NumberFormatedTextField getServiciosTotal() {
    return serviciosTotal;
  }

  public NumberFormatedTextField getGastosGeneralesCuentaCorrienteFactura() {
    return gastosGeneralesCuentaCorrienteFactura;
  }

  public NumberFormatedTextField getGastosGeneralesCuentaCorrienteBoleta() {
    return gastosGeneralesCuentaCorrienteBoleta;
  }

  public NumberFormatedTextField getGastosGeneralesCuentaCorrienteSinRespaldo() {
    return gastosGeneralesCuentaCorrienteSinRespaldo;
  }

  public NumberFormatedTextField getGastosGeneralesEfectivoFacturaField() {
    return gastosGeneralesEfectivoFacturaField;
  }

  public NumberFormatedTextField getGastosGeneralesEfectivoBoletaField() {
    return gastosGeneralesEfectivoBoletaField;
  }

  public NumberFormatedTextField getGastosGeneralesEfectivoSinRespaldo() {
    return gastosGeneralesEfectivoSinRespaldo;
  }

  public NumberFormatedTextField getGastosGeneralesTotal() {
    return gastosGeneralesTotal;
  }

  public NumberFormatedTextField getResumenUtilidad() {
    return resumenUtilidad;
  }

  public NumberFormatedTextField getResumenPPMMes() {
    return resumenPPMMes;
  }

  public NumberFormatedTextField getResumenIVAMes() {
    return resumenIVAMes;
  }

  public NumberFormatedTextField getResumenIVAFavor() {
    return resumenIVAFavor;
  }

  public NumberFormatedTextField getResumenResultado() {
    return resumenResultado;
  }

  public NumberFormatedTextField getServiciosOtro() {
    return serviciosOtro;
  }

  public NumberFormatedTextField getResumenAPagar() {
    return resumenAPagar;
  }

  public NumberFormatedTextField getResumenIVAPPM() {
    return resumenIVAPPM;
  }

  public DoubleFormatedTextField getResumenPPM() {
    return resumenPPM;
  }

  public JButton getGuardarButton() {
    return guardarButton;
  }

  public JButton getExportarButton() {
    return exportarButton;
  }

  /**
   * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR
   * call it in your code!
   *
   * @noinspection ALL
   */
  private void $$$setupUI$$$() {
    createUIComponents();
    contentPanel = new JPanel();
    contentPanel.setLayout(new GridLayoutManager(3, 3, new Insets(10, 10, 10, 10), -1, -1));
    final JPanel panel1 = new JPanel();
    panel1.setLayout(new GridLayoutManager(6, 2, new Insets(10, 10, 10, 10), -1, -1));
    contentPanel.add(panel1,
        new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null,
            null, 0, false));
    panel1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Venta"));
    final JLabel label1 = new JLabel();
    label1.setText("Bruto:");
    panel1.add(label1,
        new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label2 = new JLabel();
    label2.setText("Neto:");
    panel1.add(label2,
        new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label3 = new JLabel();
    label3.setText("IVA:");
    panel1.add(label3,
        new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label4 = new JLabel();
    label4.setText("Exentas:");
    panel1.add(label4,
        new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label5 = new JLabel();
    label5.setText("Neto + Exentas:");
    panel1.add(label5,
        new GridConstraints(5, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    ventaBrutaField = new NumberFormatedTextField();
    ventaBrutaField.setEditable(false);
    panel1.add(ventaBrutaField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    ventaNetaField = new NumberFormatedTextField();
    ventaNetaField.setEditable(false);
    panel1.add(ventaNetaField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    ventaIVAField = new NumberFormatedTextField();
    ventaIVAField.setEditable(false);
    panel1.add(ventaIVAField, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    ventaExentasField = new NumberFormatedTextField();
    ventaExentasField.setEditable(false);
    panel1.add(ventaExentasField, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    ventasNetaExentasField = new NumberFormatedTextField();
    ventasNetaExentasField.setEditable(false);
    panel1.add(ventasNetaExentasField, new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    final Spacer spacer1 = new Spacer();
    panel1.add(spacer1, new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
        GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0,
        false));
    final JPanel panel2 = new JPanel();
    panel2.setLayout(new GridLayoutManager(9, 2, new Insets(10, 10, 10, 10), -1, -1));
    contentPanel.add(panel2,
        new GridConstraints(1, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null,
            null, 0, false));
    panel2
        .setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Resumen"));
    resumenUtilidad = new NumberFormatedTextField();
    resumenUtilidad.setEditable(false);
    panel2.add(resumenUtilidad, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    resumenPPMMes = new NumberFormatedTextField();
    resumenPPMMes.setEditable(false);
    panel2.add(resumenPPMMes, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    resumenIVAMes = new NumberFormatedTextField();
    resumenIVAMes.setEditable(false);
    panel2.add(resumenIVAMes, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    resumenIVAFavor = new NumberFormatedTextField();
    resumenIVAFavor.setEditable(true);
    panel2.add(resumenIVAFavor, new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    resumenResultado = new NumberFormatedTextField();
    resumenResultado.setEditable(false);
    panel2.add(resumenResultado, new GridConstraints(8, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    final JLabel label6 = new JLabel();
    label6.setText("Utilidad:");
    panel2.add(label6,
        new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label7 = new JLabel();
    label7.setText("PPM Mes:");
    panel2.add(label7,
        new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label8 = new JLabel();
    label8.setText("+ IVA Mes:");
    panel2.add(label8,
        new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label9 = new JLabel();
    label9.setText("- IVA A Favor:");
    panel2.add(label9,
        new GridConstraints(5, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label10 = new JLabel();
    label10.setText("Resultado:");
    panel2.add(label10,
        new GridConstraints(8, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final Spacer spacer2 = new Spacer();
    panel2.add(spacer2, new GridConstraints(7, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
        GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0,
        false));
    final JLabel label11 = new JLabel();
    label11.setText("PPM:");
    panel2.add(label11,
        new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    resumenAPagar = new NumberFormatedTextField();
    resumenAPagar.setEditable(false);
    panel2.add(resumenAPagar, new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    final JLabel label12 = new JLabel();
    label12.setText("A Pagar PPM + IVA");
    panel2.add(label12,
        new GridConstraints(6, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    resumenIVAPPM = new NumberFormatedTextField();
    resumenIVAPPM.setEditable(false);
    panel2.add(resumenIVAPPM, new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    resumenPPM = new DoubleFormatedTextField();
    panel2.add(resumenPPM, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
        GridConstraints.FILL_HORIZONTAL,
        GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    final JPanel panel3 = new JPanel();
    panel3.setLayout(new GridLayoutManager(1, 7, new Insets(0, 0, 0, 0), -1, -1));
    contentPanel.add(panel3,
        new GridConstraints(0, 0, 1, 3, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
    final Spacer spacer3 = new Spacer();
    panel3.add(spacer3, new GridConstraints(0, 4, 1, 1, GridConstraints.ANCHOR_CENTER,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null,
        0, false));
    final JLabel label13 = new JLabel();
    label13.setText("Mes:");
    panel3.add(label13,
        new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    panel3.add(monthCombo, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL,
        GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    final JLabel label14 = new JLabel();
    label14.setText("Año:");
    panel3.add(label14,
        new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    panel3.add(yearSpinner, new GridConstraints(0, 3, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL,
        GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    guardarButton = new JButton();
    guardarButton.setText("Guardar");
    panel3.add(guardarButton, new GridConstraints(0, 6, 1, 1, GridConstraints.ANCHOR_CENTER,
        GridConstraints.FILL_HORIZONTAL,
        GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    exportarButton = new JButton();
    exportarButton.setText("Exportar");
    panel3.add(exportarButton, new GridConstraints(0, 5, 1, 1, GridConstraints.ANCHOR_CENTER,
        GridConstraints.FILL_HORIZONTAL,
        GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    final JPanel panel4 = new JPanel();
    panel4.setLayout(new GridLayoutManager(10, 3, new Insets(10, 10, 10, 10), -1, -1));
    contentPanel.add(panel4,
        new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null,
            null, 0, false));
    panel4.setBorder(BorderFactory
        .createTitledBorder(BorderFactory.createEtchedBorder(), "Gastos Operacionales"));
    final JLabel label15 = new JLabel();
    label15.setText("Costo de Venta:");
    panel4.add(label15,
        new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label16 = new JLabel();
    label16.setText("Remuneraciones:");
    panel4.add(label16,
        new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label17 = new JLabel();
    label17.setText("Finiquitos:");
    panel4.add(label17,
        new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label18 = new JLabel();
    label18.setText("Aguinaldo:");
    panel4.add(label18,
        new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label19 = new JLabel();
    label19.setText("Partime:");
    panel4.add(label19,
        new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label20 = new JLabel();
    label20.setText("Bonos Personal:");
    panel4.add(label20,
        new GridConstraints(5, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label21 = new JLabel();
    label21.setText("Honorarios Contador:");
    panel4.add(label21,
        new GridConstraints(6, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label22 = new JLabel();
    label22.setText("Arriendo:");
    panel4.add(label22,
        new GridConstraints(7, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    gastosOperacionalesCostoVenta = new NumberFormatedTextField();
    panel4.add(gastosOperacionalesCostoVenta,
        new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosOperacionalesRemuneraciones = new NumberFormatedTextField();
    panel4.add(gastosOperacionalesRemuneraciones,
        new GridConstraints(1, 1, 1, 2, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosOperacionalesFiniquitos = new NumberFormatedTextField();
    panel4.add(gastosOperacionalesFiniquitos,
        new GridConstraints(2, 1, 1, 2, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosOperacionalesAguinaldo = new NumberFormatedTextField();
    panel4.add(gastosOperacionalesAguinaldo,
        new GridConstraints(3, 1, 1, 2, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosOperacionalesPartime = new NumberFormatedTextField();
    gastosOperacionalesPartime.setEditable(false);
    panel4.add(gastosOperacionalesPartime,
        new GridConstraints(4, 1, 1, 2, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosOperacionalesBonos = new NumberFormatedTextField();
    panel4.add(gastosOperacionalesBonos,
        new GridConstraints(5, 1, 1, 2, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosOperacionalesHonorariosContador = new NumberFormatedTextField();
    panel4.add(gastosOperacionalesHonorariosContador,
        new GridConstraints(6, 1, 1, 2, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosOperacionalesArriendo = new NumberFormatedTextField();
    panel4.add(gastosOperacionalesArriendo,
        new GridConstraints(7, 1, 1, 2, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    final JLabel label23 = new JLabel();
    label23.setText("Total:");
    panel4.add(label23,
        new GridConstraints(9, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    gastosOperacionalesTotal = new NumberFormatedTextField();
    gastosOperacionalesTotal.setEditable(false);
    panel4.add(gastosOperacionalesTotal,
        new GridConstraints(9, 1, 1, 2, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    final Spacer spacer4 = new Spacer();
    panel4.add(spacer4, new GridConstraints(8, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
        GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0,
        false));
    gastosOperacionesPorcentajeCostoVenta = new DoubleFormatedTextField();
    gastosOperacionesPorcentajeCostoVenta.setColumns(6);
    gastosOperacionesPorcentajeCostoVenta.setEditable(false);
    panel4.add(gastosOperacionesPorcentajeCostoVenta,
        new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
    final JPanel panel5 = new JPanel();
    panel5.setLayout(new GridLayoutManager(7, 2, new Insets(10, 10, 10, 10), -1, -1));
    contentPanel.add(panel5,
        new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null,
            null, 0, false));
    panel5.setBorder(
        BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Servicios"));
    final JLabel label24 = new JLabel();
    label24.setText("Agua:");
    panel5.add(label24,
        new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label25 = new JLabel();
    label25.setText("Luz:");
    panel5.add(label25,
        new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label26 = new JLabel();
    label26.setText("Gas:");
    panel5.add(label26,
        new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label27 = new JLabel();
    label27.setText("Telefono:");
    panel5.add(label27,
        new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label28 = new JLabel();
    label28.setText("Total:");
    panel5.add(label28,
        new GridConstraints(6, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    serviciosAgua = new NumberFormatedTextField();
    panel5.add(serviciosAgua, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    serviciosLuz = new NumberFormatedTextField();
    panel5.add(serviciosLuz, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    serviciosGas = new NumberFormatedTextField();
    panel5.add(serviciosGas, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    serviciosTelefono = new NumberFormatedTextField();
    panel5.add(serviciosTelefono, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    serviciosTotal = new NumberFormatedTextField();
    serviciosTotal.setEditable(false);
    panel5.add(serviciosTotal, new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    final Spacer spacer5 = new Spacer();
    panel5.add(spacer5, new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
        GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0,
        false));
    serviciosOtro = new NumberFormatedTextField();
    panel5.add(serviciosOtro, new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    final JLabel label29 = new JLabel();
    label29.setText("Otros:");
    panel5.add(label29,
        new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JPanel panel6 = new JPanel();
    panel6.setLayout(new GridLayoutManager(8, 2, new Insets(10, 10, 10, 10), -1, -1));
    contentPanel.add(panel6,
        new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
            GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null,
            null, 0, false));
    panel6.setBorder(
        BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Gastos Generales"));
    gastosGeneralesCuentaCorrienteFactura = new NumberFormatedTextField();
    panel6.add(gastosGeneralesCuentaCorrienteFactura,
        new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosGeneralesCuentaCorrienteBoleta = new NumberFormatedTextField();
    panel6.add(gastosGeneralesCuentaCorrienteBoleta,
        new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosGeneralesCuentaCorrienteSinRespaldo = new NumberFormatedTextField();
    panel6.add(gastosGeneralesCuentaCorrienteSinRespaldo,
        new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosGeneralesEfectivoFacturaField = new NumberFormatedTextField();
    gastosGeneralesEfectivoFacturaField.setEditable(false);
    panel6.add(gastosGeneralesEfectivoFacturaField,
        new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosGeneralesEfectivoBoletaField = new NumberFormatedTextField();
    gastosGeneralesEfectivoBoletaField.setEditable(false);
    panel6.add(gastosGeneralesEfectivoBoletaField,
        new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosGeneralesEfectivoSinRespaldo = new NumberFormatedTextField();
    gastosGeneralesEfectivoSinRespaldo.setEditable(false);
    panel6.add(gastosGeneralesEfectivoSinRespaldo,
        new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_WEST,
            GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
            GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    gastosGeneralesTotal = new NumberFormatedTextField();
    gastosGeneralesTotal.setEditable(false);
    panel6.add(gastosGeneralesTotal, new GridConstraints(7, 1, 1, 1, GridConstraints.ANCHOR_WEST,
        GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
        GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
    final JLabel label30 = new JLabel();
    label30.setText("CTA CTE Con Factura:");
    panel6.add(label30,
        new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label31 = new JLabel();
    label31.setText("CTA CTE Con Boleta:");
    panel6.add(label31,
        new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label32 = new JLabel();
    label32.setText("CTA CTE Sin Respaldo:");
    panel6.add(label32,
        new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label33 = new JLabel();
    label33.setText("Efectivo Con Factura:");
    panel6.add(label33,
        new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label34 = new JLabel();
    label34.setText("Efectivo Con Boleta:");
    panel6.add(label34,
        new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label35 = new JLabel();
    label35.setText("Efectivo Sin Respaldo");
    panel6.add(label35,
        new GridConstraints(5, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final JLabel label36 = new JLabel();
    label36.setText("Total:");
    panel6.add(label36,
        new GridConstraints(7, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
            GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
            false));
    final Spacer spacer6 = new Spacer();
    panel6.add(spacer6, new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
        GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0,
        false));
  }

  /**
   * @noinspection ALL
   */
  public JComponent $$$getRootComponent$$$() {
    return contentPanel;
  }

  private void createUIComponents() {
    createYearSpinner();
    createMonthCombo();
  }

  private void createYearSpinner() {
    SpinnerModel model = new YearSpinnerModel();
    this.yearSpinner = new JSpinner();
    this.yearSpinner.setModel(model);
    ((DefaultEditor) this.yearSpinner.getEditor()).getTextField().setEditable(true);
  }

  private void createMonthCombo() {
    months = new ArrayList<>();
    months.add("Enero");
    months.add("Febrero");
    months.add("Marzo");
    months.add("Abril");
    months.add("Mayo");
    months.add("Junio");
    months.add("Julio");
    months.add("Agosto");
    months.add("Septiembre");
    months.add("Octubre");
    months.add("Noviembre");
    months.add("Diciembre");

    monthCombo = new JComboBox<>();
    for (String month : months) {
      monthCombo.addItem(month);
    }

    int currentMonth = LocalDate.now().getMonth().getValue() - 1;
    monthCombo.setSelectedIndex(currentMonth);
  }

}
