]> git.llucax.com Git - mecon/intranet.git/blob - sistema/www/servicios/infoleg/pedido.php
Bugfixes.
[mecon/intranet.git] / sistema / www / servicios / infoleg / pedido.php
1 <?php 
2 /*-----------------------------------------------------------------------------
3 Intranet del Ministerio de Economía
4 Pedidos a Infoleg
5 -------------------------------------------------------------------------------
6 Myrna Degano <mdegan@mecon.gov.ar>
7 ------------------------------------------------------------------------------*/
8
9 //Lib de 'Pedidos a Infoleg'
10 require_once 'INFOLEG/Operador.php';
11 require_once 'INFOLEG/Solicitante.php';
12 require_once 'INFOLEG/Pedido.php';
13
14 require_once 'MECON/HTML/Tabla.php';
15 require_once 'HTML/Table.php';
16 require_once 'HTML_DietMarco.php';
17 require_once 'HTML_Mensaje.php';
18 require_once 'MECON/HTML/QuickFormSimple.php';
19 require_once 'MECON/HTML/Image.php';
20
21 if(!isset($_SESSION['documento'])){
22         header('Location: ../../servicios.php');
23         exit;
24 }
25
26 //Usuario que realiza el pedido
27 $nrodoc = $_SESSION['documento'];
28 $user = $_SESSION['usuario'];
29 $solicitante =& new INFOLEG_Solicitante($DB, $nrodoc, $user);
30
31 //Imágenes
32 $IMG_Vineta =& new MECON_HTML_Image('../../images/servicios_flecha_naranja.gif', '>>');
33 $IMG_OK =& new MECON_HTML_Image('../../images/servicios_ok.gif', 'ok');
34 $IMG_Error =& new MECON_HTML_Image('/MECON/images/general_no_autorizado.gif', 'X');
35
36 //Marco de servicios en intranet
37 $MARCO     = new HTML_DietMarco('servicios', 'Pedidos a Infoleg');
38 //$MARCO->addTitle('Pedidos a Infoleg');
39
40 if (! isset($_POST['pedido'])){
41
42     if (! INFOLEG_Operador::oprDisponibleIntranet($DB)){
43         //No hay operador disponible para atender el pedido => mensaje de error
44         
45         $MSG =& new HTML_Mensaje ('error', 'No hay operadores asignados para atender su pedido', 490); 
46         $MARCO->addBodyContent('<br><br>');
47         $MARCO->addBodyContent($MSG);
48     }
49     else{
50         //Datos del solicitante
51         $datos = $solicitante->obtenerDatos();
52
53         //Elementos del Formulario
54         $FORM =& new MECON_HTML_QuickFormSimple ('form', 'post', './pedido.php', '', 'onSubmit="return validar(this)"');
55     
56         $nombre = (isset($datos['nombre']))?$datos['nombre']:'';
57         $input_nombre =& $FORM->addElement ('text', 'nombre', 'nombre', 
58                                             array('size' => '20', 'maxlength'=>'30', 'value'=>$nombre));
59
60         $apellido = (isset($datos['apellido']))?$datos['apellido']:'';
61         $input_apellido =& $FORM->addElement ('text', 'apellido', 'apellido', 
62                                                 array('size' => '20', 'maxlength'=>'30', 'value'=>$apellido));
63
64             $tipodocs = array('CI'=>'CI', 'DU'=>'DNI', 'LC'=>'LC', 'LE'=>'LE', 'PS'=>'PS');
65         $select_tipodoc =& $FORM->addElement ('select', 'tipodoc', 'tipodoc', $tipodocs);
66         if (isset($datos['tipodoc'])){
67             $select_tipodoc->setSelected($datos['tipodoc']);
68         }
69
70         $input_nrodoc =& $FORM->addElement ('hidden', 'nrodoc', $nrodoc);
71
72         $institucion = (isset($datos['institucion']))?$datos['institucion']:'Ministerio de Economía';
73         $input_institucion =& $FORM->addElement ('text', 'institucion', 'institucion', 
74                                                     array('size' => '20', 'maxlength'=>'50', 'value'=>$institucion));
75
76         $domicilio = (isset($datos['domicilio']))?$datos['domicilio']:'';
77         $input_domicilio =& $FORM->addElement ('text', 'domicilio', 'domicilio', 
78                                                 array('size' => '20', 'maxlength'=>'50', 'value'=>$domicilio));
79
80         $piso = (isset($datos['piso']))?$datos['piso']:'';
81         $input_piso =& $FORM->addElement ('text', 'piso', 'piso', 
82                                             array('size' => '5', 'maxlength'=>'10', 'value'=>$piso));
83
84         $oficina = (isset($datos['oficina']))?$datos['oficina']:'';
85         $input_oficina =& $FORM->addElement ('text', 'oficina', 'oficina', 
86                                                 array('size' => '5', 'maxlength'=>'10', 'value'=>$oficina));
87
88         $interno = (isset($datos['interno']))?$datos['interno']:'';
89         $input_interno =& $FORM->addElement ('text', 'interno', 'interno', 
90                                                 array('size' => '5', 'maxlength'=>'10', 'value'=>$interno));
91
92         $telefono = (isset($datos['telefono']))?$datos['telefono']:'';
93         $input_telefono =& $FORM->addElement ('text', 'telefono', 'telefono', 
94                                                 array('size' => '10', 'maxlength'=>'20', 'value'=>$telefono));
95
96         $fax = (isset($datos['fax']))?$datos['fax']:'';
97         $input_fax =& $FORM->addElement ('text', 'fax', 'fax', 
98                                             array('size' => '10', 'maxlength'=>'20', 'value'=>$fax));
99
100         $email = (isset($datos['email']))?$datos['email']:'';
101         $input_email =& $FORM->addElement ('text', 'email', 'email', 
102                                             array('size' => '20', 'maxlength'=>'50', 'value'=>$email));
103
104         $textarea_pedido =& $FORM->addElement ('textarea', 'pedido', 'pedido', array('cols' => '45', 'rows'=>'5', 'wrap'=>'virtual'));
105         $submit =& $FORM->addElement ('submit', 'Enviar', 'Enviar');
106
107         //Función para validar el formulario
108         $script = 
109 <<<EOT
110         function validar (theForm){ 
111             if (theForm.nombre.value==''){
112                 alert('El campo NOMBRE es obligatorio');
113                 theForm.nombre.focus();
114                 return false;
115             }
116             if (theForm.apellido.value==''){
117                 alert('El campo APELLIDO es obligatorio');
118                 theForm.apellido.focus();
119                 return false;
120             }
121             if (theForm.domicilio.value==''){
122                 alert('El campo DOMICILIO es obligatorio');
123                 theForm.domicilio.focus();
124                 return false;
125             }
126             if (theForm.piso.value==''){
127                 alert('El campo PISO es obligatorio');
128                 theForm.piso.focus();
129                 return false;
130             }
131             if (theForm.oficina.value==''){
132                 alert('El campo OFICINA es obligatorio');
133                 theForm.oficina.focus();
134                 return false;
135             }
136             if (theForm.interno.value==''){
137                 alert('El campo INTERNO es obligatorio');
138                 theForm.interno.focus();
139                 return false;
140             }
141             if (theForm.email.value==''){
142                 alert('El campo E-MAIL es obligatorio');
143                 theForm.email.focus();
144                 return false;
145             }
146             if (theForm.telefono.value==''){
147                 theForm.telefono.value='-';
148             }
149             if (theForm.institucion.value==''){
150                 theForm.institucion.value='-';
151             }
152             if (theForm.fax.value==''){
153                 theForm.fax.value='-';
154             }
155             if (theForm.pedido.value==''){
156                 alert('Ingrese su pedido');
157                 theForm.pedido.focus();
158                 return false;
159             }
160             return true;
161         } 
162 EOT;
163
164         $MARCO->addScriptDeclaration($script);
165
166         //Tabla Pedido
167         $TABLA =& new MECON_HTML_Tabla(array('width'=>'600', 'align'=>'center'), 'medio');
168         $TABLA->addRow( array($IMG_Vineta->toHtml().'Datos Personales')); 
169         $TABLA->addRow( array('Nombre', $input_nombre->toHtml(), 'Apellido', '', $input_apellido->toHtml())); 
170         $TABLA->addRow( array('Documento', $select_tipodoc->tohtml().'&nbsp;'.$nrodoc.$input_nrodoc->toHtml(), 'Institución', '', $input_institucion->toHtml())); 
171         $TABLA->addRow( array('Domicilio', $input_domicilio->toHtml(), 'Piso', $input_piso->toHtml(), 'Oficina', $input_oficina->toHtml(), 'Interno', $input_interno->toHtml())); 
172         $TABLA->addRow( array('E-mail', $input_email->toHtml(), 'Fax', $input_fax->toHtml(), 'Teléfono', $input_telefono->toHtml())); 
173         $TABLA->addRow( array($IMG_Vineta->toHtml().'Pedido')); 
174         $TABLA->addRow( array($textarea_pedido->toHtml())); 
175         $TABLA->addRow( array($submit->toHtml())); 
176
177         $TABLA->setColAttributes(0, 'titulo width="100" align="left"');
178         $TABLA->setColAttributes(1, 'comun width="200" align="left"');
179         $TABLA->setColAttributes(2, 'titulo width="50" align="left"');
180         $TABLA->setColAttributes(3, 'comun width="50" align="left"');
181         $TABLA->setColAttributes(4, 'titulo width="50" align="left"');
182         $TABLA->setColAttributes(5, 'comun width="50" align="left"');
183         $TABLA->setColAttributes(6, 'titulo width="50" align="left"');
184         $TABLA->setColAttributes(7, 'comun width="50" align="left"');
185         $TABLA->setCellAttributes(0, 0, 'cabecera colspan="8" align="left"');
186         $TABLA->setCellAttributes(1, 2, 'colspan="2" titulo align="left"');
187         $TABLA->setCellAttributes(2, 2, 'colspan="2" titulo align="left"');
188         $TABLA->setCellAttributes(5, 0, 'cabecera colspan="8" align="left"');
189         $TABLA->setCellAttributes(6, 0, 'comun colspan="8" align="center"');
190         $TABLA->setCellAttributes(7, 0, 'comun colspan="8" align="center"');
191         $TABLA->setCellAttributes(1, 4, 'colspan="4" comun align="left"');
192         $TABLA->setCellAttributes(2, 4, 'colspan="4" comun align="left"');
193         $TABLA->setCellAttributes(4, 5, 'colspan="3" comun align="left"');
194
195         //Contenido de la página
196         $MARCO->addBodyContent($FORM->getBegin());
197         $MARCO->addBodyContent($TABLA);
198         $MARCO->addBodyContent($FORM->getEnd());
199     }
200 }
201 else{
202     //Validar los datos enviados por el cliente
203     if (strlen($_POST['nombre']) == 0 OR
204         strlen($_POST['apellido']) == 0 OR
205         strlen($_POST['tipodoc']) == 0 OR
206         strlen($_POST['nrodoc']) == 0 OR
207         strlen($_POST['domicilio']) == 0 OR
208         strlen($_POST['piso']) == 0 OR
209         strlen($_POST['oficina']) == 0 OR
210         strlen($_POST['interno']) == 0 OR
211         strlen($_POST['email']) == 0 OR
212         strlen($_POST['pedido']) == 0){
213
214         //Mensaje de Error
215         $MSG =& new HTML_Mensaje ('alerta', 'Datos Incorrectos. Intente nuevamente.', 390); 
216         $MARCO->addBodyContent('<br><br>');
217         $MARCO->addBodyContent($MSG);
218     }
219     else{
220         //Validar datos no obligatorios (-)
221         $_POST['institucion'] = (strlen($_POST['institucion'])==0)?'-':$_POST['institucion'];
222         $_POST['fax'] = (strlen($_POST['institucion'])==0)?'-':$_POST['fax'];
223         $_POST['telefono'] = (strlen($_POST['institucion'])==0)?'-':$_POST['telefono'];
224         
225         //Pedido Formulado
226         $solicitante->_actualizarDatos($_POST);
227         $operador_asignado = INFOLEG_Operador::obtenerOprIntranet($DB);
228         INFOLEG_Pedido::alta($DB, $_POST['tipodoc'], $_POST['nrodoc'], 
229                             $operador_asignado, $_POST['pedido']);
230     
231         $MSG =& new HTML_Mensaje ('ok', 'Su pedido ha sido registrado', 300); 
232         $MARCO->addBodyContent('<br><br>');
233         $MARCO->addBodyContent($MSG);
234     }
235 }
236
237 $MARCO->display();
238 ?>