@@ -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 }
0 commit comments