diff --git a/l2g4/build/web/WEB-INF/classes/META-INF/persistence.xml b/l2g4/build/web/WEB-INF/classes/META-INF/persistence.xml
index fe0a7820956e63e8d285bcd01549009b04c14168..fabc1fc998644273e569fc4a138925fca4bf1cde 100644
--- a/l2g4/build/web/WEB-INF/classes/META-INF/persistence.xml
+++ b/l2g4/build/web/WEB-INF/classes/META-INF/persistence.xml
@@ -11,6 +11,7 @@
     <class>Logica.Colaborador</class>
     <class>Logica.NewEntity</class>
     <class>Logica.datatype.Fecha</class>
+    <class>Logica.Comentario</class>
     <shared-cache-mode>NONE</shared-cache-mode>
     <validation-mode>NONE</validation-mode>
     <properties>
diff --git a/l2g4/build/web/WEB-INF/classes/controladores/login.class b/l2g4/build/web/WEB-INF/classes/controladores/login.class
new file mode 100644
index 0000000000000000000000000000000000000000..661942b62b4f591d57843a1c1a9cb563820f299b
Binary files /dev/null and b/l2g4/build/web/WEB-INF/classes/controladores/login.class differ
diff --git a/l2g4/build/web/WEB-INF/classes/controladores/propuesta.class b/l2g4/build/web/WEB-INF/classes/controladores/propuesta.class
index e77dbafc70bdd735df7af6eecd4fe6e9f21b27e6..fb52d6f6555344e423364916a5ffe316e067000a 100644
Binary files a/l2g4/build/web/WEB-INF/classes/controladores/propuesta.class and b/l2g4/build/web/WEB-INF/classes/controladores/propuesta.class differ
diff --git a/l2g4/build/web/WEB-INF/lib/g4-prog-app-lab1.jar b/l2g4/build/web/WEB-INF/lib/g4-prog-app-lab1.jar
index 76036499cff4a9bf25204bf95fde91afcef2a2f1..b21a80393bc383f457f30f76c861e48c945a2db4 100644
Binary files a/l2g4/build/web/WEB-INF/lib/g4-prog-app-lab1.jar and b/l2g4/build/web/WEB-INF/lib/g4-prog-app-lab1.jar differ
diff --git a/l2g4/src/java/META-INF/persistence.xml b/l2g4/src/java/META-INF/persistence.xml
index fe0a7820956e63e8d285bcd01549009b04c14168..fabc1fc998644273e569fc4a138925fca4bf1cde 100644
--- a/l2g4/src/java/META-INF/persistence.xml
+++ b/l2g4/src/java/META-INF/persistence.xml
@@ -11,6 +11,7 @@
     <class>Logica.Colaborador</class>
     <class>Logica.NewEntity</class>
     <class>Logica.datatype.Fecha</class>
+    <class>Logica.Comentario</class>
     <shared-cache-mode>NONE</shared-cache-mode>
     <validation-mode>NONE</validation-mode>
     <properties>
diff --git a/l2g4/src/java/controladores/propuesta.java b/l2g4/src/java/controladores/propuesta.java
index 3bc228343291ce060d7c5f65f57aae027bc1c6c6..85bf7054fa8412ff5a3403caffdec5a8407ecc11 100644
--- a/l2g4/src/java/controladores/propuesta.java
+++ b/l2g4/src/java/controladores/propuesta.java
@@ -71,31 +71,41 @@ public class propuesta extends HttpServlet {
         String propuestaId, userId, text, CategoríaId, monto, porsentaje, entrada ;
         HttpSession session = request.getSession();
         String user = (String)session.getAttribute("userId");
+        String reconvensa;
+        ISistema sys = Factory.getInstance();
 
         switch(metodo){
             case "ExtenderFinanciación":
                 /* 
                  * @parametro propuestaId id propuesta 
+                 * @parametro user nick sacado de sesion 
                  */
                 propuestaId  = getParameter(request,"propuestaId");
-                //user;
+                if (propuestaId != null && user != null){
+                    respuesta = sys.ExtenderFinanciación(propuestaId,user);
+                }
                 break;
             case "CancelarPropuesta":
                 /* 
                  * @parametro propuestaId id propuesta 
-                 * @parametro userId nick usuario
+                 * @parametro user nick usuario sacado de sesion 
                  */
                 propuestaId  = getParameter(request,"propuestaId");
-                //user;
+                if (propuestaId != null && user != null){
+                    respuesta = sys.CancelarPropuesta(propuestaId,user);
+                }
                 break;
             case "Comentario":
                 /* 
                  * @parametro propuestaId id propuesta
                  * @parametro text msj a guardar
+                 * @parametro user nick usuario sacado de sesion 
                  */
                 propuestaId  = getParameter(request,"propuestaId");
-                //user;
-                text        = getParameter(request,"text");
+                text         = getParameter(request,"text");
+                if (propuestaId != null && user != null && text != null){
+                    respuesta = sys.Comentario(propuestaId,user,text);
+                }
                 
                 break;
             case "colaboracion":
@@ -103,12 +113,26 @@ public class propuesta extends HttpServlet {
                  * @parametro stirng monto Categoría 
                  * @parametro boolean porsentaje Categoría 
                  * @parametro boolean entrada Categoría 
+                 * @parametro propuestaId id propuesta 
+                 * @parametro userId nick usuario sacado de sesion 
                  */
 
                 monto  = getParameter(request,"Categoría");
                 porsentaje  = getParameter(request,"Categoría");
                 entrada  = getParameter(request,"Categoría");
-                
+                propuestaId  = getParameter(request,"propuestaId");
+                if (monto == null && propuestaId == null && porsentaje == null && entrada == null){
+                    respuesta = "Faltan datos";
+                }else if (porsentaje == "true" && entrada == "true"){
+                    respuesta = "No puedes elejir dos retornos";
+
+                }else if (porsentaje == "false" && entrada == "false"){
+                    respuesta = "Deves elejir almenos un retorno";
+
+                }else{
+                    reconvensa = (porsentaje == "true")? "porsentaje": "entrada";
+                    respuesta = sys.colaboracion(propuestaId,user,reconvensa,monto);
+                }
                 break;
             case "nuevo":
                 /* 
@@ -131,4 +155,4 @@ public class propuesta extends HttpServlet {
         return "Short description";
     }
 
-}
+}
\ No newline at end of file