Skip to content

Instantly share code, notes, and snippets.

@dominikzogg
Created March 20, 2012 14:04

Revisions

  1. Dominik Zogg revised this gist Apr 5, 2012. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions gistfile1.aw
    Original file line number Diff line number Diff line change
    @@ -29,7 +29,7 @@
    $datetime->setDate($value['year'], $value['month'], $value['day']);

    $queryBuilder->andWhere(sprintf('%s.orderdate', $alias) . ' >= :orderdatefrom');
    $queryBuilder->setParameter("orderdatefrom", $datetime);
    $queryBuilder->setParameter("orderdatefrom", $datetime->format('Y-m-d'));
    },
    'field_type' => 'date',
    'label' => 'statistic.orderdatefrom'
    @@ -66,7 +66,7 @@
    $datetime->setDate($value['year'], $value['month'], $value['day']);

    $queryBuilder->andWhere(sprintf('%s.orderdate', $alias) . ' <= :orderdateto');
    $queryBuilder->setParameter("orderdateto", $datetime);
    $queryBuilder->setParameter("orderdateto", $datetime->format('Y-m-d'));
    },
    'field_type' => 'date',
    'label' => 'statistic.orderdateto'
  2. Dominik Zogg revised this gist Apr 3, 2012. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions gistfile1.aw
    Original file line number Diff line number Diff line change
    @@ -29,7 +29,7 @@
    $datetime->setDate($value['year'], $value['month'], $value['day']);

    $queryBuilder->andWhere(sprintf('%s.orderdate', $alias) . ' >= :orderdatefrom');
    $queryBuilder->setParameter(":orderdatefrom", $datetime);
    $queryBuilder->setParameter("orderdatefrom", $datetime);
    },
    'field_type' => 'date',
    'label' => 'statistic.orderdatefrom'
    @@ -66,7 +66,7 @@
    $datetime->setDate($value['year'], $value['month'], $value['day']);

    $queryBuilder->andWhere(sprintf('%s.orderdate', $alias) . ' <= :orderdateto');
    $queryBuilder->setParameter(":orderdateto", $datetime);
    $queryBuilder->setParameter("orderdateto", $datetime);
    },
    'field_type' => 'date',
    'label' => 'statistic.orderdateto'
  3. Dominik Zogg renamed this gist Mar 20, 2012. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  4. Dominik Zogg created this gist Mar 20, 2012.
    74 changes: 74 additions & 0 deletions sonataadmindaterange.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,74 @@
    ->add('orderdatefrom', 'doctrine_orm_callback',
    array
    (
    'callback' => function(\Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery $queryBuilder, $alias, $field, $options)
    {
    if(!isset($options['value']) || !$options['value'])
    {
    return;
    }
    $value = $options['value'];

    // set defaults
    if(empty($value['year']))
    {
    return;
    }
    if(empty($value['month']))
    {
    $value['month'] = 1;
    }
    if(empty($value['day']))
    {
    $value['day'] = 1;
    }
    // new datetime
    $datetime = new \DateTime();

    // update date
    $datetime->setDate($value['year'], $value['month'], $value['day']);

    $queryBuilder->andWhere(sprintf('%s.orderdate', $alias) . ' >= :orderdatefrom');
    $queryBuilder->setParameter(":orderdatefrom", $datetime);
    },
    'field_type' => 'date',
    'label' => 'statistic.orderdatefrom'
    )
    )
    ->add('orderdateto', 'doctrine_orm_callback',
    array
    (
    'callback' => function(\Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery $queryBuilder, $alias, $field, $options)
    {
    if(!isset($options['value']) || !$options['value'])
    {
    return;
    }
    $value = $options['value'];

    // set defaults
    if(empty($value['year']))
    {
    return;
    }
    if(empty($value['month']))
    {
    $value['month'] = 1;
    }
    if(empty($value['day']))
    {
    $value['day'] = 1;
    }
    // new datetime
    $datetime = new \DateTime();

    // update date
    $datetime->setDate($value['year'], $value['month'], $value['day']);

    $queryBuilder->andWhere(sprintf('%s.orderdate', $alias) . ' <= :orderdateto');
    $queryBuilder->setParameter(":orderdateto", $datetime);
    },
    'field_type' => 'date',
    'label' => 'statistic.orderdateto'
    )
    )