package src;

import java.awt.Component;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;


// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.D232AF5D-764F-5246-698D-29E05A5192F4]
// </editor-fold> 
public class IngresoReintegro extends Movimientos
{
    Cuentas c=new Cuentas();
    private Component jFrmIngreReinte;
    private Component jFrmIngreReinte1;
   
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.FDB00D86-D84C-0EFD-97CB-3E66D7E075EF]
    // </editor-fold> 
    public IngresoReintegro ()
    {
    }

    public void Ingreso(Sucursal s,String cuenta, String Importe, String Concepto)
    { 
        Movimientos m1=new Movimientos();

        //Controlado que la cuenta no este en el banco y que se introduzca un
        //importe incorrecto, no sale bien la ventana de error
        float importe=0;
        float i=0;
        int j=0;

        DecimalFormat df1=new DecimalFormat("#######,##");
        Number n=0;
        try {
            n = df1.parse(Importe);
        } catch (ParseException ex) {
            Logger.getLogger(jFrmIngreReinte.class.getName()).log(Level.SEVERE, null, ex);
        }
        j=c.getMovimiento().size();        
        if(s.devuelveCuentas(cuenta)!= null)
        {
         importe=n.floatValue();
         if(importe>0)
         {
          c=s.devuelveCuentas(cuenta);
          i= c.getSaldo_cuenta();
          i=i+importe;
          c.setSaldo_cuenta(i);
          m1.setImporte(+importe);
          m1.setConcepto(Concepto);
          Date d=new Date();
          m1.setFecha_Operacion(d);
          c.insertaMovimientoenCuenta(m1);        
         }
         else
         {
             JOptionPane.showMessageDialog(jFrmIngreReinte,"El importe tiene que ser un valor mayor de 0€","Reintegros",JOptionPane.ERROR_MESSAGE);
         }
        }
        else
        {
         JOptionPane.showMessageDialog(jFrmIngreReinte,"El numero de cuenta no existe","Reintegros",JOptionPane.ERROR_MESSAGE);
        }        
    }

    public void Reintegro (Sucursal s,String cuenta, String Importe, String Concepto)
    { 
        Movimientos m1=new Movimientos();
        float importe=0;
        float i=0;
        int j=0;

        DecimalFormat df1=new DecimalFormat("#######,##");
        Number n=0;
        try {
            n = df1.parse(Importe);
        } catch (ParseException ex) {
            Logger.getLogger(jFrmIngreReinte1.class.getName()).log(Level.SEVERE, null, ex);
        }
        importe=n.floatValue();
        if(s.devuelveCuentas(cuenta)!= null)
        {
         c=s.devuelveCuentas(cuenta);
         j=c.getMovimiento().size();
         if(importe>0)
         {
          if(c.getSaldo_cuenta()>0 && c.getSaldo_cuenta()>importe)
          {
            i= c.getSaldo_cuenta();
            i=i-importe;
            c.setSaldo_cuenta(i);
            m1.setImporte(-importe);
            m1.setConcepto(Concepto);
            Date d=new Date();
            m1.setFecha_Operacion(d);
            c.insertaMovimientoenCuenta(m1);
          }
          else {
            JOptionPane.showMessageDialog(jFrmIngreReinte1,"Saldo Insuficiente en la cuenta","Reintegros",JOptionPane.ERROR_MESSAGE);
          }
         }
         else
         {             
             JOptionPane.showMessageDialog(jFrmIngreReinte1,"El importe tiene que ser un valor mayor de 0€","Reintegros",JOptionPane.ERROR_MESSAGE);
         }
        }
        else
        {        
         JOptionPane.showMessageDialog(jFrmIngreReinte1,"El numero de cuenta no existe","Reintegros",JOptionPane.ERROR_MESSAGE);
        }
    }

}

