/** * Encargado de guardar la informacion suministrada por el usuario para una siembra * * @return Estado del proceso */ public String saveData() { if (!usrDao.getPrivilegeUser(idUsrSystem, "crop/create") || !usrDao.getPrivilegeUser(idUsrSystem, "crop/modify")) { return BaseAction.NOT_AUTHORIZED; } String action = ""; // System.out.println("Entre a guardar la info"); /* * Se evalua dependiendo a la accion realizada: * 1) create: Al momento de guardar un registro por primera ves * 2) modify: Al momento de modificar un registro * 3) delete: Al momento de borrar un registro */ if (actExe.equals("create")) { action = "C"; } else if (actExe.equals("modify")) { action = "M"; } SessionFactory sessions = HibernateUtil.getSessionFactory(); Session session = sessions.openSession(); Transaction tx = null; // info = "La siembra ha sido modificado con exito"; try { tx = session.beginTransaction(); String dmy = new SimpleDateFormat("yyyy-MM-dd").format(sowing.getDateSow()); Date dateSow = new SimpleDateFormat("yyyy-MM-dd").parse(dmy); // event.setFields(event.getFields()); // event.setCropsTypes(new CropsTypes(2)); // event.setIdProjectProEve(event.getIdProjectProEve()); // event.setStatus(event.isStatus()); session.saveOrUpdate(event); if (sowing.getIdSow() == null) { Sowing sowTemp = sowDao.objectById(idCrop); if (sowTemp != null) { sowing.setIdSow(sowTemp.getIdSow()); } } sowing.setProductionEvents(new ProductionEvents(idCrop)); sowing.setDateSow(dateSow); if (sowing.getChemicalsSowing().getIdCheSow() == -1) { sowing.setChemicalsSowing(null); } if (sowing.getDoseUnits() != null && (sowing.getDoseUnits().getIdDosUni() == -1 || sowing.getChemicalsSowing().getIdCheSow() == 3)) { sowing.setDoseUnits(null); } // sowing.setSowingTypes(new SowingTypes(idCrop)); sowing.setStatus(true); session.saveOrUpdate(sowing); Maize maizeOld = maizeDao.objectById(this.getIdCrop()); if (maizeOld != null) session.delete(maizeOld); Beans beansOld = beansDao.objectById(this.getIdCrop()); if (beansOld != null) session.delete(beansOld); if (typeCrop == 1) { maize.setProductionEvents(new ProductionEvents(idCrop)); maize.setStatus(true); session.saveOrUpdate(maize); } else if (typeCrop == 2) { beans.setSeedsTypes(null); beans.setProductionEvents(new ProductionEvents(idCrop)); beans.setStatus(true); session.saveOrUpdate(beans); } else if (typeCrop == 3) { // Cassavas ca = new Cassavas(); // ca.setIdCas(null); // ca.setProductionEvents(pro); } LogEntities log = new LogEntities(); log.setIdLogEnt(null); log.setIdEntityLogEnt(idEntSystem); log.setIdObjectLogEnt(sowing.getIdSow()); log.setTableLogEnt("sowing"); log.setDateLogEnt(new Date()); log.setActionTypeLogEnt(action); session.saveOrUpdate(log); tx.commit(); state = "success"; if (action.equals("C")) { info = "La siembra ha sido agregada con exito"; // return "list"; } else if (action.equals("M")) { info = "La siembra ha sido modificada con exito"; // return "list"; } SfGuardUserDao sfDao = new SfGuardUserDao(); SfGuardUser sfUser = sfDao.getUserByLogin(user.getCreatedBy(), user.getNameUserUsr(), ""); GlobalFunctions.sendInformationCrop(idCrop, typeCrop, sfUser.getId()); } catch (HibernateException e) { if (tx != null) { tx.rollback(); } e.printStackTrace(); // System.out.println("error->"+e.getMessage()); state = "failure"; info = "Fallo al momento de agregar una siembra"; } catch (ParseException e) { } finally { session.close(); } // return ERROR; return "states"; }
/** Metodo encargado de validar el formulario de un riego */ @Override public void validate() { /* * Se evalua dependiendo a la accion realizada: * 1) create: Al momento de guardar un registro por primera ves * 2) modify: Al momento de modificar un registro * 3) delete: Al momento de borrar un registro */ // numberFormatter = NumberFormat.getNumberInstance(new Locale("en_US")); // quantityOut = numberFormatter.format(rasta.getLatitudRas()); if (actExe.equals("create") || actExe.equals("modify")) { boolean enter = false; sowing = sowDao.objectById(this.getIdCrop()); HashMap required = new HashMap(); // required.put("irr.useIrrigationIrr", irr.getUseIrrigationIrr()); // if (irr.getUseIrrigationIrr()!=null && irr.getUseIrrigationIrr()) { required.put("irr.dateIrr", irr.getDateIrr()); // required.put("irr.amountIrr", irr.getAmountIrr()); required.put("irr.irrigationsTypes.idIrrTyp", irr.getIrrigationsTypes().getIdIrrTyp()); // } for (Iterator it = required.keySet().iterator(); it.hasNext(); ) { String sK = (String) it.next(); String sV = String.valueOf(required.get(sK)); // System.out.println(sK + " : " + sV); if (StringUtils.trim(sV).equals("null") || StringUtils.trim(sV) == null || StringUtils.trim(sV).equals("") || sV.equals("-1")) { addFieldError(sK, "El campo es requerido"); enter = true; } } if (enter) { addActionError("Faltan campos por ingresar por favor digitelos"); } Date dateSowing = null; // if (sowing.getDateSow()!=null) { if (sowing != null) { dateSowing = sowing.getDateSow(); String dmySow = new SimpleDateFormat("dd/MM/yyyy").format(sowing.getDateSow()); if (!dmySow.equals("") && irr.getDateIrr() != null) { Integer valDiffBef = GlobalFunctions.compareDateBeforeSowing(irr.getDateIrr(), sowing.getDateSow()); Integer valDiffAff = GlobalFunctions.compareDateAfterSowing(irr.getDateIrr(), sowing.getDateSow(), 0); if (valDiffBef == 2 && valDiffAff == 2) { addFieldError("irr.dateIrr", "Dato invalido"); addActionError( "Se ingreso una fecha de riego que no se encuentra 6 meses antes de la siembra o 10 meses despues de la siembra (" + dmySow + ")"); } } } if (irr.getAmountIrr() != null) { if (irr.getAmountIrr() < 0 || irr.getAmountIrr() > 1000) { addFieldError("irr.amountIrr", "Dato invalido valor entre 0 y 1000"); addActionError( "Se ingreso una cantidad aportada por hectarea invalida, por favor ingresar un valor entre 0 y 1000"); } } sowing = null; } }
/** Metodo encargado de validar el formulario de Siembra */ @Override public void validate() { /* * Se evalua dependiendo a la accion realizada: * 1) create: Al momento de guardar un registro por primera ves * 2) modify: Al momento de modificar un registro * 3) delete: Al momento de borrar un registro */ // numberFormatter = NumberFormat.getNumberInstance(new Locale("en_US")); // quantityOut = numberFormatter.format(rasta.getLatitudRas()); if (actExe.equals("create") || actExe.equals("modify")) { boolean enter = false; HashMap required = new HashMap(); required.put("sowing.dateSow", sowing.getDateSow()); required.put("sowing.sowingTypes.idSowTyp", sowing.getSowingTypes().getIdSowTyp()); required.put("sowing.seedsNumberSow", sowing.getSeedsNumberSow()); required.put("sowing.treatedSeedsSow", sowing.isTreatedSeedsSow()); required.put("sowing.genotypes.idGen", sowing.getGenotypes().getIdGen()); required.put("event.expected_production_pro_eve", event.getExpectedProductionProEve()); required.put("sowing.furrowsDistanceSow", sowing.getFurrowsDistanceSow()); required.put("sowing.sitesDistanceSow", sowing.getSitesDistanceSow()); // if (sowing.getGenotypesSowing().getIdGenSow()==1000000) { if (sowing.getGenotypes().getIdGen() != null && sowing.getGenotypes().getIdGen() == 1000000) { required.put("sowing.otherGenotypeSow", sowing.getOtherGenotypeSow()); } if (typeCrop == 1) { required.put("sowing.genotypesSowing.idGenSow", sowing.getGenotypesSowing().getIdGenSow()); required.put("maize.seedsColors.idSeeCol", maize.getSeedsColors().getIdSeeCol()); required.put("maize.seedsNumberSiteMai", maize.getSeedsNumberSiteMai()); } else if (typeCrop == 2) { required.put("beans.seedsNumberSiteBea", beans.getSeedsNumberSiteBea()); required.put("sowing.seedsOrigins.idSeeOri", sowing.getSeedsOrigins().getIdSeeOri()); // required.put("beans.seedsTypes.idSeeTyp", // beans.getSeedsTypes().getIdSeeTyp()); // required.put("beans.seedsInoculations.idSeeIno", // beans.getSeedsInoculations().getIdSeeIno()); required.put( "beans.growingEnvironment.idGroEnv", beans.getGrowingEnvironment().getIdGroEnv()); if (beans.getOtroInoculationBea().equals("1000000")) { required.put("sowing.otherGenotypeSow", sowing.getOtherGenotypeSow()); } } for (Iterator it = required.keySet().iterator(); it.hasNext(); ) { String sK = (String) it.next(); String sV = String.valueOf(required.get(sK)); // System.out.println(sK + " : " + sV); if (StringUtils.trim(sV).equals("null") || StringUtils.trim(sV) == null || StringUtils.trim(sV).equals("") || sV.equals("-1")) { addFieldError(sK, "El campo es requerido"); enter = true; } } if (enter) { addActionError("Faltan campos por ingresar por favor digitelos"); } // if (typeCrop==2) { required.put("sowing.furrowsDistanceSow", sowing.getFurrowsDistanceSow()); if (sowing.getFurrowsDistanceSow() != null && sowing.getFurrowsDistanceSow() != 0 && (sowing.getFurrowsDistanceSow() < 0 || sowing.getFurrowsDistanceSow() > 10)) { addFieldError("sowing.furrowsDistanceSow", "Dato invalido valor entre 0 y 10"); addActionError( "Se ingreso una distancia entre surcos invalida, por favor ingresar un valor entre 0 y 10"); } required.put("sowing.sitesDistanceSow", sowing.getSitesDistanceSow()); if (sowing.getFurrowsDistanceSow() != null && sowing.getSitesDistanceSow() != 0 && (sowing.getSitesDistanceSow() < 0 || sowing.getSitesDistanceSow() > 10)) { addFieldError("sowing.sitesDistanceSow", "Dato invalido valor entre 0 y 10"); addActionError( "Se ingreso una distancia entre sitios invalida, por favor ingresar un valor entre 0 y 10"); } if (typeCrop == 2) { required.put("beans.seedsNumberSiteBea", beans.getSeedsNumberSiteBea()); if (beans.getSeedsNumberSiteBea() != 0 && (beans.getSeedsNumberSiteBea() < 1 || beans.getSeedsNumberSiteBea() > 10)) { addFieldError("beans.seedsNumberSiteBea", "Dato invalido valor entre 1 y 10"); addActionError( "Se ingreso un numero de semillas por sitio invalido, por favor ingresar un valor entre 1 y 10"); } } else if (typeCrop == 1) { required.put("maize.seedsNumberSiteMai", maize.getSeedsNumberSiteMai()); if (maize.getSeedsNumberSiteMai() != null && maize.getSeedsNumberSiteMai() != 0 && (maize.getSeedsNumberSiteMai() < 1 || maize.getSeedsNumberSiteMai() > 10)) { addFieldError("maize.seedsNumberSiteMai", "Dato invalido valor entre 1 y 10"); addActionError( "Se ingreso un numero de semillas por sitio invalido, por favor ingresar un valor entre 1 y 10"); } } if (event.getExpectedProductionProEve() != null && event.getExpectedProductionProEve() != 0) { if (event.getExpectedProductionProEve() < 0 || event.getExpectedProductionProEve() > 30000) { addFieldError("event.expected_production_pro_eve", "Dato invalido valor entre 0 y 30000"); addActionError( "Se ingreso un rendimiento histórico obtenido invalido, por favor ingresar un valor entre 0 y 30000"); } } } }