public TPRODUTO ObterProduto(ItemMovimento item, Parametros parametros, ETipoImportacao tipo)
        {
            DeParaProduto deParaProduto = DeParaProdutoApp.ObterPorCodigoNF(item.Produto.Codigo, tipo);

            try
            {
                if (deParaProduto != null && !string.IsNullOrWhiteSpace(deParaProduto.CodigoRM))
                {
                    return(Service.BuscarPorCodigo(deParaProduto.CodigoRM) ?? throw new Exception());
                }
                else if (parametros.ImportarProdutos)
                {
                    int      idprd   = AutoIncrementoApp.ReservarValorAutoIncremento(0, Constrantes.AUTOINC_TPRODUTO, 1);
                    TPRODUTO produto = new TPRODUTO()
                    {
                        CODCOLPRD      = parametros.CodigoColigada,
                        CODIGOPRD      = item.Produto.Codigo,
                        CODIGOAUXILIAR = item.Produto.CodigoAuxiliar,
                        CODIGOREDUZIDO = item.Produto.CodigoReduzido,
                        NOMEFANTASIA   = item.Produto.Nome,
                        IDPRD          = idprd,
                        TIPO           = "S",
                        ULTIMONIVEL    = 1
                    };
                    produto.TPRODUTODEF.Add(new TPRODUTODEF()
                    {
                        CODCOLIGADA    = parametros.CodigoColigada,
                        IDPRD          = idprd,
                        CODUNDCOMPRA   = item.Produto.Unidade,
                        CODUNDCONTROLE = item.Produto.Unidade,
                        CODUNDVENDA    = item.Produto.Unidade
                    });
                    return(Service.Add(produto));
                }
                else
                {
                    throw new Exception();
                }
            }
            catch (Exception)
            {
                throw new Exception($"Não foi encontrado o código do RM para o serviço {item.Produto.Codigo}, aliquota {item.AliquitaIR}, descrição {item.Produto.Nome}. Favor verificar se o de-para está preenchido.");
            }
        }
        public TITMMOV ObterItemMovimento(ref TMOV movimento, ItemMovimento item, int sequencial, Parametros parametros, ETipoImportacao tipo)
        {
            TITMMOV  itemMovimento = new TITMMOV();
            TPRODUTO produto       = ProdutoApp.ObterProduto(item, parametros, tipo);

            itemMovimento.CODCOLIGADA        = movimento.CODCOLIGADA;
            itemMovimento.IDMOV              = movimento.IDMOV;
            itemMovimento.CODFILIAL          = movimento.CODFILIAL;
            itemMovimento.CODCCUSTO          = movimento.CODCCUSTO;
            itemMovimento.CODLOC             = movimento.CODLOC;
            itemMovimento.NSEQITMMOV         = sequencial;
            itemMovimento.IDPRD              = produto.IDPRD;
            itemMovimento.PRECOUNITARIO      = item.Preco;
            itemMovimento.QUANTIDADE         = 1;
            itemMovimento.QUANTIDADEORIGINAL = 1;
            itemMovimento.QUANTIDADETOTAL    = 1;
            itemMovimento.QUANTIDADEARECEBER = 1;
            itemMovimento.VALORTOTALITEM     = item.ValorTotal;
            itemMovimento.VALORDEDUCAO       = item.ValorDeducao;
            itemMovimento.INTEGRAAPLICACAO   = "0";
            itemMovimento.CODUND             = "UN";
            itemMovimento.CODMUNSERVICO      = movimento.CODMUNSERVICO;
            itemMovimento.CODETDMUNSERV      = movimento.CODETDMUNSERV;
            itemMovimento.IDNAT              = movimento.IDNAT;

            foreach (var tributo in item.Tributos)
            {
                movimento.TTRBMOV.Add(new TTRBMOV()
                {
                    CODCOLIGADA            = item.Coligada,
                    IDMOV                  = Convert.ToInt32(movimento.IDMOV),
                    NSEQITMMOV             = item.Sequencial,
                    CODTRB                 = tributo.Codigo,
                    CODTRBBASE             = tributo.Codigo,
                    BASEDECALCULO          = tributo.BaseCalculo,
                    BASEDECALCULOCALCULADA = tributo.BaseCalculo,
                    BASECHEIA              = tributo.BaseCalculo,
                    ALIQUOTA               = tributo.Aliquota,
                    VALOR                  = tributo.Valor,
                    EDITADO                = 1
                });
            }

            return(itemMovimento);
        }
Exemple #3
0
 public DeParaProduto ObterPorCodigoNF(string codigoNF, ETipoImportacao tipo)
 {
     return(Repository.First(d => d.CodigoNF == codigoNF && d.TipoImportacao == tipo));
 }
 public DeParaProduto ObterPorCodigoNF(string codigoNF, ETipoImportacao tipo)
 {
     return(Service.ObterPorCodigoNF(codigoNF, tipo));
 }