source: branches/1.2/workflow/inc/natural/nat_types.php @ 1349

Revision 1349, 2.5 KB checked in by niltonneto, 15 years ago (diff)

Ticket #561 - Inclusão do módulo Workflow faltante nessa versão.

  • Property svn:executable set to *
Line 
1<?php
2
3
4/*
5 * Criado em 22/10/2008
6 *
7 * Autor: André Alexandre Ávila/DIDES-C1/Celepar
8 * Projeto NatPHPDC1
9 *
10 */
11/**
12 * Tipos Padrão
13 * Classe de tipagem padrão para comunicação com mainframe
14 * Manter essa classe sem alterações
15 * Para mudar tipos, criar uma nova classe extendndo essa e passar ao construtor da natphp.
16 *
17 * Situacoes invalidas:
18 * padl e padr no mesmo tipo
19 * str sem arr e vice-versa
20 * type assoc num array input
21 *
22 * Quando utilizar o div:
23 * Quando o Mainframe retorna um valor 1234567890 mas seria 12345678.90 o valor, divide-se por 100
24 * Ao se enviar novamente ao mainframe ele multiplica por 100 e envia
25 *
26 * Prioridade de tratamento:
27 * 1 length
28 * 2 div
29 * 3 array e str
30 * 4 funcarr e funcstr
31 * 5 trim global
32 */
33class NatType {
34        private $types = array (
35                'A' => array (
36                        'loop' => true,
37                        'type' =>'num'
38                ),
39                'AA' => array (
40                        'loop' => true,
41                        'type' =>'assoc'
42                ),
43                'N' => array (
44                        'padl' => '0'
45                ),
46                'S' => array (
47                        'padr' => ' '
48                ),
49                'DATE' => array (
50                        'str' => '%04d%02d%02d',
51                        'arr' => '%04d-%02d-%02d'
52                ),
53                'DATEBR' => array (
54                        'str' => '%02d%02d%04d',
55                        'arr' => '%02d/%02d/%04d'
56                ),
57                'DATEDMY' => array (
58                        'str' => '%04d%02d%02d',
59                        'arr' => '%3$02d/%2$02d/%1$04d'
60                ),
61                'DTIME' => array (
62                        'str' => '%04d%02d%02d%02d%02d%02d',
63                        'arr' => '%04d-%02d-%02d %02d:%02d:%02d'
64                ),
65                'DT' => array (
66                        'str' => '%04d%02d%02d%02d%02d%02d',
67                        'arr' => '%04d-%02d-%02d %02d:%02d:%02d'
68                ),
69                'TIME' => array (
70                        'str' => '%02d%02d%02d',
71                        'arr' => '%02d:%02d:%02d'
72                ),
73                'DEC' => array (
74                        'str' => '%0.2f',
75                        'arr' => '%0.2f',
76                        'div' => 100,
77                        'padl' => '0'
78                ),
79                'MONEY' => array (
80                        'str' => '%f',
81                        'arr' => '%0.2f',
82                        'div' => 100,
83                        'padl' => '0'
84                ),
85                'SSA' => array (
86                        'padr' => ' ',
87                        'funcstr' => 'removeAcentos'
88                )//string sem acento
89        );
90
91        function setType($name, $val) {
92                $this->types[$name] = $val;
93        }
94
95        function getType($name) {
96                if (!isset ($this->types[$name]))
97                        return $this->types['S'];
98                return $this->types[$name];
99        }
100
101        function removeAcentos($Msg) {
102                $a = array (
103                        "/[ÂÀÁÄÃ]/"     => "A",
104                        "/[âãàáä]/"     => "a",
105                        "/[ÊÈÉË]/"      => "E",
106                        "/[êèéë]/"      => "e",
107                        "/[ÎÍÌÏ]/"      => "I",
108                        "/[îíìï]/"      => "i",
109                        "/[ÔÕÒÓÖ]/" => "O",
110                        "/[ôõòóö]/" => "o",
111                        "/[ÛÙÚÜ]/"      => "U",
112                        "/[ûúùü]/"      => "u",
113                        "/ç/"           => "c",
114                        "/Ç/"           => "C"
115                );
116                return preg_replace(array_keys($a), array_values($a), $Msg);
117        }
118}
119?>
Note: See TracBrowser for help on using the repository browser.