Estou com uma dúvida:
Como consigo fazer uma rotina no sistema onde possa fazer de forma automática trazer o resultado de entrada de produtos a cada 3 meses, por exemplo:
Peço desculpa em recorrer a ajuda dos amigos, pois está sendo um mistério para mim, configurar o meu sistema para Impressão de XML e NFe.
Quando acrescento as linhas no início do Controller:
use NFePHP\NFe\Make;
use NFePHP\NFe\Tools;
use NFePHP\NFe\Danfe;
etc, etc.
e chamo a libraries assim em alguma função: $nfe = new Make(); e etc. <== o sistema acusa que não consegue achar
fiz as alterações necessárias no autoload
/*
|--------------------------------------------------------------------------
| Composer auto-loading
|--------------------------------------------------------------------------
|
| Enabling this setting will tell CodeIgniter to look for a Composer
| package auto-loader script in application/vendor/autoload.php.
|
| $config['composer_autoload'] = TRUE;
|
| Or if you have your vendor/ directory located somewhere else, you
| can opt to set a specific path as well:
|
| $config['composer_autoload'] = '/path/to/vendor/autoload.php';
|
| For more information about Composer, please visit http://getcomposer.org/
|
| Note: This will NOT disable or override the CodeIgniter-specific
| autoloading (application/config/autoload.php)
*/
$config['composer_autoload'] = './vendor/autoload.php';
o meu composer.json está assim:
{
"description": "The CodeIgniter framework",
"name": "codeigniter/framework",
"type": "project",
"homepage": "https://codeigniter.com",
"license": "MIT",
"support": {
"forum": "http://forum.codeigniter.com/",
"wiki": "https://github.com/bcit-ci/CodeIgniter/wiki",
"irc": "irc://irc.freenode.net/codeigniter",
"source": "https://github.com/bcit-ci/CodeIgniter"
},
"require": {
"php": ">=5.3.7",
"mpdf/mpdf": "^7.1",
"nfephp-org/sped-nfe": "^5.0",
"nfephp-org/sped-da": "^1.0"
},
"suggest": {
"paragonie/random_compat": "Provides better randomness in PHP 5.x"
},
"autoload": {
"psr-4": {
"Libraries\\": "application/libraries"
}
}
}
após instalar a NFePhp através do composer, o caminho da pasta NFePhp está assim:
nome_do_meu_sistema
|____ application
|______vendor
|________nfephp-org
|__________sped-common
|__________sped-da
|__________sped-gtin
|__________sped-nfe
Como consigo trazer os comando/libraries da NFe para poder utilizar no projeto.
Estou com uma dúvida e não estou conseguindo resolver.
Tenho uma tabela onde o usuário lança a Entrada de Produtos <=== até aqui tudo bem.
O problema que estou encontrando é:
- após lançar os itens e se por alguma necessidade precisar fazer devolução, gostaria de alterar o STATUS do lançamento do PRODUTO de 1 para 2, ou seja:
lançou:
101 - Caneta ------- 10 x 1.50 = 15,00 status = 1
102 - Lápis --------- 10 x 1.50 = 15,00 status = 1
103 - Borracha ---- 10 x 1.50 = 15,00 status = 1
104 - Apontador - 10 x 1.50 = 15,00 status = 1
Se precisar DEVOLVER os itens 102 e 103 o Status de 1 passa para 2, ou seja:
101 - Caneta ------- 10 x 1.50 = 15,00 status = 1
102 - Lápis --------- 10 x 1.50 = 15,00 status = 2
103 - Borracha ---- 10 x 1.50 = 15,00 status = 2
104 - Apontador - 10 x 1.50 = 15,00 status = 1
Obs.: como consigo filtrar o CódigoProduto + NúmeroLançamento, para não ocorrer o erro de alterar todos.
O problema que estou enfrentando, quando dou o Comando para Alterar, o Sistema Altera todos os produtos lançados que estiver na base de dados, ou seja, onde tiver 102 e 103, o sistema altera.
o meu código:
CONTROLLER
/*Salva o Detalhe do Lançamento*/
protected function save_detalhe($prods,$qtde,$vlrunit,$vlrtotal,$notaLct,$numlcto,$codslct){
for ($i=0; $i < count($prods); $i++) {
$data = array(
'cod_prod' => $prods[$i],
'qtd_prod' => $qtde[$i],
'vlr_unit' => $vlrunit[$i],
'vlr_total' => $vlrtotal[$i],
'status' => 2,
'devitens' => 2,
'n_nf' => $notaLct,
'lancamentos_idlcto'=> $numlcto,
);
//Função para Salvar os Detalhes do lançamento
$this->devolucao_model->save_detalhe($data);
//Função para Atualizar a Quantidade de Produto no Estoque
$this->update_produto($prods[$i],$qtde[$i],$vlrunit[$i],$vlrtotal[$i]);
//Função para Alterar Devolução do Item
$this->upd_itens($prods[$i],$notaLct[$i],$codslct[$i]);
}
} /*<=== até aqui tudo certo, como deve ser feito*/
/*
* O Problema está aqui
* para não ocorrer duplicidade de Lançamento,
* o sistema altera o Status do 1º. lançamento
*/
protected function upd_itens($idprds,$notaLct,$codslct){
$data = array(
'devitens' => 2,
);
$this->devolucao_model->update_itens($idprds,$data);
}
MODEL:
//Altera o Campo Devolução do Item Lançado
//Altera todos os código de produto que encontrar
public function update_itens($idprds,$data){
$this->db->where("cod_prod",$idprds);
return $this->db->update("lctos_itens",$data);
}
Grato,