コード例 #1
0
ファイル: UsoCreditoEfdDAO.cs プロジェクト: ertprs/Estudo
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
 /// <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)));
     }
 }
コード例 #4
0
        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)));
        }
コード例 #5
0
ファイル: ImpostoCteDAO.cs プロジェクト: ertprs/Estudo
 public ImpostoCte GetElement(uint idCte, DataSourcesEFD.TipoImpostoEnum tipoImposto)
 {
     try
     {
         return(objPersistence.LoadOneData(Sql(idCte, (int)tipoImposto, true)));
     }
     catch
     {
         return(new ImpostoCte());
     }
 }
コード例 #6
0
        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());
        }
コード例 #7
0
        //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);
            }
        }
コード例 #8
0
        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);
            }
        }
コード例 #9
0
        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)));
        }
コード例 #10
0
        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));
        }