Ejemplo n.º 1
0
        public void GenerateStockMovimentFromPurchaseDocument(List <ItemMovimentoStockDTO> pLista, FaturaDTO pDocument, string pMovimentCode)
        {
            if (pLista.Count > 0)
            {
                int               doc    = 12;
                SerieDTO          _serie = ObterSerieStock(new SerieDTO(doc));
                MovimentoStockDTO dto    = new MovimentoStockDTO
                {
                    Codigo             = -1,
                    Documento          = doc,
                    ArmazemFrom        = pDocument.Armazem,
                    DataStock          = DateTime.Today,
                    Lancamento         = DateTime.Now,
                    Operacao           = pMovimentCode == "E" ? 1 : 2,
                    Serie              = _serie.Codigo,
                    Referencia         = string.Empty,
                    Utilizador         = pDocument.Utilizador,
                    Numeracao          = 0,
                    ArmazemTo          = pDocument.Armazem,
                    FuncionarioID      = pDocument.VendedorID <= 0 ? "-1" : pDocument.VendedorID.ToString(),
                    ListaArtigo        = pLista,
                    DocumentoFrom      = pDocument.Documento,
                    DocumentID         = pDocument.Codigo,
                    Filial             = pDocument.Filial,
                    ArmazemID          = pDocument.Armazem,
                    DocumentTypeFromID = pDocument.Documento
                };

                Gravar(dto, false);
            }
        }
Ejemplo n.º 2
0
        public ItemMovimentoStockDTO MovimentaStock(ItemMovimentoStockDTO dto, MovimentoStockDTO mov)
        {
            try
            {
                ComandText = "stp_STOCK_MOVIMENTO_STOCK";
                AddParameter("@ARTIGO", dto.ArtigoID);
                AddParameter("@ARMAZEM", mov.ArmazemFrom);
                AddParameter("@ARMAZEM_TO", mov.ArmazemTo);
                AddParameter("@ENTRADA", DateTime.Today);
                AddParameter("@SAIDA", DateTime.Today);
                if (dto.Operacao == 1)
                {
                    AddParameter("@QUANTIDADE", dto.Existencia + dto.Quantidade);
                    AddParameter("@QUANTIDADEE", dto.Quantidade);
                }
                else
                {
                    if (dto.Operacao == 2)
                    {
                        AddParameter("@QUANTIDADE", dto.Existencia - dto.Quantidade);
                        AddParameter("@QUANTIDADEE", dto.Quantidade);
                    }

                    /*
                     * if (dto.Operacao == "TA")
                     * {
                     *  AddParameter("@QUANTIDADE", dto.Existencia - dto.Quantidade);
                     *  AddParameter("@QUANTIDADEE", dto.Quantidade);
                     * }*/
                }
                AddParameter("@PRECO_UNITARIO", dto.PrecoCompra);
                AddParameter("@ULTIMO_PRECO", dto.PrecoUnitario);
                AddParameter("@CUSTO_MEDIO", dto.Novo_PrecoCustoMedio);
                AddParameter("@OPERACAO", mov.Operacao);
                ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                dto.MensagemErro += ex.Message.Replace("'", string.Empty);
            }
            finally
            {
                FecharConexao();
            }
            return(dto);
        }
Ejemplo n.º 3
0
        public MovimentoStockDTO Gravar(MovimentoStockDTO dto, bool isTransfer)
        {
            if (isTransfer)
            {
                dto.ArmazemID = dto.ArmazemTo;
            }

            MovimentoStockDTO movimento = dao.Adicionar(dto);

            if (movimento.Codigo > 0)
            {
                foreach (var item in dto.ListaArtigo)
                {
                    item.Movimento      = movimento.Codigo;
                    item.Utilizador     = item.Utilizador == null || item.Utilizador == string.Empty ? dto.Utilizador : item.Utilizador;
                    item.Filial         = item.Filial == null || item.Filial == string.Empty ? dto.Filial : item.Filial;
                    item.ArmazemOrigem  = item.ArmazemOrigem <= 0 ? dto.ArmazemFrom : item.ArmazemOrigem;
                    item.AramzemDestino = item.AramzemDestino <= 0  ? dto.ArmazemTo : item.AramzemDestino;



                    item.Operacao   = dto.Operacao;
                    item.Existencia = item.Existencia <= 0 || isTransfer?GetInicialStock(item.ArtigoID, isTransfer?item.AramzemDestino : item.ArmazemOrigem) : item.Existencia;

                    item.Quantidade = item.ContagemFisica != 0 && item.Quantidade == 0 ? item.Acrto : item.Quantidade;


                    if ((item.Operacao == 2 && item.Quantidade > 0) || (item.Operacao == 1 && item.Quantidade < 0))
                    {
                        item.Quantidade *= -1;
                    }



                    dao.AdicionarArtigo(item);
                }
                return(ObterPorPk(movimento));
            }
            else
            {
                return(dto);
            }
        }
Ejemplo n.º 4
0
        public MovimentoStockDTO TransferirStock(MovimentoStockDTO dto)
        {
            if (dto.ListaArtigo.Count > 0)
            {
                dto = dao.Adicionar(dto);

                if (dto.Codigo > 0)
                {
                    int TransferID          = dto.Codigo;
                    MovimentoStockDTO Saida = dto;
                    Saida.Operacao       = 2;
                    Saida.TranferenciaID = TransferID;
                    Saida.Documento      = 12;
                    Saida.Serie          = ObterSerieStock(new SerieDTO(Saida.Documento)).Codigo;
                    Saida.Codigo         = -1;

                    if (Gravar(Saida, false).Codigo > 0)
                    {
                        MovimentoStockDTO Entrada = dto;
                        Entrada.Operacao       = 1;
                        Entrada.Codigo         = -1;
                        Entrada.TranferenciaID = TransferID;
                        Entrada.ArmazemID      = dto.ArmazemTo;
                        Entrada.Documento      = 11;
                        Entrada.Serie          = ObterSerieStock(new SerieDTO(Entrada.Documento)).Codigo;
                        Entrada = Gravar(Entrada, true);
                        dto     = ObterPorPk(new MovimentoStockDTO(TransferID));
                    }
                    else
                    {
                        dto = Saida;
                    }
                }
            }
            else
            {
                dto.MensagemErro = "Não foram seleccionados Artigos para transferência";
            }

            return(dto);
        }
Ejemplo n.º 5
0
 public MovimentoStockDTO Excluir(MovimentoStockDTO dto)
 {
     try
     {
         ComandText = "stp_STOCK_MOVIMENTO_DIRECTOS_ANULAR";
         AddParameter("@CODIGO", dto.Codigo);
         AddParameter("@UTILIZADOR", dto.Utilizador);
         ExecuteNonQuery();
         dto.Sucesso = true;
     }
     catch (Exception ex)
     {
         dto.MensagemErro += ex.Message.Replace("'", string.Empty);
         dto.Sucesso       = false;
     }
     finally
     {
         FecharConexao();
     }
     return(dto);
 }
Ejemplo n.º 6
0
        public List <MovimentoStockDTO> ObterPorFiltro(MovimentoStockDTO dto)
        {
            List <MovimentoStockDTO> lista = new List <MovimentoStockDTO>();

            try
            {
                ComandText = "stp_STOCK_MOVIMENTO_DIRECTO_OBTERPORFILTRO";

                AddParameter("@REFERENCIA", dto.Referencia);
                AddParameter("@INICIO", dto.DataStock);
                AddParameter("@TERMINO", dto.Lancamento);
                AddParameter("@ARMAZEM", dto.ArmazemFrom);
                AddParameter("@INVOICE_ID", dto.DocumentoFrom);

                MySqlDataReader dr = ExecuteReader();

                while (dr.Read())
                {
                    dto                 = new MovimentoStockDTO();
                    dto.Codigo          = int.Parse(dr[0].ToString());
                    dto.NomeDocumento   = dr[1].ToString();
                    dto.Referencia      = dr[2].ToString();
                    dto.NomeArmazemFrom = dr[3].ToString();
                    dto.NomeArmazemTo   = dr[4].ToString();
                    dto.Lancamento      = DateTime.Parse(dr[5].ToString());
                    dto.Utilizador      = dr[6].ToString();
                    lista.Add(dto);
                }
            }
            catch (Exception ex)
            {
                dto.Sucesso      = false;
                dto.MensagemErro = ex.Message.Replace("'", string.Empty);
            }
            finally
            {
                FecharConexao();
            }
            return(lista);
        }
Ejemplo n.º 7
0
        public MovimentoStockDTO Adicionar(MovimentoStockDTO dto)
        {
            try
            {
                ComandText = "stp_STOCK_MOVIMENTO_DIRECTOS_ADICIONAR";
                AddParameter("@CODIGO", dto.Codigo);
                AddParameter("@DOCUMENTO", dto.Documento);
                AddParameter("@REFERENCIA", dto.Referencia);
                AddParameter("@OPERACAO", dto.Operacao);
                AddParameter("@NUMERACAO", dto.Numeracao);
                AddParameter("@DATA_STOCK", dto.DataStock);
                AddParameter("@LANCAMENTO", dto.Lancamento);
                AddParameter("@ARMAZEM_FROM", dto.ArmazemFrom);
                AddParameter("@ARMAZEM_TO", dto.ArmazemTo == 0 ? -1 : dto.ArmazemTo);
                AddParameter("@USER_UPDATE", dto.Utilizador);
                AddParameter("@USER_CREATE", dto.Utilizador);
                AddParameter("@UPDATE_DATE", DateTime.Today);
                AddParameter("@SERIE", dto.Serie);
                AddParameter("@FUNCIONARIO", dto.FuncionarioID);
                AddParameter("@DOCUMENT_ID", dto.DocumentID == null ? -1 : dto.DocumentID);
                AddParameter("@ENTITY_ID", dto.EntityID == null ? -1 : dto.EntityID);
                AddParameter("@ARMAZEM_ID", dto.ArmazemID == 0 ? dto.ArmazemFrom : dto.ArmazemID);
                AddParameter("@TRANSFER_ID", dto.TranferenciaID == null ? -1 : dto.TranferenciaID);
                AddParameter("@DOCUMENT_FROM", dto.DocumentTypeFromID == null ? -1 : dto.DocumentTypeFromID);
                AddParameter("@MOTIVO_ID", dto.MotivoID <= 0  ? (object)DBNull.Value : dto.MotivoID);

                dto.Codigo  = ExecuteInsert();
                dto.Sucesso = true;
            }
            catch (Exception ex)
            {
                dto.MensagemErro += ex.Message.Replace("'", string.Empty);
                dto.Sucesso       = false;
            }
            finally
            {
                FecharConexao();
            }
            return(dto);
        }
Ejemplo n.º 8
0
        public MovimentoStockDTO ObterPorPK(MovimentoStockDTO dto)
        {
            try
            {
                ComandText = "stp_STOCK_MOVIMENTO_DIRECTO_OBTERPORPK";
                AddParameter("@CODIGO", dto.Codigo);

                MySqlDataReader dr = ExecuteReader();

                dto = new MovimentoStockDTO();
                if (dr.Read())
                {
                    dto.Codigo        = int.Parse(dr["MOV_CODIGO"].ToString());
                    dto.Documento     = int.Parse(dr["MOV_CODIGO_DOCUMENTO"].ToString());
                    dto.Referencia    = dr["MOV_REFERENCIA"].ToString();
                    dto.Numeracao     = int.Parse(dr["MOV_NUMERACAO"].ToString());
                    dto.DataStock     = DateTime.Parse(dr["MOV_DATA_STOCK"].ToString());
                    dto.Lancamento    = DateTime.Parse(dr["MOV_DATA_LANCAMENTO"].ToString());
                    dto.ArmazemFrom   = int.Parse(dr["MOV_CODIGO_ARMAZEM_FROM"].ToString() == null ? "-1" : dr["MOV_CODIGO_ARMAZEM_FROM"].ToString());
                    dto.ArmazemTo     = int.Parse(dr["MOV_CODIGO_ARMAZEM_TO"].ToString() == null ? "-1" : dr["MOV_CODIGO_ARMAZEM_TO"].ToString());
                    dto.FuncionarioID = dr["MOV_FUNCIONARIO"].ToString();

                    dr.Close();
                }
            }
            catch (Exception ex)
            {
                dto.Sucesso      = false;
                dto.MensagemErro = ex.Message.Replace("'", string.Empty);
            }
            finally
            {
                FecharConexao();
            }
            return(dto);
        }
Ejemplo n.º 9
0
 public MovimentoStockDTO Excluir(MovimentoStockDTO dto)
 {
     return(dao.Excluir(dto));
 }
Ejemplo n.º 10
0
 public List <MovimentoStockDTO> ObterMovimentos(MovimentoStockDTO dto)
 {
     return(dao.ObterPorFiltro(dto));
 }
Ejemplo n.º 11
0
 public MovimentoStockDTO ObterPorPk(MovimentoStockDTO dto)
 {
     return(dao.ObterPorPK(dto));
 }