/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package com.arrebol.taxiservicios.beans.spa;

import com.arrebol.taxiservicios.beans.TaxiGenericBean;
import com.arrebol.taxiservicios.controller.spa.CabinasController;
import com.arrebol.taxiservicios.controller.spa.VentasBeanController;
import com.arrebol.taxiservicios.model.spa.Cesiones;
import com.arrebol.taxiservicios.model.spa.Pagos;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

/**
 *
 * @author Crov
 */
@Named("reservacionBean")
@ViewScoped
public class ReservacionBean extends TaxiGenericBean implements Serializable {

    private static final long serialVersionUID = -7284027390656669184L;
    final Logger logger = LogManager.getLogger(getClass());
    
    private VentasBeanController ventasBeanController;
    private List<Cesiones> listPagos;
    private Cesiones selectPago;
    private Date fechaPago;

    @PostConstruct
    public void init() {
        logger.info("Start  init()");
        try {
            setVentasBeanController(new VentasBeanController());
            setListPagos(getVentasBeanController().fillCesionesByLocation(getLoggedUser().getLocation()));
        } catch (Exception e) {
            logger.error("init(): ", e);
        }
    }
    
    public void clearSelected(){
        setSelectPago(null);
    }
    
    public void updateFecha(){
        logger.info("updateFecha()");
        try {
            setVentasBeanController(new VentasBeanController());
            // se actuliza la fecha del pago            
            getVentasBeanController().addCesiones(getSelectPago(), getLoggedUser(), false);
            // se actualiza la lista de pagos 
            setListPagos(getVentasBeanController().fillCesionesByLocation(getLoggedUser().getLocation()));
            showMessage(FacesMessage.SEVERITY_INFO, "Fecha actualizada", "fecha actualizada correctamente");
            logger.info("");
        } catch (Exception e) {
             showMessage(FacesMessage.SEVERITY_ERROR, "Error", "Ocurrió un error al actualizar la fecha");
            logger.error("");
        }
    }

    public VentasBeanController getVentasBeanController() {
        return ventasBeanController;
    }

    public void setVentasBeanController(VentasBeanController ventasBeanController) {
        this.ventasBeanController = ventasBeanController;
    }

    public List<Cesiones> getListPagos() {
        return listPagos;
    }

    public void setListPagos(List<Cesiones> listPagos) {
        this.listPagos = listPagos;
    }

    public Cesiones getSelectPago() {
        return selectPago;
    }

    public void setSelectPago(Cesiones selectPago) {
        this.selectPago = selectPago;
    }

    public Date getFechaPago() {
        return fechaPago;
    }

    public void setFechaPago(Date fechaPago) {
        this.fechaPago = fechaPago;
    }

}
