/** * Recurso de la API que permite obtener los datos de un item a partir de su * código * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) * @version 2015-09-21 */ public function _api_info_GET($codigo, $empresa) { // crear contribuyente y verificar que exista y tenga api configurada $Empresa = new Model_Contribuyente($empresa); if (!$Empresa->exists()) { $this->Api->send('Empresa solicitada no existe', 404); } if (!$Empresa->api_items) { $this->Api->send('Empresa no tiene configurada API para consultar items', 500); } // consultar item $rest = new \sowerphp\core\Network_Http_Rest(); if ($Empresa->api_token) { $rest->setAuth($Empresa->api_token); } $response = $rest->get($Empresa->api_items . $codigo); $this->Api->send($response['body'], $response['status']['code']); }
/** * Acción de la API que permite obtener la información de un DTE emitido * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) * @version 2015-09-24 */ public function _api_info_GET($dte, $folio, $contribuyente = null) { $Emisor = $this->getContribuyente(); if (!$Emisor) { if (!$contribuyente) { $this->Api->send('Debe indicar el emisor', 500); } $Emisor = new Model_Contribuyente($contribuyente); if (!$Emisor->exists()) { $this->Api->send('Emisor no existe', 404); } } $DteEmitido = new Model_DteEmitido($Emisor->rut, $dte, $folio, (int) $Emisor->certificacion); if (!$DteEmitido->exists()) { $this->Api->send('No existe el documento solicitado T.' . $dte . 'F' . $folio, 404); } $DteEmitido->xml = false; return $DteEmitido; }
/** * Método que guarda un Receptor * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) * @version 2015-09-28 */ private function guardarReceptor($datos) { list($receptor, $dv) = explode('-', $datos['RUTRecep']); $Receptor = new Model_Contribuyente($receptor); if ($Receptor->usuario) { return null; } $Receptor->dv = $dv; $Receptor->razon_social = substr($datos['RznSocRecep'], 0, 100); if (!empty($datos['GiroRecep'])) { $Receptor->giro = substr($datos['GiroRecep'], 0, 80); } if (!empty($datos['Contacto'])) { $Receptor->telefono = substr($datos['Contacto'], 0, 20); } if (!empty($datos['CorreoRecep'])) { $Receptor->email = substr($datos['CorreoRecep'], 0, 80); } if (!empty($datos['DirRecep'])) { $Receptor->direccion = substr($datos['DirRecep'], 0, 70); } if (!empty($datos['CmnaRecep'])) { if (is_numeric($datos['CmnaRecep'])) { $Receptor->comuna = $datos['CmnaRecep']; } else { $comuna = (new \sowerphp\app\Sistema\General\DivisionGeopolitica\Model_Comunas())->getComunaByName($datos['CmnaRecep']); if (!$comuna) { return false; } $Receptor->comuna = $comuna; } } $Receptor->modificado = date('Y-m-d H:i:s'); try { $Receptor->save(); return true; } catch (\sowerphp\core\Exception_Model_Datasource_Database $e) { return false; } }
/** * Método de la API que permite obtener los datos de un contribuyente * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) * @version 2015-12-30 */ public function _api_info_GET($rut) { $Contribuyente = new Model_Contribuyente($rut); if (!$Contribuyente->exists()) { $this->Api->send('Contribuyente solicitado no existe', 404); } $clean = ['sii_pass', 'intercambio_pass', 'api_token', 'api_items']; foreach ($clean as $attr) { $Contribuyente->{$attr} = false; } $this->Api->send($Contribuyente, 200, JSON_PRETTY_PRINT); }