/** * Faz a consulta no SEFAZ para cada uma das empresas cadastradas * * - Para primeira carga de uma nova empresa o campo config_nfe.nfeconfig_ultnsu deve ser igual a 0 (zero), essa primeira carga vai buscar todas as notas * dos ultimos 15 dias para cada empresa. Na primeira carga deve-se chamar esse metodo quantas vezes forem necessarias ate que tenha como retorno * a seguinte mensagem "Dados atualizados. Nao ha mais NFe para buscar." * * - Para cargas diarias o script se auto executara ate buscar todas as notas de todas as empresas. * Ao final será retornado a seguinte mensagem "Dados atualizados. Nao ha mais NFe para buscar." * * @name getCustomerNfe * @access public * @author Roberson Faria */ public function getCustomerNFe() { try { $result = Customer::all()->toArray(); if (count($result) > 0) { foreach ($result as $config) { $operation = new Operation(); $ultnsu = $operation->where('id_customer', $config['id'])->max('resnfe_nsu'); $nfe = new ToolsNFe($this->setConfig($config)); $nfe->sefazDistDFe('AN', $this->dadosConfig["tpAmb"], $this->dadosConfig["cnpj"], $ultnsu, 0, $this->retorno, false); // dd($this->retorno); foreach ($this->retorno['aDoc'] as $dados) { if ($dados["schema"] == "resNFe_v1.00.xsd") { $xml = simplexml_load_string($dados['doc']); if (strlen($xml->CNPJ) > 0) { $doc = $xml->CNPJ; } else { $doc = $xml->CPF; } Operation::create(['id_customer' => $config['id'], 'resnfe_nsu' => $dados['NSU'], 'resnfe_tpdoc' => "1", 'resnfe_dhrecbtolocal' => date('Y-m-d H:i:s'), 'resnfe_cnpj_cpf' => $doc, 'resnfe_ie' => $xml->IE, 'resnfe_xnome' => $xml->xNome, 'resnfe_chnfe' => $xml->chNFe, 'resnfe_demi' => date('Y-m-d H:i:s', strtotime($xml->dhEmi)), 'resnfe_tpnf' => $xml->tpNF, 'resnfe_csitnfe' => $xml->cSitNFe, 'resnfe_dhrecbto' => date('Y-m-d H:i:s', strtotime($xml->dhRecbto)), 'resnfe_vnf' => $xml->vNF, 'resnfe_xml' => addslashes($dados['doc'])]); if ($xml->cSitNFe == 4 or $xml->cSitNFe == 1) { $this->downloadXml($config['id'], $xml->chNFe); } // echo "res = ".$xml->chNFe."<br>"; } elseif ($dados["schema"] == "procNFe_v1.00.xsd") { // dd($dados); // $xml = simplexml_load_string ($dados['doc']); // dd($xml); // echo "proc = ".$xml->protNFe->infProt->chNFe."<br>"; } else { // print_r($dados); // echo "<br>"; } } } } // dd("acabou"); } catch (Exception $e) { Log::warning("Erro LibNfe Exception: " . $e->getMessage()); exit; } }
public function store(Request $request) { $datetime = $request->datetime ? $request->datetime : date("Y-m-d H:i:s"); // возможно есть 1, 10, 4 и есть 2; 1, 10, 4 можно объединить // Удаляем все с данным таймстемпом и personid $os = DB::table('operations')->where('person_id', $request->personid)->where('datetime', $datetime)->delete(); session(['custom_date' => $request->custom_date]); if (in_array($request->operation_type, [1, 10, 4])) { if ($request->empty_switch) { $operation = new Operation(); $operation->book_id = 0; $operation->quantity = 0; $operation->person_id = $request->personid; $operation->datetime = $datetime; $operation->custom_date = $request->custom_date; $operation->price = 0; $operation->operation_type = $request->operation_type; $operation->description = $request->description; $operation->save(); } else { foreach ($request->bookcount as $bookid => $count) { if ($count) { $operation = new Operation(); $operation->book_id = $bookid; $operation->quantity = $count; $operation->person_id = $request->personid; $operation->datetime = $datetime; $operation->custom_date = $request->custom_date; $operation->price = $request->price[$bookid]; $operation->operation_type = $request->operation_type; $operation->description = $request->description; $operation->save(); } } } } elseif ($request->operation_type == 2) { $operation = new Operation(); $operation->datetime = $datetime; $operation->custom_date = $request->custom_date; $operation->person_id = $request->personid; $operation->laxmi = $request->laxmi; $operation->operation_type = $request->operation_type; $operation->description = $request->description; $operation->save(); } return redirect()->route('persons.show', $request->personid); }
public function destroy_operation($personid, $operationid, $bookid) { $person = Operation::where('person_id', $personid)->where('datetime', $operationid)->where('book_id', $bookid)->delete(); return redirect()->route('persons.show', $personid); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function getselected(Request $request, $begin_date = 0, $end_date = 0) { $persons = explode(',', $request->persons); list($report, $totals) = Operation::monthly_report($begin_date, $end_date, $persons); return view('reports.index', ['totals' => $totals])->withReport($report); }