Date field is not updating.

Answered

Comments

6 comments

  • Andreas Garnæs

    Hi Christian,

    Can you share a full, runnable example please? If you enclose the code in "```" then the formatting will be preserved.

    Best,
    Andreas

    0
    Comment actions Permalink
  • Andreas Garnæs

    Thanks. What's the value that you're trying to set for the date field ($submission->data[7][0])?

    0
    Comment actions Permalink
  • Cristian Martín Redondo

    Sure. I have removed private data for security reasons.

    ```function podio_integration_webform_webform_submission_presave($node, &$submission) {
    // Get the submission user object.
    $user = user_load($submission->uid);

    include_once DRUPAL_ROOT . '\sites\all\libraries\podio-php-4.2.0\PodioAPI.php';

    if ($node->title == "Incidencias de nóminas"){
    $fields = makeIncidence($submission);
    } else if ($node->title == "Periodos de incapacidad temporal") {
    $fields = makeIncapicity($submission);
    } else if ($node->title == "Extinción de contrato") {
    $fields = makeExtinction($submission);
    } else if ($node->title == "Modificación de Jornada") {
    $fields = makeModification($submission);
    } else if ($node->title == "Prórroga") {
    $fields = makeExtension($submission);
    } else if ($node->title == "Contratación") {
    $fields = makeContract($submission);
    }

    Podio::setup($client_id, $client_secret);
    Podio::authenticate_with_app($app_id, $app_token);

    // Create the item object with fields
    // Be sure to add an app or podio-php won't know where to create the item
    $item = new PodioItem(array(
    'app' => new PodioApp($app_id), // Attach to app with app_id=123
    'fields' => $fields
    ));

    // Save the new item
    $item->save();
    }

    function makeExtinction($submission){
    //Cambiar los valores de los campos
    if ($submission->data[7][0] == "otras"){
    $cause = 5;
    } else if ($submission->data[7][0] == "despido"){
    $cause = 4;
    } else if ($submission->data[7][0] == "noSuperacionPeriodoDePrueba"){
    $cause = 3;
    } else if ($submission->data[7][0] == "finDeContrato"){
    $cause = 2;
    } else {
    $cause = 1;
    }

    $dateItem = new PodioDateItemField('fecha');
    $dateItem->set_value(array('start' => $submission->data[7][0]));
    
    $fields = new PodioItemFieldCollection(array(
    new PodioTextItemField(array("external_id" => "titulo", "values" => $submission->data[1][0])),
    new PodioTextItemField(array("external_id" => "empresa", "values" => $submission->data[3][0])),
    new PodioTextItemField(array("external_id" => "dni", "values" => $submission->data[4][0])),
    new PodioTextItemField(array("external_id" => "numero-de-afiliacion", "values" => $submission->data[5][0])),
    $dateItem,
    new PodioTextItemField(array("external_id" => "tipo-de-contrato-2", "values" => $cause)), //causa
    new PodioTextItemField(array("external_id" => "causa-contrato", "values" => $submission->data[8][0])), //vacaciones pendientes
    new PodioTextItemField(array("external_id" => "categoria", "values" => $submission->data[9][0])), //conceptos salariales a abonar
    new PodioTextItemField(array("external_id" => "horario", "values" => $submission->data[10][0])), // ¿Baja médica?
    new PodioTextItemField(array("external_id" => "observaciones-y-comentarios", "values" => $submission->data[11][0]))
    

    ));

    return $fields;
    

    }```

    0
    Comment actions Permalink
  • Cristian Martín Redondo

    The value is "2015-08-17". I have tried with "2015-08-17 00:00:00" too.

    P.S: I can't format the code correctly, sorry.

    0
    Comment actions Permalink
  • Andreas Garnæs

    Rather than using set_value, could you try setting the value as described here: http://podio.github.io/podio-php/fields/#date-field

    0
    Comment actions Permalink
  • Cristian Martín Redondo

    Ok, that works. I will set the date field value that way from now.

    Thank you for your help. :)

    0
    Comment actions Permalink

Please sign in to leave a comment.

Powered by Zendesk