/** * Encargado de guardar la informacion suministrada por el usuario para un riego * * @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; try { tx = session.beginTransaction(); String dmy = new SimpleDateFormat("yyyy-MM-dd").format(irr.getDateIrr()); Date dateIrr = new SimpleDateFormat("yyyy-MM-dd").parse(dmy); irr.setUseIrrigationIrr(true); irr.setProductionEvents(new ProductionEvents(idCrop)); irr.setDateIrr(dateIrr); // if (sowing.getChemicalsSowing().getIdCheSow()==-1) { // sowing.setChemicalsSowing(null); // } // // if (sowing.getDoseUnits().getIdDosUni()==-1) { // sowing.setDoseUnits(null); // } irr.setStatus(true); session.saveOrUpdate(irr); LogEntities log = new LogEntities(); log.setIdLogEnt(null); log.setIdEntityLogEnt(idEntSystem); log.setIdObjectLogEnt(irr.getIdIrr()); log.setTableLogEnt("irrigation"); log.setDateLogEnt(new Date()); log.setActionTypeLogEnt(action); session.saveOrUpdate(log); tx.commit(); state = "success"; if (action.equals("C")) { info = "El riego ha sido agregado con exito"; // return "list"; } else if (action.equals("M")) { info = "El riego ha sido modificado con exito"; // return "list"; } HashMap prod = cropDao.findById(idCrop); Integer tyCro = Integer.parseInt(String.valueOf(prod.get("typeCrop"))); SfGuardUserDao sfDao = new SfGuardUserDao(); SfGuardUser sfUser = sfDao.getUserByLogin(user.getCreatedBy(), user.getNameUserUsr(), ""); GlobalFunctions.sendInformationCrop(idCrop, tyCro, 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 un riego"; } catch (ParseException e) { } finally { session.close(); } // return ERROR; return "states"; }
/** * 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; } }
/** * Encargado de guardar la informacion suministrada por el usuario para una finca * * @return Estado del proceso */ public String saveData() throws SQLException { if (!usrDao.getPrivilegeUser(idUsrSystem, "farm/create") || !usrDao.getPrivilegeUser(idUsrSystem, "farm/modify")) { return BaseAction.NOT_AUTHORIZED; } String action = ""; /* * 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"; } ProducersDao proDao = new ProducersDao(); SessionFactory sessions = HibernateUtil.getSessionFactory(); Session session = sessions.openSession(); Transaction tx = null; HashMap proData = proDao.findById(idProducer); Double altPro = Double.parseDouble(altitude_property.replace(',', '.')); Double latPro = Double.parseDouble(latitude_property.replace(',', '.')); Double lonPro = Double.parseDouble(length_property.replace(',', '.')); // Double altPro = Double.parseDouble(altitude_property); // Double latPro = Double.parseDouble(latitude_property); // Double lonPro = Double.parseDouble(length_property); if (option_geo == 2) { latPro = (latitude_minutes_property / 60) + (latitude_seconds_property / 3600); latPro = (latitude_degrees_property < 0) ? ((Math.abs(latitude_degrees_property)) + latPro) * -1 : (latitude_degrees_property + latPro); lonPro = (length_minutes_property / 60) + (length_seconds_property / 3600); lonPro = (length_degrees_property < 0) ? ((Math.abs(length_degrees_property)) + lonPro) * -1 : (length_degrees_property + lonPro); } try { tx = session.beginTransaction(); SfGuardUserDao sfDao = new SfGuardUserDao(); SfGuardUser sfUser = sfDao.getUserByLogin(user.getCreatedBy(), user.getNameUserUsr(), ""); Farms far = null; int idProOld = 0; if (idFarm <= 0) { far = new Farms(); far.setIdFar(null); far.setGeorefFar(true); far.setIdProjectFar("1"); far.setStatus(true); } else { HashMap fieldInfo = farDao.findById(idFarm); idProOld = Integer.parseInt(String.valueOf(fieldInfo.get("id_producer"))); far = farDao.objectById(idFarm); } far.setNameFar(name_property); far.setAddressFar(direction_property); far.setLatitudeFar(latPro); far.setLongitudeFar(lonPro); far.setAltitudeFar(altPro); far.setNameCommuneFar(lane_property); far.setMunicipalities(new Municipalities(Integer.parseInt(cityFar))); Integer idUserMobile = null; if (sfUser != null) { idUserMobile = sfUser.getId().intValue(); } far.setCreatedBy(idUserMobile); session.saveOrUpdate(far); depFar = String.valueOf(MunicipalitiesDao.getDepartmentId(Integer.parseInt(cityFar))); // farDao.save(far); // System.out.println("valId->"+far.getIdFar()); if (far.getIdFar() > 0 && action.equals("M")) { if (idProOld != idProducer) { FarmsProducers farTemp = farDao.checkFarmProducer(far.getIdFar(), idProOld); session.delete(farTemp); } // System.out.println("id field->"+fiePro.getFields().getIdFie()); // fiePro = new FieldsProducers(); // fiePro.setId(new FieldsProducersId(lot.getIdFie(), idProducer)); // fiePro.setFields(lot); // fiePro.setProducers(proDao.objectById(idProducer)); // fiePro.setFieldTypes(new FieldTypes(typeLot)); // session.saveOrUpdate(fiePro); } if (idProOld != idProducer) { FarmsProducers farPro = new FarmsProducers(); farPro.setId(new FarmsProducersId(far.getIdFar(), idProducer)); farPro.setFarms(far); farPro.setProducers(proDao.objectById(idProducer)); session.saveOrUpdate(farPro); } /*LogEntities log = new LogEntities(); log.setIdLogEnt(null); log.setIdEntityLogEnt(idEntSystem); //Colocar el usuario registrado en el sistema log.setIdObjectLogEnt(far.getIdFar()); log.setTableLogEnt("farms"); log.setDateLogEnt(new Date()); log.setActionTypeLogEnt(action); session.saveOrUpdate(log);*/ // logDao.save(log); /* "102": "Nombre de la finca" => nameFarm "103": "-30.98664622,-64.10017675,601" Capturar posicion => lat, lng, alt "105": "Vereda" => district "108": "Indicación (como llegar)" => address "241": "Seleccione el productor asociado" => Seleccion (solo dato seleccionado) => prodId "336": "Departamento" => department "338": "Municipio (Amazonas)" => municipality */ // Manejo para ingresar datos en MongoDB HashMap valInfo = new HashMap(); valInfo.put("farmId", far.getIdFar()); valInfo.put("nameFarm", far.getNameFar()); valInfo.put("prodId", idProducer); valInfo.put("nameProd", proData.get("name")); valInfo.put("district", far.getNameCommuneFar()); valInfo.put("address", far.getAddressFar()); valInfo.put("lat", latPro); valInfo.put("lng", lonPro); valInfo.put("alt", altPro); valInfo.put("department", depFar); valInfo.put("municipality", cityFar); valInfo.put("userMobileId", idUserMobile); // System.out.println("valInfo=>"+valInfo); BasicDBObject query = new BasicDBObject(); query.put("InsertedId", "" + far.getIdFar()); query.put("form_id", "3"); MongoClient mongo = null; try { mongo = new MongoClient("localhost", 27017); } catch (UnknownHostException ex) { Logger.getLogger(ActionField.class.getName()).log(Level.SEVERE, null, ex); } DB db = mongo.getDB("ciat"); DBCollection col = db.getCollection("log_form_records"); DBCursor cursor = col.find(query); WriteResult result = null; BasicDBObject jsonField = GlobalFunctions.generateJSONFarm(valInfo); if (cursor.count() > 0) { System.out.println("actualizo mongo"); result = col.update(query, jsonField); } else { System.out.println("inserto mongo"); result = col.insert(jsonField); } if (result.getError() != null) { throw new HibernateException(""); } mongo.close(); tx.commit(); state = "success"; if (action.equals("C")) { info = "La finca ha sido agregada con exito"; // return "list"; } else if (action.equals("M")) { info = "La finca ha sido modificada con exito"; } } catch (HibernateException e) { if (tx != null) { tx.rollback(); } e.printStackTrace(); state = "failure"; info = "Fallo al momento de agregar una finca"; } finally { session.close(); } return "states"; // return ERROR; }