text:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package erp.mod.hrs.form;

import erp.mod.SModConsts;
import erp.mod.SModSysConsts;
import erp.mod.hrs.db.SDbEarning;
import erp.mod.hrs.db.SDbPayrollReceiptEarning;
import erp.mod.hrs.db.SHrsEmployeeDays;
import erp.mod.hrs.db.SHrsPayroll;
import erp.mod.hrs.db.SHrsReceipt;
import erp.mod.hrs.db.SHrsReceiptEarning;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.event.CellEditorListener;
import javax.swing.event.ChangeEvent;
import sa.lib.SLibConsts;
import sa.lib.SLibUtils;
import sa.lib.db.SDbRegistry;
import sa.lib.grid.SGridColumnForm;
import sa.lib.grid.SGridConsts;
import sa.lib.grid.SGridPaneForm;
import sa.lib.grid.SGridPaneFormOwner;
import sa.lib.grid.SGridRow;
import sa.lib.gui.SGuiClient;
import sa.lib.gui.SGuiConsts;
import sa.lib.gui.SGuiItem;
import sa.lib.gui.SGuiUtils;
import sa.lib.gui.SGuiValidation;
import sa.lib.gui.bean.SBeanFormDialog;

/**
 *
 * @author Juan Barajas, Sergio Flores
 */
public class SDialogPayrollEarnings extends SBeanFormDialog implements SGridPaneFormOwner, ActionListener, ItemListener, CellEditorListener {

    private static final int COL_VAL = 1;
    private static final int COL_AMT_UNT = 3;
    private static final int COL_SET_FLAG = 7;

    private SHrsPayroll moHrsPayroll;
    private ArrayList<SHrsReceipt> maHrsReceipts;
    private SDbEarning moEarning;
    private HashMap<Integer, SDbEarning> moEarningsMap;
    private SGridPaneForm moGridEmployeeRow;

    /**
     * Creates new form SDialogPayrollEarnings
     * @param client
     * @param title
     */
    public SDialogPayrollEarnings(SGuiClient client, String title) {
        setFormSettings(client, SGuiConsts.BEAN_FORM_EDIT, SModConsts.HRSX_PAY_REC_EAR, SLibConsts.UNDEFINED, title);
        initComponents();
        initComponentsCustom();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jpMain = new javax.swing.JPanel();
        jpSettings = new javax.swing.JPanel();
        jpEarning = new javax.swing.JPanel();
        jlEarning = new javax.swing.JLabel();
        moKeyEarning = new sa.lib.gui.bean.SBeanFieldKey();
        jPanel1 = new javax.swing.JPanel();
        jlOtherPayment = new javax.swing.JLabel();
        moKeyOtherPayment = new sa.lib.gui.bean.SBeanFieldKey();
        jpEmployee = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jlValue = new javax.swing.JLabel();
        moCompValue = new sa.lib.gui.bean.SBeanCompoundField();
        jbSetAll = new javax.swing.JButton();
        jPanel3 = new javax.swing.JPanel();
        jbClear = new javax.swing.JButton();
        jbClearAll = new javax.swing.JButton();
        jpTotal = new javax.swing.JPanel();
        jlTotal = new javax.swing.JLabel();
        moCurTotal = new sa.lib.gui.bean.SBeanCompoundFieldCurrency();
        jlTotalHelp = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jpMain.setBorder(javax.swing.BorderFactory.createTitledBorder("Datos del registro:"));
        jpMain.setLayout(new java.awt.BorderLayout());

        jpSettings.setLayout(new java.awt.GridLayout(2, 1, 0, 5));

        jpEarning.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEADING, 5, 0));

        jlEarning.setText("Percepción:*");
        jlEarning.setPreferredSize(new java.awt.Dimension(100, 23));
        jpEarning.add(jlEarning);

        moKeyEarning.setPreferredSize(new java.awt.Dimension(400, 23));
        jpEarning.add(moKeyEarning);

        jpSettings.add(jpEarning);

        jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 0));

        jlOtherPayment.setText("Tipo otro pago:*");
        jlOtherPayment.setPreferredSize(new java.awt.Dimension(100, 23));
        jPanel1.add(jlOtherPayment);

        moKeyOtherPayment.setToolTipText("Tipo otro pago");
        moKeyOtherPayment.setPreferredSize(new java.awt.Dimension(575, 23));
        jPanel1.add(moKeyOtherPayment);

        jpSettings.add(jPanel1);

        jpMain.add(jpSettings, java.awt.BorderLayout.NORTH);

        jpEmployee.setLayout(new java.awt.BorderLayout());

        jPanel4.setLayout(new java.awt.BorderLayout());

        jPanel2.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

        jlValue.setText("Cantidad/monto:");
        jlValue.setPreferredSize(new java.awt.Dimension(100, 23));
        jPanel2.add(jlValue);

        moCompValue.setPreferredSize(new java.awt.Dimension(125, 23));
        jPanel2.add(moCompValue);

        jbSetAll.setText("Asignar a todos");
        jbSetAll.setMargin(new java.awt.Insets(0, 0, 0, 0));
        jbSetAll.setPreferredSize(new java.awt.Dimension(100, 23));
        jPanel2.add(jbSetAll);

        jPanel4.add(jPanel2, java.awt.BorderLayout.WEST);

        jPanel3.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));

        jbClear.setText("Limpiar");
        jbClear.setMargin(new java.awt.Insets(2, 0, 2, 0));
        jbClear.setPreferredSize(new java.awt.Dimension(75, 23));
        jPanel3.add(jbClear);

        jbClearAll.setText("Limpiar todo");
        jbClearAll.setMargin(new java.awt.Insets(0, 0, 0, 0));
        jbClearAll.setPreferredSize(new java.awt.Dimension(75, 23));
        jPanel3.add(jbClearAll);

        jPanel4.add(jPanel3, java.awt.BorderLayout.EAST);

        jpEmployee.add(jPanel4, java.awt.BorderLayout.NORTH);

        jpMain.add(jpEmployee, java.awt.BorderLayout.CENTER);

        jpTotal.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 0));

        jlTotal.setText("Total asignado:");
        jlTotal.setPreferredSize(new java.awt.Dimension(100, 23));
        jpTotal.add(jlTotal);

        moCurTotal.setEditable(false);
        jpTotal.add(moCurTotal);

        jlTotalHelp.setForeground(java.awt.SystemColor.textInactiveText);
        jlTotalHelp.setText("(Monto total de la percepción actual en esta nómina)");
        jlTotalHelp.setPreferredSize(new java.awt.Dimension(300, 23));
        jpTotal.add(jlTotalHelp);

        jpMain.add(jpTotal, java.awt.BorderLayout.SOUTH);

        getContentPane().add(jpMain, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JButton jbClear;
    private javax.swing.JButton jbClearAll;
    private javax.swing.JButton jbSetAll;
    private javax.swing.JLabel jlEarning;
    private javax.swing.JLabel jlOtherPayment;
    private javax.swing.JLabel jlTotal;
    private javax.swing.JLabel jlTotalHelp;
    private javax.swing.JLabel jlValue;
    private javax.swing.JPanel jpEarning;
    private javax.swing.JPanel jpEmployee;
    private javax.swing.JPanel jpMain;
    private javax.swing.JPanel jpSettings;
    private javax.swing.JPanel jpTotal;
    private sa.lib.gui.bean.SBeanCompoundField moCompValue;
    private sa.lib.gui.bean.SBeanCompoundFieldCurrency moCurTotal;
    private sa.lib.gui.bean.SBeanFieldKey moKeyEarning;
    private sa.lib.gui.bean.SBeanFieldKey moKeyOtherPayment;
    // End of variables declaration//GEN-END:variables

    private void initComponentsCustom() {
        SGuiUtils.setWindowBounds(this, 720, 450);

        jbSave.setText("Cerrar");
        jbCancel.setEnabled(false);

        moKeyEarning.setKeySettings(miClient, SGuiUtils.getLabelName(jlEarning), true);
        moKeyOtherPayment.setKeySettings(miClient, SGuiUtils.getLabelName(moKeyOtherPayment.getToolTipText()), true);
        moCompValue.setCompoundFieldSettings(miClient);
        moCompValue.getField().setDecimalSettings(SGuiUtils.getLabelName(jlValue), SGuiConsts.GUI_TYPE_DEC_QTY, true);
        moCompValue.getField().setNextButton(jbSetAll);

        moFields.addField(moKeyEarning);
        moFields.addField(moKeyOtherPayment);
        moFields.addField(moCompValue.getField());
        moFields.setFormButton(jbSave);

        // read-only field:
        moCurTotal.setCompoundFieldSettings(miClient);
        moCurTotal.getField().setDecimalSettings(SGuiUtils.getLabelName(jlTotal), SGuiConsts.GUI_TYPE_DEC_AMT, false);

        moGridEmployeeRow = new SGridPaneForm(miClient, SModConsts.HRSX_PAY_REC_EAR, SLibConsts.UNDEFINED, "Empleados") {
            @Override
            public void initGrid() {
                setRowButtonsEnabled(false, false, false);
            }

            @Override
            public ArrayList<SGridColumnForm> createGridColumns() {
                SGridColumnForm columnForm;
                ArrayList<SGridColumnForm> gridColumnsForm = new ArrayList<>();

                gridColumnsForm.add(new SGridColumnForm(SGridConsts.COL_TYPE_TEXT_NAME_BPR_S, "Empleado"));
                columnForm = new SGridColumnForm(SGridConsts.COL_TYPE_DEC_QTY, "Cant.", 55);
                columnForm.setEditable(true);
                gridColumnsForm.add(columnForm);
                gridColumnsForm.add(new SGridColumnForm(SGridConsts.COL_TYPE_TEXT_CODE_UNT, "Unid.", 35));
                columnForm = new SGridColumnForm(SGridConsts.COL_TYPE_DEC_AMT, "Monto unit. $", 80);
                columnForm.setEditable(true);
                gridColumnsForm.add(columnForm);
                gridColumnsForm.add(new SGridColumnForm(SGridConsts.COL_TYPE_DEC_AMT, "Monto $", 80));
                gridColumnsForm.add(new SGridColumnForm(SGridConsts.COL_TYPE_DEC_QTY, "Cant. ajustada", 55));
                gridColumnsForm.add(new SGridColumnForm(SGridConsts.COL_TYPE_TEXT_CODE_UNT, "Unid.", 35));
                columnForm = new SGridColumnForm(SGridConsts.COL_TYPE_BOOL_S, "Pago");
                columnForm.setEditable(true);
                gridColumnsForm.add(columnForm);
                gridColumnsForm.add(new SGridColumnForm(SGridConsts.COL_TYPE_DEC_AMT, "Exento $", 80));
                gridColumnsForm.add(new SGridColumnForm(SGridConsts.COL_TYPE_DEC_AMT, "Gravado $", 80));
                gridColumnsForm.add(new SGridColumnForm(SGridConsts.COL_TYPE_TEXT_NAME_CAT_M, "Crédito/préstamo"));

                return gridColumnsForm;
            }
        };

        moGridEmployeeRow.setForm(null);
        moGridEmployeeRow.setPaneFormOwner(this);
        jpEmployee.add(moGridEmployeeRow, BorderLayout.CENTER);

        reloadCatalogues();
        addAllListeners();

        enableFields(false);
    }

    @SuppressWarnings("unchecked")
    private void setPayroll(SHrsPayroll payroll) {
        moHrsPayroll = payroll;

        // populate map of earnings & combo box at the same time:

        moEarningsMap = new HashMap<>();

        moKeyEarning.removeAllItems();
        moKeyEarning.addItem(new SGuiItem(new int[] { 0 }, "- Percepción -"));

        for (SDbEarning earning : moHrsPayroll.getEarnings()) {
            if (earning.isMassAsignable()) {
                moEarningsMap.put(earning.getPkEarningId(), earning);

                moKeyEarning.addItem(new SGuiItem(earning.getPrimaryKey(), (earning.getCode() + " - " + earning.getName()), earning.getFkEarningComputationTypeId()));
            }
        }
    }

    private void enableFields(final boolean enable) {
        moCompValue.getField().setEditable(enable);
        jbSetAll.setEnabled(enable);
    }

    private SDbPayrollReceiptEarning createPayrollReceipEarning(final SHrsReceipt hrsReceipt, final SHrsReceiptEarning hrsReceiptEarning, final SHrsEmployeeDays hrsEmployeeDays) {
        double unitsAlleged;
        double amountUnitAlleged;
        int moveId;

        if (hrsReceiptEarning.getPayrollReceiptEarning() != null) {
            unitsAlleged = hrsReceiptEarning.getPayrollReceiptEarning().getUnitsAlleged();
            amountUnitAlleged = hrsReceiptEarning.getPayrollReceiptEarning().getAmountUnitary();
            moveId = hrsReceiptEarning.getPayrollReceiptEarning().getPkMoveId();
        }
        else {
            if (hrsReceiptEarning.getEarning().isBasedOnUnits()) {
                unitsAlleged = 0;
                amountUnitAlleged = 0;
            }
            else {
                unitsAlleged = 1;
                amountUnitAlleged = 0;
            }
            moveId = hrsReceipt.getHrsReceiptEarnings().size() + 1;
        }

        SDbPayrollReceiptEarning earning = hrsReceipt.getHrsPayroll().createPayrollReceiptEarning(
                hrsReceipt, hrsReceiptEarning.getEarning(), hrsEmployeeDays, null,
                unitsAlleged, amountUnitAlleged, false,
                0, 0, moveId);

        if (moKeyOtherPayment.isEnabled() && moKeyOtherPayment.getSelectedIndex() > 0) {
            earning.setFkOtherPaymentTypeId(moKeyOtherPayment.getValue()[0]);
        }

        return earning;
    }

    private void refreshGridRows() {
        int row = moGridEmployeeRow.getTable().getSelectedRow();
        moGridEmployeeRow.renderGridRows();
        moGridEmployeeRow.setSelectedGridRow(row);
        computeTotal();
    }

    private void computeTotal() {
        double total = 0;

        if (moKeyEarning.getSelectedIndex() > 0) {
            for (SHrsReceipt hrsReceipt : maHrsReceipts) {
                for (SHrsReceiptEarning hrsReceiptEarning : hrsReceipt.getHrsReceiptEarnings()) {
                    if (hrsReceiptEarning.getEarning().getPkEarningId() == moEarning.getPkEarningId()) {
                        total = SLibUtils.roundAmount(total + hrsReceiptEarning.getPayrollReceiptEarning().getAmount_r());
                    }
                }
            }
        }

        moCurTotal.getField().setValue(total);
    }

    private void computeSetAll() throws Exception {
        double unitsAlleged;
        double amountUnitAlleged;

        if (moKeyEarning.getSelectedIndex() > 0) {
            if (moEarning.isBasedOnUnits()) {
                unitsAlleged = moCompValue.getField().getValue();
                amountUnitAlleged = 0;
            }
            else {
                unitsAlleged = 1;
                amountUnitAlleged = moCompValue.getField().getValue();
            }

            for (SGridRow gridRow : moGridEmployeeRow.getModel().getGridRows()) { // process grid
                SHrsReceiptEarning hrsReceiptEarningCopy = (SHrsReceiptEarning) gridRow;
                SHrsReceipt hrsReceipt = hrsReceiptEarningCopy.getHrsReceipt();
                SHrsEmployeeDays hrsEmployeeDays = hrsReceipt.getHrsEmployee().createEmployeeDays();

                double units = hrsEmployeeDays.computeEarningUnits(unitsAlleged, moEarning);
                hrsReceiptEarningCopy.getPayrollReceiptEarning().setUnitsAlleged(unitsAlleged);
                hrsReceiptEarningCopy.getPayrollReceiptEarning().setUnits(units);

                double amount;
                if (moEarning.isBasedOnUnits()) {
                    amount = SHrsEmployeeDays.computeEarningAmount(units, hrsReceiptEarningCopy.getPayrollReceiptEarning().getAmountUnitary(), moEarning);
                }
                else {
                    hrsReceiptEarningCopy.getPayrollReceiptEarning().setAmountUnitary(amountUnitAlleged);
                    amount = SHrsEmployeeDays.computeEarningAmount(units, amountUnitAlleged, moEarning);
                }

                hrsReceiptEarningCopy.getPayrollReceiptEarning().setAmountSystem_r(amount);
                hrsReceiptEarningCopy.getPayrollReceiptEarning().setAmount_r(amount);

                hrsReceiptEarningCopy.getPayrollReceiptEarning().setUserEdited(false);
                hrsReceiptEarningCopy.getPayrollReceiptEarning().setAutomatic(false);

                if (hrsReceipt.getHrsReceiptEarning(hrsReceiptEarningCopy.getPayrollReceiptEarning().getPkMoveId()) == null) {
                    hrsReceipt.addHrsReceiptEarning(hrsReceiptEarningCopy);
                }
                else {
                    hrsReceipt.replaceHrsReceiptEarning(hrsReceiptEarningCopy.getPayrollReceiptEarning().getPkMoveId(), hrsReceiptEarningCopy);
                }
            }

            refreshGridRows();
        }
    }

    private void actionPerformedSetAll() {
        try {
            SGuiValidation validation = moFields.validateFields();
            if (!SGuiUtils.computeValidation(miClient, validation)) {
                return;
            }

            computeSetAll();

            moCompValue.getField().resetField();
            moKeyEarning.requestFocusInWindow();
        }
        catch (Exception e) {
            SLibUtils.showException(this, e);
        }
    }

    private void actionPerformedClear() {
        SHrsReceiptEarning hrsReceiptEarningCopy = (SHrsReceiptEarning) moGridEmployeeRow.getSelectedGridRow();

        if (hrsReceiptEarningCopy != null) {
            hrsReceiptEarningCopy.clearAmount();

            SHrsReceipt hrsReceipt = hrsReceiptEarningCopy.getHrsReceipt();
            hrsReceipt.replaceHrsReceiptEarning(hrsReceiptEarningCopy.getPayrollReceiptEarning().getPkMoveId(), hrsReceiptEarningCopy);

            refreshGridRows();
        }
    }

    private void actionPerformedClearAll() {
        if (miClient.showMsgBoxConfirm("¿Está seguro que desea limpiar todas las capturas?") == JOptionPane.YES_OPTION) {
            for (SGridRow gridRow : moGridEmployeeRow.getModel().getGridRows()) { // process grid
                SHrsReceiptEarning hrsReceiptEarningCopy = (SHrsReceiptEarning) gridRow;

                hrsReceiptEarningCopy.clearAmount();

                SHrsReceipt hrsReceipt = hrsReceiptEarningCopy.getHrsReceipt();
                hrsReceipt.replaceHrsReceiptEarning(hrsReceiptEarningCopy.getPayrollReceiptEarning().getPkMoveId(), hrsReceiptEarningCopy);
            }

            refreshGridRows();
        }
    }

    private void itemStateChangedEarning() {
        Vector<SGridRow> rows = new Vector<>();

        moKeyOtherPayment.setEnabled(false);
        moKeyOtherPayment.resetField();

        if (moKeyEarning.getSelectedIndex() <= 0) {
            moEarning = null;
        }
        else {
            moEarning = moEarningsMap.get(moKeyEarning.getValue()[0]);
            moCompValue.setCompoundText(moHrsPayroll.getEarningComputationTypesMap().get(moEarning.getFkEarningComputationTypeId()));

            moKeyOtherPayment.setValue(new int[] { moEarning.getFkOtherPaymentTypeId() });
            if (moEarning.getFkEarningTypeId() == SModSysConsts.HRSS_TP_EAR_OTH) {
                moKeyOtherPayment.setEnabled(true);
            }
            else {
                moKeyOtherPayment.setEnabled(false);
            }

            // prepare grid rows:

            for (SHrsReceipt hrsReceipt : maHrsReceipts) {
                SDbPayrollReceiptEarning payrollReceiptEarning = null;

                for (SHrsReceiptEarning hrsReceiptEarning : hrsReceipt.getHrsReceiptEarnings()) {
                    if (hrsReceiptEarning.getEarning().getPkEarningId() == moEarning.getPkEarningId()) {
                        payrollReceiptEarning = hrsReceiptEarning.getPayrollReceiptEarning();
                        break;
                    }
                }

                // add HRS receipt earning as a copy:

                SHrsReceiptEarning hrsReceiptEarningCopy = new SHrsReceiptEarning(SHrsReceiptEarning.INPUT_BY_EAR);
                hrsReceiptEarningCopy.setHrsReceipt(hrsReceipt);
                hrsReceiptEarningCopy.setEarning(moEarning);

                if (payrollReceiptEarning != null) {
                    hrsReceiptEarningCopy.setPayrollReceiptEarning(payrollReceiptEarning);
                }
                else {
                    SHrsEmployeeDays hrsEmployeeDays = hrsReceipt.getHrsEmployee().createEmployeeDays();
                    hrsReceiptEarningCopy.setPayrollReceiptEarning(createPayrollReceipEarning(hrsReceipt, hrsReceiptEarningCopy, hrsEmployeeDays));
                }

                rows.add(hrsReceiptEarningCopy);
            }
        }

        enableFields(!rows.isEmpty());

        moGridEmployeeRow.populateGrid(rows);
        moGridEmployeeRow.getTable().getDefaultEditor(Boolean.class).addCellEditorListener(this);
        moGridEmployeeRow.getTable().getDefaultEditor(Double.class).addCellEditorListener(this);
        moGridEmployeeRow.setSelectedGridRow(0);
        computeTotal();
    }

    private void itemStateChangedEarningOtherPayment() {
        int otherPaymentType;

        if (moKeyOtherPayment.getSelectedIndex() <= 0) {
            otherPaymentType = SModSysConsts.HRSS_TP_OTH_PAY_NA;
        }
        else {
            otherPaymentType = moKeyOtherPayment.getValue()[0];
        }

        for (SGridRow row : moGridEmployeeRow.getModel().getGridRows()) {
            SHrsReceiptEarning hrsReceiptEarning = (SHrsReceiptEarning) row;
            hrsReceiptEarning.getPayrollReceiptEarning().setFkOtherPaymentTypeId(otherPaymentType);
        }
    }

    private void processCellEdition() {
        boolean refresh = false;
        SHrsReceiptEarning hrsReceiptEarningCopy = (SHrsReceiptEarning) moGridEmployeeRow.getSelectedGridRow(); // get copy of HRS receipt earning

        if (hrsReceiptEarningCopy != null) {
            switch (moGridEmployeeRow.getTable().getSelectedColumn()) {
                case COL_VAL:
                    if (hrsReceiptEarningCopy.isEditableValueAlleged()) {
                        refresh = true;
                    }
                    else {
                        miClient.showMsgBoxWarning("No se puede modificar la 'Cantidad' de la percepción '" + hrsReceiptEarningCopy.getEarning().getName() + "'.");
                    }
                    break;
                case COL_AMT_UNT:
                    if (hrsReceiptEarningCopy.isEditableAmountUnitary(hrsReceiptEarningCopy.getAmountBeingEdited())) {
                        refresh = true;
                    }
                    else {
                        miClient.showMsgBoxWarning("No se puede modificar el 'Monto unitario' de la percepción '" + hrsReceiptEarningCopy.getEarning().getName() + "'."
                                + (!hrsReceiptEarningCopy.getEarning().isBenefit() ? "" : "El monto capturado no puede ser menor que " + SLibUtils.getDecimalFormatAmount().format(hrsReceiptEarningCopy.getAmountOriginal()) + "."));
                    }
                    break;
                case COL_SET_FLAG:
                    refresh = true;
                    break;
                default:
            }

            if (refresh) {
                SHrsReceipt hrsReceipt = hrsReceiptEarningCopy.getHrsReceipt(); // convenience variable

                if (hrsReceipt.getHrsReceiptEarning(hrsReceiptEarningCopy.getPayrollReceiptEarning().getPkMoveId()) == null) {
                    hrsReceipt.addHrsReceiptEarning(hrsReceiptEarningCopy);
                }
                else {
                    hrsReceipt.replaceHrsReceiptEarning(hrsReceiptEarningCopy.getPayrollReceiptEarning().getPkMoveId(), hrsReceiptEarningCopy);
                }

                refreshGridRows();
            }
        }
    }

    @Override
    public void actionSave() {
        // remove unused earnings:

        for (SHrsReceipt receipt : maHrsReceipts) {
            ArrayList<SHrsReceiptEarning> removableHrsReceiptEarnings = new ArrayList<>();

            for (SHrsReceiptEarning receiptEarning : receipt.getHrsReceiptEarnings()) {
                if (!receiptEarning.isApplying()) {
                    removableHrsReceiptEarnings.add(receiptEarning);
                }
            }

            for (SHrsReceiptEarning removableHrsReceiptEarning : removableHrsReceiptEarnings) {
                receipt.removeHrsReceiptEarning(removableHrsReceiptEarning.getPayrollReceiptEarning().getPkMoveId());
            }
        }

        super.actionSave();
    }

    @Override
    public void actionCancel() {
        mnFormResult = SGuiConsts.FORM_RESULT_CANCEL;
        dispose();
    }

    @Override
    public void addAllListeners() {
        jbSetAll.addActionListener(this);
        jbClear.addActionListener(this);
        jbClearAll.addActionListener(this);
        moKeyEarning.addItemListener(this);
        moKeyOtherPayment.addItemListener(this);
    }

    @Override
    public void removeAllListeners() {
        jbSetAll.removeActionListener(this);
        jbClear.removeActionListener(this);
        jbClearAll.removeActionListener(this);
        moKeyEarning.removeItemListener(this);
        moKeyOtherPayment.removeItemListener(this);
    }

    @Override
    public void reloadCatalogues() {
        miClient.getSession().populateCatalogue(moKeyOtherPayment, SModConsts.HRSS_TP_OTH_PAY, 0, null);
    }

    @Override
    public void setRegistry(SDbRegistry registry) throws Exception {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public SDbRegistry getRegistry() throws Exception {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public SGuiValidation validateForm() {
        SGuiValidation validation = new SGuiValidation();

        if (moKeyOtherPayment.isEnabled()) {
            if (moKeyOtherPayment.getSelectedIndex() <= 0) {
                validation.setMessage(SGuiConsts.ERR_MSG_FIELD_REQ + "'" + SGuiUtils.getLabelName(moKeyOtherPayment.getToolTipText()) + "'.");
                validation.setComponent(moKeyOtherPayment);
            }
            else if (moKeyOtherPayment.getValue()[0] == SModSysConsts.HRSS_TP_OTH_PAY_NA) {
                validation.setMessage(SGuiConsts.ERR_MSG_FIELD_DIF + "'" + SGuiUtils.getLabelName(moKeyOtherPayment.getToolTipText()) + "'.");
                validation.setComponent(moKeyOtherPayment);
            }
        }

        return new SGuiValidation();
    }

    @Override
    @SuppressWarnings("unchecked")
    public void setValue(final int type, final Object value) {
        try {
            switch (type) {
                case SModConsts.HRS_PAY:
                    setPayroll((SHrsPayroll) value);
                    break;
                case SModConsts.HRS_PAY_RCP:
                    maHrsReceipts = (ArrayList<SHrsReceipt>) value;
                    break;
                default:
            }
        }
        catch (Exception e ) {
            SLibUtils.printException(this, e);
        }
    }

    @Override
    public Object getValue(final int type) {
        Object value = null;

        switch (type) {
            case SModConsts.HRS_PAY_RCP:
                value = maHrsReceipts;
                break;
            default:
        }

        return value;
    }

    @Override
    public void notifyRowNew(int gridType, int gridSubtype, int row, SGridRow gridRow) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void notifyRowEdit(int gridType, int gridSubtype, int row, SGridRow gridRow) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void notifyRowDelete(int gridType, int gridSubtype, int row, SGridRow gridRow) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() instanceof JButton) {
            JButton button = (JButton) e.getSource();

            if (button == jbSetAll) {
                actionPerformedSetAll();
            }
            else if (button == jbClear) {
                actionPerformedClear();
            }
            else if (button == jbClearAll) {
                actionPerformedClearAll();
            }
        }
    }

    @Override
    public void itemStateChanged(ItemEvent e) {
        if (e.getSource() instanceof JComboBox && e.getStateChange() == ItemEvent.SELECTED) {
            JComboBox comboBox = (JComboBox)  e.getSource();

            if (comboBox == moKeyEarning) {
                itemStateChangedEarning();
            }
            else if (comboBox == moKeyOtherPayment) {
                itemStateChangedEarningOtherPayment();
            }
        }
    }

    @Override
    public void editingStopped(ChangeEvent e) {
        processCellEdition();
    }

    @Override
    public void editingCanceled(ChangeEvent e) {

    }
}


Newborn friendly hair and body wash, in a new travel size.
Childs Farm hair & body wash, sweet orange 50ml contains sweet orange oil which makes cleaning off dirt a fragrant joy! Contains argan oil for the ultimate in moisturising! Leaves hair shiny and tangle-free and skin wonderfully soft.
Childs Farm hair & body wash, sweet orange 50ml is registered with the vegan society!
Massage a dollop all over hair and body, then rinse. Repeat with hair as necessary.


ISO 7121:2016 Preview Steel ball valves for general-purpose industrial applications ISO 7121:2016 specifies the requirements for a series of steel ball valves suitable for general-purpose industrial applications.... check, in accordance with Category 3 of Table 1 of BS 5975, to ensure that the concept, overall design and details of the tie proposed are adequate and that the tie designer's intentions have been properly reflected in the fabrication and installation drawings.
2016/02385 BS8500-1 : 2015+A1 : 2016 Concrete. Complementary British Standard to BS EN 206. Method of specifying and guidance for the specifier.
Further to the BSI meeting held in September which saw a review of all feedback resulting from the Draft for Public Comment phase, a final version of the revised BS7121 Part 1 was recently approved by MHE/3/11, and has subsequently been submitted to the overseeing group, MHE/3, for signing off.


[Staunton News Leader] - Chris Carr officiating. Interment will follow in the adjacent cemetery. Memorial contributions may be made to Salem Lutheran Church or Harrisonburg/Rockingham SPCA. The Lindsey Weyers Cave Funeral Home is in charge of arrangements.
Große Auswahl fremdsprachige Bücher bei Thalia ✔ Bücher versandkostenfrei ✔ »The Changing Geography of International Business« jetzt bestellen!
Sieh dir Trailer an, lies die Rezensionen von Kunden und Kritikern und kaufe den von Tim Berry gedrehten Film "Victims" für 2,49 €.
[FOX19] - Presiding over the ceremony was B-105's Stattman from the Chris Carr & Company Morning Show. Christina and Jim were randomly chosen from many entries submitted via the station's website which asked, "Why do you propose we choose you?
Ravens Free Agency: Who's Shown The Door?
[Baltimore Beat Down] - Cornerback, Chris Carr: Another cornerback that was thought to boost the Ravens' secondary unit, Carr struggled to see the field in due to some minor injuries and also because he was buried on the depth chart behind Webb, Smith, and Williams.


text:
20:20 A Clear Vision for the Future
During the past 20 years Manada Conservancy has grown from a seed of hope in the minds of a few individuals to a community of more than 400 members. Because of your generous support and many volunteer hours of labor, we have been able to work with landowners to protect nearly 2,500 acres of land in Dauphin County, present more than 100 environmental education programs, develop a native plant initiative, offer outdoor opportunities, and engage with businesses and other organizations that share our mission.
Manada Conservancy Strategic Plan 2017-2021
Vision: Manada Conservancy envisions a community in which preserved land is abundant and conservation is widely practiced for the benefit of all.
Mission: Manada Conservancy is a land trust dedicated to preserving the natural, historic, agricultural and scenic resources of Dauphin County through land conservation, environmental education, and community engagement.
The Conservancy formed in 1997 because our founding members were concerned about loss of farmland and wildlife habitat in our region. The Conservancy's name was chosen because the Manada Creek watershed is central to our original focus area of southern Dauphin County. The name also represents the Native American history of the area and the connection of water and land to all living things. Manada Conservancy works with landowners who voluntarily wish to preserve their land and its natural resources for the future. Manada Conservancy's preservation service area now includes all of Dauphin County, Pennsylvania, with nearly 2500 acres preserved to date. Our free education programs are popular and varied and draw from a multi-county area.
How we are funded:
Manada Conservancy is a membership-based non-profit, relying on the support of community members like you to fulfill its mission. More than 70% of our revenue comes from our membership and individual contributions. Throughout the year we host several fundraising events including our annual native plant sale. Other avenues of funding include non-member contributions, memorial contributions, business and corporate sponsorships, in-kind donations, Earthshare payroll donations, internet donations, car donations, grants, bequests and planned giving. Visit our Get Involved page for more information about any of these options.
Giving Nature the Green Light: Manada Conservancy

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Количество элементов в массиве Подскажите функцию в PHP, которая считает сколько элементов в массиве. count() не работает.
A: Хм... Ну раз count() не работает, придется написать свою функцию... )
function count2($a = array())
{
    $c = 0;
    foreach ($a as $t)
        $c++;
    return $c;
}

Как вариант...)
А вообще, count работает, если правильно использовать...)

redpajama_set_name: RedPajamaStackExchange


We have just finished filming for our Rwanda training DVD, bringing us one step closer to its launch! The 30-minute film showcases the skills of our existing Rwandan Local Partners to illustrate basic teaching points relating to music therapy. The hope is that we can share good practice with other local workers who are motivated to enhance the care they are currently offering to people with disabilities in Rwanda.


text:
Home›News Now›Theresa May becomes latest Brexit casualty, quits as British PM
Theresa May becomes latest Brexit casualty, quits as British PM
London, May 24, 2019 (AltAfrica)–Theresa May has bowed to intense pressure from her own party and named 7 June as the day she will step aside as Conservative leader, drawing her turbulent three-year premiership to a close.
She made the announcement after a meeting with Graham Brady, the chair of the backbench 1922 Committee – which was prepared to trigger a second no-confidence vote in her leadership if she refused to resign.
May's fate was sealed after a 10-point "new Brexit deal", announced in a speech on Tuesday, infuriated Tory backbenchers and many of her own cabinet – while falling flat with the Labour MPs it was meant to persuade.
Theresa May becomes another Brexit casualty, quits as British PM
The leader of the House of Commons, Andrea Leadsom, resigned on Wednesday, rather than present the Brexit bill to parliament.
A string of other cabinet ministers had also expressed concerns, including Sajid Javid, Jeremy Hunt, Chris Grayling and David Mundell.
In particular, they rejected May's promise to give MPs a vote on a second referendum as the Brexit bill passed through parliament, and implement the result – which they felt came too close to endorsing the idea.
The prime minister will remain in Downing Street, to shoulder the blame for what are expected to be dire results for her party at Thursday's European elections – and to host Donald Trump when he visits.
The 1922 Committee will set out the terms of a leadership contest, to kick off on 7 June, which is expected to last perhaps six weeks.Q&A
How do Conservative leadership elections work?
The former foreign secretary Boris Johnson is the front-runner to be Britain's next prime minister; but more than a dozen senior Tory figures are considering throwing their hats into the ring.
In the cabinet, Rory Stewart has already said he will stand, while Jeremy Hunt, Michael Gove, Penny Mordaunt and Sajid Javid are all likely contenders.
May's departure came after three years of wrangling with Brexiters on her own backbenches about what future relationship with the European Union they would be prepared to accept.
That became considerably more difficult when she lost her majority at the 2017 general election, after spearheading what was widely regarded as a disastrous campaign, promising "strong and stable leadership in the national interest".
Brexit is likely to dominate the race to succeed May, with time increasingly tight for a new team to set out any new direction before the deadline of 31 October for Britain's departure from the EU.
May's longtime friend Damian Green, the former first secretary of state, defended her record on Friday.
"All prime ministers, in the end, take responsibility for what happens on their watch, but I think that it's undeniable that suddenly and unexpectedly becoming prime minister after the seismic shock of the Brexit referendum meant that she was dealt an extremely difficult hand to play. And the truth is that having an election a year later, which cut the Conservative party's majority, then [made it] impossible."
Green told BBC Radio 4's Today programme: "The fact that parliament has not been able to get a Brexit deal through has led to the impatience, bordering into contempt, for the political class and the amount of hostility and borderline violence is something we have not known for a very very long time." GUK
Nigeria:Lagos-Ibadan rail project'll be in April 2020 ...
Nigeria: Don't Sweep General Alikali's Murder under ...
AfricaNews NowTechnology
South African teens make historic flight to Namibia in homemade plane
AfricaEnvironmentNews Now
Rwanda launches national plan for Paris Agreement on climate change
Bayelsa: Police inaugurate task force to mop up illegal firearms
UN Chief Asks Donors to Back G5 Sahel Force On Visit To Mali
UNIDO, African Union to share quality infrastructure best practices for sustainable development
Insecurity forces Kenya to postpone vote in four counties
Nigeria: Don't Sweep General Alikali's Murder under Carpet, MURIC Warns FG | Alternative Africa 24 May, 2019 at 15:22 Reply
[…] Theresa May becomes latest Brexit casualty, quits as British PM […]
May Leaves, But Brexit Remains By Thomas Raines | Alternative Africa 24 May, 2019 at 16:19 Reply
HealthNews Now
Overweight babies may have lower brain in childhood-Study
AfricaBusinessEditorialsNews Now
AfDB Presidency: Why Africa's future will be brighter if Adesina is given a second tenure
Nigeria Saves N13bn through IT Clearance in Two Years


text:
Vote Today in CityBeat's Best of Cincinnati 2023
Northern Kentucky News
Cincinnati Guides
BLINK Cincinnati
A&C Slideshows
Drinks News
Food Slideshows
Best of Cincinnati
2023 Best Of Ballot
Perkopolis Deals
Noble Romans, ambitious astronomers, fairy tales and one bad girl
By Rick Pender on Fri, Apr 22, 2016 at 9:56 am
"name": "Real 1 Placeholder",
Josh Katawick (Cassius) and Brent Vimtrup (Brutus) in Julius Caesar at Cincy Shakes
You have more theater choices this weekend than time, I suspect, so choose carefully depending on the kind of show you most enjoy.
If it's a classic, I suggest you check out Julius Caesar at Cincinnati Shakespeare Company. This tale of one of history's most memorable political assassinations is one of Shakespeare's shorter plays, about two hours and 15 minutes. But it's action-packed with a lot of intrigue, soul-searching and emotions that ebb and flow. Cincy Shakes relies on its acting ensemble to fill these iconic roles, and they bring them to life more vividly than I've seen in a long time. Josh Katawick is especially engaging as the leader, "lean and hungry" Cassius, whose motives are not far below his ambitious surface; Brent Vimtrup is Brutus, caught up in the plot for reasons of principle rather than envy, and his subtle performance of this conflicted man is compelling. Veteran Nick Rose is the blustery soldier Marc Antony, who's actually a subtle manipulator of opinion. (We'll see more of him next month when Cincy Shakes move on to Shakespeare's other Roman play, Antony and Cleopatra). Through May 7. Tickets: 513-381-2273.
An engaging new play, Lauren Gunderson's Silent Sky, is onstage at Know Theatre, the story of Henrietta Leavitt, a woman of science from a century ago when women were not expected to have meaningful insights. But drawn to the mysteries of astronomy, she tirelessly made advances despite many barriers. Maggie Lou Rader plays the feisty woman, and her moral support from two older women, played by Annie Fitzpatrick and Regina Pugh, has elements of humor. This is a well-acted, well-staged play (direction by Know's Tamara Winters), worth seeing. I gave it a Critic's Pick with my CityBeat review. Through May 14. Tickets: 513-300-5669.
The 2014 movie of Stephen Sondheim and James Lapine's Into the Woods featured Meryl Streep, Anna Kendrick, Emily Blunt, James Corden and Johnny Depp. A production currently onstage at Northern Kentucky University doesn't have that kind of star power, but the student cast does an admirable job with a show that places extraordinary vocal demands on singers. Director Jamey Strawn hit upon an imaginative framing device for the legendary fairy tale mash-up, setting it in a library where a young boy (played with a mischievously expressive demeanor by Charlie Klesa, a sixth-grader at Mercy Montessori), hides away for an overnight adventure of reading and fantasizing. As giants threaten the kingdom, books tumble from the library's two-story-tall shelves. Into the Woods requires a big cast, and more than 20 NKU student actors plus a stylized wooden cow are clearly committed to giving their all to this production. Opening night on Thursday was an enthusiastic full house. Through May 1. Tickets: 859-572-5464.
Neil LaBute's plays traffic in complex, often ironic, manipulative situations, frequently brutal stories of abusive, selfish behavior. The Shape of Things, presented by New Edgecliff Theatre at Hoffner Lodge in Northside, is that kind of story — about Evelyn, an ambitious young woman who makes an art project of Adam, another student who thinks their relationship is a love affair. Rebecca Whatley and Matthew Krieg handle these complicated roles believably, but you'll walk away wondering about their motives — she's cold, he's clueless. It's a compelling, disturbing story that makes for an evening of edgy, psychological theater. Another Critic's Pick with my CityBeat review. Through April 30. Tickets here.
There's a touring production of Disney's Beauty and the Beast onstage at the Aronoff Center through Sunday. It's an entertaining, visually captivating production. There's nothing new about it, to be sure, but the young cast carries off the sprightly songs and choreography with lots of energy. I wish there was a little more heart and a little less clowning, especially by Sam Hartley as the Beast, who's meant to be a tragic hero. The chemistry between him and Brooke Quintana as Belle is in the script, but it only shows up intermittently onstage. Nevertheless, Wednesday night's full house with lots of kids dressed for the evening clearly had a good time watching the story unfold. Through Sunday. Tickets: 513-621-2787.
Quick Notes: True Theater is back for another quarterly evening of storytelling on Monday evening at 7:30 p.m. Know Theatre. This time the theme is True Gay, so it will be enlightening to hear the personal reminiscences that get shared. … At UC's College-Conservatory of Music this weekend, the drama program presents a staged reading of Grace Gardner's new script, Very Dumb Kids, tonight 8 p.m. and Saturday at 2 and 8 p.m. It's the beginning of a new play commissioning initiative that will foster new works. … This is the final weekend for David Mamet's Glengarry Glen Ross at the Incline Theater in East Price Hill and for Jason Robert Brown's musical, The Last Five Years, at The Carnegie in Covington.
Rick Pender's STAGE DOOR blog appears here every Friday. Find more theater reviews and feature stories
New Edgecliff Theatre,
Northern Kentucky University,
Cincinnati Shakespeare Company,
Know Theatre,
Aronoff Center,
onstage,
Scroll to read more News Feature articles
Crown Restaurant Group's Newest Restaurant, Five on Vine, Opens in Over-the-Rhine
By Katherine Barrier
Moerlein Lager House's Fire & Ice Weekends To Feature Ice Bar With Drink Luge, Fire Performers and Heated Igloos
Join CityBeat Newsletters
Amazon Air Hub Employee Says He Was Fired for Union Organizing
By Madeline Fening
Guest Commentary: No, Guns Do Kill People. And the Solution is Glaringly Obvious.
By John L. Micek, Ohio Capital Journal
Kim Kardashian Came to Ohio to Talk Kevin Keith, Whose Case Now Rests in Gov. Mike DeWine's Hands
Cincinnati Bengals Lose AFC Championship but Promise to Keep 'Building a Legacy'
By Allison Babka
Poll Workers Needed for Hamilton County Primary Election in May
Guest Commentary: Why it's Easier to Catch a Cold, the Flu or COVID in the Winter
Guest Commentary: Pain of Police Killings Traumatizes Black People and Communities Across U.S.
By Denise A. Herd, The Conversation
Ohio House Committees Have Been Formed and It's Not Great for the LGBTQ+ Community
By Ken Schneck, The Buckeye Flame
Win Stuff!
CityBeat Events
The Burger Issue
The Pizza Issue
811 Race Street, 4th Floor
© 2023 Cincinnati CityBeat


text:
Oreocarya interrupta är en strävbladig växtart som beskrevs av Edward Lee Greene. Oreocarya interrupta ingår i släktet Oreocarya och familjen strävbladiga växter. Inga underarter finns listade i Catalogue of Life.

Källor

Strävbladiga växter
interrupta

redpajama_set_name: RedPajamaWikipedia


text:
Interview with Prime Minister Viktor Orbán on the Kossuth Radio programme "Sunday News"
Prime Minister Viktor Orbán
Katalin Nagy: Around five thousand healthcare workers in Hungary have already been vaccinated against the coronavirus. According to news reports, at present some eighty thousand vaccines are available. I'd like to welcome Prime Minister Viktor Orbán to the studio. What dictates the speed of vaccination? I'm asking this because we've heard that in Israel almost a million people have been vaccinated in just two weeks.
Happy New Year! A warm welcome to your listeners. This is a simple technical issue. We have a vaccination plan. If we don't have enough vaccines for everyone, the vaccination plan determines which groups of people should be vaccinated, and according to what schedule. This is why at this stage we're now vaccinating doctors and nurses working in the healthcare system – especially those working in intensive care units. These will be followed by other healthcare workers, because they're on the front line. And so the technical implementation of vaccination is adjusted to that quantity. We have enough doses of vaccine for 35,000 people, and we can administer these at more than twenty designated vaccination points in hospitals. But if tomorrow morning, say, several million vaccines arrived in the country, we have a plan for the designation of vaccination points which would enable us to carry out rapid mass vaccination at least as well as the Israelis – or perhaps even better.
But will a million vaccines arrive here?
What I'm saying is that the limitation on mass vaccination in Hungary isn't a lack of technical capacity. In Hungary we have more than ten thousand network termination points in premises which are used as polling stations in elections. When a very large quantity of vaccines arrives and we need to vaccinate large numbers of people all at once, vaccination points will not only be set up in healthcare institutions, but also elsewhere, in buildings where we have these network termination points – more than ten thousand of them. You'll need to go to the locations where you normally vote in elections. For the time being, however, I'm afraid there's no danger of a live test of this system, because as far as we know at the moment we won't be receiving millions of doses at once. The European Union is dealing with vaccines coming from the West. We – the 27 Member States – have agreed that we won't enter into separate contracts with pharmaceutical companies on an individual basis; history will decide whether or not this was a good decision. Instead of this we're jointly entering a single contract and placing a single order, and then Brussels will distribute the vaccines among the Member States as fairly as possible. I'm not satisfied with the speed of this, because there are manufacturers whose products were available in Canada, Britain and Israel sooner than in the European Union. But this is the responsibility of the Brusseleers, and they're dealing with it. We're taking care of Eastern relations, because Brussels isn't dealing with them. Nevertheless, people have two legs not one, and so it's better to stand on two legs; this is why, in addition to Western vaccines, we're also making enquiries about vaccines and therapeutics developed in the East. We know that the Russian vaccine is good, but there isn't enough of it and there probably won't be, because the production capacities over there are limited. On the other hand the Chinese vaccine appears to be more promising, and it seems that it will be possible to access larger quantities of that sooner. In an ideal scenario one would be able to choose whether one wants to be vaccinated with a vaccine from the Western world or with the Chinese vaccine. The Chinese vaccine isn't available yet, however. Right now our scouts, our pharmaceutical monitoring teams, are in Beijing checking the laboratories where the Chinese vaccine is being manufactured; and after that the Hungarian authority will have to make the final decision. This is where we stand right now on the vaccine front.
You've said that hopefully the vaccines will be distributed fairly in the European Union. But will this be the case? There are reports – and the Italian press is in a frenzy over this – that Germany has bilateral access to far more vaccines than the other EU Member States. How is this possible?
I'm not quite sure about the cause of the Italians' anger, but we could also take advantage of that option. We've placed joint orders for vaccines from Western pharmaceutical companies, but those companies have additional capacities – as they're not only supplying Western Europe or the European Union, but also South America and the United States. And it's possible to try to come to separate agreements about supplies over and above the EU quota. We've also sent out agents who are trying to find out whether it's possible to conclude a bilateral business agreement with one or another pharmaceutical company or vaccine manufacturer for supplies over and above the European quota. So far we haven't succeeded, but I can see that there is such a bypass route. This isn't affected by the agreement, and if the Germans are doing it they're not violating the agreement, because that said that we'd order a fixed quantity together, but we never said that countries wouldn't be allowed to conduct separate individual negotiations. This is possible, but over and above the quota that the 27 Member States have reserved. That is what takes priority.
Is there a precise timetable in the European Union about when vaccines will arrive? You're saying that at the moment there's no hope of receiving millions of doses, and that we can only hope for a slower rate of delivery.
Reports are variable, and sometimes contradictory. There's a Hungarian delegate in the body which reviews these issues, meaning that we're at the top table, and we're receiving rapid reports from there. But it wouldn't be just or fair to hold the EU responsible for this: we can't blame Brussels for the fact that manufacturers themselves are unable to provide precise delivery dates and quantities. From that point of view, Brussels is also at the mercy of large pharmaceutical companies.
According to one medical opinion, it would be desirable to vaccinate 40 to 50 per cent of the population by March, because then it would be possible to avoid a third wave. Do you think there's any chance of this?
We must be careful with these hypothetical situations, and we must keep our imaginations in check in some way. So it feels good to speculate about how many people we could vaccinate at a certain rate, what the optimal rate would be, and what would be the best way of saving lives or the economy. But I refuse to give in to that temptation: I'm reining in my imagination, because the question is whether vaccines are available or not, and there's no point in speculating. When the vaccines are physically here, we will vaccinate people. And if we have large quantities, we'll be rapidly vaccinating large numbers of people. If deliveries are slower, we'll be vaccinating fewer people at a slower rate. What we would like is irrelevant. There's no point in speculating; instead we should focus on the detailed work that will enable the rapid placement of the vaccines we receive. This is what I suggest to everyone. Of course it would be best if we could vaccinate everyone tomorrow morning.
Do you think that members of the public have access to enough information about the vaccine? An MEP for the MSZP [Hungarian Socialist Party] has said – perhaps for purely politically motivated reasons – that he can't see that the Government has a vaccination plan.
First of all, the Chief Medical Officer holds daily press conferences on behalf of the Operational Group. She speaks slowly and comprehensibly, so that understanding what she says isn't an impossible challenge – even for an MSZP Member of the European Parliament. We always provide the latest information on precisely where we stand. I'm only too happy to talk about our vaccination plan: about how healthcare workers are the number one priority, followed by those working in social care; they're followed by the elderly, who are most at risk; that the elderly are followed by law enforcement officers, and so on. We've already stated this so many times, but there's no reason not to say it for the hundredth time. Aside from the plan for the order in which people are vaccinated when we have fewer vaccines, there's another vaccination plan: the technical implementation of mass vaccination. Information on this will be provided for everyone when vaccines are available in large quantities; until then, we can only talk about it in a hypothetical sense. Earlier I said that we have more than ten thousand network termination points suitable for mass vaccination. This was to indicate that in terms of implementation there's no obstacle to rapid mass vaccination in Hungary. The only problem is a shortage of vaccines.
What progress has been made in organising a Hungarian vaccine manufacturing facility? I've heard that in May an agreement was concluded between the University of Debrecen and the National Centre for Public Health.
After the outbreak of the virus most countries realised that they must have capacities of their own, even though this is a loss-making strategy in normal times when there's no pandemic – as that major industrial capacity would be unable to manufacture products for sale, or only to a limited extent; and so in normal times they'd tend to make a loss. Therefore everyone is cautious about the construction of such facilities, such vaccine manufacturing plants. In the first wave of the epidemic we learnt that while they may well generate losses in normal times, in a pandemic they can save lives – many hundreds or many thousands of lives. So these capacities must be created at a national level, and even if they generate losses in normal times Hungary must have its own capacities, permitting rapid mass treatment in a pandemic. With this in mind, we've started building plants, we've launched research projects, and Hungarian vaccine research projects are also in progress. We should return to this subject when we have some tangible results. Nevertheless, we've done everything we can to be prepared for the next global pandemic – the timing and background of which is completely unknown. In Hungary between the two waves we did everything possible to have enough ventilators, doctors and hospital beds, and to supply our hospitals with protective equipment – which is why we went into the second wave fully armed and prepared. But in addition to this we've been doing everything we can to have medicines, therapeutic drugs we produce ourselves and, if necessary, to have our own vaccines and the capacity to manufacture them. This work is in progress. Incidentally, everyone's using this word Pfizer – that's so difficult to pronounce, but I think that's the right way; but we should note that in fact it's a Hungarian vaccine. I've spoken to the professor...
Katalin Karikó...
That's right. I had a long conversation with Katalin Karikó on New Year's Eve, and I found out that although a German professor is also involved in this, those working on – or directing – the research project are mostly Hungarians. With only a little exaggeration we can say that this is a Hungarian vaccine: it's the product of American money and Hungarian brains. We have every reason to be proud of this scientist: a lady from Kisújszállás, as I found out, whose daughter is a two-time Olympic rowing champion, competing for the United States. I think she won those medals at the London Olympics, and she's also won some world championship titles; so we can be truly proud of the entire family. I also found out that they left Hungary in the mid-1980s; at that time their little girl was only two years old, but she can both speak and write Hungarian – which clearly shows that the Professor's heart is in the right place.
As we're talking about the vaccine, I'd like to ask your opinion on a statement made by the head of an institution that's associated with the Left. Péter Krekó [of Political Capital] told the Brussels portal Politico – and I'll quote him verbatim – that "If you undermine the willingness of people to vaccinate themselves, Orbán can suffer the political consequences".
There are no limits to evil, only to our imagination. You'll rarely hear a more wicked statement than that. At any rate, we can say that Hungarian health care – which is continually decried, denigrated, and sometimes even reviled – has stood its ground in this long two-wave virus much better than the healthcare systems of many other countries considered to be in a better position than Hungary. Here people haven't died due to a lack of provision in hospitals. Here patients haven't had to lie in beds in hospital corridors. Here doctors haven't had to decide which patient should be kept alive because a shortage of ventilators has forced them to choose who will be put on them. We've had no such situations: Hungarian nurses and Hungarian trainee doctors – that is residents, or newly qualified graduates preparing for their final specialist exams – have all stood their ground magnificently. And of course it's emerged that while technical equipment is important in health care, because one really does need protective equipment, what matters most is human quality. And in terms of human quality Hungarian doctors and nurses have performed outstandingly. And I can say that the same has been true in the education system. Teachers have readily agreed to change over to online teaching: despite all the difficulties involved, and despite provocation, they've been prepared to work, even in the midst of a pandemic. We're also putting them to the test now, and thanks to them, many hundreds of thousands of jobs in Hungary have been saved; because if they hadn't agreed to continue teaching, parents would have had to stay at home with their children instead of going to work. So we should salute them, too. And in general, if you follow the news from various countries about how people are cooperating and pulling together in the fight against the virus, we must also rank Hungary in one of the higher categories. Earlier we would often say that we're a divided people – this is what we've been taught, and we ourselves tend to spread this notion. At times there are concrete examples of this, but on the whole, when we're in great distress, it turns out that Hungarians are strong in terms of discipline, unity and a sense of responsibility for one another. Here there haven't been any demonstrations against the restrictions; even though no one liked any of these restrictions, everyone understood and accepted them. As a method, the national consultation has also been very helpful. In the summer we asked the public about where we should place the emphasis in the defence operation against the virus, and what they thought about the various elements of the operation. So we have every reason to be proud, especially of those working in health care. We've fully equipped our hospitals, and we shouldn't forget that in the midst of the pandemic we've enacted pay rises for both nurses and doctors at a rate and pace that I think exceed the capacities of the Hungarian economy and Hungary as a whole.
Protection of the economy. The most recent of the successful economic protection measures that we've heard of was the Government's support for hotel operators, paying them 80 per cent of the value of revenue lost due to cancelled reservations. I think this must have been a great help to players in the tourism industry, but what additional measures can be expected? We know that some local governments are very unhappy with the cancellation or halving of the local business tax, because they say that the Government is thereby putting local governments in an impossible position.
Every tax cut puts those collecting taxes in a difficult position, but everyone must appreciate that now we must protect jobs, and it's businesses that provide people with jobs. Businesses can offer people jobs if they're subjected to the smallest possible tax burdens. In general tax reductions are unpopular with bureaucrats; and, as I see it now, not all local governments appreciate the importance of these measures. I understand that it's difficult for them, but in times of crisis taxes must be reduced. The state must reduce taxes, and local governments – the local representatives of the state – must also reduce taxes. Indeed the banks must also make a contribution, as during the repayment moratorium they're unable to collect the interest on loans which were taken out earlier. We've extended this moratorium, which we introduced in the spring, to cover both businesses and private individuals right up until July. So in this situation everyone must make a contribution, and tax reduction points in the right direction. I know that the Left doesn't see the solution in tax reductions, but generally in tax increases; but that's a different philosophy, a different way of thinking, and I don't believe in it. I believe in the need to help businesses into a position which enables them to provide jobs for as many people as possible. And facts appear to favour this school of thought, our way of thinking, as we mustn't forget that we've managed to preserve jobs even during the second wave of the virus. Compared with this time last year, before the pandemic, unemployment has increased by something over sixty thousand. And when I look at the European statistical rankings for unemployment, Hungary still has the third best figures. In terms of curbing unemployment in the midst of the crisis, the ranking is still the following: the Czechs, the Germans, and then the Hungarians. This means that we've managed to save jobs. And what I believe is even more important, or at least as important, is that the economic consequences of the pandemic haven't resulted in the country needing to renounce a single one of its major plans – including the reintroduction of the "thirteenth month's" pension, which is starting this month. We haven't had to reschedule, cancel or forget this measure, and we shall go ahead with it. And neither have we had to retreat from family support or reschedule our home creation plan: on 1 January we were able to launch Hungary's biggest ever home creation programme. So during the pandemic Hungary has defended all its large-scale plans and goals. I think that this is a major achievement. Naturally the credit for this goes primarily to businesses, and secondly to those working in government economic departments.
Can we expect more economic protection measures like this, or will they emerge only after the Government has assessed the situation?
Well, in the decade ahead – and in the rest of this year – new horizons will open up before us. It's difficult to talk about these at present, because they're so at odds with our present misery, when we still need to get home by eight in the evening, and all the disease control restrictions are making our lives more difficult. It will be hard to believe me when I tell you what I'm talking about, so I'll speak very cautiously. The fact is that the ten years between 2010 and 2020 were our most successful decade in the past one hundred years. Serious economists don't really dispute this. The minimum wage has doubled, the average wage has doubled and households' savings have trebled. This doesn't mean that everything in Hungary is as it should be; it only means that the economy has done well in the past decade, and we've come close to what is effectively full employment – perhaps even reaching it in some years. Now I can say that the next ten years could be even better. The Hungarian economic system is about to undergo a change in dimension which few people today appreciate; but we've accumulated enormous development resources and have identified absolutely huge programmes. In ten years' time we'll hardly recognise the economy. It will be a digitalised economy and a circular economy: an economic system that can recycle its own waste, with a completely different energy system and dramatically reduced carbon dioxide emissions; and we'll also be able to maintain full employment and grow noticeably faster than the western half of the European Union. A completely different world will unfold before us: in the decade ahead people's wealth will increase, there will be more affluence, they'll live in larger homes, and they'll also have more children. This can be predicted with great certainty. We've prepared the plans for this, and we have the development plans. Mihály Varga's team has allocated the necessary funds, while the plans for the utilisation of those funds have been developed by Minister Palkovics's team. So the decade ahead could be a fantastic decade – and that's also true for this first year of it. The first two – or perhaps three – months of 2021 will be miserable, as a result of the virus and the restrictions. But once we've emerged from that – and that depends on the available quantity of vaccines – we'll set out on an upward path at seemingly incredible speed. The world economy could also easily embark on a path of unprecedentedly rapid growth; up until the end of the year, major think tanks released quite a lot of studies on this. That's the school I belong to, and I see the potential in it. And the Hungarian economy will need to grow even faster, given that the crisis management method we've adopted is different from that pursued in the West; because while they've focused all their efforts on maintaining consumption levels, we've focused on preserving jobs. We've used all possible resources, loans and budget deficit opportunities for protecting investments and launching new ones. The investments we decided on in 2020 will start bearing fruit in 2021–22. At the same time I also expect a rapid international recovery, with Hungary's recovery being even more rapid. I believe that we're standing on the threshold of great times. What I'm talking about doesn't match the feeling we get when we leave this studio and walk through this gloomy, grey, damp, dismal weather. But everyone knows that spring will come, the country will be green again, the sun will shine, the crisis will be over, we'll be able to get together again, and normal life in Hungary will resume. And it's against this background that we'll see the launch of the industrial capacities for which the investment is now being made.
The Government's desire to see investments also requires investors. What are the prospects? Last year, in 2020, did foreign investors come to Hungary to do business here, despite knowing that the situation was difficult everywhere across the world?
Investors are coming both from the West and the East, with almost half of them now coming from the East. This is a fine thing, and Hungary is a good place, a promising place. But I believe that investments by Hungarian businesses are even more important. It's no accident that I've asked local governments to accept a reduction in the local business tax, because this affects small and medium-sized enterprises – most of which are Hungarian. The money that local governments aren't able to collect now won't go to the Government, but to Hungarian small and medium-sized businesses and the people working in them. This is the right path. I trust that there will also be growth in the Hungarian sector of the Hungarian economy, because the Hungarian economy comprises two sectors: foreign investors and Hungarian investors. In fact, by the end of the decade we should achieve or reach the point at which the profits repatriated to Hungary by Hungarian-owned businesses investing abroad equal the amount that foreign businesses operating in Hungary take out of the country. This will take a few years of hard work. We must support investment abroad, both within this region and beyond. I think that by the second half of the decade these two amounts – the profits taken out of the country and the profits repatriated by Hungarian businesses – will start converging; and by the end of the decade I hope they'll be in balance. Once that's achieved we'll have a safer economy that's less vulnerable to the outside world.
Returning a little to practical issues, when can we expect the restrictions to be lifted? What should we pay attention to?
Cecília: we should pay attention to [Chief Medical Officer] Cecília Müller, because she will announce the good news. Perhaps I don't need to outline the difficulties involved, but phasing is a difficult task. Once we see that vaccines will be available, deciding how long before their arrival we should ease the restrictions is a serious question – particularly if you can't be sure that the vaccines will indeed arrive. If you start easing the restrictions before the date you expect the vaccine to arrive and it doesn't arrive, then you'll spark another wave of infections which will spread across the country. Everyone here would like to open up, and we feel the huge desire to rid ourselves of this misery; but if the timing isn't right, we could see the start of a third wave. We've fought back the second wave: it's clear that we've managed to bring it down, and even though we haven't yet crippled it, the struggle will now continue on the floor. We've brought it down onto the wrestling mat, and now we only need to pin it down. The numbers clearly show that we've curbed the second wave; the task now is to not set off a third wave – to prevent the start of another wave.
Thank you for this interview. You've been listening to Prime Minister Viktor Orbán.
Samisdat 15.
Dec 20, 2021 - Prime Minister Viktor Orbán
Samizdat No. 15.
Samizdat No. 14
On December 8th, Angela Merkel leaves the German Chancellorship. A piece of the life of Central Europeans will go with her.
Dec 6, 2021 - Prime Minister Viktor Orbán


MUMBAI: Fresh from a much awaited victory, Royal Challengers Bangalore will be aiming to maintain winning momentum and spoil Mumbai Indians' party when the two sides face-off in the Indian Premier League here on Monday.
Apart from Kohli (270 runs from 7 matches) and ABD (232 runs from 7 matches), RCB's other strength has been the pint-sized wicket-keeper batsman Parthiv Patel. Despite his father being in the ICU, Patel has shown commitment and amassed 191 runs in seven games. However, the likes of Akshdeep Nath, Moeen Ali, Marcus Stonis and Colin De Grandhomme should score heavily.


*Damn, some people are really upset Zoe Saldana is about to play Nina Simone.
Yikes, he's not playing either.
First of all, he writes that Nina Simone is much more than what the film is about to be, especially since the creators of the film didn't consult any of the singer's family members. Beyond that, he says the manner in which the film is being handled is sloppy, and does not reflect Nina Simone's philosophy.
The discussions of the issues are as complex as they are controversial; however, they are important conversations to have and keep having. The most frustrating people are the ones who imply everyone should just shut up and "wait and see" or "leave them alone." That kind of attitude and oppression is not in the spirit of Nina Simone whatsoever. Quite the opposite. Nina was vocal, defiant, a warrior, an activist. She would not have simply shut up and sat down. She would've shown up at the studio with a shotgun to speak with Ms. Mort and slapped the makeup off Zoe. So let's get that straight first. We're going to talk about this and those of us with strong, impassioned opinions are going to express them.
The script, written by Latin American writer and first time director Cynthia Mort, is based in a series of lies. That is our starting point. Cynthia calls this her "artistic license." Under that umbrella what Cynthia is implying is that she can pretty much do whatever the hell she wants and she doesn't have to listen to anyone. Cynthia has focused her story on Nina's relationship with her personal assistant, Clifton Henderson, himself a controversial person in Nina's life. Well before Nina's death, before talks about a movie, there were issues expressed about Clifton's intentions regarding Nina and his efforts to seemingly keep her isolated. He was around Nina for the last few years of her life. He can be seen with her in a filming of Nina's concert in Brazil in 2000, during shots of Nina being interviewed in a boat (http://vimeo.com/ninasimone/livebrazil).
There's more. Lots more. Read the full letter here.
i love Zoe. i think she is a brilliant actress and gorgeous. i do however feel she is not the right fit for this role and not so much because of her complexion but other factors. in addition it does disturb me that other worthy and capable AA actresses who are not mainstream were overlooked for this role whom i think would have been a better fit.
I will not support this movie.
I will definitely…………….NOT BE SUPPORTING THIS B.S. And on top of all of that, y'all……….Clifton Henderson isn't even straight, according to Nina's daughter. So, yeah.


text:
Rahm hoping accommodation switch has Open benefits at Portrush
Lewis Hamilton not ruling out Ferrari move
Five-time Formula One champion Lewis Hamilton has a two-step plan for keeping the new generation of talented drivers behind him next season: match their youthful hunger and outwit them with the experience that comes with age.
That year, a baby-faced, debuting Hamilton missed out on a title by just one point to Ferrari's Kimi Raikkonen.
"The way I've always approached it is I've just been really thankful for the ones I have".
"I've had some great battles and overtakes there and I'm hoping for another exciting race". Whether or not I'm going to have the chance to win more, who knows.
"The 91 wins that he has, for example, that's a lot of wins".
More news: FSU Shuts Down Rival Gators in Opener, 81-60
"Then, to have to dig myself out of that bottomless pit that I was in, to come back in 2008, be strong, win the first race and then get to the end of the year again.I don't know how I would have come back from it".
Hamilton said Schumacher was a "genius" to implement himself into Ferrari the way he did in the mid-'90s and set up a streak of five straight titles from 2000-2004.
Lewis Hamilton has confessed that, although it would be very hard to imagine himself performing for another team apart from Mercedes for the remainder of his career, he won't rule out a move to Ferrari, saying he would "never say never" to the switch. "But you can never say never", Hamilton said. "Michael's [Schumacher] still quite far ahead in race wins so you can have to say he is still the GOAT [greatest of all time]".
"To do what he did at that time, when everything was so unsafe, my respect is so high for him".
"Having these opportunities to do these other things, tapping into a different part of the mind, naturally doing these things outside a race, it has nothing to do with being a racing driver but I think it's keeping the brain stimulated and knowledge is power. But I feel like I still have that hunger they are coming in with". We have no idea, but like always that won't stop us from guessing!
Democrat Whitmer wins MI governor's race
Whitmer ran as a pragmatic liberal who was comfortable working across the aisle in order to win support for policy initiatives. They also say it would allow for greater regulation of pot usage and for the police to focus on more pressing problems.
Vijay-starrer Sarkar courts controversy with scenes on AIADMK govt schemes
The film got released in 408 screens across the state and thus making it the biggest ever release in the history of Kerala. The first-day collection in Chennai city was about Rs 2.37 crore and it didn't take a significant dip on the second day.
Robyn Denholm to replace Elon Musk as Tesla chair
The mid-priced Tesla Model 3 was the fifth bestselling passenger vehicle in America, according to the industry analyst Edmunds. Tesla said Ms Denholm, who is already chair of Tesla's audit committee, will step down from that role when she leaves Telstra.
Ahead of the Australian tour, the source added: "The Duchess doesn't want this, she does get exhausted . Prince William said "when he's there, he's brilliant" but "we need him there as much as possible".
Breaking Bad and Better Call Saul producing alums Mark Johnson and Melissa Bernstein are linked to the project, as well. It was not immediately clear if the film would land on TV or in theaters, according toThe Hollywood Reporter .
Several Injured In Shooting At Bar In Southern California, Says Police
The Ventura County Fire Department confirmed just after midnight that there had been reports of "multiple injuries" at the bar. The attack has been upgraded to a level 2 mass casualty incident indicating that there are between 10 to 20 injured victims.
Muslim women make history with wins in Michigan, Minnesota
She was born on July 24, 1976, to working-class Palestinian immigrants in Detroit and is the eldest of 14 children. For Tlaib, Tuesday's election marks the second time she will have made history in recent years.
Emma Thompson makes Prince William blush as she receives Damehood
However, Thompson didn't seem too bothered by the rejection. "He said, "This day isn't about me, it's about you". It was first announced in the Queen's Birthday Honours List in June.
Win or lose, Cruz and O'Rourke may remain political forces
He says there are more Republicans than Democrats in Texas, so if he can avoid conservative complacency, he'll win easily. That's within striking distance of the total number of ballots cast statewide during the last midterm elections in 2014.
Bizarre: Virat Kohli asks fan to leave India over minor reason
For the Indian skipper, the response to this was to say that those who have choices like this should not be living in India. He suggested, that those who didn't like watching Indian batsmen should consider migrating to another country.
Volkswagen Tarok pick-up concept unveiled in Brazil
The suck-squeeze-bang-blow is sent to all four wheels by a six-speed automatic transmission with a torque converter. Calling it a concept is a bit of a stretch, however, as the pick-up truck looks quite production-ready to us.
New Gallup Poll Finds High Anxiety Among Democrats on Election Day
AP reports that Democrats have won half of the seats they need to claim House majority; GOP picking up key Senate contests. Trump spent the day at the White House, tweeting, making calls, monitoring the races and meeting with his political team.
Trump warns House Democrats against investigating his administration
Second, in the wake of their House victory, Democrats are likely to be more confrontational and subject Trump to more scrutiny. Democrats won seats stretching from suburban Washington, New York and Philadelphia to outside Miami, Chicago and Denver.
New Zealand beat Pakistan as Boult takes hat-trick
In response Pakistan crumbled to 85-6, before Sarfraz Ahmed (64) and Imad Wasim (50) added 103 for the seventh wicket. Not since Darrel Hair no-balled Murali at the MCG has cricket witnessed a "chucking" controversy quite like this.
San Francisco Giants Hire Farhan Zaidi as Head of Baseball Ops
The most recent casualty to what has been widely regarded as one of the best staffs in baseball is general manager, Farhan Zaidi. Now, San Francisco has one who is armed with inside knowledge of its greatest rival.
Crypto hackers use Elon Musk's name to fleece Twitter users
Trump warns House Democrats about gridlock over investigations
US Midterm elections 2018: Democrats retake House, Republicans keep Senate
Doctors have called the drinks, "killing" the vessels
Kevin Harvick stripped of berth in NASCAR championship race
Maithripala Sirisena: Sri Lankan Parliament to reconvene on Nov 14
Managers detained after China firm forced staff to drink urine
Two buildings collapse in the French city of Marseille
Smith waived by Cavaliers; not likely headed to Lakers
Dylan Frittelli captures John Deere Classic, ticket to British Open
Rockets fined $25,000 for owner's Westbrook comments
Barcelona To Offer PSG 'Coutinho, Dembele And £36m' For Neymar
Juventus to be renamed in Federation Internationale de Football Association 20 as PES nabs exclusivity rights
Frank Lampard on Chelsea's transfer ban: 'I don't need new players'
Djokovic looks like he could catch Federer, Nadal
Chris Boucher named to NBA Summer League Second Team
British PM May to host victorious England cricket team
British Open 2019: Tiger Woods lauds Brooks Koepka despite apparent Portrush snub
Celtic reject improved £25 million Arsenal bid for Kieran Tierney
Ruthless Lampard wants Chelsea midfielder out of the club
Boxing great Pernell 'Sweet Pea' Whitaker killed after being hit by auto
Madden Ratings: See where the Bengals players are rated
Umpires made 'error of judgement' in awarding six overthrows - Taufel
South African legend Mark Batchelor shot dead
Steve Bruce 'resigns as Sheffield Wednesday boss' ahead of Newcastle move
Philadelphia 76ers: Betting on Ben Simmons is a no-brainer


This Astronomy On-Line Collaborative Project. Collaborative projects. Aimed at getting new people involved in variable star observing.
backyard amateur astronomy. Techniques for general observing and variable star analysis.
Gene Hanson (HSG) Phoenix, AZ, USA Welcome! Though I am interested in astronomy in almost all of its forms, my passion centers around the study (especially the observation) of variable stars.
Web page of record for the Fort Bend Astronomy Club's Asteroid Team. We chronicle our asteroid discoveries here. This site also features links to other asteroid, variable star, and weather sites.
Do you want to get involved in Space Science? There are many people who enjoy astronomy as a hobby; whether you use a telescope, binoculars, or just your eyes, it can be very rewarding and educational.
Variable Star Photometry AAVSO PHOTOELECTRIC PHOTOMETRY PROJECT CEPHEID VARIABLE STAR PROJECT ECLIPSING BINARY STAR PROJECT STARS WITH PLANETS PROJECT UNIVERSITY OF TEXAS COLLABORATION PROJECT ASU Homepage | Physics Home Page |Astronomy Research ..


After trying the make up foundations, certainly you will stick to it. Make up foundations are very much useful and friendly for your skin without resulting in glossy look. Applying powder foundation correctly will give added color to your face and conceal flaws and imperfections. So learn how to apply your powder foundation properly today.
Apply moisturizer. People with dry skin must do this step, but those who have oily skin can skip this step or apply a light moisturizer that give you a matte finish. You may also use your liquid sunscreen as moisturizer.
Pick a powder foundation Tmart make up that matches your skin tone. You can test the shade by applying it to your neck and jawline area–it should blend in perfectly.
Use a makeup puff or makeup brush. If possible, use a fluffy brush, and swirl it into the powder foundation. Tap off the excess powder from the brush.
Along with skin foundation, use powder or cream foundations too. The selections of these secondary foundations depend upon the characteristics of your skin. Silk foundations are found to be useful if your skin has dry nature. To avoid greasy appearance on skin, powder foundations could be adopted.
Put some powder on the sponge and dab it around the center of your face. Blend the powder outwards using gentle strokes.
The cheeks and the areas around the nose and under the eyes are prone to dark shadows and broken blood vessels. These will need the most coverage. You can use less around the hairline and at the ears.
Blend the foundation as you apply it paying particular attention at the hairline, jaw line, ears and eyebrows.
So do you have any special techniques you swear by to get a flawless foundation makeup? Share them! If you want to know that how to applying makeup in summer then follow these tips and get good looking in summer.


text:
Ikos Andalusia wins "Newcomer Luxury All Inclusive Resort Europe"
June 29, 2021 /in Press, Updates /by Alexandros Vasileiou
Open since May 2021, Ikos Andalusia is the first Ikos Resorts property to launch outside of Greece on the Spanish Costa del Sol. Now, the brand-new resort celebrates its first award at this year's Connoisseur Circle Hospitality Awards; with special recognition for "Newcomer Luxury All Inclusive Resort Europe".
Connoisseur Circle is a luxury travel lifestyle magazine hosting prestigious awards for the international hotel industry, selected by an expert jury. With a portfolio of multi-award-winning resorts, this latest accolade for Ikos is affirmation of the unrivalled, redefined concept of all-inclusive holidays offered.
With the Ikos Infinite Lifestyle concept, a limitless luxury holiday experience is combined effortlessly with the ease and comfort of All-Inclusive. The concept includes a variety of activities and experiences at the resort, such as menus curated by Michelin Star chefs in the six à la carte restaurants, a selection of 300 international wine labels and high-quality spirits. Furthermore, guests are also encouraged to explore their chosen destination with the Mini Drive Adventure where they enjoy their own Mini for the day, dining in the finest local restaurants, and admission to local museums all included in the cost of their stay.
"We are all very excited about this valuable award for the Ikos Andalusia. This award shows how efficiently and successfully Ikos Resorts continues to grow. Ikos Andalusia is the first hotel of our group outside Greece and brings the award-winning Infinite Lifestyle concept to Spain," explains Oliver Braun, Regional Director of Sales & Marketing (DACH)
While Ikos Andalusia is the newest hotel in the Ikos Resorts portfolio, this award is a timely message to our guests and employees that the standard of service and approach to carefree luxury holidays is of utmost importance to us, right from the start. With Private balconies, gardens and pools abound at Ikos Andalusia, over 400 contemporary rooms and suites take style, luxury and comfort to fabulous new levels, while the distinct Ikos luxury touches accompany every guest journey.
https://ikosresorts.com/ikos-content/uploads/2021/06/IR-image.jpg 750 1500 Alexandros Vasileiou https://ikosresorts.com/ikos-content/uploads/2019/02/ikoslogo.png Alexandros Vasileiou2021-06-29 13:02:402021-06-29 14:26:58Ikos Andalusia wins "Newcomer Luxury All Inclusive Resort Europe"
August 15, 2020 /in Updates /by Alexandros Vasileiou
IKOS RESORTS NAMED THE WORLD'S BEST LUXURY ALL-INCLUSIVE RESORTS
July 31, 2020 /in Updates /by Alexandros Vasileiou
Ikos Dassia in Corfu Crowned Top All-Inclusive in The World
Ikos Resorts is proud to be awarded multiple accolades in this year's TripAdvisor Travelers' Choice awards, the highest honour bestowed by the internationally-acclaimed travel review website. Based on reviews and feedback gathered from millions of travellers, Ikos Resorts has been recognised as the best all-inclusive resorts and luxury hotels in the world and in Europe, for the third consecutive year.
Ikos Dassia in Corfu has been crowned number one in the 'Top 25 All-Inclusive Resorts in the World', in Europe and Greece whilst Ikos Olivia in Halkidiki came in second place in the same categories. Both hotels were also recognised among TripAdvisor's 'Top 25 Luxury Hotels in the World', coming in the top 10 with Ikos Olivia receiving sixth place and Ikos Dassia awarded tenth place.
Highlights of Ikos Resorts' multiple accolades in this year's TripAdvisor Travellers' Choice Awards are:
Ikos Dassia: No. 1 in Top 25 All-Inclusive Resorts in the World; No. 10 in Top 25 Luxury Hotels in the World; No. 1 in Top 25 All-Inclusive Resorts in Europe; No. 1 in Top 10 All-Inclusive Resorts in Greece
Ikos Olivia: No. 2 in Top 25 All-Inclusive Resorts in the World; No. 6 in Top 25 Luxury Hotels in the World; No. 2 in Top 25 All-Inclusive Resorts in Europe; No. 3 in Top 25 Luxury Hotels in Europe; No. 1 in Top 25 Luxury Hotels in Greece; No. 2 in Top 10 All-Inclusive Resorts in Greece
Ikos Oceania: No. 12 in Top 25 All-Inclusive Resorts in the World; No. 4 in Top 25 All-Inclusive Resorts in Europe
Ikos Resorts is a collection of five luxury all-inclusive resorts in Greece and Spain including two recent openings in Kos (in 2019) and Corfu (in 2018) and a new opening in Andalusia, Spain, in April 2021. Guests can enjoy à la carte menus curated by Michelin starred chefs, a Local Discovery concept with museum passes and a MINI Drive adventure, 300 local and international wines selected by the Ikos Sommelier, beach waiter service, 24-hour room service, premium branded spirits in the mini bars, kids' clubs and more, all as part of the all-inclusive offering.
https://ikosresorts.com/ikos-content/uploads/2020/07/ikos5.jpg 719 1080 Alexandros Vasileiou https://ikosresorts.com/ikos-content/uploads/2019/02/ikoslogo.png Alexandros Vasileiou2020-07-31 06:12:202022-03-29 13:56:57IKOS RESORTS NAMED THE WORLD'S BEST LUXURY ALL-INCLUSIVE RESORTS
AN UPDATE ON 2020 REOPENING DATES FOR IKOS RESORTS
We are excited to have already started welcoming guests back to Ikos Olivia in Halkidiki, having reopened its doors from 1st July. Ikos Andalusia, our new hotel and first venture in Spain, will welcome guests for the first time on September 1st, while the opening date for Ikos Oceania has been postponed to August 1st until further notice
https://ikosresorts.com/ikos-content/uploads/2016/05/New-Ikos-Olivia-Aerial-Beach-DLX-1.jpeg 1456 2000 Alexandros Vasileiou https://ikosresorts.com/ikos-content/uploads/2019/02/ikoslogo.png Alexandros Vasileiou2020-07-15 17:19:492020-08-13 07:48:35AN UPDATE ON 2020 REOPENING DATES FOR IKOS RESORTS
IKOS ANDALUSIA OPENING WITH INFINITE CARE PROTOCOL™
July 8, 2020 /in Updates /by Alexandros Vasileiou
Ikos Andalusia opens its doors for the first time on September 1st, with the Infinite Care Protocol™ providing confidence and comfort with stringent health and safety procedures for a holistic care approach.
https://ikosresorts.com/ikos-content/uploads/2019/12/Ikos-Andalusia-_-Puerto-Banus-general_2880x1087.jpg 755 2000 Alexandros Vasileiou https://ikosresorts.com/ikos-content/uploads/2019/02/ikoslogo.png Alexandros Vasileiou2020-07-08 13:50:282020-07-15 17:17:55IKOS ANDALUSIA OPENING WITH INFINITE CARE PROTOCOL™
The key initiatives of Ikos Green are supported by a well-defined set of policies and measurable targets, all in line with the UN Sustainable Development Goals (SDGs). Our annual sustainability report for 2019 records our implementations and results this year
https://ikosresorts.com/ikos-content/uploads/2016/01/green-programme-04-header.jpg 1335 2000 Alexandros Vasileiou https://ikosresorts.com/ikos-content/uploads/2019/02/ikoslogo.png Alexandros Vasileiou2020-07-03 08:49:342020-07-08 13:51:14SUSTAINABILITY REPORT 2019
Reopening on July 1st, 2020 INFINITE CARE PROTOCOL
June 3, 2020 /in Updates /by Alexandros Vasileiou
Ikos Resorts open on July 1st with Ikos Olivia, welcoming guests to an exclusive, safe holiday haven. Opening dates for Ikos Oceania, Ikos Dassia an Ikos Aria will be announced in the coming weeks, Ikos Andalusia opens its doors for the first time on September 1st as recently announced. The Infinite Care Protocol™ by Ikos Resorts provides confidence and comfort with stringent health and safety procedures for a holistic care approach.
https://ikosresorts.com/ikos-content/uploads/2020/06/INFINITE_CARE_PROTOCOLE_logo-01.jpg 2000 2000 Alexandros Vasileiou https://ikosresorts.com/ikos-content/uploads/2019/02/ikoslogo.png Alexandros Vasileiou2020-06-03 06:15:542020-07-03 08:53:52Reopening on July 1st, 2020 INFINITE CARE PROTOCOL
Ikos Resorts Updated Statement on Coronavirus (COVID-19)
May 25, 2020 /in Updates /by Alexandros Vasileiou
https://ikosresorts.com/ikos-content/uploads/2019/08/IkosAria_beachfront_suites_2880x1614.jpg 1076 1920 Alexandros Vasileiou https://ikosresorts.com/ikos-content/uploads/2019/02/ikoslogo.png Alexandros Vasileiou2020-05-25 08:24:242020-06-04 06:19:47Ikos Resorts Updated Statement on Coronavirus (COVID-19)
Ikos Andalusia Opening is Postponed to the 1st of September 2020
May 4, 2020 /in Updates /by Alexandros Vasileiou
With travel still at a standstill, we have been complying with lockdown restrictions and measures imposed by governments to protect all citizens during the novel coronavirus outbreak. Since early March, in alignment with all necessary restrictive measures across the globe, strict constraints on construction works were imposed across Spain, bringing all such work to a halt, without exceptions.
Until this measure, the construction of Ikos Andalusia, the first Ikos Resorts property to open in Spain, was moving forward ahead of schedule, ready to open its doors early this month. For the first time in the Group's successful history of delivering luxury resorts on time, this unprecedented force majeure situation has forced us to postpone the opening of Ikos Andalusia to September 1st 2020, provided that we are by then able to ensure the safety of our guests and staff as the pandemic hopefully subsides.
We are constantly working to ensure that we meet the latest guidance from the Centers for Disease Control & Prevention (CDC) and the World Health Organization (WHO) to be ready to welcome you on September 1st 2020. We are also developing, in partnership with in-house and outside expert partners, an even more exacting standard of care, cleanliness and disinfection, in order to confidently offer you a safe and comfortable stay when you do visit us.
TRAVEL WITH FLEXIBILITY
We understand that our delayed opening may cause disappointment for those due to stay with us this summer and we invite you to arrange your new travel dates by contacting our Reservations department on 0030 2374110750 and reservations@ikosresorts.com, or via your travel agency/online travel website.
For guests who have booked directly with us and do not yet have new dates in mind, we will provide a voucher* to the value of your deposit, further increased by 20%, for use against bookings until October 2021. For any vouchers not redeemed in 18 months from the issue date, the original deposit paid will be returned at that time in full.
What's more, our official pricelist for 2021 will not see any changes from 2020 until further notice, giving you more time to plan your new trip for next summer. Please contact us on reservations@ikosresorts.com and 0030 2374110750 to take advantage of this option or to ask any questions. Alternatively, in order to claim your Holiday Voucher, with an extra 20% added to the value of your paid deposit, simply click on the button below, fill-in the form, and our Reservations Office will contact you soon.
https://ikosresorts.com/ikos-content/uploads/2019/11/Ikos-Andalusia-_-MINI-Drive-Adventure-Puerto-Banus_792x5281.jpg 528 792 Alexandros Vasileiou https://ikosresorts.com/ikos-content/uploads/2019/02/ikoslogo.png Alexandros Vasileiou2020-05-04 19:04:532020-05-26 08:25:15Ikos Andalusia Opening is Postponed to the 1st of September 2020
March 26, 2020 /in Updates /by Alexandros Vasileiou
https://ikosresorts.com/ikos-content/uploads/2020/01/Ikos-Aria-_-Beach-service_2880x1614.jpg 1121 2000 Alexandros Vasileiou https://ikosresorts.com/ikos-content/uploads/2019/02/ikoslogo.png Alexandros Vasileiou2020-03-26 10:32:012020-04-28 20:30:54Ikos Resorts Updated Statement on Coronavirus (COVID-19)


The Healthy Movement Project is aimed at increasing our members' access to physical fitness activities with PelotonTM bikes for indoor cycling. The equipment will be placed at locations where members may spend a good portion of their time such as adult day programs and psychosocial rehabilitation programs. PelotonTM designs commercial grade bicycles which are durable, user-friendly, and have interactive classes that help guide and promote use.
Potential programs that may receive the bikes include social recreation programs, group homes, ADVP, psychosocial rehabilitation programs, and day treatment programs.
Sites will be chosen based on funding availability, completeness of application, providing access to a high volume of members, and covering as many counties in our catchment area as possible. Sites will report on participant use of the equipment and progress toward healthy goals. Staff will help train members on how to use the equipment and encourage participation.


m3t : Intuitive. Reliable. Secure.
Contact us by phone at (405) 227-0547 (Monday - Friday 8AM - 5PM CST) to have your password reset or if you would like to create a new account with us.
Looking for real-time information, cash management and reporting on your M3T Redemption Terminal? Contact us by phone at (405) 227-0547 (Monday - Friday 8AM - 5PM CST) to upgrade to our Route Management System.
Find out how you can generate revenue with innovative software and hardware solutions.
© 2013 - 2019 M3 Technology Solutions, LLC.