Example #1
0
 public function testCanBeModified()
 {
     $project = new \stdClass();
     $user = new \stdClass();
     $user->id = 1;
     $user->user_type = User::USER_TYPE_CLIENT;
     $project->pro_status = Project::PROJECT_STATUS_DRAFT;
     $project->user_id = 1;
     //$this->assertTrue($project);
     $this->assertTrue(Project::canBeModified($project, $user));
     $project->pro_status = Project::PROJECT_STATUS_ACTIVE;
     $this->assertFalse(Project::canBeModified($project, $user));
     $project->pro_status = Project::PROJECT_STATUS_ADJUDICATED;
     $this->assertFalse(Project::canBeModified($project, $user));
     $project->pro_status = Project::PROJECT_STATUS_CANCELLED;
     $this->assertFalse(Project::canBeModified($project, $user));
     $project->pro_status = Project::PROJECT_STATUS_CLOSED_CLIENT;
     $this->assertFalse(Project::canBeModified($project, $user));
     $project->pro_status = Project::PROJECT_STATUS_CLOSED_FOTOTEA;
     $this->assertFalse(Project::canBeModified($project, $user));
     $project->pro_status = Project::PROJECT_STATUS_CLOSED_PHOTOGRAPHER;
     $this->assertFalse(Project::canBeModified($project, $user));
     $project->user_id = 2;
     $this->assertFalse(Project::canBeModified($project, $user));
 }
Example #2
0
 public static function adjudicateProject($projectId, $offerId)
 {
     $userFields = array(User::PROFILE_DIRECTION, User::PROFILE_MOVIL, User::PROFILE_CITY);
     //Load proyect and offer
     $project = Project::loadById($projectId);
     $projectOwner = User::getUserInfo($project->user_id, $userFields);
     if (Project::canBeAdjudicated($project)) {
         $offer = Offer::getOffer($offerId);
         $winner = User::getUserInfo($offer->user_id, $userFields);
         //Set project as adjudicated
         $data = array('pro_status' => Project::PROJECT_STATUS_ADJUDICATED, 'pro_date_end' => date('Y-m-d H:i:s', time()));
         Project::updateProject($project->pro_id, $data);
         //Set offer as winner
         $data = array('awarded' => Offer::STATUS_AWARDED);
         Offer::updateOffer($offer->id, $data);
         //Send notificacions and emails
         self::notifyWinner($project, $projectOwner, $winner);
         // Send email to winner
         self::emailWinner($offer, $winner, $project, $projectOwner);
         // Send email to project owner
         self::emailProjectOwner($offer, $winner, $project, $projectOwner);
         // Notifiy other photographers about denied offers. Losers :D
         self::notifyLosers($project);
         //Track event in analytics
         // Event = Proyectos adjudicados
         $eventData = new \stdClass();
         $eventData->user_id = $projectOwner['id'];
         $eventData->photograph_id = $winner['id'];
         $eventData->project_name = $project->pro_tit;
         $events = FAnalytics::getInstance();
         $events->trackEvent('Proyecto', 'Proyectos adjudicados', json_encode($eventData));
     } else {
         //TODO Oh oh... strong notification here about this fail
         return false;
     }
     return true;
 }
Example #3
0
    $data['pro_environment'] = $app->getRequest()->post('pro_environment');
    $data['pro_moment'] = $app->getRequest()->post('pro_moment');
    $proDeadline = str_replace('/', '-', $app->getRequest()->post('pro_deadline'));
    if (!empty($proDeadline)) {
        $projectDeadline = date('Y-m-d H:i:s', strtotime($proDeadline));
    }
    $data['pro_deadline'] = $projectDeadline;
    if ($error) {
        $app->addError("La información suministrada para la creación del proyecto es inválida.");
        $app->getInput()->save();
        //flash form data
        $app->redirect($app->getHelper('UrlHelper')->getUrl('agregarProyecto?id=' . $proId));
        return;
    }
    // END - Server side validations
    $result = Project::updateProject($proId, $data);
    if (!$result) {
        $app->addError("La información suministrada para la creación del proyecto es inválida.");
        $app->getInput()->save();
        //flash form data
        $app->redirect($app->getHelper('UrlHelper')->getUrl('agregarProyecto?id=' . $proId));
        return;
    }
    //Success
    $projectUrl = $app->getHelper('UrlHelper')->getProjectUrl($proId);
    $app->addMessage('Tu proyecto se ha guardo con éxito. <a href="{0}">Ir al proyecto</a>', $projectUrl);
    $app->redirect($app->getHelper('UrlHelper')->getUrl("perfil"));
    return;
}
//oferta
if ($act == "oferta") {
Example #4
0
     /* Mientras esto se mueve a donde debe estar */
     $app->shutdown();
     die;
     //$error = "La combinación de Correo y Contrase&ntilde;a son incorrectos.";
     //$actError = '$("#formError").slideDown("slow");
     //$actError = '$("#formError").css("display", "")';
 } else {
     // TODO: SACAR ESTA LOGICA DE AQUI JUNTO CON EL REFACTOR DE LOGIN
     if ($app->getRequest()->cookie('guest_project')) {
         // TODO: CAMBIAR ESTE QUERY CUANDO SE CAMBIE EL LOGIN, AHORA ES NECESARIO PORQ EN ESTE PUNTO LA COOKIE AUN NO EXISTE (MISMO REQUERT QUE CUANDO SE CREA Y NO SIRVE getCurrentUser())
         $currentUser = User::getUserByEmail($user_user);
         if ($currentUser->user_type == User::USER_TYPE_CLIENT) {
             $tmpProjectId = $app->getRequest()->cookie('guest_project');
             $tmpProject = TmpProject::getTmpProjectByTmpId($tmpProjectId);
             if ($tmpProject) {
                 $project = Project::createProjectFromTmp($tmpProject, $currentUser->id);
                 TmpProject::assignTmpProjectToUser($tmpProject->pro_id, $currentUser->id);
                 // Event: Proyectos subidos
                 $eventData = new stdClass();
                 $eventData->user_id = $currentUser->id;
                 $eventData->project_id = $project->id();
                 $eventData->project_name = $project->get('pro_tit');
                 $events = FAnalytics::getInstance();
                 $events->trackEvent('Proyecto', 'Proyectos subidos', json_encode($eventData));
             }
             // Delete cookie
             $app->getResponse()->removeCookie('guest_project');
         }
     }
     $app->redirect($app->getHelper('UrlHelper')->getUrl($login));
 }
Example #5
0
"
                            <?php 
echo $app->getInput()->old('pro_moment', $project->pro_moment) == Project::PROJECT_MOMENT_DAY ? 'checked' : '';
?>
><?php 
echo Project::getMomentsName(Project::PROJECT_MOMENT_DAY);
?>
                        <input id="pro_moment" name="pro_moment" type="radio" value="<?php 
echo Project::PROJECT_MOMENT_NIGHT;
?>
"
                            <?php 
echo $app->getInput()->old('pro_moment', $project->pro_moment) == Project::PROJECT_MOMENT_NIGHT ? 'checked' : '';
?>
><?php 
echo Project::getMomentsName(Project::PROJECT_MOMENT_NIGHT);
?>
                    </div>
                </div>
            </div>

            <div class="row">
                <div class="form-group col-xs-12">
                    <label for="pro_deadline" class="control-label">Deadline de la entrega</label>
                    <input  type="text" placeholder="dd/mm/yyyy" name="pro_deadline" value="<?php 
echo $app->getInput()->old('pro_deadline', $project->pro_deadline);
?>
" id="pro_deadline" class="form-control date-field">
                </div>
            </div>
Example #6
0
                                <?php 
            }
            ?>
                                <?php 
            if ($rs_proj->pro_status == Project::PROJECT_STATUS_DRAFT) {
                ?>
                                    <a class="btn btn-primary" href="agregarProyecto?id=<?php 
                echo $rs_proj->pro_id;
                ?>
">Editar proyecto</a>
                                <?php 
            }
            ?>

                                <?php 
            if (Project::canBeQualified($rs_proj, $currentUser)) {
                ?>
                                    <a class="btn btn-primary" href="<?php 
                echo UrlHelper::getUrl("proyectoFinalizar?id=" . $rs_proj->pro_id);
                ?>
">Calificar proyecto</a>
                                <?php 
            }
            ?>
                            </div>
                        </div>
                    <?php 
        }
        ?>
                <?php 
    } else {
Example #7
0
             <div class="col-xs-2 ofertas-summary">
                 <div class="alert alert-success alert-ofertas">
                     Ofertas: <?php 
echo $rs_pro->total_ofertas;
?>
                 </div>
                 <?php 
if ($current_user->user_type == User::USER_TYPE_PHOTOGRAPHER && $ofertas == "N" && $rs_pro->pro_status == Project::PROJECT_STATUS_ACTIVE) {
    ?>
                    <a class="btn btn-primary offer-form-trigger" href="#formOferta" id="oferta_ppal">Ofertar</a>
                 <?php 
} else {
    ?>
                     <div class="alert alert-project-status">
                         Proyecto <?php 
    echo Project::getStatusName($rs_pro->pro_status);
    ?>
                     </div>
                 <?php 
}
?>

                 <?php 
if ($rs_pro->pro_status == Project::PROJECT_STATUS_ACTIVE) {
    ?>
                     <div class="text-center time-left">
                         Quedan <?php 
    echo $diasRestN[2] . "d " . $diasRestN[3] . "h";
    ?>
                     </div>
                 <?php