public Int32 ValidateCreate(PRODUTO item, USUARIO usuario)
        {
            try
            {
                // Verifica existencia prévia
                if (_baseService.CheckExist(item, usuario.ASSI_CD_ID) != null)
                {
                    return(1);
                }

                // Completa objeto
                item.PROD_IN_ATIVO = 1;
                item.ASSI_CD_ID    = usuario.ASSI_CD_ID;
                item.PROD_DT_ULTIMA_MOVIMENTACAO = DateTime.Today;

                MOVIMENTO_ESTOQUE_PRODUTO movto = new MOVIMENTO_ESTOQUE_PRODUTO();

                // Monta Log
                LOG log = new LOG
                {
                    LOG_DT_DATA     = DateTime.Now,
                    ASSI_CD_ID      = usuario.ASSI_CD_ID,
                    USUA_CD_ID      = usuario.USUA_CD_ID,
                    LOG_NM_OPERACAO = "AddPROD",
                    LOG_IN_ATIVO    = 1,
                    LOG_TX_REGISTRO = Serialization.SerializeJSON <PRODUTO>(item)
                };

                // Atualiza preços

                // Persiste produto
                Int32 volta = _baseService.Create(item, log, movto);

                // Cria linha de estoque
                List <FILIAL> filiais = _filService.GetAllItens(usuario.ASSI_CD_ID);
                if (usuario.PERFIL.PERF_SG_SIGLA != "ADM")
                {
                    filiais = filiais.Where(x => x.FILI_CD_ID == usuario.FILI_CD_ID).ToList();
                }
                foreach (var filial in filiais)
                {
                    PRODUTO_ESTOQUE_FILIAL est = new PRODUTO_ESTOQUE_FILIAL();
                    est.FILI_CD_ID                  = filial.FILI_CD_ID;
                    est.PREF_DS_JUSTIFICATIVA       = null;
                    est.PREF_DT_ULTIMO_MOVIMENTO    = null;
                    est.PREF_IN_ATIVO               = 1;
                    est.PREF_NR_MARKUP              = 0;
                    est.PREF_QN_ESTOQUE             = 0;
                    est.PREF_QN_QUANTIDADE_ALTERADA = 0;
                    est.PROD_CD_ID                  = item.PROD_CD_ID;
                    Int32 volta1 = _estService.Create(est);
                }
                return(volta);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public Int32 ValidateCreateLeve(PRODUTO item, USUARIO usuario)
        {
            try
            {
                // Verifica existencia prévia

                // Completa objeto
                item.PROD_IN_ATIVO = 1;
                item.ASSI_CD_ID    = usuario.ASSI_CD_ID;
                item.PROD_DT_ULTIMA_MOVIMENTACAO = DateTime.Today;
                MOVIMENTO_ESTOQUE_PRODUTO movto = new MOVIMENTO_ESTOQUE_PRODUTO();

                // Monta Log
                LOG log = new LOG()
                {
                    LOG_DT_DATA     = DateTime.Now,
                    ASSI_CD_ID      = usuario.ASSI_CD_ID,
                    USUA_CD_ID      = usuario.USUA_CD_ID,
                    LOG_NM_OPERACAO = "AddPROD",
                    LOG_IN_ATIVO    = 1,
                    LOG_TX_REGISTRO = null
                };

                // Persiste produto
                Int32 volta = _baseService.Create(item, log, movto);

                // Monta movimento estoque
                movto.MOEP_DT_MOVIMENTO      = DateTime.Today;
                movto.MOEP_IN_ATIVO          = 1;
                movto.MOEP_IN_TIPO_MOVIMENTO = 1;
                movto.MOEP_QN_QUANTIDADE     = 0;
                movto.PROD_CD_ID             = item.PROD_CD_ID;
                movto.USUA_CD_ID             = usuario.USUA_CD_ID;
                movto.ASSI_CD_ID             = usuario.ASSI_CD_ID;

                // Persiste estoque
                volta = _movService.Create(movto);
                return(volta);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
示例#3
0
 public Int32 Create(PRODUTO item, LOG log, MOVIMENTO_ESTOQUE_PRODUTO movto)
 {
     using (DbContextTransaction transaction = Db.Database.BeginTransaction(IsolationLevel.ReadCommitted))
     {
         try
         {
             _logRepository.Add(log);
             _baseRepository.Add(item);
             //_movRepository.Add(movto);
             transaction.Commit();
             return(0);
         }
         catch (Exception ex)
         {
             transaction.Rollback();
             throw ex;
         }
     }
 }