vSouza

Import Data (José Henrique)

Nov 25th, 2021
540
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public function importarVenda($loja, $id_loja, $dado) {
  2.     $importado = 0;
  3.     $produto = $loja->produtos()->where('id_loja', preg_replace('/\D/', '', $dado['CODIGO']))->first();
  4.     $venda   = $loja->vendas()->where('id_loja', trim($dado['NOTA']))->first();
  5.        
  6.     if($loja->vendaItens()->where('id_loja', $id_loja)->count() == 0) {
  7.                
  8.         $loja->vendaItens()->create([
  9.             'id_loja' => $id_loja,  
  10.             'produto_id' => $produto ? $produto->id : null,
  11.             'venda_id'   => $venda ? $venda->id : null,
  12.             'valor'      => strval($dado['VENDA']),
  13.             'custo'      => strval($dado['CUSTO']),
  14.             'quantidade' => abs(intval($dado['QUANTIDADE'])),
  15.             'data'       => is_string($dado['DATA'])
  16.                 ? \Carbon\Carbon::createFromFormat('Ymd', substr($dado['DATA'], 0, 8))
  17.                 : null
  18.         ]);
  19.         $importado++;
  20.     } else {
  21.         $vendaItem = $loja->vendaItens()->where('alltech_id', $alltech_id)->first();
  22.         $vendaItem->update([
  23.             'produto_id' => $produto ? $produto->id : null,
  24.             'venda_id'   => $venda ? $venda->id : null,
  25.             'valor'      => strval($dado['VENDA']),
  26.             'quantidade' => abs(intval($dado['QUANTIDADE'])),
  27.             'custo'      => strval($dado['CUSTO']),
  28.             'data'       => is_string($dado['DATA'])
  29.                 ? \Carbon\Carbon::createFromFormat('Ymd', substr($dado['DATA'], 0, 8))
  30.                 : null  
  31.         ]);
  32.     }
  33. }
  34.  
  35. public function getDados($filename, $empresa) {
  36.     $xml        = simplexml_load_string(utf8_encode(Storage::get($filename)), "SimpleXMLElement", LIBXML_NOCDATA);
  37.     $json       = json_encode($xml);
  38.     $dados      = json_decode($json,TRUE);
  39.    
  40.     return [
  41.         'dados' => $dados['ROWDATA']['ROW'],
  42.         'loja'  => null
  43.     ];
  44. }
  45.  
  46. static function vendaItens($empresa, $filename) {
  47.     $self = new ImportXml;
  48.     $dados  = $self->getDados($filename, $empresa);
  49.     $dados  = $dados['dados'];
  50.  
  51.     $importado  = 0;
  52.  
  53.     foreach($dados as $dado) {
  54.         if(isset($dado['@attributes'])) {
  55.             $dado = $dado['@attributes'];
  56.         }
  57.  
  58.         $loja = $empresa->lojas()->where('id_loja', $dado['ID_LOJA'])->first();
  59.        
  60.         if($loja) {
  61.                    
  62.             if(isset($dado['@attributes'])) {
  63.                 $dado = $dado['@attributes'];
  64.             }
  65.  
  66.             if(is_array($dado['VENDA']) or !$dado['VENDA']) {
  67.                 $dado['VENDA'] = 0.0;
  68.             }
  69.  
  70.             if(is_array($dado['CUSTO']) or !$dado['CUSTO']) {
  71.                 $dado['CUSTO'] = 0.0;
  72.             }
  73.  
  74.             $alltech_id = trim(strval($dado['ID_REG']));
  75.  
  76.             if(trim($dado['MOVTO']) == 'VE') {
  77.                 $self->importarVenda($loja, $id_loja, $dado);
  78.                 $importado++;
  79.             } elseif(trim($dado['MOVTO']) == 'DV') {
  80.                 $self->importarDevolucao($loja, $id_loja, $dado);
  81.                 $importado++;
  82.             }
  83.         }
  84.     }
  85.     return $importado;
  86. }
RAW Paste Data