/// <summary> /// Retorna o endereço completo do emitente em apenas uma string /// </summary> /// <param name="xmlInfMDFe"></param> /// <returns></returns> private static string ObterEnderecoEmitente(XmlElement xmlInfMDFe) { StringBuilder enderCompleto = new StringBuilder(); enderCompleto.Append(GetNodeValue(xmlInfMDFe, "emit/enderEmit", "xLgr") + ", "); enderCompleto.Append(GetNodeValue(xmlInfMDFe, "emit/enderEmit", "nro")); if (!string.IsNullOrEmpty(GetNodeValue(xmlInfMDFe, "emit/enderEmit", "xCpl"))) { enderCompleto.Append(" - " + GetNodeValue(xmlInfMDFe, "emit/enderEmit", "xCpl")); } enderCompleto.Append(" - " + GetNodeValue(xmlInfMDFe, "emit/enderEmit", "xBairro") + ", "); enderCompleto.Append(GetNodeValue(xmlInfMDFe, "emit/enderEmit", "xMun") + ", "); enderCompleto.Append(GetNodeValue(xmlInfMDFe, "emit/enderEmit", "UF")); if (!string.IsNullOrEmpty(GetNodeValue(xmlInfMDFe, "emit/enderEmit", "CEP"))) { enderCompleto.Append(" - CEP: " + GetNodeValue(xmlInfMDFe, "emit/enderEmit", "CEP")); } if (!string.IsNullOrEmpty(GetNodeValue(xmlInfMDFe, "emit/enderEmit", "fone"))) { enderCompleto.Append(" - Fone: " + TrataTelefoneMDFe(GetNodeValue(xmlInfMDFe, "emit/enderEmit", "fone"))); } return(Formatacoes.RestauraStringDocFiscal(enderCompleto.ToString())); }
/// <summary> /// Busca XML da NFe passada para imprimir o DANFE /// </summary> /// <param name="idNFe"></param> /// <returns></returns> internal ProdutosNFe[] GetForDanfe(HttpContext context, string chaveAcesso) { List <ProdutosNFe> lstProdNFe = new List <ProdutosNFe>(); // Verifica se NFe existe if (!File.Exists(Utils.GetNfeXmlPathInternal(context) + chaveAcesso + "-nfe.xml")) { throw new Exception("Arquivo da NF-e não encontrado."); } // Busca arquivo XML da NFe XmlDocument xmlNFe = new XmlDocument(); xmlNFe.Load(Utils.GetNfeXmlPathInternal(context) + chaveAcesso + "-nfe.xml"); #region Busca produtos da NF-e contidos no XML // Busca tags com produtos XmlNodeList xmlListProdsNFe = NFeDAO.Instance.GetXmlInfNFe(context, xmlNFe).GetElementsByTagName("det"); foreach (XmlElement xmlProd in xmlListProdsNFe) { ProdutosNFe prod = new ProdutosNFe(); prod.Codigo = GetNodeValue(xmlProd, "prod", "cProd"); prod.Descricao = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlProd, "prod", "xProd")); prod.NcmSh = GetNodeValue(xmlProd, "prod", "NCM"); prod.Cfop = GetNodeValue(xmlProd, "prod", "CFOP"); prod.Unidade = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlProd, "prod", "uCom")); prod.Qtd = Formatacoes.FormataValorDecimal(GetNodeValue(xmlProd, "prod", "qCom"), 4); prod.VlrUnit = Formatacoes.FormataValorDecimal(GetNodeValue(xmlProd, "prod", "vUnCom"), 2); prod.VlrTotal = Formatacoes.FormataValorDecimal(GetNodeValue(xmlProd, "prod", "vProd"), 2); prod.Cst = GetICMSNodeValue(xmlProd, "imposto/ICMS", "orig") + GetICMSNodeValue(xmlProd, "imposto/ICMS", "CST"); prod.Csosn = GetICMSNodeValue(xmlProd, "imposto/ICMS", "orig") + GetICMSNodeValue(xmlProd, "imposto/ICMS", "CSOSN"); prod.BcIcms = Formatacoes.FormataValorDecimal(GetICMSNodeValue(xmlProd, "imposto/ICMS", "vBC"), 2); prod.AliqIcms = Formatacoes.FormataValorDecimal(GetICMSNodeValue(xmlProd, "imposto/ICMS", "pICMS"), 2); prod.VlrIcms = Formatacoes.FormataValorDecimal(GetICMSNodeValue(xmlProd, "imposto/ICMS", "vICMS"), 2); prod.BcIcmsSt = Formatacoes.FormataValorDecimal(GetICMSNodeValue(xmlProd, "imposto/ICMS", "vBCST"), 2); prod.VlrIcmsSt = Formatacoes.FormataValorDecimal(GetICMSNodeValue(xmlProd, "imposto/ICMS", "vICMSST"), 2); prod.AliqIpi = Formatacoes.FormataValorDecimal(GetNodeValue(xmlProd, "imposto/IPI/IPITrib", "pIPI"), 2); prod.VlrIpi = Formatacoes.FormataValorDecimal(GetNodeValue(xmlProd, "imposto/IPI/IPITrib", "vIPI"), 2); lstProdNFe.Add(prod); if (xmlProd["infAdProd"] != null) { ProdutosNFe pNf = new ProdutosNFe(); pNf.InfAdic = true; pNf.Descricao = Formatacoes.RestauraStringDocFiscal(xmlProd["infAdProd"].InnerText); lstProdNFe.Add(pNf); } } #endregion return(lstProdNFe.ToArray()); }
private GDAParameter[] GetParam(string nomeTransp, string cpfCnpj) { List <GDAParameter> lstParam = new List <GDAParameter>(); if (!String.IsNullOrEmpty(nomeTransp)) { lstParam.Add(new GDAParameter("?nome", "%" + nomeTransp + "%")); } if (!String.IsNullOrEmpty(cpfCnpj)) { lstParam.Add(new GDAParameter("?cpfCnpj", Formatacoes.LimpaCpfCnpj(cpfCnpj))); } return(lstParam.Count > 0 ? lstParam.ToArray() : null); }
/// <summary> /// Retorna o endereço do recebedor em apenas uma string /// </summary> /// <param name="xmlInfCte"></param> /// <returns></returns> private static string GetEnderecoReceb(XmlElement xmlInfCte) { StringBuilder enderExpedidor = new StringBuilder(); enderExpedidor.Append(GetNodeValue(xmlInfCte, "receb/enderReceb", "xLgr") + ", "); enderExpedidor.Append(GetNodeValue(xmlInfCte, "receb/enderReceb", "nro")); if (!String.IsNullOrEmpty(GetNodeValue(xmlInfCte, "receb/enderReceb", "xCpl"))) { enderExpedidor.Append(" - " + GetNodeValue(xmlInfCte, "receb/enderReceb", "xCpl")); } enderExpedidor.Append(" - " + GetNodeValue(xmlInfCte, "receb/enderReceb", "xBairro")); return(Formatacoes.RestauraStringDocFiscal(enderExpedidor.ToString())); }
/// <summary> /// Retorna o endereço do destinatário em apenas uma string /// </summary> /// <param name="xmlInfCte"></param> /// <returns></returns> private static string GetEnderecoDest(XmlElement xmlInfCte) { StringBuilder enderDestinatario = new StringBuilder(); enderDestinatario.Append(GetNodeValue(xmlInfCte, "dest/enderDest", "xLgr") + ", "); enderDestinatario.Append(GetNodeValue(xmlInfCte, "dest/enderDest", "nro")); if (!String.IsNullOrEmpty(GetNodeValue(xmlInfCte, "dest/enderDest", "xCpl"))) { enderDestinatario.Append(" - " + GetNodeValue(xmlInfCte, "dest/enderDest", "xCpl")); } enderDestinatario.Append(" - " + GetNodeValue(xmlInfCte, "dest/enderDest", "xBairro")); return(Formatacoes.RestauraStringDocFiscal(enderDestinatario.ToString())); }
private void cmdPesquisa_Click(object sender, EventArgs e) { Validacoes v = new Validacoes(); string dtInicio = mskDtInicio.Text; string dtFim = mskDtFim.Text; try { if (mskDtInicio.Text == " / /") { return; } if (mskDtFim.Text == " / /") { return; } if (v.ValidaData(dtInicio.ToString()) == false) { MessageBox.Show("Data inicial inválida.", "Mensagem"); return; } if (v.ValidaData(dtFim.ToString()) == false) { MessageBox.Show("Data final inválida.", "Mensagem"); return; } Validacoes.ValidaDatas(dtInicio, dtFim); } catch (DomainException dex) { MessageBox.Show(dex.Message, "Mensagem"); return; } dtInicio = Formatacoes.FormataDataSql(dtInicio); dtFim = Formatacoes.FormataDataSql(dtFim); lstFaturas.Items.Clear(); ReceitaDAL rDAL = new ReceitaDAL(); List <Receita> list = rDAL.RetornaReceitaByPeriodo(IdSocio, dtInicio, dtFim); foreach (Receita receita in list) { PopulaLista(receita); } }
//public int GetIdLote() //{ // string sql = "select max(IdLote) from carta_correcao"; // object obj = objPersistence.ExecuteScalar(sql); // if (obj != System.DBNull.Value) // return Convert.ToInt32(obj) + 1; // else // return 1; //} #endregion #region Insere a carta de correção public override uint Insert(CartaCorrecao objInsert) { string chaveAcessoNf = NotaFiscalDAO.Instance.ObtemChaveAcesso(objInsert.IdNf); uint idCidade = LojaDAO.Instance.ObtemValorCampo <uint>("idCidade", "idLoja=" + NotaFiscalDAO.Instance.ObtemIdLoja(objInsert.IdNf)); string cpfCnpj = LojaDAO.Instance.ObtemValorCampo <string>("cnpj", "idLoja=" + NotaFiscalDAO.Instance.ObtemIdLoja(objInsert.IdNf)); string codIbgeUf = CidadeDAO.Instance.ObtemValorCampo <string>("codIbgeUf", "idCidade=" + idCidade); objInsert.NumeroSequencialEvento = ObtemNumSeqEvento(objInsert.IdNf); objInsert.IdInfEvento = "ID" + objInsert.TipoEvento.ToString() + chaveAcessoNf + objInsert.NumeroSequencialEvento.ToString().PadLeft(2, '0'); objInsert.Orgao = Convert.ToUInt32(codIbgeUf); objInsert.TipoAmbiente = ((int)ConfigNFe.TipoAmbiente); objInsert.ChaveNFe = chaveAcessoNf; objInsert.Situacao = CartaCorrecao.SituacaoEnum.Ativa; objInsert.Correcao = Formatacoes.TrataTextoDocFiscal(objInsert.Correcao); objInsert.CNPJ = cpfCnpj.Replace(".", String.Empty).Replace("-", String.Empty).Replace("/", String.Empty); return(objPersistence.Insert(objInsert)); }
public void Serializar(System.IO.TextWriter writer) { var ret = ""; ret += "6000|"; ret += TipoLancamento + "|"; ret += IdConta + "|"; ret += Formatacoes.TrataStringArquivoDominioSistemas(ReferenciaCompleta) + "||"; writer.WriteLine(ret); ret = ""; ret += "6100|"; ret += DataCad.ToString("dd/MM/yyyy") + "|"; ret += ContaContabilPagar + "|"; ret += ContaContabilReceber + "|"; ret += ValorLancamento + "||"; ret += Formatacoes.TrataStringArquivoDominioSistemas(ReferenciaCompleta) + "||||"; writer.WriteLine(ret); }
public string BuscarByDescricao(string campoId, string campoDescr, string tipoDAO, string nomeMetodo, string parametros, string descricao, string recuperarValores) { try { campoId = Decode(campoId); campoDescr = Decode(campoDescr); tipoDAO = Decode(tipoDAO); parametros = recuperarValores != "true" ? Decode(parametros) : parametros; var flags = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy; Type DAO = Type.GetType(tipoDAO + (tipoDAO.Contains("Glass.Data") ? ", Glass.Data" : tipoDAO.Contains("WebGlass.Business") ? ", WebGlass.Business" : "")); Type tipoModel = tipoDAO.Contains("DAL") ? DAO.GetMethod("GetElementByPrimaryKey", flags, null, new Type[] { typeof(uint) }, null).ReturnType : null; bool isCampoDescrInTable = false; if (tipoDAO.Contains("DAL") && tipoModel != null && String.IsNullOrEmpty(parametros)) { PropertyInfo propDescr = tipoModel.GetProperty(campoDescr, flags); PersistencePropertyAttribute[] descrAtr = propDescr.GetCustomAttributes(typeof(PersistencePropertyAttribute), true) as PersistencePropertyAttribute[]; if (descrAtr.Length > 0 && descrAtr[0].Direction != DirectionParameter.InputOptional && descrAtr[0].Direction != DirectionParameter.InputOptionalOutput && descrAtr[0].Direction != DirectionParameter.InputOptionalOutputOnlyInsert) { isCampoDescrInTable = true; } } if (isCampoDescrInTable) { object instance = DAO.GetProperty("Instance", flags).GetValue(null, null); string nomeTabela = DAO.GetMethod("GetTableName", flags).Invoke(instance, null) as string; if (String.IsNullOrEmpty(nomeTabela)) { return("Erro|Tabela não encontrada."); } string sql = "select concat(Cast(" + GetDbName(tipoModel, campoId) + " as char), '|', Cast(" + GetDbName(tipoModel, campoDescr) + " as char)) from " + nomeTabela + " where " + GetDbName(tipoModel, campoDescr) + "=?descr"; string retorno = DAO.GetMethod("ExecuteScalar", flags, null, new Type[] { typeof(string), typeof(GDA.GDAParameter[]) }, null).MakeGenericMethod(typeof(string)). Invoke(instance, new object[] { sql, new GDAParameter[] { new GDAParameter("?descr", descricao) } }) as string; if (retorno == null) { throw new Exception("Item não encontrado."); } string[] dados = retorno.Split('|'); return("Ok|" + dados[0] + "|" + dados[1]); } else { nomeMetodo = Decode(nomeMetodo).Split(',')[1]; var metodos = DAO.GetMethods(flags); string[] dadosParametros = parametros.Split('|'); MethodInfo metodo = metodos.Where(x => x.Name == nomeMetodo). Where(x => x.GetParameters().Length == (parametros != String.Empty ? dadosParametros.Length : 0)). FirstOrDefault(); tipoModel = metodo.ReturnType; ParameterInfo[] pi = metodo.GetParameters(); object[] param = new object[pi.Length]; for (int j = 0; j < param.Length; j++) { for (int k = 0; k < dadosParametros.Length; k++) { string[] dados = dadosParametros[k].Split(':'); if (pi[j].Name == dados[0]) { param[j] = Conversoes.ConverteValor(pi[j].ParameterType, dados[1]); break; } } } object instance = metodo.IsStatic ? null : DAO.GetProperty("Instance", flags).GetValue(null, null); if (!metodo.IsStatic && instance == null) { try { instance = Activator.CreateInstance(DAO); } catch { } } object retorno = metodo.Invoke(instance, param); PropertyInfo id = null, descr = null; object i, d; if (typeof(IEnumerable).IsAssignableFrom(tipoModel)) { foreach (object o in (IEnumerable)retorno) { if (id == null) { id = o.GetType().GetProperty(campoId); descr = o.GetType().GetProperty(campoDescr); } i = id.GetValue(o, null); d = descr.GetValue(o, null); string comp = d is string || d is ValueType || d != null?d.ToString() : null; if (String.Equals(Formatacoes.TrataTextoComparacaoSelPopUp(comp).Replace(" ", "").Replace(" ", "").Replace("-", "").ToLower(), Formatacoes.TrataTextoComparacaoSelPopUp(descricao).Replace(" ", "").Replace(" ", "").Replace("-", "").ToLower(), StringComparison.InvariantCultureIgnoreCase)) { return("Ok|" + i + "|" + d); } } return("Erro|Item não encontrado."); } else { id = retorno.GetType().GetProperty(campoId); descr = retorno.GetType().GetProperty(campoDescr); i = id.GetValue(retorno, null); d = descr.GetValue(retorno, null); string comp = d is string || d is ValueType || d != null?d.ToString() : null; if (String.Equals(Formatacoes.TrataTextoComparacaoSelPopUp(comp).Replace(" ", "").Replace(" ", "").Replace("-", "").ToLower(), Formatacoes.TrataTextoComparacaoSelPopUp(descricao).Replace(" ", "").Replace(" ", "").Replace("-", "").ToLower(), StringComparison.InvariantCultureIgnoreCase)) { return("Ok|" + i + "|" + d); } else { return("Erro|Item não encontrado."); } } } } catch (Exception ex) { return("Erro|" + Glass.MensagemAlerta.FormatErrorMsg("", ex)); } }
internal static MDFe ObterParaDAMDFE(HttpContext context, string chaveAcesso) { MDFe mdfe = new MDFe(); Glass.Data.Model.ManifestoEletronico _manifestoEletronico = Glass.Data.DAL.ManifestoEletronicoDAO.Instance.ObterPelaChaveAcesso(chaveAcesso); // Verifica se o MDFe existe if (!File.Exists(Utils.GetMDFeXmlPathInternal(context) + chaveAcesso + "-mdfe.xml")) { throw new Exception("Arquivo do MDFe não encontrado."); } // Carrega o arquivo XML XmlDocument xmlMDFe = new XmlDocument(); xmlMDFe.Load(Utils.GetMDFeXmlPathInternal(context) + chaveAcesso + "-mdfe.xml"); XmlElement xmlInfMDFe = ObterXmlInfMDFe(context, xmlMDFe); #region Busca dados do XML do MDFe #region IDENTIFICAÇÃO MDF-e mdfe.ChaveAcesso = Formatacoes.MascaraChaveAcessoNFe(chaveAcesso); mdfe.Modelo = GetNodeValue(xmlInfMDFe, "ide", "mod"); mdfe.Serie = GetNodeValue(xmlInfMDFe, "ide", "serie"); mdfe.TipoEmissao = GetNodeValue(xmlInfMDFe, "ide", "tpEmis") == "1" ? "Normal" : "Contingência"; mdfe.NumeroManifestoEletronico = GetNodeValue(xmlInfMDFe, "ide", "nMDF"); mdfe.TipoAmbiente = Conversoes.StrParaInt(GetNodeValue(xmlInfMDFe, "ide", "tpAmb")); mdfe.DataEmissao = DateTime.Parse(GetNodeValue(xmlInfMDFe, "ide", "dhEmi")).ToString("dd/MM/yyyy HH:mm"); mdfe.UFInicio = GetNodeValue(xmlInfMDFe, "ide", "UFIni"); mdfe.UFFim = GetNodeValue(xmlInfMDFe, "ide", "UFFim"); //Protocolo de autorização if (xmlMDFe["MDFe"] != null && xmlMDFe["MDFe"]["infProt"] != null) // Sql montado no sistema { mdfe.ProtocoloAutorizacao = GetNodeValue(xmlMDFe["MDFe"], "infProt", "nProt") + " " + DateTime.Parse(GetNodeValue(xmlMDFe["MDFe"], "infProt", "dhRecbto")).ToString("dd/MM/yyyy HH:mm"); } else if (xmlMDFe["mdfeProc"] != null && xmlMDFe["mdfeProc"]["protMDFe"] != null) // Sql montado na receita { mdfe.ProtocoloAutorizacao = GetNodeValue(xmlMDFe["mdfeProc"]["protMDFe"], "infProt", "nProt") + " " + DateTime.Parse(GetNodeValue(xmlMDFe["mdfeProc"]["protMDFe"], "infProt", "dhRecbto")).ToString("dd/MM/yyyy HH:mm"); } if (mdfe.TipoEmissao == "Contingência" && string.IsNullOrWhiteSpace(mdfe.ProtocoloAutorizacao)) { mdfe.ProtocoloAutorizacao = "Impressão em contingência. Obrigatória a autorização em 168 horas após esta emissão. (" + mdfe.DataEmissao + ")"; } // Emitente mdfe.RazaoSocialEmitente = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfMDFe, "emit", "xNome")); mdfe.EnderecoEmitente = Formatacoes.RestauraStringDocFiscal(ObterEnderecoEmitente(xmlInfMDFe)); mdfe.CNPJEmitente = Formatacoes.MascaraCnpj(GetNodeValue(xmlInfMDFe, "emit", "CNPJ")); mdfe.InscEstEmitente = GetNodeValue(xmlInfMDFe, "emit", "IE"); #endregion #region INFORMAÇÕES DO MODAL RODOVIARIO if (xmlInfMDFe["infModal"]["rodo"] != null) { var _RNTRC = string.Empty; XmlElement xmlRodo = xmlInfMDFe["infModal"]["rodo"]; #region Grupo de informações para Agência Reguladora if (xmlRodo["infANTT"] != null) { var _CIOTs = new List <string>(); var _ResponsaveisCIOT = new List <string>(); var _CNPJsResponsaveisPedagio = new List <string>(); var _CNPJsFornecedoresPedagio = new List <string>(); var _NumerosCompraPedagio = new List <string>(); _RNTRC = GetNodeValue(xmlRodo, "infANTT", "RNTRC"); var xmlListainfCIOT = xmlRodo["infANTT"].GetElementsByTagName("infCIOT"); foreach (XmlElement infCIOT in xmlListainfCIOT) { _CIOTs.Add(infCIOT["CIOT"].InnerXml); _ResponsaveisCIOT.Add(Formatacoes.MascaraCnpj(infCIOT["CNPJ"].InnerXml)); } if (xmlRodo["infANTT"]["valePed"] != null) { var xmlListaValePedagio = xmlRodo["infANTT"]["valePed"].GetElementsByTagName("disp"); foreach (XmlElement disp in xmlListaValePedagio) { _CNPJsResponsaveisPedagio.Add(disp["CNPJPg"] != null ? Formatacoes.MascaraCnpj(disp["CNPJPg"].InnerXml) : mdfe.CNPJEmitente); _CNPJsFornecedoresPedagio.Add(Formatacoes.MascaraCnpj(disp["CNPJForn"].InnerXml)); _NumerosCompraPedagio.Add(disp["nCompra"].InnerXml); } } mdfe.CIOTs = string.Join("\n", _CIOTs); mdfe.ResposaveisCIOTs = string.Join("\n", _ResponsaveisCIOT); mdfe.CNPJsResponsaveisPedagio = string.Join("\n", _CNPJsResponsaveisPedagio); mdfe.CNPJsFornecedoresPedagio = string.Join("\n", _CNPJsFornecedoresPedagio); mdfe.NumerosCompraPedagio = string.Join("\n", _NumerosCompraPedagio); } #endregion #region Veículos e Condutores var _placasVeiculos = new List <string>(); var _RNTRCsVeiculos = new List <string>(); var _CPFsCondutores = new List <string>(); var _NomesCondutores = new List <string>(); // Dados do Veículo Tração _placasVeiculos.Add(GetNodeValue(xmlRodo, "veicTracao", "placa")); if (xmlRodo["veicTracao"]["prop"] != null) { _RNTRCsVeiculos.Add(GetNodeValue(xmlRodo, "veicTracao/prop", "RNTRC")); } else { _RNTRCsVeiculos.Add(_RNTRC); } // Informações do(s) Condutor(s) do veículo var xmlListaCondutor = xmlRodo["veicTracao"].GetElementsByTagName("condutor"); foreach (XmlElement condutor in xmlListaCondutor) { _CPFsCondutores.Add(Formatacoes.MascaraCpf(condutor["CPF"].InnerXml)); _NomesCondutores.Add(condutor["xNome"].InnerXml); } // Dados do Veículo Reboque if (xmlRodo["veicReboque"] != null) { var xmlListaVeicReboque = xmlRodo.GetElementsByTagName("veicReboque"); foreach (XmlElement veicReboque in xmlListaVeicReboque) { _placasVeiculos.Add(veicReboque["placa"].InnerXml); if (xmlRodo["prop"] != null) { _RNTRCsVeiculos.Add(GetNodeValue(veicReboque, "prop", "RNTRC")); } else { _RNTRCsVeiculos.Add(_RNTRC); } } } mdfe.PlacasVeiculos = string.Join("\n", _placasVeiculos); mdfe.RNTRCsVeiculos = string.Join("\n", _RNTRCsVeiculos); mdfe.CPFsCondutores = string.Join("\n", _CPFsCondutores); mdfe.NomesCondutores = string.Join("\n", _NomesCondutores); #endregion } #endregion #region INFORMAÇÕES DOS DOCUMENTOS FISCAIS VINCULADOS if (mdfe.TipoEmissao == "Contingência" && xmlInfMDFe["infDoc"] != null) { var _documentosVinculados = new List <string>(); var xmlListaInfMunDescarga = xmlInfMDFe["infDoc"].GetElementsByTagName("infMunDescarga"); foreach (XmlElement infMunDescarga in xmlListaInfMunDescarga) { // Se Tipo Emitente for Transportador de carga própria if (GetNodeValue(xmlInfMDFe, "ide", "tpEmit") == "2") { var xmlListaInfNFe = infMunDescarga.GetElementsByTagName("infNFe"); foreach (XmlElement infNFe in xmlListaInfNFe) { _documentosVinculados.Add("NFe: " + infNFe["chNFe"].InnerXml); } } else { var xmlListaInfCTe = infMunDescarga.GetElementsByTagName("infCTe"); foreach (XmlElement infCTe in xmlListaInfCTe) { _documentosVinculados.Add("CTe: " + infCTe["chCTe"].InnerXml); } } } mdfe.DocumentosFiscaisVinculados = string.Join("\n", _documentosVinculados); } #endregion #region TOTALIZADORES DA CARGA mdfe.QuantidadeCTe = string.IsNullOrWhiteSpace(GetNodeValue(xmlInfMDFe, "tot", "qCTe")) ? "0" : GetNodeValue(xmlInfMDFe, "tot", "qCTe"); mdfe.QuantidadeNFe = string.IsNullOrWhiteSpace(GetNodeValue(xmlInfMDFe, "tot", "qNFe")) ? "0" : GetNodeValue(xmlInfMDFe, "tot", "qNFe"); mdfe.ValorCarga = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfMDFe, "tot", "vCarga"), 2); mdfe.CodigoUnidade = GetNodeValue(xmlInfMDFe, "tot", "cUnid").StrParaInt() == 1 ? "KG" : "TON"; mdfe.PesoTotalCarga = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfMDFe, "tot", "qCarga"), 4); #endregion #region INFORMAÇÕES ADICIONAIS mdfe.InformacoesAdicionaisFisco = GetNodeValue(xmlInfMDFe, "infAdic", "infAdFisco"); mdfe.InformacoesComplementares = GetNodeValue(xmlInfMDFe, "infAdic", "infCpl"); #endregion #endregion return(mdfe); }
protected override Colosoft.Reports.IReportDocument LoadReport(ref LocalReport report, ref List <ReportParameter> lstParam, HttpRequest PageRequest, System.Collections.Specialized.NameValueCollection Request, object[] outrosParametros, LoginUsuario login, string diretorioLogotipos) { TipoRelatorioPedido tipo = !String.IsNullOrEmpty(Request["tipo"]) ? (TipoRelatorioPedido)Glass.Conversoes.StrParaInt(Request["tipo"]) : TipoRelatorioPedido.Normal; Glass.Data.Model.Pedido[] pedido = PedidoDAO.Instance.GetForRpt(Request["idPedido"], tipo == TipoRelatorioPedido.Pcp, login); uint idLoja = pedido[0].IdLoja; List <ProdutosPedido> prodPedido = new List <ProdutosPedido>(); List <ParcelasPedido> parcPedido = new List <ParcelasPedido>(); List <AmbientePedido> ambPedido = new List <AmbientePedido>(); List <TextoPedido> textoPedido = new List <TextoPedido>(); report.ReportPath = PedidoConfig.RelatorioPedido.NomeArquivoRelatorio(idLoja).Item1; Dictionary <int, List <string> > parametros = new Dictionary <int, List <string> >(); for (int i = 0; i < 20; i++) { parametros.Add(i, new List <string>()); } for (int i = 0; i < pedido.Length; i++) { parcPedido.AddRange(ParcelasPedidoDAO.Instance.GetForRpt(pedido[i].IdPedido)); ambPedido.AddRange(AmbientePedidoDAO.Instance.GetByPedido(pedido[i].IdPedido, tipo == TipoRelatorioPedido.Pcp)); prodPedido.AddRange(PedidoConfig.RelatorioPedido.ExibirItensProdutosPedido ? ProdutosPedidoDAO.Instance.GetForRpt(pedido[i].IdPedido, tipo == TipoRelatorioPedido.Pcp) : ProdutosPedidoDAO.Instance.GetForRptAmbiente(pedido[i].IdPedido, tipo == TipoRelatorioPedido.Pcp)); textoPedido.AddRange(TextoPedidoDAO.Instance.GetByPedido(pedido[i].IdPedido)); float taxaEntrega = 0f; if (PedidoConfig.Pedido_FastDelivery.FastDelivery && pedido[i].FastDelivery) { taxaEntrega = PedidoConfig.Pedido_FastDelivery.TaxaFastDelivery; } string separador = " - "; string enderecoLoja = pedido[i].RptEnderecoLoja + pedido[i].RptComplLoja + separador + pedido[i].RptBairroLoja + separador + pedido[i].RptTelefoneLoja + separador + "CEP: " + pedido[i].RptCepLoja; parametros[0].Add(taxaEntrega.ToString() + "%"); parametros[1].Add(pedido[i].IdPedido.ToString()); parametros[2].Add(String.IsNullOrEmpty(pedido[i].NomeFunc) ? "." : pedido[i].NomeFunc); parametros[3].Add(pedido[i].DataPedido.ToString("dd/MM/yyyy")); parametros[4].Add(String.IsNullOrEmpty(pedido[i].FoneFaxLoja) ? "." : pedido[i].FoneFaxLoja); parametros[5].Add(String.IsNullOrEmpty(pedido[i].RptNomeLoja) ? "." : pedido[i].RptNomeLoja); parametros[6].Add(String.IsNullOrEmpty(pedido[i].DadosLoja) ? "." : pedido[i].DadosLoja); parametros[7].Add(pedido[i].DataCad.ToString("dd/MM/yyyy")); parametros[8].Add(pedido[i].DescrSituacaoPedido); parametros[9].Add(String.IsNullOrEmpty(pedido[i].EmailLoja) ? "." : pedido[i].EmailLoja); parametros[10].Add(String.IsNullOrEmpty(pedido[i].RptTelefoneLoja) ? "." : pedido[i].RptTelefoneLoja); parametros[11].Add(String.IsNullOrEmpty(enderecoLoja) ? "." : enderecoLoja); parametros[12].Add(String.IsNullOrEmpty(pedido[i].DataEntregaString) ? "." : pedido[i].DataEntregaString); parametros[13].Add((pedido[i].TipoPedido == (int)Glass.Data.Model.Pedido.TipoPedidoEnum.MaoDeObra).ToString()); parametros[14].Add(String.IsNullOrEmpty(pedido[i].CodCliente) ? "." : pedido[i].CodCliente); parametros[15].Add(!String.IsNullOrEmpty(pedido[i].CodCliente) ? pedido[i].CodCliente.ToString() : "."); parametros[16].Add(!PedidoConfig.LiberarPedido ? ContasReceberDAO.Instance.GetTotalDescontoParcelas(pedido[i].IdPedido).ToString() : "."); parametros[17].Add(!String.IsNullOrEmpty(pedido[i].Obs) ? "Obs: " + pedido[i].Obs : "."); string codRota = string.Empty; string descrRota = string.Empty; // Só exibe o código da rota se não for tipo de entrega balcão if (PedidoDAO.Instance.ObtemTipoEntrega(pedido[i].IdPedido) != (uint)Glass.Data.Model.Pedido.TipoEntregaPedido.Balcao) { codRota = RotaDAO.Instance.ObtemCodRota(pedido[i].IdCli); descrRota = RotaDAO.Instance.ObtemDescrRota(pedido[i].IdCli); } parametros[18].Add(!String.IsNullOrEmpty(codRota) ? codRota : "."); parametros[19].Add(!String.IsNullOrEmpty(descrRota) ? descrRota : "."); // Indica se o pedido é de cliente pedido[i].RptIsCliente = login != null ? login.IdCliente > 0 : false; } var prodPedidoRpt = new List <ProdutosPedido>(); foreach (var item in prodPedido.Where(f => f.IdProdPedParent == null)) { prodPedidoRpt.Add(item); foreach (var itemFlilho in prodPedido.Where(f => f.IdProdPedParent == item.IdProdPed)) { prodPedidoRpt.Add(itemFlilho); prodPedidoRpt.AddRange(prodPedido.Where(f => f.IdProdPedParent == itemFlilho.IdProdPed)); } } if (!IsRelOtimizado((int)idLoja)) { report.DataSources.Add(new ReportDataSource("Pedido", pedido)); report.DataSources.Add(new ReportDataSource("ProdutosPedido", prodPedidoRpt)); } else { report.DataSources.Add(new ReportDataSource("PedidoRpt", PedidoRptDAL.Instance.CopiaLista(pedido, PedidoRpt.TipoConstrutor.RelatorioPedido, false, login))); report.DataSources.Add(new ReportDataSource("ProdutosPedidoRpt", ProdutosPedidoRptDAL.Instance.CopiaLista(prodPedidoRpt.ToArray()))); } lstParam.Add(new ReportParameter("LojaCalculaICMSPedido", LojaDAO.Instance.ObtemCalculaIcmsStPedido(null, idLoja).ToString())); lstParam.Add(new ReportParameter("LojaCalculaIPIPedido", LojaDAO.Instance.ObtemCalculaIpiPedido(null, idLoja).ToString())); lstParam.Add(new ReportParameter("TemProdutoLamComposicao", pedido[0].TemProdutoLamComposicao.ToString())); report.DataSources.Add(new ReportDataSource("ParcelasPedido", parcPedido)); report.DataSources.Add(new ReportDataSource("AmbientePedido", ambPedido)); report.DataSources.Add(new ReportDataSource("TextoPedido", textoPedido)); lstParam.Add(new ReportParameter("TaxaEntrega", parametros[0].ToArray())); lstParam.Add(new ReportParameter("AgruparBeneficiamentos", PedidoConfig.RelatorioPedido.AgruparBenefRelatorio.ToString())); lstParam.Add(new ReportParameter("ExibirM2Calc", PedidoConfig.RelatorioPedido.ExibirM2CalcRelatorio.ToString())); lstParam.Add(new ReportParameter("Cabecalho_DataLocal", LojaDAO.Instance.GetCidade(pedido[0].IdLoja, false) + ", " + Formatacoes.DataExtenso(pedido[0].DataPedido))); lstParam.Add(new ReportParameter("Cabecalho_IdPedido", parametros[1].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_NomeFunc", parametros[2].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_DataPedido", parametros[3].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_FoneFaxLoja", parametros[4].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_NomeLoja", parametros[5].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_DadosLoja", parametros[6].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_DataCad", parametros[7].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_Situacao", parametros[8].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_EmailLoja", parametros[9].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_TelefoneLoja", parametros[10].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_EnderecoLoja", parametros[11].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_DataEntrega", parametros[12].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_MaoDeObra", parametros[13].ToArray())); lstParam.Add(new ReportParameter("ExibirComissao", (!PedidoConfig.Comissao.UsarComissionadoCliente && false).ToString())); // Não exibe a comissão em nenhum relatório lstParam.Add(new ReportParameter("ImpressoPor", login != null ? login.Nome : string.Empty)); lstParam.Add(new ReportParameter("TipoRpt", ((int)tipo).ToString())); lstParam.Add(new ReportParameter("FormatTotM", Geral.GetFormatTotM())); lstParam.Add(new ReportParameter("Cabecalho_CodCliente", parametros[14].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_NumPedCli", parametros[15].ToArray())); lstParam.Add(new ReportParameter("DescontoParcelas", parametros[16].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_Obs", parametros[17].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_CpfCnpjLoja", LojaDAO.Instance.ObtemCnpj(idLoja))); lstParam.Add(new ReportParameter("Cabecalho_InscEstLoja", LojaDAO.Instance.ObtemInscEst(idLoja))); lstParam.Add(new ReportParameter("Cabecalho_Rota", parametros[18].ToArray())); lstParam.Add(new ReportParameter("Cabecalho_DescrRota", parametros[19].ToArray())); lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo(PageRequest, idLoja))); return(null); }
public KeyValuePair <string, string>[] ObtemCpfCnpj() { var itens = LimiteChequeCpfCnpjDAO.Instance.ObtemCpfCnpj(); return(Array.ConvertAll(itens, x => new KeyValuePair <string, string>(x, Formatacoes.FormataCpfCnpj(x)))); }
protected void BuscaInfoCliente(uint idCli) { Cliente cli = ClienteDAO.Instance.GetElement(idCli); #region Dados Cadastrais lblInfoCodCli.Text = cli.IdCli.ToString(); lblInfoNomeCli.Text = cli.Nome; lblInfoContato.Text = ((!string.IsNullOrEmpty(cli.Contato) ? cli.Contato : null) + (!string.IsNullOrEmpty(cli.Contato1) ? ", " + cli.Contato1 : null) + (!string.IsNullOrEmpty(cli.Contato2) ? ", " + cli.Contato2 : null)).TrimStart(',').TrimEnd(','); lblInfoTelefoneContato.Text = ((!string.IsNullOrEmpty(cli.TelCont) ? cli.TelCont : null) + (!string.IsNullOrEmpty(cli.TelRes) ? ", " + cli.TelRes : null) + (!string.IsNullOrEmpty(cli.TelCel) ? ", " + cli.TelCel : null)).TrimStart(',').TrimEnd(','); lblInfoCPF.Text = Formatacoes.FormataCpfCnpj(cli.CpfCnpj); lblInfoTipoFiscal.Text = cli.TipoFiscalString; lblInfoTipoContribuinte.Text = cli.IndicadorIEDestinatario.Translate().Format(); lblInfoInscEst.Text = cli.RgEscinst; lblInfoCrt.Text = cli.DescrCrt; lblInfoCnae.Text = cli.Cnae; lblEmail.Text = cli.Email; lblObs.Text = cli.Obs; lblObsLib.Text = cli.ObsLiberacao; lblObsNFe.Text = cli.ObsNfe; lblObs.ForeColor = Liberacao.TelaLiberacao.CorExibirObservacaoCliente; if (cli.IdFunc > 0) { lblInfoVendedor.Text = FuncionarioDAO.Instance.GetNome((uint)cli.IdFunc.Value); } lblInfoSituacao.Text = cli.DescrSituacao; if (cli.Situacao > 1) { lblInfoSituacao.ForeColor = Color.Red; lblInfoSituacao.Font.Bold = true; } #endregion #region Dados Financeiros var limiteCliente = Data.CalculadoraLimiteCredito.Calculadora.ObterLimite(null, cli); lblFinancLimPadrao.Text = limiteCliente.ToString("C"); lblPagarAntesProducao.Text = cli.PagamentoAntesProducao ? "Sim" : "Não"; lblTabelaDescontoAcrescimo.Text = cli.TabelaDescontoAcrescimo; if (limiteCliente > 0) { lblFinancLimDisp.Text = (limiteCliente - ContasReceberDAO.Instance.GetDebitos((uint)cli.IdCli, null)).ToString("C"); } lblFinancPagtoPadrao.Text = FormaPagtoDAO.Instance.GetDescricao((uint)cli.IdFormaPagto.GetValueOrDefault(0)); var formasPagtoDisp = FormaPagtoDAO.Instance.GetByCliente((uint)cli.IdCli); if (formasPagtoDisp.Count > 0) { lblFinancPagtoDisp.Text = "<ul>"; foreach (FormaPagto fp in formasPagtoDisp) { lblFinancPagtoDisp.Text += "<li>" + fp.Descricao + "</li>"; } lblFinancPagtoDisp.Text += "</ul>"; } var parc = ParcelasDAO.Instance.GetPadraoCliente((uint)cli.IdCli); lblFinancParcPadrao.Text = parc != null ? parc.DescrCompleta : String.Empty; var parcelasDisp = ParcelasDAO.Instance.GetByClienteFornecedor((uint)cli.IdCli, 0, false, ParcelasDAO.TipoConsulta.Todos); if (parcelasDisp.Length > 0) { lblFinancParcDisp.Text = "<ul>"; foreach (Parcelas p in parcelasDisp) { if (!p.NaoUsar && p.Situacao == Situacao.Ativo) { lblFinancParcDisp.Text += "<li>" + p.DescrCompleta + "</li>"; } } lblFinancParcDisp.Text += "</ul>"; } lblFinancPercSinalMin.Text = cli.PercSinalMinimo == null ? "" : cli.PercSinalMinimo.ToString() + "%"; lblFinancCredito.Text = cli.Credito.ToString("C"); lblContasVencidas.Text = ContasReceberDAO.Instance.ClientePossuiContasVencidas((uint)cli.IdCli) ? "Cliente Possui Contas Vencidas" : ""; CarregarGrdVendas(idCli); #endregion }
public void Finalizar(uint idCte) { lock (_finalizarCTeLock) { using (var transaction = new GDATransaction()) { try { transaction.BeginTransaction(); Entidade.Cte cte = BuscarCte.Instance.GetCte(transaction, idCte); #region Valida dados do CT-e // TODO: Fazer validações do tipo: CNPJ/Insc Est do transportador, // codigo NCM preenchido automaticamente entre outros. if (cte.NumeroCte == 0) { throw new Exception("Informe o número do conhecimento de transporte."); } if (string.IsNullOrEmpty(cte.Modelo)) { throw new Exception("Informe o modelo do conhecimento de transporte."); } if (cte.IdNaturezaOperacao == 0) { throw new Exception("Selecione a natureza de operação do conhecimento de transporte."); } // Verifica se o CFOP selecionado é de nota fiscal de saída if (!CfopDAO.Instance.IsCfopEntrada(transaction, (int)cte.IdCfop)) { throw new Exception("O CFOP informado no conhecimento de transporte não é um CFOP de entrada."); } // Verifica se o CTE já foi finalizado. if (cte.Situacao == (int)Glass.Data.Model.Cte.ConhecimentoTransporte.SituacaoEnum.Autorizado || cte.Situacao == (int)Glass.Data.Model.Cte.ConhecimentoTransporte.SituacaoEnum.FinalizadoTerceiros) { throw new Exception("O CTE de número " + cte.NumeroCte + " já foi " + (cte.Situacao == (int)Glass.Data.Model.Cte.ConhecimentoTransporte.SituacaoEnum.Autorizado ? "autorizado" : "finalizado.")); } //Verifica se o cfop selecionado corresponde a uf do emitente e destinatario var codCfop = Glass.Conversoes.StrParaInt(CfopDAO.Instance.ObtemCodInterno(transaction, cte.IdCfop)[0].ToString()); var ufOrigem = CidadeDAO.Instance.GetNomeUf(transaction, cte.IdCidadeInicio); var ufDestino = CidadeDAO.Instance.GetNomeUf(transaction, cte.IdCidadeFim); if (ufOrigem.ToLower() == ufDestino.ToLower() && codCfop != 1) { throw new Exception("O CFOP informado não corresponde a um CFOP de entrada dentro do estado."); } else if (ufOrigem.ToLower() != ufDestino.ToLower() && codCfop != 2) { throw new Exception("O CFOP informado não corresponde a um CFOP de entrada fora do estado."); } else if (ufOrigem.ToLower() == "ex" && codCfop != 3) { throw new Exception("O CFOP informado não corresponde a um CFOP de entrada fora do país."); } if (!string.IsNullOrEmpty(cte.ChaveAcesso)) { var cnpjChaveAcesso = cte.ChaveAcesso.Substring(6, 14); var emitente = cte.ObjParticipanteCte.FirstOrDefault(x => x.TipoParticipante == Glass.Data.Model.Cte.ParticipanteCte.TipoParticipanteEnum.Emitente); var cpfCnpjEmitente = emitente == null ? null : emitente.IdLoja > 0 ? LojaDAO.Instance.ObtemCnpj(transaction, emitente.IdLoja.Value) : emitente.IdCliente > 0 ? ClienteDAO.Instance.ObtemCpfCnpj(transaction, emitente.IdCliente.Value) : emitente.IdFornec > 0 ? FornecedorDAO.Instance.ObtemCpfCnpj(transaction, emitente.IdFornec.Value) : emitente.IdTransportador > 0 ? TransportadorDAO.Instance.GetElementByPrimaryKey(transaction, emitente.IdTransportador.Value).CpfCnpj : null; if (cpfCnpjEmitente != null && Formatacoes.LimpaCpfCnpj(cpfCnpjEmitente) != cnpjChaveAcesso) { throw new Exception("O CNPJ do Emitente não é o mesmo informado na chave de acesso."); } } #endregion if (cte.TipoDocumentoCte != (int)Glass.Data.Model.Cte.ConhecimentoTransporte.TipoDocumentoCteEnum.EntradaTerceiros) { var notas = NotaFiscalCteDAO.Instance.GetCount(transaction, idCte); if (notas == 0) { throw new Exception("Selecione ao menos uma nota fiscal que está vinculada ao CT-e."); } } GerarContasPagar(transaction, cte); // Altera a situação do CTe ConhecimentoTransporteDAO.Instance.AlteraSituacao(transaction, idCte, Glass.Data.Model.Cte.ConhecimentoTransporte.SituacaoEnum.FinalizadoTerceiros); transaction.Commit(); transaction.Close(); } catch { transaction.Rollback(); transaction.Close(); throw; } } } }
protected override Colosoft.Reports.IReportDocument LoadReport(ref LocalReport report, ref List <ReportParameter> lstParam, HttpRequest PageRequest, System.Collections.Specialized.NameValueCollection Request, object[] outrosParametros, LoginUsuario login, string diretorioLogotipos) { Glass.Data.RelModel.Recibo recibo; // Verifica qual relatório será chamado switch (Request["rel"]) { case "recibo": if (string.IsNullOrEmpty(outrosParametros[0].ToString()) || string.IsNullOrEmpty(outrosParametros[1].ToString())) { return(null); } var idOrcamento = Request["idOrcamento"] != "0" && Request["idOrcamento"] != "" ? Request["idOrcamento"].StrParaUint() : 0; var idPedido = Request["idPedido"] != "0" && Request["idPedido"] != "" ? Request["idPedido"].StrParaUint() : 0; var idLiberacao = Request["idLiberacao"] != "0" && Request["idLiberacao"] != "" ? Request["idLiberacao"].StrParaUint() : 0; var idsContaR = outrosParametros[1].ToString(); if (idsContaR == null || idsContaR == "0") { if (PedidoConfig.LiberarPedido) { var contasRec = ContasReceberDAO.Instance.GetByLiberacaoPedido(idLiberacao, true); if (contasRec != null && contasRec.Count > 0) { idsContaR = string.Join(",", contasRec.Select(f => f.IdContaR.ToString())); } } else { var contasRec = ContasReceberDAO.Instance.GetByPedido(null, idPedido, false, true); if (contasRec != null && contasRec.Count > 0) { idsContaR = string.Join(",", contasRec.Select(f => f.IdContaR.ToString())); } } } var orcamento = new Data.Model.Orcamento(); var pedido = new Data.Model.Pedido(); var liberacao = new LiberarPedido(); var nomeCliente = string.Empty; var nomeVendedor = string.Empty; var idLoja = new uint(); var total = new decimal(); #region Orçamento // Recupera os dados do orçamento. if (idOrcamento > 0) { orcamento = OrcamentoDAO.Instance.GetElementByPrimaryKey(idOrcamento); if (orcamento.IdCliente > 0) { nomeCliente = ClienteDAO.Instance.GetNome(orcamento.IdCliente.Value); } else { nomeCliente = orcamento.NomeCliente; } nomeVendedor = orcamento.IdFuncionario > 0 ? FuncionarioDAO.Instance.GetNome(orcamento.IdFuncionario.Value) : login.Nome; idLoja = orcamento.IdLoja > 0 ? orcamento.IdLoja.Value : login.IdLoja; total = orcamento.Total; idPedido = 0; idLiberacao = 0; } #endregion #region Pedido // Recupera os dados do pedido. else if (idPedido > 0) { pedido = PedidoDAO.Instance.GetElementByPrimaryKey(idPedido); nomeCliente = ClienteDAO.Instance.GetNome(pedido.IdCli); nomeVendedor = pedido.IdFunc > 0 ? FuncionarioDAO.Instance.GetNome(pedido.IdFunc) : login.Nome; idLoja = pedido.IdPedido > 0 ? pedido.IdLoja : login.IdLoja; total = pedido.Total; // Se houver pcp, usa o total do mesmo var totalEspelho = PedidoEspelhoDAO.Instance.ObtemTotal(idPedido); if (totalEspelho > 0) { total = totalEspelho; } idLiberacao = 0; } #endregion #region Liberação // Recupera os dados da liberação. else if (idLiberacao > 0) { liberacao = LiberarPedidoDAO.Instance.GetElement(idLiberacao); nomeCliente = ClienteDAO.Instance.GetNome(liberacao.IdCliente); nomeVendedor = !string.IsNullOrEmpty(liberacao.NomeFunc) ? liberacao.NomeFunc : login.Nome; idLoja = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(liberacao.IdFunc).IdLoja; total = liberacao.Total; } #endregion recibo = new Data.RelModel.Recibo(); recibo.Tipo = Conversoes.StrParaInt(Request["referente"]); recibo.IdOrcamento = orcamento.IdOrcamento; recibo.IdPedido = pedido.IdPedido; recibo.IdLiberarPedido = liberacao.IdLiberarPedido; recibo.Cliente = nomeCliente; recibo.IdLoja = idLoja; recibo.SinalPedido = pedido.IdPedido > 0 ? pedido.ValorEntrada + pedido.ValorPagamentoAntecipado : 0; recibo.Total = total; recibo.Vendedor = nomeVendedor; recibo.Items = outrosParametros[0].ToString(); recibo.NumParcelas = idsContaR; recibo.ValorReferente = Request["valorRef"]; recibo.MotivoReferente = Request["motivoRef"]; report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc"); if (report.ReportPath == "Relatorios/Genericos/ModeloRecibo/rptReciboVidrosEVidros.rdlc") { lstParam.Add(new ReportParameter("ImagemCabecalho", "file:///" + PageRequest.PhysicalApplicationPath.Replace('\\', '/') + "Images/cabecalhoOrcamentoVivrosEVidros.jpg")); } if (ReciboConfig.Relatorio.UsarParcelasPedido && pedido.IdPedido > 0) { report.DataSources.Add(new ReportDataSource("ParcelasPedido", pedido.NumParc > 0 ? ParcelasPedidoDAO.Instance.GetByPedido(pedido.IdPedido) : new ParcelasPedido[0])); } report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo })); break; case "reciboPgAntec": Sinal sinal = SinalDAO.Instance.GetSinalDetails(Glass.Conversoes.StrParaUint(Request["idPgAntecipado"])); Cliente clientePgto = ClienteDAO.Instance.GetElementByPrimaryKey(sinal.IdCliente); recibo = new Data.RelModel.Recibo(); recibo.Tipo = Glass.Conversoes.StrParaInt(Request["referente"]); recibo.IdSinal = sinal.IdSinal; recibo.Cliente = clientePgto.Nome; recibo.IdLoja = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(sinal.UsuCad).IdLoja; recibo.Total = sinal.TotalSinal; recibo.Vendedor = FuncionarioDAO.Instance.GetNome(sinal.UsuCad); recibo.Items = outrosParametros[0].ToString(); recibo.NumParcelas = outrosParametros[1].ToString(); recibo.ValorReferente = Request["valorRef"]; recibo.MotivoReferente = Request["motivoRef"]; report.ReportPath = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc"); report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo })); break; case "reciboAcerto": uint idAcerto = Request["idAcerto"] != "0" && Request["idAcerto"] != "" ? Glass.Conversoes.StrParaUint(Request["idAcerto"]) : 0; if (idAcerto > 0 && !AcertoDAO.Instance.Exists(idAcerto)) { Response.Write("O acerto informado não existe."); return(null); } Acerto acerto = AcertoDAO.Instance.GetByCliList(Convert.ToInt32(idAcerto), 0, 0, 0, null, null, 0, 0, 0, 0, null, 0, 10)[0]; recibo = new Data.RelModel.Recibo(); recibo.Tipo = Glass.Conversoes.StrParaInt(Request["referente"]); recibo.IdAcerto = acerto.IdAcerto; recibo.Cliente = ClienteDAO.Instance.GetNome(acerto.IdCli); recibo.IdLoja = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(acerto.UsuCad).IdLoja; recibo.Total = acerto.TotalAcerto; recibo.Vendedor = FuncionarioDAO.Instance.GetNome(acerto.UsuCad); recibo.Items = outrosParametros[0].ToString(); recibo.NumParcelas = outrosParametros[1].ToString(); recibo.ValorReferente = Request["valorRef"]; recibo.MotivoReferente = Request["motivoRef"]; report.ReportPath = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc"); report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo })); break; case "termoaceitacao": if (!PedidoDAO.Instance.PedidoExists(Glass.Conversoes.StrParaUint(Request["ped"]))) { Response.Write("O pedido informado não existe."); return(null); } Glass.Data.Model.Pedido pedTermo = PedidoDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(Request["ped"])); if (pedTermo.IdOrcamento == null) { pedTermo.IdOrcamento = 0; } pedTermo.InfoAdicional = Request["infAdic"]?.Replace("\\n", "\n") ?? string.Empty; report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/rptAceitacao{0}.rdlc"); report.DataSources.Add(new ReportDataSource("PedidoRpt", PedidoRptDAL.Instance.CopiaLista(new Glass.Data.Model.Pedido[] { pedTermo }, PedidoRpt.TipoConstrutor.TermoAceitacao, false, login))); break; case "riscoquebra": // Verifica se pedido passado existe if (!PedidoDAO.Instance.PedidoExists(Glass.Conversoes.StrParaUint(Request["idPedido"]))) { Response.Write("O pedido informado não existe."); return(null); } var risco = new Data.RelModel.RiscoQuebra(); Glass.Data.Model.Pedido ped = PedidoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idPedido"])); Cliente cli = ClienteDAO.Instance.GetElementByPrimaryKey(ped.IdCli); cli.Cidade = CidadeDAO.Instance.GetNome((uint?)cli.IdCidade); risco.IdPedido = ped.IdPedido; risco.NomeLoja = LojaDAO.Instance.GetElementByPrimaryKey(ped.IdLoja).NomeFantasia; risco.CidadeData = LojaDAO.Instance.GetElement(ped.IdLoja).Cidade + " " + Formatacoes.DataExtenso(DateTime.Now); risco.Cliente = cli.Nome; risco.Endereco = !string.IsNullOrEmpty(ped.LocalizacaoObra) ? ped.LocalizacaoObra : cli.EnderecoCompleto; risco.Telefone = cli.Telefone; risco.Texto = Request["texto"]; report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/rptRiscoQuebra{0}.rdlc"); report.DataSources.Add(new ReportDataSource("RiscoQuebra", new Data.RelModel.RiscoQuebra[] { risco })); break; case "reciboContaPagar": { var idContaPagar = Request["idContaPagar"] != "0" && Request["idContaPagar"] != "" ? Glass.Conversoes.StrParaInt(Request["idContaPagar"]) : 0; var contaPg = ContasPagarDAO.Instance.GetPagasForRpt(idContaPagar, 0, null, 0, 0, 0, 0, null, null, null, null, null, null, null, null, 0, 0, 0, false, true, false, null, false, false, 0, 0, null, null); if (contaPg.Length == 0) { throw new Exception("A conta a pagar informada não existe ou não está paga."); } recibo = new Data.RelModel.Recibo(); recibo.IdContaPagar = idContaPagar; recibo.IdLoja = contaPg[0].IdLoja.GetValueOrDefault(0); recibo.Total = contaPg[0].ValorPago; recibo.Cliente = FornecedorDAO.Instance.GetElementByPrimaryKey(contaPg[0].IdFornec.GetValueOrDefault(0)).Nome; recibo.MotivoReferente = contaPg[0].DescrPlanoConta; report.ReportPath = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc"); recibo.Tipo = Glass.Conversoes.StrParaInt(Request["referente"]); report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo })); break; } } // Atribui parâmetros ao relatório lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogoColor(PageRequest))); lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome))); lstParam.Add(new ReportParameter("CorRodape", "DimGray")); return(null); }
/// <summary> /// Consulta o cadastro de contribuintes do ICMS da unidade federada. /// </summary> public static string ConsultaSitCadastroContribuinte(string uf, string cpfCnpj) { if (string.IsNullOrEmpty(uf) || string.IsNullOrEmpty(cpfCnpj)) { return("Contribuinte não encontrado."); } #region Monta XML XmlDocument xmlConsCad = new XmlDocument(); XmlNode declarationNode = xmlConsCad.CreateXmlDeclaration("1.0", "UTF-8", null); xmlConsCad.AppendChild(declarationNode); XmlElement consCad = xmlConsCad.CreateElement("ConsCad"); consCad.SetAttribute("versao", ConfigNFe.VersaoConsCad); consCad.SetAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe"); xmlConsCad.AppendChild(consCad); XmlElement infCons = xmlConsCad.CreateElement("infCons"); consCad.AppendChild(infCons); ManipulacaoXml.SetNode(xmlConsCad, infCons, "xServ", "CONS-CAD"); ManipulacaoXml.SetNode(xmlConsCad, infCons, "UF", uf); cpfCnpj = Formatacoes.LimpaCpfCnpj(cpfCnpj); if (cpfCnpj.Length == 11) { ManipulacaoXml.SetNode(xmlConsCad, infCons, "CPF", cpfCnpj); } else { ManipulacaoXml.SetNode(xmlConsCad, infCons, "CNPJ", cpfCnpj); } #endregion // Salva o callback padrão do WebService System.Net.Security.RemoteCertificateValidationCallback callback = System.Net.ServicePointManager.ServerCertificateValidationCallback; XmlNode xmlRetorno = null; try { // Altera o callback de validação do WebService System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object sender, System.Security.Cryptography.X509Certificates.X509Certificate cert, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors error) { // Verifica se a data do certificado é válida DateTime beginDate = DateTime.Parse(cert.GetEffectiveDateString()); DateTime endDate = DateTime.Parse(cert.GetExpirationDateString()); bool isDateValid = (DateTime.Now >= beginDate) && (DateTime.Now <= endDate); // Retorna o resultado da função return(isDateValid); }; // Envia o arquivo e recebe o retorno. xmlRetorno = EnviaXML.ObterXmlConsultaCadastroContribuinte(uf, xmlConsCad); } catch (Exception ex) { throw new Exception(Glass.MensagemAlerta.FormatErrorMsg("Falha ao chamar WebService.", ex)); } finally { // Restaura o callback padrão para o WebService System.Net.ServicePointManager.ServerCertificateValidationCallback = callback; } if (xmlRetorno == null) { return("Falha ao comunicar com webservice da SEFAZ."); } XmlDocument xmlDocRetorno = new XmlDocument(); xmlDocRetorno.ImportNode(xmlRetorno, true); XmlNamespaceManager nMgr = new XmlNamespaceManager(xmlDocRetorno.NameTable); nMgr.AddNamespace("nfe", "http://www.portalfiscal.inf.br/nfe"); XmlNode infoCons = xmlRetorno.SelectSingleNode("//nfe:infCons", nMgr); var codStatus = infoCons?["cStat"]?.InnerText; var retorno = string.Empty; if (codStatus == "111" || codStatus == "112") { retorno += "Consulta Situação do Contribuinte no Sintegra\n\n"; retorno += "Situação: "; if (infoCons["infCad"]["cSit"].InnerText == "1") { retorno += "Habilitado."; } else { retorno += "Não Habilitado."; } } else { retorno += "Falha na Consulta Situação do Contribuinte no Sintegra\n\n"; retorno += "Código: " + codStatus + "\n"; retorno += infoCons?["xMotivo"]?.InnerText; } ClienteDAO.Instance.AtualizaUltimaConsultaSintegra(cpfCnpj); return(retorno); }
public override int Update(CartaCorrecao objUpdate) { objUpdate.Correcao = Formatacoes.TrataStringDocFiscal(objUpdate.Correcao); return(base.Update(objUpdate)); }
/// <summary> /// Retorna a referência de um item para o Log. /// </summary> public static string GetReferencia(GDASession session, TabelaAlteracao tabela, uint idRegistroAlt) { try { var referencia = string.Empty; switch (tabela) { case TabelaAlteracao.Cfop: referencia = CfopDAO.Instance.ObtemValorCampo <string>(session, "codInterno", "idCfop=" + idRegistroAlt); break; case TabelaAlteracao.Cheque: referencia = ChequesDAO.Instance.ObtemValorCampo <string>(session, "num", "idCheque=" + idRegistroAlt); break; case TabelaAlteracao.Cliente: referencia = ClienteDAO.Instance.GetNome(session, idRegistroAlt); break; case TabelaAlteracao.ConfigLoja: var idConfig = ConfiguracaoLojaDAO.Instance.ObtemValorCampo <uint>(session, "idConfig", "idConfigLoja=" + idRegistroAlt); referencia = ConfiguracaoDAO.Instance.ObtemDescricao(session, idConfig); break; case TabelaAlteracao.ControleUsuario: referencia = FuncModuloDAO.Instance.GetByLog(session, idRegistroAlt).DescrModulo; break; case TabelaAlteracao.DescontoAcrescimoCliente: referencia = DescontoAcrescimoClienteDAO.Instance.GetElement(session, idRegistroAlt).DescricaoCompleta; break; case TabelaAlteracao.Fornecedor: referencia = FornecedorDAO.Instance.GetNome(session, idRegistroAlt); break; case TabelaAlteracao.Funcionario: referencia = FuncionarioDAO.Instance.GetNome(session, idRegistroAlt); break; case TabelaAlteracao.GrupoProduto: referencia = GrupoProdDAO.Instance.GetDescricao(session, (int)idRegistroAlt); break; case TabelaAlteracao.NotaFiscal: referencia = NotaFiscalDAO.Instance.ObtemNumerosNFePeloIdNf(session, idRegistroAlt.ToString()); break; case TabelaAlteracao.Produto: referencia = ProdutoDAO.Instance.GetDescrProduto(session, (int)idRegistroAlt); break; case TabelaAlteracao.ProdutoNotaFiscal: var idNf = ProdutosNfDAO.Instance.ObtemValorCampo <uint>(session, "idNf", "idProdNf=" + idRegistroAlt); var idProd = ProdutosNfDAO.Instance.ObtemValorCampo <uint>(session, "idProd", "idProdNf=" + idRegistroAlt); referencia = "Nota: " + GetReferencia(session, TabelaAlteracao.NotaFiscal, idNf) + " Produto: " + GetReferencia(session, TabelaAlteracao.Produto, idProd); break; case TabelaAlteracao.SubgrupoProduto: var idGrupoProd = SubgrupoProdDAO.Instance.ObtemValorCampo <uint>(session, "idGrupoProd", "idSubgrupoProd=" + idRegistroAlt); referencia = GrupoProdDAO.Instance.GetDescricao(session, (int)idGrupoProd) + " " + SubgrupoProdDAO.Instance.GetDescricao(session, (int)idRegistroAlt); break; case TabelaAlteracao.UnidadeMedida: referencia = UnidadeMedidaDAO.Instance.ObtemValorCampo <string>(session, "codigo", "idUnidadeMedida=" + idRegistroAlt); break; case TabelaAlteracao.Transportador: referencia = TransportadorDAO.Instance.GetNome(session, idRegistroAlt); break; case TabelaAlteracao.ProdutoLoja: var prodLoja = new ProdutoLoja(); prodLoja.IdLog = idRegistroAlt; referencia = "Produto: " + ProdutoDAO.Instance.GetDescrProduto(session, (int)prodLoja.IdProd) + " Loja: " + LojaDAO.Instance.GetNome(session, (uint)prodLoja.IdLoja); break; case TabelaAlteracao.MovBemAtivoImobilizado: var mbai = MovimentacaoBemAtivoImobDAO.Instance.GetElement(session, idRegistroAlt); referencia = "Nota Fiscal: " + mbai.NumeroNFe + " - " + mbai.DescrProd; break; case TabelaAlteracao.Loja: referencia = LojaDAO.Instance.GetNome(session, idRegistroAlt); break; case TabelaAlteracao.ProjetoModelo: referencia = ProjetoModeloDAO.Instance.ObtemValorCampo <string>(session, "codigo", "idProjetoModelo=" + idRegistroAlt); break; case TabelaAlteracao.PosicaoPecaModelo: referencia = "Info. " + PosicaoPecaModeloDAO.Instance.GetElement(session, idRegistroAlt).NumInfo; break; case TabelaAlteracao.PecaProjetoModelo: referencia = "Item " + PecaProjetoModeloDAO.Instance.ObtemValorCampo <string>(session, "item", "idPecaProjMod=" + idRegistroAlt); break; case TabelaAlteracao.MaterialProjetoModelo: referencia = MaterialProjetoModeloDAO.Instance.GetElement(session, idRegistroAlt).DescrProdProj; break; case TabelaAlteracao.GrupoModelo: referencia = GrupoModeloDAO.Instance.ObtemValorCampo <string>(session, "descricao", "idGrupoModelo=" + idRegistroAlt); break; case TabelaAlteracao.PosicaoPecaIndividual: referencia = "Info. " + PosicaoPecaIndividualDAO.Instance.GetElement(session, idRegistroAlt).NumInfo; break; case TabelaAlteracao.ProdutoProjeto: var idProd_Proj = ProdutoProjetoDAO.Instance.ObtemValorCampo <uint>(session, "idProd", "idProdProj=" + idRegistroAlt); referencia = GetReferencia(session, TabelaAlteracao.Produto, idProd_Proj); break; case TabelaAlteracao.ProdutoProjetoConfig: var idProd_ProjConfig = ProdutoProjetoConfigDAO.Instance.ObtemValorCampo <uint>(session, "idProd", "idProdProjConfig=" + idRegistroAlt); referencia = GetReferencia(session, TabelaAlteracao.Produto, idProd_ProjConfig); break; case TabelaAlteracao.MedidaProjeto: referencia = MedidaProjetoDAO.Instance.ObtemValorCampo <string>(session, "idMedidaProjeto", "idMedidaProjeto=" + idRegistroAlt); break; case TabelaAlteracao.Setor: referencia = Utils.ObtemSetor(idRegistroAlt)?.Descricao ?? string.Empty; break; case TabelaAlteracao.TipoPerda: referencia = TipoPerdaDAO.Instance.GetNome(session, idRegistroAlt); break; case TabelaAlteracao.TipoCliente: referencia = TipoClienteDAO.Instance.GetNome(session, idRegistroAlt); break; case TabelaAlteracao.BenefConfig: referencia = BenefConfigDAO.Instance.GetDescrBenef(session, idRegistroAlt.ToString()); break; case TabelaAlteracao.BenefConfigPreco: var idBenefConfig = BenefConfigPrecoDAO.Instance.ObtemIdBenefConfig(session, idRegistroAlt); referencia = GetReferencia(session, TabelaAlteracao.BenefConfig, idBenefConfig); break; case TabelaAlteracao.ImagemProducao: PecaItemProjeto peca = PecaItemProjetoDAO.Instance.GetElementExt(session, idRegistroAlt / 100, true); var idProd_ImagemProd = peca.IdProdPed != null?ProdutosPedidoEspelhoDAO.Instance.ObtemValorCampo <uint>(session, "idProd", "idProdPed=" + peca.IdProdPed) : 0; referencia = "Pedido: " + peca.IdPedido + " Produto: " + (idProd_ImagemProd > 0 ? GetReferencia(session, TabelaAlteracao.Produto, idProd_ImagemProd) : string.Empty); break; case TabelaAlteracao.SubtipoPerda: referencia = SubtipoPerdaDAO.Instance.GetDescricao(session, idRegistroAlt); break; case TabelaAlteracao.Rota: referencia = RotaDAO.Instance.ObtemValorCampo <string>(session, "codInterno", "idRota=" + idRegistroAlt); break; case TabelaAlteracao.ProdutoFornecedor: referencia = ProdutoFornecedorDAO.Instance.ObtemDescricao(session, idRegistroAlt); break; case TabelaAlteracao.LimiteChequeCpfCnpj: referencia = Formatacoes.FormataCpfCnpj(LimiteChequeCpfCnpjDAO.Instance.ObtemValorCampo <string>(session, "cpfCnpj", "idLimiteCheque=" + idRegistroAlt)); break; case TabelaAlteracao.ChapaVidro: referencia = ProdutoDAO.Instance.ObtemValorCampo <string>(session, "codInterno", "idProd=" + ChapaVidroDAO.Instance.ObtemValorCampo <uint>(session, "idProd", "idChapaVidro=" + idRegistroAlt)); break; case TabelaAlteracao.RetalhoProducao: referencia = RetalhoProducaoDAO.Instance.ObtemNumeroEtiqueta(session, idRegistroAlt); break; case TabelaAlteracao.NaturezaOperacao: referencia = NaturezaOperacaoDAO.Instance.ObtemCodigoCompleto(session, idRegistroAlt); break; case TabelaAlteracao.RegraNaturezaOperacao: referencia = RegraNaturezaOperacaoDAO.Instance.ObtemDescricao(session, idRegistroAlt); break; case TabelaAlteracao.RoteiroProducao: referencia = RoteiroProducaoDAO.Instance.ObtemDescricao(session, (int)idRegistroAlt); break; case TabelaAlteracao.CapacidadeProducaoDiaria: referencia = CapacidadeProducaoDiariaDAO.Instance.ObtemParaLog(session, idRegistroAlt).Data.ToString("dd/MM/yyyy"); break; case TabelaAlteracao.ControleCreditosEfd: var item = ControleCreditoEfdDAO.Instance.GetElementByPrimaryKey(session, idRegistroAlt); referencia = item.PeriodoGeracao + " - Imposto: " + item.DescrTipoImposto + (item.CodCred != null ? " - Cód. Cred.: " + item.DescrCodCred : ""); break; case TabelaAlteracao.ProdPedProducao: referencia = ProdutoPedidoProducaoDAO.Instance.ObtemEtiqueta(session, idRegistroAlt); break; case TabelaAlteracao.TipoCartao: referencia = TipoCartaoCreditoDAO.Instance.GetElementByPrimaryKey(session, idRegistroAlt).Descricao; break; case TabelaAlteracao.DepositoNaoIdentificado: referencia = string.Format("DNI: {0}", idRegistroAlt); break; case TabelaAlteracao.ConfiguracaoAresta: referencia = "Aresta"; break; case TabelaAlteracao.CartaoNaoIdentificado: referencia = string.Format("CNI: {0}", idRegistroAlt); break; case TabelaAlteracao.GrupoMedidaProjeto: referencia = string.Format("Grupo de Medida de Projeto: {0}", idRegistroAlt); break; case TabelaAlteracao.DescontoFormaPagamentoDadosProduto: referencia = string.Format("Desconto por Forma de Pagamento e Dados do Produto: {0}", idRegistroAlt); break; case TabelaAlteracao.ContaPagar: referencia = string.Format("Conta a pagar/paga: {0}", idRegistroAlt); break; case TabelaAlteracao.Obra: referencia = string.Format("Obra: {0}", idRegistroAlt); break; case TabelaAlteracao.ImpostoServico: referencia = string.Format("Imposto/Serviço: {0}", idRegistroAlt); break; case TabelaAlteracao.Medicao: referencia = string.Format("Medição: {0}", idRegistroAlt); break; default: referencia = idRegistroAlt.ToString(); break; case TabelaAlteracao.GrupoCliente: referencia = GrupoClienteDAO.Instance.GetNome(session, idRegistroAlt); break; } if (!string.IsNullOrEmpty(referencia) && referencia.Length > 100) { referencia = referencia.Substring(0, 100); } return(referencia); } catch { return(string.Empty); } }
/// <summary> /// Busca XML da NFe passada para imprimir o DANFE /// </summary> /// <param name="idNFe"></param> /// <returns></returns> internal NFe GetForDanfe(HttpContext context, string chaveAcesso) { NFe nfe = new NFe(); // Verifica se NFe existe if (!File.Exists(Utils.GetNfeXmlPathInternal(context) + chaveAcesso + "-nfe.xml")) { throw new Exception("Arquivo da NF-e não encontrado."); } // Busca arquivo XML da NFe XmlDocument xmlNFe = new XmlDocument(); xmlNFe.Load(Utils.GetNfeXmlPathInternal(context) + chaveAcesso + "-nfe.xml"); XmlElement xmlInfNFe = GetXmlInfNFe(context, xmlNFe); var versao = xmlNFe["nfeProc"] != null ? xmlNFe["nfeProc"]["NFe"]["infNFe"].GetAttribute("versao") : xmlNFe["NFe"]["infNFe"].GetAttribute("versao"); #region Busca dados do XML da NF-e // Cabeçalho nfe.RazaoSocialEmit = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfNFe, "emit", "xNome")); nfe.NumeroNfe = Formatacoes.MascaraNroNFe(GetNodeValue(xmlInfNFe, "ide", "nNF")); nfe.SerieNfe = GetNodeValue(xmlInfNFe, "ide", "serie"); nfe.ModeloNfe = GetNodeValue(xmlInfNFe, "ide", "mod"); nfe.EnderecoEmit = Formatacoes.RestauraStringDocFiscal(GetEnderecoEmit(xmlInfNFe)); nfe.TipoNfe = GetNodeValue(xmlInfNFe, "ide", "tpNF"); nfe.TipoAmbiente = Glass.Conversoes.StrParaInt(GetNodeValue(xmlInfNFe, "ide", "tpAmb")); nfe.ChaveAcesso = Formatacoes.MascaraChaveAcessoNFe(chaveAcesso); nfe.UfNfe = Glass.Conversoes.StrParaInt(GetNodeValue(xmlInfNFe, "ide", "cUF")); nfe.TipoEmissao = Glass.Conversoes.StrParaInt(GetNodeValue(xmlInfNFe, "ide", "tpEmis")); // Dados da NF-e nfe.NatOperacao = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfNFe, "ide", "natOp")); nfe.InscEstEmit = GetNodeValue(xmlInfNFe, "emit", "IE"); nfe.InscEstStEmit = GetNodeValue(xmlInfNFe, "emit", "IEST"); nfe.CnpjEmit = Formatacoes.MascaraCnpj(GetNodeValue(xmlInfNFe, "emit", "CNPJ")); if (xmlNFe["NFe"] != null && xmlNFe["NFe"]["infProt"] != null) // Sql montado no sistema { nfe.ProtAutorizacao = GetNodeValue(xmlNFe["NFe"], "infProt", "nProt") + " " + GetNodeValue(xmlNFe["NFe"], "infProt", "dhRecbto").Replace("T", " "); } else if (xmlNFe["nfeProc"] != null && xmlNFe["nfeProc"]["protNFe"] != null) // Sql montado na receita { nfe.ProtAutorizacao = GetNodeValue(xmlNFe["nfeProc"]["protNFe"], "infProt", "nProt") + " " + GetNodeValue(xmlNFe["nfeProc"]["protNFe"], "infProt", "dhRecbto").Replace("T", " "); } // Preencher a partir do banco até mudarmos para baixar o xml direto da receita com o protocolo, caso a nota fique sem após a autorização if (string.IsNullOrEmpty(nfe.ProtAutorizacao)) { nfe.ProtAutorizacao = DAL.NotaFiscalDAO.Instance.ObtemValorCampo <string>("NumProtocolo", "ChaveAcesso=?chaveAcesso", new GDA.GDAParameter("?chaveAcesso", chaveAcesso)); } // Esta verificação não pode ser feita ao pré-visualizar nota //if (String.IsNullOrEmpty(nfe.ProtAutorizacao)) // throw new Exception("Nota sem protocolo."); // Destinatário/Remetente nfe.RazaoSocialRemet = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfNFe, "dest", "xNome")); nfe.CpfCnpjRemet = Formatacoes.MascaraCpfCnpj(GetNodeValue(xmlInfNFe, "dest", "CNPJ") + GetNodeValue(xmlInfNFe, "dest", "CPF")); nfe.EnderecoRemet = Formatacoes.RestauraStringDocFiscal((GetNodeValue(xmlInfNFe, "dest/enderDest", "xLgr") + ", " + GetNodeValue(xmlInfNFe, "dest/enderDest", "nro") + " " + GetNodeValue(xmlInfNFe, "dest/enderDest", "xCpl"))); nfe.BairroRemet = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfNFe, "dest/enderDest", "xBairro")); nfe.CepRemet = GetNodeValue(xmlInfNFe, "dest/enderDest", "CEP"); nfe.MunicipioRemet = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfNFe, "dest/enderDest", "xMun")); nfe.FoneRemet = GetNodeValue(xmlInfNFe, "dest/enderDest", "fone"); nfe.UfRemet = GetNodeValue(xmlInfNFe, "dest/enderDest", "UF"); nfe.InscEstRemet = GetNodeValue(xmlInfNFe, "dest", "IE"); try { nfe.DataEmissao = DateTime.Parse(GetNodeValue(xmlInfNFe, "ide", "dhEmi")).ToString("dd/MM/yyyy HH:mm:ss"); nfe.DataEmissaoOriginal = GetNodeValue(xmlInfNFe, "ide", "dhEmi"); } catch { } try { nfe.DataEntradaSaida = DateTime.Parse(GetNodeValue(xmlInfNFe, "ide", "dhSaiEnt")).ToString("dd/MM/yyyy HH:mm"); } catch { } // Fatura/Duplicatas if (DAL.NotaFiscalDAO.Instance.ObtemFormaPagto(chaveAcesso) == Model.NotaFiscal.FormaPagtoEnum.AVista) // Pagamento à vista { string nFat = GetNodeValue(xmlInfNFe, "cobr/fat", "nFat"); string vOrig = GetNodeValue(xmlInfNFe, "cobr/fat", "vOrig"); string vLiq = GetNodeValue(xmlInfNFe, "cobr/fat", "vLiq"); nfe.Fatura = "Pagamento à vista / Num.: " + nFat + " / V. Orig.: " + vOrig.Replace('.', ',') + " / V. Liq.: " + vLiq.Replace('.', ','); } else if (xmlInfNFe["cobr"] != null) // Pagamento à prazo/outros { // Busca tags com duplicatas XmlNodeList xmlListDup = xmlInfNFe["cobr"].GetElementsByTagName("dup"); string nFat = xmlInfNFe["cobr"]["fat"] != null?GetNodeValue(xmlInfNFe, "cobr/fat", "nFat") : string.Empty; foreach (XmlElement xmlDup in xmlListDup) { nfe.Fatura += "Num.: " + nFat + "-" + xmlDup["nDup"].InnerXml + " Venc.: " + DateTime.Parse(xmlDup["dVenc"].InnerXml).ToString("dd/MM/yyyy") + " Valor: " + xmlDup["vDup"].InnerXml.Replace('.', ',') + " / "; } if (nfe.Fatura != null) { nfe.Fatura = nfe.Fatura.TrimEnd(' ').TrimEnd('/'); } } // Cálculo do Imposto nfe.BcIcms = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ICMSTot", "vBC"), 2); nfe.VlrIcms = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ICMSTot", "vICMS"), 2); nfe.BcIcmsSt = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ICMSTot", "vBCST"), 2); nfe.VlrIcmsSt = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ICMSTot", "vST"), 2); nfe.VlrFrete = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ICMSTot", "vFrete"), 2); nfe.VlrSeguro = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ICMSTot", "vSeg"), 2); nfe.Desconto = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ICMSTot", "vDesc"), 2); nfe.OutrasDespesas = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ICMSTot", "vOutro"), 2); nfe.VlrIpi = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ICMSTot", "vIPI"), 2); nfe.VlrTotalProd = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ICMSTot", "vProd"), 2); nfe.VlrTotalNota = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ICMSTot", "vNF"), 2); // Transportador/Volumes transportados string modFrete = GetNodeValue(xmlInfNFe, "transp", "modFrete"); nfe.RazaoSocialTransp = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfNFe, "transp/transporta", "xNome")); nfe.CpfCnpjTransp = Formatacoes.MascaraCpfCnpj(GetNodeValue(xmlInfNFe, "transp/transporta", "CNPJ") + GetNodeValue(xmlInfNFe, "transp/transporta", "CPF")); switch ((Model.ModalidadeFrete)(modFrete.StrParaInt())) { case Model.ModalidadeFrete.ContaDoRemetente: nfe.FretePorConta = "0 - Rem (CIF)"; break; case Model.ModalidadeFrete.ContaDoDestinatario: nfe.FretePorConta = "1 - Dest (FOB)"; break; case Model.ModalidadeFrete.ContaDeTerceiros: nfe.FretePorConta = "2 - Terceiros"; break; case Model.ModalidadeFrete.ProprioContaDoRemetente: nfe.FretePorConta = "3 - Prop Rem"; break; case Model.ModalidadeFrete.ProprioContaDoDestinatario: nfe.FretePorConta = "4 - Prop Dest"; break; case Model.ModalidadeFrete.SemTransporte: nfe.FretePorConta = "9 - Sem Ocorr"; break; default: break; } nfe.CodAntt = GetNodeValue(xmlInfNFe, "transp/veicTransp", "RNTC"); nfe.PlacaVeiculo = GetNodeValue(xmlInfNFe, "transp/veicTransp", "placa"); nfe.UfVeiculo = GetNodeValue(xmlInfNFe, "transp/veicTransp", "UF"); nfe.EnderecoTransp = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfNFe, "transp/transporta", "xEnder")); nfe.MunicipioTransp = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfNFe, "transp/transporta", "xMun")); nfe.UfTransp = GetNodeValue(xmlInfNFe, "transp/transporta", "UF"); nfe.InscEstTransp = GetNodeValue(xmlInfNFe, "transp/transporta", "IE"); nfe.QtdTransp = GetNodeValue(xmlInfNFe, "transp/vol", "qVol"); nfe.EspecieTransp = GetNodeValue(xmlInfNFe, "transp/vol", "esp"); nfe.MarcaTransp = GetNodeValue(xmlInfNFe, "transp/vol", "marca"); nfe.NumeracaoTransp = GetNodeValue(xmlInfNFe, "transp/vol", "nVol"); nfe.PesoLiquido = GetNodeValue(xmlInfNFe, "transp/vol", "pesoL"); nfe.PesoBruto = GetNodeValue(xmlInfNFe, "transp/vol", "pesoB"); // Cálculo do ISSQN nfe.InscMunicIssqn = GetNodeValue(xmlInfNFe, "emit/enderEmit", "IM"); nfe.VlrTotalServicosIssqn = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ISSQNtot", "vServ"), 2); nfe.BcIssqn = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ISSQNtot", "vBC"), 2); nfe.VlrIssqn = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfNFe, "total/ISSQNtot", "vISS"), 2); // Dados adicionais nfe.InformacoesCompl = (!string.IsNullOrEmpty(GetNodeValue(xmlInfNFe, "infAdic", "infAdFisco")) ? GetNodeValue(xmlInfNFe, "infAdic", "infAdFisco") + "\r\n" : "") + (!string.IsNullOrEmpty(GetNodeValue(xmlInfNFe, "infAdic", "infCpl")) ? Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfNFe, "infAdic", "infCpl")) + "\r\n" : "") + (ConfigNFe.TipoAmbiente == ConfigNFe.TipoAmbienteNfe.Producao || nfe.ModeloNfe == "65" ? string.Empty : "SEM VALOR FISCAL."); // Dados de controle nfe.Crt = GetNodeValue(xmlInfNFe, "emit", "CRT"); //NFC-e if (nfe.ModeloNfe == "65") { var xmlSignature = GetXmlSignature(context, xmlNFe); if (xmlSignature != null) { nfe.DigestValue = GetNodeValue(xmlSignature, "SignedInfo/Reference", "DigestValue"); nfe.LinkQrCode = GetXmlInfNFeSupl(context, xmlNFe)["qrCode"].InnerText; nfe.UrlChave = GetXmlInfNFeSupl(context, xmlNFe)["urlChave"].InnerText; } } #endregion return(nfe); }
/// <summary> /// Busca XML do CTe passado para imprimir o DACTE /// </summary> /// <param name="context"></param> /// <param name="chaveAcesso"></param> /// <returns></returns> internal static CTe GetForDacte(HttpContext context, string chaveAcesso) { CTe cte = new CTe(); Glass.Data.Model.Cte.ConhecimentoTransporte _cte = Glass.Data.DAL.CTe.ConhecimentoTransporteDAO.Instance.GetByChaveAcesso(chaveAcesso); // Verifica se CTe existe if (!File.Exists(Utils.GetCteXmlPathInternal(context) + chaveAcesso + "-cte.xml")) { throw new Exception("Arquivo do CT-e não encontrado."); } // Busca arquivo XML do CTe XmlDocument xmlCTe = new XmlDocument(); xmlCTe.Load(Utils.GetCteXmlPathInternal(context) + chaveAcesso + "-cte.xml"); XmlElement xmlInfCTe = GetXmlInfCTe(context, xmlCTe); #region Busca dados do XML do CT-e // Identificação do Emitente cte.RazaoSocialEmit = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfCTe, "emit", "xNome")); cte.EnderecoEmit = Formatacoes.RestauraStringDocFiscal(GetEnderecoEmit(xmlInfCTe)); cte.CnpjCpfEmitente = Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "emit", "CNPJ")); cte.InscEstEmitente = GetNodeValue(xmlInfCTe, "emit", "IE"); //Modal cte.Modal = "RODOVIÁRIO"; //Modelo cte.Modelo = GetNodeValue(xmlInfCTe, "ide", "mod"); //Série cte.SerieCte = GetNodeValue(xmlInfCTe, "ide", "serie"); //Número cte.NumeroCte = Formatacoes.MascaraNroCTe(GetNodeValue(xmlInfCTe, "ide", "nCT")); //Tipo Ambiente cte.TipoAmbiente = Glass.Conversoes.StrParaInt(GetNodeValue(xmlInfCTe, "ide", "tpAmb")); //Data e hora de emissão cte.DHEmissao = GetNodeValue(xmlInfCTe, "ide", "dhEmi"); cte.FormaEmissao = GetNodeValue(xmlInfCTe, "ide", "tpEmis"); //Inscrição Suframa Destinatário cte.InscSuframa = GetNodeValue(xmlInfCTe, "dest", "ISUF"); //Chave de acesso cte.ChaveAcesso = Formatacoes.MascaraChaveAcessoCTe(chaveAcesso); //Protocolo de autorização if (xmlCTe["CTe"] != null && xmlCTe["CTe"]["infProt"] != null) // Sql montado no sistema { cte.ProtocoloAutorizacao = GetNodeValue(xmlCTe["CTe"], "infProt", "nProt") + " " + GetNodeValue(xmlCTe["CTe"], "infProt", "dhRecbto").Replace("T", " "); } else if (xmlCTe["cteProc"] != null && xmlCTe["cteProc"]["protCte"] != null) // Sql montado na receita { cte.ProtocoloAutorizacao = GetNodeValue(xmlCTe["cteProc"]["protCte"], "infProt", "nProt") + " " + GetNodeValue(xmlCTe["cteProc"]["protCte"], "infProt", "dhRecbto").Replace("T", " "); } //Tipo Cte var tipoCte = GetNodeValue(xmlInfCTe, "ide", "tpCTe"); cte.TipoCte = tipoCte == "0" ? "Normal" : tipoCte == "1" ? "Complemento Valores" : tipoCte == "2" ? "Anulação Valores" : "Substituto"; //Tipo Servico var tipoServico = GetNodeValue(xmlInfCTe, "ide", "tpServ"); cte.TipoServico = tipoServico == "0" ? "Normal" : tipoServico == "1" ? "Subcontratação" : tipoServico == "2" ? "Redespacho" : "Redespacho Intermediário"; //CFOP - natureza operação cte.NatOperacao = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfCTe, "ide", "natOp")); var codInternoCfop = GetNodeValue(xmlInfCTe, "ide", "CFOP"); var cfop = new GDA.Sql.Query("CodInterno=?codInterno") .Add("?codInterno", codInternoCfop) .First <Glass.Data.Model.Cfop>(); //Origem prestação cte.OrigemPrestacao = GetNodeValue(xmlInfCTe, "ide", "UFIni") + "-" + GetNodeValue(xmlInfCTe, "ide", "xMunIni"); //Destino prestação cte.DestinoPrestacao = GetNodeValue(xmlInfCTe, "ide", "UFFim") + "-" + GetNodeValue(xmlInfCTe, "ide", "xMunFim"); //Campo de uso livre do contribuinte cte.InformacoesAdicionais = GetNodeValue(xmlInfCTe, "compl", "xObs") + "\n" + cfop.Obs; //Remetente cte.Remetente = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfCTe, "rem", "xNome")); cte.EnderecoRem = GetEnderecoRem(xmlInfCTe); cte.MunicipioRem = GetNodeValue(xmlInfCTe, "rem/enderReme", "xMun"); cte.CepRem = GetNodeValue(xmlInfCTe, "rem/enderReme", "CEP"); cte.CnpjCpfRem = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "rem", "CPF")) ? Formatacoes.MascaraCpf(GetNodeValue(xmlInfCTe, "rem", "CPF")) : Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "rem", "CNPJ")); cte.InscEstRem = GetNodeValue(xmlInfCTe, "rem", "IE"); cte.UFRem = GetNodeValue(xmlInfCTe, "rem/enderReme", "UF"); cte.PaisRem = GetNodeValue(xmlInfCTe, "rem/enderReme", "xPais"); cte.FoneRem = GetNodeValue(xmlInfCTe, "rem", "fone"); //Destinatário cte.Destinatario = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfCTe, "dest", "xNome")); cte.EnderecoDest = GetEnderecoDest(xmlInfCTe); cte.MunicipioDest = GetNodeValue(xmlInfCTe, "dest/enderDest", "xMun"); cte.CepDest = GetNodeValue(xmlInfCTe, "dest/enderDest", "CEP"); cte.CnpjCpfDest = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "dest", "CPF")) ? Formatacoes.MascaraCpf(GetNodeValue(xmlInfCTe, "dest", "CPF")) : Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "dest", "CNPJ")); cte.InscEstDest = GetNodeValue(xmlInfCTe, "dest", "IE"); cte.UFDest = GetNodeValue(xmlInfCTe, "dest/enderDest", "UF"); cte.PaisDest = GetNodeValue(xmlInfCTe, "dest/enderDest", "xPais"); cte.FoneDest = GetNodeValue(xmlInfCTe, "dest", "fone"); //Expedidor cte.Expedidor = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfCTe, "exped", "xNome")); cte.EnderecoExped = GetEnderecoExped(xmlInfCTe); cte.MunicipioExpd = GetNodeValue(xmlInfCTe, "exped/enderExped", "xMun"); cte.CepExped = GetNodeValue(xmlInfCTe, "exped/enderExped", "CEP"); cte.CnpjCpfExped = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "exped", "CPF")) ? Formatacoes.MascaraCpf(GetNodeValue(xmlInfCTe, "exped", "CPF")) : Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "exped", "CNPJ")); cte.InscEstExped = GetNodeValue(xmlInfCTe, "exped", "IE"); cte.UFExped = GetNodeValue(xmlInfCTe, "exped/enderExped", "UF"); cte.PaisExped = GetNodeValue(xmlInfCTe, "exped/enderExped", "xPais"); cte.FoneExped = GetNodeValue(xmlInfCTe, "exped", "fone"); //Recebedor cte.Recebedor = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfCTe, "receb", "xNome")); cte.EnderecoReceb = GetEnderecoReceb(xmlInfCTe); cte.MunicipioReceb = GetNodeValue(xmlInfCTe, "receb/enderReceb", "xMun"); cte.CepReceb = GetNodeValue(xmlInfCTe, "receb/enderReceb", "CEP"); cte.CnpjCpfReceb = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "receb", "CPF")) ? Formatacoes.MascaraCpf(GetNodeValue(xmlInfCTe, "receb", "CPF")) : Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "receb", "CNPJ")); cte.InscEstReceb = GetNodeValue(xmlInfCTe, "receb", "IE"); cte.UFReceb = GetNodeValue(xmlInfCTe, "receb/enderReceb", "UF"); cte.PaisReceb = GetNodeValue(xmlInfCTe, "receb/enderReceb", "xPais"); cte.FoneReceb = GetNodeValue(xmlInfCTe, "receb", "fone"); //Tomador var tipoTomador = GetNodeValue(xmlInfCTe, "ide/toma3", "toma"); cte.TipoTomador = tipoTomador; //se tomador for remetente (0) if (tipoTomador == "0") { cte.Tomador = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfCTe, "rem", "xNome")); cte.EnderecoToma = GetEnderecoRem(xmlInfCTe); cte.MunicipioToma = GetNodeValue(xmlInfCTe, "rem/enderReme", "xMun"); cte.CepToma = GetNodeValue(xmlInfCTe, "rem/enderReme", "CEP"); cte.CnpjCpfToma = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "rem", "CPF")) ? Formatacoes.MascaraCpf(GetNodeValue(xmlInfCTe, "rem", "CPF")) : Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "rem", "CNPJ")); cte.InscEstToma = GetNodeValue(xmlInfCTe, "rem", "IE"); cte.UFToma = GetNodeValue(xmlInfCTe, "rem/enderReme", "UF"); cte.PaisToma = GetNodeValue(xmlInfCTe, "rem/enderReme", "xPais"); cte.FoneToma = GetNodeValue(xmlInfCTe, "rem", "fone"); } //se tomador for expedidor (1) else if (tipoTomador == "1") { cte.Tomador = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfCTe, "exped", "xNome")); cte.EnderecoToma = GetEnderecoExped(xmlInfCTe); cte.MunicipioToma = GetNodeValue(xmlInfCTe, "exped/enderExped", "xMun"); cte.CepToma = GetNodeValue(xmlInfCTe, "exped/enderExped", "CEP"); cte.CnpjCpfToma = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "exped", "CPF")) ? Formatacoes.MascaraCpf(GetNodeValue(xmlInfCTe, "exped", "CPF")) : Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "exped", "CNPJ")); cte.InscEstToma = GetNodeValue(xmlInfCTe, "exped", "IE"); cte.UFToma = GetNodeValue(xmlInfCTe, "exped/enderExped", "UF"); cte.PaisToma = GetNodeValue(xmlInfCTe, "exped/enderExped", "xPais"); cte.FoneToma = GetNodeValue(xmlInfCTe, "exped", "fone"); } //se tomador for recebedor (2) else if (tipoTomador == "2") { cte.Tomador = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfCTe, "receb", "xNome")); cte.EnderecoToma = GetEnderecoReceb(xmlInfCTe); cte.MunicipioToma = GetNodeValue(xmlInfCTe, "receb/enderReceb", "xMun"); cte.CepToma = GetNodeValue(xmlInfCTe, "receb/enderReceb", "CEP"); cte.CnpjCpfToma = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "receb", "CPF")) ? Formatacoes.MascaraCpf(GetNodeValue(xmlInfCTe, "receb", "CPF")) : Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "receb", "CNPJ")); cte.InscEstToma = GetNodeValue(xmlInfCTe, "receb", "IE"); cte.UFToma = GetNodeValue(xmlInfCTe, "receb/enderReceb", "UF"); cte.PaisToma = GetNodeValue(xmlInfCTe, "receb/enderReceb", "xPais"); cte.FoneToma = GetNodeValue(xmlInfCTe, "receb", "fone"); } //se tomador for destinatário (3) else if (tipoTomador == "3") { cte.Tomador = Formatacoes.RestauraStringDocFiscal(GetNodeValue(xmlInfCTe, "dest", "xNome")); cte.EnderecoToma = GetEnderecoDest(xmlInfCTe); cte.MunicipioToma = GetNodeValue(xmlInfCTe, "dest/enderDest", "xMun"); cte.CepToma = GetNodeValue(xmlInfCTe, "dest/enderDest", "CEP"); cte.CnpjCpfToma = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "dest", "CPF")) ? Formatacoes.MascaraCpf(GetNodeValue(xmlInfCTe, "dest", "CPF")) : Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "dest", "CNPJ")); cte.InscEstToma = GetNodeValue(xmlInfCTe, "dest", "IE"); cte.UFToma = GetNodeValue(xmlInfCTe, "dest/enderDest", "UF"); cte.PaisToma = GetNodeValue(xmlInfCTe, "dest/enderDest", "xPais"); cte.FoneToma = GetNodeValue(xmlInfCTe, "dest", "fone"); } // Produto Predominante cte.ProdutoPredominante = GetNodeValue(xmlInfCTe, "infCTeNorm/infCarga", "proPred"); // Outras caracteristicas da carga if (GetNodeValue(xmlInfCTe, "infCTeNorm/infCarga", "xOutCat") != null) { cte.OutCarctCarga = GetNodeValue(xmlInfCTe, "infCTeNorm/infCarga", "xOutCat"); } cte.ValorTotalMercadoria = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "infCTeNorm/infCarga", "vCarga"), 2); // Produto Predominante cte.PesoBruto = GetNodeValue(xmlInfCTe, "infCTeNorm/infCarga", "proPred"); //infCarga //var infCarga = xmlInfCTe["infCTeNorm"].GetElementsByTagName("infCarga"); XmlNodeList xmlListInfCarga = xmlInfCTe["infCTeNorm"].GetElementsByTagName("infQ"); if (xmlListInfCarga.Count > 0) { var listaInfCarga = new List <InfoCargaCte>(); foreach (XmlElement xmlInfo in xmlListInfCarga) { var infoCarga = new InfoCargaCte { Quantidade = Glass.Conversoes.StrParaFloat(xmlInfo.GetElementsByTagName("qCarga")[0].InnerText), TipoMedida = xmlInfo.GetElementsByTagName("tpMed")[0].InnerText, TipoUnidade = Glass.Conversoes.StrParaInt(xmlInfo.GetElementsByTagName("cUnid")[0].InnerText) }; listaInfCarga.Add(infoCarga); } cte.ListaInfoCargaCte = listaInfCarga; } //Seguradoras var respSeg = GetNodeValue(xmlInfCTe, "infCTeNorm/seg", "respSeg"); cte.ResponsavelSeguro = respSeg == "0" ? "Remetente" : respSeg == "1" ? "Expedidor" : respSeg == "2" ? "Recebedor" : respSeg == "3" ? "Destinatário" : respSeg == "4" ? "Emitente" : "Tomador"; cte.NomeSeguradora = GetNodeValue(xmlInfCTe, "infCTeNorm/seg", "xSeg"); cte.NumApolice = GetNodeValue(xmlInfCTe, "infCTeNorm/seg", "nApol"); cte.NumAverbacao = GetNodeValue(xmlInfCTe, "infCTeNorm/seg", "nAver"); //Componentes valor XmlNodeList xmlListaComponenteValor = xmlInfCTe["vPrest"].GetElementsByTagName("Comp"); if (xmlListaComponenteValor.Count > 0) { var listaComponentes = new List <ComponenteValorCte>(); foreach (XmlElement xmlComp in xmlListaComponenteValor) { var componente = new ComponenteValorCte { NomeComponente = xmlComp.GetElementsByTagName("xNome")[0].InnerText, ValorComponente = Glass.Conversoes.StrParaDecimal(xmlComp.GetElementsByTagName("vComp")[0].InnerText) }; listaComponentes.Add(componente); } cte.ListaComponentes = listaComponentes; } cte.ValorTotalServicoComponente = Glass.Conversoes.StrParaDecimal(GetNodeValue(xmlInfCTe, "vPrest", "vTPrest")); cte.ValorReceberComponente = Glass.Conversoes.StrParaDecimal(GetNodeValue(xmlInfCTe, "vPrest", "vRec")); //Informações relativas ao imposto if (!string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "imp/ICMS", "ICMS00"))) { cte.SubstituicaoTributaria = "00 - tributação normal ICMS"; cte.BaseCalculo = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS00", "vBC"), 2); cte.AliquotaIcms = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS00", "pICMS"), 2); cte.ValorIcms = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS00", "vICMS"), 2); } else if (!string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "imp/ICMS", "ICMS20"))) { cte.SubstituicaoTributaria = "20 - tributação com BC reduzida do ICMS"; cte.BaseCalculo = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS20", "vBC"), 2); cte.AliquotaIcms = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS20", "pICMS"), 2); cte.ValorIcms = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS20", "vICMS"), 2); cte.ReducaoBaseCalculo = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS20", "pRedBC"), 2); } else if (!string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "imp/ICMS", "ICMS60"))) { cte.SubstituicaoTributaria = "60 - ICMS cobrado anteriormente por substituição tributária"; cte.IcmsST = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS60", "vICMSSTRet"), 2); } else if (!string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "imp/ICMS", "ICMS90"))) { cte.SubstituicaoTributaria = "90 - ICMS outros "; cte.BaseCalculo = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS90", "vBC"), 2); cte.AliquotaIcms = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS90", "pICMS"), 2); cte.ValorIcms = Formatacoes.FormataValorDecimal(GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS90", "vICMS"), 2); } else if (!string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "imp/ICMS", "ICMS45"))) { switch (GetNodeValue(xmlInfCTe, "imp/ICMS/ICMS45", "CST")) { case "40": cte.SubstituicaoTributaria = "40 - ICMS isenção"; break; case "41": cte.SubstituicaoTributaria = "41 - ICMS não tributada"; break; case "51": cte.SubstituicaoTributaria = "51 - ICMS diferido"; break; } } if (xmlInfCTe["infCTeNorm"]["infDoc"] != null) { //Documentos Originários if (xmlInfCTe["infCTeNorm"]["infDoc"]["infNF"] != null) { var xmlListaDocumentosOriginarios = xmlInfCTe["infCTeNorm"]["infDoc"].GetElementsByTagName("infNF"); if (xmlListaDocumentosOriginarios.Count > 0) { var cpfCnpjDocsOriginarios = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "rem", "CPF")) ? Formatacoes.MascaraCpf(GetNodeValue(xmlInfCTe, "rem", "CPF")) : Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "rem", "CNPJ")); var listaDocsOriginarios = new List <NotaFiscalCte>(); int cont = 0; foreach (XmlElement xmlDocOriginario in xmlListaDocumentosOriginarios) { var docsOriginarios = new NotaFiscalCte { TipoDoc = "NF", DocEmitenteNf = cpfCnpjDocsOriginarios, Serie = xmlDocOriginario.GetElementsByTagName("serie")[cont].InnerText, NumeroDoc = xmlDocOriginario.GetElementsByTagName("nDoc")[cont].InnerText }; cont++; listaDocsOriginarios.Add(docsOriginarios); } cte.ListaDocumentosOriginarios = listaDocsOriginarios; } } //Documentos Originários else if (xmlInfCTe["infCTeNorm"]["infDoc"]["infNFe"] != null && xmlInfCTe["infCTeNorm"]["infDoc"]["infNFe"]["chave"] != null) { var xmlListaDocumentosOriginariosNfe = xmlInfCTe["infCTeNorm"]["infDoc"].GetElementsByTagName("infNFe"); if (xmlListaDocumentosOriginariosNfe.Count > 0) { var cpfCnpjDocsOriginarios = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "rem", "CPF")) ? Formatacoes.MascaraCpf(GetNodeValue(xmlInfCTe, "rem", "CPF")) : Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "rem", "CNPJ")); var listaDocsOriginarios = new List <NotaFiscalCte>(); foreach (XmlElement xmlDocOriginarioNfe in xmlListaDocumentosOriginariosNfe) { // var nf = Glass.Data.DAL.NotaFiscalDAO.Instance.GetByChaveAcesso(xmlDocOriginarioNfe.InnerText); var docsOriginarios = new NotaFiscalCte { TipoDoc = "NFe", DocEmitenteNf = xmlDocOriginarioNfe.InnerText //DocEmitenteNf = nf.CnpjEmitente, //Serie = nf.Serie, //NumeroDoc = nf.NumeroNFe.ToString() }; listaDocsOriginarios.Add(docsOriginarios); } cte.ListaDocumentosOriginarios = listaDocsOriginarios; } } } //else //{ // XmlNodeList xmlListaDocumentosOriginarios = xmlInfCTe["rem"].GetElementsByTagName("infNFe"); // if (xmlListaDocumentosOriginarios.Count > 0) // { // var cpfCnpjDocsOriginarios = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "rem", "CPF")) ? // Formatacoes.MascaraCpf(GetNodeValue(xmlInfCTe, "rem", "CPF")) : Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "rem", "CNPJ")); // var listaDocsOriginarios = new List<NotaFiscalCte>(); // foreach (XmlElement xmlDocOriginario in xmlListaDocumentosOriginarios) // { // var docsOriginarios = new NotaFiscalCte // { // TipoDoc = xmlDocOriginario.GetElementsByTagName("mod")[0].InnerText, // DocEmitenteNf = cpfCnpjDocsOriginarios, // SerieNumDoc = xmlDocOriginario.GetElementsByTagName("serie")[0].InnerText // }; // listaDocsOriginarios.Add(docsOriginarios); // } // cte.ListaDocumentosOriginarios = listaDocsOriginarios; // } //} //Informações específicas do modal rodoviário lotação /*cte.TipoVeiculo = GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo/veic", "tpVeic") == "0" ? "Tração" : "Reboque"; * cte.Placa = GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo/veic", "placa"); * cte.UFVeiculo = GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo/veic", "UF");*/ var veiculosCte = DAL.CTe.VeiculoCteDAO.Instance.GetVeiculosCteByIdCte(_cte.IdCte); /* Chamado 44905. */ if (veiculosCte != null) { var veiculosTipo = new List <string>(); var veiculosPlaca = new List <string>(); var veiculosUf = new List <string>(); var proprietariosRntrc = new List <string>(); var participantes = DAL.CTe.ParticipanteCteDAO.Instance.GetParticipanteByIdCte(_cte.IdCte); var participanteEmitente = participantes.Where(f => f.TipoParticipante == ParticipanteCte.TipoParticipanteEnum.Emitente).First(); var loja = DAL.LojaDAO.Instance.GetElement(participanteEmitente.IdLoja.Value); foreach (var veiculoCte in veiculosCte) { var listaProprietarios = DAL.CTe.ProprietarioVeiculo_VeiculoDAO.Instance.GetList(veiculoCte.Placa, 0); var proprietario = new ProprietarioVeiculo(); foreach (var prop in listaProprietarios) { if (Formatacoes.LimpaCpfCnpj(DAL.CTe.ProprietarioVeiculoDAO.Instance.GetElement(prop.IdPropVeic).Cnpj) == Formatacoes.LimpaCpfCnpj(loja.Cnpj)) { var rntrc = DAL.CTe.ProprietarioVeiculoDAO.Instance.ObtemValorCampo <string>("RNTRC", "IdPropVeic=" + prop.IdPropVeic); if (!string.IsNullOrEmpty(rntrc)) { proprietariosRntrc.Add(rntrc); } break; } } var veiculo = DAL.VeiculoDAO.Instance.GetElement(veiculoCte.Placa); veiculosTipo.Add(veiculo.TipoVeiculo == 0 ? "Tração" : "Reboque"); veiculosPlaca.Add(veiculoCte.Placa); veiculosUf.Add(veiculo.UfLicenc); } cte.TipoVeiculo = string.Join("\n", veiculosTipo); cte.Placa = string.Join("\n", veiculosPlaca); cte.UFVeiculo = string.Join("\n", veiculosUf); cte.RNTRCProprietario = string.Join("\n", proprietariosRntrc); } else { cte.TipoVeiculo = GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo/veic", "tpVeic") == "0" ? "Tração" : "Reboque"; cte.Placa = GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo/veic", "placa"); cte.UFVeiculo = GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo/veic", "UF"); cte.RNTRCProprietario = GetNodeValue(xmlInfCTe, "prop", "RNTRC"); } cte.RespValePedCnpj = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "valePed", "CNPJPg")) ? Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "valePed", "CNPJPg")) : ""; cte.FornValePedagioCnpj = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "valePed", "CNPJForn")) ? Formatacoes.MascaraCnpj(GetNodeValue(xmlInfCTe, "valePed", "CNPJForn")) : ""; cte.NumeroComprovante = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "valePed", "nCompra")) ? GetNodeValue(xmlInfCTe, "valePed", "nCompra") : ""; cte.RNTRCRodo = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo", "RNTRC")) ? GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo", "RNTRC") : ""; cte.Lotacao = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo", "lota")) ? GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo", "lota") : ""; cte.CIOT = !string.IsNullOrEmpty(GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo", "CIOT")) ? GetNodeValue(xmlInfCTe, "infCTeNorm/infModal/rodo", "CIOT") : ""; XmlNodeList xmlListaLacre = xmlInfCTe["infCTeNorm"].GetElementsByTagName("lacRodo"); if (xmlListaLacre.Count > 0) { var listaNumLacre = new List <LacreCteRod>(); foreach (XmlElement xmlLacre in xmlListaLacre) { var lacre = new LacreCteRod { NumeroLacre = xmlLacre.GetElementsByTagName("nLacre")[0].InnerText }; listaNumLacre.Add(lacre); } cte.ListaNumeroLacre = listaNumLacre; } #endregion return(cte); }