/**
  * 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);
 }