Skip to content

Commit

Permalink
Merge pull request #28 from Camparinni/master
Browse files Browse the repository at this point in the history
Importação de CTeOS
  • Loading branch information
danilobreda authored Aug 6, 2024
2 parents 32304df + ce57c3b commit 1c3b9b7
Show file tree
Hide file tree
Showing 2 changed files with 133 additions and 0 deletions.
32 changes: 32 additions & 0 deletions CTe.Classes/cteOSProc.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
using System;
using System.Xml.Serialization;
using CTe.Classes.Protocolo;
using CTe.Classes.Servicos.Tipos;
using DFe.Utils;

namespace CTe.Classes
{
[Serializable]
[XmlRoot(Namespace = "http://www.portalfiscal.inf.br/cte",
ElementName = "cteOSProc")]
public class cteOSProc
{
[XmlAttribute]
public versao versao { get; set; }

public CTe CTeOS { get; set; }

public protCTe protCTe { get; set; }


public static cteOSProc LoadXmlString(string xml)
{
return FuncoesXml.XmlStringParaClasse<cteOSProc>(xml);
}

public static cteOSProc LoadXmlArquivo(string caminhoArquivoXml)
{
return FuncoesXml.ArquivoXmlParaClasse<cteOSProc>(caminhoArquivoXml);
}
}
}
101 changes: 101 additions & 0 deletions CTe.Utils/CTe/ExCteOSProc.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
/********************************************************************************/
/* Projeto: Biblioteca ZeusNFe */
/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */
/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */
/* */
/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */
/* Zeusdev Tecnologia LTDA ME */
/* */
/* Você pode obter a última versão desse arquivo no GitHub */
/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */
/* */
/* */
/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */
/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */
/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */
/* qualquer versão posterior. */
/* */
/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */
/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */
/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/
/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */
/* */
/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/
/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */
/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */
/* Você também pode obter uma copia da licença em: */
/* http://www.opensource.org/licenses/lgpl-license.php */
/* */
/* Zeusdev Tecnologia LTDA ME - [email protected] */
/* http://www.zeusautomacao.com.br/ */
/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */
/********************************************************************************/

using System.IO;
using CTe.Classes;
using DFe.Utils;
using cteOSProc = CTe.Classes.cteOSProc;

namespace CTe.Utils.CTe
{
public static class ExtCteOSProc
{
/// <summary>
/// Carrega um arquivo XML para um objeto da classe cteOSProc
/// </summary>
/// <param name="cteOSProc"></param>
/// <param name="arquivoXml">arquivo XML</param>
/// <returns>Retorna um cteOSProc carregada com os dados do XML</returns>
public static cteOSProc CarregarDeArquivoXml(this cteOSProc cteOSProc, string arquivoXml)
{
return FuncoesXml.ArquivoXmlParaClasse<cteOSProc>(arquivoXml);
}

/// <summary>
/// Converte o objeto cteOSProc para uma string no formato XML
/// </summary>
/// <param name="cteOSProc"></param>
/// <returns>Retorna uma string no formato XML com os dados do cteOSProc</returns>
public static string ObterXmlString(this cteOSProc cteOSProc)
{
return FuncoesXml.ClasseParaXmlString(cteOSProc);
}

/// <summary>
/// Coverte uma string XML no formato cteOSProc para um objeto cteOSProc
/// </summary>
/// <param name="cteOSProc"></param>
/// <param name="xmlString"></param>
/// <returns>Retorna um objeto do tipo cteOSProc</returns>
public static cteOSProc CarregarDeXmlString(this cteOSProc cteOSProc, string xmlString)
{
var s = FuncoesXml.ObterNodeDeStringXml(typeof(cteOSProc).Name, xmlString);
return FuncoesXml.XmlStringParaClasse<cteOSProc>(s);
}

/// <summary>
/// Grava os dados do objeto cteOSProc em um arquivo XML
/// </summary>
/// <param name="cteOSProc">Objeto cteOSProc</param>
/// <param name="arquivoXml">Diretório com nome do arquivo a ser gravado</param>
public static void SalvarArquivoXml(this cteOSProc cteOSProc, string arquivoXml)
{
FuncoesXml.ClasseParaArquivoXml(cteOSProc, arquivoXml);
}

public static void SalvarXmlEmDisco(this cteOSProc cteOSProc, ConfiguracaoServico configuracaoServico = null)
{
if (cteOSProc == null) return;

var instanciaServico = configuracaoServico ?? ConfiguracaoServico.Instancia;

if (instanciaServico.NaoSalvarXml()) return;

var caminhoXml = instanciaServico.DiretorioSalvarXml;

var arquivoSalvar = Path.Combine(caminhoXml, cteOSProc.CTeOS.Chave() + "-cteOSProc.xml");

FuncoesXml.ClasseParaArquivoXml(cteOSProc, arquivoSalvar);
}
}
}

0 comments on commit 1c3b9b7

Please sign in to comment.