Skip to content

Exemplo Multibanco

Rogerio Muniz edited this page Mar 1, 2018 · 13 revisions

public function geraArquivo($param){ TTransaction::open(TSession::getValue('conectionfile')); TTransaction::setLogger( new TLoggerHTML('arquvio.html') ); $codigo_banco = $param['bancos_codigo']; $cc_conta = new Cc_conta(array('cc_contas_codigo'=>$param['cc_contas_codigo'])); $carteira = new Carteira(array('carteiras_codigo'=>$param['carteiras_codigo'])); $empresa = new Empresa(array('empresas_codigo'=>TSession::getValue('empresas_codigo'))); $conta = explode('-',$cc_conta->cc_contas_conta); $agencia = explode("-",$cc_conta->cc_contas_agencia); $agencia = count($agencia)>0?$agencia[0]:$this->cc_contas->cc_contas_agencia; $agencia_dv = count($agencia)>0?$agencia[1]:0; $cod_cedente = explode('-',$cc_conta->cc_contas_cod_cliente); $boletos_arquivo = new Boletos_arquivo($param); $boletos_arquivo->boletos_arquivos_datahora = date("ymdhis"); $boletos_arquivo->situacao = "NOR"; $lastInsert = $boletos_arquivo->insert(); header("Content-Disposition: attachment;filename=REM".str_pad($boletos_arquivo->boletos_arquivos_codigo,5,'0',STR_PAD_LEFT).".rem;"); $layout = $carteira->carteira_layout_remessa; $arquivo = new Remessa($cc_conta->bancos_codigo,$layout,array( 'nome_empresa' =>$empresa->empresas_razaosocial, // seu nome de empresa 'tipo_inscricao' => 2, // seu cnpj completo 'numero_inscricao' => $empresa->empresas_cnpjcpf, // seu cnpj completo 'agencia' => $agencia, 'agencia_dv' => $agencia_dv, 'conta' => $conta[0], // número da conta 'conta_dv' => $conta[1], // digito da conta 'codigo_beneficiario' => $cod_cedente[0], // digito do cedente 'numero_sequencial_arquivo' => $boletos_arquivo->boletos_arquivos_codigo, // digito da conta )); $lote = $arquivo->addLote(array('tipo_servico'=> $carteira->carteiras_registro)); $especie = new CnabPHP\Especie($cc_conta->bancos_codigo); // instancia um repositório $repository = new TRepository('Boleto'); $criteria = new TCriteria(); $criteria->add(new TFilter(new TTableAndField('boletos','situacao'),'=','NOR')); $criteria->add(new TFilter('boletos_arquivos_codigo','is',NULL)); $criteria->add(new TFilter('bancos_codigo','=',$param['bancos_codigo'])); $criteria->setProperty('order', 'boletos_codigo'); $join = new TJoin("cc_contas",new TTableAndField("cc_contas","cc_contas_codigo"),"=",new TTableAndField("boletos","cc_contas_codigo")); $criteria->setProperty('join',$join); // carrega todos os objetos $collection = $repository->load($criteria); // adiciona objetos na combo foreach ($collection as $object) { //$boleto = $object->geraBoleto(true); $locatario = $object->get_locatario(); $imovel = $object->get_locacao()->imovel; //$multa = new Multa_mes(); // $multa->mes_ref = $object->boletos_mes_ref; //$locacao = $object->locacao; $locacao = new Locacao(array("locacoes_codigo" => $this->locacoes_codigo)); $aditamento = $locacao->aditamento; //$locatarios = $object->locacao->locatarios; //$locatario = $locatarios[0]; //$locatario->get_enderecos_cobranca; $sacado_tipo = $locatario->locatarios_pfpj=='F'?'1':'2'; $object->boletos_arquivos_codigo = $boletos_arquivo->boletos_arquivos_codigo; $object->update(); $lote->inserirDetalhe(array( 'codigo_ocorrencia' => $object->boletos_acoes_codigo, // 1 = Entrada de título, futuramente poderemos ter uma constante 'nosso_numero' => $object->boletos_codigo, 'numero_documento' => $object->boletos_codigo."/".str_pad($object->boletos_parcela,3,'0',STR_PAD_LEFT), 'especie_titulo' => $object->boletos_especie, // informar dm e sera convertido para codigo em qualquer laytou conferir em especie.php 'carteira_banco' => $carteira->carteiras_nome, // codigo da carteira ex: 109,RG esse vai o nome da carteira no banco 'cod_carteira' => "I", // I para a maioria ddas carteiras do itau 'carteira' => 1, // codigo da carteira 1 = simples 'valor' => $object->getUnformated("boletos_valor"), // Valor do boleto 'emissao_boleto' => 2, // tipo de emissao do boleto informar 'protestar' => 3, // 1 = Protestar com (Prazo) dias, 2 = Devolver após (Prazo) dias, futuramente poderemos ter uma constante 'nome_pagador' => $locatario->locatarios_nome, // O Sacado é o cliente, preste atenção nos campos abaixo 'tipo_inscricao' => $sacado_tipo, //campo fixo, escreva '1' se for pessoa fisica, 2 se for pessoa juridica 'numero_inscricao' => $locatario->locatarios_cnpjcpf, 'endereco_pagador' => $imovel->imoveis_endereco.",".$imovel->imoveis_numero." ".$imovel->imoveis_complemento, 'bairro_pagador' => $imovel->imoveis_bairro, 'cep_pagador' => $imovel->imoveis_cep, // sem hífem 'cidade_pagador' => $imovel->cidades_nome, 'uf_pagador' => $imovel->imoveis_uf, 'data_vencimento' => $object->boletos_data_venc, 'data_emissao' => $object->boletos_data_cad, 'vlr_juros' => ($locacao->locacoes_calcula_juros=="S")?$object->getUnformated('boletos_juro_dia'):0, // Valor do juros de 1 dia' 'data_desconto' => $object->boletos_data_desc, 'vlr_desconto' => $object->getUnformated('boletos_vlr_desc'), // Valor do desconto 'prazo_protesto' => $object->boletos_prazo, // prazo de dias para o cliente pagar após o vencimento 'prazo_baixar' => $object->boletos_prazo, // prazo para devolver quando nao pago //'mensagem' => $object->boletos_mensagem, //'email_pagador' => 'rogerio@ciatec.net', // data da multa 'data_multa' => $object->boletos_data_multa, // data da multa 'vlr_multa' => $object->getUnformated('boletos_vlr_multa'), // valor da multa 'taxa_multa' => ($locacao->locacoes_calcula_multa=="S")?$object->boletos_taxa_multa:0, // taxa de multa em percentual 'taxa_juros' => ($locacao->locacoes_calcula_multa=="S")?$object->boletos_taxa_juros:0, // taxa de multa em percentual )); //break; } echo utf8_decode($arquivo->getText()); TTransaction::close(); exit; }

Clone this wiki locally