public void InserirCreditoUsado(uint idLoja, DateTime periodo, DataSourcesEFD.TipoImpostoEnum tipoImposto, DataSourcesEFD.CodCredEnum?codCred, decimal valorUsado) { foreach (ControleCreditoEfd c in ControleCreditoEfdDAO.Instance.GetForEFD(idLoja, periodo, tipoImposto, codCred).Value) { if (valorUsado <= 0) { break; } decimal valorCredito = Math.Min(valorUsado, c.ValorRestanteCredito); valorUsado -= valorCredito; objPersistence.ExecuteCommand("delete from uso_credito_efd where idCredito=" + c.IdCredito + " and periodoUso=?pu", new GDAParameter("?pu", periodo.ToString("MM/yyyy"))); UsoCreditoEfd u = new UsoCreditoEfd() { IdCredito = c.IdCredito, PeriodoUso = periodo.ToString("MM/yyyy"), ValorUsado = valorCredito }; Insert(u); } }
public void InserirCredito(uint idLoja, DateTime inicio, DataSourcesEFD.TipoImpostoEnum tipoImposto, DataSourcesEFD.CodCredEnum?codCred, decimal valor) { string periodo = inicio.ToString("MM/yyyy"); uint?idCreditoAtual = ObterCodigoItem(idLoja, periodo, (int?)codCred, (int)tipoImposto); if (idCreditoAtual > 0) { decimal totalUsado = UsoCreditoEfdDAO.Instance.ObtemValorCampo <decimal>("sum(valorUsado)", "idCredito=" + idCreditoAtual.Value); if (totalUsado > valor) { throw new Exception(string.Format("O crédito já usado no período ({0}) é maior que o crédito que está sendo gerado ({1}).", totalUsado.ToString("C"), valor.ToString("C"))); } DeleteByPrimaryKey(idCreditoAtual.Value); } ControleCreditoEfd novo = new ControleCreditoEfd(); novo.PeriodoGeracao = periodo; novo.TipoImposto = (int)tipoImposto; novo.CodCred = (int?)codCred; novo.ValorGerado = valor; novo.IdLoja = idLoja; uint idNovoCredito = Insert(novo); if (idCreditoAtual > 0) { UsoCreditoEfdDAO.Instance.AtualizaCreditoUsado(idCreditoAtual.Value, idNovoCredito); } }
/// <summary> /// Buscar dados de icms do cte /// </summary> /// <param name="idCte"></param> /// <returns></returns> public Entidade.ImpostoCte GetImpostoCte(uint idCte, DataSourcesEFD.TipoImpostoEnum tipoImposto) { using (Glass.Data.DAL.CTe.ImpostoCteDAO dao = Glass.Data.DAL.CTe.ImpostoCteDAO.Instance) { return(new Entidade.ImpostoCte(dao.GetElement(idCte, tipoImposto))); } }
public IList <ControleCreditoEfd> GetList(uint idLoja, DateTime inicio, DataSourcesEFD.TipoImpostoEnum tipoImposto, DataSourcesEFD.CodCredEnum?codCred, bool apenasCreditoPositivo, string sortExpression, int startRow, int pageSize) { sortExpression = !String.IsNullOrEmpty(sortExpression) ? sortExpression : "str_to_date(concat('01/', cc.periodoGeracao), '%d/%m/%Y') asc, cc.codCred asc"; string periodo = inicio.ToString("MM/yyyy"); return(LoadDataWithSortExpression(Sql(idLoja, (int)tipoImposto, periodo, (int?)codCred, apenasCreditoPositivo, true), sortExpression, startRow, pageSize, true, GetParams(periodo, false))); }
public ImpostoCte GetElement(uint idCte, DataSourcesEFD.TipoImpostoEnum tipoImposto) { try { return(objPersistence.LoadOneData(Sql(idCte, (int)tipoImposto, true))); } catch { return(new ImpostoCte()); } }
public IList <AjusteContribuicao> GetForEFD(int codCredCont, DateTime inicio, DateTime fim, Sync.Fiscal.Enumeracao.AjusteContribuicao.FonteAjuste fonteAjuste, DataSourcesEFD.TipoImpostoEnum tipoImposto, float aliqImposto) { string di = inicio.ToString("dd/MM/yyyy"), df = fim.ToString("dd/MM/yyyy"); bool temFiltro; string filtroAdicional; string sql = Sql(codCredCont, di, df, (int)fonteAjuste, (int)tipoImposto, aliqImposto, true, out temFiltro, out filtroAdicional).Replace(FILTRO_ADICIONAL, filtroAdicional); return(objPersistence.LoadData(sql, GetParams(di, df, aliqImposto)).ToList()); }
//private ControleCreditoApuracaoDAO() { } public ControleCreditoApuracao ObterCreditoMesAnterior(string periodo, DataSourcesEFD.TipoImpostoEnum tipoImposto) { try { string sql = "SELECT * FROM controle_credito_apuracao WHERE PeriodoGeracao=?periodo AND TipoImposto = ?tipoImposto"; GDAParameter[] param = new GDAParameter[] { new GDAParameter("?periodo", periodo), new GDAParameter("?tipoImposto", tipoImposto) }; return(objPersistence.LoadOneData(sql, param)); } catch { return(null); } }
public void InserirCredito(string periodo, DataSourcesEFD.TipoImpostoEnum tipoImposto, decimal valor) { uint?idCreditoAtual = ObtemValorCampo <uint?>("idCredito", "periodoGeracao=?periodo " + "and tipoImposto=" + (int)tipoImposto, new GDAParameter("?periodo", periodo)); ControleCreditoApuracao novo = new ControleCreditoApuracao(); novo.PeriodoGeracao = periodo; novo.TipoImposto = (int)tipoImposto; novo.ValorGerado = valor; if (idCreditoAtual == 0 || idCreditoAtual == null) { uint idNovoCredito = Insert(novo); } else { novo.IdCredito = (uint)idCreditoAtual; Update(novo); } }
public int GetCount(uint idLoja, DateTime inicio, DataSourcesEFD.TipoImpostoEnum tipoImposto, DataSourcesEFD.CodCredEnum?codCred, bool apenasCreditoPositivo) { string periodo = inicio.ToString("MM/yyyy"); return(GetCountWithInfoPaging(Sql(idLoja, (int)tipoImposto, periodo, (int?)codCred, apenasCreditoPositivo, true), true, GetParams(periodo, false))); }
public KeyValuePair <decimal, IEnumerable <Sync.Fiscal.EFD.Entidade.IControleCreditoEFD> > GetForEFD(uint idLoja, DateTime inicio, DataSourcesEFD.TipoImpostoEnum tipoImposto, DataSourcesEFD.CodCredEnum?codCred) { string periodo = inicio.ToString("MM/yyyy"); var sql = Sql(idLoja, (int)tipoImposto, periodo, (int?)codCred, true, true) + " order by str_to_date(concat('01/', cc.periodoGeracao), '%d/%m/%Y') asc, cc.codCred asc"; var itens = objPersistence.LoadData(sql, GetParams(periodo, true)).ToList().ToArray(); decimal soma = 0; foreach (ControleCreditoEfd c in itens) { soma += c.ValorRestanteCredito; } return(new KeyValuePair <decimal, IEnumerable <Sync.Fiscal.EFD.Entidade.IControleCreditoEFD> >(soma, itens)); }