Crie o model NfeEntrada
para criar o model NfeEntrada use o comando: php artisan make:model NfeEntrada -m
adicione os seguintes campos:
Schema::create('nfe_entradas', function (Blueprint $table) {
$table->id();
$table->bigInteger('status_id')->nullable()->unsigned();
$table->foreign('status_id')->references('id')->on('statuses');
$table->bigInteger('fornecedor_id')->nullable()->unsigned();
$table->foreign('fornecedor_id')->references('id')->on('fornecedors');
$table->bigInteger('transportadora_id')->nullable()->unsigned();
$table->foreign('transportadora_id')->references('id')->on('transportadoras');
$table->date("data_cadastro")->nullable();
$table->string('chave',60)->nullable();
$table->string('recibo',40)->nullable();
$table->string('protocolo',40)->nullable();
$table->string('cUF',10);
$table->string('cNF',8);
$table->string('natOp',80);
$table->string('modelo',2)->nullable();
$table->string('serie',3)->nullable();
$table->string('nNF',15)->nullable();
$table->string('cDV',44)->nullable();
$table->string('dhEmi',40)->nullable();
$table->string('dhSaiEnt',40)->nullable();
$table->integer('tpNF')->nullable();
$table->integer('idDest')->nullable();
$table->integer('cMunFG')->nullable();
$table->integer('tpImp')->nullable();
$table->integer('tpEmis')->nullable();
$table->integer('tpAmb')->nullable();
$table->integer('finNFe')->nullable();
$table->integer('indFinal')->nullable();
$table->integer('indPres')->nullable();
$table->string('indIntermed',1)->nullable();
$table->integer('procEmi')->nullable();
$table->string('verProc',20)->nullable();
$table->date('dhCont')->nullable();
$table->string('xJust',255)->nullable();
$table->decimal('vBC',10,4)->nullable();
$table->decimal('vICMS',10,4)->nullable();
$table->decimal('vICMSDeson',10,4)->nullable();
$table->decimal('vFCP',10,4)->nullable();
$table->decimal('vBCST',10,4)->nullable();
$table->decimal('vST',10,4)->nullable();
$table->decimal('vFCPST',10,4)->nullable();
$table->decimal('vFCPSTRet',10,4)->nullable();
$table->decimal('vProd',10,2)->nullable();
$table->decimal('vFrete',10,2)->nullable();
$table->decimal('vSeg',10,2)->nullable();
$table->decimal('vDesc',10,2)->nullable();
$table->decimal('vII',10,4)->nullable();
$table->decimal('vIPI',10,4)->nullable();
$table->decimal('vIPIDevol',10,4)->nullable();
$table->decimal('vPIS',10,4)->nullable();
$table->decimal('vCOFINS',10,4)->nullable();
$table->decimal('vOutro',10,2)->nullable();
$table->decimal('vNF',10,4)->nullable();
$table->decimal('vTotTrib',10,4)->nullable();
$table->decimal('vOrig',10,2)->nullable();
$table->decimal('vLiq',10,2)->nullable();
$table->string('nFat',10)->nullable();
$table->string('modFrete',2)->nullable();
$table->string('tPag',20)->nullable();
$table->decimal('vPag',10,2)->nullable();
$table->string('CNPJ_pag',20)->nullable();
$table->string('tBand',20)->nullable();
$table->string('cAut',20)->nullable();
$table->string('tpIntegra',20)->nullable();
$table->string('indPag',20)->nullable();
$table->text('infAdFisco')->nullable();
$table->text('infCpl')->nullable();
$table->timestamps();
});
Configure os fillables do Model NFE
protected $fillable =[
'transportadora_id',
'fornecedor_id',
'empresa_id',
'fornecedor_id',
'data_cadastro',
'status_id',
'chave',
'recibo',
'protocolo',
'cUF',
'cNF',
'natOp',
'indPag',
'modelo',
'serie',
'nNF',
'dhEmi',
'dhSaiEnt',
'tpNF',
'idDest',
'cMunFG',
'tpImp',
'tpEmis',
'cDV',
'tpAmb',
'finNFe',
'indFinal',
'indPres',
'indIntermed',
'procEmi',
'verProc',
'dhCont',
'xJust',
'vBC',
'vICMS',
'vICMSDeson',
'vFCP',
'vBCST',
'vST',
'vFCPST',
'vFCPSTRet',
'vProd',
'vFrete',
'modFrete',
'vSeg',
'vDesc',
'vII',
'vIPI',
'vIPIDevol',
'vPIS',
'vCOFINS',
'vOutro',
'vNF',
'vTotTrib',
'vOrig',
'vLiq',
'infAdFisco',
'infCpl',
'em_xNome',
'em_xFant',
'em_IE',
'em_IEST',
'em_IM',
'em_CNAE',
'em_CRT',
'em_CNPJ',
'em_CPF',
'em_xLgr',
'em_nro',
'em_xCpl',
'em_xBairro',
'em_cMun',
'em_xMun',
'em_UF',
'em_CEP',
'em_cPais',
'em_xPais',
'em_fone',
'em_EMAIL',
'em_SUFRAMA',
'atualizacao',
'tPag'
];
faça o relacionamento da tabela nfeentrada com as tabelas:
- fornecedor
- transportadora
public function fornecedor(){
return $this->belongsTo(Fornecedor::class,"fornecedor_id","id");
}
public function transportadora(){
return $this->belongsTo(Transportadora::class,"transportadora_id","id");
}
Crie o model NfeEntradaItem
para criar o model NfeEntradaItem use o comando: php artisan make:model NfeEntradaItem -m
adicione os seguintes campos:
Schema::create('nfe_entrada_items', function (Blueprint $table) {
$table->id();
$table->bigInteger('nfe_id')->unsigned();
$table->foreign('nfe_id')->references('id')->on('nfe_entradas');
$table->decimal('valor_venda', 10,2)->nullable()->default(0);
$table->decimal('valor_custo', 10,2)->nullable()->default(0);
$table->integer('produto_id')->nullable();
$table->integer('origem')->default(0)->nullable();
$table->integer('fornecedor_id')->nullable();
$table->integer('categoria_id')->nullable();
$table->integer('subcategoria_id')->nullable();
$table->integer('subsubcategoria_id')->nullable();
$table->string('unidade',60)->nullable();
$table->string('cfop_prod',20)->nullable();
$table->integer('numero_item')->nullable();
$table->string('importado',1)->default("N")->nullable();
$table->string('cProd',60)->nullable();
$table->string('cEAN',14)->nullable();
$table->string('xProd',120)->nullable();
$table->string('NCM',20)->nullable();
$table->string('CEST',20)->nullable();
$table->string('indEscala',1)->nullable();
$table->string('cBenef',20)->nullable();
$table->string('NVE',20)->nullable();
$table->string('EXTIPI',15)->nullable();
$table->string('CFOP',10)->nullable();
$table->string('uCom',6)->nullable();
$table->decimal('qCom',10,2)->nullable();
$table->decimal('vUnCom',10,2)->nullable();
$table->decimal('vProd',10,2)->nullable();
$table->string('cEANTrib',14)->nullable();
$table->string('uTrib',6)->nullable();
$table->decimal('qTrib',10,2)->nullable();
$table->decimal('vUnTrib',10,2)->nullable();
$table->decimal('proporcao',10,2)->nullable();
$table->decimal('vFrete',10,2)->nullable();
$table->decimal('vSeg',10,2)->nullable();
$table->decimal('desconto_item',10,2)->nullable();
$table->decimal('desconto_rateio',10,2)->nullable();
$table->decimal('vDesc',10,2)->nullable();
$table->decimal('vOutro',10,2)->nullable();
$table->integer('indTot')->nullable();
$table->string('xPed',15)->nullable();
$table->integer('nItemPed')->nullable();
$table->string('nFCI',36)->nullable();
$table->string('cstIPI',40)->nullable();
$table->string('clEnq',40)->nullable();
$table->string('CNPJProd',40)->nullable();
$table->string('cSelo',40)->nullable();
$table->string('qSelo',40)->nullable();
$table->string('cEnq',40)->nullable();
$table->decimal('vIPI',10,2)->nullable();
$table->decimal('vBCIPI',10,2)->nullable();
$table->decimal('pIPI',10,2)->nullable();
$table->decimal('qUnidIPI',10,2)->nullable();
$table->decimal('vUnidIPI',10,2)->nullable();
$table->integer('tipo_calc_ipi')->nullable();
$table->string('cstCOFINS',40)->nullable();
$table->decimal('pCOFINS',10,2)->nullable();
$table->decimal('qBCProdConfis',10,2)->nullable();
$table->integer('tipo_calc_cofins')->nullable();
$table->decimal('vAliqProd_cofins',10,2)->nullable();
$table->decimal('vBCCOFINS',10,2)->nullable();
$table->decimal('vCOFINS',10,2)->nullable();
$table->integer('tipo_calc_cofinsst')->nullable();
$table->decimal('pCOFINSST',10,2)->nullable();
$table->decimal('vBCCOFINSST',10,2)->nullable();
$table->decimal('vCOFINSST',10,2)->nullable();
$table->decimal('qBCProdConfisST',10,2)->nullable();
$table->decimal('vAliqProd_cofinsst',10,2)->nullable();
$table->decimal('estadual',10,2)->nullable();
$table->decimal('municipal',10,2)->nullable();
$table->decimal('nacionalfederal',10,2)->nullable();
$table->decimal('importadosfederal',10,2)->nullable();
$table->decimal("vTotTrib",10,2)->nullable();
$table->string('cstPIS',40)->nullable();
$table->integer('tipo_calc_pis')->nullable();
$table->decimal('vBCPIS',10,2)->nullable();
$table->decimal('pPIS',10,2)->nullable();
$table->decimal('vPIS',10,2)->nullable();
$table->decimal('qBCProdPis',10,2)->nullable();
$table->decimal('qBCProdPisST',10,2)->nullable();
$table->decimal('vBCPISST',10,2)->nullable();
$table->decimal('vAliqProd_pis',10,2)->nullable();
$table->integer('tipo_calc_pisst')->nullable();
$table->decimal('pPISST',10,2)->nullable();
$table->decimal('vPISST',10,2)->nullable();
$table->decimal('vAliqProd_pisst',10,2)->nullable();
$table->string('orig',5)->nullable();
$table->string('cstICMS',40)->nullable();
$table->string('modBC',10)->nullable();
$table->decimal('vBCICMS',10,2)->nullable();
$table->decimal('vICMSTRet',10,2)->nullable();
$table->decimal('pICMSIntra',10,2)->nullable();
$table->decimal('pICMS',10,2)->nullable();
$table->decimal('vICMS',10,2)->nullable();
$table->decimal('pFCP',10,2)->nullable();
$table->decimal('vFCP',10,2)->nullable();
$table->decimal('vBCFCP',10,2)->nullable();
$table->decimal('pMVAST',10,2)->nullable();
$table->decimal('pRedBCST',10,2)->nullable();
$table->decimal('vBCST',10,2)->nullable();
$table->decimal('pICMSST',10,2)->nullable();
$table->decimal('vICMSST',10,2)->nullable();
$table->decimal('vBCFCPST',10,2)->nullable();
$table->decimal('pFCPST',10,2)->nullable();
$table->decimal('vFCPST',10,2)->nullable();
$table->decimal('vICMSDeson',10,2)->nullable();
$table->integer('motDesICMS')->nullable();
$table->decimal('pRedBC',10,2)->nullable();
$table->decimal('vICMSOp',10,2)->nullable();
$table->decimal('pDif',10,2)->nullable();
$table->decimal('vICMSDif',10,2)->nullable();
$table->decimal('vBCSTRet',10,2)->nullable();
$table->decimal('pST',10,2)->nullable();
$table->decimal('vICMSSTRet',10,2)->nullable();
$table->decimal('vBCFCPSTRet',10,2)->nullable();
$table->decimal('pFCPSTRet',10,2)->nullable();
$table->decimal('vFCPSTRet',10,2)->nullable();
$table->decimal('pRedBCEfet',10,2)->nullable();
$table->decimal('vBCEfet',10,2)->nullable();
$table->decimal('pICMSEfet',10,2)->nullable();
$table->decimal('vICMSEfet',10,2)->nullable();
$table->decimal('vICMSSubstituto',10,2)->nullable();
$table->string('modBCST',10)->nullable();
$table->decimal('pBCOp',10,2)->nullable();
$table->decimal('UFST',10,2)->nullable();
$table->decimal('vBCSTDest',10,2)->nullable();
$table->decimal('vICMSSTDest',10,2)->nullable();
$table->string('CSOSN',40)->nullable();
$table->decimal('pCredSN',10,2)->nullable();
$table->decimal('vCredICMSSN',10,2)->nullable();
$table->decimal('vBCUFDest',10,2)->nullable();
$table->decimal('vBCFCPUFDest',10,2)->nullable();
$table->decimal('pFCPUFDest',10,2)->nullable();
$table->decimal('pICMSUFDest',10,2)->nullable();
$table->decimal('pICMSInter',10,2)->nullable();
$table->decimal('pICMSInterPart',10,2)->nullable();
$table->decimal('vFCPUFDest',10,2)->nullable();
$table->decimal('vICMSUFDest',10,2)->nullable();
$table->decimal('vICMSUFRemet',10,2)->nullable();
$table->string('infAdProd',100)->nullable();
$table->timestamps();
});
Configure os fillables do Model NfeEntradaItem
protected $fillable= [
'produto_id',
'empresa_id',
'fornecedor_id',
'categoria_id',
'subcategoria_id',
'subsubcategoria_id',
'unidade',
'cfop_prod',
'nfe_id',
'cProd',
'cEAN',
'xProd',
'NCM',
'cBenef',
'valor_venda',
'fragmentacao_qtde',
'fragmentacao_unidade',
'fragmentacao_valor',
'valor_custo',
'NVE',
'EXTIPI',
'CEST',
'CFOP',
'uCom',
'qCom',
'vUnCom',
'vProd',
'cEANTrib',
'uTrib',
'qTrib',
'vUnTrib',
'vFrete',
'vSeg',
'vDesc',
'vOutro',
'indTot',
'xPed',
'nItemPed',
'nFCI',
'importado',
'cBenef',
'NVE',
'EXTIPI',
'CFOP',
'uCom',
'qCom',
'vUnCom',
'vProd',
'cEANTrib',
'proporcao',
'uTrib',
'qTrib',
'vUnTrib',
'vFrete',
'vSeg',
'desconto_item',
'desconto_rateio',
'vDesc',
'vOutro',
'indTot',
'xPed',
'nItemPed',
'nFCI',
'cstIPI',
'clEnq',
'CNPJProd',
'cSelo',
'qSelo',
'cEnq',
'vIPI',
'vBCIPI',
'vICMSTRet',
'pIPI',
'qUnidIPI',
'vUnidIPI',
'tipo_calc_ipi',
'cstCOFINS',
'vBCCOFINSST',
'qBCProdConfisST',
'qBCProdPisST',
'vBCPISST',
'pCOFINS',
'tipo_calc_cofins',
'vAliqProd_cofins',
'vBCCOFINS',
'vCOFINS',
'vCOFINSST',
'tipo_calc_cofinsst',
'pCOFINSST',
'vAliqProd_cofinsst',
'cstPIS',
'tipo_calc_pis',
'vBCPIS',
'pPIS',
'vPIS',
'vAliqProd_pis',
'tipo_calc_pisst',
'pPISST',
'vAliqProd_pisst',
'orig',
'cstICMS',
'modBC',
'vBCICMS',
'pICMS',
'vICMS',
'pFCP',
'vFCP',
'vBCFCP',
'pMVAST',
'pRedBCST',
'vBCST',
'pICMSST',
'vICMSST',
'vBCFCPST',
'pFCPST',
'vFCPST',
'vICMSDeson',
'motDesICMS',
'pRedBC',
'vICMSOp',
'pDif',
'vICMSDif',
'vBCSTRet',
'pST',
'vICMSSTRet',
'vBCFCPSTRet',
'pFCPSTRet',
'vFCPSTRet',
'pRedBCEfet',
'vBCEfet',
'pICMSEfet',
'vICMSEfet',
'vICMSSubstituto',
'modBCST',
'pBCOp',
'UFST',
'vBCSTDest',
'vICMSSTDest',
'CSOSN',
'pCredSN',
'vCredICMSSN',
'vBCUFDest',
'vBCFCPUFDest',
'pFCPUFDest',
'pICMSUFDest',
'pICMSInter',
'pICMSInterPart',
'vFCPUFDest',
'vICMSUFDest',
'vICMSUFRemet',
'destaca_icms',
'estadual','municipal','nacionalfederal','importadosfederal',
'vbc_somente_produto','vbc_frete','vbc_ipi','vbc_outros', 'vbc_seguro','vbc_desconto',
'ipi_somente_produto','ipi_frete','ipi_outros','ipi_seguro','ipi_desconto',
'pis_somente_produto','pis_frete','pis_ipi','pis_outros','pis_seguro','pis_desconto',
'cofins_somente_produto','cofins_frete','cofins_ipi','cofins_outros','cofins_seguro','cofins_desconto',
'cst900_icms','cst900_redbc','cst900_credisn','cst900_st','cst900_redbcst',
'subtotal_liquido','desconto_percentual','desconto_por_valor','desconto_por_unidade','total_desconto_item','preco_original'
];
Crie o model NfeEntradaDuplicata
para criar o model NfeEntradaDuplicata use o comando: php artisan make:model NfeEntradaDuplicata -m
adicione os seguintes campos:
Schema::create('nfe_entrada_duplicatas', function (Blueprint $table) {
$table->id();
$table->bigInteger('nfe_id')->unsigned();
$table->foreign('nfe_id')->references('id')->on('nfe_entradas');
$table->string('nDup',50)->nullable();
$table->date('dVenc')->nullable();
$table->decimal('vDup',10,2)->nullable();
$table->timestamps();
});
Crie o model ProdutoFornecedor
para criar o model ProdutoFornecedor use o comando: php artisan make:model ProdutoFornecedor -m
adicione os seguintes campos:
Schema::create('produto_fornecedors', function (Blueprint $table) {
$table->id();
$table->bigInteger('produto_id')->unsigned();
$table->foreign('produto_id')->references('id')->on('produtos');
$table->bigInteger('fornecedor_id')->unsigned();
$table->foreign('fornecedor_id')->references('id')->on('fornecedors');
$table->string('codigo_barra', 50)->nullable();
$table->string('cProd', 50)->nullable();
$table->timestamps();
});
faça o relacionamento da tabela ProdutoFornecedor com as tabelas:
- produto
- fornecedor
public function produto(){
return $this->belongsTo(Produto::class, 'produto_id');
}
public function fornecedor(){
return $this->belongsTo(Fornecedor::class, 'fornecedor_id');
}