Exemple #1
0
 private function download()
 {
     $this->template = FALSE;
     // ID único de la remesa: id de remesa + fecha de generación
     $paymentInfoId = $this->empresa->cifnif . '-' . date('dmy-H:i', strtotime($this->remesa->fecha));
     // Formato de documento a utilizar
     $sepaPAIN = SephpaDirectDebit::SEPA_PAIN_008_001_02;
     // Comprobar y sanear valores, permite evitar validación de IBAN, útil para pruebas con IBANs falsos
     $checkAndSanitize = FALSE;
     /**
      * normal direct debit : LOCAL_INSTRUMENT_CORE_DIRECT_DEBIT = 'CORE';
      * urgent direct debit : LOCAL_INSTRUMENT_CORE_DIRECT_DEBIT_D_1 = 'COR1';
      * business direct debit : LOCAL_INSTRUMENT_BUSINESS_2_BUSINESS = 'B2B';
      */
     $localInstrument = SepaUtilities::LOCAL_INSTRUMENT_CORE_DIRECT_DEBIT;
     /**
      * first direct debit : SEQUENCE_TYPE_FIRST = 'FRST';
      * recurring direct debit : SEQUENCE_TYPE_RECURRING = 'RCUR';
      * one time direct debit : SEQUENCE_TYPE_ONCE = 'OOFF';
      * final direct debit : SEQUENCE_TYPE_FINAL = 'FNAL';
      */
     $sequenceType = SepaUtilities::SEQUENCE_TYPE_RECURRING;
     $directDebitFile = new SephpaDirectDebit($this->empresa->nombre, $paymentInfoId, $sepaPAIN, $checkAndSanitize);
     $creationDateTime = date('Y-m-d\\TH:i:s', strtotime($this->remesa->fecha));
     // at least one in every SEPA file. No limit.
     $directDebitCollection = $directDebitFile->addCollection(array('pmtInfId' => $paymentInfoId, 'lclInstrm' => $localInstrument, 'seqTp' => $sequenceType, 'cdtr' => substr($this->empresa->nombre, 0, 70), 'iban' => $this->remesa->iban, 'bic' => $this->remesa->swift, 'ci' => $this->empresa->cifnif, 'ccy' => $this->remesa->coddivisa, 'reqdColltnDt' => date('Y-m-d', strtotime($this->remesa->fechacargo))));
     // at least one in every DirectDebitCollection. No limit.
     foreach ($this->resultados as $recibo) {
         if (TRUE) {
             $directDebitCollection->addPayment(array('pmtId' => $recibo->codigo, 'instdAmt' => $recibo->importe, 'mndtId' => $recibo->codigo, 'dtOfSgntr' => date('Y-m-d', strtotime($recibo->fecha)), 'dbtr' => substr($recibo->nombrecliente, 0, 70), 'bic' => $recibo->swift, 'iban' => $recibo->iban, 'rmtInf' => $recibo->codigo));
         }
     }
     $this->remesa->estado = "En trámite";
     if (!$this->remesa->save()) {
         $this->new_error_msg("¡Imposible modificar la remesa!");
     }
     $directDebitFile->downloadSepaFile('Remesa_' . $this->remesa->idremesa . '_' . $this->remesa->fecha . '_SEPA_' . $localInstrument . '' . '.xml', $creationDateTime, $this->empresa->cifnif);
 }