1 <?php
2
3 namespace Balance\Model;
4
5 use Zend\ServiceManager\ServiceLocatorAwareInterface;
6 use Zend\ServiceManager\ServiceLocatorAwareTrait;
7 use Zend\Stdlib\Parameters;
8
9 10 11
12 class Balance implements ServiceLocatorAwareInterface
13 {
14 use ServiceLocatorAwareTrait;
15
16 17 18 19
20 protected $formSearch;
21
22 23 24 25 26
27 public function getFormSearch()
28 {
29
30 if (! $this->formSearch) {
31
32 $form = $this->getServiceLocator()->get('FormElementManager')
33 ->get('Balance\Form\Search\Balance');
34
35 $inputFilter = $this->getServiceLocator()->get('InputFilterManager')
36 ->get('Balance\InputFilter\Search\Balance');
37
38 $form->setInputFilter($inputFilter);
39
40 $this->formSearch = $form;
41 }
42
43 return $this->formSearch;
44 }
45
46 47 48 49 50 51
52 public function fetch(Parameters $params)
53 {
54
55 $form = $this->getFormSearch();
56
57 if (! isset($params['datetime'])) {
58
59 $params['datetime'] = date('d/m/Y H:i:s', strtotime('first day of next month midnight -1 second'));
60 }
61
62 $form->setData($params);
63
64 $form->isValid();
65
66 $params = new Parameters();
67
68 foreach ($form->getInputFilter()->getValidInput() as $identifier => $input) {
69 $params[$identifier] = $input->getValue();
70 }
71
72 return $this->getServiceLocator()->get('Balance\Model\Persistence\Balance')->fetch($params);
73 }
74 }
75