Skip to content

Commit 753a862

Browse files
authored
Merge pull request #1236 from Maykon-JDS/master
Ajuste no Make.php e na TraitEventsRTC.php
2 parents 48b6f23 + 1a4a1d2 commit 753a862

3 files changed

Lines changed: 54 additions & 10 deletions

File tree

src/Make.php

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2112,23 +2112,53 @@ public function tagprodObsCont(stdClass $std): ?DOMElement
21122112
];
21132113
$std = $this->equilizeParameters($std, $possible);
21142114
$identificador = 'VA01 <obsItem> - ';
2115-
$obsItem = $this->dom->createElement("obsItem");
2115+
if (isset($this->obsItem[$std->item])) {
2116+
$obsItem = $this->obsItem[$std->item];
2117+
} else {
2118+
$obsItem = $this->dom->createElement("obsItem");
2119+
}
21162120
$obsCont = $this->dom->createElement("obsCont");
2121+
$obsCont->setAttribute("xCampo", $std->xCampo);
21172122
$this->dom->addChild(
21182123
$obsCont,
2119-
"xCampo",
2120-
substr(trim($std->xCampo ?? ''), 0, 20),
2124+
"xTexto",
2125+
$std->xTexto,
21212126
true,
2122-
$identificador . "[item $std->item] (obsCont/xCampo) Identificação do campo"
2127+
$identificador . "[item $std->item] (obsCont/xTexto) Conteúdo do campo"
21232128
);
2129+
$obsItem->appendChild($obsCont);
2130+
$this->obsItem[$std->item] = $obsItem;
2131+
return $obsItem;
2132+
}
2133+
2134+
/**
2135+
* Grupo de observações de uso livre (para o item da NF-e)
2136+
* Grupo de observações de uso livre do Fisco
2137+
*/
2138+
public function tagprodObsFisco(stdClass $std): ?DOMElement
2139+
{
2140+
$possible = [
2141+
'item',
2142+
'xCampo',
2143+
'xTexto'
2144+
];
2145+
$std = $this->equilizeParameters($std, $possible);
2146+
$identificador = 'VA01 <obsItem> - ';
2147+
if (isset($this->obsItem[$std->item])) {
2148+
$obsItem = $this->obsItem[$std->item];
2149+
} else {
2150+
$obsItem = $this->dom->createElement("obsItem");
2151+
}
2152+
$obsFisco = $this->dom->createElement("obsFisco");
2153+
$obsFisco->setAttribute("xCampo", $std->xCampo);
21242154
$this->dom->addChild(
2125-
$obsCont,
2155+
$obsFisco,
21262156
"xTexto",
2127-
substr(trim($std->xTexto ?? ''), 0, 60),
2157+
$std->xTexto,
21282158
true,
2129-
$identificador . "[item $std->item] (obsCont/xTexto) Conteúdo do campo"
2159+
$identificador . "[item $std->item] (obsFisco/xTexto) Conteúdo do campo"
21302160
);
2131-
$obsItem->appendChild($obsCont);
2161+
$obsItem->appendChild($obsFisco);
21322162
$this->obsItem[$std->item] = $obsItem;
21332163
return $obsItem;
21342164
}

src/Traits/TraitEventsRTC.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public function sefazSolApropCredPresumido(stdClass $std, ?string $verAplic = nu
9595
$gcred = '';
9696
foreach ($std->itens as $item) {
9797
$bc = number_format($item->vBC, 2, '.', '');
98-
$gcred = "<gCredPres><nItem>{$item->item}</nItem><vBC>{$bc}</vBC>";
98+
$gcred .= "<gCredPres nItem=\"{$item->item}\"><vBC>{$bc}</vBC>";
9999
if (!empty($item->gIBS)) {
100100
$g = $item->gIBS;
101101
$pc = number_format($g->pCredPres, 4, '.', '');

tests/MakeTest.php

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,21 @@ public function test_tagprodObsCont(): void
457457
$tag = $this->make->tagprodObsCont($std);
458458

459459
$this->assertEquals('obsItem', $tag->nodeName);
460-
$this->assertEquals($std->xCampo, $tag->getElementsByTagName('xCampo')->item(0)->nodeValue);
460+
$this->assertEquals($std->xCampo, $tag->getElementsByTagName('obsCont')->item(0)->getAttribute('xCampo'));
461+
$this->assertEquals($std->xTexto, $tag->getElementsByTagName('xTexto')->item(0)->nodeValue);
462+
}
463+
464+
public function test_tagprodObsFisco(): void
465+
{
466+
$std = new \stdClass();
467+
$std->item = 1;
468+
$std->xCampo = 'abc';
469+
$std->xTexto = '123';
470+
471+
$tag = $this->make->tagprodObsFisco($std);
472+
473+
$this->assertEquals('obsItem', $tag->nodeName);
474+
$this->assertEquals($std->xCampo, $tag->getElementsByTagName('obsFisco')->item(0)->getAttribute('xCampo'));
461475
$this->assertEquals($std->xTexto, $tag->getElementsByTagName('xTexto')->item(0)->nodeValue);
462476
}
463477

0 commit comments

Comments
 (0)