'') { TTransaction::open('pft'); //------------------------------------------- $processo = new Processos($param['id']); $tpdeclaracao = $processo->tpdeclaracao; //------------------------------------------- $cliente = new Clientes($processo->Clientes_id); //------------------------------------------- $repository = new TRepository('Adicoes'); $criteria = new TCriteria; $criteria->add(new TFilter("Processos_id","=",'9'), TExpression::AND_OPERATOR); if (empty($param['order'])) { $param['order'] = 'id'; $param['direction'] = 'asc'; $param['group'] = 'nradicao,cdncm,plienviogrupo'; } $criteria->setProperties($param); $obj = $repository->load($criteria, FALSE); $array = ['cdncm','inscsuframa','cnpj','telefone']; $reg = ''; foreach($obj as $adicoes){ //var_dump($adicoes->cdncm); //print "
";
                    //tratando o nome do arquivo ------------------
                    $dt = new DateTime();
                    //$data = $dt->format('dMY\_His');
                    $data = $dt->format('dMY');
                    $arq = "tmp/pli/{$cliente->inscsuframa}_own_{$data}.PL5";
                    $reg = '';
                    //abri o arquivo para gravacao------------------
                    $fp = fopen( $arq, "w+");
                    //----------------------------------------------
                    $repository_reg1 = new TRepository('Txtpli');
                    $criteria_reg1 = new TCriteria;
                    $criteria_reg1->add(new TFilter("reg","=",'1'),  TExpression::AND_OPERATOR);
                    if (empty($param['order'])) {
                        $param['order'] = 'id';
                        $param['direction'] = 'asc';
                    }
                    $criteria_reg1->setProperties($param);
                    $reg_reg1 = $repository_reg1->load($criteria_reg1, FALSE);
                    $reg =  '';
                    if($reg_reg1){
                        foreach ($reg_reg1 as $reg1) {
                            $tamanho = (int) $reg1->tamanho;
                            $tipo = $reg1->tipo;//texto, numerico
                            $tabela = $reg1->tabela;//
                            $relacao = $reg1->relacao;
                            $campo = $reg1->campo;
                            $casas = $reg1->casas;
                            $array = ['cnpj'=>'cnpj','inscsuframa'=>'inscsufram', 'telefone'=>'telefone','cep'=>'cep'];
                            
                        }//fim do foreach do registro 1
                        //gravando no arquivo --------------------------
                        fwrite($fp, utf8_encode($reg."\n") );
                        $msn = '';
                        if( strlen($reg) > 343 ){
                            $msn .= "
Registro 1 - Estrutura maior que o Layout
"; } if( strlen($reg) < 343 ){ $msn .= "
Registro 1 - Estrutura menor que o Layout
"; } }//fim do if do registro 1 //tipo de registro 1 --------------------------- //informacoes basicas //------------------------------------------- //informacoes da adicao $conn = TTransaction::get(); $sql = ("SELECT Adicoes.*, Faturas.*, FaturaItens.*, sum(FaturaItens.plitem) as pladicao, sum(FaturaItens.quantidade) as qtdadicao, sum(vliiitem)as vliiadicao, sum(vlipiitem)as vlipiadicao,sum(vlpisitem)as vlpisadicao FROM ((Faturas INNER JOIN FaturaItens ON FaturaItens.Faturas_id=Faturas.id) inner join Adicoes on Adicoes.Processos_id=Faturas.Processos_id) WHERE Faturas.Processos_id = {$processo->id} GROUP BY FaturaItens.cdncm, FaturaItens.nradicao,FaturaItens.Fabricantes_id ORDER BY FaturaItens.cdncm, FaturaItens.nradicao, FaturaItens.nritem"); //print "
{$sql}
"; $obj_adicao = $conn->query($sql); //------------------------------------------------------------------ $repository_reg1 = ''; $repository_reg1 = new TRepository('Txtpli'); $criteria_reg1 = ''; $criteria_reg1 = new TCriteria; $criteria_reg1->add(new TFilter("reg","=",'9'), TExpression::AND_OPERATOR); if (empty($param['order'])) { $param['order'] = 'id'; $param['direction'] = 'asc'; } $criteria_reg1->setProperties($param); $reg_reg1 = $repository_reg1->load($criteria_reg1, FALSE); $arrayfreteseguro = ["DAT"=>"DAT","CIP"=>"CIP","CIF"=>"CIF","DAP"=>"DAP","DPU"=>"DPU"]; $arrayfrete = ["CPT"=>"CPT","CFR"=>"CFR"]; if($obj_adicao){ foreach($obj_adicao as $adicao){ //informacoes do fornecedor $exportador = new Fabricanteexportador($adicao['Exportadores_id']); //informacoes do fabricante $fabricante = new Fabricanteexportador($adicao['Fabricantes_id']); $vl_li = $adicao['vlfob']; if( array_key_exists($adicao['icoterms'], $arrayfreteseguro) ){ $vl_li = ($adicao['vlfob']+$adicao['vlfrete']+$adicao['vlseguro']); } if( array_key_exists($adicao['icoterms'], $arrayfrete) ){ $vl_li = ($adicao['vlfob']+$adicao['vlfrete']); } $adicao['vl_li'] = $vl_li; $reg = ''; if($reg_reg1){ foreach ($reg_reg1 as $reg1) { $tamanho = (int) $reg1->tamanho; $tipo = $reg1->tipo;//texto, numerico $tabela = $reg1->tabela;// $relacao = $reg1->relacao; $campo = $reg1->campo; $casas = $reg1->casas; $array = ['cnpj'=>'cnpj','inscsuframa'=>'inscsufram', 'telefone'=>'telefone','cep'=>'cep']; } fwrite($fp, utf8_encode($reg."\n") ); //print "
Tamanho Reg9: ". strlen($reg) ."
"; $msn = ''; if( strlen($reg) > 135 ){ $msn .= "
Registro 9 - Estrutura maior que o Layout
"; } if( strlen($reg) < 135 ){ $msn .= "
Registro 9 - Estrutura menor que o Layout
"; } //tipo de registro 9 --------------------------- //informacoes Mercadoria (Adicao) }//fim do if do registro 9 //informacao do exportador e fabricante $repository_reg1 = new TRepository('Txtpli'); $criteria_reg1 = new TCriteria; $criteria_reg1->add(new TFilter("reg","=",'8'), TExpression::AND_OPERATOR); if (empty($param['order'])) { $param['order'] = 'id'; $param['direction'] = 'asc'; } $criteria_reg1->setProperties($param); $reg_reg1 = $repository_reg1->load($criteria_reg1, FALSE); $reg = ''; if($reg_reg1){ foreach ($reg_reg1 as $reg1) { $tamanho = (int) $reg1->tamanho; $tipo = $reg1->tipo;//texto, numerico $tabela = $reg1->tabela;// $relacao = $reg1->relacao; $campo = $reg1->campo; $casas = $reg1->casas; $array = ['cnpj'=>'cnpj','inscsuframa'=>'inscsufram', 'telefone'=>'telefone','cep'=>'cep']; }//fim do foreach do registro 8 //gravando no arquivo -------------------------- fwrite($fp, utf8_encode($reg."\n") ); $msn = ''; if( strlen($reg) > 401 ){ $msn .= "
Registro 8 - Estrutura maior que o Layout
"; } if( strlen($reg) < 401 ){ $msn .= "
Registro 8 - Estrutura menor que o Layout
"; } }//fim do if do registro 8 //------------------------------------------- //informacao do exportador e fabricante $repository_reg1 = new TRepository('Txtpli'); $criteria_reg1 = new TCriteria; $criteria_reg1->add(new TFilter("reg","=",'10'), TExpression::AND_OPERATOR); if (empty($param['order'])) { $param['order'] = 'id'; $param['direction'] = 'asc'; } $criteria_reg1->setProperties($param); $reg_reg1 = $repository_reg1->load($criteria_reg1, FALSE); $reg = ''; if($reg_reg1){ foreach ($reg_reg1 as $reg1) { $tamanho = (int) $reg1->tamanho; $tipo = $reg1->tipo;//texto, numerico $tabela = $reg1->tabela;// $relacao = $reg1->relacao; $campo = $reg1->campo; $casas = $reg1->casas; $array = ['cnpj'=>'cnpj','inscsuframa'=>'inscsufram', 'telefone'=>'telefone','cep'=>'cep' ]; }//fim do foreach do registro 10 //gravando no arquivo -------------------------- fwrite($fp, utf8_encode($reg."\n") ); $msn = ''; if( strlen($reg) > 75 ){ $msn .= "
Registro 10 - Estrutura maior que o Layout
"; } if( strlen($reg) < 75 ){ $msn .= "
Registro 10 - Estrutura menor que o Layout
"; } }//fim do if do registro 10 //------------------------------------------- //informacoes da adicao $conn = TTransaction::get(); $sql = ("SELECT Adicoes.*, Faturas.*, FaturaItens.* FROM ((Faturas INNER JOIN FaturaItens ON FaturaItens.Faturas_id=Faturas.id) inner join Adicoes on Adicoes.Processos_id=Faturas.Processos_id and Adicoes.nradicao=FaturaItens.nradicao and Adicoes.nritem=FaturaItens.nritem) WHERE Faturas.Processos_id = {$processo->id} ORDER BY FaturaItens.cdncm, FaturaItens.nradicao, FaturaItens.nritem"); //print "
{$sql}
"; $obj_item = $conn->query($sql); //------------------------------------------------------------------ $repository_reg1 = ''; $repository_reg1 = new TRepository('Txtpli'); $criteria_reg1 = ''; $criteria_reg1 = new TCriteria; $criteria_reg1->add(new TFilter("reg","=",'3'), TExpression::AND_OPERATOR); if (empty($param['order'])) { $param['order'] = 'id'; $param['direction'] = 'asc'; } $criteria_reg1->setProperties($param); $reg_reg1 = $repository_reg1->load($criteria_reg1, FALSE); $arrayfreteseguro = ["DAT"=>"DAT","CIP"=>"CIP","CIF"=>"CIF","DAP"=>"DAP","DPU"=>"DPU"]; $arrayfrete = ["CPT"=>"CPT","CFR"=>"CFR"]; if($obj_item){ foreach($obj_item as $item){ $tpaplicacao = $item['tpaplicmerc']; $vl_li = $item['vlfob']; if( array_key_exists($item['icoterms'], $arrayfreteseguro) ){ $vl_li = ($item['vlfob']+$item['vlfrete']+$item['vlseguro']); } if( array_key_exists($item['icoterms'], $arrayfrete) ){ $vl_li = ($item['vlfob']+$item['vlfrete']); } $item['vl_li'] = $vl_li; $reg = ''; if($reg_reg1){ foreach ($reg_reg1 as $reg1) { $tamanho = (int) $reg1->tamanho; $tipo = $reg1->tipo;//texto, numerico $tabela = $reg1->tabela;//nome da tabela $relacao = $reg1->relacao;//nome do campo da tabela $campo = $reg1->campo;//nome da estrutura do layout $casas = $reg1->casas;//quantidade de casas decimais if( $tpaplicacao == '1' ){ if($campo == 'TX_DESC_COMPLEM'){ //print "
Teste
"; $descricao = substr(str_pad(${$tabela}['descricao'], 3723, ' ' , STR_PAD_RIGHT ), 0, 3723 ); $reffab = substr(str_pad(${$tabela}['reffab'], 20, ' ' , STR_PAD_RIGHT ), 0, 20 ); $matprim = substr(str_pad(${$tabela}['matprim'], 20, ' ' , STR_PAD_RIGHT ), 0, 20 ); $partnumber = substr(str_pad(${$tabela}['partnumber'], 20, ' ' , STR_PAD_RIGHT ), 0, 20 ); $item['descricao'] = $descricao.$reffab.$partnumber.$matprim; } } }//fim do foreach do registro 3 fwrite($fp, utf8_encode($reg."\n") ); //print "
Tamanho Reg3: ". strlen($reg) ."
"; $msn = ''; if( strlen($reg) > 4193 ){ $msn .= "
Registro 3 - Estrutura maior que o Layout
"; } if( strlen($reg) < 4193 ){ $msn .= "
Registro 3 - Estrutura menor que o Layout
"; } //tipo de registro 3 --------------------------- //informacoes Mercadoria }//fim do if do registro 3 }//fim do foreach do obj mercadoria }//fim do obj mercadoria }//foreach fim da adicoes //gravando no arquivo -------------------------- //fecha o arquivo ------------------------------ fclose($fp); //fazendo o donload do aquivo ------------------ //TPage::openFile($arq); TTransaction::close(); }//fim do if do ID } catch (Exception $e) { new TMessage('error', $e->getMessage()); } } }//fim da class